/* SHOP2_1027 ショップ（案A・夜の百貨店）10/28 届いた絵で描き直し。
   色・書体・角・影は先頭の .s2 のトークンだけ。全体リニューアルの決まりはここに寄せる。
   地は夜の深緑、品は金の縁のケース、見出しは「階の札」の絵（border-image で両端を保つ）。 */
.s2{
  --bg:#0a1d15; --bg2:#0f2a1f; --pan:#133626; --pan2:#0c2219; --ink:#f8eed6; --sub:#cdbf98; --mute:#9fb3a5;
  --gold:#e8c873; --gold-l:#fff1c4; --gold-d:#b98a2e; --line:rgba(232,200,115,.34); --line2:rgba(232,200,115,.16);
  --red:#e0503f; --new:#3aa877; --rose:#f08fb1;
  --hf:"Shippori Mincho B1",serif; --bf:"Zen Kaku Gothic New",sans-serif; --ef:"Cormorant Garamond",serif;
  --r:10px; --r-l:16px; --sh:0 10px 26px rgba(0,0,0,.38);
  --btn:linear-gradient(180deg,#fff0bd 0,#ecc865 38%,#c2922f 100%); --btn-ink:#2b1a06;
  --ph:76px; /* 階の札の高さ */
}
/* ===== 骨組み ===== */
#s2App.s2{position:relative;background:
  radial-gradient(120% 60% at 50% 0,rgba(232,200,115,.10),transparent 60%),
  repeating-linear-gradient(45deg,rgba(232,200,115,.035) 0 1px,transparent 1px 22px),
  repeating-linear-gradient(-45deg,rgba(232,200,115,.035) 0 1px,transparent 1px 22px),
  linear-gradient(180deg,var(--bg2),var(--bg) 30%,var(--bg));
  color:var(--ink);font-family:var(--bf);padding:0 0 48px;overflow-x:clip;-webkit-font-smoothing:antialiased;line-height:1.5}
