@import"https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";.piece-flight{position:absolute;inset:0;z-index:3;display:grid;place-items:center;pointer-events:none;transform:translate(var(--flight-x),var(--flight-y));transition:transform .19s cubic-bezier(.22,.7,.24,1)}.piece-flight-moving{transform:translate(0)}.piece-flight .piece{width:94%;height:94%}@media(prefers-reduced-motion:reduce){.piece-flight{transition-duration:1ms}}:root{font-family:Manrope,system-ui,sans-serif;color:#e9f0e9;background:#101b18;font-synthesis:none;text-rendering:optimizeLegibility;font-optical-sizing:auto;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(ellipse at 48% 20%,#1b2a24,#101b18 55%,#0c1513)}button{font:inherit}.app-shell{max-width:1080px;min-height:100vh;margin:auto;padding:0 38px 22px;display:flex;flex-direction:column}.topbar{height:82px;display:flex;align-items:center;gap:11px;border-bottom:1px solid #314039;color:#b8c7bd;font:500 11px DM Mono,monospace;letter-spacing:.15em}.brand-name{color:#e9f0e9;font-weight:700;letter-spacing:.11em}.brand-mark{width:27px;height:27px;border:1px solid #d4aa64;border-radius:50%;display:grid;place-items:center;color:#e9c786;font:600 15px Manrope}.topbar-label{margin-left:auto;color:#77877c;font-size:9px}.layout{display:grid;grid-template-columns:minmax(350px,600px) minmax(215px,260px);justify-content:center;gap:65px;align-items:center;flex:1;padding:36px 0}.game-heading{text-align:center;margin-bottom:21px}.eyebrow,.stat-label,.stat-foot,.source-note,footer{font:500 10px DM Mono,monospace;letter-spacing:.15em;color:#93a399}.eyebrow{margin:0 0 6px;color:#c49f63}.game-heading h1{margin:0;font-size:clamp(26px,4vw,38px);letter-spacing:-.045em;font-weight:600}.board-frame{width:min(100%,560px);aspect-ratio:1;margin:0 auto;box-shadow:0 17px 48px #05090880;border:7px solid #d5c5a2;border-radius:4px;overflow:hidden}.board-controls{min-height:44px;display:flex;align-items:center;justify-content:center;gap:10px}.last-move-button{min-height:38px;padding:7px 15px;border:1px solid #607368;border-radius:4px;background:#17231f;color:#e8dfca;font:500 10px DM Mono,monospace;letter-spacing:.1em;touch-action:manipulation}.last-move-button:disabled{opacity:.45}.last-move-label{color:#d8bf8a;font:500 10px DM Mono,monospace}.square.last-move-from{box-shadow:inset 0 0 0 4px #c89e4d;background-image:linear-gradient(#c89e4d38,#c89e4d38)}.square.last-move-to{box-shadow:inset 0 0 0 4px #f0c45e;background-image:linear-gradient(#f0c45e55,#f0c45e55)}.board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));width:100%;height:auto;aspect-ratio:1;align-self:start;min-width:0;min-height:0;touch-action:manipulation}.square{position:relative;min-width:0;min-height:0;border:0;padding:0;display:grid;place-items:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.square.light{background:#e6dfca}.square.dark{background:#809982}.square.selected{box-shadow:inset 0 0 0 5px #edbd59;z-index:1}.square.target:after{content:"";width:25%;height:25%;border-radius:50%;background:#17251d66;position:absolute}.square.target:has(.piece):after{width:100%;height:100%;border:5px solid #e5b54d;background:transparent}.piece{width:94%;height:94%;overflow:visible;-webkit-user-select:none;user-select:none;filter:drop-shadow(0 1px 1px #0006)}.piece path,.piece circle{fill:currentColor;stroke:currentColor;stroke-width:2;stroke-linejoin:round}.piece .piece-detail{fill:none;stroke-width:4;stroke-linecap:round}.white-piece{color:#fffdf0;stroke:#5b594f}.white-piece path,.white-piece circle{stroke:#5b594f;stroke-width:2}.black-piece{color:#29332c;stroke:#eee7d4}.black-piece .bishop-slit{stroke:#fff4d6;stroke-width:7}.square:nth-child(8n+1):before{content:attr(data-edge-rank);position:absolute;top:3px;left:4px;font:500 9px DM Mono,monospace;z-index:2;color:#60775f}.square.dark:nth-child(8n+1):before{color:#f1e9d3}.start-board{height:100%;display:grid;place-content:center;text-align:center;background:repeating-conic-gradient(#d9d0b8 0% 25%,#849886 0% 50%) 50%/25% 25%;color:#304239;font:500 10px DM Mono,monospace;letter-spacing:.14em}.start-glyph{font:100px Georgia;color:#22352b;line-height:1;margin-bottom:12px}.game-message{height:48px;display:grid;place-items:center;text-align:center;color:#b7c5ba;font-size:13px}.primary-button{display:flex;align-items:center;justify-content:center;gap:20px;border:0;border-radius:3px;background:#d8b574;color:#172019;font:700 11px DM Mono,monospace;letter-spacing:.12em;padding:16px 20px;cursor:pointer;max-width:240px;margin:0 auto;width:100%;transition:background .15s,transform .15s}.primary-button:hover{background:#edcb89;transform:translateY(-1px)}.primary-button span{font-size:18px}.source-note{text-align:center;letter-spacing:.02em;font-size:10px}.source-note strong{color:#e3bb72}.score-panel{display:flex;flex-direction:column;gap:12px}.stat-card{padding:19px 20px;border:1px solid #34453b;background:#17231f;border-radius:4px;display:flex;flex-direction:column;gap:8px}.score-card{padding:21px 20px 17px}.stat-label{font-size:9px;color:#8fa094}.score-number{font-size:56px;line-height:1;letter-spacing:-.06em;font-weight:500;color:#f1ede0}.stat-foot{font-size:8px;color:#6f8075}.strikes{display:flex;gap:13px;font-size:25px;color:#47584e}.strike.alive{color:#dbb36e;text-shadow:0 0 16px #d5a84c4d}.rating-number{font:500 28px DM Mono,monospace;color:#e8dfca}.best-card{padding:17px 20px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #37463e;border-bottom:1px solid #37463e;margin-top:7px}.best-card div{display:flex;flex-direction:column;gap:8px}.best-card strong{font-size:25px;font-weight:500}.best-medal{font-size:20px;color:#d5ae6d}.run-summary{margin:0;text-align:center;font-size:12px;color:#aab8ad}footer{padding:15px 0 0;text-align:center;font-size:8px;color:#607168}@media(max-width:760px){.app-shell{padding:0 18px 17px}.topbar{height:65px}.layout{grid-template-columns:minmax(0,520px);gap:24px;padding:25px 0 20px}.board-frame{border-width:5px}.game-heading{margin-bottom:16px}.game-message{height:42px}.score-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.stat-card,.score-card{padding:13px 14px}.score-number{font-size:42px}.strikes{font-size:21px}.best-card{grid-column:1/-1;margin:0;padding:12px 14px}.run-summary{grid-column:1/-1}.source-note{height:16px}}@media(max-width:390px){.app-shell{padding-left:12px;padding-right:12px}.topbar-label{font-size:9px}}.layout{grid-template-columns:minmax(0,600px);gap:0;padding:18px 0}.stats-panel{width:min(100%,560px);margin:12px auto 0;padding:11px 14px 5px;border:1px solid #2b3b32;border-radius:7px;background:linear-gradient(135deg,#17231fcc,#13201bdb)}.live-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.live-stat{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:2px 6px}.live-stat+.live-stat{border-left:1px solid #304137}.stats-panel .stat-label{font-size:8px;letter-spacing:.09em;white-space:nowrap}.stat-value{font-size:24px;line-height:1.1;font-weight:600;letter-spacing:-.04em;color:#f1ede0;font-variant-numeric:tabular-nums}.rating-number{font:600 22px DM Mono,monospace;letter-spacing:-.05em;color:#e8dfca}.strikes{display:flex;align-items:center;justify-content:center;gap:7px;min-height:26px;font-size:20px;line-height:1;color:#47584e}.best-card{justify-content:center;gap:9px;margin:7px 0 0;padding:7px 0 0;border-top:1px solid #2b3b32;border-bottom:0;color:#9caa9f}.best-card .stat-label{font-size:8px}.best-card strong{font-size:15px;line-height:1;color:#d9c9a7;font-weight:600;font-variant-numeric:tabular-nums}.game-message{height:34px}.content-status:empty{display:none}@media(max-width:760px){.layout{grid-template-columns:minmax(0,520px);gap:0;padding:10px 0 14px}.game-message{height:34px}}@media(max-width:360px){.stats-panel{padding-left:8px;padding-right:8px}.live-stat{padding-left:2px;padding-right:2px}.stats-panel .stat-label{font-size:7px;letter-spacing:.06em}.stat-value{font-size:21px}.rating-number{font-size:19px}.strikes{gap:5px;font-size:18px}}.brand-logo{display:block;width:clamp(132px,40vw,156px);height:auto;flex:0 1 auto;object-fit:contain;mix-blend-mode:screen}.piece{color:#f2ead8;filter:drop-shadow(0 1px 1px #17151066)}.white-piece{--piece-edge:#665a45;--piece-detail-color:#b7a47e;--piece-highlight-color:#fffdf5;--piece-accent-color:#d6c7a5;--piece-eye-color:#433725;color:#f2ead8;stroke:none}.black-piece{--piece-edge:#c9bea2;--piece-detail-color:#101815;--piece-highlight-color:#849087;--piece-accent-color:#17211c;--piece-eye-color:#eee3c7;color:#28322e;stroke:none}.piece .piece-body{fill:currentColor;stroke:var(--piece-edge);stroke-width:1.45;stroke-linejoin:round;stroke-linecap:round}.piece .piece-highlight{fill:none;stroke:var(--piece-highlight-color);stroke-width:1.35;stroke-linecap:round;opacity:.74}.piece .piece-detail{fill:none;stroke:var(--piece-detail-color);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.piece .bishop-diagonal-slit{stroke-width:3.2}.piece .piece-accent{fill:var(--piece-accent-color);stroke:var(--piece-edge);stroke-width:.8;stroke-linejoin:round}.piece .piece-eye{fill:var(--piece-eye-color);stroke:var(--piece-edge);stroke-width:.55}
