:root{--bg:#000;--panel-2:#000;--panel:#0b0b0a;--border:#2b2925;--border-strong:#46413a;--text:#ece7da;--muted:#8b8574;--accent:#ffb000;--accent-dim:#cc8a00;--warn:#ff6a2b;--danger:#ff6b6b;--danger-soft:#ff9b9b;--font-pixel:"Press Start 2P", ui-monospace, monospace;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sidebar-width:380px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#app{height:100%}body{background:var(--panel);color:var(--text);font-family:var(--font-mono);-webkit-tap-highlight-color:transparent;margin:0;font-size:13px;line-height:1.5;overflow:hidden}button,input,select{font-family:var(--font-mono);color:var(--text);font-size:13px}:focus{outline:none}:focus-visible{outline:1px solid var(--accent);outline-offset:1px}h1,h2,h3{margin:0;font-weight:400}::-webkit-scrollbar{width:14px;height:14px}::-webkit-scrollbar-track{background:0 0;margin:8px 0}::-webkit-scrollbar-thumb{background:#3a362e padding-box padding-box;border:4px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#ffb00073 padding-box padding-box}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:#3a362e transparent}}.shell{flex-direction:column;height:100%;display:flex;overflow:hidden}.topbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:18px;padding:12px 16px;display:flex}.brand{align-items:baseline;gap:10px;display:flex}.brand h1{font-family:var(--font-pixel);letter-spacing:-.5px;color:var(--accent);text-shadow:0 0 14px #ffb00080;white-space:nowrap;font-size:15px}.brand .version{color:var(--muted);font-size:11px}.dateline{flex-wrap:wrap;align-items:center;gap:10px;min-width:0;display:flex}.dateline .date{color:var(--text);white-space:nowrap}.dateline .weekday{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px}.topbar .spacer{margin-left:auto}.nav{align-items:center;gap:6px;display:flex}.btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:8px;padding:7px 12px;transition:background .12s,border-color .12s,color .12s}.btn:hover:not(:disabled){border-color:var(--accent-dim)}.btn:disabled{color:#4a463e;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#000;font-weight:600}.btn.primary:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent-dim)}.btn.on{border-color:var(--accent);color:var(--accent);font-weight:700}.btn.ghost{color:var(--muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){color:var(--text);border-color:var(--border)}.icon-btn{background:var(--panel-2);width:30px;height:30px;color:var(--muted);border:1px solid var(--border);cursor:pointer;border-radius:6px;place-items:center;padding:0;transition:border-color .12s,color .12s;display:inline-grid}.icon-btn:hover:not(:disabled){color:var(--text);border-color:var(--accent-dim)}.icon-btn:disabled{color:#3c3830;cursor:not-allowed}.chip{background:var(--bg);border:1px solid var(--border);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:11px}.chip.on{border-color:var(--accent);color:var(--accent);font-weight:700}.body{flex:1;min-height:0;display:flex;overflow:hidden}.main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.stage{background:var(--bg);border:1px solid var(--border);border-radius:16px;flex:1;place-items:center;min-height:0;margin:12px;padding:16px;display:grid;overflow:auto}.resizer{cursor:col-resize;background:0 0;flex-shrink:0;place-items:center;width:9px;display:grid}.resizer:before{content:"";background:var(--border);border-radius:999px;width:3px;height:26px;transition:background .12s}.resizer:hover:before{background:var(--accent-dim)}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.resizing .board{pointer-events:none}.sidebar{width:var(--sidebar-width);scrollbar-gutter:stable;flex-shrink:0;padding:12px 14px 24px;overflow-y:auto}.board-wrap{width:min(100%,68vh,640px);container-type:inline-size}.board{aspect-ratio:1;border:2px solid var(--border-strong);background:var(--bg);grid-template-columns:repeat(9,1fr);width:100%;display:grid}.cell{background:var(--bg);cursor:pointer;color:var(--accent);font-family:var(--font-mono);font-variant-numeric:tabular-nums;border:0 solid var(--border);border-bottom-width:1px;border-right-width:1px;grid-template:1fr/1fr;place-items:center;min-width:0;margin:0;padding:1px 0 0 1px;font-size:5.4cqw;font-weight:500;line-height:1;transition:background .1s;display:grid;position:relative}.cell[data-col="2"],.cell[data-col="5"]{border-right-width:2px;border-right-color:var(--border-strong);padding-left:2px}.cell[data-row="2"],.cell[data-row="5"]{border-bottom-width:2px;border-bottom-color:var(--border-strong);padding-top:2px}.cell[data-col="8"]{border-right-width:0;padding-left:0}.cell[data-row="8"]{border-bottom-width:0;padding-top:0}.cell>.value,.cell>.notes{grid-area:1/1}.cell>.value{place-items:center;width:100%;height:100%;display:grid}.cell.given{color:var(--text);font-weight:700}.cell:hover:not(.selected){background:#ffb0000b}.cell.peer{background:#ffb0000d}.cell.same-digit{background:#ffb0001c}.cell.selected{box-shadow:inset 0 0 0 1px var(--accent);background:#ffb00029}.cell.conflict{color:var(--danger)}.cell.conflict:after{content:"";border-top:5px solid var(--danger);border-left:5px solid #0000;width:0;height:0;position:absolute;top:3px;right:3px}.cell.revealed{color:var(--warn)}.cell .notes{width:100%;height:100%;color:var(--muted);grid-template-columns:repeat(3,1fr);padding:7%;font-size:2.4cqw;font-weight:400;line-height:1;display:grid}.cell .notes span{place-items:center;display:grid}.cell .notes span.hi{color:var(--accent-dim)}.controlbar{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:10px;padding:0 16px 14px;display:flex}.keypad{flex-wrap:wrap;gap:6px;display:flex}.key{background:var(--panel-2);border:1px solid var(--border);width:44px;height:44px;color:var(--text);font-variant-numeric:tabular-nums;cursor:pointer;border-radius:8px;place-items:center;font-size:17px;transition:border-color .12s,color .12s,background .12s;display:grid;position:relative}.key:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent)}.key .left{color:var(--muted);font-size:9px;position:absolute;top:2px;right:4px}.key.exhausted{color:#4a463e}.key.exhausted .left{color:#3c3830}.tools{flex-wrap:wrap;gap:6px;display:flex}.stats{font-variant-numeric:tabular-nums;align-items:center;gap:14px;margin-left:auto;display:flex}.stats .stat{align-items:baseline;gap:6px;display:flex}.stats .label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:11px}.stats .clock{color:var(--accent);text-shadow:0 0 10px #ffb00059;font-size:16px}.stats .clock.paused{color:var(--muted);text-shadow:none}.panel{border-bottom:1px solid var(--border);padding:10px 0 14px}.panel:last-child{border-bottom:0}.panel-head{cursor:pointer;width:100%;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:4px 0;font-size:11px;display:flex}.panel-head:before{content:">";color:var(--accent);transition:transform .15s;display:inline-block}.panel.collapsed .panel-head:before{transform:rotate(90deg)}.panel.collapsed .panel-body{display:none}.panel-head:hover{color:var(--text)}.panel-body{padding-top:10px}.rows{gap:6px;display:grid}.row{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.row .k{color:var(--muted);font-size:12px}.row .v{font-variant-numeric:tabular-nums}.row .v.accent{color:var(--accent)}.note{color:var(--muted);font-size:12px;line-height:1.6}.note+.note{margin-top:8px}.note code{color:var(--accent-dim);font-size:11px}.dots{flex-wrap:wrap;gap:4px;margin-top:10px;display:flex}.dot{border:1px solid var(--border);width:16px;height:16px;color:var(--muted);border-radius:4px;place-items:center;font-size:9px;display:grid}.dot.done{border-color:var(--accent);color:var(--accent)}.dot.today{border-style:dashed;border-color:var(--accent-dim)}.cal-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.cal-month{color:var(--text);text-transform:uppercase;letter-spacing:.08em;font-size:12px}.cal{grid-template-columns:repeat(7,1fr);gap:3px;display:grid}.cal .dow{text-align:center;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding-bottom:2px;font-size:9px}.cal-day{aspect-ratio:1;background:var(--panel-2);color:var(--muted);font-variant-numeric:tabular-nums;cursor:pointer;border:1px solid #0000;border-radius:5px;place-items:center;padding:0;font-size:11px;transition:border-color .12s,color .12s,background .12s;display:grid}.cal-day:hover:not(:disabled){color:var(--text);background:#ffb0000f}.cal-day.blank{visibility:hidden}.cal-day.done{color:var(--accent)}.cal-day.done:after{content:"";position:absolute}.cal-day.today{border-color:var(--accent-dim);border-style:dashed}.cal-day.active{border-color:var(--accent);color:var(--accent);background:#ffb0001f;font-weight:700}.cal-day:disabled{color:#3c3830;cursor:not-allowed}.legend{color:var(--muted);gap:12px;margin-top:10px;font-size:10px;display:flex}.notice{border:1px solid var(--warn);color:#ffae85;background:#ff6a2b17;border-radius:6px;margin-top:10px;padding:8px 10px;font-size:12px;display:none}.notice.show{display:block}.backdrop{z-index:40;background:#020408a8;place-items:center;padding:20px;animation:.16s ease-out fade;display:grid;position:fixed;inset:0}.backdrop[hidden]{display:none}.modal{background:var(--panel);border:1px solid var(--border);border-radius:8px;width:min(460px,100%);max-height:86vh;padding:20px;animation:.19s cubic-bezier(.2,.8,.2,1) pop;overflow-y:auto;box-shadow:0 18px 60px #0000008c}.modal h3{font-family:var(--font-pixel);letter-spacing:-.5px;color:var(--accent);text-shadow:0 0 10px #ffb00066;margin-bottom:16px;font-size:12px}.modal .modal-foot{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.bignum{color:var(--accent);font-variant-numeric:tabular-nums;text-shadow:0 0 18px #ffb00066;font-size:34px;line-height:1.1}.summary{grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:12px;margin-top:16px;display:grid}.summary .cellstat .label{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:10px}.summary .cellstat .value{font-variant-numeric:tabular-nums;font-size:16px}.boot{z-index:90;background:var(--panel);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.boot-title{font-family:var(--font-pixel);letter-spacing:-.5px;color:var(--accent);opacity:0;font-size:20px}.shell.booted .boot-title{animation:.76s cubic-bezier(.2,.9,.2,1) forwards bootTitle}.shell.booted .boot{animation:.26s ease-out .6s forwards bootFade}.shell.booted .sidebar{animation:.38s cubic-bezier(.2,.9,.2,1) .52s both slideInRight}.shell.booted .controlbar{animation:.34s cubic-bezier(.2,.9,.2,1) .6s both riseUp}.shell.booted .brand h1{animation:3.6s ease-in-out .9s infinite alternate glowPulse}.shell.booting .body,.shell.booting .topbar{opacity:0}.shell.booted .body,.shell.booted .topbar{animation:.32s ease-out .56s both fade}@keyframes bootTitle{0%{opacity:0;transform:translateY(6px)scale(.98)}35%{opacity:1;text-shadow:0 0 14px #ffb00080;transform:none}70%{opacity:1;text-shadow:0 0 26px #ffb000bf}to{opacity:0;transform:translateY(-26px)scale(.62)}}@keyframes bootFade{to{opacity:0;visibility:hidden}}@keyframes glowPulse{0%{text-shadow:0 0 14px #ffb00073}to{text-shadow:0 0 20px #ffb000b3}}@keyframes slideInRight{0%{opacity:0;transform:translate(26px)}}@keyframes riseUp{0%{opacity:0;transform:translateY(14px)}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.97)}}@media (max-width:900px){body{overflow:clip auto}.shell.booted .sidebar{animation-name:riseUp}.shell{height:auto;min-height:100%;overflow:visible}.body{flex-direction:column;overflow:visible}.resizer{display:none}.sidebar{border-left:0;border-top:1px solid var(--border);width:auto;overflow:visible}.stage{margin:10px;padding:10px}.board-wrap{width:min(100%,520px)}.stats{justify-content:space-between;width:100%;margin-left:0}}@media (max-width:560px){.topbar{gap:10px;padding:10px 12px}.brand h1{font-size:13px}.controlbar{gap:8px;padding:0 10px 12px}.keypad{grid-template-columns:repeat(9,1fr);gap:4px;width:100%;display:grid}.key{width:100%;min-width:0;height:46px;font-size:15px}.tools{grid-template-columns:repeat(5,1fr);gap:4px;width:100%;display:grid}.tools .btn{min-height:44px;padding:10px 4px;font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation:none!important}.boot{display:none}.shell.booting .body,.shell.booting .topbar{opacity:1}.shell .sidebar,.shell .controlbar,.shell .body,.shell .topbar{opacity:1;transform:none}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