.s2 *{box-sizing:border-box}
.s2 img{display:block;max-width:100%}
.s2 a{color:inherit;text-decoration:none}
.s2 button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}
.s2 a,.s2 button{-webkit-tap-highlight-color:transparent}
.s2-stp{display:inline-block;width:13px;height:16px;margin-right:3px;vertical-align:-2px;background:linear-gradient(160deg,#ffe3ef,#f7d7ff 55%,#ffeccf);border:1.5px dotted #c46b98;border-radius:2px}
.s2-stp--l{width:18px;height:22px}
.s2-stpi{display:inline-block;width:16px;height:16px;object-fit:contain;margin-right:3px;vertical-align:-3px;flex:0 0 auto}
.s2-stpi--l{width:24px;height:24px;margin-right:5px}
.s2-stpi--w{width:34px;height:34px;margin:0}
.s2-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;border:0;border-radius:999px;padding:11px 18px;background:var(--btn);color:var(--btn-ink)!important;font-weight:900;font-size:13.5px;cursor:pointer;white-space:nowrap;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -2px 0 rgba(120,70,0,.35),0 4px 12px rgba(0,0,0,.35);text-shadow:0 1px 0 rgba(255,255,255,.35)}
.s2-btn:active,.s2-gb:active{transform:translateY(1px) scale(.98)}
.s2-btn--s{padding:8px 12px;font-size:12px}
.s2-btn--y{background:linear-gradient(180deg,#fff6cf 0,#ffd862 40%,#e09b1c 100%)}
.s2-lim{display:inline-block;padding:3px 10px;border-radius:999px;background:var(--red);color:#fff;font-size:10.5px;font-weight:900;letter-spacing:.08em;box-shadow:0 2px 6px rgba(0,0,0,.3)}
.s2-lim--g{background:var(--btn);color:#2b1a06}
.s2-lim--n{background:var(--new)}
.s2-pill{font-style:normal;font-size:10px;font-weight:900;padding:3px 8px;border-radius:999px;background:var(--btn);color:#2b1a06;flex:0 0 auto}
.s2-pill--red{background:var(--red);color:#fff}.s2-pill--n{background:var(--new);color:#fff}
.s2-arw{width:8px;height:8px;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg);opacity:.55;flex:0 0 auto;display:inline-block}
.s2-price{display:inline-flex;align-items:center;font-weight:900;font-size:13.5px;color:var(--gold);font-variant-numeric:tabular-nums}
.s2-price s{color:var(--mute);font-weight:700;margin-right:6px;font-size:11px}
.s2-price--l{font-size:17px}
.s2-lead,.s2-sh-note,.s2-fine,.s2-relc small{text-wrap:pretty}
.s2-lead{margin:2px 16px 14px;font-size:12px;line-height:1.85;color:var(--sub)}
.s2-lead b{color:var(--gold-l)}
.s2-fine{margin:14px 16px 0;font-size:10.5px;line-height:1.85;color:var(--mute)}
.s2-fine a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;margin-left:4px}
.s2-odds{font-size:11px;font-weight:800;color:var(--gold-l);text-decoration:underline;text-underline-offset:3px;opacity:.9}
.s2-red{color:var(--red)!important}

/* ===== 1. 店の顔 ===== */
.s2-hero{position:relative;height:clamp(360px,100vw,430px);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;padding:0 16px 16px}
.s2-hbg{position:absolute;inset:0;background-size:cover;background-position:50% 20%;transform:scale(1.04);animation:s2pan 22s ease-in-out infinite alternate}
@keyframes s2pan{to{transform:scale(1.12) translateY(-8px)}}
.s2-hshade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,18,12,.05) 0,rgba(6,18,12,.08) 35%,rgba(8,24,16,.78) 70%,var(--bg2) 100%)}
.s2-hero>*:not(.s2-hbg):not(.s2-hshade){position:relative}
.s2-sign{text-align:center;color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.6)}
.s2-sign small{display:block;font-family:var(--ef);letter-spacing:.34em;font-size:11px;color:var(--gold);font-weight:700}
.s2-sign h1{margin:2px 0 4px;font-family:var(--hf);font-weight:800;font-size:44px;line-height:1.1;letter-spacing:.18em;padding-left:.18em;background:linear-gradient(180deg,#fffbe8 10%,#f3d27a 55%,#c9902f 95%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 4px rgba(0,0,0,.6))}
.s2-sign p{margin:0;font-size:12px;color:#f3e9cf}
.s2-wallet{display:flex;align-items:center;gap:10px;margin-top:14px;padding:7px 7px 7px 12px;border-radius:999px;background:linear-gradient(180deg,rgba(20,52,37,.86),rgba(8,26,18,.92));box-shadow:0 0 0 1px var(--line),var(--sh);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.s2-bal{display:flex;align-items:center;gap:8px;min-width:0}
.s2-bal>span{display:flex;flex-direction:column;line-height:1.1}
.s2-bal small{font-size:10px;color:var(--sub);font-weight:700}
.s2-bal b{font-size:21px;letter-spacing:.02em;color:var(--gold-l);font-variant-numeric:tabular-nums}
.s2-buy{margin-left:auto;padding:11px 18px;border-radius:999px;background:var(--btn);color:var(--btn-ink)!important;font-weight:900;font-size:13px;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 3px 10px rgba(0,0,0,.35)}
.s2-wallet--in{flex-wrap:wrap;gap:0 8px;padding:12px 18px;color:var(--ink)!important}
.s2-wallet--in span{font-weight:900;font-size:14px;color:var(--gold-l)}
.s2-wallet--in small{flex:1 0 100%;order:3;font-size:10.5px;color:var(--sub)}
.s2-wallet--in .s2-arw{margin-left:auto;color:var(--gold)}

/* ヒーローの送り（期間限定・VIP・新作） */
.s2-car{position:relative;margin:14px 16px 0;border-radius:var(--r-l);overflow:hidden;box-shadow:0 0 0 1px var(--line),var(--sh);touch-action:pan-y}
.s2-track{display:flex;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.s2-slide{position:relative;flex:0 0 100%;aspect-ratio:16/7;overflow:hidden;display:block}
.s2-slide img.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.s2-slide .s2-lim{position:absolute;left:10px;top:10px}
.s2-cd{position:absolute;right:10px;bottom:16px;padding:5px 11px;border-radius:999px;background:rgba(14,8,24,.74);color:#fff;font-size:11px;font-weight:800}
.s2-cd b{color:#ffd66b;margin-right:6px;font-size:13px}
.s2-cap{position:absolute;left:50%;bottom:16px;transform:translateX(-50%);white-space:nowrap;padding:5px 12px;border-radius:999px;background:rgba(10,24,17,.78);box-shadow:0 0 0 1px var(--line);font-size:12px;font-weight:800;color:#fff}
.s2-cap b{color:var(--gold);font-size:13.5px}
.s2-slide--av .s2-cap{left:auto;right:auto;transform:none;left:10px;bottom:16px}
.s2-avbg{position:absolute;inset:0;background:radial-gradient(circle at 60% 70%,#fff 0,#f6e7f3 40%,#e3d6f5 100%)}
.s2-slide--av img.m1,.s2-slide--av img.m2{position:absolute;width:auto;filter:drop-shadow(0 6px 6px rgba(60,30,60,.35))}
.s2-slide--av img.m1{left:47%;bottom:24%;height:66%}
.s2-slide--av img.m2{left:63%;bottom:23%;height:64%}
/* 3つの台に紋章（banner-vip・a-vip-lounge の台の位置） */
.s2-ped{position:absolute;width:auto;transform:translateX(-50%);filter:drop-shadow(0 6px 8px rgba(0,0,0,.45));animation:s2float 4s ease-in-out infinite}
.s2-slide--vip .s2-ped{height:32%;bottom:36%}
.s2-slide--vip .s2-ped--0{left:19%}.s2-slide--vip .s2-ped--1{left:50%;height:36%}.s2-slide--vip .s2-ped--2{left:80.5%}
.s2-ped--1{animation-delay:-1.3s}.s2-ped--2{animation-delay:-2.6s}
@keyframes s2float{50%{translate:0 -4px}}
.s2-dots{position:absolute;left:0;right:0;bottom:5px;display:flex;justify-content:center;gap:5px;pointer-events:none}
.s2-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.5);transition:.3s}
.s2-dots i.on{background:var(--gold);width:18px;border-radius:3px}

/* ===== 2. フロアガイド ===== */
.s2-ent{margin:20px 16px 0;padding:14px 12px 6px;border-radius:var(--r-l);background:linear-gradient(180deg,#16402e,#0b2318);
  box-shadow:0 0 0 1px #c9a24c inset,0 0 0 4px #0d2519 inset,0 0 0 5px rgba(201,162,76,.6) inset,var(--sh)}
.s2-ent-h{display:flex;align-items:center;justify-content:center;gap:10px;margin:0 6px 6px;font-family:var(--hf);font-size:16px;letter-spacing:.24em;color:var(--gold)}
.s2-ent-h small{font-family:var(--ef);font-size:10px;letter-spacing:.3em;color:var(--sub)}
.s2-ent-h i{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold))}
.s2-ent-h i:last-child{background:linear-gradient(90deg,var(--gold),transparent)}
.s2-floors{list-style:none;margin:0;padding:0}
.s2-floor a{display:flex;align-items:center;gap:10px;min-height:68px;padding:6px 6px 6px 2px;border-top:1px solid var(--line2);border-radius:12px;transition:background .2s}
.s2-floor:first-child a{border-top:0}
.s2-floor a:active{background:rgba(232,200,115,.10)}
.s2-fl{flex:0 0 30px;text-align:center;font-family:var(--ef);font-weight:700;font-size:19px;color:var(--gold);text-shadow:0 0 10px rgba(232,200,115,.45)}
.s2-fmed{flex:0 0 58px;height:58px;position:relative}
.s2-fmed img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 6px rgba(0,0,0,.45))}
.s2-fn{flex:1;min-width:0}
.s2-fn b{display:flex;align-items:baseline;gap:8px;white-space:nowrap;overflow:hidden;font-family:var(--hf);font-size:18px;letter-spacing:.04em;color:#fff}
.s2-fn b em{font-style:normal;font-family:var(--bf);font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--sub);overflow:hidden;text-overflow:ellipsis;min-width:0}
.s2-fn small{display:block;font-size:11px;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s2-floor .s2-arw{color:var(--gold);margin:0 4px}
.s2-floor.is-vip a{background:linear-gradient(90deg,rgba(232,200,115,.24),rgba(232,200,115,.04));box-shadow:inset 0 0 0 1px var(--line)}
.s2-floor.is-vip .s2-fn b{color:var(--gold-l)}
.s2-floor.is-vip+.s2-floor a{border-top-color:transparent}
.s2-floor.is-dark .s2-fl{color:#ff8fa8;text-shadow:0 0 10px rgba(255,80,120,.5)}

/* 売り場のタブ */
.s2-tabs{position:sticky;top:52px;z-index:20;display:flex;gap:6px;overflow-x:auto;padding:10px 16px;margin-top:18px;background:rgba(9,27,19,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line2),0 6px 14px rgba(0,0,0,.25);scrollbar-width:none}
.s2-tabs::-webkit-scrollbar{display:none}
.s2-tabs a{flex:0 0 auto;padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:900;color:var(--sub);box-shadow:inset 0 0 0 1px var(--line2);transition:.2s}
.s2-tabs a.on{background:var(--btn);color:#2b1a06;box-shadow:none}

/* ===== 見出し：階の札 ===== */
.s2-sec{position:relative;margin-top:34px;scroll-margin-top:106px}
.s2-h{position:relative;display:flex;align-items:center;gap:8px;height:var(--ph);margin:0 12px 6px;color:#fff;
  padding:0 6px;border-radius:var(--r);background:linear-gradient(90deg,#174a33,#0d2a1d);box-shadow:0 0 0 1px #c9a24c inset}
.s2-h.has-art{background:none;box-shadow:none;border-style:solid;border-color:transparent;border-width:0 calc(var(--ph) * .595) 0 calc(var(--ph) * .96);
  border-image-source:var(--plate);border-image-slice:0 119 0 192 fill;border-image-width:0 calc(var(--ph) * .595) 0 calc(var(--ph) * .96);border-image-repeat:stretch;border-radius:0;padding:0 2px 0 4px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.4))}
.s2-h-med{position:relative;flex:0 0 44px;height:44px}
.s2-h.has-art .s2-h-med{position:absolute;flex:none;width:52px;height:52px;left:calc(var(--ph) * -.51 - 26px);top:calc(var(--ph) * .505 - 26px)}
.s2-h-med img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5))}
.s2-h-t{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px;white-space:nowrap;overflow:hidden}
.s2-h h2{margin:0;font-family:var(--hf);font-weight:800;font-size:20px;letter-spacing:.1em;line-height:1;background:linear-gradient(180deg,#fffbe8,#f0cf78 70%,#d6a443);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 1px rgba(0,0,0,.6))}
.s2-h small{font-family:var(--ef);font-weight:700;font-size:10px;letter-spacing:.26em;color:var(--gold);opacity:.85;overflow:hidden;text-overflow:ellipsis}
.s2-h-fl{flex:0 0 auto;font-family:var(--ef);font-weight:700;font-size:16px;color:var(--gold-l);text-shadow:0 0 8px rgba(232,200,115,.6)}
.s2-h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:22px 16px 10px;padding-left:12px;position:relative}
.s2-h3::before{content:"";position:absolute;left:0;top:5px;width:4px;height:16px;border-radius:2px;background:var(--btn)}
.s2-h3 span{font-family:var(--hf);font-size:16px;font-weight:800;color:var(--gold-l);letter-spacing:.04em}
.s2-h3 small{font-size:10.5px;font-weight:700;color:var(--sub)}
.s2-h3 .s2-cdm{color:#ff8a7a;font-weight:900}

/* ===== 品のケース ===== */
.s2-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px;padding:9px 8px 11px;border-radius:var(--r-l);
  background:linear-gradient(180deg,#184330 0,#0e281c 100%);box-shadow:0 0 0 1px var(--line),0 8px 18px rgba(0,0,0,.3);color:var(--ink)}
.s2-art{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:1;border-radius:calc(var(--r-l) - 5px);overflow:hidden;
  background:radial-gradient(60% 50% at 50% 42%,rgba(255,236,180,.42),rgba(255,236,180,0) 70%),radial-gradient(70% 18% at 50% 92%,rgba(232,200,115,.35),transparent 70%),linear-gradient(180deg,#0f3022,#0a2117)}
.s2-art img{width:82%;height:82%;object-fit:contain;filter:drop-shadow(0 6px 8px rgba(0,0,0,.4))}
.s2-art--hm img{position:absolute;max-width:none;height:auto;object-fit:initial}
.s2-emo{font-style:normal;font-size:40px}
.s2-card b{font-size:12.5px;line-height:1.35;margin-top:3px}
.s2-card--s b{font-size:11.5px}
.s2-note{font-size:10.5px;color:var(--sub);line-height:1.5}
.s2-proof{font-size:10px;font-weight:800;color:#7fe0b0}
.s2-have{font-size:10px;font-weight:800;color:var(--rose)}
.s2-gb{margin-top:6px;padding:7px 16px;border:0;border-radius:999px;background:var(--btn);color:var(--btn-ink)!important;font-size:12px;font-weight:900;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.7),0 3px 8px rgba(0,0,0,.3)}
.s2-gb:disabled{opacity:.6}
.s2-lock{display:inline-block;margin-top:6px;font-size:10.5px;font-weight:900;color:#ffb3c4;padding:4px 10px;border-radius:999px;background:rgba(140,20,60,.35);box-shadow:inset 0 0 0 1px rgba(255,120,150,.35)}
.s2-strip{display:flex;gap:10px;overflow-x:auto;padding:2px 16px 10px;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none}
.s2-strip::-webkit-scrollbar,.s2-near::-webkit-scrollbar{display:none}
.s2-strip .s2-card{flex:0 0 132px;scroll-snap-align:start}
.s2-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 16px}
.s2-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px}
.s2-grid3 .s2-card{padding:7px 6px 9px}
.s2-r{position:absolute;left:8px;top:8px;z-index:2;font-size:9.5px;font-weight:900;padding:1px 7px;border-radius:999px;color:#fff;background:#6f7d74}
.s2-r--R{background:#3f7fd6}.s2-r--SR{background:#9c55d6}.s2-r--UR,.s2-r--SSR{background:linear-gradient(135deg,#f0b54a,#e0517f)}
.s2-card--big .s2-art{background:radial-gradient(60% 52% at 50% 44%,rgba(255,226,160,.6),rgba(255,226,160,0) 72%),radial-gradient(70% 18% at 50% 92%,rgba(232,200,115,.45),transparent 70%),linear-gradient(180deg,#123826,#0a2117)}
.s2-card--lim{box-shadow:0 0 0 1px rgba(240,140,90,.55),0 8px 18px rgba(0,0,0,.3)}
.s2-card--lim .s2-art{background:radial-gradient(60% 52% at 50% 44%,rgba(255,190,120,.55),rgba(255,190,120,0) 72%),linear-gradient(180deg,#3a2414,#1c120a)}

/* あと少し */
.s2-near{display:flex;gap:10px;overflow-x:auto;padding:2px 16px 8px;scroll-snap-type:x mandatory;scroll-padding:0 16px;scrollbar-width:none}
.s2-nc{flex:0 0 152px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:10px 10px 11px;border-radius:var(--r-l);background:linear-gradient(180deg,#184330,#0e281c);box-shadow:0 0 0 1px var(--line),0 8px 18px rgba(0,0,0,.3)}
.s2-nc-art{display:grid;place-items:center;width:84px;height:84px;padding:0;border:0;border-radius:50%;background:radial-gradient(circle,rgba(255,236,180,.45),transparent 70%);cursor:pointer}
.s2-nc-art img{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 5px 6px rgba(0,0,0,.4))}
.s2-nc b{font-size:12.5px}
.s2-nc .s2-btn{width:100%;margin-top:2px}
.s2-gauge{display:block;width:100%;height:6px;border-radius:3px;background:rgba(255,255,255,.1);overflow:hidden}
.s2-gauge i{display:block;height:100%;background:linear-gradient(90deg,#f6dd8f,#d9a13a);border-radius:3px}
.s2-short{font-size:11px;color:var(--sub)}.s2-short b{color:#ff8a7a;font-size:14px}
.s2-free{font-size:10px;color:var(--mute)}

/* 関係の贈り物（いちばん高い品を大きく） */
.s2-rel{display:flex;flex-direction:column;gap:12px;padding:0 16px}
.s2-relc{position:relative;display:flex;align-items:center;gap:12px;padding:12px 12px 12px 10px;border-radius:var(--r-l);overflow:hidden;
  background:radial-gradient(80% 120% at 0 50%,rgba(255,220,150,.22),transparent 60%),linear-gradient(135deg,#1c4c37,#0d271b);box-shadow:0 0 0 1px #c9a24c,0 0 0 3px rgba(201,162,76,.18),var(--sh)}
.s2-relart{flex:0 0 108px;height:108px;display:grid;place-items:center;border-radius:12px;background:radial-gradient(circle at 50% 45%,rgba(255,240,200,.55),transparent 68%)}
.s2-relart img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(0,0,0,.45))}
.s2-relc>div{flex:1;min-width:0}
.s2-relc b{display:block;font-size:16.5px;font-family:var(--hf);font-weight:800;color:var(--gold-l);line-height:1.3}
.s2-relc small{display:block;font-size:11px;line-height:1.6;color:var(--sub);margin:4px 0 6px}
.s2-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:6px}
.s2-tags em{font-style:normal;font-size:9.5px;font-weight:900;padding:2px 8px;border-radius:999px;background:rgba(232,200,115,.16);color:var(--gold-l)}
.s2-relb{display:flex;align-items:center;justify-content:space-between;gap:8px}
.s2-relb .s2-gb{margin-top:0;padding:9px 18px;font-size:13px}
.s2-relc.is-dark{background:radial-gradient(80% 120% at 0 50%,rgba(255,80,120,.22),transparent 60%),linear-gradient(135deg,#2a0f22,#12060f);box-shadow:0 0 0 1px rgba(255,110,140,.55),0 0 0 3px rgba(255,110,140,.15),var(--sh)}
.s2-relc.is-dark b{color:#ffd3de}.s2-relc.is-dark .s2-price{color:#ff9fb5}.s2-relc.is-dark .s2-relart{background:radial-gradient(circle at 50% 45%,rgba(255,90,130,.45),transparent 68%)}
.s2-relc.is-dark .s2-gb{background:linear-gradient(180deg,#ffb3c4,#c0325a);color:#fff!important;text-shadow:none}

/* ===== アバター ===== */
.s2-avhero{display:block;margin:4px 16px 0;border-radius:var(--r-l);overflow:hidden;box-shadow:0 0 0 1px #c9a24c,var(--sh);background:#0d2519}
.s2-avstage{position:relative;display:block;aspect-ratio:4/3;background:#173a2a center/cover no-repeat}
.s2-avstage img.m1,.s2-avstage img.m2{position:absolute;width:auto;bottom:25%;filter:drop-shadow(0 8px 8px rgba(0,0,0,.4))}
.s2-avstage img.m1{height:52%;left:30%}
.s2-avstage img.m2{height:50%;left:50%}
.s2-avstage .s2-lim{position:absolute;left:12px;top:12px}
.s2-avcopy{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 14px;background:linear-gradient(180deg,#143a29,#0c2419);border-top:1px solid var(--line)}
.s2-avcopy>span:first-child{flex:1;min-width:0}
.s2-avcopy b{display:block;font-family:var(--hf);font-size:16px;color:var(--gold-l)}
.s2-avcopy small{display:block;font-size:10.5px;color:var(--sub)}
.s2-sets{display:flex;flex-direction:column;gap:10px;padding:0 16px}
.s2-set{position:relative;display:flex;align-items:center;gap:12px;padding:8px 14px 8px 8px;border-radius:var(--r-l);background:linear-gradient(135deg,#184330,#0e281c);box-shadow:0 0 0 1px var(--line),0 8px 18px rgba(0,0,0,.3)}
.s2-set .s2-art{flex:0 0 84px;width:84px;border-radius:12px}
.s2-set-t{flex:1;min-width:0}
.s2-set b{display:block;font-size:14px;color:var(--gold-l)}
.s2-set small{display:block;font-size:11px;color:var(--sub);margin:2px 0 4px}
.s2-set .s2-arw{color:var(--gold)}
.s2-off{font-style:normal;font-size:10px;font-weight:900;color:#fff;background:var(--red);padding:1px 7px;border-radius:999px;margin-left:8px}
.s2-pw{font-size:10.5px;font-weight:800;color:#9fd8ff}
.s2-pw em{display:block;font-style:normal;color:#7fe0b0}
.s2-gbanner{display:flex;align-items:center;gap:12px;margin:14px 16px 0;padding:12px;border-radius:var(--r-l);background:radial-gradient(70% 120% at 0 50%,rgba(190,140,255,.25),transparent 60%),linear-gradient(135deg,#21163a,#120c22);box-shadow:0 0 0 1px rgba(190,160,255,.45),var(--sh);color:#fff}
.s2-gbanner>img{width:78px;height:78px;object-fit:contain;flex:0 0 auto}
.s2-gb-t{flex:1;min-width:0}
.s2-gbanner b{display:block;font-size:15px;font-family:var(--hf)}
.s2-gbanner small{display:block;font-size:10.5px;opacity:.85;margin:2px 0 8px;line-height:1.55}
.s2-gb-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}

/* ===== VIP（最上階のラウンジ） ===== */
.s2-vip{padding:0 0 18px}
.s2-vstage{position:relative;margin:4px 16px 0;aspect-ratio:3/2;border-radius:var(--r-l) var(--r-l) 0 0;overflow:hidden;background:#1b130a center/cover no-repeat;box-shadow:0 0 0 1px #c9a24c}
.s2-vstage .s2-ped{height:27%;bottom:41.5%}
.s2-vstage .s2-ped--0{left:22.5%}.s2-vstage .s2-ped--1{left:50%;height:31%;bottom:40%}.s2-vstage .s2-ped--2{left:77.5%}
.s2-vcopy{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;background:linear-gradient(180deg,transparent,rgba(16,10,4,.86) 45%);text-align:center}
.s2-vcopy b{display:block;font-family:var(--hf);font-size:17px;color:#fff}
.s2-vcopy b em{font-style:normal;color:#ffd66b;font-size:22px;margin-left:4px}
.s2-vcopy small{display:block;font-size:10.5px;line-height:1.6;color:#eadbb8;margin-top:2px}
.s2-vtiers{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 16px;padding:16px 8px 12px;border-radius:0 0 var(--r-l) var(--r-l);background:linear-gradient(180deg,#1d1408,#110b04);box-shadow:0 0 0 1px #c9a24c,var(--sh)}
.s2-vt{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;padding:12px 5px 10px;border-radius:14px;color:var(--ink);
  background:linear-gradient(180deg,color-mix(in srgb,var(--vc) 30%,#22170a),#1a1208 70%);box-shadow:0 0 0 1px color-mix(in srgb,var(--vc) 55%,transparent)}
.s2-vt.is-rec{transform:translateY(-6px);box-shadow:0 0 0 2px color-mix(in srgb,var(--vc) 50%,#fff),0 10px 26px color-mix(in srgb,var(--vc) 45%,transparent)}
.s2-rec{position:absolute;top:-10px;left:50%;transform:translateX(-50%);padding:2px 10px;border-radius:999px;background:var(--red);color:#fff;font-size:10px;font-weight:900;white-space:nowrap;z-index:2}
.s2-vem{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))}
.s2-vt>b{font-size:13.5px;color:color-mix(in srgb,var(--vc) 45%,#fff)}
.s2-vy{font-size:18px;font-weight:900;color:#fff;font-variant-numeric:tabular-nums}.s2-vy small{font-size:9.5px;color:var(--sub);margin-left:1px}
.s2-vx{font-size:11px;font-weight:800;color:var(--sub)}.s2-vx b{font-size:21px;color:#ffd66b;margin:0 1px}
.s2-vw{font-size:9.5px;color:var(--sub)}
.s2-vt ul{list-style:none;margin:6px 0 8px;padding:0;font-size:9.5px;line-height:1.55;color:#f0e4c8;text-align:left;align-self:stretch;padding:0 2px}
.s2-vt li::before{content:"・";color:color-mix(in srgb,var(--vc) 50%,#fff)}
.s2-btn--v{width:100%;margin-top:auto;padding:8px 4px;font-size:11.5px}
.s2-vip .s2-fine{color:#b9a57e}

/* ===== 切手 ===== */
.s2-starter{position:relative;display:flex;align-items:center;gap:10px;width:calc(100% - 32px);margin:8px 16px 14px;padding:14px 12px;border:0;border-radius:var(--r-l);text-align:left;cursor:pointer;
  background:radial-gradient(70% 140% at 0 50%,rgba(255,190,210,.28),transparent 60%),linear-gradient(135deg,#3a1d2c,#1e0f18);box-shadow:0 0 0 1.5px #f2b84b,var(--sh);color:var(--ink)}
.s2-starter .s2-lim{position:absolute;left:12px;top:-10px}
.s2-starter img{width:62px;height:62px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 4px 6px rgba(0,0,0,.4))}
.s2-st-t{flex:1;min-width:0}
.s2-st-t>b{display:block;font-size:14px;font-family:var(--hf);color:#ffe2ea}
.s2-st-t span{display:block;font-size:12px;color:#f3dfe6}.s2-st-t small{display:block;font-size:10px;color:#d9bfca;margin-top:2px}.s2-st-t .big{display:inline;font-size:19px;color:#ffd66b}
.s2-pk{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;width:100%;padding:10px 6px 10px;border:0;border-radius:var(--r-l);cursor:pointer;color:var(--ink);
  background:linear-gradient(180deg,#184330,#0e281c);box-shadow:0 0 0 1px var(--line),0 8px 18px rgba(0,0,0,.3)}
.s2-pk-art{display:grid;place-items:center;width:84px;height:84px;background:radial-gradient(circle at 50% 50%,rgba(255,236,180,.42),transparent 68%)}
.s2-pk-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 6px rgba(0,0,0,.4))}
.s2-pkn{font-size:11.5px;font-weight:800;color:var(--sub)}.s2-pkn b{font-size:18px;color:#fff;font-variant-numeric:tabular-nums}
.s2-x2{font-size:10px;font-weight:900;color:#fff;background:var(--red);padding:1px 8px;border-radius:999px}
.s2-pk small{font-size:10px;color:var(--mute)}
.s2-can{color:#bfe9cf!important;font-weight:700}
.s2-pk .s2-btn{margin-top:auto;width:100%}.s2-pks .s2-pk>small:last-of-type{margin-bottom:6px}
.s2-pk.is-rec{box-shadow:0 0 0 2px var(--gold),0 8px 22px rgba(232,200,115,.25)}
.s2-pk .s2-rec{top:-10px}
.s2-pk--hero{flex-direction:row;text-align:left;gap:10px;width:calc(100% - 32px);margin:0 16px 12px;padding:18px 14px 14px 8px;overflow:hidden;
  background:radial-gradient(80% 120% at 18% 55%,rgba(255,214,107,.42),transparent 58%),linear-gradient(135deg,#3a2709,#1a1003 70%);box-shadow:0 0 0 1.5px #e0b44f,0 0 0 4px rgba(224,180,79,.16),var(--sh)}
.s2-pk--hero::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,rgba(255,240,190,.28) 45%,transparent 60%);transform:translateX(-100%);animation:s2shine 3.6s ease-in-out infinite;pointer-events:none}
@keyframes s2shine{60%,100%{transform:translateX(100%)}}
.s2-pk--hero .s2-lim{position:absolute;left:12px;top:10px;z-index:1}
.s2-pk--hero .s2-pk-art{flex:0 0 132px;width:132px;height:132px;margin-top:12px;background:none}
.s2-pkt{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.s2-pk--hero .s2-pkn b{font-size:28px;color:#ffd66b}
.s2-pk--hero small{color:#e6d4ae}
.s2-pk--hero .s2-can{color:#ffe7a8!important}
.s2-pk--hero .s2-btn{width:auto;align-self:stretch;margin-top:6px;position:relative;z-index:1;font-size:15px}
.s2-pks{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:6px 16px 0}
.s2-vipnudge{display:flex;align-items:center;gap:10px;margin:14px 16px 0;padding:10px 12px;border-radius:var(--r-l);background:linear-gradient(135deg,#2a1d44,#1a1029);box-shadow:inset 0 0 0 1px rgba(200,170,255,.45);font-size:12px;color:#efe6ff}
.s2-vipnudge img{width:38px;height:38px;object-fit:contain;flex:0 0 auto}.s2-vipnudge b{color:#ffd66b}.s2-vipnudge span{flex:1;min-width:0}

/* ===== ガチャ ===== */
.s2-evbig{position:relative;display:block;margin:4px 16px 12px;border-radius:var(--r-l);overflow:hidden;box-shadow:0 0 0 1px rgba(240,140,90,.6),var(--sh);background:#2a1430}
.s2-evbig>img{width:100%;aspect-ratio:4/3;object-fit:cover}
.s2-evt{position:absolute;left:0;right:0;bottom:0;padding:44px 14px 12px;background:linear-gradient(180deg,transparent,rgba(24,8,18,.94) 40%);color:#fff;display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.s2-evt>b{font-family:var(--hf);font-size:21px}
.s2-cdbox{font-size:17px;font-weight:900;color:#ffd66b}.s2-cdbox small{margin-left:8px;font-size:11px;color:#fff;font-weight:700}
.s2-evt>small{font-size:11px;opacity:.9}
.s2-evr{display:flex;align-items:center;gap:12px;margin-top:2px}
.s2-card--g .s2-art{background:radial-gradient(60% 52% at 50% 46%,rgba(220,200,255,.45),transparent 72%),linear-gradient(180deg,#1d1838,#100c22)}

/* ===== 堕天（地下） ===== */
.s2-dark{padding:24px 0 22px;background:#12060f;color:#f6e6ee;margin-top:40px}
.s2-dbg{position:absolute;inset:0;background-size:cover;background-position:center top;opacity:.75;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 45%,transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 45%,transparent 100%)}
.s2-dark>*{position:relative}
.s2-dark .s2-lead{color:#e5cfd8;text-shadow:0 1px 3px #000}
.s2-card--dk{background:linear-gradient(180deg,rgba(48,12,32,.92),rgba(20,6,14,.95));box-shadow:0 0 0 1px rgba(255,110,140,.42),0 8px 18px rgba(0,0,0,.45)}
.s2-card--dk .s2-art{background:radial-gradient(60% 52% at 50% 46%,rgba(255,80,120,.4),transparent 72%),linear-gradient(180deg,#2a0b1c,#12050c)}
.s2-card--dk .s2-price{color:#ff9fb5}
.s2-card--dk .s2-proof{color:#ffb5c5}
.s2-more{display:flex;align-items:center;justify-content:center;gap:8px;margin:14px 16px 0;padding:12px;border-radius:999px;text-align:center;font-size:12.5px;font-weight:900;color:var(--gold-l)!important;box-shadow:inset 0 0 0 1px var(--line)}
.s2-more--dk{color:#ffd3de!important;box-shadow:inset 0 0 0 1px rgba(255,140,170,.45);background:rgba(20,4,12,.5)}
.s2-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px}
.s2-links a{padding:12px 14px;border-radius:12px;background:linear-gradient(180deg,#184330,#0e281c);box-shadow:0 0 0 1px var(--line2)}
.s2-links b{display:block;font-size:13.5px;color:var(--gold-l)}
.s2-links small{display:block;font-size:10.5px;color:var(--sub);font-weight:700}

/* ===== 買う前のシート ===== */
html.s2-lock-scroll,html.s2-lock-scroll body{overflow:hidden}
.s2-ov{position:fixed;inset:0;z-index:2147482000;display:flex;align-items:flex-end;justify-content:center;background:rgba(2,8,5,0);transition:background .25s;color:var(--ink);font-family:var(--bf);line-height:1.5}
.s2-ov.on{background:rgba(2,8,5,.62)}
.s2-sheet{position:relative;width:100%;max-width:480px;margin-top:70px;padding:0 20px calc(18px + env(safe-area-inset-bottom,0px));border-radius:24px 24px 0 0;text-align:center;
  background:radial-gradient(90% 50% at 50% 0,rgba(232,200,115,.18),transparent 70%),linear-gradient(180deg,#17402d,#0a1d14 60%);box-shadow:0 -1px 0 #c9a24c,0 -12px 40px rgba(0,0,0,.5);
  transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1)}
.s2-ov.on .s2-sheet{transform:none}
.s2-ov.is-still,.s2-ov.is-still .s2-sheet{transition:none}
.s2-grab{display:block;width:40px;height:4px;margin:10px auto 0;border-radius:2px;background:rgba(232,200,115,.45)}
.s2-x{position:absolute;right:12px;top:12px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.08);cursor:pointer}
.s2-x::before,.s2-x::after{content:"";position:absolute;left:10px;top:16px;width:14px;height:2px;border-radius:1px;background:var(--sub);transform:rotate(45deg)}
.s2-x::after{transform:rotate(-45deg)}
.s2-sh-art{display:grid;place-items:center;width:132px;height:132px;margin:-62px auto 0;border-radius:50%;background:radial-gradient(circle,rgba(255,236,180,.55),rgba(255,236,180,0) 68%)}
.s2-sh-art img{width:120px;height:120px;object-fit:contain;filter:drop-shadow(0 10px 12px rgba(0,0,0,.5))}
.s2-sh-art--pk{width:150px;height:150px;margin-top:-72px}.s2-sh-art--pk img{width:144px;height:144px}
.s2-sheet .s2-lim{margin-top:2px}
.s2-sheet h3{margin:6px 0 2px;font-family:var(--hf);font-size:19px;font-weight:800;color:var(--gold-l);letter-spacing:.04em}
.s2-sh-note{margin:2px 0 6px;font-size:11.5px;line-height:1.7;color:var(--sub)}
.s2-sh-big{margin:4px 0 4px;display:flex;align-items:center;justify-content:center;gap:4px;font-size:13px;font-weight:800;color:var(--sub)}
.s2-sh-big b{font-size:30px;color:#ffd66b;margin:0 2px;font-variant-numeric:tabular-nums;line-height:1}
.s2-sh-big s{font-size:13px;color:var(--mute);margin-right:6px}
.s2-sh-big small{font-size:12px;color:var(--sub);margin-left:4px}
.s2-sheet--g .s2-sh-big{font-size:30px;color:#ffd66b;font-weight:900}
.s2-sh-x2{display:inline-block;margin:0 0 4px;padding:3px 12px;border-radius:999px;background:var(--red);color:#fff;font-size:11px;font-weight:900}
.s2-tags--c{justify-content:center;margin:4px 0 8px}
.s2-sh-rows{margin:10px 0 6px;padding:4px 14px;border-radius:14px;background:rgba(0,0,0,.22);box-shadow:inset 0 0 0 1px var(--line2);text-align:left}
.s2-sh-rows div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;border-top:1px solid var(--line2);font-size:12.5px}
.s2-sh-rows div:first-child{border-top:0}
.s2-sh-rows dt{color:var(--sub);flex:0 0 auto}
.s2-sh-rows dd{margin:0;text-align:right;color:var(--ink)}
.s2-sh-rows dd b{color:#ffd66b;font-size:15px}
.s2-sh-wal{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 4px;padding:12px 14px;border-radius:14px;background:rgba(0,0,0,.22);box-shadow:inset 0 0 0 1px var(--line2);font-size:12px;color:var(--sub)}
.s2-sh-wal b{font-size:17px;color:#fff;margin-left:2px;font-variant-numeric:tabular-nums}
.s2-sh-wal .s2-arw{color:var(--gold)}
.s2-sh-wal.is-short{flex-direction:column;gap:6px}
.s2-sh-wal.is-short .s2-gauge{max-width:260px}
.s2-sh-fine{margin:8px 2px 0;font-size:10.5px;line-height:1.75;color:var(--mute);text-align:left}
.s2-sh-fine a{color:var(--gold);text-decoration:underline;text-underline-offset:3px;margin-left:4px}
.s2-sh-bt{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:12px}
.s2-sh-bt .s2-btn{padding:15px 18px;font-size:15.5px}
.s2-sh-go:focus{outline:none}.s2-sh-go:focus-visible{outline:1.5px solid rgba(255,241,196,.55);outline-offset:2px}
.s2-sh-bt small{font-size:10.5px;color:var(--mute)}
.s2-toast{position:fixed;left:50%;bottom:90px;z-index:2147482500;transform:translate(-50%,20px);opacity:0;max-width:92vw;padding:11px 16px;border-radius:14px;background:#0f2a1f;color:#fff3cf;font-size:12.5px;font-weight:700;box-shadow:0 0 0 1px #c9a24c,0 8px 24px rgba(0,0,0,.35);transition:.3s}
.s2-toast.on{transform:translate(-50%,0);opacity:1}.s2-toast.is-ng{background:#5a1220;box-shadow:0 0 0 1px #ff8fa8,0 8px 24px rgba(0,0,0,.35)}

/* ===== 動き ===== */
.s2 [data-anim]{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.s2 [data-anim].in{opacity:1;transform:none}
.s2 [data-anim].in .s2-card,.s2 [data-anim].in .s2-floor,.s2 [data-anim].in .s2-vt,.s2 [data-anim].in .s2-pk,.s2 [data-anim].in .s2-relc{animation:s2pop .5s both}
.s2 [data-anim].in :nth-child(2){animation-delay:.05s}.s2 [data-anim].in :nth-child(3){animation-delay:.1s}.s2 [data-anim].in :nth-child(4){animation-delay:.15s}
@keyframes s2pop{from{opacity:0;transform:translateY(10px) scale(.97)}}
.s2.is-still *,.s2.is-still *::after{animation:none!important}
@media (prefers-reduced-motion:reduce){.s2 *,.s2 *::after{animation:none!important}.s2 [data-anim]{transition:none}}

/* ===== 狭い画面（360 前後） ===== */
@media (max-width:370px){
  .s2{--ph:70px}
  .s2-sign h1{font-size:38px}
  .s2-fmed{flex-basis:50px;height:50px}.s2-fn b{font-size:16.5px}.s2-fl{flex-basis:26px;font-size:17px}
  .s2-vtiers{gap:5px;padding:16px 6px 12px}.s2-vt ul{font-size:9px}.s2-vem{width:48px;height:48px}.s2-vy{font-size:16px}
  .s2-pks{gap:6px}.s2-pkn b{font-size:16px}.s2-pk-art{width:72px;height:72px}
  .s2-pk--hero .s2-pk-art{flex-basis:112px;width:112px;height:112px}
  .s2-relart{flex-basis:92px;height:92px}
  .s2-h h2{font-size:18px}.s2-h small{letter-spacing:.18em}
}
@media (min-width:600px){
  .s2-grid3{grid-template-columns:repeat(4,1fr)}
  .s2-hero{height:440px}
}
