@font-face{font-family:system-serif;src:local(Georgia)}
:root{color-scheme:light;--ink:#183b31;--pine:#173b31;--deep:#102b25;--paper:#f1eddf;--cream:#fcf8eb;--sand:#ded4bb;--copper:#a65f34;--muted:#617265;--line:#c9c7af;--light:#e9dfc5;--dark:#6e8b71;--accent:#dfb762;--shadow:0 16px 48px #16332817;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:280px}button,a,input,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:9px;min-height:44px;padding:10px 14px;color:var(--ink);background:var(--cream);font-weight:650;font-size:14px}button:hover:not(:disabled){background:#e7e8d6}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #cc7b37;outline-offset:3px}[hidden]{display:none!important}.masthead{height:70px;display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:1320px;padding:0 32px;margin:auto;border-bottom:1px solid var(--line)}.brand{font-weight:900;letter-spacing:.06em;text-decoration:none;color:var(--pine);font-size:16px}.brand span{font:10px ui-monospace,monospace;letter-spacing:.12em;margin-left:20px;color:var(--muted)}.header-controls{display:flex;gap:8px}.quiet{background:transparent;font-size:18px}.quiet span{font-size:12px}.header-controls #help{width:44px;border-radius:50%;font-family:Georgia,serif}main{max-width:1240px;margin:0 auto;padding:24px 32px 18px}.page-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:18px}.eyebrow{font:10px/1.5 ui-monospace,monospace;font-weight:650;letter-spacing:.15em;margin:0 0 6px}.page-heading h1{font:500 clamp(36px,4.2vw,58px)/1 Georgia,serif;letter-spacing:-.05em;margin:0}.page-heading h1 em{font-weight:400;color:var(--copper)}.tagline{font-size:13px;line-height:1.55;margin:0;color:var(--muted)}.connection{border-left:3px solid var(--copper);padding:10px 14px;font-size:12px;line-height:1.5;background:#e8e1cf;border-radius:0 7px 7px 0;margin:0 0 18px}.connection.ready{border-color:#357a5e;background:#e1e8d9}.connection.fixture{border-color:#9c5323;background:#f3dcad}.game-layout{display:grid;grid-template-columns:minmax(300px,720px) minmax(245px,320px);gap:28px;justify-content:center;align-items:start}.table{width:100%;max-width:min(720px,calc(100dvh - 278px));min-width:300px;justify-self:center}.pack-line{display:flex;justify-content:space-between;align-items:center;gap:12px;font:10px/1.4 ui-monospace,monospace;letter-spacing:.08em;padding:0 4px 10px}.pack-line>span:last-child{text-align:right;color:var(--muted);font-family:inherit;letter-spacing:0}.pack-line.bottom{padding-top:10px;padding-bottom:0}.board-frame{padding:11px;border-radius:13px;background:linear-gradient(135deg,#254c3d,#11362b);box-shadow:var(--shadow),inset 0 0 0 1px #0d2d22;position:relative}.board{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));aspect-ratio:1;isolation:isolate;overflow:hidden;border-radius:3px;outline:1px solid #071c17}.square{position:relative;min-width:0;min-height:0;aspect-ratio:1;border:0;border-radius:0;padding:0;background:var(--light);touch-action:manipulation;user-select:none;display:grid;place-items:center;isolation:isolate}.square.dark{background:var(--dark)}.square:hover:not(:disabled){background:#d5c99e}.square.dark:hover:not(:disabled){background:#8ba389}.square:disabled{opacity:1;cursor:default}.square:focus-visible{outline:3px solid #ffdb7f;outline-offset:-4px;z-index:2}.square.selected{box-shadow:inset 0 0 0 4px #f1c356;background:#adba87}.square.last{background:#d0c797}.square.dark.last{background:#97a77a}.square.check{background:#ba644b}.square.legal:after{content:"";width:21%;height:21%;border-radius:50%;background:#153e3266;position:absolute;z-index:2;box-shadow:0 0 0 2px #fdf3d18c}.square.capture:after{background:transparent;width:90%;height:90%;border:4px solid #d7963e;box-shadow:none}.piece{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;position:absolute;inset:0;z-index:1;filter:drop-shadow(0 2px 1px #0e30272c)}.role-badge{position:absolute;right:3px;bottom:3px;z-index:3;background:#faf3dbed;color:#183b31;border:1px solid #405b45;border-radius:3px;font:700 clamp(9px,1vw,12px)/1 ui-monospace,monospace;min-width:1.25em;text-align:center;padding:2px}.role-badge.black{background:#233a31ed;color:#fff1c7;border-color:#e9cf91;border-radius:1px}.coord{position:absolute;top:3px;left:4px;font:9px ui-monospace,monospace;color:#284b38;z-index:3;pointer-events:none}.dark .coord{color:#fcf4dc}.coord.file{top:auto;left:4px;bottom:3px}.board-hint{font-size:11px;line-height:1.5;color:var(--muted);text-align:center;margin:12px 0 0}.game-panel{border:1px solid var(--line);background:var(--cream);border-radius:14px;padding:20px;box-shadow:var(--shadow);display:flex;flex-direction:column;min-height:440px}.turn-card{border-bottom:1px solid var(--line);padding-bottom:18px;min-height:135px}.turn-card h2{font:500 29px/1.15 Georgia,serif;letter-spacing:-.025em;margin:8px 0}.turn-card p{font-size:13px;line-height:1.5;color:var(--muted);margin:8px 0}.turn-card #error{color:#8b3d22;font-weight:650}.primary{background:var(--pine);color:var(--cream);border-color:var(--pine)}.primary:hover:not(:disabled){background:#2b5945}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:18px 0}.actions .primary{grid-column:1/-1;display:flex;justify-content:space-between}.moves-head{display:flex;align-items:center;justify-content:space-between;gap:5px}.moves-head h3{font:600 12px ui-monospace,monospace;margin:0}.text-button{background:transparent;border:0;font-size:11px;padding:7px 4px;text-decoration:underline;text-underline-offset:3px}.move-list{list-style:none;padding:0;margin:6px -6px;overflow-y:auto;max-height:170px;min-height:80px;font:13px/1.8 ui-monospace,monospace}.move-list li{display:grid;grid-template-columns:30px 1fr 1fr;padding:3px 8px}.move-list li:nth-child(odd){background:#ece8d9}.move-list .number{color:var(--muted);font-size:11px}.last-move{font-size:11px;color:var(--muted);padding-top:8px;border-top:1px solid var(--line);margin-top:10px}.panel-foot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:auto}.panel-foot span{font-size:9px;color:var(--muted)}.piece-key{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;font-size:10px;color:var(--muted);padding:18px 0 4px}.piece-key b{font:700 10px ui-monospace,monospace;color:var(--pine);margin-right:2px}.piece-key small{font-size:9px}footer{text-align:center;font-size:10px;line-height:1.7;padding:17px 16px 22px;color:var(--muted)}footer a{color:var(--pine);text-underline-offset:3px}.thinking{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.thinking>span{width:5px;height:5px;background:var(--copper);border-radius:50%;animation:pulse 1.3s infinite}.thinking>span:nth-child(2){animation-delay:.15s}.thinking>span:nth-child(3){animation-delay:.3s}.thinking p{font-size:11px!important;margin-left:3px!important}@keyframes pulse{50%{opacity:.3;transform:translateY(-3px)}}dialog{color:var(--ink);background:var(--cream);width:min(520px,calc(100% - 24px));padding:0;border:1px solid var(--line);border-radius:15px;max-height:calc(100dvh - 30px);box-shadow:0 24px 120px #08251b70}dialog::backdrop{background:#0b251dcc;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;padding:12px 18px;border-bottom:1px solid var(--line);background:var(--cream);z-index:1}.dialog-top .eyebrow{font-size:9px;margin:0}.dialog-top button{font-size:24px;background:transparent;width:44px;padding:0}#dialogContent{padding:22px;overflow:auto}#dialogContent h2{font:500 32px/1.1 Georgia,serif;margin:0 0 16px}#dialogContent p,#dialogContent li{font-size:14px;line-height:1.6}#dialogContent label{display:block;font-size:12px;font-weight:700;margin:18px 0 7px}#dialogContent select{width:100%;min-height:46px;border:1px solid var(--line);background:#ede8d5;color:var(--ink);padding:8px;border-radius:8px}#dialogContent .buttons{display:flex;gap:10px;margin-top:22px}#dialogContent .buttons>*{flex:1}#dialogContent .small{font-size:11px;color:var(--muted)}.promotion-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.promotion-options button{padding:4px;display:grid;gap:4px;font-size:11px}.promotion-options img{width:100%;height:80px;object-fit:contain}.download-link{display:block;color:var(--pine);margin:18px 0}.table-flash{animation:board-flash .25s}@keyframes board-flash{50%{outline:2px solid var(--copper)}}
@media(min-width:1500px){.table{max-width:720px}.move-list{max-height:260px}.game-panel{min-height:540px}}
@media(max-width:760px){.masthead{height:58px;padding:0 16px}.brand{font-size:13px}.brand span{font-size:8px;margin-left:10px}.header-controls{gap:5px}.quiet span{display:none}main{padding:18px 14px 12px}.page-heading{margin-bottom:14px}.page-heading h1{font-size:37px}.tagline{font-size:10px}.eyebrow{font-size:9px}.connection{font-size:11px;padding:8px 11px;margin-bottom:14px}.game-layout{grid-template-columns:1fr;gap:16px}.table{max-width:520px;min-width:0}.board-frame{padding:8px;border-radius:10px}.pack-line{font-size:9px;padding-bottom:7px}.board-hint{font-size:10px;margin-top:9px}.game-panel{min-height:0;padding:16px;border-radius:11px;display:grid;grid-template-columns:1fr 1fr;column-gap:14px}.turn-card{grid-column:1;min-height:0;border:0;padding:0}.turn-card h2{font-size:24px}.turn-card p{font-size:11px}.actions{grid-column:2;grid-row:1;margin:0;align-content:start;gap:6px}.actions button{font-size:11px;padding:8px;min-height:42px}.moves-head,.move-list,.last-move,.panel-foot{grid-column:1/-1}.moves-head{margin-top:12px;border-top:1px solid var(--line);padding-top:5px}.move-list{min-height:0;max-height:100px;font-size:12px}.move-list:empty:after{content:'Your first move starts the story.';display:block;padding:9px 8px;color:var(--muted);font:11px ui-sans-serif,sans-serif}.last-move{margin-bottom:0}.piece-key{gap:10px;padding:15px 0 0}footer{font-size:9px;padding-top:13px}.coord{font-size:8px;top:2px;left:3px}.role-badge{right:2px;bottom:2px;font-size:9px;padding:1px}.coord.file{left:3px;bottom:2px}}
@media(max-height:540px) and (min-width:761px){main{padding-top:12px}.page-heading{margin-bottom:10px}.page-heading h1{font-size:34px}.connection{margin-bottom:10px}.table{max-width:min(480px,calc(100dvh - 120px))}.game-layout{align-items:start}.game-panel{min-height:0}.move-list{max-height:80px}.board-hint,.piece-key{display:none}.turn-card{min-height:100px}.actions{margin:10px 0}.game-panel{padding:14px}}
.board-row{display:contents}
#app:fullscreen{overflow:auto;background:var(--paper)}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}
