:root{--font-display:"Playfair Display", Georgia, "Times New Roman", serif;--font-body:"DM Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--color-bg-base:#eeebe4;--color-bg-surface:#f7f5f0;--color-bg-elevated:#fff;--color-bg-overlay:#f0ede6;--color-ink-primary:#0a0a0a;--color-ink-secondary:#444;--color-ink-muted:#888;--color-ink-disabled:#bbb;--color-accent:#1a5276;--color-accent-hover:#1f618d;--color-accent-muted:#1a527615;--color-border:#d4cfc6;--color-border-strong:#0a0a0a;--color-border-focus:#1a5276;--color-success:#1e7e4f;--color-warning:#a86b00;--color-error:#b02a2a;--color-topbar:#0a0a0a;--text-xs:.6875rem;--text-sm:.8125rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.3125rem;--text-2xl:1.625rem;--text-3xl:2rem;--text-4xl:2.625rem;--leading-tight:1.15;--leading-snug:1.35;--leading-normal:1.6;--leading-loose:1.8;--font-light:300;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--font-black:900;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-sm:2px;--radius-md:4px;--radius-lg:6px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-md:0 4px 16px #0000001a, 0 2px 6px #0000000f;--shadow-lg:0 8px 28px #0000001f, 0 4px 10px #00000012;--transition-fast:.12s ease;--transition-base:.22s ease;--transition-slow:.38s ease;--max-width-content:780px;--max-width-wide:1100px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-body);font-size:var(--text-base);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--color-ink-primary);background-color:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{font-family:var(--font-display);line-height:var(--leading-tight);color:var(--color-ink-primary);font-weight:var(--font-bold)}h4,h5,h6{font-family:var(--font-body);line-height:var(--leading-snug);color:var(--color-ink-primary);font-weight:var(--font-semibold)}h1{font-size:var(--text-4xl);font-weight:var(--font-black)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{color:var(--color-ink-secondary);line-height:var(--leading-normal)}.kicker{font-family:var(--font-body);font-size:var(--text-xs);font-weight:var(--font-semibold);letter-spacing:.15em;text-transform:uppercase;color:var(--color-accent)}.rule{border:none;border-top:3px solid var(--color-border-strong);width:100%;margin:var(--space-3) 0 var(--space-2)}.rule--thin{border-top-width:1px;border-color:var(--color-border)}a{color:var(--color-accent);text-underline-offset:3px;transition:color var(--transition-fast);text-decoration:underline}a:hover{color:var(--color-accent-hover)}code,kbd,pre{font-family:var(--font-mono);font-size:.9em}code{background-color:var(--color-bg-overlay);color:var(--color-ink-primary);border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:.1em .4em}strong{font-weight:var(--font-semibold);color:var(--color-ink-primary)}img,video,svg{max-width:100%;display:block}input,textarea,select,button{font-family:inherit;font-size:inherit}input,textarea,select{background-color:var(--color-bg-elevated);color:var(--color-ink-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);width:100%;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);font-family:var(--font-body);outline:none}input:hover,textarea:hover,select:hover{border-color:var(--color-ink-muted)}input:focus,textarea:focus,select:focus{border-color:var(--color-border-focus);box-shadow:0 0 0 3px var(--color-accent-muted)}input::placeholder,textarea::placeholder{color:var(--color-ink-disabled)}button{cursor:pointer;border-radius:var(--radius-md);padding:var(--space-3) var(--space-6);font-family:var(--font-body);font-weight:var(--font-medium);font-size:var(--text-sm);letter-spacing:.03em;transition:background-color var(--transition-fast), transform var(--transition-fast), box-shadow var(--transition-fast);border:none}button,.btn-primary{background-color:var(--color-accent);color:#fff;border-top:3px solid var(--color-topbar)}button:hover,.btn-primary:hover{background-color:var(--color-accent-hover);box-shadow:var(--shadow-sm)}button:active,.btn-primary:active{transform:scale(.98)}button:disabled,.btn-primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{color:var(--color-ink-primary);border:1px solid var(--color-border-strong);background-color:#0000}.btn-secondary:hover{background-color:var(--color-bg-overlay)}.btn-ghost{color:var(--color-accent);border:1px solid var(--color-border);background-color:#0000}.btn-ghost:hover{background-color:var(--color-accent-muted);border-color:var(--color-accent)}.card{background-color:var(--color-bg-surface);border-top:4px solid var(--color-topbar);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--space-8)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--color-bg-base)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-muted)}::selection{background-color:var(--color-accent-muted);color:var(--color-ink-primary)}.upload-container{flex-direction:column;gap:16px;width:100%;display:flex}.upload-dropzone{padding:var(--space-12) var(--space-6);background-color:var(--color-bg-surface);border:2px dashed var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast), background-color var(--transition-fast);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.upload-dropzone:hover,.upload-dropzone--dragging{border-color:var(--color-accent);background-color:var(--color-bg-overlay)}.upload-dropzone__hint{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink-secondary)}.upload-dropzone__types{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-ink-muted)}.upload-file-info{padding:var(--space-4);background-color:var(--color-bg-surface);border-top:3px solid var(--color-topbar);border-radius:var(--radius-md)}.upload-file-info__name{font-family:var(--font-display);font-weight:var(--font-bold);color:var(--color-ink-primary)}.upload-file-info__meta{font-size:var(--text-sm);color:var(--color-ink-muted)}.upload-error{color:var(--color-error);font-size:var(--text-sm)}.upload-generating{font-family:var(--font-display);color:var(--color-accent);font-style:italic}.upload-actions{gap:var(--space-3);display:flex}.upload-config{gap:var(--space-3);padding:var(--space-5);background-color:var(--color-bg-surface);border-top:3px solid var(--color-topbar);border-radius:var(--radius-md);flex-direction:column;display:flex}.upload-config__suggestion{font-size:var(--text-sm);color:var(--color-ink-secondary);line-height:var(--leading-snug)}.upload-config__label{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:var(--font-semibold);color:var(--color-ink-muted)}.upload-config__input{max-width:120px}.upload-tabs{border-bottom:2px solid var(--color-border);gap:0;display:flex}.upload-tab{padding:var(--space-3) var(--space-5);color:var(--color-ink-muted);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-semibold);letter-spacing:.03em;cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:none;border-bottom:3px solid #0000;border-radius:0;margin-bottom:-2px}.upload-tab:hover{color:var(--color-ink-primary);background:0 0}.upload-tab--active{color:var(--color-ink-primary);border-bottom-color:var(--color-topbar)}.upload-tab--active:hover{background:0 0}.upload-url{gap:var(--space-3);padding:var(--space-5);background-color:var(--color-bg-surface);border-top:3px solid var(--color-topbar);border-radius:var(--radius-md);flex-direction:column;display:flex}.exam-container{flex-direction:column;align-items:center;gap:40px;margin-bottom:60px;display:flex}.exam-header{width:100%}.exam-header__meta{margin-top:var(--space-2);font-size:var(--text-sm);color:var(--color-ink-muted)}.question-container{flex-direction:column;gap:12px;width:100%;display:flex}.question-text{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--color-ink-primary);line-height:var(--leading-snug)}.question-number{color:var(--color-accent);margin-right:var(--space-2)}.options-container{flex-direction:column;gap:8px;display:flex}.question-option{text-align:left;background-color:var(--color-bg-elevated);width:100%;color:var(--color-ink-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--font-normal);cursor:pointer;transition:background-color var(--transition-fast), border-color var(--transition-fast);border-top:none}.question-option:hover{background-color:var(--color-bg-overlay);border-color:var(--color-ink-muted)}.question-option--selected{background-color:var(--color-accent-muted);border-color:var(--color-accent);color:var(--color-accent);font-weight:var(--font-medium)}.question-option--correct{border-color:var(--color-success);color:var(--color-success);font-weight:var(--font-medium);cursor:default;background-color:#eaf7ef}.question-option--incorrect{border-color:var(--color-error);color:var(--color-error);font-weight:var(--font-medium);cursor:default;background-color:#fdf0f0}.question-option--reveal{border-color:var(--color-warning);color:var(--color-warning);font-weight:var(--font-medium);cursor:default;background-color:#fdf8e7}.exam-footer{align-items:flex-start;gap:var(--space-4);width:100%;padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-direction:column;display:flex}.exam-score{gap:var(--space-4);flex-direction:column;display:flex}.exam-score__text{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-ink-primary)}.app-container{width:100%;max-width:720px;padding:0 var(--space-6);flex-direction:column;align-items:center;gap:20px;margin:8vh auto 0;display:flex}
