*{box-sizing:border-box}html,body{min-height:100%;margin:0}:root{--surface:#f5f7fa;--card:#fff;--ink:#1a2233;--ink-muted:#5b6a7e;--border:#d4dce6;--border-strong:#b8c5d4;--cobalt:#1a4f9c;--cobalt-dark:#133e7a;--cobalt-light:#3a6fcc;--cobalt-tint:#e8f0fb;--violet:#7b3fa0;--violet-tint:#f3e8f8;--violet-bar:#7b3fa0;--green:#2e9e4f;--green-tint:#dcf2e3;--tangerine:#e8652a;--tangerine-tint:#fde8da;--radius-card:8px;--radius-button:6px;--shadow-card:0 1px 3px #1a22330f;--shadow-active:0 2px 8px #1a4f9c1a;--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}body{background-color:var(--surface);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-image:linear-gradient(#a0b4cd14 1px,#0000 1px),linear-gradient(90deg,#a0b4cd14 1px,#0000 1px);background-size:24px 24px;font-size:16px;line-height:1.55}.page{max-width:580px;min-height:100vh;margin:0 auto;padding:24px 16px 48px}.header{margin-bottom:24px}.header h1{color:var(--ink);letter-spacing:-.01em;margin:0 0 4px;font-size:1.75rem;font-weight:700}.subtitle{color:var(--ink-muted);margin:0 0 16px;font-size:.9375rem}.progress-row{flex-wrap:wrap;gap:8px;display:flex}.badge{border-radius:var(--radius-button);border:2px solid var(--border);background:var(--card);width:48px;height:48px;color:var(--ink-muted);font-family:var(--font-mono);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;font-size:1rem;font-weight:600;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex;position:relative}.badge:hover{border-color:var(--border-strong)}.badge:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}.badge-solved{background:var(--cobalt);border-color:var(--cobalt);color:#fff}.badge-current{border-color:var(--cobalt);color:var(--cobalt);background:var(--cobalt-tint)}.badge-pending{border-color:var(--border);color:var(--ink-muted);background:var(--card)}.badge-check{background:var(--green);color:#fff;border:2px solid var(--surface);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:.625rem;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.exhibit-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-active);margin-bottom:16px;padding:24px 20px;transition:border-color .2s}.exhibit-card.solved{border-color:var(--green)}.card-header{margin-bottom:16px}.catalog{font-family:var(--font-mono);color:var(--ink-muted);letter-spacing:.05em;margin-bottom:4px;font-size:.8125rem;font-weight:600;display:inline-block}.exhibit-title{color:var(--ink);margin:0;font-size:1.375rem;font-weight:700;line-height:1.3}.clue{color:var(--ink);margin:0 0 20px;font-size:1.125rem;line-height:1.55}.hints{margin-bottom:16px}.hint-line{background:var(--violet-tint);border-left:3px solid var(--violet-bar);border-radius:0 var(--radius-button) var(--radius-button) 0;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;animation:.18s ease-out hintReveal;display:flex}.hint-num{font-family:var(--font-mono);color:var(--violet);flex-shrink:0;margin-top:2px;font-size:.8125rem;font-weight:700}.hint-text{color:var(--ink);font-size:.9375rem;line-height:1.5}.hint-button{font-family:var(--font-sans);color:var(--violet);border:1.5px solid var(--violet);border-radius:var(--radius-button);cursor:pointer;background:0 0;align-items:center;gap:6px;min-height:48px;margin-bottom:20px;padding:10px 16px;font-size:.9375rem;font-weight:600;transition:background-color .15s,color .15s;display:inline-flex}.hint-button:hover{background:var(--violet-tint)}.hint-button:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}.hint-button:disabled{opacity:.5;cursor:default}.hint-button:disabled:hover{background:0 0}.hint-icon{font-size:1.0625rem;line-height:1}.answer-form{gap:8px;margin-bottom:12px;display:flex}.answer-input{min-width:0;font-family:var(--font-sans);color:var(--ink);background:var(--card);border:1.5px solid var(--border-strong);border-radius:var(--radius-button);flex:1;min-height:48px;padding:12px 14px;font-size:1rem;transition:border-color .15s,box-shadow .15s}.answer-input::placeholder{color:var(--ink-muted);opacity:.7}.answer-input:focus{border-color:var(--cobalt);box-shadow:0 0 0 3px var(--cobalt-tint);outline:none}.submit-button{font-family:var(--font-sans);color:#fff;background:var(--cobalt);border-radius:var(--radius-button);cursor:pointer;white-space:nowrap;border:none;flex-shrink:0;min-height:48px;padding:12px 20px;font-size:1.0625rem;font-weight:600;transition:background-color .15s}.submit-button:hover{background:var(--cobalt-dark)}.submit-button:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}.solved-display{background:var(--green-tint);border:1.5px solid var(--green);border-radius:var(--radius-button);align-items:center;gap:12px;margin-bottom:12px;padding:12px 16px;display:flex}.solved-badge{color:var(--green);align-items:center;gap:4px;font-size:.9375rem;font-weight:700;display:inline-flex}.solved-answer{color:var(--ink);font-size:.9375rem}.solved-answer strong{font-weight:600}.feedback{align-items:center;gap:6px;min-height:24px;font-size:.9375rem;font-weight:600;display:flex}.feedback-wrong{color:var(--tangerine)}.feedback-correct{color:var(--green)}.nav-row{justify-content:space-between;gap:8px;display:flex}.nav-button{font-family:var(--font-sans);color:var(--ink);background:var(--card);border:1.5px solid var(--border-strong);border-radius:var(--radius-button);cursor:pointer;text-align:center;flex:1;min-height:48px;padding:12px 20px;font-size:1.0625rem;font-weight:600;transition:background-color .15s,border-color .15s}.nav-button:hover:not(:disabled){background:var(--surface);border-color:var(--cobalt)}.nav-button:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}.nav-button:disabled{opacity:.4;cursor:default}.nav-button.nav-primary{background:var(--cobalt);color:#fff;border-color:var(--cobalt)}.nav-button.nav-primary:hover:not(:disabled){background:var(--cobalt-dark);border-color:var(--cobalt-dark)}.nav-spacer{flex:1}.completion{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-active);text-align:center;padding:32px 24px}.completion h1{color:var(--cobalt);margin:0 0 8px;font-size:1.75rem;font-weight:700}.completion-score{color:var(--ink);margin:0 0 24px;font-size:1.25rem;font-weight:600}.completion-score .score-num{color:var(--green);font-weight:700}.summary{text-align:left;border:1px solid var(--border);border-radius:var(--radius-card);margin:0 0 28px;padding:0;list-style:none;overflow:hidden}.summary-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:12px 16px;display:flex}.summary-item:last-child{border-bottom:none}.summary-catalog{font-family:var(--font-mono);color:var(--ink-muted);flex-shrink:0;width:48px;font-size:.8125rem;font-weight:600}.summary-title{color:var(--ink);flex:1;font-size:.9375rem;font-weight:500}.summary-status{text-align:center;flex-shrink:0;width:24px;font-size:1rem;font-weight:700}.summary-status.solved{color:var(--green)}.summary-status.unsolved{color:var(--tangerine)}.completion-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.completion-actions .nav-button{flex:none;min-width:140px}@keyframes hintReveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-3px)}40%{transform:translate(3px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes pulseCorrect{0%{border-color:var(--border);box-shadow:var(--shadow-active)}50%{border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint), var(--shadow-active)}to{border-color:var(--green);box-shadow:var(--shadow-active)}}.shake{animation:.2s ease-in-out shake}.pulse-correct{animation:.3s ease-out pulseCorrect}@media (prefers-reduced-motion:reduce){.hint-line,.shake{animation:none}.pulse-correct{border-color:var(--green);animation:none}.badge,.hint-button,.submit-button,.nav-button,.answer-input{transition:none}}@media (max-width:380px){.page{padding:16px 12px 32px}.exhibit-card{padding:20px 16px}.completion{padding:24px 16px}.badge{width:48px;height:48px;font-size:.9375rem}.answer-form{flex-direction:column}.submit-button{width:100%}.nav-button{min-height:48px;padding:12px 16px;font-size:1rem}}
