:root{--c:#e6c47a;--d:#0b0b0e;--m:#2a2416;--ink:#0a0a10;--line:rgba(255,255,255,.14);--card:rgba(255,255,255,.07);box-sizing:border-box}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth}
body{background:var(--d);color:#fff;font-family:'Sora',system-ui,sans-serif;line-height:1.6;overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom,0)}
a{color:inherit}button,input,select{font-family:inherit}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(20px + env(safe-area-inset-top,0px)) 5vw 20px}
.logo{font-weight:800;color:var(--c);letter-spacing:.06em;text-decoration:none}
.top nav{display:flex;gap:10px;align-items:center}
.top nav a{border:1px solid var(--c);color:var(--c);text-decoration:none;font-size:.72rem;padding:3px 14px;border-radius:999px}
.top nav a:hover,.top nav a:focus-visible{background:var(--c);color:var(--ink);outline:none}
.cartb{width:36px;height:36px;border-radius:50%;background:var(--c);color:var(--ink);font-weight:800;font-size:.8rem;display:grid;place-items:center;text-decoration:none}
.pill{display:inline-block;background:var(--c);color:var(--ink);border:1px solid var(--c);border-radius:999px;padding:11px 22px;font-weight:800;font-size:.72rem;letter-spacing:.05em;cursor:pointer;text-decoration:none;transition:transform .15s,filter .2s}
.pill:hover,.pill:focus-visible{transform:translateY(-2px);filter:brightness(1.12);outline:none}
.pill.alt{background:none;color:var(--c)}.pill[disabled]{opacity:.4;pointer-events:none}
h1{font:800 clamp(2.4rem,6vw,4.6rem)/1 'Sora';text-transform:uppercase;overflow-wrap:anywhere}
h2{font:800 clamp(1.4rem,3vw,2rem)/1.2 'Sora';margin-bottom:14px}
.sub{color:rgba(255,255,255,.65);font-size:.9rem}
/* character page */
.cp{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:4vw;padding:10px 5vw 60px;max-width:1200px;margin:auto;align-items:center}
.stage{position:relative;min-height:70vh;border-radius:28px;background:radial-gradient(ellipse 70% 60% at 50% 45%,var(--m),var(--d) 78%);border:1px solid var(--line);display:grid;place-items:center;overflow:hidden}
.stage .gh{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) rotate(-8deg);font:400 clamp(5rem,10vw,13rem)/1 'Permanent Marker';opacity:.07;white-space:nowrap}
.stage img{position:relative;max-width:88%;max-height:66vh;object-fit:contain;filter:drop-shadow(0 24px 40px rgba(0,0,0,.55))}
.stage .kj{position:relative;font:800 12rem/1 'Sora';color:var(--c);opacity:.85}
.lbl{font-size:.72rem;letter-spacing:.14em;opacity:.85}
.info h1{margin:10px 0 6px}.role{color:var(--c);font-weight:600;margin-bottom:14px}
.bio{color:rgba(255,255,255,.7);font-size:.9rem;max-width:52ch;margin-bottom:22px}
.bars{display:grid;gap:10px;margin-bottom:24px;max-width:420px}
.bars div{display:grid;grid-template-columns:70px 1fr 30px;gap:10px;align-items:center;font-size:.75rem}
.bars u{display:block;height:4px;border-radius:4px;background:var(--line)}.bars u i{display:block;height:100%;border-radius:4px;background:var(--c)}
.spec{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
.spec span{font-size:.72rem;padding:4px 14px;border:1px solid var(--line);border-radius:999px;color:rgba(255,255,255,.75)}
.buyrow{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px}
.price{font-size:1.5rem;font-weight:600;margin-right:6px}
.qty{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px}
.qty button{width:34px;height:34px;border:0;background:none;color:#fff;font-size:1.1rem;cursor:pointer;border-radius:50%}
.qty button:hover,.qty button:focus-visible{background:var(--card);outline:none}.qty b{min-width:26px;text-align:center;font-size:.85rem}
.more{padding:20px 5vw 70px;max-width:1200px;margin:auto}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:14px}
.gc{text-decoration:none;text-align:center;font-size:.8rem}
.gc .im{aspect-ratio:3/4;border-radius:16px;display:grid;place-items:center;font:800 2.6rem 'Sora';overflow:hidden;border:1px solid var(--line);transition:transform .2s}
.gc:hover .im,.gc:focus-visible .im{transform:translateY(-5px)}.gc.on .im{outline:2px solid var(--c)}
.gc img{width:100%;height:100%;object-fit:cover;object-position:top}.gc span{display:block;margin-top:6px;opacity:.8}
.pn{display:flex;justify-content:space-between;gap:10px;margin-top:22px}
.pn a{font-size:.78rem;color:var(--c);text-decoration:none}
/* checkout */
.co{max-width:1100px;margin:auto;padding:0 5vw 80px}
.steps{display:flex;gap:8px;margin:6px 0 26px;flex-wrap:wrap}
.steps span{font-size:.75rem;padding:6px 16px;border-radius:999px;border:1px solid var(--line);opacity:.55}
.steps .on{opacity:1;border-color:var(--c);color:var(--c)}.steps .done{opacity:1;background:var(--c);color:var(--ink);border-color:var(--c)}
.cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:28px;align-items:start}
.box{background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px}
.line{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.line:first-of-type{padding-top:0}.line .im{width:64px;height:80px;border-radius:12px;overflow:hidden;display:grid;place-items:center;font:800 1.6rem 'Sora'}
.line img{width:100%;height:100%;object-fit:cover;object-position:top}.line a{font-weight:600;text-decoration:none}.line small{display:block;opacity:.6;font-size:.72rem}
.line .r{text-align:right}.rm{background:none;border:0;color:rgba(255,255,255,.55);font-size:.7rem;cursor:pointer;text-decoration:underline;margin-top:4px}
.fg{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fg .w{grid-column:1/-1}
label{font-size:.72rem;opacity:.75;display:block;margin-bottom:4px}
input,select{width:100%;padding:12px 16px;border-radius:14px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);color:#fff;font-size:.85rem}
select option{color:#000}input:focus,select:focus{outline:2px solid var(--c)}
input.bad,select.bad{border-color:#ff7a7a}.err{color:#ff9a9a;font-size:.68rem;min-height:1em;display:block}
.pay{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.pay button{border:1px solid var(--c);color:var(--c);background:none;padding:7px 18px;border-radius:999px;font-size:.78rem;cursor:pointer}
.pay button[aria-selected=true]{background:var(--c);color:var(--ink);font-weight:800}
.sum p{display:flex;justify-content:space-between;font-size:.85rem;padding:4px 0}.sum .tot{font-size:1.15rem;font-weight:800;border-top:1px solid var(--line);margin-top:8px;padding-top:12px}
.sum small{opacity:.55;font-size:.7rem}.promo{display:flex;gap:8px;margin:14px 0}.promo .pill{padding:8px 16px}
.nav{display:flex;justify-content:space-between;gap:10px;margin-top:22px;flex-wrap:wrap}
.ok{text-align:center;padding:50px 20px;max-width:560px;margin:auto}.ok .tick{width:72px;height:72px;border-radius:50%;background:var(--c);color:var(--ink);font-size:2rem;display:grid;place-items:center;margin:0 auto 18px;font-weight:800}
.empty{text-align:center;padding:40px 10px}.empty p{margin:8px 0 20px;opacity:.7}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,120px);background:#fff;color:var(--ink);font-weight:600;font-size:.85rem;padding:10px 22px;border-radius:999px;transition:transform .3s;z-index:9}#toast.on{transform:translate(-50%,0)}
@media(max-width:820px){.cp,.cols{grid-template-columns:1fr}.stage{min-height:50vh}.top nav a.hd{display:none}.fg{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}






