.doc-top{z-index:10;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;min-height:3rem;padding:0 max(.3rem, env(safe-area-inset-right)) 0 max(.3rem, env(safe-area-inset-left));background-color:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--edge);align-items:center;gap:.25rem;display:flex;position:sticky;top:0}.doc-top-title{min-width:0;color:var(--text);font-size:var(--t-lg);letter-spacing:-.015em;text-overflow:ellipsis;white-space:nowrap;flex:1;padding-left:.4rem;font-weight:600;overflow:hidden}.doc-theme{width:var(--tap-w);height:var(--tap-h);border-radius:var(--r-full);color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background-color var(--dur) var(--ease), transform var(--dur) var(--ease);background:0 0;border:0;flex:none;place-items:center;margin-left:.6rem;padding:0;display:grid}.doc-theme svg{grid-area:1/1}.doc-theme svg:first-child{display:none}:root[data-theme=dark] .doc-theme svg:first-child{display:revert}:root[data-theme=dark] .doc-theme svg:last-child{display:none}@media (hover:hover){.doc-theme:hover{background-color:var(--surface-2);color:var(--text)}}.doc-theme:active{background-color:var(--surface-3);transform:scale(.92)}.doc-main{max-width:44rem;padding:1.5rem max(1rem, env(safe-area-inset-left)) 4rem;padding-right:max(1rem, env(safe-area-inset-right));padding-bottom:max(4rem, env(safe-area-inset-bottom));margin:0 auto}.doc-main>p:first-of-type{color:var(--text-3);font-size:var(--t-sm);margin:0 0 2rem;line-height:2}.doc-main>p:first-of-type a{padding:.125rem 0;font-weight:550;text-decoration:none}@media (hover:hover){.doc-main>p:first-of-type a:hover{text-underline-offset:3px;text-decoration:underline}}.doc-main h1,.doc-main h2,.doc-main h3{letter-spacing:-.015em;margin:2.5rem 0 .75rem;font-weight:650;line-height:1.25}.doc-main a[name]{scroll-margin-top:4.5rem}.doc-main h1{font-size:var(--t-2xl);letter-spacing:-.025em;margin-top:0}.doc-main h2{font-size:var(--t-xl)}.doc-main h3{font-size:var(--t-lg)}.doc-main a[name]:empty{display:inline}.doc-main p,.doc-main ul,.doc-main dl{margin:0 0 1.125rem}.doc-main ul{padding-left:1.25rem}.doc-main li{margin-bottom:.375rem}.doc-main li::marker{color:var(--text-3)}.doc-main dt{color:var(--text);margin-top:1rem}.doc-main dt em{font-weight:650}.doc-main dd{border-left:2px solid var(--edge);color:var(--text-2);margin:.25rem 0 0;padding-left:1rem}.doc-main code{border-radius:var(--r-sm);background-color:var(--surface-2);color:var(--text);overflow-wrap:break-word;padding:.1em .35em;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}.doc-main pre{background-color:var(--surface-2);border-radius:var(--r);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--t-sm);margin:0 0 1.125rem;padding:.875rem 1rem;line-height:1.5;overflow-x:auto}.doc-main em{color:var(--text);font-style:italic}.doc-main a{color:var(--accent);-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 35%, transparent);text-underline-offset:3px}@media (hover:hover){.doc-main a:hover{text-decoration-color:currentColor}}.doc-foot{max-width:44rem;padding:1.5rem max(1rem, env(safe-area-inset-left)) 3rem;border-top:1px solid var(--edge);color:var(--text-3);font-size:var(--t-xs);margin:0 auto}.doc-foot p{margin:0}.doc-foot a{color:var(--text-3);text-underline-offset:2px}@media (width>=48em){.doc-top{padding:0 1.5rem}.doc-main{font-size:var(--t-lg);padding-top:2.5rem}.doc-main h1{font-size:var(--t-3xl)}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fafaf9;--surface:#fff;--surface-2:#f0f0ef;--surface-3:#e4e4e2;--raised:#fff;--knob:#fff;--edge:#e4e4e2;--edge-key:#c2c2be;--edge-strong:#8a8a90;--cell-full:#000;--cell-empty:#fff;--cell-unknown:gray;--text:#17171a;--text-2:#5b5b64;--text-3:#6b6b75;--accent:#2b2bd6;--accent-hover:#2020b4;--accent-on:#fff;--accent-soft:#e7e7fb;--accent-soft-text:#1e1e9e;--accent-soft-hover:#dcdcf8;--danger:#b3261e;--danger-soft:#fbeae8;--board:#e6e6e6;--grid-line:#17171a0b;--shadow-1:0 1px 2px #14141e0f, 0 1px 1px #14141e0a;--shadow-2:0 2px 4px #14141e0f, 0 8px 20px -6px #14141e1f;--shadow-3:0 4px 8px #14141e14, 0 24px 48px -12px #14141e38;--shadow-board:0 0 0 1px #14141e1a, 0 2px 4px #14141e14, 0 14px 32px -10px #14141e38;--shadow-knob:0 0 0 1px #14141e14, 0 1px 3px #14141e3d;--scrim:#14141a66;--r-sm:8px;--r:12px;--r-lg:18px;--r-full:999px;--t-2xs:.6875rem;--t-xs:.75rem;--t-sm:.8125rem;--t-md:.9375rem;--t-lg:1.0625rem;--t-xl:1.375rem;--t-2xl:1.75rem;--t-3xl:2.25rem;--font:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--ease:cubic-bezier(.2, 0, 0, 1);--dur:.17s;--dur-slow:.3s;--grid-image:linear-gradient(var(--grid-line) 1px, transparent 1px), linear-gradient(90deg, var(--grid-line) 1px, transparent 1px);--grid-size:24px 24px;--grid-position:center -1px;--tap-w:2.5rem;--tap-h:2.25rem}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101013;--surface:#17171b;--surface-2:#212128;--surface-3:#2c2c34;--raised:#2c2c34;--knob:#e8e8ee;--edge:#26262d;--edge-key:#43434f;--edge-strong:#6b6b7d;--cell-full:#0d0d0d;--cell-empty:#ccc;--cell-unknown:#6d6d6d;--text:#ececef;--text-2:#a2a2ad;--text-3:#93939d;--accent:#a6a6ff;--accent-hover:#bcbcff;--accent-on:#14143a;--accent-soft:#23234a;--accent-soft-text:#c3c3ff;--accent-soft-hover:#2c2c58;--danger:#f2b8b5;--danger-soft:#3a2220;--grid-line:#ececef0d;--shadow-1:0 0 0 1px #ffffff0d;--shadow-2:0 0 0 1px #ffffff0f, 0 8px 24px -8px #000000b3;--shadow-3:0 0 0 1px #ffffff14, 0 24px 56px -12px #000c;--shadow-board:0 0 0 1px #ffffff24, 0 10px 28px -8px #000c;--shadow-knob:0 0 0 1px #0000008c, 0 1px 3px #000000a6;--scrim:#0009;--board:#1f1f1f}.segmented{border-radius:var(--r-full);background:var(--surface-2);flex:none;grid-auto-columns:1fr;grid-auto-flow:column;gap:.125rem;padding:.1875rem;display:inline-grid}.segmented>:is(label,a){border-radius:var(--r-full);min-height:1.875rem;color:var(--text-2);font-size:var(--t-xs);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);justify-content:center;align-items:center;padding:0 .5rem;font-weight:500;text-decoration:none;display:inline-flex}.segmented>[data-selected=true],.segmented>[aria-current=true]{background:var(--raised);box-shadow:var(--shadow-1);color:var(--text)}@media (hover:hover){.segmented>:is(label,a):not([data-selected=true],[aria-current=true]):hover{color:var(--text)}}.segmented input{opacity:0;width:1px;height:1px;position:absolute}.segmented label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}*,:before,:after{box-sizing:border-box}html{touch-action:manipulation;overscroll-behavior:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{padding:2rem max(1rem, env(safe-area-inset-left)) 3rem;padding-bottom:max(3rem, env(safe-area-inset-bottom));font-family:var(--font);font-size:var(--t-md);color:var(--text);background-color:var(--bg);background-image:var(--grid-image);background-size:var(--grid-size);background-position:var(--grid-position);-webkit-font-smoothing:antialiased;margin:0;line-height:1.5}#root{max-width:64rem;margin:0 auto}body{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}input,textarea,.dialog-prose,.doc-main,footer p{-webkit-touch-callout:default;-webkit-user-select:text;user-select:text}img{-webkit-user-drag:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:var(--accent);text-underline-offset:2px}.textlink{color:var(--accent);align-items:baseline;gap:.25rem;font-weight:500;text-decoration:none;display:inline-flex}.textlink svg{align-self:center}@media (hover:hover){.textlink:hover{text-underline-offset:2px;text-decoration:underline}}.masthead{align-items:center;gap:.25rem;margin-bottom:1.25rem;display:flex}.masthead .segmented+.masthead-icon{margin-left:.6rem}.masthead-name{flex:1;min-width:0}.masthead h1{font-size:var(--t-2xl);letter-spacing:-.025em;margin:0;font-weight:650;line-height:1.15}.masthead-name p{color:var(--text-2);font-size:var(--t-xs);white-space:nowrap;text-overflow:ellipsis;margin:.15rem 0 0;line-height:1.3;overflow:hidden}.masthead-icon{border-radius:var(--r-full);width:2.5rem;height:2.5rem;color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);background:0 0;border:0;flex:none;place-items:center;display:grid}@media (hover:hover){.masthead-icon:hover{background:var(--surface-2);color:var(--text)}}.masthead-icon:active{background:var(--surface-3);transform:scale(.92)}.setting{color:var(--text);font-size:var(--t-md);-webkit-user-select:none;user-select:none;align-items:center;gap:1rem;margin:0;padding:.85rem 0;display:flex}.setting+.setting{border-top:1px solid var(--edge)}.setting-link{color:var(--text);text-decoration:none}.setting-link svg{color:var(--text-3);flex:none}.setting-value{color:var(--text-2);font-size:var(--t-sm);font-variant-numeric:tabular-nums;flex:none}@media (hover:hover){.setting-link:hover .setting-text,.setting-link:hover .setting-value{color:var(--accent)}}.setting-text{min-width:0;font-size:var(--t-md);flex:1;font-weight:500}.setting-text em{color:var(--text-2);font-size:var(--t-xs);margin-top:.1rem;font-style:normal;font-weight:400;display:block}.setting input[type=checkbox]{width:1.15rem;height:1.15rem;accent-color:var(--accent);flex:none;margin:0}button.setting{width:100%;font:inherit;text-align:start;cursor:pointer;background:0 0;border:0}.setting-danger .setting-text,.setting-danger>svg{color:var(--danger)}.setting-do{border-radius:var(--r-sm);background:var(--danger-soft);color:var(--danger);font:inherit;font-size:var(--t-sm);cursor:pointer;border:0;flex:none;padding:.4rem .9rem;font-weight:500}.games{grid-template-columns:repeat(auto-fill,minmax(6.75rem,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.games .games-tile{border-radius:var(--r);background:var(--surface);width:100%;height:100%;box-shadow:var(--shadow-1);color:inherit;font:inherit;text-align:left;cursor:pointer;transition:box-shadow var(--dur) var(--ease), transform var(--dur) var(--ease);border:0;flex-direction:column;justify-content:flex-start;align-items:stretch;padding:0;display:flex;position:relative;overflow:hidden}.games-art{background:var(--board);line-height:0;display:block}.games img{aspect-ratio:1;width:100%;height:auto;display:block}.games strong{font-size:var(--t-sm);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;padding:.45rem .5rem 0;font-weight:600;display:block;overflow:hidden}.games-desc{-webkit-line-clamp:2;color:var(--text-2);font-size:var(--t-2xs);-webkit-box-orient:vertical;margin-bottom:.5rem;padding:.05rem .5rem 0;line-height:1.3;display:-webkit-box;overflow:hidden}@media (hover:hover){.games .games-tile:hover{box-shadow:var(--shadow-2);transform:translateY(-2px)}}.games .games-tile:active{box-shadow:var(--shadow-1);transform:scale(.985)}.games [aria-current]:after{content:"";border:2px solid var(--accent);border-radius:var(--r);pointer-events:none;position:absolute;inset:0}.games [aria-current] strong{color:var(--accent);font-weight:650}.games li{position:relative}.games-stow{border-radius:var(--r-full);background:var(--scrim);color:#fff;cursor:pointer;border:0;place-items:center;width:1.8rem;height:1.8rem;padding:0;display:none;position:absolute;top:.3rem;right:.3rem}@media (hover:hover){.games li:hover .games-stow,.games li:focus-within .games-stow{display:grid}}.games-stow:focus-visible{display:grid}.stash{margin-top:1.5rem}.stash-toggle{min-height:var(--tap-h);border-radius:var(--r-full);color:var(--text-2);font-size:var(--t-sm);align-items:center;gap:.45rem;padding:0 .8rem;font-weight:500;display:flex}.stash-toggle svg:last-child{transition:transform var(--dur) var(--ease)}.stash-toggle .is-up{transform:rotate(180deg)}.games-stashed{margin-top:.75rem}.games-stashed .games-art{opacity:.55}@media (hover:hover){.games-stashed li:hover .games-art{opacity:1}}:root[data-transition=tiles]::view-transition-group(*){animation-duration:var(--dur-slow);animation-timing-function:var(--ease)}:root[data-transition=tiles]::view-transition-old(*){animation-duration:var(--dur-slow);animation-timing-function:var(--ease)}:root[data-transition=tiles]::view-transition-new(*){animation-duration:var(--dur-slow);animation-timing-function:var(--ease)}:root[data-transition=tiles]::view-transition-old(root){animation:none}:root[data-transition=tiles]::view-transition-new(root){animation:none}p.notice-toast{z-index:50;background:var(--raised);max-width:min(85vw,22rem);color:var(--text);box-shadow:var(--shadow-2);pointer-events:none;view-transition-name:toast;animation:toast-in var(--dur) var(--ease);margin:0;position:fixed;top:5rem;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(-.4rem)}}@media (prefers-reduced-motion:reduce){p.notice-toast{animation:none}}footer{border-top:1px solid var(--edge);color:var(--text-3);font-size:var(--t-xs);margin-top:2.5rem;padding-top:1.25rem}footer p{margin:0}.puzzle{--key-gap:.25rem;--key-rim:calc(var(--key-gap) / 2);--pad-bg:var(--surface-2);--pad-r:calc(var(--tap-w) / 2 + var(--key-rim));--act-w:calc(1.5 * var(--tap-w) + var(--key-gap) / 2);--keys-w:calc(6 * var(--tap-w) + 7 * var(--key-gap));--dock-w:22.5rem;z-index:1;height:100dvh;padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);background-color:var(--bg);background-image:var(--grid-image);background-size:var(--grid-size);background-position:var(--grid-position);flex-direction:column;display:flex;position:fixed;inset:0}.puzzle[data-ready=false] .puzzle-canvas{visibility:hidden}.puzzle[data-dock=true]{padding-right:calc(var(--dock-w) + env(safe-area-inset-right))}.puzzle-bar,.puzzle-board,.puzzle-actions,.keypad{touch-action:none}.puzzle-bar,.keypad,.puzzle-actions{z-index:1;position:relative}.puzzle-bar{min-height:calc(3rem + env(safe-area-inset-top));padding:env(safe-area-inset-top) .3rem 0;background-color:var(--surface);border-bottom:1px solid var(--edge);flex:none;align-items:center;gap:.25rem;display:flex}.puzzle-bar .puzzle-icon,.dock-close{width:var(--tap-w);height:var(--tap-h);border-radius:var(--r-full);color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease), transform var(--dur) var(--ease);background:0 0;border:0;flex:none;place-items:center;padding:0;text-decoration:none;display:grid}@media (hover:hover){.puzzle-bar .puzzle-icon:hover,.dock-close:hover{background:var(--surface-2)}}.puzzle-bar .puzzle-icon:active,.dock-close:active{background:var(--surface-3);transform:scale(.92)}.puzzle-bar h1{min-width:0;font-size:var(--t-lg);letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-weight:600;overflow:hidden}.puzzle-title{max-width:100%;min-height:var(--tap-h);border-radius:var(--r-sm);color:inherit;font:inherit;letter-spacing:inherit;cursor:pointer;transition:background var(--dur) var(--ease);background:0 0;border:0;align-items:center;gap:.15rem;padding:0 .4rem;display:inline-flex;overflow:hidden}.puzzle-title>span{text-overflow:ellipsis;overflow:hidden}.puzzle-title svg{color:var(--text-3);transition:transform var(--dur) var(--ease);flex:none}@media (hover:hover){.puzzle-title:hover{background:var(--surface-2)}}.puzzle-title:active{background:var(--surface-3)}.puzzle-title[aria-expanded=true] svg{transform:rotate(180deg)}.puzzle-status{max-width:55%;color:var(--text-2);font-size:var(--t-xs);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;flex:none;overflow:hidden}.puzzle-status[data-filled=true]{border-radius:var(--r-full);background:var(--surface-2);padding:.2rem .65rem}p.notice{border-radius:var(--r-sm);font-size:var(--t-sm);flex:none;align-items:flex-start;gap:.4rem;padding:.5rem .7rem;display:flex}p.notice svg{flex:none;margin-top:.15rem}p.notice-error{background:var(--danger-soft);color:var(--danger);margin:.75rem 0 0;scroll-margin:.75rem}.puzzle-board{position:relative}p.notice.is-floating{z-index:2;box-shadow:var(--shadow-2);animation:notice-in var(--dur) var(--ease);margin:0;position:absolute;top:.6rem;left:.6rem;right:.6rem}p.notice-error.is-floating{pointer-events:none}.puzzle-over{z-index:2;animation:over-in var(--dur) var(--ease);justify-content:center;gap:.4rem;display:flex;position:absolute;bottom:.6rem;left:.6rem;right:.6rem}.puzzle-over button{min-height:var(--tap-h);box-shadow:var(--shadow-2);flex:0 10rem;padding:0 .9rem}@keyframes over-in{0%{opacity:0;transform:translateY(.4rem)}}@media (prefers-reduced-motion:reduce){.puzzle-over{animation:none}}p.notice-intro{background:var(--raised);color:var(--text)}p.notice-intro span{flex:1}p.notice-intro button{border-radius:var(--r-sm);color:inherit;cursor:pointer;background:0 0;border:0;flex:none;margin:-.85rem -.85rem -.85rem 0;padding:.85rem}p.notice-intro button:active{opacity:.6}@keyframes notice-in{0%{opacity:0;transform:translateY(-.4rem)}}.puzzle-board{flex:1 1 0;place-items:center;min-height:0;display:grid}.puzzle-canvas{box-shadow:var(--shadow-board);touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;font-family:sans-serif;display:block}.puzzle-canvas:focus,.puzzle-canvas:focus-visible{outline:none}.puzzle-actions button,.keypad button,.sheet-actions button,.dialog-buttons button,.puzzle-over button{border:1px solid var(--edge-key);border-radius:var(--r-sm);background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--t-md);cursor:pointer;transition:background var(--dur) var(--ease), transform var(--dur) var(--ease), color var(--dur) var(--ease);justify-content:center;align-items:center;gap:.45rem;font-weight:500;display:inline-flex}@media (hover:hover){.puzzle-actions button:hover:not(:disabled),.keypad button:hover,.sheet-actions button:hover,.dialog-buttons button:hover,.puzzle-over button:hover{background:var(--surface-3)}}.puzzle-actions button:active:not(:disabled),.keypad button:active,.sheet-actions button:active,.dialog-buttons button:active,.puzzle-over button:active{background:var(--surface-3);transform:scale(.96)}.puzzle-actions button:disabled{color:var(--text-3);opacity:.4;cursor:default}.keypad{justify-content:center;gap:var(--key-gap);max-height:calc(3 * var(--tap-w) + 2 * var(--key-gap) + .3rem);touch-action:pan-y;overscroll-behavior:contain;scrollbar-width:none;flex-wrap:wrap;flex:none;margin:0 auto;padding:.3rem .4rem 0;display:flex;overflow-y:auto}.keypad::-webkit-scrollbar{display:none}.keypad button{width:var(--tap-w);height:var(--tap-w);border-radius:var(--r-sm);font-variant-numeric:tabular-nums;padding:0;font-size:.875rem;position:relative}.key-peg{font-variant-numeric:tabular-nums;border:1px solid;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.75rem;font-weight:600;line-height:1;display:grid}.key-peg[data-dotted]{background:radial-gradient(currentColor 1.6px,#0000 1.7px) 0 0/5px 5px}.keypad button[data-kind=entry]{border:0}.keypad button[data-kind=assist]{background:var(--accent-soft);color:var(--accent-soft-text);border:0}@media (hover:hover){.keypad button[data-kind=assist]:hover{background:var(--accent-soft-hover)}}.keypad button[data-kind=assist]:active{background:var(--accent-soft-hover)}.keypad button[data-kind=prefer]{background:var(--surface);color:var(--text-2)}@media (hover:hover){.keypad button[data-kind=prefer]:hover{color:var(--text)}}.keypad button[data-on]{border-color:var(--accent);background:var(--accent);color:var(--accent-on)}@media (hover:hover){.keypad button[data-on]:hover{background:var(--accent-hover);color:var(--accent-on)}}.keypad button[data-on]:active{background:var(--accent-hover)}.keypad button[data-kind=pick]{border-radius:var(--r-full);background:var(--surface)}.keypad button[data-kind=pick]:disabled .key-peg{opacity:.35}.puzzle-arrows button:disabled{opacity:1;background:var(--pad-bg)}.puzzle-actions button[data-on]{border-color:var(--accent);background:var(--accent);color:var(--accent-on)}@media (hover:hover){.puzzle-actions button[data-on]:hover:not(:disabled){background:var(--accent-hover)}}.puzzle-actions button[data-on]:active{background:var(--accent-hover)}.puzzle-actions button[data-brush]{box-shadow:inset 0 0 0 2px var(--accent)}.key-art{width:1.5rem;height:1.5rem;display:block}.hold-tip{z-index:15;border-radius:var(--r-sm);background:var(--text);max-width:10rem;color:var(--bg);font-size:var(--t-xs);text-align:center;white-space:normal;pointer-events:none;animation:scrim-in var(--dur) var(--ease);padding:.3rem .55rem;line-height:1.3;position:fixed;transform:translate(-50%,-100%)translateY(-.35rem)}.hold-tip[data-below=true]{transform:translate(-50%)translateY(.35rem)}.puzzle-actions{justify-content:center;align-items:end;gap:var(--key-gap);flex:none;width:100%;max-width:26rem;margin:0 auto;padding:.3rem .4rem .4rem;display:flex}.puzzle-acts{gap:var(--key-gap);padding:var(--key-gap);display:flex}.puzzle-acts button{width:var(--act-w);height:var(--tap-w);border:0;flex:none}.puzzle-acts button.is-menu{background:var(--accent-soft);color:var(--accent-soft-text)}@media (hover:hover){.puzzle-acts button.is-menu:hover:not(:disabled){background:var(--accent-soft-hover)}}.puzzle-acts button.is-menu:active{background:var(--accent-soft-hover)}.puzzle-keys{grid-template-columns:[acts] calc(2 * var(--act-w) + 2 * var(--key-gap)) [c1] var(--tap-w) [c2] var(--tap-w) [c3] var(--tap-w) [core-end];gap:var(--key-gap);padding:var(--key-rim);width:var(--keys-w);display:grid}.puzzle[data-arrows=true] .puzzle-keys .puzzle-acts{gap:var(--key-gap);margin-right:var(--key-gap);grid-area:span 2/acts/-1;padding:0}.puzzle-keys .puzzle-arrows{display:contents}.pad-floor{z-index:0;margin:calc(-1 * var(--key-rim));border-radius:var(--pad-r);background:var(--pad-bg);grid-column:c1/core-end}.puzzle-keys button{z-index:1}.puzzle-arrows button{width:var(--tap-w);height:var(--tap-w);border-radius:var(--r-full);background:var(--surface)}.puzzle-arrows button[data-off]{visibility:hidden}.puzzle[data-arrows=true] .puzzle-acts{grid-template-columns:repeat(2, var(--act-w));display:grid}@keyframes scrim-in{0%{opacity:0}}@keyframes sheet-in{0%{opacity:0;transform:translateY(12%)}}.sheet-dimmer{z-index:20;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:scrim-in var(--dur) var(--ease) backwards;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{overscroll-behavior:contain;width:100%;max-height:85dvh;padding:.5rem 1rem calc(1rem + env(safe-area-inset-bottom));border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--surface);box-shadow:var(--shadow-3);animation:sheet-in var(--dur-slow) var(--ease) backwards;will-change:transform;overflow-y:auto}.sheet-handle{touch-action:none;cursor:grab;place-items:center;height:1.75rem;margin:-.5rem -1rem .4rem;display:grid}.sheet-handle:active{cursor:grabbing}.sheet-grip{border-radius:var(--r-full);background:var(--edge-strong);width:2.25rem;height:.25rem}.sheet-actions{gap:.4rem;display:flex}.sheet-actions button{min-width:0;min-height:var(--tap-h);font-size:var(--t-sm);white-space:nowrap;flex:1;padding:0 .4rem}@media (width<=22.5em){.sheet-actions button svg{display:none}}@media (width>=48em){.sheet .sheet-actions button{padding:0 .9rem}}.sheet-actions button svg{color:var(--text-2);flex:none}.sheet-actions button.is-primary,.puzzle-over button.is-primary{border-color:var(--accent);background:var(--accent);color:var(--accent-on);font-weight:600}.sheet-actions button.is-primary svg,.puzzle-over button.is-primary svg{color:inherit}@media (hover:hover){.sheet-actions button.is-primary:hover{background:var(--accent-hover)}}.sheet-actions button.is-primary:active{background:var(--accent-hover)}.sheet section,.dock-body section{margin-top:1.4rem}.sheet-handle+section,.dock-body>section:first-child{margin-top:0}.sheet h2,.dock-body h2,.sheet-id-label{color:var(--text-3);font-size:var(--t-2xs);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-weight:600;display:block}.sheet p:not(.notice-error),.dock-body p:not(.notice-error){color:var(--text-2);font-size:var(--t-sm);margin:0}.sheet-presets,.sheet-presets ul{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.sheet-presets ul{width:100%;margin-top:.4rem;padding-left:.75rem}.sheet-presets label{border-radius:var(--r-full);background:var(--surface-2);min-height:2.25rem;color:var(--text);font-size:var(--t-sm);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);align-items:center;gap:.45rem;padding:0 .75rem;display:inline-flex}.sheet-presets label[data-selected=true]{background:var(--accent-soft);color:var(--accent-soft-text);font-weight:600}.sheet-presets .sheet-preset-tag{color:var(--text-2);font-size:var(--t-2xs);letter-spacing:.02em;font-weight:500}.sheet-presets input[type=radio]{border:1.5px solid var(--edge-strong);appearance:none;width:.875rem;height:.875rem;transition:border-color var(--dur) var(--ease);border-radius:50%;flex:none;margin:0}.sheet-presets input[type=radio]:checked{background-image:radial-gradient(circle,currentColor 0 42%,#0000 46%);border-color:currentColor}.sheet-custom{margin-top:1rem}.sheet-custom .dialog-string,.sheet-custom .dialog-boolean,.sheet-prefs .dialog-string,.sheet-prefs .dialog-boolean{border-top:1px solid var(--edge);min-height:2.75rem;color:var(--text);font-size:var(--t-sm);justify-content:space-between;align-items:center;gap:1rem;margin:0;padding:.35rem 0;display:flex}.sheet-custom .dialog-boolean,.sheet-prefs .dialog-boolean{flex-direction:row-reverse}.sheet-custom .dialog-string input,.sheet-prefs .dialog-string input{border:1px solid var(--edge-strong);border-radius:var(--r-sm);background:var(--surface);width:7rem;min-height:2.25rem;color:var(--text);font:inherit;text-align:right;font-variant-numeric:tabular-nums;flex:none;margin:0;padding:0 .5rem;font-size:1rem}.sheet-custom .dialog-boolean input,.sheet-prefs .dialog-boolean input{width:1.15rem;height:1.15rem;accent-color:var(--accent);flex:none;margin:0}.sheet-custom>.slider,.sheet-custom>.picker,.sheet-prefs>.slider,.sheet-prefs>.picker{border-top:1px solid var(--edge);padding:.55rem 0 .65rem}.slider-label,.picker-label{color:var(--text);font-size:var(--t-sm);margin-bottom:.3rem;display:block}.slider-row{align-items:center;gap:.15rem;display:flex}.slider-step{width:2rem;height:var(--tap-h);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease), transform var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover){.slider-step:hover:not(:disabled){background:var(--surface-3);color:var(--text)}}.slider-step:active:not(:disabled){background:var(--surface-3);transform:scale(.92)}.slider-step:disabled{color:var(--text-3);opacity:.4;cursor:default}.slider input[type=range]{--fill:0%;min-width:0;height:var(--tap-h);appearance:none;cursor:pointer;background:0 0;flex:1;margin:0;padding:0}.slider input[type=range]:focus-visible{outline:none}.slider input[type=range]::-webkit-slider-runnable-track{border-radius:var(--r-full);background:linear-gradient(to right, var(--accent) var(--fill), var(--surface-3) var(--fill));height:.25rem}.slider input[type=range]::-webkit-slider-thumb{background:var(--knob);width:1.25rem;height:1.25rem;box-shadow:var(--shadow-knob);appearance:none;transition:transform var(--dur) var(--ease);border:0;border-radius:50%;margin-top:-.5rem}.slider input[type=range]:active::-webkit-slider-thumb{transform:scale(1.1)}.slider input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--accent);outline-offset:3px}.slider input[type=range]::-moz-range-track{border-radius:var(--r-full);background:var(--surface-3);height:.25rem}.slider input[type=range]::-moz-range-progress{border-radius:var(--r-full);background:var(--accent);height:.25rem}.slider input[type=range]::-moz-range-thumb{background:var(--knob);width:1.25rem;height:1.25rem;box-shadow:var(--shadow-knob);border:0;border-radius:50%}.slider input[type=range]:focus-visible::-moz-range-thumb{outline:2px solid var(--accent);outline-offset:3px}.slider-value{min-width:2.75rem;color:var(--text);font-size:var(--t-sm);font-variant-numeric:tabular-nums;text-align:right;flex:none;margin-left:.25rem;font-weight:600}.picker-options{border-radius:var(--r);background:var(--surface-2);flex-wrap:wrap;gap:.125rem;padding:.1875rem;display:flex}.picker-options>label{border-radius:calc(var(--r) - .1875rem);min-height:1.875rem;color:var(--text-2);font-size:var(--t-xs);white-space:nowrap;cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);flex:auto;justify-content:center;align-items:center;padding:0 .6rem;font-weight:500;display:inline-flex}.picker-options>[data-selected=true]{background:var(--raised);box-shadow:var(--shadow-1);color:var(--text);font-weight:600}@media (hover:hover){.picker-options>label:not([data-selected=true]):hover{color:var(--text)}}.picker-options input{opacity:0;width:1px;height:1px;position:absolute}.picker-options label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.sheet-ids{flex-direction:column;gap:.9rem;display:flex}.sheet-id-value{min-height:var(--tap-h);border:1px solid var(--edge);border-radius:var(--r-sm);background:var(--surface-2);align-items:center;gap:.25rem;padding:0 .25rem 0 .6rem;display:flex}.sheet-id-value code{overflow-wrap:anywhere;min-width:0;color:var(--text);font:inherit;font-size:var(--t-sm);font-variant-numeric:tabular-nums;-webkit-user-select:all;user-select:all;flex:1}.sheet-id-value button{width:var(--tap-h);height:var(--tap-h);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover){.sheet-id-value button:hover{background:var(--surface-3)}}.sheet-id-value button:active{background:var(--surface-3);transform:scale(.96)}.dock{z-index:2;width:calc(var(--dock-w) + env(safe-area-inset-right));border-left:1px solid var(--edge);background:var(--surface);animation:dock-in var(--dur) var(--ease) backwards;flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes dock-in{0%{opacity:0;transform:translate(.75rem)}}@media (prefers-reduced-motion:reduce){.dock{animation:none}}.dock-head{min-height:calc(3rem + env(safe-area-inset-top));padding:env(safe-area-inset-top) .3rem 0 1rem;border-bottom:1px solid var(--edge);flex:none;align-items:center;gap:.25rem;display:flex}.dock-head h2{min-width:0;font-size:var(--t-lg);letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;font-weight:600;overflow:hidden}.dock-body{overscroll-behavior:contain;min-height:0;padding:1rem calc(1rem + env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) 1rem;flex:1;overflow-y:auto}.dialog-dimmer{z-index:30;padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));overscroll-behavior:contain;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:scrim-in var(--dur) var(--ease) backwards;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.dialog{overscroll-behavior:contain;border-radius:var(--r-lg);background:var(--surface);width:100%;max-width:26rem;max-height:85dvh;box-shadow:var(--shadow-3);animation:sheet-in var(--dur-slow) var(--ease) backwards;padding:1.25rem;overflow-y:auto}.dialog h2{font-size:var(--t-lg);letter-spacing:-.015em;margin:0 0 1rem;font-weight:600}.dialog-string,.dialog-boolean{color:var(--text-2);font-size:var(--t-sm);margin-bottom:.75rem;display:block}.dialog-string input{border:1px solid var(--edge-strong);border-radius:var(--r-sm);background:var(--bg);width:100%;min-height:2.75rem;color:var(--text);font:inherit;margin-top:.3rem;padding:.35rem .6rem;font-size:1rem;display:block}.dialog-string input:focus-visible{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:-2px}.dialog-boolean{min-height:2.75rem;color:var(--text);align-items:center;gap:.7rem;margin-bottom:.25rem;display:flex}.dialog-boolean input{width:1.15rem;height:1.15rem;accent-color:var(--accent);flex:none;margin:0}.dialog-buttons{gap:.5rem;margin-top:1.5rem;display:flex}.dialog-buttons button{min-height:var(--tap-h);flex:1;padding:0 1rem}.dialog-buttons button[type=submit]{background:var(--accent);color:var(--accent-on);font-weight:600}@media (hover:hover){.dialog-buttons button[type=submit]:hover{background:var(--accent-hover)}}.dialog-buttons button[type=submit]:active{background:var(--accent-hover)}.dialog-prose{color:var(--text-2);font-size:var(--t-md);overflow-wrap:break-word;line-height:1.6}.dialog-prose p,.dialog-prose ul,.dialog-prose pre{margin:0 0 .8rem}.dialog-prose>:last-child{margin-bottom:0}.dialog-prose ul{padding-left:1.15rem}.dialog-prose li{margin-bottom:.3rem}.dialog-prose code,.dialog-prose pre{font-size:.9em}.dialog-prose pre{border-radius:var(--r-sm);background:var(--surface-2);padding:.6rem .75rem;overflow-x:auto}.dialog-help,.dialog-settings{max-width:30rem}.help-art{aspect-ratio:1;border-radius:var(--r-sm);width:min(10.125rem,40vh);margin:0 auto 1rem;display:block}.dialog-head{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;display:flex}.dialog-head h2{margin:0}.dialog-close{border-radius:var(--r-full);width:2.5rem;height:2.5rem;color:var(--text-2);cursor:pointer;transition:background var(--dur) var(--ease), color var(--dur) var(--ease);background:0 0;border:0;flex:none;place-items:center;margin:-.6rem -.6rem 0 0;padding:0;display:grid}@media (hover:hover){.dialog-close:hover{background:var(--surface-2);color:var(--text)}}.dialog-close:active{background:var(--surface-3);color:var(--text)}.prose-more a{font-weight:500;display:inline}.prose-more svg{vertical-align:-.15em;margin-left:.3rem}.dialog-help{flex-direction:column;display:flex;overflow:hidden}.dialog-help .dialog-head,.help-art{flex:none}.dialog-help .dialog-prose{overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}@media (width>=48em){body{padding-top:3rem}.masthead h1{font-size:var(--t-3xl)}.games{grid-template-columns:repeat(auto-fill,minmax(8rem,1fr));gap:.75rem}.puzzle-bar{gap:.4rem;padding:0 .5rem}.puzzle-actions{padding:.5rem}.sheet-dimmer{justify-content:center;align-items:center}.sheet{border-radius:var(--r-lg);width:min(100%,34rem);max-height:80dvh;padding:1.25rem}.sheet-handle{display:none}.dialog-buttons{justify-content:flex-end}.dialog-buttons button{flex:none;min-width:5.5rem}}@media (orientation:landscape) and (height<=30em){.puzzle{grid-template-rows:auto 1fr auto;grid-template-columns:1fr auto;display:grid}.puzzle-bar{grid-area:1/1/2/3;min-height:2.75rem}.puzzle-board{grid-area:2/1/4/2}.keypad{width:max-content;max-width:calc(3 * var(--tap-w) + 2 * var(--key-gap));grid-area:2/2/3/3;align-content:safe center;justify-self:center;max-height:none;margin:0;padding:.3rem 0}.puzzle[data-arrows=true] .keypad{max-width:calc(6 * var(--tap-w) + 5 * var(--key-gap))}.puzzle-actions{justify-self:center;gap:var(--key-gap);grid-area:3/2/4/3;width:max-content;max-width:none;margin:0;padding:.3rem 0}.puzzle-acts{grid-template-columns:repeat(2, var(--act-w));display:grid}.dialog-help{grid-template-rows:auto minmax(0,1fr);grid-template-columns:auto minmax(0,1fr);column-gap:1.25rem;max-width:42rem;display:grid;overflow:hidden}.dialog-help .dialog-head{grid-area:1/1/2/3}.help-art{grid-area:2/1/3/2;align-self:start;width:10.125rem;margin:0}.dialog-help .dialog-prose{overscroll-behavior:contain;grid-area:2/2/3/3;overflow-y:auto}}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(10px)}}::view-transition-old(root){animation:vt-out .12s var(--ease) both}::view-transition-new(root){animation:vt-in .26s var(--ease) both}.puzzle-missing{padding:2rem 0}.puzzle-missing h1{font-size:var(--t-xl);margin:0 0 .5rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}.manual{z-index:60;padding-top:env(safe-area-inset-top);background-color:var(--bg);background-image:var(--grid-image);background-size:var(--grid-size);background-position:var(--grid-position);animation:sheet-in var(--dur-slow) var(--ease) backwards;flex-direction:column;display:flex;position:fixed;inset:0}.manual-top{background-color:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--edge);flex:none}.manual-bar{max-width:44rem;min-height:3.25rem;padding:0 max(.375rem, env(safe-area-inset-right)) 0 max(.375rem, env(safe-area-inset-left));align-items:center;gap:.35rem;margin:0 auto;display:flex}.manual-btn{border-radius:var(--r-full);width:2.5rem;height:2.5rem;color:var(--text-2);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}@media (hover:hover){.manual-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}}.manual-btn:active:not(:disabled){background:var(--surface-3);transform:scale(.92)}.manual-btn:disabled{color:var(--text-3);opacity:.4;cursor:default}.manual-title{min-width:0;font-size:var(--t-lg);letter-spacing:-.015em;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.manual-scroll{overscroll-behavior:contain;min-height:0;font-size:var(--t-md);text-wrap:pretty;flex:1;line-height:1.7;overflow-y:auto}.manual-note{max-width:44rem;padding:2rem max(1rem, env(safe-area-inset-left));color:var(--text-2);align-items:center;gap:.75rem;margin:0 auto;display:flex}.manual-note button{border:1px solid var(--edge-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;padding:.35rem .8rem}.deal-block{z-index:40;padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));place-items:center;display:grid;position:fixed;inset:0}.deal-block[data-waiting]{background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:scrim-in var(--dur) var(--ease) backwards}.deal-card{aspect-ratio:1;border-radius:var(--r-lg);background:var(--surface);width:8.5rem;box-shadow:var(--shadow-3);animation:sheet-in var(--dur-slow) var(--ease) backwards;place-items:center;display:grid;position:relative}.deal-card:focus{outline:none}.deal-card .dialog-close{margin:0;position:absolute;top:.35rem;right:.35rem}.deal-ring{width:2.75rem;height:2.75rem}.deal-ring circle{fill:none;stroke-width:4px;stroke-linecap:round;transform-origin:50%}.deal-ring-track{stroke:var(--surface-3)}.deal-ring-arc{stroke:var(--accent);animation:1.4s linear infinite deal-spin,1.4s ease-in-out infinite deal-arc}@keyframes deal-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}@keyframes deal-arc{0%{stroke-dasharray:6 94;stroke-dashoffset:0}50%{stroke-dasharray:62 38;stroke-dashoffset:-14px}to{stroke-dasharray:6 94;stroke-dashoffset:-100px}}@media (prefers-reduced-motion:reduce){.deal-ring-arc{stroke-dasharray:28 72;animation:1.8s ease-in-out infinite deal-breathe;transform:rotate(-90deg)}@keyframes deal-breathe{50%{opacity:.3}}}
