:root{--color-background-primary: #F7F5F0;--color-background-secondary: #FFFFFF;--color-text-primary: #1A1A1A;--color-text-secondary: #5C5E54;--color-brand-primary: #C84C31;--color-brand-primary-active: #A84430;--color-brand-secondary: #4A5D4E;--color-accent-warm: #E6B87D;--color-border-subtle: #E5E2D9;--color-success: #4A5D4E;--color-danger: #8A2317;--color-on-brand: #FFFFFF;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--space-9: 96px;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 22px;--radius-pill: 999px;--shadow-card: 0 1px 2px rgba(42,33,27,.04), 0 8px 24px rgba(42,33,27,.06);--shadow-raised: 0 2px 4px rgba(42,33,27,.06), 0 16px 40px rgba(42,33,27,.1);--motion-fast: .12s;--motion-base: .22s;--motion-slow: .42s;--motion-ease: cubic-bezier(.22, .61, .36, 1);--font-display: "Outfit", system-ui, sans-serif;--font-body: "DM Sans", system-ui, sans-serif;--leading-body: 1.65;--tracking-display: -.02em;--type-overline: .75rem;--type-caption: .8125rem;--type-body: 1rem;--type-body-lg: 1.125rem;--type-h4: 1.25rem;--type-h3: 1.5rem;--type-h2: 2rem;--type-h1: 2.75rem}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--color-background-primary);color:var(--color-text-primary);font-family:var(--font-body);font-size:1rem;line-height:var(--leading-body);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:var(--tracking-display);color:var(--color-text-primary);margin:0 0 var(--space-3);line-height:1.15}h1{font-size:clamp(2rem,5vw,var(--type-h1))}h2{font-size:clamp(1.5rem,3.5vw,var(--type-h2))}h3{font-size:var(--type-h3)}h4{font-size:var(--type-h4)}p{margin:0 0 var(--space-4);color:var(--color-text-secondary)}a{color:var(--color-brand-primary);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--color-brand-primary-active)}:focus-visible{outline:3px solid var(--color-brand-primary);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;left:var(--space-4);top:calc(-1 * var(--space-8));z-index:100;background:var(--color-brand-primary);color:var(--color-on-brand);padding:var(--space-3) var(--space-4);border-radius:var(--radius-pill);transition:top var(--motion-fast) var(--motion-ease)}.skip-link:focus{top:var(--space-4);color:var(--color-on-brand)}.shell{max-width:1180px;margin:0 auto;padding:0 var(--space-5)}.stack>*+*{margin-top:var(--space-4)}.overline{font-family:var(--font-display);font-size:var(--type-overline);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--color-brand-primary);margin:0 0 var(--space-2)}.muted{color:var(--color-text-secondary)}.small{font-size:var(--type-caption)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-display);font-size:1rem;font-weight:500;padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;text-decoration:none;min-height:44px;transition:background var(--motion-fast) var(--motion-ease),transform var(--motion-fast) var(--motion-ease)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:not(:disabled):active{transform:translateY(1px)}.btn-primary{background:var(--color-brand-primary);color:var(--color-on-brand)}.btn-primary:hover:not(:disabled){background:var(--color-brand-primary-active);color:var(--color-on-brand)}.btn-primary:active:not(:disabled){background:var(--color-brand-primary-active)}.btn-secondary{background:var(--color-background-primary);border-color:var(--color-border-subtle);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-accent-warm);color:var(--color-text-primary)}.btn-quiet{background:transparent;color:var(--color-brand-primary);padding-inline:var(--space-3)}.btn-block{width:100%}.card{background:var(--color-background-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5)}.card-link{display:block;text-decoration:none;color:inherit;transition:box-shadow var(--motion-base) var(--motion-ease),transform var(--motion-base) var(--motion-ease)}.card-link:hover{box-shadow:var(--shadow-raised);transform:translateY(-2px);color:inherit}.field{display:block;margin-bottom:var(--space-4)}.field-label{display:block;font-family:var(--font-display);font-size:var(--type-caption);font-weight:500;color:var(--color-text-primary);margin-bottom:var(--space-2)}.input{width:100%;background:var(--color-background-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:1rem;color:var(--color-text-primary);min-height:44px}.input:focus{border-color:var(--color-brand-primary);outline-offset:1px}.input[aria-invalid=true]{border-color:var(--color-danger);border-width:2px}.field-hint{display:block;font-size:var(--type-caption);color:var(--color-text-secondary);margin-top:var(--space-2)}.field-error{display:block;font-size:var(--type-caption);color:var(--color-danger);margin-top:var(--space-2);font-weight:500}.meter{height:10px;background:var(--color-border-subtle);border-radius:var(--radius-pill);overflow:hidden}.meter-fill{height:100%;background:var(--color-brand-secondary);border-radius:var(--radius-pill);transition:width var(--motion-slow) var(--motion-ease)}.badge{display:inline-block;font-family:var(--font-display);font-size:var(--type-overline);font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:var(--space-1) var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--color-border-subtle);background:var(--color-background-primary);color:var(--color-text-secondary)}.badge-success{background:var(--color-success);border-color:var(--color-success);color:var(--color-on-brand)}.badge-danger{background:var(--color-danger);border-color:var(--color-danger);color:var(--color-on-brand)}.option{display:flex;gap:var(--space-3);align-items:flex-start;width:100%;text-align:left;background:var(--color-background-secondary);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-3);cursor:pointer;font-family:var(--font-body);font-size:1rem;color:var(--color-text-primary);transition:border-color var(--motion-fast) var(--motion-ease),background var(--motion-fast) var(--motion-ease)}.option:hover:not(:disabled){background:var(--color-accent-warm)}.option[aria-pressed=true]{border-color:var(--color-brand-primary);border-width:2px;background:var(--color-accent-warm)}.option-correct{border-color:var(--color-success);border-width:2px}.option-incorrect{border-color:var(--color-danger);border-width:2px}.option-key{flex:0 0 auto;font-family:var(--font-display);font-weight:600;width:26px;height:26px;display:grid;place-items:center;border-radius:var(--radius-pill);background:var(--color-background-primary);border:1px solid var(--color-border-subtle);font-size:var(--type-caption)}.option-verdict{font-family:var(--font-display);font-size:var(--type-caption);font-weight:600;margin-left:auto;white-space:nowrap}.option-verdict-correct{color:var(--color-success)}.option-verdict-incorrect{color:var(--color-danger)}.grid{display:grid;gap:var(--space-5)}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.between{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4)}.section{padding:var(--space-8) 0}.notice{border-radius:var(--radius-md);padding:var(--space-4);border:1px solid var(--color-border-subtle);background:var(--color-background-secondary);color:var(--color-text-primary)}.notice-danger{border-color:var(--color-danger)}.notice-success{border-color:var(--color-success)}
