@font-face{font-family:Archivo;src:url(/fonts/Archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}@font-face{font-family:Bodoni Moda;src:url(/fonts/BodoniModa.woff2) format("woff2");font-weight:400 900;font-style:normal;font-display:swap}@font-face{font-family:Bodoni Moda;src:url(/fonts/BodoniModa-Italic.woff2) format("woff2");font-weight:400 900;font-style:italic;font-display:swap}@font-face{font-family:DM Mono;src:url(/fonts/DMMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:DM Mono;src:url(/fonts/DMMono-Medium.woff2) format("woff2");font-weight:500;font-display:swap}:root{--paper: #ecebe5;--ink: #1d1d1b;--text: var(--ink);--text-dim: rgba(29, 29, 27, .66);--text-faint: rgba(29, 29, 27, .5);--line: rgba(29, 29, 27, .13);--line-strong: rgba(29, 29, 27, .32);--sheet: rgba(240, 239, 233, .62);--sheet-solid: #efeee8;--accent: #2446b0;--accent-ink: #f3f2ec;--accent-soft: rgba(36, 70, 176, .1);--check: #b5532c;--swatch-white: radial-gradient(circle at 35% 30%, #fffdf6, #e2dac6 70%);--swatch-black: radial-gradient(circle at 35% 30%, #4a4642, #151413 70%);--backdrop: url(/textures/backdrop-classic.jpg);--backdrop-opacity: .55;--backdrop-filter: blur(38px) saturate(.85) brightness(1.15);--grain-blend: multiply;--grain-opacity: .22;--radius: 14px;--ease: cubic-bezier(.22, .8, .24, 1);--serif: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;--sans: "Archivo", "Helvetica Neue", Arial, sans-serif;--mono: "DM Mono", ui-monospace, Menlo, monospace;--topbar-h: 60px;color-scheme:only light}body.toilet{--paper: #1a110b;--ink: #f1e3c8;--text: var(--ink);--text-dim: rgba(241, 227, 200, .7);--text-faint: rgba(241, 227, 200, .5);--line: rgba(241, 227, 200, .13);--line-strong: rgba(241, 227, 200, .3);--sheet: rgba(34, 22, 14, .58);--sheet-solid: #24170f;--accent: #e39a34;--accent-ink: #1a110b;--accent-soft: rgba(227, 154, 52, .14);--check: #d0643a;--swatch-white: radial-gradient(circle at 35% 30%, #ffffff, #9aa0a8 45%, #e9ecef 60%, #7d838c 90%);--swatch-black: radial-gradient(circle at 35% 30%, #c77a2c, #6b2e0e 55%, #2a1206 95%);--backdrop: url(/textures/backdrop-toilet.jpg);--backdrop-opacity: .62;--backdrop-filter: blur(34px) saturate(1.05) brightness(.62);--grain-blend: soft-light;--grain-opacity: .4;color-scheme:only dark}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{background:var(--paper)}body{font-family:var(--sans);font-size:15px;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden;transition:background-color .5s var(--ease),color .5s var(--ease)}body:before{content:"";position:fixed;top:-60px;right:-60px;bottom:-60px;left:-60px;z-index:-2;pointer-events:none;background:var(--backdrop) center / cover no-repeat;filter:var(--backdrop-filter);opacity:var(--backdrop-opacity);transition:opacity .6s var(--ease)}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;pointer-events:none;opacity:var(--grain-opacity);mix-blend-mode:var(--grain-blend);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0 0.5 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}button{font:inherit;color:inherit;cursor:pointer;border:none;background:none}button:focus-visible,input:focus-visible,a:focus-visible,.mode-toggle input:focus-visible+.switch{outline:2px solid var(--accent);outline-offset:3px}svg{display:block}.loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--paper);transition:opacity .6s var(--ease),visibility .6s}.loader.is-done{opacity:0;visibility:hidden}.loader-word{font-family:var(--serif);font-style:italic;font-weight:600;font-size:clamp(3rem,9vw,5rem);line-height:1.1;padding-bottom:4px;color:var(--ink)}.loader-bar{width:140px;height:1px;background:var(--line);overflow:hidden;margin-top:6px}.loader-bar span{display:block;height:100%;width:0;background:var(--ink);transition:width .3s var(--ease)}.topbar{position:fixed;inset:0 0 auto;height:var(--topbar-h);padding:0 28px;padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:space-between;z-index:50}.topbar-right{display:flex;align-items:center;gap:18px}.mode-toggle{display:inline-flex;align-items:center;gap:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.mode-toggle-label{font-size:.72rem;font-weight:600;font-stretch:115%;letter-spacing:.12em;text-transform:uppercase}.mode-toggle input{position:absolute;opacity:0;pointer-events:none}.switch{position:relative;width:46px;height:26px;border-radius:999px;border:1px solid var(--line-strong);background:var(--sheet);transition:background .3s var(--ease),border-color .3s var(--ease);flex-shrink:0}.switch:before{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--ink);transition:transform .35s var(--ease),background .3s var(--ease)}.mode-toggle input:checked+.switch{background:var(--accent);border-color:var(--accent)}.mode-toggle input:checked+.switch:before{transform:translate(20px);background:var(--accent-ink)}.mode-toggle input:disabled+.switch{opacity:.5}.attribution-link{color:var(--text-dim);text-decoration:none;font-size:.72rem;font-stretch:115%;letter-spacing:.1em;text-transform:uppercase;transition:color .2s var(--ease)}.attribution-link strong{color:var(--text);font-weight:700}.attribution-link:hover{color:var(--text)}#chessContainer{transition:opacity .35s var(--ease)}.board-wrap.is-swapping #chessContainer{opacity:0}#chessContainer.is-pointer{cursor:pointer}.board-wrap:before,.board-wrap:after{content:"";position:absolute;left:0;right:0;z-index:2;pointer-events:none;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}.board-wrap:before{top:0;height:14%;mask-image:linear-gradient(to bottom,#000,transparent);-webkit-mask-image:linear-gradient(to bottom,#000,transparent)}.board-wrap:after{bottom:0;height:22%;mask-image:linear-gradient(to top,#000,transparent);-webkit-mask-image:linear-gradient(to top,#000,transparent)}.control{position:absolute;left:50%;bottom:28px;z-index:5;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:5px;border-radius:999px;background:var(--sheet);backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);border:1px solid var(--line);overflow:hidden;white-space:nowrap;transition:border-color .3s var(--ease)}.control:empty{visibility:hidden}.ctl{padding:11px 20px;border-radius:999px;font-size:.9rem;font-weight:600;font-stretch:108%;color:var(--text);transition:background .2s var(--ease),color .2s var(--ease),opacity .2s}.ctl:hover:not(:disabled){background:var(--accent-soft)}.ctl:disabled{opacity:.35;cursor:not-allowed}.ctl-primary{padding:13px 40px;background:var(--accent);color:var(--accent-ink);font-size:1rem}.ctl-primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,var(--ink))}.control[data-step=start]{padding:0;border-color:transparent;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}.ctl-status{display:inline-flex;align-items:center;gap:10px;padding:7px 18px 7px 7px;border-radius:999px;font-size:.92rem;font-weight:600;color:var(--text)}button.ctl-status:hover{background:var(--accent-soft)}.status-dot{width:22px;height:22px;border-radius:50%;flex-shrink:0;background:var(--swatch-white);box-shadow:inset 0 0 0 1px var(--line-strong);transition:background .3s var(--ease)}.control.turn-black .status-dot{background:var(--swatch-black)}.control.is-check{border-color:var(--check)}.control.is-check .ctl-status{color:var(--check)}.control.is-thinking .status-dot{animation:breathe 1.2s ease-in-out infinite}.control.nudge{animation:nudge .35s var(--ease)}@keyframes breathe{50%{opacity:.45}}@keyframes nudge{25%{transform:translate(calc(-50% - 4px))}75%{transform:translate(calc(-50% + 4px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-reduced-transparency:reduce){.control{background:var(--sheet-solid);backdrop-filter:none;-webkit-backdrop-filter:none}}.app{display:grid;grid-template-rows:clamp(100px,19vh,190px) minmax(0,1fr);height:100vh;height:100dvh;padding:var(--topbar-h) 24px 24px}.title-section{position:relative;min-height:0}#titleContainer{position:absolute;top:0;right:0;bottom:0;left:0}.board-wrap{position:relative;min-height:0}#chessContainer{position:absolute;top:0;right:0;bottom:0;left:0}#titleContainer canvas,#chessContainer canvas{display:block;outline:none}@media(max-width:900px){:root{--topbar-h: 54px}.topbar{padding:0 16px;padding-top:env(safe-area-inset-top);height:calc(var(--topbar-h) + env(safe-area-inset-top))}.app{grid-template-rows:clamp(76px,13vh,120px) minmax(0,1fr);padding:calc(var(--topbar-h) + env(safe-area-inset-top)) 0 env(safe-area-inset-bottom)}.control{bottom:calc(20px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}.ctl{padding:11px 14px;font-size:.86rem}}
