@layer foundations,components,scenes,overrides;@layer foundations{@font-face{font-family:Libre Franklin;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/libre-franklin-400.woff2) format("woff2")}@font-face{font-family:Libre Franklin;font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/libre-franklin-600.woff2) format("woff2")}@font-face{font-family:Pip Suits;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/pip-suits.woff2) format("woff2");unicode-range:U+2660,U+2663,U+2665,U+2666}}@layer foundations{:root{color-scheme:dark;--control-pad: 10px 12px;--control-font: 14px "Libre Franklin", sans-serif;--control-bg: #16233b;--control-border: 1px solid #22304a;--control-radius: 8px;--control-ink: #e2e8f0;--control-ink-muted: #94a3b8;--link-ink: #cbd5e1;--link-rule: #64748b;--prose-font: 13px/1.55 "Libre Franklin", sans-serif;--panel-bg: #0f172a;--panel-accent: #eab308;--panel-border: 2px solid var(--panel-accent);--panel-radius: 14px;--panel-shadow: 0 10px 40px rgba(0, 0, 0, .5);--panel-ink: #f8fafc;--panel-ink-quiet: #cbd5e1;--panel-button-pad: 10px 22px;--panel-button-font: 600 16px "Libre Franklin", sans-serif;--panel-button-radius: 8px;--panel-button-bg: #166534;--panel-button-bg-hover: #15803d;--panel-button-alt-bg: #334155;--panel-button-alt-bg-hover: #475569}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;touch-action:manipulation;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}body{min-height:100dvh;display:flex;flex-direction:column;align-items:center;text-align:center;background:radial-gradient(130% 120% at 50% 0%,#13233b,#0b1220 60%);color:#e2e8f0;font-family:Libre Franklin,sans-serif;font-weight:400;-webkit-font-smoothing:antialiased;padding:calc(env(safe-area-inset-top) + .75rem) calc(env(safe-area-inset-right) + 1.5rem) 0 calc(env(safe-area-inset-left) + 1.5rem)}.raw-host{display:contents}}@layer foundations{#app-root{display:contents}#app{flex:1;width:100%;display:flex;flex-direction:column;align-items:center}#scene-area{flex:1;align-self:stretch;display:flex;align-items:stretch;margin-inline:calc(-1*(env(safe-area-inset-left) + 1.5rem)) calc(-1*(env(safe-area-inset-right) + 1.5rem))}#scene-box{width:100%;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #22304a;border-bottom:1px solid #22304a;background:#13233b59;display:flex;flex-direction:column;align-items:center;justify-content:center}#scene-container{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem}}@layer overrides{@media(orientation:landscape)and (max-height:500px){body{padding-top:calc(env(safe-area-inset-top) + .25rem)}#app{flex-direction:row}#top-bar{flex-direction:column;align-self:stretch;align-items:stretch;justify-content:space-between;width:auto;margin:0 .5rem 0 calc(-1*env(safe-area-inset-left) - .75rem)}.top-bar__button--menu{margin-top:env(safe-area-inset-bottom)}.top-bar__button--undo{margin-bottom:env(safe-area-inset-bottom)}.top-bar__button--hint{order:-1;margin-top:auto}.top-bar__button--menu{order:-2}#scene-area{margin-inline-start:0;margin-block-start:calc(-1*(env(safe-area-inset-top) + .25rem))}#scene-box{padding-top:calc(env(safe-area-inset-top) + .25rem);border-top-width:0;border-bottom-width:0;border-left:1px solid #22304a}.stacking-playfield .drop-rows{top:0;gap:11px}}@media(orientation:landscape)and (max-height:500px){html[data-cutout=right] #app{flex-direction:row-reverse}html[data-cutout=right] #top-bar{margin:0 calc(-1*env(safe-area-inset-right) - .75rem) 0 .5rem}html[data-cutout=right] #scene-area{margin-inline-start:calc(-1*(env(safe-area-inset-left) + 1.5rem));margin-inline-end:0}html[data-cutout=right] #scene-box{border-left-width:0;border-right:1px solid #22304a}html[data-cutout=right] #menu-overlay{justify-content:flex-end}html[data-cutout=right] .menu-panel{border-right-width:0;border-left:1px solid #22304a;box-shadow:-2px 0 24px #00000073;padding-right:calc(env(safe-area-inset-right) + 1.25rem);padding-left:1.25rem}}@media(orientation:landscape)and (max-height:500px){html[data-notch-wings=off]:not([data-cutout=right]) #top-bar{margin-left:-.75rem}html[data-notch-wings=off][data-cutout=right] #top-bar{margin-right:-.75rem}html[data-notch-wings=off] .top-bar__button--menu{margin-top:0}html[data-notch-wings=off] .top-bar__button--undo{margin-bottom:0}}}@layer components{.menu-title{margin:0;-webkit-user-select:none;user-select:none;touch-action:manipulation;font-size:1.6rem;font-weight:700;line-height:1.15;letter-spacing:-.02em;background:linear-gradient(180deg,#f0fdf4,#86efac);-webkit-background-clip:text;background-clip:text;color:transparent}.menu-panel__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.menu-panel__header>.menu-update{display:inline-flex;align-items:center;flex:0 0 auto;height:2rem;padding:0 .7rem;font-size:12px;letter-spacing:.01em}.menu-back,.menu-close{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0;color:#cbd5e1;background:transparent;border:1px solid #334155;border-radius:8px;cursor:pointer}.menu-back__icon,.menu-close__icon{display:block}.menu-back__icon{width:20px;height:20px}.menu-close__icon{width:18px;height:18px}}@layer components{.menu-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;min-height:2.75rem;padding:var(--control-pad);font:var(--control-font);color:var(--control-ink);background:var(--control-bg);border:var(--control-border);border-radius:var(--control-radius);cursor:pointer}.menu-row--nav{font-weight:600}.menu-row--active{color:#f0fdf4;background:#166534;border-color:#22c55e}.menu-row__text{display:flex;flex-direction:column;gap:.15rem;min-width:0;text-align:left}.menu-row__label{font-weight:600}.menu-row__desc{font-size:12px;line-height:1.35;color:#94a3b8}.menu-row__switch{position:relative;flex:0 0 auto;width:40px;height:22px;background:#334155;border-radius:999px;transition:background .15s ease}.menu-row__switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:#e2e8f0;border-radius:50%;transition:transform .15s ease}.menu-row--on .menu-row__switch{background:#166534}.menu-row--on .menu-row__switch:after{transform:translate(18px);background:#f0fdf4}.menu-row__chevron{flex:0 0 auto;font-size:1.2em;line-height:1;color:#64748b}}@layer components{.menu-variant-mark__word{font-weight:400;line-height:1}.menu-variant-mark__suits{font-family:Pip Suits,Libre Franklin,sans-serif;font-size:16px;line-height:1;letter-spacing:.06em}}@layer components{.menu-game-row{display:flex;align-items:center;gap:0}.menu-game-row .menu-row{flex:1 1 auto;min-width:0}.menu-game-row .menu-game-row__variant{flex:0 0 auto;justify-content:center;width:5.75rem;align-self:stretch;margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.menu-game-row--segmented .menu-row:not(.menu-game-row__variant){border-top-right-radius:0;border-bottom-right-radius:0}.menu-game-row__info{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-right:-13px;padding:0;color:var(--control-ink-muted);background:none;border:none;cursor:pointer}.menu-game-row__badge{display:flex;align-items:center;justify-content:center;width:18px;height:18px;font:600 12px Libre Franklin,sans-serif;line-height:1;color:var(--control-ink-muted);background:var(--control-bg);border:1px solid currentcolor;border-radius:50%}.menu-game-row__info:focus-visible{outline:none}.menu-game-row__info:focus-visible .menu-game-row__badge{outline:2px solid #93c5fd;outline-offset:2px}}@layer components{.menu-update{padding:var(--control-pad);font:var(--control-font);font-weight:600;text-align:center;color:#f8fafc;background:#166534;border:1px solid transparent;border-radius:var(--control-radius);cursor:pointer}}@layer components{.menu-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem}.menu-button{text-align:center;white-space:nowrap;padding:var(--control-pad);font:var(--control-font);font-weight:600;color:var(--control-ink);background:var(--control-bg);border:var(--control-border);border-radius:var(--control-radius);cursor:pointer}}@layer components{.menu-share-line{margin:-.4rem 0 -1rem;font:12px/1 Libre Franklin,sans-serif;min-height:1rem;color:#94a3b8}}@layer scenes{.card-art{display:block;width:100%;height:auto}}@layer components{.about-hero{align-items:center;text-align:center;margin-top:auto}.about-hero .about-link{align-self:center}.about-icon{width:13rem;margin-top:.4rem}.about-icon>svg{display:block;width:100%;height:auto}.menu-title.about-wordmark{margin-top:.1rem;margin-bottom:.2rem;font-size:2.6rem}.about-blurb{margin:0;padding-inline:3.25rem;text-wrap:balance;font:var(--prose-font);color:var(--control-ink-muted)}.about-build{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-align:center}.about-build>.menu-refresh,.about-build>.menu-update{display:flex;align-items:center;justify-content:center;flex:none;width:10.5rem;min-height:2.75rem}.about-build__version{font:20px/1.2 ui-monospace,SF Mono,Menlo,monospace;color:var(--control-ink);-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.about-build__time{margin-top:.15rem;font:12px/1.3 Libre Franklin,sans-serif;color:var(--control-ink-muted);-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}.about-link{display:inline-flex;align-items:center;align-self:start;gap:.45rem;padding-block:4px;font:13px Libre Franklin,sans-serif;color:var(--link-ink);text-decoration:none}.about-link__name{text-decoration:underline;text-decoration-color:var(--link-rule);text-underline-offset:.2em}.about-link__mark{flex:none;width:1.15em;height:1.15em}}@layer components{.scene-menu__group{display:flex;flex-direction:column;gap:.3rem}.scene-menu__group-label{display:flex;align-items:center;gap:.5rem;padding:var(--control-pad);font:var(--control-font);color:var(--control-ink-muted);background:var(--control-bg);border:var(--control-border);border-radius:var(--control-radius);cursor:pointer;list-style:none}.scene-menu__group-label::-webkit-details-marker{display:none}.scene-menu__group-label:before{content:"▸";font-size:.8em;color:#64748b;transition:transform .15s ease}.scene-menu__group[open]>.scene-menu__group-label:before{transform:rotate(90deg)}.scene-menu__group-body{display:flex;flex-direction:column;gap:.3rem;padding-top:.3rem}}@layer scenes{.table-board{position:relative;isolation:isolate;flex:1;width:100%;display:flex;flex-direction:column;align-items:stretch}.win-overlay{position:absolute;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#0b1220b3;animation:win-overlay-in .2s ease-out}@keyframes win-overlay-in{0%{opacity:0}to{opacity:1}}.win-overlay--gradual{animation-duration:.5s}.win-panel{display:flex;flex-direction:column;align-items:center;gap:16px;padding:28px 36px;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);text-align:center}.win-panel__title{margin:0;font:600 26px Libre Franklin,sans-serif;color:var(--panel-accent)}.win-panel__time{margin:0;font:600 20px Libre Franklin,sans-serif;font-variant-numeric:tabular-nums;color:#e2e8f0}.win-panel__stats{margin:0;font:15px Libre Franklin,sans-serif;color:var(--panel-ink-quiet)}.win-panel__button{padding:var(--panel-button-pad);font:var(--panel-button-font);color:var(--panel-ink);background:var(--panel-button-bg);border:none;border-radius:var(--panel-button-radius);cursor:pointer}.win-panel__button:hover{background:var(--panel-button-bg-hover)}.win-panel__actions{display:flex;gap:12px}.win-panel__button--share{background:var(--panel-button-alt-bg)}.win-panel__button--share:hover{background:var(--panel-button-alt-bg-hover)}.win-panel__status{margin:-8px 0 -22px;line-height:1.35;min-height:1.35em;font:13px Libre Franklin,sans-serif;color:#94a3b8}.finish-button{position:absolute;left:50%;bottom:18px;transform:translate(-50%);z-index:900;padding:12px 30px;font:600 17px Libre Franklin,sans-serif;color:var(--panel-ink);background:var(--panel-button-bg);border:var(--panel-border);border-radius:9px;box-shadow:0 6px 22px #00000073;cursor:pointer}.finish-button:hover{background:var(--panel-button-bg-hover)}.stacking-playfield{--card-w: 80px;--card-h: 112px;--card-radius: 8px;--zone-w: 88px;--zone-h: 120px;--zone-radius: 12px;position:relative;flex:1;width:100%;min-height:300px;touch-action:none}.drop-rows{position:absolute;left:env(safe-area-inset-left);right:env(safe-area-inset-right);top:16px;max-width:var(--rows-max-w, none);margin-inline:auto;display:flex;flex-direction:column;gap:16px}.drop-row{display:flex;justify-content:space-evenly}.drop-zone{position:relative;width:var(--zone-w);height:var(--zone-h);border:1px dashed transparent;border-radius:var(--zone-radius);transition:border-color .12s ease,background .12s ease}.drop-zone__rest{position:absolute;left:50%;top:calc(var(--zone-h) / 2);transform:translate(-50%,-50%);width:var(--card-w);height:var(--card-h);pointer-events:none}.drop-zone__slot{border:1px dashed #334155;border-radius:var(--card-radius)}.drop-zone__slot--foundation{border-style:solid;border-color:#3b4a63;background:#0206176b;box-shadow:inset 0 2px 7px #00000080}.drop-zone__slot--cell{border-style:solid;border-color:#94a3b873;background:#94a3b81c;box-shadow:inset 0 1px #e2e8f021}.drop-zone__slot--foundation:after{content:"♠ ♥\a♦ ♣";white-space:pre;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:Pip Suits,serif;font-size:calc(var(--card-w) * .26);line-height:1.05;text-align:center;color:#94a3b899}.drop-zone__slot--stock{border-style:solid;border-color:#94a3b84d;background:#94a3b80f}.drop-zone__slot--cell:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46%;height:46%;border:1px solid rgba(148,163,184,.42);border-radius:calc(var(--card-radius) * .5)}.drop-zone--over{border-color:#22c55e;background:#22c55e1f}.drop-zone--invalid{border-color:#ef4444;background:#ef44441f;animation:drop-zone-reject .5s ease-in-out infinite}.drop-zone--refused{border-color:#ef4444;background:#ef44441f;animation:drop-zone-reject .5s ease-in-out 2}@keyframes drop-zone-reject{0%,to{border-color:#ef4444;background:#ef44441f}50%{border-color:#7f1d1d;background:#ef44440a}}.hint-mask{position:absolute;left:0;top:0;width:100%;height:100%;border-radius:var(--card-radius);background:#22c55e;opacity:0;pointer-events:none}.stacking-card{position:absolute;top:0;left:0;width:var(--card-w);-webkit-user-drag:none;cursor:grab;transform:translateZ(0);transition:left .18s ease,top .18s ease}.stacking-card .card-art{width:100%;transform:rotate(var(--card-rot, 0deg));transform-origin:50% 50%;transition:transform var(--card-rot-dur, .18s) ease var(--card-rot-delay, 0s);border-radius:var(--card-radius);box-shadow:0 0 1px #0f172a8c,0 1px 2px #0f172a66}.stacking-playfield.dealing .stacking-card{transition:none}.stacking-card.dragging{cursor:grabbing;transition:none}.stacking-card.dragging .card-art{box-shadow:0 12px 22px #00000080}.stacking-card--buried{cursor:default}.stacking-card--stock{cursor:pointer}.card-back{position:absolute;inset:0;box-sizing:border-box;border:calc(var(--card-w) * .06) solid #f7f7f7;border-radius:var(--card-radius);background:repeating-linear-gradient(45deg,rgba(255,255,255,.14) 0 calc(var(--card-w) * .03),transparent calc(var(--card-w) * .03) calc(var(--card-w) * .09)),repeating-linear-gradient(-45deg,rgba(255,255,255,.14) 0 calc(var(--card-w) * .03),transparent calc(var(--card-w) * .03) calc(var(--card-w) * .09)),#1e3a8a;box-shadow:0 0 1px #0f172a8c,0 1px 2px #0f172a66;transform:rotate(var(--card-rot, 0deg));transform-origin:50% 50%;transition:transform var(--card-rot-dur, .18s) ease var(--card-rot-delay, 0s),opacity .12s ease;opacity:0;pointer-events:none}.stacking-card--down .card-back{opacity:1}.stacking-card--down .card-art{visibility:hidden}.stacking-card--turning .card-art{animation:card-turn .24s ease-out}@keyframes card-turn{0%{transform:rotate(var(--card-rot, 0deg)) scaleX(0)}to{transform:rotate(var(--card-rot, 0deg)) scaleX(1)}}@media(prefers-reduced-motion:reduce){.stacking-card--turning .card-art{animation:none}.card-back{transition-property:transform}}.stacking-card--flown{visibility:hidden}.table-board--cascading .win-overlay{pointer-events:none;background:#0b122059}.table-board--cascading .win-panel{pointer-events:auto}.table-cascade{position:absolute;inset:0;z-index:950;display:block;width:100%;height:100%;touch-action:none}}@layer components{.board-preview{container-type:inline-size;width:100%;display:flex;align-items:center;justify-content:center;min-height:0;pointer-events:none;-webkit-user-select:none;user-select:none}}@layer overrides{.board-preview .drop-rows{position:static;width:100%}}@layer components{.menu-variant-picker{display:flex;align-items:stretch}.menu-variant-picker__choice{flex:1 1 0;justify-content:center;min-width:0}.menu-variant-picker__choice+.menu-variant-picker__choice{margin-left:-1px}.menu-variant-picker__choice:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.menu-variant-picker__choice:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.menu-variant-picker__choice.menu-row--active{position:relative;z-index:1}}@layer components{.game-info__prose{margin:0;font:var(--prose-font);color:var(--control-ink-muted)}.game-info__preview{padding:.6rem;background:var(--control-bg);border:var(--control-border);border-radius:var(--control-radius)}.game-info__numbers{margin:0;font:13px ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.02em;text-align:center;color:var(--control-ink-muted)}.game-info__link{align-self:start;display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;margin-inline-start:-4px;color:var(--link-ink)}.game-info__badge{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--control-bg);border:1px solid var(--link-rule);border-radius:50%}.game-info__mark{width:22px;height:22px}.game-info__link:focus-visible{outline:none}.game-info__link:focus-visible .game-info__badge{outline:2px solid #93c5fd;outline-offset:2px}}@layer components{#menu-overlay{position:fixed;inset:0;z-index:20;display:flex}#menu-overlay[hidden]{display:none}.menu-overlay__backdrop{position:absolute;inset:0;background:#02061099}html[data-console-dock=side] .menu-overlay__backdrop{right:calc(env(safe-area-inset-right) + var(--console-dock-inset, 0px))}html[data-cutout=right][data-console-dock=side] .menu-overlay__backdrop{right:0;left:calc(env(safe-area-inset-left) + var(--console-dock-inset, 0px))}.menu-panel{position:relative;display:flex;flex-direction:column;gap:1rem;width:min(20rem,82vw);height:100%;padding:calc(env(safe-area-inset-top) + 1rem) 1.25rem calc(env(safe-area-inset-bottom) + 1rem) calc(env(safe-area-inset-left) + 1.25rem);background:#0f1a2e;border-right:1px solid #22304a;box-shadow:2px 0 24px #00000073;overflow-y:auto;text-align:left}.menu-screen{display:flex;flex-direction:column;gap:1rem;flex:1 1 auto}.menu-section{display:flex;flex-direction:column;gap:.4rem}.menu-section--bottom{margin-top:auto}.menu-row--action:disabled,.menu-button:disabled{opacity:.5;cursor:default}.menu-section__heading{margin:0 0 .1rem;font:600 12px Libre Franklin,sans-serif;letter-spacing:.05em;text-transform:uppercase;color:#64748b}.menu-section__value{font:13px ui-monospace,SF Mono,Menlo,monospace;letter-spacing:normal;text-transform:none;color:#94a3b8}}@layer scenes{.raster-scene{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:min(94vw,760px)}.raster-scene__toolbar{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.raster-toggle{font:inherit;font-size:.85rem;padding:.35rem .7rem;border-radius:999px;border:1px solid #2d4066;background:#16233a;color:#cbd5e1;cursor:pointer}.raster-toggle--on{border-color:#22c55e;background:#14532d;color:#f0fdf4}.raster-scene__status{margin:0;font-size:.78rem;color:#94a3b8;text-align:center}.raster-toggle__key{display:inline-block;min-width:1.1em;margin-right:.4em;padding:0 .25em;border-radius:.25rem;background:#0b1220;color:#94a3b8;font-size:.85em;text-align:center}.raster-toggle--on .raster-toggle__key{background:#052e16;color:#86efac}.raster-grid{display:grid;grid-template-columns:repeat(auto-fill,var(--raster-card-w));justify-content:center;gap:.7rem;width:100%}.raster-cell{display:flex;align-items:flex-start}.raster-cell .card-art{width:var(--raster-card-w);height:auto}.raster-cell__pending{width:var(--raster-card-w);height:calc(var(--raster-card-w) * 1.4);border-radius:calc(var(--raster-card-w) * .1);background:#16233a}}@layer scenes{.cascade-scene{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:min(96vw,1100px)}.cascade-toolbar,.cascade-knobs{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem .9rem}.cascade-toggle,.cascade-action{font:inherit;font-size:.85rem;padding:.35rem .7rem;border-radius:999px;border:1px solid #2d4066;background:#16233a;color:#cbd5e1;cursor:pointer}.cascade-toggle--on{border-color:#22c55e;background:#14532d;color:#f0fdf4}.cascade-action[disabled]{opacity:.45;cursor:default}.cascade-knob{display:flex;align-items:center;gap:.4rem;font-size:.78rem;color:#94a3b8}.cascade-knob input{width:7rem;accent-color:#22c55e}.cascade-knob__value{min-width:4.6rem;color:#cbd5e1;font-variant-numeric:tabular-nums}.cascade-knob__value--wide{min-width:12rem}.cascade-status{margin:0;font-size:.78rem;color:#94a3b8;text-align:center}.cascade-stage{position:relative;width:100%;height:min(64vh,560px);border-radius:12px;background:#0b1220;box-shadow:inset 0 0 0 1px #2d4066;overflow:hidden}.cascade-overlay{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}}@layer components{#top-bar{align-self:stretch;width:100%;display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem -.75rem}.top-bar__button{display:inline-flex;align-items:center;justify-content:center;padding:8px 14px;font:14px Libre Franklin,sans-serif;color:#f8fafc;background:#1e293b;border:1px solid #334155;border-radius:8px;cursor:pointer;white-space:nowrap}.top-bar__icon{width:1.25em;height:1.25em;display:block}.top-bar__button:disabled{opacity:.45;cursor:default}.top-bar__button--menu{position:relative}.top-bar__pip{position:absolute;top:-3px;right:-3px;width:10px;height:10px;background:#22c55e;border:2px solid #0b1220;border-radius:50%;pointer-events:none}}@layer components{#hint-toast{position:fixed;z-index:10;left:calc(env(safe-area-inset-left) + 8px);bottom:calc(env(safe-area-inset-bottom) + 8px);max-width:calc(100vw - env(safe-area-inset-left) - env(safe-area-inset-right) - 16px);box-sizing:border-box;padding:3px 9px;border-radius:7px;font:13px/1.4 system-ui,sans-serif;color:#e8e8e8;background:#0009;pointer-events:none;animation:hint-toast-in .2s ease-out;transition:opacity .6s ease-in}@keyframes hint-toast-in{0%{opacity:0;transform:translateY(6px)}}.hint-toast--thinking{animation:hint-toast-in .2s ease-out,hint-toast-thinking .7s ease-in-out .2s infinite alternate}@keyframes hint-toast-thinking{to{color:#e8e8e880}}.hint-toast--leaving{opacity:0}@media(prefers-reduced-motion:reduce){#hint-toast,.hint-toast--thinking{animation:none}}}@layer components{#seed-dialog{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + 1rem) 1rem calc(env(safe-area-inset-bottom) + 1rem);animation:seed-dialog-in .15s ease-out}@keyframes seed-dialog-in{0%{opacity:0}to{opacity:1}}.seed-dialog__backdrop{position:absolute;inset:0;background:#020610b3}.seed-dialog__panel{position:relative;display:flex;flex-direction:column;gap:14px;width:min(20rem,100%);padding:24px;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);text-align:center}.seed-dialog__title{margin:0;font:600 22px Libre Franklin,sans-serif;color:var(--panel-accent)}.seed-dialog__hint{margin:0;font:14px Libre Franklin,sans-serif;color:var(--panel-ink-quiet)}.seed-dialog__field{width:100%;padding:10px 12px;font:18px ui-monospace,SF Mono,Menlo,monospace;text-align:center;color:var(--panel-ink);background:#0b1220;border:1px solid #334155;border-radius:8px}.seed-dialog__field::placeholder{color:#64748b}.seed-dialog__field:focus{outline:2px solid var(--panel-accent);outline-offset:1px}.seed-dialog__actions{display:flex;gap:12px}.seed-dialog__button{flex:1 1 0;padding:var(--panel-button-pad);font:var(--panel-button-font);color:var(--panel-ink);background:var(--panel-button-bg);border:none;border-radius:var(--panel-button-radius);cursor:pointer}.seed-dialog__button:enabled:hover{background:var(--panel-button-bg-hover)}.seed-dialog__button:disabled{opacity:.5;cursor:default}.seed-dialog__button--cancel{background:var(--panel-button-alt-bg)}.seed-dialog__button--cancel:enabled:hover{background:var(--panel-button-alt-bg-hover)}}@layer scenes{.trail-scene{display:flex;flex-direction:column;align-items:center;gap:.6rem;width:min(94vw,760px)}.trail-toolbar{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem}.trail-toggle,.trail-action{font:inherit;font-size:.85rem;padding:.35rem .7rem;border-radius:999px;border:1px solid #2d4066;background:#16233a;color:#cbd5e1;cursor:pointer}.trail-toggle--on{border-color:#22c55e;background:#14532d;color:#f0fdf4}.trail-action[disabled]{opacity:.45;cursor:default}.trail-status{margin:0;font-size:.78rem;color:#94a3b8;text-align:center}.trail-stage{position:relative;width:100%;height:360px;border-radius:12px;background:#0b1220;box-shadow:inset 0 0 0 1px #2d4066;overflow:hidden;touch-action:none}.trail-overlay{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none}}@layer scenes{.motion-panel{display:flex;flex-direction:column;gap:.6rem;width:min(86vw,420px);font:13px ui-monospace,SF Mono,Menlo,monospace;color:#e2e8f0}.motion-status{margin:0;min-height:1.4em;color:#94a3b8}.motion-axis{display:grid;grid-template-columns:1.5em 3.5em 1fr;align-items:center;gap:.5rem}.motion-axis__label{color:#94a3b8}.motion-axis__value{text-align:right}.motion-bar{position:relative;height:12px;background:#0b1220;border:1px solid #334155;border-radius:6px;overflow:hidden}.motion-bar:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#475569}.motion-bar__fill{position:absolute;top:0;bottom:0;background:#38bdf8}.motion-bar__fill--peak{background:#f59e0b}.motion-counter{margin:.2rem 0 0;text-align:center;font:600 28px Libre Franklin,sans-serif;color:#f8fafc}}@layer components{#share-dialog{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + 1rem) 1rem calc(env(safe-area-inset-bottom) + 1rem);animation:share-dialog-in .15s ease-out}@keyframes share-dialog-in{0%{opacity:0}to{opacity:1}}.share-dialog__backdrop{position:absolute;inset:0;background:#020610b3}.share-dialog__panel{position:relative;display:flex;flex-direction:column;gap:14px;width:min(22rem,100%);max-height:100%;overflow-y:auto;padding:24px;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);text-align:center}.share-dialog__title{margin:0;font:600 22px Libre Franklin,sans-serif;color:var(--panel-accent)}.share-dialog__qr{align-self:center;width:min(100%,45vh);aspect-ratio:1;border-radius:8px;overflow:hidden}.qr-code{display:block;width:100%;height:100%}.share-dialog__hint,.share-dialog__truncated{margin:0;font:14px Libre Franklin,sans-serif;color:var(--panel-ink-quiet)}.share-dialog__actions{display:flex;gap:12px}.share-dialog__button{flex:1 1 0;padding:var(--panel-button-pad);font:var(--panel-button-font);color:var(--panel-ink);background:var(--panel-button-bg);border:none;border-radius:var(--panel-button-radius);cursor:pointer}.share-dialog__button:hover{background:var(--panel-button-bg-hover)}.share-dialog__button--close{background:var(--panel-button-alt-bg)}.share-dialog__button--close:hover{background:var(--panel-button-alt-bg-hover)}}@layer components{#solve-dialog{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:calc(env(safe-area-inset-top) + 1rem) 1rem calc(env(safe-area-inset-bottom) + 1rem);animation:solve-dialog-in .15s ease-out}@keyframes solve-dialog-in{0%{opacity:0}to{opacity:1}}.solve-dialog__backdrop{position:absolute;inset:0;background:#020610b3}.solve-dialog__panel{position:relative;display:flex;flex-direction:column;gap:14px;width:min(22rem,100%);max-height:100%;overflow-y:auto;padding:24px;background:var(--panel-bg);border:var(--panel-border);border-radius:var(--panel-radius);box-shadow:var(--panel-shadow);text-align:center}.solve-dialog__title{margin:0;font:600 22px Libre Franklin,sans-serif;color:var(--panel-accent)}.solve-dialog__message{margin:0;font:14px Libre Franklin,sans-serif;color:var(--panel-ink-quiet)}.solve-dialog__actions{display:flex;gap:12px}.solve-dialog__button{flex:1 1 0;padding:var(--panel-button-pad);font:var(--panel-button-font);color:var(--panel-ink);background:var(--panel-button-bg);border:none;border-radius:var(--panel-button-radius);cursor:pointer}.solve-dialog__button:hover{background:var(--panel-button-bg-hover)}.solve-dialog__button--close{background:var(--panel-button-alt-bg)}.solve-dialog__button--close:hover{background:var(--panel-button-alt-bg-hover)}}@layer components{#debug-console{position:fixed;top:0;left:0;right:0;z-index:15;display:flex;flex-direction:column;height:40vh;padding:calc(env(safe-area-inset-top) + 3rem) .6rem .35rem calc(env(safe-area-inset-left) + .6rem);box-sizing:border-box;color:#d6e2f5;background:#060b16b8;border-bottom:1px solid #2b3b58;box-shadow:0 8px 24px #00000073;font:12px/1.45 ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace;pointer-events:none;overscroll-behavior:contain;touch-action:pan-y;text-align:left}#debug-console[hidden]{display:none}html[data-console-dock=side] #debug-console{inset:0 0 0 auto;height:auto;width:calc(env(safe-area-inset-right) + var(--console-dock-inset, 0px));padding:calc(env(safe-area-inset-top) + .6rem) calc(env(safe-area-inset-right) + .6rem) calc(env(safe-area-inset-bottom) + .35rem) .6rem;border-bottom:none;border-left:1px solid #2b3b58;box-shadow:-8px 0 24px #00000073;pointer-events:auto}html[data-cutout=right][data-console-dock=side] #debug-console{right:auto;left:0;width:calc(env(safe-area-inset-left) + var(--console-dock-inset, 0px));padding-right:.6rem;padding-left:calc(env(safe-area-inset-left) + .6rem);border-left:none;border-right:1px solid #2b3b58;box-shadow:8px 0 24px #00000073}}@layer overrides{html[data-console-dock=side] .table-board{align-self:flex-start;width:calc(100% - env(safe-area-inset-right) - var(--console-dock-inset, 0px))}html[data-cutout=right][data-console-dock=side] .table-board{align-self:flex-end;width:calc(100% - env(safe-area-inset-left) - var(--console-dock-inset, 0px))}}@layer components{html[data-console-dock=bottom] #debug-console{top:auto;bottom:0;padding:.6rem .6rem calc(env(safe-area-inset-bottom) + .35rem) calc(env(safe-area-inset-left) + .6rem);border-bottom:none;border-top:1px solid #2b3b58;box-shadow:0 -8px 24px #00000073}html[data-console-dock=full] #debug-console{bottom:0;height:auto;padding:calc(env(safe-area-inset-top) + .6rem) calc(env(safe-area-inset-right) + .6rem) calc(env(safe-area-inset-bottom) + .35rem) calc(env(safe-area-inset-left) + .6rem);border-bottom:none;box-shadow:none;background:#060b16f0;pointer-events:auto}.debug-console__prompt{display:flex;flex:none;align-items:baseline;gap:.45rem;padding-top:.25rem;border-top:1px solid #223148;pointer-events:auto}.debug-console__caret{flex:none;color:#7fd6a2}.debug-console__input{flex:1 1 auto;min-width:0;padding:0;font:inherit;color:#e8f0fb;background:transparent;border:none;outline:none;caret-color:#7fd6a2}.debug-console__input::placeholder{color:#4d6183}.debug-console__status{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-top:.3rem;border-top:1px solid #223148;color:#8aa2c4;text-transform:lowercase;letter-spacing:.04em}.debug-console__hint{color:#5f7396}.debug-console__lines{flex:1 1 auto;margin:0;padding:0 0 .3rem;overflow:auto;list-style:none}.debug-console__line{display:flex;gap:.5rem;padding:1px 0;white-space:pre-wrap;word-break:break-word;width:max-content;min-width:100%}.debug-console__label{flex:none;color:#7fd6a2}.debug-console__value{color:#c8d6ea}.debug-console__line--rendered{display:block;line-height:1;padding:0}.debug-console__ink--plain{color:#8ea6c8}.debug-console__ink--red{color:#ff7b88}.debug-console__ink--black{color:#dce6f5}.debug-console__ink--title{color:#7fd6a2}}@layer scenes{.card-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:.6rem;width:min(86vw,620px)}}@layer components{.menu-refresh__spinner{display:inline-block;width:.85em;height:.85em;margin-right:.5em;vertical-align:-.12em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:menu-refresh-spin .7s linear infinite}@keyframes menu-refresh-spin{to{transform:rotate(360deg)}}}
