:root{color-scheme:light;--bg: #f3efe6;--bg-elev: #fffdf8;--ink: #1e1a16;--muted: #5f584e;--line: #e3d9c8;--accent: #1c6b43;--accent-ink: #f4fff8;--shadow: 0 12px 30px rgba(48, 34, 12, .08);--light-sq: #f0d9b5;--dark-sq: #b58863;--danger: #9d1c1c;--warn-bg: #fff4e5;--warn-ink: #7a4a10}[data-theme=dark]{color-scheme:dark;--bg: #121411;--bg-elev: #1c201c;--ink: #f4f0e6;--muted: #b7b1a4;--line: #31362f;--accent: #3dbe78;--accent-ink: #062114;--shadow: 0 12px 30px rgba(0, 0, 0, .35);--light-sq: #cbb892;--dark-sq: #6d5138;--danger: #ffb4b4;--warn-bg: #2c2418;--warn-ink: #f0c48a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--ink);font-family:Segoe UI,system-ui,sans-serif;line-height:1.5}h1,h2,h3,.brand,.move{font-family:Palatino,Palatino Linotype,Georgia,serif;font-weight:600;letter-spacing:-.02em}h1{font-size:clamp(2rem,4vw,3.1rem);line-height:1.05;margin:0 0 .6rem}h2{font-size:1.55rem;margin:0 0 .6rem}h3{font-size:1.08rem;margin:1.15rem 0 .3rem}p{margin:0 0 .8rem}a{color:var(--accent)}button,.segment{font:inherit}button{cursor:pointer;color:var(--ink)}:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.skip{position:absolute;left:.75rem;top:-4rem;z-index:40;background:var(--bg-elev);color:var(--ink);padding:.4rem .7rem;border-radius:.4rem}.skip:focus{top:.75rem}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;padding:.65rem 1rem;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{justify-self:start;color:inherit;text-decoration:none;font-size:1.15rem}.mode-pair{justify-self:center;display:flex;align-items:center;gap:.45rem;min-width:0}.insights-toggle{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:var(--bg-elev);border-radius:999px;padding:.4rem .8rem;white-space:nowrap}.insights-toggle[aria-pressed=true]{border-color:var(--accent)}.lamp{width:.55rem;height:.55rem;border-radius:50%;background:var(--muted)}.insights-toggle[aria-pressed=true] .lamp{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 28%,transparent)}.analyze-toggle{touch-action:manipulation;-webkit-user-select:none;user-select:none}#import-dialog,#export-dialog{width:min(32rem,calc(100% - 2rem));border:1px solid var(--line);border-radius:.9rem;background:var(--bg-elev);color:var(--ink);padding:1rem 1.05rem .9rem;box-shadow:var(--shadow)}#import-dialog::backdrop,#export-dialog::backdrop{background:#00000073}#import-dialog h2,#export-dialog h2{margin:0 2rem .7rem 0;font-size:1.15rem}.dialog-close{position:absolute;top:.65rem;right:.65rem;width:2rem;height:2rem;display:grid;place-items:center;border:0;border-radius:999px;background:transparent;color:var(--ink);padding:0;cursor:pointer}.dialog-close svg{width:1.1rem;height:1.1rem}.export-formats{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.7rem}.export-formats button{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:.35rem .7rem;cursor:pointer}.export-formats button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:transparent}.import-label{display:block;margin-bottom:.35rem}#import-text,#export-text{width:100%;box-sizing:border-box;min-height:7rem;resize:vertical;border:1px solid var(--line);border-radius:.55rem;background:var(--bg);color:var(--ink);padding:.55rem .65rem;font:inherit}.import-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.7rem}.import-actions button,.import-file{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:999px;padding:.4rem .8rem;cursor:pointer}.import-file input{display:none}.import-hint{margin:.7rem 0 0;color:var(--muted)}#import-dialog.is-drop{outline:2px dashed var(--accent);outline-offset:-.45rem}#import-status,#export-status{min-height:1.2rem;margin:.35rem 0 0;color:var(--muted)}.top-end{position:relative;justify-self:end;display:flex;align-items:center;justify-content:flex-end;gap:.4rem}.top-actions{display:flex;align-items:center;gap:.4rem}#top-menu{display:none}.topbar.is-menu #top-menu{display:grid}.topbar.is-menu .top-actions{display:none}.topbar.is-menu #top-menu[aria-expanded=true]+.top-actions{display:flex;position:absolute;top:calc(100% + .35rem);right:1.25rem;transform:translate(50%);z-index:30;flex-direction:column;align-items:center;gap:.4rem;padding:.45rem;border:1px solid var(--line);border-radius:.9rem;background:var(--bg-elev);box-shadow:var(--shadow)}.icon-button{width:2.5rem;height:2.5rem;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--bg-elev);padding:0}.icon-button svg{width:1.25rem;height:1.25rem}.icon-sun,[data-theme=dark] .icon-moon{display:none}[data-theme=dark] .icon-sun{display:block}.page{width:min(1120px,calc(100% - 1.5rem));margin:1rem auto 2rem;display:flex;flex-direction:column;gap:1rem}.columns{display:flex;justify-content:center;align-items:flex-start;gap:1rem;width:100%}.content{width:min(100%,58rem);min-width:0}.below-bar{display:none}.below h1{font-size:1.7rem;margin-top:.2rem}.ad-slot:not(:has(iframe,ins,img,.ad-content,object,script)){display:none}.ad-slot:has(iframe,ins,img,.ad-content,object,script){display:flex;justify-content:center;width:100%;min-height:90px}.ad-slot[data-ad-slot^=sidebar]:has(iframe,ins,img,.ad-content,object,script){width:160px;min-height:600px;flex:0 0 auto}.lede{max-width:68ch;color:var(--ink);font-size:1.05rem}.toolbar{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin:.4rem 0 .7rem}.toolbar>button,.segment button{border:1px solid var(--line);background:var(--bg-elev);border-radius:999px;padding:.45rem .8rem}.toolbar>button:disabled,.segment button:disabled{opacity:.45;cursor:not-allowed}.segment{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:var(--bg-elev)}.segment button{border:0;border-radius:0}.segment button[aria-pressed=true],#flip[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.hint{color:var(--muted);font-size:.92rem;max-width:70ch}.palette{grid-column:2;grid-row:1;min-width:0;margin:0}.palette-white,#palette-black.is-flipped{grid-row:3}#palette-white.is-flipped{grid-row:1}.palette.is-locked .tray-piece{opacity:.38;pointer-events:none}.color-filter{width:68%;aspect-ratio:1;justify-self:center;align-self:center;border-radius:50%;border:2px solid #1a1a1a;padding:0;touch-action:manipulation;cursor:pointer}.color-filter[data-color=w]{background:#f7f4ee}.color-filter[data-color=b]{background:#16130f;border-color:#f3efe6}.color-filter[aria-pressed=false]{background:#b5b0a6;border-color:#8a847a}.tray{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:0}.tray-piece{width:100%;aspect-ratio:1;height:auto;border:1px solid #1a1a1a;border-radius:.28rem;background:#f4efe4;padding:0;touch-action:none}.tray-piece[data-color=b]{border-color:#141414}.tray-piece[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.piece-img{width:100%;height:100%;display:block;object-fit:contain;pointer-events:none;-webkit-user-select:none;user-select:none}.play{display:grid;grid-template-columns:minmax(0,1fr) minmax(15rem,18rem);gap:1rem 1.2rem;align-items:start}.play:has(.result.is-empty){grid-template-columns:minmax(0,1fr)}.board-column{display:flex;flex-direction:column;align-items:center;min-width:0}.rig{display:grid;grid-template-columns:1.65rem minmax(0,1fr);column-gap:.55rem;row-gap:.28rem;align-items:stretch;width:min(100%,34rem,max(16rem,calc((100svh - 20rem)*.8 + 2.2rem)))}.board-frame{grid-column:2;grid-row:2;position:relative;width:100%;min-width:0;aspect-ratio:1;border-radius:.45rem;overflow:hidden;box-shadow:var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none}.squares{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(8,1fr);width:100%;height:100%}.sq{position:relative;display:grid;place-items:center;min-width:0;min-height:0}.sq.light{background:var(--light-sq)}.sq.dark{background:var(--dark-sq)}.server-position{margin:0 0 .9rem;padding:.8rem .95rem;border:1px solid var(--line);border-radius:.7rem;background:color-mix(in srgb,var(--ink) 5%,transparent)}.server-position h2{margin:0 0 .35rem;font-size:1.05rem}.server-position p,.server-position ul{margin:.35rem 0 0}.server-position ul{padding-left:1.15rem}.sq .piece{width:100%;height:100%;pointer-events:none}.sq.lift .piece{opacity:.35}.piece.is-glow{filter:drop-shadow(0 0 4px var(--glow))}.piece.is-glow.is-finished{filter:drop-shadow(0 0 5px var(--glow)) drop-shadow(0 0 2px var(--glow))}.move-dot{position:absolute;width:32%;height:32%;border-radius:50%;z-index:3;pointer-events:none}.board-frame.turn-w .move-dot{background:#f7f4ee;box-shadow:0 0 0 1.5px #1c16108c}.board-frame.turn-b .move-dot{background:#1b1916;box-shadow:0 0 0 1.5px #f7f4eeb8}.move-dot.is-quiet,.board-frame.turn-w .move-dot.is-quiet,.board-frame.turn-b .move-dot.is-quiet{background:#a8a299;box-shadow:0 0 0 1px #28241e47;opacity:.75}.board-frame.is-playing{animation:side-glow 2.4s ease-in-out infinite}.board-frame.is-playing.turn-w{--side: #f4efe4;--side-glow: rgba(255, 236, 196, .95)}.board-frame.is-playing.turn-b{--side: #1a1714;--side-glow: rgba(20, 16, 12, .72)}[data-theme=dark] .board-frame.is-playing.turn-b{--side-glow: rgba(232, 224, 208, .34)}.sq.drop{outline:3px solid var(--accent);outline-offset:-3px;z-index:1}.sq.selected,.sq.is-focus{outline:3px solid #2463c7;outline-offset:-3px;z-index:1}.sq.move-from:before,.sq.move-to:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#18783461;pointer-events:none}.sq[data-marker=check]{box-shadow:inset 0 0 0 3px #d32626}.sq[data-marker=hanging]{box-shadow:inset 0 0 0 3px #e23d3d}.sq[data-marker=fork]{box-shadow:inset 0 0 0 3px #db2777}.sq[data-marker=pin]{box-shadow:inset 0 0 0 3px #d89a12}.sq[data-marker=skewer]{box-shadow:inset 0 0 0 3px #15803d}.sq[data-marker=discovered]{box-shadow:inset 0 0 0 3px #0d8a78}.sq[data-marker=defended]{box-shadow:inset 0 0 0 3px #1d6fd6}.sq[data-marker=mate]{box-shadow:inset 0 0 0 4px #9f1239}.sq[data-marker=tempo]{box-shadow:inset 0 0 0 3px #65a30d}.sq[data-marker=interference]{box-shadow:inset 0 0 0 3px #92400e}.sq[data-marker=clearance]{box-shadow:inset 0 0 0 3px #6d28d9}.coord{position:absolute;font-size:clamp(8px,1.5vw,12px);font-weight:700;line-height:1;pointer-events:none;font-family:Segoe UI,system-ui,sans-serif}.coord.rank{top:2px;left:3px}.coord.file{right:3px;bottom:2px}.sq.light .coord{color:#b58863}.sq.dark .coord{color:#f3e6cf}.arrows{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible}.insight-arrow,.engine-arrow{opacity:.8}.insight-arrow.is-extra{opacity:0}.arrows.is-focused .insight-arrow{opacity:.16}.arrows.is-focused .insight-arrow.is-hot{opacity:1}.eval-bar{grid-column:1;grid-row:2;border-radius:999px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--line);background:#2a2622;height:100%;min-height:0}.eval-seg{display:grid;place-items:center;font-size:.68rem;font-weight:700;overflow:hidden}.eval-bar.pending .eval-seg{background:repeating-linear-gradient(135deg,#d9d0c2,#d9d0c2 6px,#eee7db 6px,#eee7db 12px);color:transparent}.eval-caption{text-align:center;color:var(--muted);font-size:.92rem;margin:.45rem 0 0}.opening-name{width:min(100%,36rem);min-height:1.35rem;margin:.28rem 0 0;padding-inline:.4rem;text-align:center;font-family:Palatino,Palatino Linotype,Georgia,serif;font-size:1.05rem;font-weight:600;line-height:1.25;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.action-row{display:flex;align-items:flex-start;justify-content:center;gap:1.35rem;margin:.85rem auto .2rem}.analyze-row{display:flex;flex-direction:column;align-items:center;gap:.25rem;margin:0}.play-game{position:relative;width:4.75rem;height:4.75rem;border:2px solid var(--line);border-radius:50%;background:var(--bg-elev);color:var(--ink);display:grid;place-items:center;box-shadow:var(--shadow);touch-action:manipulation;-webkit-user-select:none;user-select:none}.play-game svg{width:1.7rem;height:1.7rem}.play-game .icon-play{margin-left:.15rem}.play-game .icon-stop,.play-game.is-on .icon-play{display:none}.play-game.is-on .icon-stop{display:block}.play-game.is-on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.step-button{width:2.4rem;height:2.4rem;margin-top:1.175rem;border:1px solid var(--line);border-radius:50%;background:var(--bg-elev);color:var(--ink);display:grid;place-items:center;padding:0;flex:0 0 auto}.step-button svg{width:1.15rem;height:1.15rem}.step-button:disabled{opacity:.38;cursor:not-allowed}.step-button.is-absent{visibility:hidden}#play-caption{color:var(--muted);font-size:.92rem}.analyze-toggle.is-busy .lamp{animation:lamp-pulse .8s ease-in-out infinite}.result{background:var(--bg-elev);border:1px solid var(--line);border-radius:.9rem;padding:1rem 1.05rem .4rem;box-shadow:var(--shadow)}.result.is-empty{display:none}.kicker{margin:0;color:var(--muted);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;font-family:Segoe UI,system-ui,sans-serif}.move{font-size:2.5rem;line-height:1;margin:.25rem 0 .45rem}.eval-line,.chance,.summary,.line{font-size:.95rem}.line{color:var(--muted)}.result-error{background:var(--warn-bg);color:var(--warn-ink);border-radius:.6rem;padding:.7rem .8rem}#position-insights{margin:1rem auto 0;width:min(100%,42rem)}#how-it-works,#about,#faq{margin-top:2rem}.legend,.insight-list{list-style:none;padding:0;margin:0}.legend{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:auto auto;gap:.4rem;margin-bottom:.8rem}.marker-key{display:none}.legend li{display:block;min-width:0}.insight-list li{display:block}.swatch,.badge{flex:0 0 auto}.swatch{width:.7rem;height:.7rem;border-radius:2px;margin-top:.28rem}.flag{position:relative;width:100%;min-height:2.75rem;border:0;border-radius:.55rem;padding:.35rem .15rem;color:#fff;font-family:Segoe UI,system-ui,sans-serif;font-size:clamp(.62rem,2.2vw,.78rem);font-weight:700;letter-spacing:.02em;line-height:1.15;text-transform:uppercase;cursor:pointer;touch-action:manipulation}.kind-check .badge,.swatch.check,.flag.check{background:#d32626}.kind-hanging .badge,.swatch.hanging,.flag.hanging{background:#e23d3d}.kind-fork .badge,.swatch.fork,.flag.fork{background:#db2777}.kind-pin .badge,.swatch.pin,.flag.pin{background:#d89a12}.kind-skewer .badge,.swatch.skewer,.flag.skewer{background:#15803d}.kind-discovered .badge,.swatch.discovered,.flag.discovered{background:#0d8a78}.kind-threat .badge,.swatch.threat,.flag.threat{background:#e06a12}.kind-tempo .badge,.swatch.tempo,.flag.tempo{background:#65a30d}.kind-defended .badge,.swatch.defended,.flag.defended{background:#1d6fd6}.kind-mate .badge,.swatch.mate,.flag.mate{background:#9f1239}.kind-interference .badge,.swatch.interference,.flag.interference{background:#92400e}.kind-clearance .badge,.swatch.clearance,.flag.clearance{background:#6d28d9}.kind-cover .badge,.swatch.cover,.flag.cover{background:#3d8ae6}.flag.is-off{background:transparent;color:var(--muted);text-decoration:line-through;text-decoration-thickness:.12em}.insight-list{display:flex;flex-direction:column;gap:.45rem}.insight-list li{cursor:pointer;padding:.15rem 0;font-size:1rem;line-height:1.35}.insight-list li.is-off{opacity:.4}.insight-list li.is-hot{outline:2px solid var(--accent);outline-offset:2px}.empty-insights{color:var(--muted)}.site-footer{border-top:1px solid var(--line);padding:1.2rem 1rem 2rem;color:var(--muted);text-align:center}.site-footer nav{display:flex;justify-content:center;gap:1rem;margin-bottom:.6rem}.site-footer p{max-width:46rem;margin:0 auto;font-size:.9rem}body.dragging,body.dragging *{cursor:grabbing!important}#ghost{position:fixed;left:0;top:0;z-index:50;pointer-events:none;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35))}ol{padding-left:1.2rem}ol li{margin:.35rem 0}@media(max-width:860px){html,body{height:100dvh;overflow:hidden;overscroll-behavior:none}body{display:flex;flex-direction:column;touch-action:manipulation}.topbar{position:static;flex:0 0 auto;padding:calc(.35rem + env(safe-area-inset-top)) .55rem .35rem}.page{flex:1 1 auto;min-height:0;width:100%;margin:0;padding:.3rem .45rem calc(.3rem + env(safe-area-inset-bottom));gap:.25rem;overflow:hidden}.columns,.content,.app{flex:1 1 auto;min-height:0;min-width:0;width:100%}.columns{flex-direction:column;align-items:stretch}.content,.app{display:flex;flex-direction:column}.toolbar{flex-wrap:wrap;flex-shrink:0;margin:0 0 .3rem}.toolbar>button,.toolbar>.segment{flex:0 0 auto}.toolbar>button,.segment button{padding:.32rem .6rem;white-space:nowrap}.board-column{container-type:size}.rig{width:min(100%,calc((100cqb - 7.7rem)*.8 + 1.4rem));grid-template-columns:1.05rem minmax(0,1fr);column-gap:.3rem;row-gap:.15rem;flex-shrink:0}.marker-key:not([hidden]){display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:auto auto;overflow:visible;flex-shrink:0;gap:.28rem;margin:0 0 .35rem}.marker-key .flag{min-height:2.35rem;font-size:.62rem}.play{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;gap:.3rem}.board-column{flex:1 1 auto;min-height:0;width:100%}.eval-caption{margin:.15rem 0 0;font-size:.78rem;flex-shrink:0}.opening-name{flex-shrink:0;min-height:1rem;margin:.08rem 0 0;font-size:.74rem}.action-row{margin:.2rem auto 0;gap:.7rem;flex-shrink:0}.play-game{width:3.15rem;height:3.15rem}.play-game svg{width:1.3rem;height:1.3rem}.step-button{width:2rem;height:2rem;margin-top:.575rem}#play-caption{font-size:.78rem}.mode-pair{gap:.28rem}.insights-toggle{gap:.3rem;padding:.32rem .55rem;font-size:.82rem}.result{flex:0 1 auto;min-height:0;max-height:22%;overflow:auto;padding:.4rem .6rem .15rem}.result .move{font-size:1.45rem;margin:.05rem 0 .2rem}.result p{margin-bottom:.3rem}.app #position-insights,.below{display:none}body.info-open .below{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;overflow:auto;overscroll-behavior:contain;background:var(--bg);color:var(--ink);padding:calc(.55rem + env(safe-area-inset-top)) 1rem calc(1.4rem + env(safe-area-inset-bottom))}body.info-open .below-bar{display:flex;justify-content:flex-end;position:sticky;top:0;z-index:1;margin:0 0 .4rem;padding-bottom:.35rem;background:var(--bg)}#info-close{width:2.5rem;height:2.5rem;display:grid;place-items:center;border:1px solid var(--line);background:var(--bg-elev);color:var(--ink);border-radius:999px;padding:0}#info-close svg{width:1.15rem;height:1.15rem}.ad-slot:has(iframe,ins,img,.ad-content,object,script),.ad-slot[data-ad-slot^=sidebar]:has(iframe,ins,img,.ad-content,object,script){width:100%;min-height:0;max-height:64px;overflow:hidden;flex:0 0 auto}}@media(max-width:420px){.brand{font-size:1rem}.insights-toggle{padding-inline:.55rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.analyze-toggle.is-busy .lamp,.board-frame.is-playing{animation:none}.eval-seg{transition:none}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes lamp-pulse{50%{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent)}}@keyframes side-glow{0%,to{box-shadow:0 0 0 4px var(--side),0 0 12px 2px var(--side-glow)}50%{box-shadow:0 0 0 4px var(--side),0 0 26px 8px var(--side-glow)}}
