:root{color:#eef6f0;font-synthesis:none;background:#160d0a;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}:focus-visible{outline-offset:3px;outline:3px solid #65dfa7}.board-loading,.board-fallback,.fatal-error{text-align:center;color:#a7b8af;place-content:center;min-height:100%;padding:2rem;display:grid}.fatal-error{gap:1rem;min-height:100vh}.fatal-error .primary{justify-self:center}body{background:radial-gradient(circle at 30% 10%,#4a2119 0,#160d0a 44%);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.35}.logo,.brand{letter-spacing:.34em;color:#65dfa7;font-weight:800}.eyebrow{text-transform:uppercase;letter-spacing:.2em;color:#65dfa7;font-size:.72rem;font-weight:700}.lede{color:#a7b8af;max-width:600px;font-size:1.15rem;line-height:1.7}.primary,.danger,.ghost,.choice-box button,.power-options button,.shift-buttons button{color:#06100c;background:#65dfa7;border:0;border-radius:10px;padding:.75rem 1rem;font-weight:700}.large{width:100%;margin-top:1rem;padding:1rem}.fine,.muted{color:#82948a;font-size:.8rem}.game-shell{flex-direction:column;min-height:100vh;display:flex}.game-shell header{background:#160d0ae8;border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;height:64px;padding:0 2rem;display:flex}.brand span{letter-spacing:.08em;color:#75867d;font-weight:500}.turn-pill{background:#ffffff0c;border:1px solid #ffffff17;border-radius:99px;padding:.5rem .8rem;font-size:.82rem}.turn-pill i{background:var(--player);width:.55rem;height:.55rem;box-shadow:0 0 12px var(--player);border-radius:50%;margin-right:.35rem;display:inline-block}.ghost{color:#9aaba2;background:0 0;border:1px solid #ffffff18}.scorebar{border-bottom:1px solid #ffffff10;grid-template-columns:repeat(4,1fr);display:grid}.scorebar>div{opacity:.56;border-right:1px solid #ffffff10;grid-template-columns:1fr auto;gap:.15rem .5rem;padding:.7rem 1rem;display:grid}.scorebar>div.active{opacity:1;background:#ffffff06}.scorebar b{grid-row:span 2}.scorebar span{color:#91a399;font-size:.7rem}.arena{flex:1;grid-template-columns:minmax(0,1fr) 390px;min-height:0;display:grid}.board-wrap{min-height:600px;position:relative}.board-canvas{touch-action:none;outline:0;width:100%;height:100%;display:block}.legend{color:#a9b8b0;background:#160d0acc;border-radius:99px;gap:1rem;padding:.55rem .8rem;font-size:.68rem;display:flex;position:absolute;bottom:1rem;left:1rem}.legend i{border-radius:2px;width:.55rem;height:.55rem;margin-right:.2rem;display:inline-block}.power-space{background:#2f9f76}.trap-marker{background:#111827;border:1px solid #ccc}.panel{background:#21120f;border-left:1px solid #ffffff14;max-height:calc(100vh - 117px);padding:1.25rem;overflow:auto}.phase{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.phase span{color:#71847a;text-transform:uppercase;font-size:.72rem}.phase strong{color:#cbd9d1;font-size:.86rem}.die{color:#14231d;background:#f2f0df;border-radius:15px;place-items:center;width:66px;height:66px;margin:.5rem auto 1rem;font-size:2.2rem;font-weight:800;display:grid;box-shadow:0 8px 25px #0007}.die.waiting{color:#87928b}.instruction{color:#9dafa5;font-size:.85rem;line-height:1.5}.roll{width:100%;margin:1rem 0;display:block}.notice,.error{border-radius:8px;padding:.7rem;font-size:.78rem}.notice{color:#e8c982;background:#2f9f7622}.error{color:#fca5a5;background:#ef444422}.choice-box,.commit-box,.reward{background:#ffffff08;border:1px solid #ffffff13;border-radius:12px;flex-direction:column;gap:.5rem;padding:.8rem;display:flex}.moves{gap:.5rem;display:grid}.moves>button{text-align:left;color:#dce7e1;background:#ffffff06;border:1px solid #ffffff12;border-radius:10px;padding:.7rem;display:grid}.moves>button.selected,.power-options .selected{background:#65dfa714;border-color:#65dfa7}.moves span{color:#91a299;font-size:.75rem}.moves em{color:#e8c982;font-size:.7rem}.commit-box{margin-top:.8rem}.commit-box p{color:#afbeb6;margin:0;font-size:.75rem}.power-options,.shift-buttons{flex-wrap:wrap;gap:.35rem;display:flex}.power-options button,.shift-buttons button{color:#d5e4dc;background:#22342d;border:1px solid #ffffff18;padding:.5rem;font-size:.7rem}.danger{color:#fff;background:#f97316;width:100%}.hand{border-top:1px solid #ffffff12;margin-top:1rem;padding-top:1rem}.hand>div:first-child{justify-content:space-between;font-size:.78rem;display:flex}.cards{gap:.4rem;margin-top:.6rem;display:grid}.cards button,.reward-grid button{color:#e4eee8;text-align:left;background:#182923;border:1px solid #ffffff18;border-radius:9px;padding:.65rem}.cards b,.reward-grid b{color:#e8c982;font-size:.8rem;display:block}.cards small,.reward-grid span{color:#91a39a;margin-top:.2rem;font-size:.67rem;display:block}.shift-buttons{margin-top:.5rem}.log{border-top:1px solid #ffffff12;margin-top:1.2rem;padding-top:1rem}.log>b{text-transform:uppercase;letter-spacing:.12em;color:#71847a;font-size:.72rem}.log p{color:#9caca3;margin:.45rem 0;font-size:.72rem}.log p:first-of-type{color:#e0e8e3}.reward h3{margin:.2rem 0}.reward label{font-size:.75rem}.reward select{color:#fff;background:#0a1713;border:1px solid #ffffff20;width:100%;margin-top:.3rem;padding:.6rem;display:block}.reward-grid{gap:.45rem;display:grid}.victory{text-align:center;padding:2rem 0}.victory>span{color:#65dfa7;font-size:3rem}.shifted{text-align:center;color:#e8c982;font-size:.75rem}@media (width<=900px){.arena{grid-template-columns:1fr}.board-wrap{height:58vh;min-height:420px}.panel{border-top:1px solid #ffffff14;border-left:0;max-height:none}.game-shell header{padding:0 .8rem}.brand span,.scorebar span{display:none}.scorebar>div{padding:.55rem;font-size:.72rem;display:block}.legend{border-radius:12px;flex-wrap:wrap;max-width:90%}.turn-pill{font-size:.7rem}}@media (width<=520px){.game-shell header .ghost{padding:.45rem;font-size:.65rem}.board-wrap{height:48vh;min-height:330px}.panel{padding:1rem}}.portal{grid-template-columns:1fr 1fr;align-items:center;min-height:100vh;padding:clamp(2rem,7vw,8rem);display:grid;position:relative;overflow:hidden}.portal:before{content:"";background:radial-gradient(circle at 72% 46%,#6d28d933,#0000 32%),linear-gradient(125deg,#0000 55%,#65dfa70d);position:absolute;inset:0}.portal>section{z-index:1;max-width:720px;position:relative}.portal h1,.online-hero h1{letter-spacing:-.065em;margin:.8rem 0 2rem;font-size:clamp(3.4rem,7vw,7.6rem);line-height:.88}.portal h1 em,.online-hero h1 em{color:#e8c982;font-family:Georgia,Times New Roman,serif}.portal-mark{aspect-ratio:1;filter:drop-shadow(0 30px 70px #000);justify-self:center;width:min(36vw,520px);position:relative}.portal-mark:before,.portal-mark:after,.portal-mark span,.portal-mark i,.portal-mark b{content:"";border:2px solid #65dfa755;border-radius:18%;position:absolute;inset:12%;transform:rotate(45deg)}.portal-mark:after{border-color:#c084fc99;inset:26%}.portal-mark span{background:#65dfa7;border:0;inset:39%;box-shadow:0 0 80px #65dfa7}.portal-mark i{border-color:#ffffff0f;inset:2%}.portal-mark b{border-style:dashed;animation:24s linear infinite lantern-spin;inset:20%}@keyframes lantern-spin{to{transform:rotate(405deg)}}.portal-actions{grid-template-columns:1.2fr 1fr;gap:.75rem;max-width:640px;display:grid}.portal-actions button{text-align:left;margin:0}.portal-actions b,.portal-actions span{display:block}.portal-actions span{opacity:.7;margin-top:.25rem;font-size:.72rem;font-weight:500}.portal-trust,.commerce-note{color:#82948a;margin-top:1rem;font-size:.74rem}.root-back{z-index:8;position:fixed;top:1.25rem;left:1.25rem}.online-loading,.identity-page{place-items:center;min-height:100vh;display:grid}.identity-page>.ghost{position:absolute;top:1.5rem;left:1.5rem}.identity-card{background:#2b1813ee;border:1px solid #65dfa733;border-radius:28px;width:min(520px,100vw - 2rem);padding:2.5rem;box-shadow:0 30px 100px #000a}.identity-card h1{margin:.5rem 0;font-size:2.7rem;line-height:1}.identity-card>p{color:#9dafa5;line-height:1.55}.identity-card label{color:#a7b8af;font-size:.75rem;display:block}.identity-card input,.room-actions input{color:#fff;background:#160d0a;border:1px solid #fff2;border-radius:10px;width:100%;margin-top:.35rem;padding:.9rem}.online-hub{background:radial-gradient(circle at 80% 10%,#4c1d9544,#0000 34%),#160d0a;min-height:100vh}.online-hub>header,.lobby>header{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;height:68px;padding:0 2rem;display:flex}.profile-chip,.connection{background:#ffffff0b;border:1px solid #ffffff16;border-radius:99px;padding:.55rem .75rem;font-size:.76rem}.connection i{background:#f97316;border-radius:50%;width:.5rem;height:.5rem;margin-right:.4rem;display:inline-block}.connection i.online{background:#65dfa7;box-shadow:0 0 9px #65dfa7}.online-hero{grid-template-columns:minmax(0,1fr) minmax(300px,480px);align-items:end;column-gap:6vw;padding:clamp(3rem,7vw,7rem);display:grid}.online-hero h1{grid-column:1;margin-bottom:0}.online-hero>p:not(.eyebrow){color:#9dafa5;grid-column:1;max-width:640px;font-size:1.05rem;line-height:1.6}.room-actions{background:#2b1813dd;border:1px solid #ffffff17;border-radius:24px;grid-area:1/2/4;padding:1.2rem}.room-actions>div{grid-template-columns:1fr auto;gap:.5rem;margin-top:.6rem;display:grid}.room-actions input{letter-spacing:.15em;text-transform:uppercase;margin:0}.room-actions>div button{border:0;border-radius:10px;padding:0 1rem;font-weight:700}.progress-card{background:#2b1813;border:1px solid #ffffff12;border-radius:24px;grid-template-columns:1fr 1fr;gap:1rem;margin:0 clamp(1rem,7vw,7rem) 4rem;padding:1.5rem;display:grid}.progress-card h2{margin:.2rem 0;font-size:2.3rem}.progress-card progress{accent-color:#65dfa7;width:100%}.progress-card small{color:#82948a;margin-top:.7rem;display:block}.trust-card{grid-template-columns:1fr 1fr;align-content:center;gap:.5rem;display:grid}.trust-card b{color:#65dfa7;grid-column:1/-1}.trust-card span{background:#ffffff08;border-radius:8px;padding:.6rem;font-size:.75rem}.collection{padding:0 clamp(1rem,7vw,7rem) 7rem}.collection>div:first-child{max-width:620px}.cosmetic-grid{grid-template-columns:repeat(5,minmax(170px,1fr));gap:.75rem;margin-top:1.5rem;padding-bottom:.5rem;display:grid;overflow:auto}.cosmetic-grid article{border:1px solid #ffffff13;border-top:3px solid var(--cosmetic);background:#0e201a;border-radius:14px;flex-direction:column;min-height:230px;padding:1rem;display:flex}.cosmetic-grid article i{background:var(--cosmetic);width:2.4rem;height:2.4rem;box-shadow:0 0 22px var(--cosmetic);border-radius:50%}.cosmetic-grid h3{margin:.8rem 0 .2rem}.cosmetic-grid p{color:#91a39a;flex:1;font-size:.72rem}.cosmetic-grid strong{color:var(--cosmetic);margin:.5rem 0;font-size:.75rem}.cosmetic-grid button{color:#fff;background:#1b332a;border:1px solid #ffffff18;border-radius:8px;padding:.55rem}.lobby{background:radial-gradient(circle,#17392b,#160d0a 62%);min-height:100vh}.lobby>section{text-align:center;width:min(760px,100vw - 2rem);margin:6vh auto}.lobby h1{letter-spacing:.18em;color:#65dfa7;text-shadow:0 0 40px #65dfa744;margin:.3rem 0;font-size:clamp(4rem,11vw,8rem)}.lobby>section>p{color:#91a39a}.lobby-seats{grid-template-columns:repeat(4,1fr);gap:.7rem;margin:2rem 0;display:grid}.lobby-seats article{border-top:4px solid var(--color);background:#2b1813;border-radius:12px;gap:.35rem;padding:1.2rem .7rem;display:grid}.lobby-seats article>span{color:#71847a;font-size:.65rem}.lobby-seats small{color:#82948a}.waiting-turn{text-align:center;color:#a7b8af;background:#ffffff06;border-radius:12px;padding:1.5rem}.online-match .panel{background:linear-gradient(#2b1813,#160d0a)}@media (width<=900px){.portal{grid-template-columns:1fr;padding:2rem}.portal-mark{opacity:.22;width:80vw;position:absolute;right:-35vw}.portal-actions{grid-template-columns:1fr}.online-hero{grid-template-columns:1fr;padding:3rem 1.25rem}.online-hero h1,.online-hero>p:not(.eyebrow),.room-actions{grid-area:auto/1}.online-hero h1{font-size:4.2rem}.progress-card{grid-template-columns:1fr;margin:0 1rem 3rem}.collection{padding:0 1rem 4rem}.cosmetic-grid{grid-template-columns:repeat(5,210px)}.lobby-seats{grid-template-columns:1fr 1fr}.online-hub>header .brand{display:none}}@media (width<=520px){.portal h1{font-size:3.3rem}.portal-mark{display:block}.online-hero h1{font-size:3.5rem}.lobby h1{font-size:3.2rem}.lobby-seats,.trust-card{grid-template-columns:1fr}.online-match header .ghost{font-size:.62rem}}@media (prefers-reduced-motion:reduce){.portal-mark b{animation:none}}:root{--ink:#24120f;--paper:#f8efd9;--paper-muted:#cfbea2;--lacquer:#351412;--lacquer-deep:#160d0a;--brass:#d4a95d;--jade:#65dfa7}body{background:radial-gradient(circle at 18% 8%, #54271e 0, transparent 34%), repeating-linear-gradient(90deg, #ffffff03 0 1px, transparent 1px 7px), var(--lacquer-deep)}.logo,.brand,.eyebrow{color:var(--brass)}.portal h1,.online-hero h1,.identity-card h1,.lobby h1,.progress-card h2,.collection h2{font-family:Georgia,Times New Roman,serif;font-weight:700}.portal h1,.online-hero h1{letter-spacing:-.052em;line-height:.92}.portal h1 em,.online-hero h1 em{color:var(--jade)}.portal:before{background:radial-gradient(circle at 28%,#d4a95d12,#0000 26%),linear-gradient(125deg,#0000 55%,#7f2d2524)}.portal-mark{filter:drop-shadow(0 34px 42px #090403cc)}.portal-mark:before,.portal-mark i{border-color:#d4a95d66}.portal-mark:after{background:#35141266;border-color:#7f2d25;box-shadow:inset 0 0 60px #050201aa}.portal-mark b{border-color:#d4a95d77}.portal-mark span{background:var(--jade);box-shadow:0 0 65px #65dfa777}.primary,.choice-box button,.roll{background:var(--jade);color:var(--ink);box-shadow:inset 0 -2px #1c6f51aa}.ghost,.profile-chip,.connection{border-color:#d4a95d33}.game-shell header,.online-hub>header,.lobby>header{background:#1c0f0ce8;border-color:#d4a95d24;box-shadow:0 5px 22px #07030266}.scorebar{background:#27130f;border-color:#d4a95d1f}.scorebar>div.active{background:linear-gradient(#d4a95d16,#0000)}.board-wrap{background:#090604}.legend{color:var(--paper-muted);background:#21120fe8;border:1px solid #d4a95d33;box-shadow:0 8px 28px #08030288}.power-space{background:#2f9f76;border-radius:50%!important}.panel,.online-match .panel{background:linear-gradient(#2b1813ee,#1b0f0cee),repeating-linear-gradient(0deg,#0000 0 23px,#d4a95d08 23px 24px);border-color:#d4a95d2b}.die{background:var(--paper);color:var(--ink);border:1px solid #d4a95d;box-shadow:0 10px 30px #080302aa}.choice-box,.commit-box,.reward,.waiting-turn{background:#f8efd90b;border-color:#d4a95d30;box-shadow:inset 0 1px #ffffff0a}.moves>button,.cards button,.reward-grid button{background:#f8efd909;border-color:#d4a95d26}.moves>button.selected,.power-options .selected{border-color:var(--jade);background:#65dfa715}.cards b,.reward-grid b,.moves em,.shifted{color:#e8c982}.danger{background:#a94331;box-shadow:inset 0 -2px #5f1d16}.online-hub{background:radial-gradient(circle at 88% 5%, #7f2d253d, transparent 34%), repeating-linear-gradient(90deg, #ffffff02 0 1px, transparent 1px 8px), var(--lacquer-deep)}.room-actions,.progress-card,.cosmetic-grid article,.lobby-seats article,.identity-card{background:linear-gradient(145deg,#3a1c16,#24130f);border-color:#d4a95d2b;box-shadow:0 22px 55px #08030266,inset 0 1px #ffffff0a}.cosmetic-grid article{border-top-width:5px}.cosmetic-grid article i{box-shadow:0 8px 22px color-mix(in srgb, var(--cosmetic) 42%, transparent);border-radius:12px 12px 50% 50%}.lobby{background:radial-gradient(circle at 50% 22%, #663027 0, transparent 34%), var(--lacquer-deep)}.lobby h1{color:var(--paper);text-shadow:0 6px #4d1f19,0 18px 45px #080302}.invite-card{text-align:left;background:var(--paper);color:var(--ink);border:1px solid var(--brass);border-radius:18px;grid-template-columns:1fr auto;align-items:center;gap:1.25rem;margin:1.5rem 0;padding:1.2rem;display:grid;box-shadow:0 20px 55px #08030288}.invite-card h2{margin:.2rem 0;font-family:Georgia,Times New Roman,serif;font-size:1.55rem}.invite-card p:not(.eyebrow){color:#6b5143;margin:.35rem 0 .8rem;font-size:.82rem}.invite-card img{image-rendering:pixelated;border-radius:10px;display:block}.invite-link{grid-template-columns:minmax(0,1fr) auto;gap:.45rem;display:grid}.invite-link input{min-width:0;color:var(--ink);background:#fffaf0;border:1px solid #8a6a4e;border-radius:8px;padding:.65rem;font-size:.72rem}.invite-link button{background:var(--lacquer);color:var(--paper);border:0;border-radius:8px;padding:0 .9rem;font-weight:700}@media (width<=620px){.invite-card{text-align:center;grid-template-columns:1fr}.invite-card img{grid-row:1;width:148px;height:148px;margin:auto}.invite-link{grid-template-columns:1fr}.invite-link button{min-height:44px}}
