:root{--surface-base: #e9e1cc;--surface-raised: #f6f1e3;--surface-paper: #fffdf4;--surface-ink: #262521;--surface-ink-raised: #33312b;--text-primary: #2b2a24;--text-muted: #716b5a;--text-on-ink: #f0ead7;--text-on-ink-muted: #b5ad95;--accent-stamp: #b23a2f;--accent-data: #2e5d8a;--accent-success: #3f6f4f;--accent-warning: #9a6b1f;--border-subtle: #cdc3a5;--border-strong: #a89c79;--radius-sm: 3px;--radius-md: 6px;--shadow-panel: 0 1px 3px rgba(43, 42, 36, .18), 0 4px 14px rgba(43, 42, 36, .08);--shadow-modal: 0 8px 40px rgba(30, 28, 22, .45);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--font-sans: "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "Consolas", "Courier New", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:repeating-linear-gradient(0deg,transparent 0 34px,rgba(43,42,36,.025) 34px 35px),var(--surface-base);color:var(--text-primary);font-family:var(--font-sans);font-size:15px;line-height:1.45}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;background:url(/art/impossible-hall.webp) center / cover no-repeat;opacity:.15;pointer-events:none}#root{min-height:100vh;display:flex;flex-direction:column}button{font-family:inherit}a{color:var(--accent-data)}:focus-visible{outline:2px solid var(--accent-data);outline-offset:2px}.app-header{background:var(--surface-ink);color:var(--text-on-ink);border-bottom:3px solid var(--accent-stamp);padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.brand{min-width:220px}.brand-title{font-size:19px;font-weight:700;letter-spacing:.04em;margin:0}.brand-title .badge-version{font-size:11px;font-family:var(--font-mono);color:var(--text-on-ink-muted);border:1px solid var(--text-on-ink-muted);border-radius:var(--radius-sm);padding:0 5px;margin-left:8px;vertical-align:2px}.brand-sub{margin:0;font-size:11.5px;font-family:var(--font-mono);color:var(--text-on-ink-muted);text-transform:uppercase;letter-spacing:.1em}.hud{display:flex;gap:var(--space-4);align-items:stretch;flex-wrap:wrap;margin-left:auto}.hud-stat{background:var(--surface-ink-raised);border:1px solid #4a473e;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);min-width:130px}.hud-stat-label{font-size:10.5px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;color:var(--text-on-ink-muted)}.hud-stat-value{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.hud-stat-sub{font-size:11.5px;color:var(--text-on-ink-muted);font-variant-numeric:tabular-nums}.app-main{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:var(--space-5);display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:var(--space-5);align-items:start}.workspace,.sidebar{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}@media(max-width:980px){.app-main{grid-template-columns:1fr}}.panel{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-panel)}.panel-header{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle)}.panel-title{margin:0;font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.panel-note{font-size:11px;font-family:var(--font-mono);color:var(--text-muted)}.panel-body{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.panel-empty{color:var(--text-muted);font-style:italic;font-size:13.5px}.form-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--text-muted);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:1px 6px;white-space:nowrap}.primary-card{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.primary-button{background:var(--accent-stamp);color:#fff8ee;border:none;border-bottom:3px solid #7e241d;border-radius:var(--radius-md);font-size:17px;font-weight:700;letter-spacing:.03em;padding:var(--space-4) var(--space-6);cursor:pointer}.primary-button:hover{background:#c04338}.primary-button:active{transform:translateY(1px);border-bottom-width:2px}.primary-caption{flex:1;min-width:200px;color:var(--text-muted);font-size:13px;margin:0}.primary-gain{font-family:var(--font-mono);font-size:12px;color:var(--accent-success);white-space:nowrap}.exhibit-photo{margin:0;flex-shrink:0;background:var(--surface-paper);border:1px solid var(--border-strong);box-shadow:var(--shadow-panel);padding:var(--space-2) var(--space-2) var(--space-1);transform:rotate(1.6deg)}.exhibit-photo img{display:block;width:168px;height:96px;object-fit:cover}.exhibit-photo figcaption{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;color:var(--text-muted);padding-top:var(--space-1);text-align:center}@media(max-width:760px){.exhibit-photo{display:none}}.desk-card{background:var(--surface-paper);border:1px solid var(--border-subtle);border-left:4px solid var(--accent-data);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.desk-card.amplifier{border-left-color:var(--accent-success)}.desk-head{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.desk-name{margin:0;font-size:15px;font-weight:700}.desk-flavor{margin:0;font-size:12px;font-style:italic;color:var(--text-muted)}.desk-desc{margin:0;font-size:12.5px;color:var(--text-muted)}.alloc-row{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.alloc-value{font-family:var(--font-mono);font-size:16px;font-weight:700;min-width:52px;text-align:center;font-variant-numeric:tabular-nums}.stepper{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-family:var(--font-mono);font-size:13px;font-weight:700;cursor:pointer;color:var(--text-primary)}.stepper:hover:not(:disabled){background:var(--surface-paper);border-color:var(--accent-data)}.stepper:disabled{opacity:.4;cursor:not-allowed}.desk-output{display:flex;gap:var(--space-4);font-size:13px;font-variant-numeric:tabular-nums;flex-wrap:wrap}.desk-output strong{color:var(--accent-data)}.desk-card.amplifier .desk-output strong{color:var(--accent-success)}.desk-output .next-hint{color:var(--text-muted);font-size:12px}.focus-summary{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;font-size:13px}.focus-summary .focus-count{font-family:var(--font-mono);font-weight:700;font-size:15px}.reclaim-button{margin-left:auto;background:transparent;border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);font-size:12px;cursor:pointer;color:var(--text-primary)}.reclaim-button:hover{border-color:var(--accent-stamp);color:var(--accent-stamp)}.upgrade-card{background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4);display:flex;flex-direction:column;gap:var(--space-2)}.upgrade-head{display:flex;align-items:baseline;gap:var(--space-2);flex-wrap:wrap}.upgrade-name{margin:0;font-size:14px;font-weight:700}.upgrade-flavor{margin:0;font-size:12px;color:var(--text-muted)}.upgrade-foot{display:flex;align-items:center;gap:var(--space-3)}.upgrade-cost{font-family:var(--font-mono);font-size:12.5px;font-variant-numeric:tabular-nums}.upgrade-buy{margin-left:auto;background:var(--surface-ink);color:var(--text-on-ink);border:none;border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:12px;font-weight:600;cursor:pointer}.upgrade-buy:hover:not(:disabled){background:var(--surface-ink-raised)}.upgrade-buy:disabled{opacity:.45;cursor:not-allowed}.stamp-approved{margin-left:auto;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--accent-stamp);border:2px solid var(--accent-stamp);border-radius:var(--radius-sm);padding:1px 8px;transform:rotate(-3deg)}.memo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2);max-height:220px;overflow-y:auto}.memo-item{font-family:var(--font-mono);font-size:12px;padding:var(--space-2) var(--space-3);background:var(--surface-paper);border-left:3px solid var(--border-strong)}.memo-item.memo{border-left-color:var(--accent-stamp)}.memo-item.warn{border-left-color:var(--accent-warning)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1e1c168c;display:flex;align-items:center;justify-content:center;padding:var(--space-5);z-index:50}.modal{background:var(--surface-paper);border:1px solid var(--border-strong);border-top:6px solid var(--accent-stamp);border-radius:var(--radius-md);box-shadow:var(--shadow-modal);max-width:440px;width:100%;padding:var(--space-5)}.modal h2{margin:0 0 var(--space-3);font-family:var(--font-mono);font-size:16px;letter-spacing:.12em}.modal dl{margin:0 0 var(--space-3);display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-4);font-size:13.5px}.modal dt{color:var(--text-muted)}.modal dd{margin:0;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right}.modal .modal-note{font-size:12px;color:var(--text-muted);margin:0 0 var(--space-4)}.modal-dismiss{width:100%;background:var(--surface-ink);color:var(--text-on-ink);border:none;border-radius:var(--radius-sm);padding:var(--space-3);font-size:14px;font-weight:600;cursor:pointer}.app-footer{border-top:1px solid var(--border-subtle);padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap;font-size:12px;color:var(--text-muted)}.app-footer .footer-version{font-family:var(--font-mono)}.save-warning{color:var(--accent-warning);font-weight:600}.privacy-page{max-width:640px;margin:0 auto;padding:var(--space-6) var(--space-5)}.privacy-page h1{font-size:20px}.privacy-lead{font-size:16px;font-weight:700}.debug-panel{position:fixed;bottom:var(--space-3);right:var(--space-3);background:var(--surface-ink);color:var(--text-on-ink);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:11px;font-family:var(--font-mono);display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;opacity:.85;z-index:60}.debug-panel button{background:var(--surface-ink-raised);color:var(--text-on-ink);border:1px solid #4a473e;border-radius:var(--radius-sm);font-size:11px;padding:2px 6px;cursor:pointer}.app-main.with-cases{grid-template-columns:260px minmax(0,1fr) 340px}@media(max-width:1180px){.app-main.with-cases{grid-template-columns:220px minmax(0,1fr)}.app-main.with-cases .sidebar{grid-column:1 / -1}}@media(max-width:860px){.app-main.with-cases{grid-template-columns:1fr}}.cases-column{display:flex;flex-direction:column;gap:var(--space-5);min-width:0}.case-link{display:flex;flex-direction:column;gap:var(--space-1);background:var(--surface-paper);border:1px solid var(--border-subtle);border-left:4px solid var(--accent-warning);border-radius:var(--radius-sm);padding:var(--space-3);text-decoration:none;color:var(--text-primary)}.case-link:hover{border-left-color:var(--accent-stamp)}.case-link.submitted{border-left-color:var(--accent-success);opacity:.85}.case-link-title{font-weight:700;font-size:13px}.case-status-stamp{align-self:flex-start;font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:.14em;padding:0 6px;border:1.5px solid var(--accent-warning);border-radius:var(--radius-sm);color:var(--accent-warning)}.case-status-stamp.active{border-color:var(--accent-stamp);color:var(--accent-stamp)}.case-status-stamp.submitted{border-color:var(--accent-success);color:var(--accent-success)}.case-view .case-summary{margin:0;font-size:13.5px;color:var(--text-muted)}.case-objective{background:var(--surface-paper);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-3)}.case-objective p{margin:var(--space-1) 0 0;font-size:13.5px}.case-section-title{margin:var(--space-2) 0 0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted)}.document-card{background:var(--surface-paper);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin-bottom:var(--space-2)}.document-card summary{cursor:pointer;padding:var(--space-2) var(--space-3);font-family:var(--font-mono);font-size:11.5px;font-weight:700;letter-spacing:.08em}.document-body{margin:0;padding:var(--space-3) var(--space-4) var(--space-4);font-family:var(--font-mono);font-size:12.5px;line-height:1.55;white-space:pre-wrap;border-top:1px dashed var(--border-subtle)}.evidence-board{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-3)}.evidence-card{background:var(--surface-paper);border:1px solid var(--border-subtle);border-top:3px solid var(--accent-data);border-radius:var(--radius-sm);padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.evidence-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.evidence-title{margin:0;font-size:13px;font-weight:700}.evidence-body{margin:0;font-size:12.5px}.evidence-source{margin:0;font-size:11px;font-style:italic;color:var(--text-muted)}.reliability-stamp{font-family:var(--font-mono);font-size:9.5px;font-weight:700;letter-spacing:.12em;padding:0 5px;border-radius:var(--radius-sm);border:1.5px solid var(--text-muted);color:var(--text-muted);white-space:nowrap}.reliability-stamp.weak{border-color:var(--accent-warning);color:var(--accent-warning)}.reliability-stamp.mixed{border-color:var(--accent-data);color:var(--accent-data)}.reliability-stamp.strong{border-color:var(--accent-success);color:var(--accent-success)}.challenge-card{background:var(--surface-paper);border:1px solid var(--border-strong);border-left:4px solid var(--accent-stamp);border-radius:var(--radius-sm);padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-2)}.challenge-card.resolved{border-left-color:var(--border-strong)}.challenge-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.challenge-title{margin:0;font-size:14px}.challenge-prompt{margin:0;font-size:13.5px}.challenge-options{display:flex;flex-direction:column;gap:var(--space-2)}.challenge-option{text-align:left;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3);font-size:13px;cursor:pointer;color:var(--text-primary)}.challenge-option:hover{border-color:var(--accent-data);background:var(--surface-paper)}.challenge-numeric{display:flex;gap:var(--space-2);align-items:center}.challenge-numeric input{font-family:var(--font-mono);font-size:14px;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-raised);width:160px}.challenge-retry-note{margin:0;font-size:12px;color:var(--accent-warning);font-weight:600}.outcome-stamp{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.14em;padding:1px 7px;border-radius:var(--radius-sm);transform:rotate(-2deg);white-space:nowrap}.outcome-stamp.mastery{border:2px solid var(--accent-success);color:var(--accent-success)}.outcome-stamp.partial{border:2px solid var(--accent-data);color:var(--accent-data)}.outcome-stamp.miss{border:2px solid var(--accent-warning);color:var(--accent-warning)}.challenge-feedback{display:flex;flex-direction:column;gap:var(--space-2);font-size:13px}.challenge-changed{margin:0}.challenge-feedback details summary{cursor:pointer;font-size:12px;color:var(--accent-data)}.challenge-feedback details p{margin:var(--space-2) 0 0;font-size:12.5px;color:var(--text-muted)}.report-form fieldset{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);margin:var(--space-2) 0;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-2)}.report-form legend{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:0 var(--space-1)}.report-hint{margin:0;font-size:11.5px;font-style:italic;color:var(--text-muted)}.report-conclusion,.report-evidence{display:flex;gap:var(--space-2);align-items:baseline;font-size:13px;cursor:pointer}.report-conclusion em{display:block;font-size:12px;color:var(--text-muted)}.report-result{background:var(--surface-paper);border:2px solid var(--accent-success);border-radius:var(--radius-md);padding:var(--space-4)}.report-result h3{margin:0 0 var(--space-2);font-family:var(--font-mono);letter-spacing:.12em;font-size:15px}.report-conclusion-final{font-size:14px;font-weight:700;margin:0 0 var(--space-2)}.grade-stamp{font-family:var(--font-mono);font-weight:700;font-size:13px;letter-spacing:.14em;padding:1px 8px;border:2px solid var(--accent-success);border-radius:var(--radius-sm);color:var(--accent-success);display:inline-block;transform:rotate(-2deg)}.report-result.grade-weak,.report-result.grade-weak .grade-stamp{border-color:var(--accent-warning)}.report-result.grade-weak .grade-stamp{color:var(--accent-warning)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@keyframes pulse-gain{0%{transform:scale(1.06)}to{transform:scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
