:root{--ink: #100e0c;--ink-2: #171310;--panel: #1d1814;--panel-2: #241e18;--line: #35291d;--bone: #e9e2d3;--muted: #9a8f7c;--gold: #c9a227;--gold-bright: #ecc95f;--gold-dim: #7a6420;--lapis: #2f5d9c;--lapis-bright: #6f9fd8;--lapis-deep: #1c3a66;--terra: #b34a28;--terra-bright: #e08a5d;--terra-deep: #6f2a14;--silver: #b9bdc4;--iron: #6d675c;--danger: #c25b3f;--radius: 10px;--card-w: clamp(58px, 17.5vw, 92px);--font-display: "Cinzel", "Times New Roman", serif;--font-body: "Spectral", georgia, serif;--flip-ms: .46s}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,button{touch-action:manipulation}html,body,#root{height:100%;height:100dvh}body{margin:0;background:radial-gradient(120% 90% at 50% 0%,#1a150f 0%,var(--ink) 55%,#0a0806 100%);color:var(--bone);font-family:var(--font-body);overflow:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.8 0 0 0 0 0.7 0 0 0 0 0.5 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}button{font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer}.app{height:100%;overflow:hidden;display:flex;flex-direction:column;align-items:center;padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom))}.home{min-height:0;overflow-y:auto;overflow-x:hidden}.cosmos{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.cosmos:before{content:"";position:absolute;top:-8%;right:-4%;bottom:-8%;left:-4%;background:url(/bg/cosmos2.webp) center / cover no-repeat;animation:cosmos-drift 90s ease-in-out infinite alternate;will-change:transform}@media(min-width:900px){.cosmos:before{background-image:url(/bg/cosmos2-wide.webp)}}.scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;pointer-events:none}.scene__plate{position:absolute;top:-3%;right:-3%;bottom:-3%;left:-3%;will-change:transform;transition:transform .6s cubic-bezier(.2,.8,.3,1)}.scene__media{width:100%;height:100%;object-fit:cover;display:block}.scene__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#100e0cb8,#100e0c57 24%,#100e0c70 58%,#0a0806db),radial-gradient(130% 62% at 50% 46%,transparent 42%,rgba(10,8,6,.48) 100%)}.embers{position:absolute;top:0;right:0;bottom:0;left:0}.ember{position:absolute;bottom:-2%;left:calc(6% + var(--i) * 10.5%);width:3px;height:3px;border-radius:50%;background:#e8cd6f;opacity:0;filter:drop-shadow(0 0 6px rgba(232,205,111,.8));animation:ember-rise calc(11s + var(--i) * 1.7s) linear infinite;animation-delay:calc(var(--i) * -2.1s)}@keyframes ember-rise{0%{transform:translateZ(0);opacity:0}8%{opacity:.55}55%{opacity:.4}to{transform:translate3d(16px,-104vh,0);opacity:0}}@media(prefers-reduced-motion:reduce){.ember{animation:none}}@keyframes cosmos-drift{0%{transform:translateY(2.5%) scale(1.03)}to{transform:translateY(-2.5%) scale(1.09)}}.cosmos:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#100e0cc7,#100e0c61 24%,#100e0c80 58%,#0a0806e0),radial-gradient(130% 62% at 50% 46%,transparent 42%,rgba(10,8,6,.5) 100%)}@media(prefers-reduced-motion:reduce){.cosmos:before{animation:none}}.home{position:relative;z-index:1;width:min(430px,100%);margin:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px;animation:rise .6s ease-out both}.home__wordmark-wrap{margin:4vh 0 0;line-height:0;animation:rise .7s 80ms ease-out both}.home__wordmark{width:min(72vw,300px);object-fit:contain;filter:drop-shadow(0 2px 14px rgba(0,0,0,.7))}.home__crest{width:74px;margin-top:4vh;filter:drop-shadow(0 0 18px rgba(201,162,39,.25));animation:rise .7s ease-out both}.home__title{font-family:var(--font-display);font-weight:900;font-size:clamp(38px,11vw,54px);letter-spacing:.22em;margin:0 0 0 .22em;color:var(--gold-bright);text-shadow:0 1px 0 #000,0 0 34px rgba(201,162,39,.28)}.home__tagline{margin:-14px 0 0;color:var(--bone);opacity:.92;font-size:16px;text-shadow:0 1px 10px rgba(0,0,0,.85);font-style:italic;letter-spacing:.04em;animation:rise .7s .12s ease-out both}.meander{width:180px;height:12px;opacity:.8;color:var(--gold-dim);animation:rise .7s .18s ease-out both}.home__modes{display:grid;gap:12px;width:100%;animation:rise .7s .24s ease-out both}.mode-btn{position:relative;display:flex;flex-direction:column;gap:4px;padding:18px 22px;border-radius:var(--radius);border:1px solid var(--line);background:linear-gradient(180deg,#241e18e0,#1d1814eb);text-align:left;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.mode-btn:hover,.mode-btn:focus-visible{transform:translateY(-2px);border-color:var(--gold-dim);box-shadow:0 8px 28px #00000080,inset 0 0 0 1px #c9a2272e;outline:none}.mode-btn__name{font-family:var(--font-display);font-weight:700;letter-spacing:.12em;color:var(--gold-bright);font-size:17px}.mode-btn__desc{color:var(--muted);font-size:15px;line-height:1.4}.preset{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid var(--line);border-radius:999px;background:#171310d1;animation:rise .7s .3s ease-out both}.preset__glyph{padding:0 2px 0 10px;color:var(--gold-dim);font-size:15px}.preset__opt{padding:8px 14px;border-radius:999px;color:var(--muted);font-size:13.5px;letter-spacing:.06em;transition:color .14s,background .14s}.preset__opt[aria-pressed=true]{background:linear-gradient(180deg,#c9a22738,#c9a2271a);color:var(--gold-bright);box-shadow:inset 0 0 0 1px #c9a22759}.home__foot{color:var(--muted);font-size:13px;text-shadow:0 1px 8px rgba(0,0,0,.85);letter-spacing:.08em;margin-top:2vh;animation:rise .7s .36s ease-out both}.match{width:min(430px,100%);flex:1;display:flex;flex-direction:column;gap:10px}@media(max-height:740px){.app{padding-top:max(8px,env(safe-area-inset-top));padding-bottom:max(8px,env(safe-area-inset-bottom))}.match{gap:7px}.match .board{padding:9px;gap:6px}.hand{--card-w: clamp(44px, 13vw, 64px);min-height:calc(var(--card-w) * 4 / 3 + 10px)}}.hud{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 2px}.hud--page{display:grid;grid-template-columns:1fr auto 1fr}.hud--page>:first-child{justify-self:start}.hud--page>:last-child{justify-self:end}.hud__rules{font-size:11.5px;letter-spacing:.14em;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:4px 10px;white-space:nowrap}.hud__quit{color:var(--muted);font-size:12.5px;letter-spacing:.08em;border-bottom:1px dotted var(--iron);transition:color .14s}.hud__quit:hover{color:var(--danger)}.pips{display:flex;gap:4px;align-items:center}.pip{width:11px;height:11px;rotate:45deg;border:1px solid var(--iron);background:var(--ink-2);transition:background .3s ease,border-color .3s ease,box-shadow .3s ease}.pip[data-side=A]{background:linear-gradient(135deg,var(--lapis-bright),var(--lapis-deep));border-color:var(--lapis-bright);box-shadow:0 0 7px #6f9fd880}.pip[data-side=B]{background:linear-gradient(135deg,var(--terra-bright),var(--terra-deep));border-color:var(--terra-bright);box-shadow:0 0 7px #e08a5d80}.turnbar{text-align:center;font-family:var(--font-display);font-size:13px;letter-spacing:.24em;color:var(--muted);min-height:18px;text-transform:uppercase}.turnbar[data-turn=A]{color:var(--lapis-bright)}.turnbar[data-turn=B]{color:var(--terra-bright)}.board{--board-hi: #221b14;--board-lo: #181310;--board-line: var(--line);--board-cell: #17120e;--board-cell-line: #3a2d1f;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(100%,max(240px,calc((100dvh - 288px) / 1.31)));margin-inline:auto;padding:16px 12px;border-radius:14px;border:1px solid var(--board-line);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 12' width='36' height='12'%3E%3Cpath d='M0 10h4V2h8v8h4V2h8v8h4V2h8v8' fill='none' stroke='rgba(201,162,39,0.22)' stroke-width='1.4'/%3E%3C/svg%3E") top 5px center / auto 7px repeat-x,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 12' width='36' height='12'%3E%3Cpath d='M0 10h4V2h8v8h4V2h8v8h4V2h8v8' fill='none' stroke='rgba(201,162,39,0.22)' stroke-width='1.4'/%3E%3C/svg%3E") bottom 5px center / auto 7px repeat-x,linear-gradient(180deg,var(--board-hi),var(--board-lo));box-shadow:inset 0 1px #e9e2d30f,inset 0 0 60px #0000008c,0 14px 44px #00000080}.board:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:10px;border:1px solid rgba(201,162,39,.3);pointer-events:none}.cell{position:relative;aspect-ratio:3 / 4;border-radius:8px;border:1px solid var(--board-cell-line);background:radial-gradient(80% 60% at 50% 30%,rgba(233,226,211,.045),transparent 70%),var(--board-cell);box-shadow:inset 0 2px 10px #000000a6;display:grid;place-items:center;perspective:600px;transition:box-shadow .18s ease,border-color .18s ease}.board:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:11px;border:1px solid rgba(201,162,39,.28);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 21 V9 a2 2 0 0 1 2 -2 h4 M6 18 v-6 a2 2 0 0 1 2 -2 h4' fill='none' stroke='%23c9a227' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 6px 6px / 15px 15px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 21 V9 a2 2 0 0 0 -2 -2 h-4 M18 18 v-6 a2 2 0 0 0 -2 -2 h-4' fill='none' stroke='%23c9a227' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") calc(100% - 6px) 6px / 15px 15px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 3 v12 a2 2 0 0 0 2 2 h4 M6 6 v6 a2 2 0 0 0 2 2 h4' fill='none' stroke='%23c9a227' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") 6px calc(100% - 6px) / 15px 15px no-repeat,url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21 3 v12 a2 2 0 0 1 -2 2 h-4 M18 6 v6 a2 2 0 0 1 -2 2 h-4' fill='none' stroke='%23c9a227' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") calc(100% - 6px) calc(100% - 6px) / 15px 15px no-repeat;opacity:.75;pointer-events:none}button.cell:before{content:"";position:absolute;top:20%;right:20%;bottom:20%;left:20%;background:center / contain no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='none' stroke='%23c9a227' stroke-width='2'%3E%3Ccircle cx='50' cy='50' r='36'/%3E%3Ccircle cx='50' cy='50' r='26' stroke-dasharray='3 5'/%3E%3Ccircle cx='50' cy='50' r='8'/%3E%3Cpath d='M50 6v12M50 82v12M6 50h12M82 50h12M20 20l8 8M80 20l-8 8M20 80l8-8M80 80l-8-8'/%3E%3C/g%3E%3C/svg%3E");opacity:.14;pointer-events:none;transition:opacity .18s ease}button.cell.cell--open:before{opacity:.3}.cell--impact:after{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:10px;border:1px solid var(--gold);box-shadow:0 0 18px #c9a22780,inset 0 0 12px #c9a2274d;opacity:0;pointer-events:none;animation:impact .42s ease-out both}@keyframes impact{0%{opacity:.9;scale:.92}to{opacity:0;scale:1.06}}.board[data-board-theme=obsidian]{--board-hi: #171a22;--board-lo: #0d1017;--board-line: #2b3345;--board-cell: #12151d;--board-cell-line: #333c52}.cell--open{cursor:pointer;border-color:#c9a22766;box-shadow:inset 0 2px 10px #000000a6,0 0 0 1px #c9a22726}.cell--open:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:8px;border:1px solid var(--gold);box-shadow:0 0 16px #c9a2274d;opacity:0;pointer-events:none;animation:beckon 1.6s ease-in-out infinite;will-change:opacity}@media(hover:hover){.cell--open:hover{border-color:var(--gold)}}.card{position:relative;width:var(--card-w);aspect-ratio:3 / 4;border-radius:8px;transform-style:preserve-3d;-webkit-user-select:none;user-select:none;container-type:inline-size}.cell .card{width:calc(100% - 6px)}.card__face{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:8px;overflow:hidden;border:1.5px solid var(--frame, var(--iron));background:radial-gradient(120% 90% at 50% 0%,var(--tint-hi) 0%,var(--tint-lo) 78%);box-shadow:inset 0 1px #ffffff17,inset 0 -10px 24px #00000061,0 3px 10px #0000008c;transition:background 0s}.card[data-owner=A]{--tint-hi: #3c6cae;--tint-lo: var(--lapis-deep);--edge-ink: #dbe9ff}.card[data-owner=B]{--tint-hi: #c05a30;--tint-lo: var(--terra-deep);--edge-ink: #ffe4d1}.card[data-rarity=common]{--frame: #8a6038}.card[data-rarity=rare]{--frame: var(--silver)}.card[data-rarity=rare] .card__face{border-width:2px;box-shadow:inset 0 1px #ffffff17,inset 0 -10px 24px #00000061,0 3px 10px #0000008c,0 0 10px #c7d3e047}.card[data-rarity=legend]{--frame: var(--gold)}.card[data-rarity=legend] .card__face{border-width:2px;box-shadow:inset 0 1px #ffffff24,inset 0 -10px 24px #00000061,0 3px 10px #0000008c,0 0 18px #c9a22773}.card__face:after{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:5px;border:1px solid color-mix(in srgb,var(--frame) 55%,transparent);pointer-events:none}.card[data-rarity=rare] .card__face:after{border-color:color-mix(in srgb,var(--frame) 75%,transparent)}.card[data-rarity=legend] .card__face:after{border-width:1.5px;border-color:color-mix(in srgb,var(--frame) 90%,transparent);box-shadow:inset 0 0 10px #c9a22738}.card__sigil{position:absolute;left:50%;top:46%;width:62%;aspect-ratio:1 / 1;transform:translate(-50%,-50%);color:color-mix(in srgb,var(--edge-ink) 82%,var(--frame));opacity:.9}.card__art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.card__shade{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 105% at 50% 45%,transparent 50%,color-mix(in srgb,var(--tint-lo) 85%,transparent) 100%),linear-gradient(180deg,rgba(0,0,0,.45) 0%,transparent 22%),linear-gradient(0deg,rgba(0,0,0,.72) 0%,transparent 34%);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--tint-hi) 55%,transparent),inset 0 0 18px color-mix(in srgb,var(--tint-lo) 50%,transparent)}.card__ornaments{position:absolute;top:3px;right:3px;bottom:3px;left:3px;width:calc(100% - 6px);height:calc(100% - 6px);color:var(--frame, var(--iron));opacity:.85;pointer-events:none}.card__ornaments path{vector-effect:non-scaling-stroke;stroke-width:1.3}.card__name{position:absolute;left:4%;right:4%;bottom:3%;text-align:center;font-family:var(--font-display);font-size:8.5cqw;font-weight:700;letter-spacing:.05em;color:var(--edge-ink);opacity:.92;text-transform:uppercase;white-space:nowrap;overflow:hidden;padding:1.2cqw 2%;border-radius:2.5cqw;background:color-mix(in srgb,var(--tint-lo) 72%,#0a0806);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--edge-ink) 16%,transparent)}.rank{position:absolute;font-family:var(--font-display);font-weight:900;font-size:15cqw;line-height:1;width:1.35em;padding:.1em 0;text-align:center;font-variant-numeric:tabular-nums;color:var(--edge-ink);text-shadow:0 1px 2px rgba(0,0,0,.8);border-radius:.22em;background:color-mix(in srgb,var(--tint-lo) 62%,rgba(10,8,6,.82));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--edge-ink) 20%,transparent),0 1px 3px #00000080}.card[data-strike~=top] .rank--top,.card[data-strike~=right] .rank--right,.card[data-strike~=bottom] .rank--bottom,.card[data-strike~=left] .rank--left{color:var(--gold-bright);text-shadow:0 0 12px rgba(201,162,39,.85),0 1px 2px rgba(0,0,0,.8);animation:rank-win .6s ease both}.card--flipping[data-flip-from=top] .rank--top,.card--flipping[data-flip-from=right] .rank--right,.card--flipping[data-flip-from=bottom] .rank--bottom,.card--flipping[data-flip-from=left] .rank--left{animation:rank-lose var(--flip-ms) ease both}@keyframes rank-win{0%{scale:1}35%{scale:1.35}to{scale:1}}@keyframes rank-lose{0%{scale:1;opacity:1}to{scale:.85;opacity:.4}}.rank--top{top:2.5%;left:50%;transform:translate(-50%)}.rank--bottom{bottom:15%;left:50%;transform:translate(-50%)}.rank--left{left:2%;top:44%;transform:translateY(-50%)}.rank--right{right:2%;top:44%;transform:translateY(-50%)}.card--back .card__face{--tint-hi: var(--back-hi, #282118);--tint-lo: var(--back-lo, #15110c);display:grid;place-items:center}.card__backmark{width:68%;color:var(--back-emblem, var(--gold-dim));opacity:.95;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}.hand{display:flex;justify-content:center;gap:7px;min-height:calc(var(--card-w) * 4 / 3 + 14px);align-items:flex-end;perspective:700px}.hand .card{transition:transform .18s ease,filter .18s ease}.hand--active .card{cursor:pointer}@media(hover:hover){.hand--active .card:hover{transform:translateY(-8px)}}.card--selected{transform:translateY(-14px)!important;filter:drop-shadow(0 0 12px rgba(201,162,39,.55))}.card--selected .card__face{border-color:var(--gold-bright)}.hand--idle .card{filter:saturate(.72) brightness(.82)}.card--placed{animation:place .3s cubic-bezier(.2,.9,.25,1.15) both}.card--flipping{animation:flip var(--flip-ms) ease-in-out both}.card--flipping[data-flip-from=left]{animation-name:flip-from-left}.card--flipping[data-flip-from=right]{animation-name:flip-from-right}.card--flipping[data-flip-from=top]{animation-name:flip-from-top}.card--flipping[data-flip-from=bottom]{animation-name:flip-from-bottom}@keyframes flip-from-left{0%{transform:rotateY(0)}50%{transform:rotateY(-92deg) scale(1.06)}to{transform:rotateY(0)}}@keyframes flip-from-right{0%{transform:rotateY(0)}50%{transform:rotateY(92deg) scale(1.06)}to{transform:rotateY(0)}}@keyframes flip-from-top{0%{transform:rotateX(0)}50%{transform:rotateX(92deg) scale(1.06)}to{transform:rotateX(0)}}@keyframes flip-from-bottom{0%{transform:rotateX(0)}50%{transform:rotateX(-92deg) scale(1.06)}to{transform:rotateX(0)}}@keyframes place{0%{transform:translate(var(--fly-x, 0px),var(--fly-y, -26px)) scale(var(--fly-s, 1.12));opacity:var(--fly-o, 0)}60%{opacity:1}to{transform:none}}@keyframes flip{0%{transform:rotateY(0)}50%{transform:rotateY(92deg) scale(1.06)}to{transform:rotateY(0)}}@keyframes beckon{0%,to{opacity:.15}50%{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.cause{position:absolute;left:50%;top:-6px;transform:translate(-50%,-100%);font-family:var(--font-display);font-weight:700;letter-spacing:.3em;font-size:15px;color:var(--gold-bright);text-shadow:0 0 18px rgba(201,162,39,.6);animation:cause .9s ease-out both;pointer-events:none;z-index:3}.cause[data-wave="2"]{font-size:18px;text-shadow:0 0 24px rgba(201,162,39,.8)}.cause[data-wave="3"],.cause[data-wave="4"],.cause[data-wave="5"],.cause[data-wave="6"],.cause[data-wave="7"],.cause[data-wave="8"]{font-size:21px;color:#fff3cf;text-shadow:0 0 30px rgba(236,201,95,.95)}@keyframes cause{0%{opacity:0;transform:translate(-50%,-60%) scale(.8)}25%{opacity:1;transform:translate(-50%,-110%) scale(1.06)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-150%)}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#0a0806d1;z-index:30;animation:fade .26s ease both}@media(hover:hover)and (pointer:fine){.overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}}.overlay__panel{position:relative;overflow:hidden;width:min(340px,88vw);text-align:center;padding:30px 26px 26px;border-radius:14px;border:1px solid var(--gold-dim);background:linear-gradient(180deg,var(--panel-2),var(--ink-2));box-shadow:0 30px 80px #000000b3,inset 0 0 40px #c9a2270d;animation:rise .38s 80ms ease-out both}.overlay__panel--win{border-color:var(--gold);box-shadow:0 30px 80px #000000b3,inset 0 0 60px #c9a2271f,0 0 40px #c9a2272e}.overlay__panel--loss{border-color:var(--line);filter:saturate(.85)}.overlay__rays{position:absolute;left:50%;top:86px;width:340px;height:340px;translate:-50% -50%;background:repeating-conic-gradient(from 0deg,rgba(201,162,39,.11) 0deg 9deg,transparent 9deg 30deg);-webkit-mask-image:radial-gradient(circle,black 0%,transparent 62%);mask-image:radial-gradient(circle,black 0%,transparent 62%);animation:rays-turn 28s linear infinite;pointer-events:none}@keyframes rays-turn{to{rotate:360deg}}.overlay__kicker{color:var(--muted);letter-spacing:.3em;font-size:11px;text-transform:uppercase;animation:fade .3s .15s ease both}.overlay__crest{width:44px;margin:4px auto 0;color:var(--gold);display:block;animation:crest-in .5s .32s cubic-bezier(.2,1.1,.3,1) both}.overlay__panel--loss .overlay__crest{color:var(--muted)}@keyframes crest-in{0%{opacity:0;transform:scale(.4)}to{opacity:.95;transform:none}}.overlay__verdict{position:relative;font-family:var(--font-display);font-weight:900;font-size:40px;letter-spacing:.14em;margin:8px 0 2px;animation:stamp .42s .48s cubic-bezier(.15,1.2,.3,1) both}@keyframes stamp{0%{opacity:0;transform:scale(2)}55%{opacity:1}70%{transform:scale(.96)}to{opacity:1;transform:none}}.overlay__verdict--win{color:var(--gold-bright);text-shadow:0 0 30px rgba(201,162,39,.4)}.overlay__verdict--loss{color:var(--terra-bright)}.overlay__verdict--draw{color:var(--silver)}.overlay__score{font-size:18px;color:var(--bone);margin-bottom:6px;font-variant-numeric:tabular-nums;animation:fade .32s .95s ease both}.overlay__spoils{font-size:13px;letter-spacing:.12em;color:var(--gold-bright);text-transform:uppercase;margin-bottom:18px;animation:spoils-in .38s 1.25s cubic-bezier(.2,1.1,.3,1) both}@keyframes spoils-in{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:none}}.overlay__actions{display:grid;gap:9px;animation:fade .32s 1.5s ease both}@media(prefers-reduced-motion:reduce){.overlay__rays{animation:none}.overlay__kicker,.overlay__crest,.overlay__verdict,.overlay__score,.overlay__spoils,.overlay__actions{animation:fade .2s ease both}}.btn{padding:12px 16px;border-radius:9px;font-family:var(--font-display);letter-spacing:.14em;font-weight:700;font-size:14px;border:1px solid var(--gold-dim);color:var(--gold-bright);background:linear-gradient(180deg,#c9a22729,#c9a2270d);transition:transform .14s,box-shadow .14s}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #00000073}.btn--ghost{border-color:var(--line);color:var(--muted);background:none}.overlay__glory[data-sign=up]{color:var(--gold-bright)}.overlay__glory[data-sign=down]{color:var(--terra-bright)}.home__modes--row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.hud__audio{display:inline-flex;gap:4px}.tierbadge{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:700;letter-spacing:.05em}.tierbadge--ephebe{--tier: #9aa391;--tier-hi: #c6cdbd;--tier-glow: transparent}.tierbadge--hoplite{--tier: #c07a3a;--tier-hi: #eaa568;--tier-glow: rgba(192, 122, 58, .35)}.tierbadge--strategos{--tier: #c3cad6;--tier-hi: #eef2f8;--tier-glow: rgba(195, 202, 214, .35)}.tierbadge--hero{--tier: #dfb63c;--tier-hi: #f7dd7f;--tier-glow: rgba(223, 182, 60, .45)}.tierbadge--demigod{--tier: #f0d87e;--tier-hi: #fff3c0;--tier-glow: rgba(240, 216, 126, .65)}.tierbadge--olympian{--tier: #a8c4f2;--tier-hi: #e3eeff;--tier-glow: rgba(168, 196, 242, .65)}.tierbadge__medal{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#120e09d9;background:radial-gradient(circle at 34% 28%,var(--tier-hi),var(--tier) 58%,color-mix(in srgb,var(--tier) 40%,#000) 100%);box-shadow:0 0 10px var(--tier-glow),0 1px 3px #0009,inset 0 0 0 1px #00000059,inset 0 -2px 4px #0000004d}.tierbadge__medal svg{width:74%;height:74%}.tierbadge--sm .tierbadge__medal{width:19px;height:19px}.tierbadge__name{font-size:13px;color:var(--tier);text-transform:uppercase;letter-spacing:.14em;text-shadow:0 1px 6px rgba(0,0,0,.7)}.tierbadge--sm .tierbadge__name{font-size:11px}.tierbadge__rating{font-variant-numeric:tabular-nums;font-size:14px;color:var(--bone)}.tierbadge--sm .tierbadge__rating{font-size:13px}.ladder{list-style:none;width:min(360px,92vw);display:grid;gap:6px;padding:0}.ladder__row{display:grid;grid-template-columns:34px 1fr auto auto;gap:10px;align-items:center;padding:9px 12px;border-radius:9px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel-2),transparent)}.ladder__row[data-top="1"]{border-color:var(--gold)}.ladder__row[data-top="2"]{border-color:var(--silver)}.ladder__row[data-top="3"]{border-color:#8a6038}.ladder__rank{font-family:var(--font-display);font-weight:900;color:var(--muted);text-align:center}.ladder__row[data-top] .ladder__rank{color:var(--gold-bright)}.ladder__handle{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ladder__games{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.ladder__rating{font-family:var(--font-display);font-weight:700;color:var(--gold-bright);font-variant-numeric:tabular-nums}.ladder__provisional{font-style:normal;color:var(--muted);margin-left:2px}.chronicle{list-style:none;width:min(380px,94vw);display:grid;gap:6px;padding:0}.chronicle__row{display:grid;grid-template-columns:72px 1fr auto auto;gap:8px;align-items:center;padding:8px 10px;border-radius:9px;border:1px solid var(--line);background:linear-gradient(180deg,var(--panel-2),transparent)}.chronicle__verdict{font-family:var(--font-display);font-size:11px;font-weight:900;letter-spacing:.08em}.chronicle__row[data-outcome=win] .chronicle__verdict{color:var(--gold-bright)}.chronicle__row[data-outcome=loss] .chronicle__verdict{color:var(--terra-bright)}.chronicle__row[data-outcome=draw] .chronicle__verdict{color:var(--silver)}.chronicle__foe{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.chronicle__meta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.chronicle__delta{font-style:normal;margin-left:5px}.chronicle__delta[data-sign=up]{color:var(--gold-bright)}.chronicle__delta[data-sign=down]{color:var(--terra-bright)}.chronicle__replay{padding:6px 10px;font-size:11px}.board--replay{margin:auto}.coin{text-align:center;animation:fade .3s ease both}.coin__laurel{width:64px;color:var(--gold);animation:spinIn .9s cubic-bezier(.2,.8,.3,1.1) both}.coin__text{font-family:var(--font-display);letter-spacing:.2em;color:var(--bone);margin-top:10px;font-size:15px}@keyframes spinIn{0%{transform:rotateY(540deg) scale(.5);opacity:0}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.mode-btn--primary{border-color:var(--gold-dim);box-shadow:inset 0 0 0 1px #c9a22733,0 0 24px #c9a22714}.joinrow{display:flex;gap:8px;width:100%}.joinrow__input{flex:1;padding:12px 14px;border-radius:9px;border:1px solid var(--line);background:var(--ink-2);color:var(--gold-bright);font-family:var(--font-display);font-size:16px;letter-spacing:.35em;text-align:center}.joinrow__input::placeholder{color:#5c5343;letter-spacing:.18em}.joinrow__input:focus{outline:none;border-color:var(--gold-dim)}.code{margin-top:14px;font-family:var(--font-display);font-weight:900;font-size:34px;letter-spacing:.4em;color:var(--gold-bright);text-shadow:0 0 26px rgba(201,162,39,.45)}.online-hint{color:var(--muted);font-size:14.5px;margin:8px 0 0}.online-error{color:var(--danger);font-size:13.5px;text-align:center;max-width:40ch}.online-error--float{position:fixed;bottom:14px;left:50%;transform:translate(-50%);background:var(--ink-2);border:1px solid var(--danger);border-radius:9px;padding:8px 14px;z-index:40}.online-flash{position:fixed;top:68px;left:50%;transform:translate(-50%);background:var(--ink-2);border:1px solid var(--gold-dim);color:var(--gold-bright);font-family:var(--font-display);font-size:13px;letter-spacing:.12em;border-radius:9px;padding:9px 16px;z-index:40;animation:flashfade 4s ease both}@keyframes flashfade{0%{opacity:0;transform:translate(-50%,-8px)}8%,80%{opacity:1;transform:translate(-50%)}to{opacity:0}}.turnbar[data-urgent=true]{color:var(--danger)!important;animation:urgentpulse 1s ease-in-out infinite}@keyframes urgentpulse{50%{opacity:.55}}.tradepick__row{display:flex;gap:8px;justify-content:center;margin:12px 0 16px}.tradepick__card{--card-w: 52px;cursor:pointer;transition:transform .15s ease}.tradepick__card:hover{transform:translateY(-6px)}.credits{font-family:var(--font-display);font-weight:700;color:var(--gold-bright);font-size:15px;letter-spacing:.06em}.profile{min-height:0;overflow-y:auto;overflow-x:hidden}.loadwrap{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.loadwrap__laurel{width:46px;opacity:.85;animation:laurel-spin 1.6s linear infinite}@keyframes laurel-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.loadwrap__laurel{animation:none}}.profile__h{font-family:var(--font-display);font-size:15px;letter-spacing:.22em;color:var(--gold-bright);margin:18px 0 10px}.profile__sub{font-family:var(--font-body);font-size:12px;letter-spacing:.04em;color:var(--muted);font-weight:400;margin-left:8px}.profile__notice{text-align:center}.profile__save{position:sticky;bottom:10px;z-index:5;width:100%}.collection{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px}.collection__item{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;--card-w: 100%}.collection__item .card{width:100%}.collection__item--indeck .card__face{border-color:var(--gold-bright);box-shadow:0 0 14px #c9a22766}.collection__item--locked{opacity:.5}.collection__badge{position:absolute;top:2px;right:2px;background:var(--gold);color:var(--ink);font-family:var(--font-display);font-weight:900;font-size:12px;border-radius:999px;min-width:20px;height:20px;display:grid;place-items:center;padding:0 5px;z-index:2}.collection__badge--lock{background:var(--terra);color:var(--bone)}.shop__buy{padding:6px 10px;font-size:12.5px;width:100%}.shop__buy:disabled{opacity:.35;cursor:not-allowed}.app--tabs{padding:0}.tabpane{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;align-items:center;overflow:hidden;padding:max(14px,env(safe-area-inset-top)) 14px 10px}.navbar{position:relative;z-index:6;flex:none;width:100%;display:flex;justify-content:space-around;gap:4px;padding:6px 10px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:#0d0b09eb;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.navbar__tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:4px 10px;color:var(--muted);border-radius:8px}.navbar__tab[aria-current]{color:var(--gold-bright)}.navbar__icon{width:24px;height:24px}.navbar__label{font-family:var(--font-display);font-size:10px;letter-spacing:.14em;text-transform:uppercase}@media(min-width:900px){.app--tabs{flex-direction:row}.navbar{order:-1;flex-direction:column;justify-content:center;gap:22px;width:96px;height:100%;border-top:none;border-right:1px solid var(--line);padding:0 0 0 max(0px,env(safe-area-inset-left))}.tabpane{height:100%}}.home--hub{justify-content:center;gap:14px}.home__rank{display:inline-flex;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:#0d0b098c;animation:rise .6s .15s ease both}.playcta{font-family:var(--font-display);font-weight:900;font-size:22px;letter-spacing:.24em;color:var(--ink);background:linear-gradient(180deg,var(--gold-bright),var(--gold));border:1px solid color-mix(in srgb,var(--gold-bright) 60%,#fff2);border-radius:14px;padding:18px 54px;margin:10px 0;box-shadow:0 0 30px #c9a22759,0 4px 14px #00000080;animation:rise .6s .25s ease both}.playcta:active{transform:translateY(1px) scale(.99)}.sheetback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#08060499;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;align-items:flex-end;justify-content:center;animation:sheetback-in .2s ease both}@keyframes sheetback-in{0%{opacity:0}to{opacity:1}}.sheet{width:min(430px,100%);max-height:82dvh;overflow-y:auto;display:flex;flex-direction:column;align-items:center;gap:12px;padding:10px 18px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;border:1px solid var(--line);border-bottom:none;background:linear-gradient(180deg,#1c1611,#120e0b);box-shadow:0 -12px 40px #0009;animation:sheet-up .26s cubic-bezier(.2,.9,.3,1) both}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@media(min-width:900px){.sheetback{align-items:center}.sheet{border-radius:18px;border-bottom:1px solid var(--line)}}.sheet__grip{width:44px;height:4px;border-radius:999px;background:var(--iron);opacity:.7}.sheet__title{font-family:var(--font-display);font-size:15px;letter-spacing:.22em;color:var(--gold-bright);margin:2px 0 4px}.sheet__hint{font-size:13px;color:var(--muted);margin:0}.sheet__actions{display:flex;gap:10px;margin-top:6px}.avatar{border-radius:50%;object-fit:cover;border:1px solid var(--line);background:#17120e;display:inline-block}.avatar--empty{display:inline-grid;place-items:center;color:var(--gold)}.avatar--empty svg{width:60%;height:60%}.idcard{display:flex;align-items:center;gap:16px;width:100%;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#0d0b098c}.idcard__portrait{position:relative;flex:none;border-radius:50%}.idcard__portrait .avatar{border-width:2px;border-color:var(--gold)}.idcard__edit{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;display:grid;place-items:center;font-size:11px;color:var(--ink);background:var(--gold);border-radius:50%}.idcard__meta{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.idcard__handle{font-family:var(--font-display);font-weight:700;font-size:16px;letter-spacing:.08em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.idcard__record{font-size:12px;color:var(--muted)}.avatarpick{width:100%;padding:10px;border:1px solid var(--line);border-radius:var(--radius);background:#0d0b0966}.avatarpick__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;justify-items:center;margin-top:8px}.avatarpick__opt{border-radius:50%;padding:2px;border:2px solid transparent}.avatarpick__opt[aria-pressed=true]{border-color:var(--gold-bright)}.avatarpick__opt:disabled{opacity:.5}.intro{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;overflow:hidden}.intro__veil{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(120% 90% at 50% 0%,#1a150f 0%,var(--ink) 55%,#0a0806 100%);opacity:1;transition:opacity 1.1s ease}.intro--reveal .intro__veil,.intro--leaving .intro__veil{opacity:.3}.intro--leaving{opacity:0;transition:opacity .6s ease}.intro>:not(.intro__veil){position:relative;z-index:1}.intro__crest--faint{width:72px;color:var(--gold);opacity:.55;animation:intro-breathe 2.8s ease-in-out infinite}@keyframes intro-breathe{0%,to{opacity:.4;transform:scale(1)}50%{opacity:.75;transform:scale(1.04)}}.intro__enter{font-family:var(--font-display);font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:var(--bone);opacity:.8;animation:intro-breathe 2.8s ease-in-out infinite}.intro__rays{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;z-index:1;background:conic-gradient(from 0deg,transparent 0deg,rgba(201,162,39,.14) 12deg,transparent 26deg,transparent 44deg,rgba(201,162,39,.1) 58deg,transparent 74deg,transparent 108deg,rgba(201,162,39,.14) 122deg,transparent 138deg,transparent 196deg,rgba(201,162,39,.12) 210deg,transparent 226deg,transparent 288deg,rgba(201,162,39,.14) 302deg,transparent 318deg);animation:intro-rays 2.6s ease-out both}@keyframes intro-rays{0%{opacity:0;rotate:-18deg}40%{opacity:1}to{opacity:.7;rotate:8deg}}.intro__crest--reveal{position:relative;z-index:2;width:110px;color:var(--gold-bright);filter:drop-shadow(0 0 26px rgba(201,162,39,.65));animation:intro-crest 1.1s .25s cubic-bezier(.2,.9,.3,1.05) both}.intro__emblem{width:128px;height:128px;object-fit:contain;filter:drop-shadow(0 0 26px rgba(201,162,39,.6));animation:intro-crest 1.1s .25s cubic-bezier(.2,.9,.3,1.05) both}.intro__wordmark{width:min(70vw,330px);object-fit:contain;filter:drop-shadow(0 2px 16px rgba(0,0,0,.75));animation:intro-title 1s .9s ease both}@keyframes intro-crest{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}.intro__title{position:relative;z-index:2;font-family:var(--font-display);font-weight:900;font-size:44px;letter-spacing:.3em;margin:0 0 0 .3em;color:var(--bone);text-shadow:0 0 30px rgba(201,162,39,.4);animation:intro-title 1s .9s ease both}@keyframes intro-title{0%{opacity:0;letter-spacing:.55em}to{opacity:1;letter-spacing:.3em}}.home__rules{font-family:var(--font-body);font-size:14px;text-shadow:0 1px 8px rgba(0,0,0,.85);color:var(--muted);letter-spacing:.06em;text-decoration:underline;text-underline-offset:3px;animation:rise .6s .35s ease both}.rulesec{width:100%;margin:6px 0}.rulesec__title{font-family:var(--font-display);font-size:14px;letter-spacing:.22em;color:var(--gold-bright);margin:12px 0 6px}.rulesec__body{font-size:15px;line-height:1.55;color:var(--bone);margin:0 0 10px}.rulesec__tiers{display:flex;flex-wrap:wrap;gap:10px 16px;padding:4px 0 10px}.meander--rules{width:70%;align-self:center;opacity:.5;margin:8px 0}.minidemo{position:relative;--card-w: 64px;display:flex;justify-content:center;padding:12px;border:1px solid var(--line);border-radius:var(--radius);background:#0d0b0980}.minidemo__grid{display:grid;grid-template-columns:repeat(2,var(--card-w));grid-auto-rows:calc(var(--card-w) * 4 / 3);gap:8px}.minidemo__cell{display:grid;place-items:center}.minidemo__cell--empty{border:1px dashed var(--line);border-radius:8px;width:var(--card-w);height:calc(var(--card-w) * 4 / 3);opacity:.5}.minidemo__cause{position:absolute;top:6px;right:10px;z-index:2;font-family:var(--font-display);font-weight:900;font-size:14px;letter-spacing:.18em;color:var(--gold-bright);text-shadow:0 0 12px rgba(201,162,39,.7)}.lobbies{list-style:none;margin:0;padding:0;width:100%;display:flex;flex-direction:column;gap:8px}.lobbies__row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:#0d0b098c}.lobbies__who{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;flex:1}.lobbies__handle{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.lobbies__rules{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;text-align:right}.lobbies__sub{color:var(--muted);font-size:11px}.lobbies__join{flex:none;padding:8px 12px;font-size:12px}.account__linked strong{color:var(--gold-bright);font-weight:700}.account__signin{align-self:flex-start;font-size:13px;padding:8px 12px;margin-top:6px}.account__notice{color:var(--gold-bright)}.setting{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:6px 0}.setting__label{font-size:15px;color:var(--bone)}.setting .preset{margin:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
