:root{color-scheme:dark;--bg:#08090c;--panel:#101218;--line:#30343a;--text:#eee9dd;--muted:#a6a7a4;--red:#d15052;--gold:#d6ad6c;--green:#91b1a0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% -10%,#262126 0,transparent 42%),var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}button,a{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button:disabled{opacity:.42;cursor:not-allowed}.shell{width:min(1420px,calc(100% - 36px));margin:auto}.masthead{display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line);padding:22px 0;font:700 11px/1.3 Consolas,monospace;letter-spacing:.14em}.back{color:var(--muted);text-decoration:none}.back:hover{color:var(--text)}.signal{color:var(--gold)}.signal i{display:inline-block;width:6px;height:6px;background:var(--red);box-shadow:0 0 12px var(--red);margin-right:9px}.hero{display:flex;justify-content:space-between;align-items:end;gap:24px;padding:42px 0 32px}.eyebrow,.panel-index{color:var(--red);font:700 11px Consolas,monospace;letter-spacing:.18em}.hero h1{font:900 clamp(64px,11vw,156px)/.75 Arial,sans-serif;letter-spacing:-.09em;margin:22px 0 0}.hero h1 span{color:transparent;-webkit-text-stroke:2px var(--text)}.hero__aside{max-width:275px;border-left:2px solid var(--red);padding-left:18px}.hero__aside p:first-child{color:var(--gold);font:700 11px Consolas,monospace;letter-spacing:.12em}.hero__aside p:last-child{color:var(--muted);font:15px/1.5 Arial,sans-serif}.game{border:1px solid var(--line);background:#0d0f14}.hud{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--line)}.hud>div{min-width:0;padding:15px;border-right:1px solid var(--line)}.hud>div:last-child{border-right:0}.hud small{display:block;margin-bottom:7px;color:var(--muted);font:700 10px Consolas,monospace;letter-spacing:.1em}.hud strong{font:800 clamp(15px,2vw,23px) Arial,sans-serif}.play-area{display:grid;grid-template-columns:minmax(0,1fr) 315px}.board-wrap{position:relative;align-self:start;background:#101b1b;min-width:0}canvas{display:block;width:100%;height:auto;touch-action:manipulation}.board-caption{display:flex;justify-content:space-between;gap:10px;padding:12px 16px;border-top:1px solid var(--line);color:var(--muted);font:700 10px Consolas,monospace;letter-spacing:.08em}.board-caption span:first-child{color:var(--gold)}.board-overlay{position:absolute;inset:0 0 39px;display:grid;place-items:center;background:rgba(4,6,9,.78);backdrop-filter:blur(4px);padding:20px;text-align:center}.board-overlay[hidden]{display:none}.board-overlay>div{max-width:470px}.board-overlay span{color:var(--gold);font:700 11px Consolas,monospace;letter-spacing:.18em}.board-overlay h2{font:900 clamp(26px,4vw,58px)/.95 Arial,sans-serif;letter-spacing:-.06em;margin:20px 0}.board-overlay p{color:#d1cfca;line-height:1.6}.board-overlay button,.night-button{border:1px solid var(--red);background:var(--red);color:#100d10;font:800 13px Consolas,monospace;letter-spacing:.09em;padding:15px 18px}.board-overlay button:hover,.night-button:hover:not(:disabled){background:#f0706e}.controls{border-left:1px solid var(--line);padding:23px;display:flex;flex-direction:column}.controls h2{font:900 28px/.97 Arial,sans-serif;letter-spacing:-.05em;margin:10px 0}.hint{color:var(--muted);font-size:13px;line-height:1.5;min-height:58px}.build-options,.commands{display:grid;gap:8px}.build-options button,.commands button:not(.night-button){display:flex;flex-direction:column;gap:5px;text-align:left;border:1px solid var(--line);background:#171b20;color:var(--text);padding:11px 12px}.build-options button:hover,.commands button:hover:not(:disabled){border-color:var(--gold)}.build-options button[aria-pressed=true]{border-color:var(--gold);background:#30291e}.build-options b,.commands button{font:800 12px Consolas,monospace;letter-spacing:.05em}.build-options small,.commands small{color:var(--muted);font:11px Consolas,monospace}.commands{margin-top:20px}.night-button{margin-top:6px;display:flex;justify-content:space-between}.field-log{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}.field-log span{color:var(--red);font:700 10px Consolas,monospace;letter-spacing:.16em}.field-log p{font:12px/1.5 Consolas,monospace;color:#d0cec6;min-height:36px}.reset{align-self:start;border:0;background:none;color:var(--muted);padding:8px 0;text-decoration:underline;font:11px Consolas,monospace}footer{display:flex;justify-content:space-between;gap:20px;padding:25px 0 35px;color:#777e80;font:10px Consolas,monospace;letter-spacing:.08em}@media(max-width:980px){.play-area{grid-template-columns:1fr}.controls{border-left:0;border-top:1px solid var(--line)}.build-options{grid-template-columns:repeat(3,1fr)}.commands{grid-template-columns:repeat(3,1fr)}.night-button{margin:0}.hud{grid-template-columns:repeat(4,1fr)}.hud>div:nth-child(4){border-right:0}.hud>div:nth-child(n+5){border-top:1px solid var(--line)}}@media(max-width:620px){.shell{width:min(100% - 18px,1420px)}.masthead{font-size:9px}.hero{padding:25px 0;align-items:start;flex-direction:column}.hero h1{font-size:72px}.hero__aside{max-width:100%}.hud{grid-template-columns:repeat(4,1fr)}.hud>div{padding:10px 7px}.hud small{font-size:8px}.hud strong{font-size:15px}.board-caption{font-size:8px}.board-caption span:last-child{display:none}.board-overlay h2{font-size:30px}.board-overlay p{font-size:12px}.board-overlay button{padding:10px;font-size:11px}.controls{padding:17px}.build-options,.commands{grid-template-columns:1fr}.hint{min-height:0}footer{flex-direction:column}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.overlay-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}
.board-overlay #overlay-restart{background:transparent;color:var(--text);border-color:var(--line)}
.board-overlay #overlay-restart:hover{border-color:var(--gold);background:#1d1f23}
.field-log--banner{display:flex;align-items:center;gap:18px;margin:0;padding:12px 16px;min-height:48px;border-top:0;border-bottom:1px solid var(--line);background:#15171c}
.field-log--banner span{flex:none}
.field-log--banner p{margin:0;min-height:0}
.field-log--banner p{flex:1}
.field-log--banner strong{flex:none;color:var(--gold);font:700 11px Consolas,monospace;letter-spacing:.08em}
@media(max-width:620px){.field-log--banner{align-items:start;flex-direction:column;gap:5px;padding:10px 12px}}
.auto-begin{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:11px 12px;border:1px solid var(--line);background:#171b20;font:800 11px Consolas,monospace;letter-spacing:.05em}
.auto-begin[hidden]{display:none}
.auto-begin small{display:block;margin-top:4px;color:var(--muted);font:10px Consolas,monospace;letter-spacing:0}
.auto-begin input{appearance:none;flex:none;width:36px;height:21px;margin:0;border:1px solid #676d6d;border-radius:20px;background:#343a3c;position:relative;cursor:pointer}
.auto-begin input::after{content:"";position:absolute;top:3px;left:3px;width:13px;height:13px;border-radius:50%;background:var(--text);transition:transform .15s ease}
.auto-begin input:checked{border-color:var(--gold);background:#795e37}
.auto-begin input:checked::after{transform:translateX(15px)}
.auto-begin input:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.debug-trigger{margin-left:8px;border:0;background:none;color:#7e817f;font:20px/1 Consolas,monospace;vertical-align:middle;padding:2px 6px}
.debug-trigger:hover{color:var(--gold)}
.debug-dialog{width:min(520px,calc(100vw - 24px));max-height:min(92vh,780px);overflow:auto;padding:24px;border:1px solid var(--gold);background:#101318;color:var(--text);box-shadow:0 30px 90px #000;font-family:Arial,Helvetica,sans-serif}
.debug-dialog::backdrop{background:rgba(2,4,6,.82);backdrop-filter:blur(3px)}
.debug-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.debug-dialog__head p{color:var(--gold);font:700 11px Consolas,monospace;letter-spacing:.15em}
.debug-dialog__head button{border:0;background:none;color:var(--text);font:30px/1 Arial,sans-serif;padding:0 7px}
.debug-dialog h2{font:900 clamp(36px,7vw,58px)/.9 Arial,sans-serif;letter-spacing:-.06em;margin:12px 0 18px}
.debug-dialog__warning{color:#cbc9c2;font:13px/1.5 Arial,sans-serif;margin-bottom:22px}
.debug-actions{display:grid;gap:8px}
.debug-actions button,.debug-god{display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;border:1px solid var(--line);background:#1a1e22;color:var(--text);padding:12px;font:700 12px Consolas,monospace}
.debug-actions button:hover,.debug-god:hover{border-color:var(--gold)}
.debug-actions small,.debug-jump small,.debug-god small{display:block;margin-top:5px;color:var(--muted);font:10px Consolas,monospace}
.debug-god input{width:18px;height:18px;accent-color:var(--red)}
.debug-jump{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}
.debug-jump label{font:700 11px Consolas,monospace}
.debug-jump>div{display:flex;gap:8px;margin-top:10px}
.debug-jump input{width:95px;min-width:0;border:1px solid var(--line);background:#090d11;color:var(--text);padding:11px;font:700 16px Consolas,monospace}
.debug-jump button{border:1px solid var(--red);background:var(--red);color:#100d10;padding:10px 15px;font:800 12px Consolas,monospace}
.debug-feedback{color:var(--gold);font:11px/1.5 Consolas,monospace;margin:18px 0 0}
@media(max-width:620px){.debug-dialog{padding:18px}.debug-actions button{display:block}.debug-actions small{margin-top:7px}}
.event-banner{position:absolute;z-index:3;top:7%;left:50%;width:min(84%,490px);padding:18px 22px;transform:translateX(-50%);border:2px solid #e68f71;background:rgba(24,10,13,.94);box-shadow:0 0 0 999px rgba(43,8,12,.1),0 0 38px rgba(235,92,75,.48);text-align:center;pointer-events:none;animation:event-appear .35s ease-out,event-glow 1.1s ease-in-out 2}
.event-banner[hidden]{display:none}
.event-banner[data-tone=good]{border-color:#9bd9ac;background:rgba(9,28,23,.95);box-shadow:0 0 0 999px rgba(6,38,26,.08),0 0 38px rgba(98,246,180,.32)}
.event-banner span{display:block;color:var(--gold);font:700 10px Consolas,monospace;letter-spacing:.2em}
.event-banner strong{display:block;margin:6px 0;font:900 clamp(22px,3vw,38px)/1 Arial,sans-serif;letter-spacing:-.05em}
.event-banner p{margin:0;color:#e8e4db;font:12px/1.4 Consolas,monospace}
@keyframes event-appear{from{opacity:0;transform:translate(-50%,-18px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes event-glow{50%{filter:brightness(1.3)}}
.event-guide{margin-top:13px;border:1px solid var(--line);background:#13171a;color:#d1d0c7;font:11px/1.55 Consolas,monospace}
.event-guide summary{padding:12px;cursor:pointer;color:var(--gold);font-weight:700;letter-spacing:.06em;list-style:none}
.event-guide summary::-webkit-details-marker{display:none}
.event-guide summary span{float:right}
.event-guide p{padding:0 12px;margin:4px 0 10px}
.event-guide ul{margin:0;padding:0 12px 14px 29px}
.event-guide li+li{margin-top:6px}
.event-guide b{color:var(--text)}
.debug-jump select{min-width:0;flex:1;border:1px solid var(--line);background:#090d11;color:var(--text);padding:11px;font:700 12px Consolas,monospace}
@media(max-width:620px){.event-banner{top:5%;padding:10px 12px}.event-banner strong{font-size:19px}.event-banner p{font-size:10px}}
@media(prefers-reduced-motion:reduce){.event-banner{animation:none}}
.saves-panel{margin-top:18px;padding:15px;border:1px solid var(--line);background:#14191c}
.saves-panel h3{margin:9px 0;font:900 20px/1 Arial,sans-serif;letter-spacing:-.04em}
.saves-panel>p:not(.panel-index){color:var(--muted);font:11px/1.5 Consolas,monospace}
.save-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-top:14px}
.save-actions button,.save-dialog button{min-width:0;padding:10px;border:1px solid var(--gold);background:#27271f;color:var(--text);font:800 10px Consolas,monospace;letter-spacing:.03em}
.save-actions button:hover,.save-dialog button:hover{background:#423924}
#save-status{min-height:32px;margin-bottom:0}
.save-dialog{width:min(510px,calc(100vw - 24px));padding:24px;border:1px solid var(--gold);background:#101318;color:var(--text);box-shadow:0 30px 90px #000}
.save-dialog::backdrop{background:rgba(2,4,6,.8)}
.save-dialog h2{font:900 27px/1 Arial,sans-serif;margin:0 0 16px}
.save-dialog p{white-space:pre-line;color:#d1d0c7;font:12px/1.6 Consolas,monospace}
#save-dialog-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
#save-code-label{display:block;margin:16px 0 7px;color:var(--gold);font:700 10px Consolas,monospace;letter-spacing:.12em}
#save-code{box-sizing:border-box;width:100%;resize:vertical;border:1px solid var(--line);background:#090d11;color:var(--text);padding:11px;font:11px/1.45 Consolas,monospace;overflow-wrap:anywhere}
#save-code-label[hidden],#save-code[hidden]{display:none}
