
:root{--bg:#FFFBFC;--card:#fff;--line:#F2E3E7;--ink:#3A2E32;--sub:#7A6A70;--pri:#B0506A;--pri2:#8E4A58;--soft:#FFE9EE;
--ssr:#E0A100;--sr:#9B6BD6;--r:#3BA7C9;--n:#9A8F93}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Zen Maru Gothic","Hiragino Maru Gothic ProN","Hiragino Sans",sans-serif;line-height:1.7}
a{color:var(--pri)}img{max-width:100%}
header.site{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
header.site .in{max-width:1080px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
header.site .logo{display:flex;align-items:center;gap:8px;color:var(--ink);text-decoration:none;font-weight:900}
header.site .logo img{width:34px;height:34px;border-radius:9px}
header.site nav{display:flex;gap:4px;flex-wrap:wrap;margin-left:auto}
header.site nav a{padding:6px 10px;border-radius:99px;text-decoration:none;color:var(--ink);font-size:14px;font-weight:700}
header.site nav a:hover,header.site nav a.on{background:var(--soft);color:var(--pri2)}
main{max-width:1080px;margin:0 auto;padding:16px}
h1{font-size:26px;line-height:1.35;margin:8px 0 12px}h2{font-size:20px;margin:28px 0 10px}h3{font-size:16px;margin:18px 0 6px}
.lead{color:var(--sub)}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:16px;margin:12px 0}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.cc{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px;text-decoration:none;color:var(--ink);display:block;content-visibility:auto;contain-intrinsic-size:auto 230px}
.cc:hover{border-color:var(--pri)}
.cc img{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:10px;background:#F3EEF0}
.cc .nm{font-weight:800;font-size:14px;margin-top:6px}.cc .tp{font-size:12px;color:var(--sub)}
.badge{display:inline-block;font-size:11px;font-weight:900;color:#fff;border-radius:6px;padding:1px 7px;margin-right:4px;vertical-align:middle}
.b-ssr{background:var(--ssr)}.b-sr{background:var(--sr)}.b-r{background:var(--r)}.b-n{background:var(--n)}
table{border-collapse:collapse;width:100%;font-size:14px;background:#fff}
th,td{border:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top}th{background:#FFF4F6;font-weight:800}
.tw{overflow-x:auto;border-radius:12px}
.btn{display:inline-flex;align-items:center;gap:6px;background:var(--pri2);color:#fff;border:0;border-radius:99px;padding:10px 18px;font-weight:800;text-decoration:none;font-size:15px;cursor:pointer;font-family:inherit}
.btn.sub{background:#fff;color:var(--pri2);border:1.5px solid var(--pri2)}
.dl{display:flex;gap:6px 10px;flex-wrap:wrap;align-items:center}.sb{display:inline-flex;flex-direction:column;align-items:center;text-decoration:none;line-height:0}.sb img{display:block}.sb-a{height:46px;width:auto}.sb-g{height:60px;width:auto}#cnt{display:block;margin-top:6px}.agn{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 6px}.agn a{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:99px;background:var(--bg);color:var(--ac);font-weight:800;font-size:14px;text-decoration:none;border:1px solid color-mix(in srgb,var(--ac) 25%,transparent)}
.agn i,.ag h3 i{width:10px;height:10px;border-radius:50%;background:var(--ac);display:inline-block}
.ag{margin:22px 0 0;scroll-margin-top:110px}.ag h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:19px;color:var(--ink)}.ag h3 small{font-size:13px;color:var(--sub);font-weight:700}
.ats{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.at{position:relative;background:#fff;border-radius:20px;padding:14px 14px 12px;border:1px solid var(--line);box-shadow:0 4px 14px rgba(142,74,88,.07);display:flex;flex-direction:column;gap:10px;overflow:hidden}
.at:before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--ac)}
.at header{display:flex;gap:12px;align-items:center}.ai{flex:none;width:44px;height:44px;border-radius:14px;background:var(--bg);padding:3px;object-fit:contain}
.at header b{display:block;font-size:18px;line-height:1.3}.at header small{display:block;font-size:12px;color:var(--sub);font-weight:700}
.how{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}.how li{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;color:var(--ink);background:var(--bg);border-radius:99px;padding:4px 10px}
.how .ic{border-radius:50%;margin-left:-4px}
.mem{margin-top:auto;display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:14px;background:var(--bg);text-decoration:none;color:var(--ink);font-size:13px;transition:transform .15s}.mem:hover{transform:translateY(-2px)}
.mem b{color:var(--ac);font-size:17px;margin-right:2px}.mem i{margin-left:auto;font-style:normal;font-weight:800;color:var(--ac);font-size:20px}
.fc{display:flex}.fc img{width:34px;height:34px;border-radius:50%;border:2px solid #fff;object-fit:cover;margin-left:-10px;background:#F3EEF0}.fc img:first-child{margin-left:0}.sb.soon small{line-height:1.2;font-size:12px;color:var(--sub);font-weight:700;margin-top:-4px}
.btn[aria-disabled=true]{opacity:.5;pointer-events:none}
.hero{display:grid;grid-template-columns:1fr;gap:16px;align-items:center;background:linear-gradient(135deg,#FFF0F4,#FFF9EC);border-radius:20px;padding:22px;border:1px solid var(--line)}
.hero h1{font-size:28px;margin:0 0 6px}.hero .dl{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
@media(min-width:760px){.hero{grid-template-columns:1.3fr 1fr}.hero h1{font-size:34px}}
.shots{display:flex;gap:10px;justify-content:center}.shots img{width:46%;max-width:220px;border-radius:18px;border:1px solid var(--line);box-shadow:0 6px 20px rgba(142,74,88,.12)}
.links{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.links a{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px;text-decoration:none;color:var(--ink)}
.links a b{display:block;font-size:16px;color:var(--pri2)}.links a span{font-size:13px;color:var(--sub)}
.prof{display:grid;grid-template-columns:1fr;gap:16px}@media(min-width:720px){.prof{grid-template-columns:260px 1fr}}
.prof img{width:100%;border-radius:16px;border:1px solid var(--line);background:#F3EEF0}
dl.kv{display:grid;grid-template-columns:7em 1fr;gap:4px 10px;margin:0}dl.kv dt{color:var(--sub);font-size:13px}dl.kv dd{margin:0}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:5px 12px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;color:var(--ink)}
.chip.on{background:var(--soft);border-color:var(--pri);color:var(--pri2)}
input[type=search],select{font-family:inherit;font-size:15px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}
.star{display:inline-block;background:#FFF3C4;border:1px solid #E8C55A;color:#8A6200;border-radius:99px;padding:2px 10px;font-size:13px;font-weight:800;margin:2px}
.note{font-size:13px;color:var(--sub)}
.spoil{background:#FFF8E8;border:1px dashed #E2B54A;border-radius:14px;padding:14px}
footer{max-width:1080px;margin:30px auto 0;padding:20px 16px 40px;color:var(--sub);font-size:13px;border-top:1px solid var(--line)}
.crumb{font-size:13px;color:var(--sub)}.crumb a{color:var(--sub)}
.more{display:block;margin:16px auto}
body{background:radial-gradient(circle at 12% 8%,#FFE3EC 0,transparent 32%),radial-gradient(circle at 88% 18%,#FFF1D6 0,transparent 30%),radial-gradient(#F7D9E1 1px,transparent 1.2px) 0 0/22px 22px,var(--bg)}
.kicker{display:inline-block;margin:0 0 6px;background:#fff;border:1px solid var(--line);border-radius:99px;padding:3px 12px;font-size:12px;color:var(--pri2);font-weight:800}
.hero{position:relative;overflow:hidden}
.hero:after{content:"♪ ★ ♡";position:absolute;right:18px;bottom:10px;font-size:22px;letter-spacing:10px;color:#F2A7BB;opacity:.6;pointer-events:none}
h2.sec{display:flex;align-items:center;gap:8px;font-size:22px;margin:34px 0 10px}
h2.sec:before{content:"";width:8px;height:26px;border-radius:4px;background:linear-gradient(#F48FB1,#B0506A)}
.center{text-align:center}
.buddy{display:flex;gap:12px;align-items:flex-start;margin:18px 0}
.buddy img{width:72px;height:72px;border-radius:50%;border:3px solid #fff;box-shadow:0 3px 10px rgba(142,74,88,.18);flex:none;background:#fff}
.bubble{position:relative;background:#fff;border:1.5px solid #F2C6D2;border-radius:16px;padding:12px 14px;line-height:1.7}
.bubble:before{content:"";position:absolute;left:-9px;top:20px;border:8px solid transparent;border-right-color:#F2C6D2;border-left:0}
.acts{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.flow{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));counter-reset:f}
.flow li{display:flex;gap:12px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 16px}
.flow .no{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:800;color:#fff;background:linear-gradient(135deg,#F48FB1,#B0506A);box-shadow:0 3px 8px rgba(176,80,106,.3)}
.flow li>div{flex:1;min-width:0}.flow b{display:block;font-size:16px}.flow small{display:block;color:var(--sub);font-size:13px;line-height:1.6;margin-top:2px}
.res{display:flex;margin-top:8px;border-radius:99px;overflow:hidden;font-size:11px;font-weight:800;text-align:center}.res span{flex:1;padding:6px 0;color:#fff;white-space:nowrap}
.res .r0{background:#E0A100}.res .r1{background:#E88AA6}.res .r2{background:#B9AEB2}.res .r3{background:#8FA6C4}.res .r4{background:#6F7FA0}
.lss{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(200px,62%);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;padding:4px 16px 14px;margin:0 -16px;scrollbar-width:none}
.lss::-webkit-scrollbar{display:none}.swipe{margin:0 0 6px}
@media(min-width:760px){.swipe{display:none}.lss{grid-auto-flow:row;grid-template-columns:repeat(4,1fr);grid-auto-columns:auto;overflow:visible;margin:0;padding:4px 0}}
.ls{scroll-snap-align:start;display:block;background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;text-decoration:none;color:var(--ink);box-shadow:0 4px 14px rgba(142,74,88,.08);transition:transform .15s}
.ls:hover{transform:translateY(-3px)}.ls img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.ls div{display:grid;grid-template-columns:auto 1fr;column-gap:8px;align-items:center;padding:10px 12px 12px}
.ls .ic{grid-row:span 2;border-radius:50%}.ls b{font-size:15px}.ls span{font-size:12px;color:var(--sub)}
.act{display:flex;flex-direction:column;align-items:center;text-align:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 8px;text-decoration:none;color:var(--ink);transition:transform .15s}
.act:hover,.cc:hover,.links a:hover{transform:translateY(-3px);box-shadow:0 8px 18px rgba(142,74,88,.12)}
.act b{margin-top:4px;font-size:14px}.act span{font-size:11px;color:var(--sub);line-height:1.4}
.ic{border-radius:12px;background:#fff}
.venues{display:flex;gap:12px;overflow-x:auto;padding:4px 2px 12px;scroll-snap-type:x mandatory}
.vn{flex:0 0 220px;scroll-snap-align:start;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}
.vn img{width:100%;height:140px;object-fit:cover;display:block}
.vn div{padding:10px 12px}.vn b{display:block;font-size:16px}.vn span{font-size:12px;color:var(--sub);display:block}
.vn .step{display:inline-block;color:#fff;background:var(--pri);border-radius:99px;padding:0 8px;font-size:11px;font-weight:900}
.links a{display:flex;flex-direction:column;transition:transform .15s}
.links a img{width:56px;height:56px;border-radius:14px;object-fit:cover;margin-bottom:6px}
.rcs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}
.rc{border-radius:16px;padding:14px;background:#fff;border:1px solid var(--line);display:flex;flex-direction:column;gap:2px}
.rc .badge{align-self:flex-start}.rc b{font-size:24px}.rc span{font-size:13px;color:var(--sub)}.rc small{font-size:12px;color:var(--sub)}
.rc-ssr{background:linear-gradient(160deg,#FFF6D9,#fff)}.rc-sr{background:linear-gradient(160deg,#F3EAFF,#fff)}.rc-r{background:linear-gradient(160deg,#E6F6FB,#fff)}
.cta{margin:30px 0;padding:18px;border-radius:20px;background:linear-gradient(135deg,#FFF0F4,#FFF9EC);border:1px solid var(--line)}
.cc{transition:transform .15s}
.bar{position:relative;height:10px;background:#F3EEF0;border-radius:99px;min-width:90px}
.bar i{position:absolute;top:0;bottom:0;border-radius:99px;background:linear-gradient(90deg,#F7B6C8,#B0506A)}
.recs{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.rec{display:inline-flex;align-items:center;gap:6px;background:#FFF4F6;border-radius:99px;padding:4px 12px 4px 4px;font-weight:800}
.bar em{position:absolute;top:-3px;width:3px;height:16px;background:#8E4A58;border-radius:2px}
.results{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.results div{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;text-align:center;font-weight:800}
.results img{width:100%;aspect-ratio:1;object-fit:cover;display:block}
.results span{display:block;padding:6px}
.moods{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 6px}
.mt{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px}
.mbtn{width:100%;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 8px;background:#fff;border:4px solid var(--mc);border-radius:18px;box-shadow:0 0 0 4px color-mix(in srgb,var(--mc) 16%,transparent),0 6px 14px rgba(0,0,0,.06);margin-bottom:8px}
.mbtn img{width:52px;height:52px;border-radius:50%}.mbtn b{font-size:14px}
.ml{color:var(--mc);font-size:15px}.mt small{font-size:12px;color:var(--sub);font-weight:700}
.stages{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.stg{border-radius:16px;padding:12px 10px;text-align:center;display:flex;flex-direction:column;gap:2px;border:1px solid var(--line)}
.stg b{font-size:16px}.stg span{font-size:12px;font-weight:800}.stg small{font-size:11px;color:var(--sub)}.stg em{font-style:normal;font-size:12px;font-weight:800;color:var(--pri2)}
.stg.g{background:linear-gradient(160deg,#DDF1DF,#fff)}.stg.s{background:linear-gradient(160deg,#E6E8EC,#fff)}.stg.y{background:linear-gradient(160deg,#FFE9A8,#fff)}
.axes2{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:12px;margin:8px 0}
.ax2{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px;box-shadow:0 4px 14px rgba(142,74,88,.06)}
.axh{display:flex;align-items:center;gap:10px;margin-bottom:10px}.axh img{border-radius:12px;background:color-mix(in srgb,var(--c) 12%,#fff)}.axh b{font-size:18px;color:var(--c)}
.stk{display:flex;height:12px;border-radius:99px;overflow:hidden;gap:2px;margin-bottom:10px}.stk i{display:block}
.ax2 ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.ax2 li{display:flex;align-items:center;gap:8px;font-size:14px;line-height:1.5}.ax2 li b{margin-left:auto;font-size:13px;color:var(--sub)}
.dot{width:10px;height:10px;border-radius:50%;flex:none}
.lgd{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--sub);font-weight:700;margin:0 0 10px}.lgd span{display:inline-flex;align-items:center;gap:6px}.lgd i{display:inline-block;width:22px;height:10px;border-radius:99px}
.lgd .room{background:#EADFE3}.lgd .ini{background:var(--pri)}
.rks{display:grid;grid-template-columns:1fr;gap:12px}@media(min-width:760px){.rks{grid-template-columns:1fr 1fr}}
.rk{background:#fff;border:1px solid var(--line);border-radius:18px;padding:14px 16px;border-top:5px solid var(--c)}
.rkh{display:flex;align-items:center;justify-content:space-between}.capv{font-size:13px;color:var(--sub);font-weight:700}.capv b{font-size:24px;color:var(--ink);margin-left:4px}
.rk .sub{display:block;color:var(--sub);font-size:12px;margin-top:2px}
.rws{display:grid;gap:10px;margin:14px 0 10px}.rw{display:grid;grid-template-columns:44px 1fr 70px;align-items:center;gap:8px;font-size:13px}
.rl{font-weight:800}.rv{text-align:right;font-weight:700;color:var(--sub);font-variant-numeric:tabular-nums}
.tr{position:relative;height:12px;border-radius:99px;background:#F6F1F3}.tr i{position:absolute;top:0;bottom:0;border-radius:99px}
.tr .room{left:0;background:color-mix(in srgb,var(--c) 22%,#fff)}.tr .ini{background:var(--c)}
.tal{margin:0;padding-top:10px;border-top:1px dashed var(--line);font-size:13px;color:var(--sub);font-weight:700}.tal b{color:var(--ink);margin-left:6px}
.tps{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}
.tp2{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px 14px}.tp2>b{display:block;font-size:16px;margin-bottom:8px}.tp2 div{display:flex;flex-wrap:wrap;gap:6px}
.abc{display:inline-block;font-size:12px;font-weight:700;padding:3px 10px;border-radius:99px;color:var(--c);background:color-mix(in srgb,var(--c) 12%,#fff);border:1px solid color-mix(in srgb,var(--c) 30%,#fff)}
.fam{margin:18px 0 0;padding:16px;border-radius:22px;background:color-mix(in srgb,var(--c) 7%,#fff);border:1px solid color-mix(in srgb,var(--c) 22%,#fff)}
.fam h3{display:flex;align-items:center;gap:10px;margin:0 0 12px;font-size:19px;color:var(--c)}.fam h3 img{border-radius:10px;background:#fff}
.abs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.ab{background:#fff;border-radius:16px;padding:12px 14px;display:grid;gap:8px;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.abn{font-size:17px}.abr{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.abr small{flex-basis:100%;font-size:11px;color:var(--sub);font-weight:700}
.lsn{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;background:#F8F4F6;border-radius:99px;padding:3px 10px 3px 4px}.lsn .ic{border-radius:50%}.lsn b{color:var(--pri2)}
.axt{display:inline-block;font-size:12px;font-weight:800;color:#fff;background:var(--c);border-radius:99px;padding:3px 10px}
td .ic{vertical-align:middle}


.kh{grid-column:1/-1;margin:14px 0 0;padding:4px 12px;background:var(--soft);border-radius:10px;color:var(--pri2);font-size:16px}
