@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&family=JetBrains+Mono:wght@500;700&display=swap";:root{--bg-0: #f5efe2;--bg-1: #fdf8ed;--ink-0: #0f172a;--ink-1: #1e293b;--ink-soft: #334155;--panel: rgba(255, 255, 255, .78);--panel-edge: rgba(15, 23, 42, .12);--shadow: 0 20px 60px rgba(15, 23, 42, .12);--cell-empty: #fffdf7;--cell-border: #d7d0c1;--blocked-a: #cbd5e1;--blocked-b: #94a3b8;--ok: #16a34a;--warn: #ea580c;--bad: #dc2626}*{box-sizing:border-box}body{margin:0;min-height:100vh;overflow-x:hidden;font-family:Space Grotesk,sans-serif;color:var(--ink-0);background:radial-gradient(circle at 10% 20%,#fef3c7 0,transparent 45%),radial-gradient(circle at 80% 8%,#bae6fd 0,transparent 35%),linear-gradient(140deg,var(--bg-0),var(--bg-1))}.app-shell{max-width:1420px;margin:0 auto;padding:24px clamp(16px,3vw,32px) 32px}.hidden-view{display:none}.mode-switch{display:inline-grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:12px;margin-bottom:0;padding:6px;border-radius:12px;background:#0f172a1a;border:1px solid rgba(15,23,42,.15)}.mode-btn{border:0;border-radius:10px;min-height:36px;padding:0 14px;font-weight:700;cursor:pointer;background:#ffffffb3;color:#0f172a}.mode-btn.is-active{background:#0f172a;color:#f8fafc}.topbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.eyebrow{margin:0;letter-spacing:.2em;font-weight:700;font-size:.72rem;color:#7c2d12}h1{margin:2px 0 8px;font-size:clamp(1.6rem,2.6vw,2.4rem);line-height:1.05}.subtitle{margin:0;max-width:640px;color:var(--ink-soft);font-size:.95rem}.topbar-actions{display:grid;gap:8px;min-width:0}.control-label{font-size:.8rem;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft)}.control-input,.btn,.json-editor{font-family:inherit}.control-input{border:1px solid var(--panel-edge);border-radius:12px;padding:10px 12px;font-size:.92rem;background:#fff;color:var(--ink-1)}.layout{display:grid;gap:18px;grid-template-columns:minmax(240px,300px) minmax(360px,1fr) minmax(320px,380px)}.panel,.board-stage{background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--panel-edge);border-radius:18px;box-shadow:var(--shadow)}.panel{padding:16px}.panel h2{margin:0 0 8px;font-size:1.1rem}.panel-left{animation:slide-in-left .42s ease-out both}.panel-right{animation:slide-in-right .42s ease-out both}.board-stage{padding:clamp(12px,2vw,20px);display:grid;place-items:center;min-height:560px;animation:fade-rise .42s ease-out both}.board{width:min(74vmin,760px);display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:8px;touch-action:none;-webkit-user-select:none;user-select:none}.cell{border:1px solid var(--cell-border);background:var(--cell-empty);border-radius:12px;min-height:50px;aspect-ratio:1;font-family:JetBrains Mono,monospace;font-size:clamp(.92rem,1.4vw,1.12rem);font-weight:700;color:#0b1220;transition:transform .12s ease,border-color .12s ease,background .12s ease}.cell:focus-visible{outline:2px solid #2563eb;outline-offset:1px}.cell.is-filled{background:color-mix(in srgb,var(--owner-color) 25%,#fffdf7);border-color:color-mix(in srgb,var(--owner-color) 62%,#1f2937)}.cell.is-anchor{background:color-mix(in srgb,var(--owner-color) 40%,#fff);border-color:color-mix(in srgb,var(--owner-color) 80%,#111827);box-shadow:inset 0 0 0 1px #0f172a42}.cell.is-blocked{border-style:dashed;border-color:#94a3b8;background:repeating-linear-gradient(-45deg,var(--blocked-a),var(--blocked-a) 6px,var(--blocked-b) 6px,var(--blocked-b) 12px)}.status-chip{display:inline-flex;align-items:center;justify-content:center;min-height:34px;border-radius:999px;padding:0 12px;background:#e2e8f0;font-weight:700;color:#1f2937}.status-chip[data-state=done]{background:#dcfce7;color:#166534}#progressText{margin:4px 0 8px;color:var(--ink-soft)}.clue-list{margin:12px 0 0;padding:0;list-style:none;display:grid;gap:8px}.clue-item{display:grid;grid-template-columns:auto auto 1fr;gap:8px;align-items:center;border:1px solid rgba(148,163,184,.45);border-radius:12px;padding:8px 10px;background:#fffc}.clue-item.is-complete{border-color:#16a34a8c}.clue-chip{display:inline-grid;place-items:center;min-width:28px;height:28px;border-radius:8px;font-weight:700;color:#0f172a;background:color-mix(in srgb,var(--clue-color) 42%,#fff);border:1px solid color-mix(in srgb,var(--clue-color) 70%,#0f172a)}.clue-value{font-family:JetBrains Mono,monospace;font-weight:700}.clue-progress{justify-self:end;color:#334155;font-size:.9rem}.instructions{margin-top:14px;padding:12px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#fffc}.instructions h3{margin:0 0 8px;font-size:.96rem}.instructions p{margin:0 0 6px;color:#334155;font-size:.92rem}.small-copy{margin:0 0 8px;color:#475569;font-size:.9rem}.json-editor{width:100%;min-height:320px;border:1px solid rgba(148,163,184,.55);border-radius:12px;padding:12px;font-family:JetBrains Mono,monospace;font-size:.83rem;background:#fff;color:#0f172a;resize:vertical}.json-actions{margin-top:10px;display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.btn{border:0;border-radius:10px;min-height:40px;padding:0 12px;background:#0f172a;color:#f8fafc;font-weight:700;cursor:pointer;transition:transform .1s ease,opacity .1s ease}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn.btn-muted{background:#1d4ed8}.btn.btn-ghost{background:#e2e8f0;color:#0f172a}.validation-output{margin:10px 0 0;border-radius:12px;border:1px solid rgba(148,163,184,.4);background:#f8fafce6;min-height:130px;padding:12px;white-space:pre-wrap;font-family:JetBrains Mono,monospace;font-size:.78rem;line-height:1.35}.validation-output[data-status=solvable]{border-color:color-mix(in srgb,var(--ok) 50%,#bbf7d0);background:#f0fdf4}.validation-output[data-status=impossible]{border-color:color-mix(in srgb,var(--warn) 55%,#fed7aa);background:#fff7ed}.validation-output[data-status=invalid]{border-color:color-mix(in srgb,var(--bad) 65%,#fecaca);background:#fef2f2}.validation-output[data-status=indeterminate]{border-color:color-mix(in srgb,#f59e0b 55%,#fef9c3);background:#fffbeb}.genius-topbar{margin-bottom:14px}.genius-actions{grid-template-columns:auto;justify-items:end;margin-left:auto}.language-switch{display:block}.language-select{width:58px;min-width:58px;min-height:38px;padding:0 8px;text-align:center;font-size:1.08rem}.timer-pill{border:1px solid rgba(15,23,42,.16);border-radius:10px;padding:8px 10px;background:#ffffffe0;display:grid;min-width:0;line-height:1.1;gap:2px}.timer-pill span{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#475569}.timer-pill strong{font-family:JetBrains Mono,monospace}.genius-layout{display:grid;gap:18px;grid-template-columns:1fr}.genius-board-panel{display:grid;justify-items:center;align-content:start;gap:10px}.genius-board-panel h2,.genius-side-panel h2{justify-self:start;margin:0}.genius-instructions{width:100%;display:grid;gap:4px;margin:0;min-height:30px;font-size:.9rem;line-height:1.35;color:#334155}.genius-instructions p{margin:0}.genius-board-shell{position:relative;width:min(100%,430px);max-width:100%;margin-inline:auto}.genius-board{width:100%;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px;-webkit-user-select:none;user-select:none;touch-action:pan-y}.genius-stars-board{display:block;grid-template-columns:none;gap:0;width:100%;-webkit-user-select:none;user-select:none;touch-action:none}.genius-stars-board-svg{width:100%;height:auto;display:block}.genius-start-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:14px;border-radius:14px;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:8;transition:opacity .18s ease}.genius-start-overlay.is-hidden{opacity:0;pointer-events:none}.genius-finish-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:14px;border-radius:14px;background:#0f172a8f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:24;transition:opacity .18s ease}.genius-finish-overlay.is-hidden{opacity:0;pointer-events:none}.genius-start-card{width:min(92%,270px);display:grid;gap:10px;padding:14px;border-radius:14px;background:#ffffffeb;border:1px solid rgba(15,23,42,.15);box-shadow:0 14px 30px #0f172a38}.genius-finish-card{width:min(94%,360px);display:grid;gap:12px;padding:16px;border-radius:14px;background:#fffffff5;border:1px solid rgba(15,23,42,.15);box-shadow:0 14px 30px #0f172a47}.genius-start-text{margin:0;text-align:center;font-family:JetBrains Mono,monospace;font-size:1.3rem;font-weight:700;color:#0f172a}.genius-finish-title{margin:0;text-align:center;font-size:1.24rem;line-height:1.2}.genius-finish-time{margin:0;text-align:center;font-family:JetBrains Mono,monospace;font-size:1.05rem;font-weight:700;color:#0f172a}.genius-finish-save-section{display:grid;gap:8px}.genius-finish-save-section.is-hidden{display:none}.genius-next-countdown{margin:0;text-align:center;font-family:JetBrains Mono,monospace;font-size:.84rem;color:#334155}.genius-ranking-section{display:grid;gap:8px;border:1px solid rgba(148,163,184,.45);border-radius:12px;padding:10px;background:#f8fafcdb}.genius-ranking-title{margin:0;font-size:.9rem;color:#0f172a}.genius-ranking-label{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:#475569}.genius-ranking-controls{display:grid;gap:8px;grid-template-columns:1fr auto}.genius-ranking-input{width:100%;border:1px solid rgba(148,163,184,.65);border-radius:10px;min-height:40px;padding:0 10px;font-size:.94rem;color:#0f172a;background:#fff}.genius-ranking-status{margin:0;min-height:19px;font-size:.82rem;color:#334155}.genius-ranking-status[data-state=success]{color:#166534;font-weight:700}.genius-ranking-status[data-state=error]{color:#b91c1c;font-weight:700}.genius-ranking-list{margin:0;padding:0;list-style:none;display:grid;gap:6px;max-height:190px;overflow:auto}.genius-ranking-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;border:1px solid rgba(148,163,184,.42);border-radius:9px;padding:7px 9px;background:#ffffffe6}.genius-ranking-item.is-highlighted{border-color:#16a34a8c;background:#dcfce7cc}.genius-ranking-item.is-empty{justify-content:center;grid-template-columns:1fr;color:#64748b}.genius-ranking-item.is-locked{border-style:dashed;background:#f8fafceb;color:#475569;text-align:center}.genius-ranking-position,.genius-ranking-time{font-family:JetBrains Mono,monospace;font-weight:700}.genius-ranking-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.g-cell{border:1px solid #c9c1b1;border-radius:10px;min-height:clamp(36px,8.8vw,54px);aspect-ratio:1;background:#fffdf7;transition:border-color .12s ease,transform .12s ease;touch-action:none}.g-cell.is-blocked{border-style:dashed;border-color:#7f8ea5;background:repeating-linear-gradient(-45deg,#d6deea,#d6deea 6px,#94a3b8 6px 12px)}.g-cell.is-idle-barrier{border-style:dashed;border-color:#475569cc;background:repeating-linear-gradient(-45deg,#bfdbfeeb,#bfdbfeeb 6px,#64748bdb 6px 12px);animation:idle-barrier-pulse .52s ease-in-out infinite alternate}.g-cell.is-occupied{background:color-mix(in srgb,var(--piece-color) 34%,#fffdf7);border-color:color-mix(in srgb,var(--piece-color) 70%,#0f172a)}.g-cell.is-draw-valid{outline:2px solid #16a34a;outline-offset:-2px}.g-cell.is-draw-invalid{outline:2px solid #dc2626;outline-offset:-2px}.g-star-cell{fill:#fffdf7;stroke:#c9c1b1;stroke-width:1.2;vector-effect:non-scaling-stroke;transition:fill .12s ease,stroke .12s ease,opacity .12s ease}.g-star-cell.is-blocked{fill:#cbd5e1;stroke:#7f8ea5;stroke-dasharray:3 2}.g-star-cell.is-idle-barrier{fill:#bfdbfeeb;stroke:#475569cc;stroke-dasharray:3 2;animation:idle-star-barrier-pulse .86s ease-in-out infinite alternate}.g-star-cell.is-idle-veil{fill:#e2e8f0eb;stroke:#94a3b8e6;stroke-dasharray:2.5 2.5;opacity:.86}.g-star-cell.is-occupied{fill:color-mix(in srgb,var(--piece-color) 36%,#fffdf7);stroke:color-mix(in srgb,var(--piece-color) 72%,#0f172a)}.g-star-cell.is-draw-valid{stroke:#16a34a;stroke-width:2.2}.g-star-cell.is-draw-invalid{stroke:#dc2626;stroke-width:2.2}.genius-side-panel{display:grid;align-content:start;gap:10px;min-height:0}.genius-side-panel .genius-ranking-section{margin-top:8px}.genius-pieces-section{display:grid;gap:10px}.genius-pieces-section.is-hidden,.genius-ranking-section.is-hidden{display:none}.genius-pieces{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;overflow:visible;padding:2px 0;min-height:0;min-width:0;align-content:stretch;touch-action:auto}.piece-item{border:1px solid rgba(15,23,42,.18);border-radius:12px;background:#ffffffeb;min-height:72px;display:grid;grid-template-columns:1fr;justify-items:center;gap:4px;align-items:center;padding:10px}.pieces-empty{margin:0;padding:10px 12px;border:1px dashed rgba(15,23,42,.24);border-radius:10px;background:#ffffffd9;color:#475569;font-size:.9rem;grid-column:1 / -1}.piece-mini{display:grid;grid-template-columns:repeat(var(--mini-cols),15px);grid-auto-rows:15px;gap:3px;width:max-content;height:max-content;align-content:start;justify-content:start;align-self:center}.piece-mini-cell{width:15px;height:15px;border-radius:3px;background:#e2e8f0}.piece-mini-cell.is-filled{background:color-mix(in srgb,var(--piece-color) 82%,#0f172a)}.piece-mini-svg{width:100%;max-width:90px;height:auto}.piece-mini-triangle{fill:color-mix(in srgb,var(--piece-color) 82%,#0f172a);stroke:#0f172a47;stroke-width:.8;vector-effect:non-scaling-stroke}@keyframes fade-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}@keyframes idle-barrier-pulse{0%{opacity:.55;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes idle-star-barrier-pulse{0%{opacity:.58}to{opacity:1}}@media(max-width:1200px){.layout{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}.panel-right{grid-column:1 / -1}.json-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:860px){.app-shell{padding:16px 10px 24px}.topbar{flex-direction:column}.topbar-actions{width:100%;grid-template-columns:1fr 1fr;align-items:end}.genius-actions{grid-template-columns:1fr;justify-items:end}.language-switch{width:auto;position:fixed;top:calc(env(safe-area-inset-top,0px) + 12px);right:calc(env(safe-area-inset-right,0px) + 12px);z-index:120}.layout{grid-template-columns:1fr}.board-stage{min-height:0}.board{width:min(92vw,580px);gap:6px}.json-actions,.genius-layout{grid-template-columns:1fr}.genius-board{width:100%}.genius-board-shell{width:100%;max-width:430px}.genius-pieces{grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;padding:2px 0;touch-action:auto}.genius-finish-card{width:min(96%,380px)}.genius-ranking-controls{grid-template-columns:1fr}.piece-item{grid-template-columns:1fr;gap:4px;padding:10px 8px}}@media(min-width:1100px){.genius-pieces{grid-template-columns:repeat(3,minmax(0,1fr))}}
