.account-link{white-space:nowrap;text-overflow:ellipsis;max-width:50%;min-height:44px;padding:0 12px;overflow:hidden}.account-text{flex-direction:column;align-items:flex-start;min-width:0;line-height:1.15;display:flex}.account-name,.account-tokens{text-overflow:ellipsis;max-width:100%;overflow:hidden}.account-tokens{opacity:.75;font-size:12px;font-weight:600}.form{flex-direction:column;gap:14px;padding:16px 14px;display:flex}.field{border:0;flex-direction:column;gap:6px;min-width:0;margin:0;padding:0;font-size:14px;font-weight:600;display:flex}.field legend{margin-bottom:6px;padding:0}.input{border-radius:var(--radius-sm);border:var(--secondary-border);background:var(--surface);width:100%;min-height:48px;padding:0 12px;font-size:16px;font-weight:400}.btn-danger{color:var(--x);border:2px solid var(--x);background:0 0}.btn-danger:disabled{opacity:.45}.danger-zone{margin-top:28px}.danger-zone .eyebrow{color:var(--x)}.danger-card{border:2px solid var(--x);box-shadow:none}.danger-step{flex-direction:column;gap:14px;display:flex}.form-error{color:var(--x);font-size:14px;font-weight:600}.form-notice{border-radius:var(--radius-sm);background:var(--surface-2);padding:10px 12px;font-size:14px;font-weight:600}.form-links{flex-wrap:wrap;justify-content:center;gap:4px 18px;display:flex}.link{text-underline-offset:3px;background:0 0;border:0;min-height:44px;padding:0;font-weight:600;text-decoration:underline}.turnstile{min-height:65px}.character-pick{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.character-pick .chip{flex-direction:column;align-items:center;gap:4px;padding:10px 4px 12px;font-size:14px;display:flex}.character-pick .chip .mark{width:56px;height:56px}.chip .mark,.row-mark .mark{flex:none;width:18px;height:18px}.row-mark{display:flex}.row-mark.row-face .mark{width:32px;height:32px}.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.team-records{margin-top:10px}.row-mark.team-faces .mark+.mark{margin-left:-10px}.record{border-collapse:separate;border-spacing:0;text-align:center;width:100%}.record th,.record td{padding:10px 6px}.record thead th{color:var(--muted);font-size:12px;font-weight:600}.record tbody th{text-align:left;padding-left:16px;font-weight:600}.record td{font-family:var(--font-display);font-weight:var(--display-weight);font-size:20px}.stat{flex-direction:column;align-items:center;gap:2px;padding:12px 6px;display:flex}.stat-value{font-family:var(--font-display);font-weight:var(--display-weight);font-size:26px}.stat-label{color:var(--muted);font-size:12px;font-weight:600}.leaders{margin:0;padding:0;list-style:none}.leaders .place{text-align:right;width:28px;font-family:var(--font-display);font-weight:var(--display-weight);color:var(--muted)}.leaders .me{background:var(--surface-2)}.leaders .rank{font-size:13px;font-weight:700}.game-extras{justify-content:center;gap:10px;display:flex}.game-extras .btn{min-height:44px;font-size:14px}.wager-line,.stake-result{font-size:14px}.result .stake-result{text-align:center}.token-delta{color:var(--text);font-size:16px}.banner.wager{flex-direction:column;gap:10px;display:flex}.wager-buttons{gap:8px;display:flex}.wager-buttons .btn{background:var(--surface);min-height:44px;color:var(--text);flex:1}.chat-log{flex-direction:column;gap:6px;min-height:120px;max-height:45dvh;display:flex;overflow-y:auto}.chat-msg{border-radius:var(--radius);background:var(--surface-2);overflow-wrap:anywhere;align-self:flex-start;max-width:80%;padding:8px 12px;line-height:1.35}.chat-msg.mine{background:var(--primary-bg);color:var(--primary-text);align-self:flex-end}.chat-form{gap:8px;display:flex}.chat-form .btn-primary{min-height:48px;font-size:16px}.turn-alerts{top:max(12px, var(--safe-top));z-index:40;pointer-events:none;flex-direction:column;gap:8px;width:min(448px,100% - 32px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.turn-alert{border-radius:var(--radius);background:var(--highlight);color:var(--on-highlight);pointer-events:auto;align-items:center;gap:4px;padding:4px 4px 4px 14px;animation:.2s ease-out turn-alert-in;display:flex;box-shadow:0 6px 24px #00000040}[data-theme=toy] .turn-alert,[data-theme=pixel] .turn-alert{border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.turn-alert a{min-height:44px;color:inherit;flex:1;align-items:center;gap:10px;font-weight:600;line-height:1.3;text-decoration:none;display:flex}.turn-alert-text{flex:1}.turn-alert-go{font-weight:800;text-decoration:underline}.turn-alert button{width:44px;height:44px;color:inherit;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}@keyframes turn-alert-in{0%{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.turn-alert{animation:none}}.watch-link{flex-direction:column;gap:10px;padding:12px 14px;display:flex}.watch-link-note{margin:0;font-size:14px;line-height:1.4}.watch-link-url{width:100%;min-width:0;font-size:13px}.watch-link-actions{flex-wrap:wrap;gap:10px;display:flex}.watch-link .btn{min-height:44px;font-size:14px}.watch-link-msg{margin:0;font-size:13px}.watch-badge{background:var(--highlight);color:var(--on-highlight);border-radius:999px;align-self:center;margin:0;padding:4px 12px;font-size:13px;font-weight:600}.notification-bell{flex:none;position:relative}.bell-badge{background:var(--x);color:#fff;text-align:center;pointer-events:none;border-radius:10px;min-width:20px;height:20px;padding:0 5px;font-size:12px;font-weight:800;line-height:20px;position:absolute;top:-4px;right:-4px}.unread-dot{background:var(--x);border-radius:50%;flex:none;width:10px;height:10px}.chat-safety-bar{flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:13px;display:flex}.chat-safety-bar .grow{flex:auto;min-width:0}.chat-safety-panel{border-radius:var(--radius);background:var(--surface-2);flex-direction:column;gap:8px;padding:12px;display:flex}.chat-safety-title{margin:0;font-weight:600}.chat-safety-quote{border-left:3px solid var(--divider);overflow-wrap:anywhere;margin:0;padding-left:10px}.chat-safety-note{margin:0;font-size:13px}.chat-safety-check{align-items:center;gap:8px;display:flex}.chat-safety-actions{gap:8px;display:flex}.chat-msg .chat-report{opacity:.75;margin-top:2px;font-size:12px;display:block}.wide-ok{--rail-w:104px;--page-w:480px;--page-wide-w:480px}.wide-ok .page{padding-left:var(--safe-left);padding-right:var(--safe-right)}@media (width>=600px){.wide-ok{--page-w:720px;--page-wide-w:720px}.wide-ok .page{max-width:calc(var(--page-w) + var(--safe-left) + var(--safe-right))}.wide-ok .page:has(>.wide-body){max-width:calc(var(--page-wide-w) + var(--safe-left) + var(--safe-right))}.wide-ok .headline{font-size:40px}.wide-ok .home-cols{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.wide-ok .home-main,.wide-ok .home-side{flex-direction:column;gap:16px;min-width:0;display:flex}.wide-ok .char-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.wide-ok .sheet .zoom{width:min(100%,420px)}.wide-ok .page-body>:is(.nine,.scene){align-self:center;width:min(100%,100dvh - 160px)}}@media (width>=900px){.wide-ok{--page-wide-w:1160px}.wide-ok .headline{font-size:46px}.wide-ok .topbar .title{font-size:30px}.wide-ok .settings-body{columns:2;column-gap:24px;display:block}.wide-ok .settings-body>*{break-inside:avoid;margin-bottom:22px}.wide-ok .games-body .card:has(>.row){box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.wide-ok .games-body .card>.row{background:var(--card-bg);border:var(--card-border);border-radius:var(--radius);min-width:0;box-shadow:var(--card-shadow);overflow:hidden}.wide-ok .leaders-body>.leaders{columns:2;column-rule:1px solid var(--divider);column-gap:0;display:block}.wide-ok .leaders-body>.leaders>li{border-top:0;border-bottom:1px solid var(--divider);break-inside:avoid}.wide-ok .leaders-body>.leaders>li:last-child{border-bottom:0}.wide-ok .char-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}.wide-ok .char-tile>svg{width:84px;height:84px}.wide-ok .scrim{padding:calc(24px + var(--safe-top)) 24px calc(24px + var(--safe-bottom));align-items:center}.wide-ok .sheet{border-radius:var(--radius);max-width:560px;max-height:min(88dvh,920px);padding:20px 22px 22px;animation:.16s ease-out wide-dialog;box-shadow:0 18px 60px #0000004d}.wide-ok[data-theme=toy] .sheet,.wide-ok[data-theme=pixel] .sheet{border-bottom:3px solid var(--ink)}}@keyframes wide-dialog{0%{opacity:0;transform:scale(.97)}}@media (width>=900px),(width>=600px) and (height<=520px){.wide-ok .page:has(>.tabbar){max-width:none;padding-left:calc(var(--rail-w) + var(--safe-left));margin:0}.wide-ok .page:has(>.tabbar)>:not(.tabbar){width:100%;max-width:var(--page-w);margin-inline:auto}.wide-ok .page:has(>.tabbar)>:is(.wide-body,.topbar:has(~.wide-body)){max-width:var(--page-wide-w)}.wide-ok .page:has(>.tabbar)>.page-body{padding-bottom:calc(24px + var(--safe-bottom))}.wide-ok .tabbar,.wide-ok[data-theme] .tabbar{width:calc(var(--rail-w) + var(--safe-left));padding:max(20px, var(--safe-top)) 8px max(20px, var(--safe-bottom)) calc(8px + var(--safe-left));border:0;border-right:1px solid var(--divider);z-index:10;border-radius:0;grid-template-columns:minmax(0,1fr);grid-auto-rows:min-content;align-content:start;gap:6px;margin:0;position:fixed;top:0;bottom:0;left:0}.wide-ok .tabbar a{min-height:64px}.wide-ok[data-theme=paper] .tabbar,.wide-ok[data-theme=chalk] .tabbar{border-right:2px solid var(--line-strong)}.wide-ok[data-theme=pixel] .tabbar{border-right:3px solid var(--ink)}.wide-ok[data-theme=toy] .tabbar{top:max(12px, var(--safe-top));bottom:max(12px, var(--safe-bottom));left:calc(10px + var(--safe-left));width:calc(var(--rail-w) - 16px);border:3px solid var(--ink);border-radius:22px;padding:8px 4px}.wide-ok:has(.tabbar) .consent-banner{bottom:calc(24px + var(--safe-bottom));left:calc(50% + (var(--rail-w) + var(--safe-left)) / 2)}.wide-ok .scroll-hint{bottom:calc(16px + var(--safe-bottom));left:calc(50% + (var(--rail-w) + var(--safe-left)) / 2);position:fixed}}@media (height<=520px) and (width>=600px){.wide-ok .tabbar a{min-height:52px}.wide-ok .tabbar,.wide-ok[data-theme] .tabbar{padding-top:max(10px, var(--safe-top));align-content:center}}@media (width>=600px){.wide-ok .game-page{max-width:calc(980px + var(--safe-left) + var(--safe-right))}.wide-ok .game-board>:is(.nine,.scene){width:min(100%, calc(100dvh - 330px - var(--safe-top) - var(--safe-bottom)));align-self:center;min-width:min(100%,320px)}.wide-ok .game-board .nine{gap:clamp(8px,1.2vmin,14px)}.wide-ok .game-board .board .cells{gap:clamp(3px,.5vmin,6px)}}@media (width>=600px) and (orientation:landscape){.wide-ok .game-page{max-width:calc(1320px + var(--safe-left) + var(--safe-right))}.wide-ok .game-body{grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr) clamp(280px,30vw,380px);align-items:start;column-gap:24px;display:grid}.wide-ok .game-board{grid-area:1/1/3;justify-content:center;display:flex;position:sticky;top:12px}.wide-ok .game-info,.wide-ok .game-side{flex-direction:column;grid-column:2;gap:14px;min-width:0;display:flex}.wide-ok .game-side{margin-top:14px}.wide-ok .game-board>:is(.nine,.scene){width:min(100%, calc(100dvh - 110px - var(--safe-top) - var(--safe-bottom)))}.wide-ok .game-side .actions{flex-wrap:wrap}}@media (width>=600px) and (height<=520px){.wide-ok .game-page>.topbar{min-height:48px;padding-top:max(8px, var(--safe-top))}.wide-ok .game-board>:is(.nine,.scene){width:min(100%, calc(100dvh - 96px - var(--safe-top) - var(--safe-bottom)))}}.board .centre-wait{z-index:2;background:var(--card-bg);min-width:18px;color:var(--muted);border:1px dashed var(--divider);text-align:center;font-variant-numeric:tabular-nums;pointer-events:none;border-radius:999px;padding:0 4px;font-size:11px;font-weight:700;line-height:16px;position:absolute;bottom:-7px;right:-5px}.board .centre-wait[data-mine]{color:var(--text);border-color:var(--highlight)}.centre-wait-note{font-variant-numeric:tabular-nums;font-weight:700}.board[data-fog]{overflow:hidden}.board[data-fog][data-state=fog]{background:var(--surface-2);border:1px dashed var(--line-faint)}.board[data-fog] .fog-cover{border-radius:inherit;color:var(--muted);background:repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, var(--muted) 14%, transparent) 6px 12px);pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.board[data-fog] .fog-cover svg{opacity:.75;width:44%;height:44%}.board[data-fog]:not([data-state=fog]) .fog-cover svg{opacity:.2}.board[data-storm],.zoom[data-storm]{outline:2px dashed var(--muted);outline-offset:2px}.board .storm-badge,.zoom .storm-badge{z-index:2;border:1.5px solid var(--muted);background:var(--card-bg);color:var(--text);pointer-events:none;border-radius:999px;align-items:center;gap:3px;padding:1px 7px 1px 5px;font-size:11px;font-weight:700;line-height:16px;animation:1.6s ease-in-out infinite storm-bob;display:flex;position:absolute;bottom:-10px;left:-6px}@keyframes storm-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.board .storm-badge,.zoom .storm-badge{animation:none}}.zoom[data-storm],.zoom[data-event]{position:relative}.zoom .storm-badge{padding:2px 10px 2px 7px;font-size:13px;line-height:18px;bottom:-12px;left:-8px}.zoom>.event-scene{inset:0}.zoom .event-scene .ev-actor{font-size:64px}.zoom button.event-swapped{animation:.9s ease-out cleared}.event-scene{z-index:3;pointer-events:none;position:absolute;inset:6px}.event-scene .ev-actor{font-size:34px;line-height:1;position:absolute;translate:-50% -50%}.mark.event-ghost{animation:1.2s ease-in both ghost-fade}@keyframes ghost-fade{0%,40%{opacity:1}to{opacity:0}}.ev-bird{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);animation:1.5s cubic-bezier(.45,0,.4,1) both ev-bird}@keyframes ev-bird{0%{opacity:0;transform:translate(-160px,-140px)scale(.6)rotate(20deg)}12%{opacity:1}45%{transform:translateY(-6px)scale(1.15)rotate(0)}55%{transform:translateY(-6px)scale(1.15)rotate(-8deg)}to{opacity:0;transform:translate(170px,-160px)scale(.6)rotate(-20deg)}}.ev-shadow{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .8) * 100% / 3);background:#00000040;border-radius:50%;width:26px;height:7px;animation:1.5s ease-in-out both ev-shadow;position:absolute;translate:-50% -50%}@keyframes ev-shadow{0%,15%{opacity:0;transform:scale(.2)}45%,55%{opacity:1;transform:scale(1)}85%,to{opacity:0;transform:scale(.2)}}[data-event=bird] .mark.event-ghost{animation:1.5s cubic-bezier(.45,0,.4,1) both ghost-carried}@keyframes ghost-carried{0%,50%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(170px,-150px)scale(.4)rotate(-30deg)}}.board[data-event=earthquake],.zoom[data-event=earthquake]{animation:.9s ease-in-out ev-quake}@keyframes ev-quake{0%,to{transform:translate(0)rotate(0)}10%{transform:translate(-5px,2px)rotate(-2deg)}20%{transform:translate(5px,-2px)rotate(2deg)}30%{transform:translate(-5px,1px)rotate(-1.5deg)}40%{transform:translate(4px,-1px)rotate(1.5deg)}55%{transform:translate(-3px,1px)rotate(-1deg)}70%{transform:translate(2px)rotate(.5deg)}85%{transform:translate(-1px)rotate(0)}}.ev-crack{top:-4px;bottom:-4px;left:calc((var(--col) + .5) * 100% / 3);width:20px;height:calc(100% + 8px);position:absolute;overflow:visible;translate:-50%}.ev-crack polyline{fill:none;stroke:var(--text);stroke-width:3px;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.8s ease-out both ev-crack}@keyframes ev-crack{0%{stroke-dashoffset:1px;opacity:1}35%{stroke-dashoffset:0;opacity:1}75%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}[data-event=earthquake] .mark.event-ghost{animation:1.3s ease-in both ghost-fall}@keyframes ghost-fall{0%,35%{opacity:1;transform:translateY(0)scale(1)rotate(0)}to{opacity:0;transform:translateY(26px)scale(.2)rotate(40deg)}}.ev-wave{left:0;right:0;top:calc(var(--row) * 100% / 3);background:linear-gradient(90deg,#0000,#388ce640 30%,#388ce699);border-radius:10px;height:33.3333%;animation:1.5s ease-in-out both ev-wave;position:absolute}.ev-wave-crest{font-size:30px;line-height:1;position:absolute;top:50%;right:-10px;translate:0 -50%}@keyframes ev-wave{0%{opacity:0;transform:translate(-110%)}15%{opacity:1}80%{opacity:1;transform:translate(15%)}to{opacity:0;transform:translate(60%)}}[data-event=flood] .mark.event-ghost{animation:1.5s ease-in both ghost-washed}@keyframes ghost-washed{0%,40%{opacity:1;transform:translate(0)rotate(0)}to{opacity:0;transform:translate(60px,6px)rotate(60deg)}}.ev-glow{border-radius:var(--board-radius);background:radial-gradient(circle at 50% 85%,#ff6e14bf,#dc281459 55%,#0000 80%);animation:1.8s ease-out both ev-glow;position:absolute;inset:-6px}@keyframes ev-glow{0%{opacity:0}20%,60%{opacity:1}to{opacity:0}}.ev-volcano{animation:1.6s ease-out both ev-erupt;top:55%;left:50%}@keyframes ev-erupt{0%{opacity:0;transform:translateY(30px)scale(.3)}25%{opacity:1;transform:translateY(0)scale(1.3)}35%{transform:scale(1.1)}45%{transform:scale(1.35)}80%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(.8)}}.ev-ember{width:7px;height:7px;animation:ev-ember 1.3s ease-out calc(.3s + var(--i) * 60ms) both;background:#ff8c1e;border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 0 6px #ff5a14}@keyframes ev-ember{0%{opacity:0;transform:translate(0)scale(1)}10%{opacity:1}to{transform:translate(calc((var(--i) - 2) * 26px), calc(-60px - var(--i) * 6px)) scale(.3);opacity:0}}[data-event=volcano] .mark.event-ghost{animation:1.4s ease-out both ghost-thrown}@keyframes ghost-thrown{0%,25%{opacity:1;transform:translate(0)scale(1)rotate(0)}to{opacity:0;transform:translateY(-50px)scale(.3)rotate(-120deg)}}.ev-tornado{animation:1.6s ease-in-out both ev-tornado;top:50%}@keyframes ev-tornado{0%{opacity:0;left:-15%;transform:scale(.7)skew(0)}12%{opacity:1}25%{transform:scale(1.2)skew(12deg)}40%{transform:scale(1.3)skew(-12deg)}55%{transform:scale(1.3)skew(12deg)}70%{transform:scale(1.2)skew(-12deg)}88%{opacity:1}to{opacity:0;left:115%;transform:scale(.7)skew(0)}}.ev-flash{border-radius:var(--board-radius);background:ivory;animation:.9s linear both ev-flash;position:absolute;inset:-6px}@keyframes ev-flash{0%,to{opacity:0}8%{opacity:.9}16%{opacity:.1}24%{opacity:.8}45%{opacity:0}}.ev-bolt{font-size:40px;animation:1.3s ease-out both ev-bolt;top:50%;left:50%}@keyframes ev-bolt{0%{opacity:0;transform:translateY(-80px)scale(.6)}12%{opacity:1;transform:translateY(0)scale(1.4)}20%{transform:scale(1.1)}28%{transform:scale(1.4)}75%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:scale(1)}}.nine[data-event]{position:relative}.event-scene.ev-sky-scene{inset:0;overflow:hidden}.ev-rainbow{aspect-ratio:2;background:radial-gradient(50% 100% at 50% 100%,#0000 58%,#9650dcbf 59%,#466ef0bf 66%,#3cbe78bf 73%,#fad232cc 80%,#ff9628cc 87%,#eb3c3ccc 94% 99%,#0000 100%);animation:2.4s ease-out both ev-rainbow;position:absolute;top:8%;left:4%;right:4%}@keyframes ev-rainbow{0%{clip-path:inset(0 100% 0 0);opacity:1}45%{clip-path:inset(0);opacity:1}75%{opacity:1}to{clip-path:inset(0);opacity:0}}.ev-monkey{animation:1.6s ease-in-out both ev-monkey}@keyframes ev-monkey{0%{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.1)}30%{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);transform:scale(1.1)translateY(0)}55%{transform:scale(1.1)translateY(-22px)}80%{left:calc((var(--col2) + .5) * 100% / 3);top:calc((var(--row2) + .5) * 100% / 3);opacity:1;transform:scale(1.1)translateY(0)}to{left:calc((var(--col2) + .5) * 100% / 3);top:calc((var(--row2) + .5) * 100% / 3);opacity:0;transform:scale(.6)}}[data-event=monkey] .mark.event-ghost{animation:.6s ease-in .3s both ghost-fade}.ev-sinkhole{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);animation:1.6s ease-out both ev-sinkhole}@keyframes ev-sinkhole{0%{opacity:0;transform:scale(0)}25%{opacity:1;transform:scale(1.3)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}[data-event=sinkhole] .mark.event-ghost{animation:1.3s ease-in both ghost-sink}@keyframes ghost-sink{0%,30%{opacity:1;transform:scale(1)rotate(0)}to{opacity:0;transform:scale(0)rotate(180deg)}}.cell.hole,.zoom button.hole{background:radial-gradient(circle, #281e14d9 0 45%, #281e1459 60%, transparent 72%), var(--cell-bg)}.zoom button.hole .hole-count{color:#ffffffe6;text-shadow:0 1px 2px #0009;font-size:20px;font-weight:700}.ev-sun{filter:drop-shadow(0 0 12px #ffc828e6);font-size:40px;animation:1.6s ease-out both ev-sun;top:50%;left:50%}@keyframes ev-sun{0%{opacity:0;transform:scale(.3)rotate(-40deg)}30%{opacity:1;transform:scale(1.3)rotate(0)}75%{opacity:1;transform:scale(1.1)rotate(15deg)}to{opacity:0;transform:scale(.9)rotate(25deg)}}.ev-sky-icon{font-size:72px;top:45%;left:50%}.ev-clover{animation:2s ease-out both ev-clover}@keyframes ev-clover{0%{opacity:0;transform:scale(.2)rotate(-180deg)}35%{opacity:1;transform:scale(1.2)rotate(0)}70%{opacity:1;transform:scale(1)rotate(10deg)}to{opacity:0;transform:scale(1.4)rotate(20deg)}}.ev-sunshine{animation:2s ease-out both ev-sun}.ev-rays{background:repeating-conic-gradient(#ffd23c59 0 10deg, transparent 10deg 30deg);border-radius:50%;width:240px;height:240px;animation:2s ease-out both ev-rays;position:absolute;top:45%;left:50%;translate:-50% -50%;-webkit-mask-image:radial-gradient(circle,#000 30%,#0000 70%);mask-image:radial-gradient(circle,#000 30%,#0000 70%)}@keyframes ev-rays{0%{opacity:0;transform:scale(.3)rotate(0)}30%{opacity:1}to{opacity:0;transform:scale(1.2)rotate(60deg)}}.ev-flake{font-size:22px;line-height:1;animation:2.2s linear both ev-flake;position:absolute}@keyframes ev-flake{0%{opacity:0;transform:translate(0)rotate(0)}10%{opacity:1}85%{opacity:1}to{transform:translate(calc((var(--i) - 5.5) * 3px), 420px) rotate(270deg);opacity:0}}.nine[data-event=blizzard] .board{filter:saturate(.6)brightness(1.05);transition:filter .3s}.ev-pumpkin{font-size:56px;animation:1.8s cubic-bezier(.4,0,.6,1) both ev-pumpkin;top:50%}@keyframes ev-pumpkin{0%{opacity:0;left:-20%;transform:rotate(-360deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;left:120%;transform:rotate(360deg)}}[data-event=pumpkin] .mark.event-ghost{animation:1.8s ease-in both ghost-flattened}@keyframes ghost-flattened{0%,35%{opacity:1;transform:scale(1)}55%{opacity:1;transform:scale(1.4,.15)}to{opacity:0;transform:scale(1.4,.05)}}.ev-witch{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);animation:1.6s cubic-bezier(.45,0,.4,1) both ev-witch}@keyframes ev-witch{0%{opacity:0;transform:translate(170px,-150px)scale(.6)rotate(-15deg)}12%{opacity:1}45%{transform:translateY(-8px)scale(1.15)rotate(0)}55%{transform:translateY(-8px)scale(1.15)rotate(10deg)}to{opacity:0;transform:translate(-180px,-170px)scale(.6)rotate(25deg)}}[data-event=witch] .mark.event-ghost{animation:1.6s cubic-bezier(.45,0,.4,1) both ghost-stolen}@keyframes ghost-stolen{0%,50%{opacity:1;transform:translate(0)scale(1)}to{opacity:0;transform:translate(-170px,-160px)scale(.4)rotate(30deg)}}.ev-turkey{top:calc((var(--row) + .5) * 100% / 3);animation:1.7s linear both ev-turkey}@keyframes ev-turkey{0%{opacity:0;left:115%;transform:translateY(0)}10%{opacity:1}25%{transform:translateY(-8px)}40%{transform:translateY(0)}55%{transform:translateY(-8px)}70%{transform:translateY(0)}90%{opacity:1}to{opacity:0;left:-15%;transform:translateY(-8px)}}[data-event=turkey] .mark.event-ghost{animation:1.7s ease-in both ghost-gobbled}@keyframes ghost-gobbled{0%,40%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.1)rotate(90deg)}}.ev-elves{animation:1.8s ease-in-out both ev-elves}@keyframes ev-elves{0%{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);opacity:0;transform:scale(.4)}15%{opacity:1;transform:scale(1.1)}35%{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);transform:scale(1.1)translateY(-6px)}70%{left:calc((var(--col2) + .5) * 100% / 3);top:calc((var(--row2) + .5) * 100% / 3);opacity:1;transform:scale(1.1)translateY(0)}to{left:calc((var(--col2) + .5) * 100% / 3);opacity:0;top:110%;transform:scale(.6)}}[data-event=elves] .mark.event-ghost{animation:.9s ease-in .3s both ghost-fade}.ev-sleigh{white-space:nowrap;font-size:30px;animation:1.8s linear both ev-sleigh;top:8%}@keyframes ev-sleigh{0%{opacity:0;left:-25%}10%{opacity:1}90%{opacity:1}to{opacity:0;left:125%}}.ev-gift{left:calc((var(--col) + .5) * 100% / 3);top:calc((var(--row) + .5) * 100% / 3);animation:1.8s ease-in both ev-gift}@keyframes ev-gift{0%,35%{opacity:0;transform:translateY(-120px)scale(.6)}45%{opacity:1}70%{opacity:1;transform:translateY(0)scale(1.1)}80%{transform:translateY(-6px)scale(1)}to{opacity:0;transform:translateY(0)scale(1.3)}}.ev-feast{white-space:nowrap;font-size:56px;animation:2.2s ease-out both ev-feast}@keyframes ev-feast{0%{opacity:0;transform:translateY(40px)scale(.4)}30%{opacity:1;transform:translateY(0)scale(1.1)}75%{opacity:1;transform:scale(1)}to{opacity:0;transform:translateY(-20px)scale(1.2)}}@media (prefers-reduced-motion:reduce){.event-scene,.board[data-event=earthquake],.zoom[data-event=earthquake],.zoom button.event-swapped{animation:none}.event-scene>*{display:none}.mark.event-ghost,[data-event] .mark.event-ghost{animation:1.2s linear both ghost-fade}}.event-gen-icon{font-size:34px;line-height:1}.event-gen-facts{padding:0 16px 14px;font-size:14px}.event-gen-facts p{margin:0 0 6px}.event-gen-actions{flex-wrap:wrap;gap:8px;margin:10px 0;display:flex}.event-gen-actions .btn-primary{flex:140px}.event-gen-blocks{padding:4px 16px 12px}.event-gen-block{margin-top:10px}.event-gen-label{margin-bottom:4px;font-size:13px;display:block}.event-gen-theme{padding-left:0;padding-right:0}.event-gen-saved{all:unset;cursor:pointer;flex-direction:column;min-width:0;display:flex}.event-gen-preview{flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 0;display:flex}.event-gen-preview figcaption{flex-basis:100%;font-size:13px}.event-gen-arrow{font-size:20px}.event-gen-board-wrap{flex-direction:column;align-items:center;gap:4px;display:flex}.event-gen-board-label{font-size:12px}.event-gen-board{background:var(--divider);border:1px solid var(--divider);border-radius:var(--radius-sm);grid-template-rows:repeat(3,32px);grid-template-columns:repeat(3,32px);gap:2px;display:grid;overflow:hidden}.event-gen-cell{background:var(--surface);place-items:center;display:grid}.event-gen-cell .mark{width:22px;height:22px}.event-gen-cell.changed{background:var(--highlight)}.event-gen-cell.blocked{background:repeating-linear-gradient(45deg, var(--surface-2) 0 4px, var(--divider) 4px 8px)}.boss-entry{color:var(--text);align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.boss-entry .grow,.boss-card .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.boss-list{flex-direction:column;gap:12px;display:flex}.boss-card{flex-direction:column;gap:10px;padding:14px;display:flex}.boss-card-head{align-items:flex-start;gap:12px;display:flex}.boss-card h2{margin:0;font-size:18px}.boss-level{border:1.5px solid var(--card-border);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:700}.boss-beaten{color:var(--o);font-size:13px;font-weight:700}.boss-note{align-items:baseline;gap:8px;margin:0;font-size:14px;line-height:1.35;display:flex}.boss-tag{border:1.5px solid var(--x);color:var(--text);border-radius:999px;flex:none;padding:1px 8px;font-size:12px;font-weight:700}.campaign-entry{color:var(--text);align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.campaign-entry .grow,.campaign-level .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.campaign-ladder{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.campaign-level{width:100%;color:var(--text);font:inherit;text-align:left;align-items:center;gap:12px;padding:12px 14px;display:flex}button.campaign-level{cursor:pointer}.campaign-level[aria-disabled=true]{opacity:.55}.campaign-level.next{border-color:var(--x);border-width:2px}.campaign-num{border:1.5px solid var(--card-border);border-radius:999px;flex:none;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.campaign-level.done .campaign-num{border-color:var(--o);color:var(--o)}.campaign-status{border:1.5px solid var(--card-border);white-space:nowrap;border-radius:999px;flex:none;padding:1px 8px;font-size:12px;font-weight:700}.campaign-blurb{margin:0;font-size:15px;line-height:1.45}.campaign-note{align-items:baseline;gap:8px;margin:0;font-size:14px;line-height:1.35;display:flex}.campaign-tag{border:1.5px solid var(--o);color:var(--text);white-space:nowrap;border-radius:999px;flex:none;padding:1px 8px;font-size:12px;font-weight:700}.board[data-frozen] .cells{opacity:.45}.board .frozen-badge{z-index:2;border:1.5px solid var(--highlight);background:var(--surface);color:var(--text);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:2px;padding:1px 7px 1px 4px;font-size:12px;font-weight:700;line-height:1.4;display:flex;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.board .frozen-badge svg{width:13px;height:13px}.summary-card{text-align:left;flex-direction:column;gap:10px;width:100%;padding:14px;display:flex}.summary-stats{flex-direction:column;gap:8px;margin:0;display:flex}.summary-stats dt{letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:700}.summary-stats dd{margin:2px 0 0;line-height:1.4}.summary-actions{flex-wrap:wrap;gap:8px;display:flex}.summary-actions .btn{flex:auto}.summary-note{min-height:1.2em;font-size:13px}.bench-tag{color:var(--muted);align-items:center;gap:4px;font-size:12px;display:flex}.bench-tag svg{opacity:.7;width:18px;height:18px}.tag-button{background-image:linear-gradient(90deg, color-mix(in srgb, var(--highlight) 28%, transparent) calc(var(--tag-progress,1) * 100%), transparent 0);font-variant-numeric:tabular-nums;align-items:center;gap:6px;display:inline-flex}.tag-button .tag-face svg{width:22px;height:22px}.bench-head{margin-top:8px}.trick-sheet-bench .trick{opacity:.6}.partner-chips .chip{text-align:center;overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:0;padding:8px 4px;font-size:14px;line-height:1.2;display:flex}.partner-chips .chip svg{width:26px;height:26px;margin:0}@media (prefers-reduced-motion:no-preference){.tag-button:not(:disabled) .tag-face{animation:.4s ease-out tag-ready}}@keyframes tag-ready{0%{transform:scale(.7)}to{transform:scale(1)}}.tag-team-inline{flex-direction:column;gap:8px;display:flex}.combo-timer{border:1.5px dashed var(--highlight);color:var(--text);text-align:center;border-radius:999px;align-self:center;margin:0;padding:2px 10px;font-size:13px;font-weight:700}.combo-hint{color:var(--text);margin:0;font-size:14px;font-weight:600}[data-game-feel] .zoom button{transition:transform 90ms ease-out;position:relative}[data-game-feel] .zoom button:not(:disabled):active{transform:scale(.92)}[data-game-feel] .zoom .mark.placed{animation:.34s cubic-bezier(.3,1.6,.5,1) feel-squash}[data-game-feel] .zoom .mark.placed .letter{stroke-dasharray:1;animation:.2s ease-out both feel-draw}@keyframes feel-squash{0%{opacity:0;transform:scale(1.5)}35%{opacity:1;transform:scale(.82,1.12)}60%{transform:scale(1.1,.9)}to{transform:scale(1)}}@keyframes feel-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.zoom .ripple{aspect-ratio:1;border:3px solid var(--highlight);pointer-events:none;opacity:.9;z-index:2;border-radius:50%;width:100%;animation:.6s ease-out forwards feel-ripple;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(.2)}.zoom .ripple.x{border-color:var(--x)}.zoom .ripple.o{border-color:var(--o)}@keyframes feel-ripple{to{opacity:0;border-width:1px;transform:translate(-50%,-50%)scale(3.4)}}.board .win-line{pointer-events:none;z-index:1;width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;inset:6px;overflow:visible}.win-line line{stroke-width:5px;stroke-linecap:round;stroke-dasharray:1;vector-effect:non-scaling-stroke;animation:1.1s ease-out both feel-sweep}.win-line.x line{stroke:var(--x)}.win-line.o line{stroke:var(--o)}@keyframes feel-sweep{0%{stroke-dashoffset:1px;opacity:1}30%{stroke-dashoffset:0;opacity:1}70%{stroke-dashoffset:0;opacity:1}to{stroke-dashoffset:0;opacity:0}}[data-game-feel] .board[data-won-now]{animation:.7s ease-out .28s both feel-flash}[data-game-feel] .board[data-won-now] .cells{animation:.5s ease-in .38s both feel-collapse}[data-game-feel] .board .overlay[data-landing] .mark{animation:.42s cubic-bezier(.3,1.7,.5,1) .48s both feel-land}[data-game-feel] .zoom[data-won-now] .zoom-result .mark{animation:.42s cubic-bezier(.3,1.7,.5,1) .2s both feel-land}@keyframes feel-flash{0%{box-shadow:0 0 0 0 var(--highlight);filter:brightness(1.5)}to{filter:none;box-shadow:0 0 0 10px #0000}}@keyframes feel-collapse{0%{opacity:1;transform:scale(1)}}@keyframes feel-land{0%{opacity:0;transform:scale(2.2)}60%{opacity:1;transform:scale(.9)}to{transform:scale(1)}}[data-game-feel] .cell[data-threat],[data-game-feel] .zoom button[data-threat]{animation:2.2s ease-in-out infinite feel-threat}[data-game-feel] [data-threat=x]{--threat:var(--x)}[data-game-feel] [data-threat=o]{--threat:var(--o)}[data-game-feel] [data-threat=both]{--threat:var(--highlight)}@keyframes feel-threat{0%,to{box-shadow:inset 0 0 0 1px #0000}50%{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--threat) 55%, transparent)}}[data-game-feel] .game-board[data-shake],[data-game-feel] .feel-board[data-shake]{animation:.42s ease-out feel-shake}@keyframes feel-shake{0%,to{transform:translate(0)}15%{transform:translate(-7px,2px)rotate(-.6deg)}30%{transform:translate(6px,-3px)rotate(.5deg)}45%{transform:translate(-5px,2px)}60%{transform:translate(4px,-1px)}80%{transform:translate(-2px,1px)}}[data-game-feel] .cell.cleared{position:relative}[data-game-feel] .cell.cleared:after{content:"";pointer-events:none;box-shadow:0 -10px 0 -3px var(--x), 9px -5px 0 -3px var(--highlight), 9px 6px 0 -3px var(--o), 0 10px 0 -3px var(--x), -9px 6px 0 -3px var(--highlight), -9px -5px 0 -3px var(--o);border-radius:50%;animation:.6s ease-out forwards feel-burst;position:absolute;inset:0}@keyframes feel-burst{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.6)}}[data-game-feel] .cell.landed,[data-game-feel] .zoom button.landed{animation:.9s ease-out feel-landed}[data-game-feel] .cell.landed .mark{animation:.34s cubic-bezier(.3,1.6,.5,1) feel-squash}@keyframes feel-landed{0%{box-shadow:0 0 0 3px var(--highlight);background:var(--highlight)}to{box-shadow:0 0 #0000}}.sheet[data-spring]{animation:.38s cubic-bezier(.3,1.35,.5,1) feel-spring-in}.sheet[data-closing]{animation:.2s ease-in forwards feel-fade-out}.sheet[data-spring][data-closing]{animation:.2s ease-in forwards feel-spring-out}.scrim[data-closing]{animation:.2s ease-in forwards feel-fade-out}@keyframes feel-spring-in{0%{transform:translate(var(--from-x,0), var(--from-y,0)) scale(.2);opacity:.4}}@keyframes feel-spring-out{to{transform:translate(var(--from-x,0), var(--from-y,0)) scale(.2);opacity:0}}@keyframes feel-fade-out{to{opacity:0}}.confetti{pointer-events:none;z-index:30;position:fixed;inset:0;overflow:hidden}.confetti span{width:9px;height:14px;animation:feel-confetti var(--fall,1.6s) cubic-bezier(.25, .6, .5, 1) var(--delay,0s) both;border-radius:2px;position:absolute;top:-16px}.confetti .x{background:var(--x)}.confetti .o{background:var(--o)}@keyframes feel-confetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{transform:translateY(105vh) rotate(var(--spin,360deg));opacity:.8}}[data-game-feel] .player[data-celebrate]{animation:.52s ease-in-out 3 feel-celebrate}@keyframes feel-celebrate{0%,to{transform:translateY(0)}40%{transform:translateY(-10px)scale(1.04)}}:is(.player:has(>.emote),.puzzle-me:has(>.emote),.puzzle-cpu:has(>.emote)){position:relative}.player>.emote,.puzzle-me>.emote,.puzzle-cpu>.emote{z-index:3;background:var(--bg);border:2px solid var(--text);color:var(--text);font-family:var(--font-display);font-weight:var(--display-weight);white-space:nowrap;pointer-events:none;border-radius:999px;padding:3px 10px;font-size:14px;animation:1.6s cubic-bezier(.3,1.6,.5,1) both emote-pop;position:absolute;top:-12px;left:50%}@keyframes emote-pop{0%{opacity:0;transform:translate(-50%,8px)scale(.3)}15%{opacity:1;transform:translate(-50%,-4px)scale(1.08)}25%{transform:translate(-50%)scale(1)}80%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-10px)scale(.95)}}@media (prefers-reduced-motion:reduce){[data-game-feel] .zoom .mark.placed,[data-game-feel] .zoom .mark.placed .letter,[data-game-feel] .board[data-won-now],[data-game-feel] .board[data-won-now] .cells,[data-game-feel] .board .overlay[data-landing] .mark,[data-game-feel] .zoom[data-won-now] .zoom-result .mark,[data-game-feel] .cell[data-threat],[data-game-feel] .zoom button[data-threat],[data-game-feel] .game-board[data-shake],[data-game-feel] .feel-board[data-shake],[data-game-feel] .cell.cleared:after,[data-game-feel] .cell.landed,[data-game-feel] .cell.landed .mark,[data-game-feel] .zoom button.landed,[data-game-feel] .player[data-celebrate],.sheet[data-spring],.sheet[data-spring][data-closing],.zoom .ripple,.win-line line,.confetti,.player>.emote,.puzzle-me>.emote,.puzzle-cpu>.emote{animation:none}.confetti,.zoom .ripple,.win-line{display:none}.player>.emote,.puzzle-me>.emote,.puzzle-cpu>.emote{transform:translate(-50%)}[data-game-feel] .cell[data-threat],[data-game-feel] .zoom button[data-threat]{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--threat) 40%, transparent)}}.player .who.stage{justify-content:space-between;min-height:56px}.player .who.stage .who-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.portrait{--dir:1;flex:none;width:52px;height:52px;position:relative}.portrait.facing-left{--dir:-1}.portrait.has-partner{width:70px}.portrait-main,.portrait-partner{display:block;position:absolute}.portrait-main{z-index:1;width:52px;height:52px;top:0}.facing-right .portrait-main{right:0}.facing-left .portrait-main{left:0}.portrait-partner{opacity:.85;width:30px;height:30px;bottom:-2px}.facing-right .portrait-partner{left:0}.facing-left .portrait-partner{right:0}.player .who .portrait svg{width:100%;height:100%;display:block}.portrait-bump{z-index:2;clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);opacity:0;pointer-events:none;background:#f2c230;width:16px;height:16px;position:absolute;top:18px}.facing-right .portrait-bump{left:14px}.facing-left .portrait-bump{right:14px}.portrait .side-l .pupil{--look:calc(var(--dir) * 1.2px)}.portrait .side-r .pupil{--look:calc(var(--dir) * -1.2px)}@media (prefers-reduced-motion:no-preference){.portrait-main svg{animation:3.2s ease-in-out infinite portrait-bob}.portrait-main{transform-origin:50% 90%;animation:7s ease-in-out infinite portrait-lean}.portrait .pupil{animation:7s ease-in-out infinite portrait-glare}.facing-left .portrait-main,.facing-left .pupil{animation-delay:.5s}.facing-left .portrait-main svg{animation-delay:1.6s}.portrait[data-reaction] .portrait-main svg,.portrait[data-reaction] .pupil{animation:none}.portrait[data-reaction=hop] .portrait-main{animation:.9s ease-out portrait-hop}.portrait[data-reaction=shake] .portrait-main{animation:.6s ease-in-out portrait-shake}.portrait[data-reaction=cast] .portrait-main{animation:.9s ease-out portrait-cast}.portrait[data-reaction=tag] .portrait-main{animation:1s ease-in-out portrait-bump-main}.portrait[data-reaction=tag] .portrait-partner{animation:1s ease-in-out portrait-bump-partner}.portrait[data-reaction=tag] .portrait-bump{animation:1s ease-out portrait-bump-star}}@media (prefers-reduced-motion:reduce){.portrait[data-reaction=tag] .portrait-bump{opacity:1}}@keyframes portrait-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes portrait-lean{0%,55%,92%,to{transform:rotate(0)}62%,84%{transform:rotate(calc(var(--dir) * 7deg)) translateX(calc(var(--dir) * 2px))}}@keyframes portrait-glare{0%,55%,92%,to{transform:translate(0)}62%,84%{transform:translateX(var(--look))}}@keyframes portrait-hop{0%,45%,80%,to{transform:translateY(0)scale(1)}10%{transform:translateY(0)scale(1.08,.9)}25%{transform:translateY(-12px)scale(.95,1.06)}62%{transform:translateY(-6px)}}@keyframes portrait-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-4px)rotate(-4deg)}40%,80%{transform:translate(4px)rotate(4deg)}}@keyframes portrait-cast{0%,to{filter:none;transform:scale(1)rotate(0)}25%{transform:scale(.9) rotate(calc(var(--dir) * -10deg))}50%{transform:scale(1.2) rotate(calc(var(--dir) * 8deg));filter:drop-shadow(0 0 6px #f2c230)}75%{transform:scale(1.05)rotate(0)}}@keyframes portrait-bump-main{0%,to{transform:translate(0)scale(1)}35%{transform:translateX(calc(var(--dir) * -9px)) scale(1)}42%{transform:translateX(calc(var(--dir) * -6px)) scale(.88, 1.08)}65%{transform:translateX(calc(var(--dir) * 3px)) rotate(calc(var(--dir) * 5deg))}}@keyframes portrait-bump-partner{0%,to{transform:translate(0)scale(1)}35%{transform:translateX(calc(var(--dir) * 9px)) scale(1)}42%{transform:translateX(calc(var(--dir) * 6px)) scale(.85, 1.1)}65%{transform:translateX(calc(var(--dir) * -3px)) rotate(calc(var(--dir) * -6deg))}}@keyframes portrait-bump-star{0%,36%{opacity:0;transform:scale(0)rotate(0)}44%{opacity:1;transform:scale(1.3)rotate(30deg)}80%{opacity:1;transform:scale(1)rotate(60deg)}to{opacity:0;transform:scale(.6)rotate(90deg)}}.scene{--scene-a:#cfe9ff;--scene-b:#9fd88a;isolation:isolate;background:linear-gradient(180deg, var(--scene-a), var(--scene-b));border-radius:20px;margin:4px -6px;padding:12px 10px;position:relative;overflow:hidden}.scene-sky{z-index:-1;pointer-events:none;position:absolute;inset:0}.scene-detail{color:#1b1b1b;text-shadow:0 1px #fff9;margin:0 2px 8px;font-size:13px}.scene-art{z-index:-2;object-fit:cover;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;position:absolute;inset:0}.scene .board,.scene .board[data-state]{background:color-mix(in srgb, var(--board-theirs-bg) 18%, transparent);-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px)}.scene .board[data-state=mine]{background:color-mix(in srgb, var(--board-mine-bg) 24%, transparent)}.scene .cell{background:color-mix(in srgb, var(--cell-bg) 48%, transparent)}.scene .board[data-state=mine] .cell{background:color-mix(in srgb, var(--cell-mine-bg) 56%, transparent)}.scene .scene-detail{color:#fff;text-shadow:0 1px 2px #0009;background:#00000073;border-radius:10px;padding:6px 10px}[data-board-style=lines] .scene .nine{background:color-mix(in srgb, var(--bg) 78%, transparent);border-radius:12px}.scene[data-scene=meadow]{--scene-a:#cdeafe;--scene-b:#8fd27a}.scene[data-scene=beach]{--scene-a:#7fd3f0;--scene-b:#f3dca2}.scene[data-scene=forest]{--scene-a:#b7dfb0;--scene-b:#3f7d4a}.scene[data-scene=desert]{--scene-a:#ffe1a1;--scene-b:#e0a35b}.scene[data-scene=ocean]{--scene-a:#5ec8e5;--scene-b:#1c5f8f}.scene[data-scene=city]{--scene-a:#3a3f74;--scene-b:#f3a86b}.scene[data-scene=space]{--scene-a:#1a1240;--scene-b:#3f2b7a}.scene[data-scene=snow]{--scene-a:#e4f1fb;--scene-b:#bcd3e6}.scene[data-scene=sunset]{--scene-a:#ffb36b;--scene-b:#c4508a}.scene[data-scene=castle]{--scene-a:#4a3b5c;--scene-b:#22182e}.scene[data-scene=volcano]{--scene-a:#4a2a24;--scene-b:#e04e1b}.scene[data-scene=war-zone]{--scene-a:#7d7a66;--scene-b:#4b4a36}.scene[data-scene=flood]{--scene-a:#6d8796;--scene-b:#1f5d86}.scene[data-scene=haunted]{--scene-a:#1d1440;--scene-b:#2a1a3d}.scene[data-scene=harvest]{--scene-a:#f7b56a;--scene-b:#dba44e}.scene[data-scene=christmas-village]{--scene-a:#16294f;--scene-b:#eef5fd}.scene[data-scene=volcano] .scene-sky{background:radial-gradient(120% 50% at 50% 105%,#ff8c28d9,#0000 70%);animation:2.6s ease-in-out infinite alternate scene-glow}.scene[data-scene=war-zone] .scene-sky{background:radial-gradient(40% 30% at 20% 30%,#28282873,#0000 70%),radial-gradient(50% 35% at 80% 70%,#28282866,#0000 70%);animation:9s ease-in-out infinite alternate scene-drift}.scene[data-scene=flood] .scene-sky{background:linear-gradient(#78bee68c,#145082cc);height:38%;animation:4s ease-in-out infinite alternate scene-tide;top:auto}@keyframes scene-glow{0%{opacity:.55}to{opacity:1}}@keyframes scene-drift{0%{transform:translate(-6%)}to{transform:translate(6%)}}@keyframes scene-tide{0%{height:30%}to{height:46%}}@media (prefers-reduced-motion:reduce){.scene .scene-sky{animation:none}}:root[data-mode=dark] .scene-art{filter:brightness(.78)saturate(.95)}.admin-scene-art{object-fit:cover;background:var(--chip-bg,#0000000f);border-radius:8px;flex:none;place-items:center;width:44px;height:48px;font-size:24px;display:grid}.tournament-entry{color:var(--text);align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.tournament-entry .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.tournament-open{flex-direction:column;gap:10px;padding:14px;display:flex}.tournament-prizes{flex-wrap:wrap;gap:6px 16px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.bracket{grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:8px;display:grid}.bracket-round{flex-direction:column;justify-content:space-around;gap:8px;min-width:0;height:100%;display:flex}.bracket-round .eyebrow{margin:0;font-size:11px}.bracket-match{flex-direction:column;gap:2px;min-width:0;padding:8px;font-size:13px;display:flex}.bracket-match.mine{outline:2px solid var(--highlight)}.bracket-player{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bracket-player.won{font-weight:700}.bracket-player.out{opacity:.55}.bracket-note{font-size:11px}.bracket-play{font-size:13px;font-weight:600}.bounty-entry{color:var(--text);align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.bounty-entry .grow{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.bounties{flex-direction:column;gap:14px;display:flex}.bounty-card{flex-direction:column;gap:8px;padding:14px;display:flex}.bounty-card .row{padding-left:0;padding-right:0}.bounty-form{flex-direction:column;gap:12px;display:flex}.tutorial-entry{color:var(--text);align-items:center;gap:12px;padding:14px;display:flex}.tutorial-entry .grow{min-width:0;color:inherit;flex-direction:column;flex:1;gap:2px;text-decoration:none;display:flex}.tutorial-dots{justify-content:center;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tutorial-dots li{background:var(--divider);border-radius:50%;width:8px;height:8px}.tutorial-dots li[data-done]{background:var(--o)}.tutorial-dots li[data-at]{background:var(--x);border-radius:4px;width:22px}.tutorial-lesson{flex-direction:column;gap:6px;padding:14px;display:flex}.tutorial-lesson h2{font-size:22px}.tutorial-last{margin-top:-8px;font-size:14px}.tutorial-result{text-align:center;flex-direction:column;align-items:center;gap:8px;padding:16px;display:flex}.tutorial-result.solved{outline:3px solid var(--highlight)}.tutorial-badge{width:56px;height:56px;display:flex}.tutorial-skip{align-self:center;font-size:14px;font-weight:600}.trophy-shelf,.trophy-tile{--trophy-locked:color-mix(in srgb, var(--divider) 70%, transparent);--trophy-locked-edge:var(--divider)}.trophy-shelf{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:12px 8px;margin:0;padding:12px;list-style:none;display:grid}.trophy-tile{text-align:center;flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.trophy-stage{border-radius:var(--radius);background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--highlight) 55%, transparent), transparent 70%);place-items:center;width:76px;height:84px;display:grid;position:relative}.trophy-tile.locked .trophy-stage{background:0 0}.trophy-art{filter:drop-shadow(0 2px 2px #00000040);width:60px;height:68px}.trophy-tile.locked .trophy-art{filter:none}.trophy-number{font-family:var(--font-display);font-size:17px;font-weight:800}.trophy-name{font-size:14px;font-weight:700;line-height:1.2}.trophy-tile.locked .trophy-name{color:var(--muted)}.trophy-tile .rarity-badge{align-self:center}.trophy-tile.locked .rarity-badge{opacity:.6}.trophy-blurb{font-size:12px;line-height:1.3}.trophy-times,.trophy-new{border-radius:999px;padding:1px 6px;font-size:11px;font-weight:800;position:absolute}.trophy-times{background:var(--primary-bg);color:var(--primary-text);bottom:4px;right:-4px}.trophy-new{background:var(--x);color:#fff;letter-spacing:.5px;top:0;left:-4px}.trophy-tile.rare:not(.locked) .trophy-stage{background:radial-gradient(circle at 50% 40%,#f2c23073,#0000 72%)}.trophy-sparkles i{clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);filter:drop-shadow(0 0 2px #f2c230);opacity:0;background:#fff;width:8px;height:8px;animation:2.4s ease-in-out infinite trophy-sparkle;position:absolute}.trophy-sparkles i:first-child{top:8px;left:12px}.trophy-sparkles i:nth-child(2){animation-delay:.8s;top:26px;right:8px}.trophy-sparkles i:nth-child(3){animation-delay:1.6s;bottom:22px;left:18px}@keyframes trophy-sparkle{0%,to{opacity:0;transform:scale(.4)rotate(0)}50%{opacity:1;transform:scale(1)rotate(45deg)}}.trophy-tile.new .trophy-art{animation:.9s cubic-bezier(.2,1.4,.4,1) both trophy-arrive}.trophy-tile.new .trophy-stage{box-shadow:0 0 0 2px var(--highlight), 0 0 18px var(--highlight)}@keyframes trophy-arrive{0%{opacity:0;transform:translateY(12px)scale(.6)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.trophy-sparkles i,.trophy-tile.new .trophy-art{animation:none}.trophy-sparkles i{opacity:.8}}.player-hero{align-items:center;gap:12px;display:flex}.player-hero .mark{flex:none;width:56px;height:56px}.trophy-case-summary{flex-wrap:wrap;gap:4px 12px;font-size:13px;display:flex}.achievement-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px 8px;margin:0;padding:12px;list-style:none;display:grid}.achievement-tile{border-radius:var(--radius);background:var(--highlight);color:var(--on-highlight);text-align:center;flex-direction:column;align-items:center;gap:2px;min-width:0;padding:10px 6px;display:flex}.achievement-tile.locked{color:inherit;border:1px dashed color-mix(in srgb, var(--muted) 55%, transparent);background:0 0}.achievement-icon{font-size:32px;line-height:1.2}.achievement-tile.locked .achievement-icon{filter:grayscale();opacity:.4}.achievement-name{font-size:14px;font-weight:700;line-height:1.2}.achievement-tile.locked .achievement-name{color:var(--muted)}.achievement-desc{font-size:12px;line-height:1.3}.achievement-tile.locked .achievement-desc{color:var(--muted)}.achievement-meta{min-height:1.3em;font-size:12px;font-weight:600}.achievement-toasts{bottom:calc(var(--safe-bottom) + 76px);z-index:40;pointer-events:none;width:min(448px,100% - 32px);position:fixed;left:50%;transform:translate(-50%)}.achievement-toast{border-radius:var(--radius);background:var(--highlight);color:var(--on-highlight);pointer-events:auto;align-items:center;gap:4px;padding:4px 4px 4px 12px;animation:.3s ease-out achievement-toast-in;display:flex;box-shadow:0 6px 24px #00000040}[data-theme=toy] .achievement-toast,[data-theme=pixel] .achievement-toast{border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}.achievement-toast a{min-height:44px;color:inherit;flex:1;align-items:center;gap:10px;font-weight:700;line-height:1.3;text-decoration:none;display:flex}.achievement-toast-icon{font-size:24px}.achievement-toast button{width:44px;height:44px;color:inherit;background:0 0;border:0;flex:none;justify-content:center;align-items:center;display:flex}@keyframes achievement-toast-in{0%{opacity:0;transform:translateY(12px)scale(.96)}}@media (prefers-reduced-motion:reduce){.achievement-toast{animation:none}}.ranked{gap:14px}.ranked-me,.ranked-how{flex-direction:column;gap:8px;padding:14px;display:flex}.ranked-how p{margin:0;font-size:14px}.ranked-tier{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.ranked-rating strong{font-family:var(--font-display);font-weight:var(--display-weight);font-size:22px}.ranked-bar{background:var(--divider);border-radius:999px;height:10px;overflow:hidden}.ranked-bar span{border-radius:inherit;background:var(--highlight);height:100%;display:block}.ranked-tiers{flex-wrap:wrap;gap:8px 14px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.tier{white-space:nowrap;border:1px solid;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700;display:inline-block}.tier-big{padding:4px 14px;font-size:18px}.tier-bronze{color:color-mix(in srgb, #b8733a 70%, var(--text))}.tier-silver{color:color-mix(in srgb, #8a939e 60%, var(--text))}.tier-gold{color:color-mix(in srgb, #c99a1a 75%, var(--text))}.tier-platinum{color:color-mix(in srgb, #2fa39d 75%, var(--text))}.tier-diamond{color:color-mix(in srgb, #5577e0 75%, var(--text))}.ranked-entry{color:var(--text);align-items:center;gap:12px;margin-bottom:12px;padding:14px;text-decoration:none;display:flex}.ranked-entry .grow{flex-direction:column;flex:1;gap:2px;display:flex}:root{--quest-gold:#c9971c;--quest-gold-glow:#c9971c8c}[data-mode=dark]{--quest-gold:#f0c24b;--quest-gold-glow:#f0c24b73}.quest-gold{box-shadow:0 0 0 3px var(--quest-gold), 0 0 14px 2px var(--quest-gold-glow);border-radius:50%;flex:none;display:inline-flex;position:relative}.quest-gold>svg{filter:drop-shadow(0 0 2px var(--quest-gold-glow))}.quest-star{background:var(--quest-gold);color:#2b1d00;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:14px;line-height:1;display:flex;position:absolute;top:-6px;right:-6px}.quest-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.quest-row{width:100%;color:inherit;font:inherit;text-align:left;align-items:center;gap:14px;padding:10px 14px;display:flex}.quest-row[aria-pressed=true]{outline:3px solid var(--focus);outline-offset:2px}.quest-row svg{flex:none;width:44px;height:44px}.quest-row .grow{flex-direction:column;gap:4px;min-width:0;display:flex}.quest-name{font-weight:700}.quest-bar{background:var(--divider);border-radius:999px;height:8px;display:block;overflow:hidden}.quest-bar>span{border-radius:inherit;background:var(--quest-gold);height:100%;display:block}.quest-label{font-size:13px}.replay-step{flex-direction:column;gap:2px;display:flex}.replay-step .muted{font-size:13px;font-weight:400}.replay-timeline{padding-top:10px;position:relative}.replay-timeline input[type=range]{width:100%;accent-color:var(--x);margin:0;display:block}.replay-marker{top:0;left:calc(8px + (100% - 16px) * var(--at,0));border-left:6px solid #0000;border-right:6px solid #0000;border-top:9px solid var(--o);pointer-events:none;width:0;height:0;position:absolute;transform:translate(-6px)}.replay-controls{justify-content:center;gap:8px;display:flex}.replay-controls .btn{min-width:48px}.replay-jump{align-self:center}.replay-note{text-align:center;font-size:14px}.replay-turning{border-left:4px solid var(--o)}
