:root{--g:#9dff5c;--p:#ff4a4a;--red:#c8102e;--gold:#ffd36b;--ink:#e9f0ff;--dim:#93a0b8}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,Segoe UI,sans-serif;color:var(--ink);background:#07060d url(assets/bg.webp) center/cover fixed;min-height:100vh}
.wrap{max-width:540px;margin:0 auto;padding:14px 14px calc(124px + env(safe-area-inset-bottom));background:linear-gradient(#07060dcc,#07060dee)}
header{display:flex;align-items:center;gap:10px}header img{height:44px}.bal{margin-left:auto;display:flex;align-items:center;gap:6px;background:#1b1530;border:1px solid #d4a53a;padding:6px 12px;border-radius:99px;font-weight:800}
.bal img{width:22px}.card{background:linear-gradient(160deg,#2a0c12ee,#12070aee);border:1px solid #8a5a1c;border-radius:18px;padding:14px;margin-top:12px;box-shadow:0 8px 30px #0008}
h2{margin:0 0 8px;font-size:17px;letter-spacing:.5px}.muted{color:var(--dim);font-size:13px}
.prof{display:flex;gap:14px;align-items:center}.ava{width:84px;height:84px;border-radius:50%;border:3px solid var(--gold);box-shadow:0 0 18px #ffd36b66;background:#000 center/cover}
.lvl{display:inline-block;background:var(--p);color:#120a26;font-weight:900;border-radius:8px;padding:2px 8px;font-size:12px}
.bar{height:8px;border-radius:9px;background:#2a2148;overflow:hidden;margin-top:6px}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--g),var(--gold))}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}.stat{background:#120e22;border-radius:12px;padding:8px;text-align:center}.stat b{display:block;font-size:18px;color:var(--g)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.it{background:#120e22;border:2px solid #333;border-radius:12px;padding:6px;text-align:center;font-size:11px;min-height:78px}
.it img{width:36px;height:36px}.r0{border-color:#8a93a6}.r1{border-color:#5cd68b}.r2{border-color:#4fa9ff}.r3{border-color:#c06bff}.r4{border-color:var(--gold);box-shadow:0 0 12px #ffd36b66}
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:10;padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:center;background:#0b0916f2;border-top:1px solid #3a2d66}
.tabs button{flex:0 1 92px;background:none;border:0;color:var(--dim);padding:8px 2px;font-weight:800;font-size:11px;line-height:1.5}.tabs .on{color:var(--g)}
.btn{border:0;border-radius:14px;padding:13px 16px;font-weight:900;font-size:15px;cursor:pointer}.b1{background:linear-gradient(#b5ff7d,#5fd12a);color:#0c1a04}.b2{background:linear-gradient(#ff5a5a,#a50d22);color:#fff;border:1px solid #ffd36b}
.btn:disabled{opacity:.45}.syms{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}.sym{background:#120e22;border:2px solid #3a2d66;border-radius:12px;padding:4px}.sym.on{border-color:var(--g);box-shadow:0 0 12px #9dff5c66}.sym img{width:100%}
.dice{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;margin:12px 0}.die{aspect-ratio:1;background:#f4efe3;border-radius:12px;display:grid;place-items:center;box-shadow:inset 0 -4px #c9bfa8}.die img{width:78%;max-height:78%;object-fit:contain}.die.hit{outline:3px solid var(--g)}
table{width:100%;border-collapse:collapse;font-size:13px}td{padding:5px 4px;border-bottom:1px solid #2a2148}td:last-child{text-align:right;font-weight:800}
.result{text-align:center;padding:10px;border-radius:14px;background:#120e22;margin-top:10px}.row{display:flex;gap:8px}.row .btn{flex:1}
.login{text-align:center;padding:40px 10px}input{background:#120e22;border:1px solid #3a2d66;color:var(--ink);border-radius:10px;padding:9px;font-size:14px;width:100%}
.hero{position:relative;border-radius:18px;overflow:hidden;border:2px solid #d4a53a;box-shadow:0 0 24px #c8102e55}.hero>img{width:100%;display:block}
.hero .ov{position:absolute;left:0;right:0;bottom:0;padding:12px;background:linear-gradient(transparent,#0a0306f0);display:flex;gap:12px;align-items:flex-end}
.hero .ava{width:64px;height:64px}.chips{display:flex;gap:8px;margin-top:10px}.chip{flex:1;background:linear-gradient(#3a0c14,#1c0609);border:1px solid #d4a53a;border-radius:12px;padding:8px;text-align:center;font-size:12px}
.chip b{display:block;font-size:18px;color:var(--gold)}.games{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.game{position:relative;border-radius:16px;overflow:hidden;border:2px solid #d4a53a;background:#12070a;cursor:pointer;box-shadow:0 6px 20px #0009}.game img{width:100%;display:block;aspect-ratio:4/3;object-fit:cover}
.game .gi{padding:8px 10px}.game .gi b{display:block;color:var(--gold)}.game .tag{position:absolute;top:8px;left:8px;background:var(--red);color:#fff;font-size:10px;font-weight:900;padding:2px 8px;border-radius:99px;border:1px solid #ffd36b}
.game.soon{filter:saturate(.5) brightness(.75);cursor:default;border-color:#5a3a1c}.game.soon .tag{background:#333}
.modal{position:fixed;inset:0;background:#000b;display:grid;place-items:center;z-index:20;padding:14px}.modal .card{max-width:500px;width:100%}
.cal{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.day{border:2px solid #5a3a1c;border-radius:14px;padding:8px 4px;text-align:center;background:#1c0609}.day img{width:34px}
.day b{display:block;color:var(--gold);font-size:16px}.day.done{opacity:.55}.day.done:after{content:'✓';color:var(--g);font-weight:900}.day.today{border-color:var(--gold);box-shadow:0 0 16px #ffd36b88;transform:scale(1.04)}
.day.d7{grid-column:span 2;background:linear-gradient(#5a0d1a,#1c0609)}.day.d7 img{width:54px}
input[type=range]{width:100%;accent-color:#ffd36b;padding:0}.sl{margin:8px 0}.sl label{display:flex;justify-content:space-between;font-size:13px}.sl label b{color:var(--gold)}
.adv li{margin:6px 0;font-size:13px;line-height:1.35}.kv{display:grid;grid-template-columns:1fr 1fr;gap:6px}.kv div{background:#1c0609;border-radius:10px;padding:6px 8px;font-size:12px}.kv b{display:block;color:var(--gold);font-size:16px}
.hash{font-family:monospace;font-size:10px;word-break:break-all;color:var(--dim)}.seg{display:flex;gap:6px;margin-top:12px}.seg button{flex:1}
.warn{font-size:11px;color:#ffb3b3;border:1px solid #6a1a24;border-radius:10px;padding:6px 8px;margin-top:8px}
.q{display:flex;gap:10px;align-items:center;background:#1c0609;border:1px solid #5a3a1c;border-radius:14px;padding:10px;margin-top:8px}.q.done{border-color:var(--g)}.q .t{flex:1}.q img{width:34px}
.q .bar{margin-top:4px}.q .btn{padding:8px 10px;font-size:13px}.lb{display:flex;align-items:center;gap:10px;padding:8px;border-bottom:1px solid #2a2148}.lb.me{background:#2a0c12;border-radius:12px;border:1px solid var(--gold)}
.lb .rk{width:30px;font-weight:900;color:var(--gold);text-align:center;font-size:16px}.lb .ava{width:40px;height:40px;border-width:2px}.lb b.s{margin-left:auto;color:var(--g)}
.pg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pg .stat b{font-size:20px}.age{text-align:center}.age img{width:110px}

.notice{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#1d1430;color:#fff;border:1px solid #6b4bd1;padding:10px 16px;border-radius:12px;z-index:50;max-width:90vw;text-align:center}

.dailybar{display:flex;gap:8px;align-items:center;justify-content:space-between;background:#1a0f0f;border:1px solid #a33;border-radius:12px;padding:8px 12px;margin:12px 0 0;width:100%;box-sizing:border-box}.dailybar span{flex:1}
.dailybar button.ghost{background:none;border:0;color:#aaa}
/* ---- Soul Shrine table (no betting) ---- */
.table-wrap{margin-top:12px}
.felt{position:relative;border-radius:26px;padding:12px 12px 0;background:radial-gradient(ellipse at 50% 40%,#1f7a46 0%,#125532 55%,#0a3520 100%);
 border:3px solid #e8b53a;box-shadow:0 0 0 6px #3b2208,0 0 0 8px #ffd36b88,0 0 34px #ffcf4a55,inset 0 0 60px #0009;overflow:hidden}
.felt:before{content:"";position:absolute;inset:8px;border:1px dashed #ffd36b55;border-radius:20px;pointer-events:none}
.felt.rolling{animation:feltPulse .7s ease-in-out infinite alternate}
@keyframes feltPulse{to{box-shadow:0 0 0 6px #3b2208,0 0 0 8px #ffd36b,0 0 50px #ffd36baa,inset 0 0 60px #0009}}
.rim-title{text-align:center;font-weight:900;letter-spacing:4px;font-size:13px;color:#ffd36b;text-shadow:0 0 10px #ffb30088;margin-bottom:8px}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;position:relative;z-index:1}
.tile{background:linear-gradient(160deg,#0f4a2bcc,#08301ccc);border:2px solid #d6a23a;border-radius:14px;padding:6px 4px 5px;text-align:center;transition:transform .2s,box-shadow .2s}
.tile img{width:56px;height:56px;object-fit:contain;filter:drop-shadow(0 3px 4px #0008)}.tile b{display:block;font-size:11px;color:#ffe9a8;letter-spacing:.3px}
.tile.hit{border-color:#fff2a8;animation:tileGlow .8s ease-in-out infinite alternate}.tile.h2{transform:scale(1.04)}.tile.h3{transform:scale(1.08)}
@keyframes tileGlow{from{box-shadow:0 0 6px #ffd36b88}to{box-shadow:0 0 22px #ffe066,inset 0 0 18px #ffd36b66}}
.hist{display:flex;justify-content:center;gap:2px;margin-top:4px;min-height:14px}.hist i{font-style:normal;font-size:9px;line-height:13px;min-width:13px;border-radius:4px;background:#0006;color:#7fa58c}
.hist i.k1{background:#3a5f2a;color:#d8ffc0}.hist i.k2{background:#a77a1c;color:#fff4c8}.hist i.k3{background:#ffd36b;color:#3a2200;font-weight:900}
.lane{position:relative;height:150px;margin:6px -12px 0;perspective:700px}
.lane-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#ffd36b99;font-weight:800;letter-spacing:2px;font-size:13px}
.felt.rolling .lane-hint{color:#ffd36b;animation:blink .5s infinite alternate}@keyframes blink{to{opacity:.35}}
.die3d{position:absolute;width:52px;height:52px;transform:translate(-50%,-50%);transform-style:preserve-3d}
.die3d .shadow{position:absolute;left:4px;right:4px;bottom:-12px;height:10px;border-radius:50%;background:#0008;filter:blur(3px);transform:translateZ(-40px)}
.cube{position:absolute;inset:0;transform-style:preserve-3d}
.face{position:absolute;inset:0;border-radius:10px;background:radial-gradient(circle at 35% 30%,#fffaf0,#efe0bf 60%,#cdb486);border:2px solid #b8862b;
 display:flex;align-items:center;justify-content:center;backface-visibility:hidden;box-shadow:inset 0 0 8px #8a5a1c66}
.face img{width:80%;height:80%;object-fit:contain}
.f0{transform:translateZ(26px)}.f1{transform:rotateY(90deg) translateZ(26px)}.f2{transform:rotateY(180deg) translateZ(26px)}
.f3{transform:rotateY(-90deg) translateZ(26px)}.f4{transform:rotateX(90deg) translateZ(26px)}.f5{transform:rotateX(-90deg) translateZ(26px)}
.reveal{position:absolute;left:0;right:0;top:18%;text-align:center;pointer-events:none;opacity:0;transform:scale(.6);transition:opacity .35s,transform .45s cubic-bezier(.2,1.6,.4,1);z-index:3}
.reveal.show{opacity:1;transform:scale(1)}
.rv-card{display:inline-block;min-width:72%;max-width:94%;background:#1a0f02f2;border:3px solid #ffd36b;padding:14px 22px;border-radius:16px;box-shadow:0 0 44px #ffd36baa}
.rv-tier{font-weight:900;font-size:18px;letter-spacing:5px;text-transform:uppercase;color:#ffd36b}
.rv-name{margin:8px 0;font-size:34px;line-height:1.1;font-weight:900;color:#ffe27a;text-shadow:0 0 12px #ffb300,0 2px 0 #6b3d00}
.rv-sub{font-size:15px;color:#fff3cf}.rv-icon{width:36px;height:36px;vertical-align:middle;margin-right:6px}
.rv-tier.r3,.rv-tier.r4{color:#fff;text-shadow:0 0 10px #ffd36b,0 0 20px #ff9d00}
.rollbar{display:flex;align-items:center;gap:10px;margin-top:12px}
.wallet{display:flex;align-items:center;gap:6px;background:#1b1530;border:1px solid #d4a53a;border-radius:99px;padding:8px 12px;font-size:14px}.wallet img{width:22px}
.rollbtn{flex:1;font-size:17px;padding:14px;background:linear-gradient(#ffe27a,#e0a82a);color:#2a1600;border:2px solid #fff0b0;box-shadow:0 0 16px #ffd36b88;font-weight:900}
.rollbtn:disabled{filter:grayscale(.6) brightness(.7)}.center{text-align:center}
.pity{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.pity div{background:#120e22;border:1px solid #8a5a1c;border-radius:12px;padding:8px;text-align:center}
.pity b{display:block;font-size:20px;color:#ffd36b}.pity span{font-size:11px;color:var(--dim)}
.flyer{position:fixed;width:22px;height:22px;z-index:99;pointer-events:none;filter:drop-shadow(0 0 8px #ffd36b)}
.tabs button.ping{animation:ping .6s 2}@keyframes ping{50%{transform:scale(1.25);color:#ffd36b}}

/* journey, ideas, onboarding, toss copy, a11y */
.journey .jl{display:flex;align-items:center;gap:4px;flex-wrap:wrap;justify-content:center}.journey i{color:var(--dim);font-style:normal}
.jc{display:flex;flex-direction:column;align-items:center;font-size:11px;padding:4px 6px;border-radius:10px;min-width:60px;text-align:center}
.jc.done{color:var(--g)}.jc.current{background:#2a1f4a;color:#ffd36b}.jc.ahead{color:var(--dim)}
.row2{display:flex;gap:8px}.row2 .btn{flex:1}
.it.locked{opacity:.55}.err{color:#ff8080}.tip{margin-top:10px}.mind{font-style:italic;color:#b9a7ff;margin:6px 0 0}.mind.good{color:#ffd36b}
button.sym{border:0;padding:0;background:none;cursor:pointer}
textarea,select{width:100%;box-sizing:border-box;background:#120d22;color:#fff;border:1px solid #3a2d66;border-radius:10px;padding:8px;font:inherit;margin:4px 0 10px}
:focus-visible{outline:3px solid #ffd36b;outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
.pill{display:inline-block;padding:1px 8px;border-radius:999px;background:#2a2340;color:#e9d9ff;font-size:11px;font-weight:600}
.ballot{border-top:1px solid #333;padding-top:8px;margin-top:8px}.ballot h3{margin:4px 0;font-size:15px}
.rules{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:12px;margin:6px 0}.rules dt{color:#aaa}.rules dd{margin:0}
