:root{--cream: #f0ebd6;--green: #214539;--white: #ffffff;--ground: var(--cream);--ink: var(--green);--surface: var(--white);--on-ink: var(--cream);--ink-muted: rgb(33 69 57 / 62%);--ink-faint: rgb(33 69 57 / 42%);--line: rgb(33 69 57 / 14%);--line-strong: rgb(33 69 57 / 26%);--wash: rgb(33 69 57 / 5%);--wrong: #a23a2e;--wrong-wash: rgb(162 58 46 / 10%);--correct-wash: rgb(33 69 57 / 10%);--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: 12px;--radius-md: 18px;--radius-lg: 28px;--radius-pill: 999px;--text-xs: 11px;--text-sm: 13px;--text-md: 15px;--text-lg: 19px;--text-xl: 26px;--text-2xl: 34px;--measure: 44rem;--shell-max: 1120px;--shell-gutter: var(--space-7);--shadow-card: 0 1px 2px rgb(33 69 57 / 5%), 0 18px 40px -22px rgb(33 69 57 / 22%);--ease: cubic-bezier(.4, 0, .2, 1);--duration: .2s}@media(max-width:750px){:root{--shell-gutter: var(--space-5);--text-xl: 22px;--text-2xl: 27px}}@font-face{font-family:Averia Libre;src:url(/fonts/AveriaLibre-Regular.ttf) format("truetype");font-weight:400 600;font-display:swap}@font-face{font-family:Averia Libre;src:url(/fonts/AveriaLibre-Bold.ttf) format("truetype");font-weight:700 900;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-color:var(--line-strong) transparent;scrollbar-width:thin}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid transparent;border-radius:var(--radius-pill);background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--ink-muted);background-clip:content-box}body{margin:0;min-height:100dvh;font-family:Averia Libre,ui-rounded,system-ui,sans-serif;font-size:var(--text-md);line-height:1.6;font-synthesis:none;color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700;line-height:1.25;letter-spacing:-.01em}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:var(--radius-sm)}.eyebrow{font-size:var(--text-xs);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.app{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;max-width:var(--shell-max);margin-inline:auto;padding-inline:var(--shell-gutter)}.app-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:104px}.logo{font-size:48px;font-weight:800;letter-spacing:-.04em;line-height:1;text-decoration:none;color:var(--ink)}.logo span{margin-left:.06em}.app-nav{display:flex;gap:var(--space-1);padding:var(--space-1);background:var(--wash);border-radius:var(--radius-pill)}.nav-item{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:0;border-radius:var(--radius-pill);background:transparent;font-size:var(--text-sm);font-weight:700;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.nav-item:hover{background:var(--wash)}.nav-item[aria-current=page]{background:var(--ink);color:var(--on-ink)}.app-main{display:flex;flex-direction:column;gap:var(--space-6);padding-block:var(--space-4) var(--space-9);min-width:0}.app-footer{display:flex;align-items:center;justify-content:flex-end;padding-block:var(--space-6)}.wordmark{font-size:var(--text-lg);font-weight:800;letter-spacing:-.03em;color:var(--ink-faint)}@media(max-width:750px){.app-header{min-height:84px}.logo{font-size:38px}}@media(max-width:480px){.app-header{flex-wrap:wrap;row-gap:var(--space-3);padding-block:var(--space-4);min-height:0}.app-nav{width:100%}.nav-item{flex:1;justify-content:center;padding-inline:var(--space-3);font-size:var(--text-xs)}}.question-box{width:100%;max-width:calc(var(--measure) + var(--space-7) * 2);margin-inline:auto;padding:var(--space-7);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.question-meta{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-5)}.question-count{font-size:var(--text-xs);color:var(--ink-faint);font-variant-numeric:tabular-nums}.question-stem{font-size:var(--text-xl);font-weight:400;line-height:1.5;letter-spacing:-.005em;margin-bottom:var(--space-6)}.question-stem-block{display:block}.question-stem-block+.question-stem-block{margin-top:var(--space-4)}.question-options{display:grid;gap:var(--space-3)}.option{display:flex;align-items:center;gap:var(--space-4);width:100%;padding:var(--space-4);text-align:left;font-size:var(--text-md);line-height:1.55;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);transition:background var(--duration) var(--ease),border-color var(--duration) var(--ease),color var(--duration) var(--ease)}.option:hover{background:var(--wash);border-color:var(--line-strong)}.option[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.option-letter{display:grid;place-items:center;flex-shrink:0;width:30px;height:30px;border-radius:50%;background:var(--wash);font-size:var(--text-xs);font-weight:800}.option[aria-pressed=true] .option-letter{background:var(--on-ink);color:var(--ink)}.option-text{flex:1;min-width:0}.option-mark{display:grid;place-items:center;flex-shrink:0;width:20px;height:20px;border:1px solid var(--line-strong);border-radius:50%}.option[aria-pressed=true] .option-mark{background:var(--on-ink);border-color:var(--on-ink);color:var(--ink)}.question-nav{display:grid;gap:var(--space-4);margin-top:var(--space-6)}.nav-commit{width:100%;justify-content:center}.nav-steps{display:flex;align-items:center;flex-wrap:nowrap;justify-content:space-between;gap:var(--space-4)}.question-nav .button,.question-nav .link{white-space:nowrap;flex-shrink:0}.question-message{margin-top:var(--space-5);font-size:var(--text-xs);line-height:1.6;color:var(--ink-muted)}.question-source{display:grid;gap:var(--space-1);margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line);font-size:var(--text-xs);color:var(--ink-muted);overflow-wrap:anywhere}.question-source-line{color:var(--ink-faint)}.question-state{display:grid;gap:var(--space-4);justify-items:start;min-height:12rem;align-content:center;font-size:var(--text-sm);color:var(--ink-muted)}.question-state-title{font-size:var(--text-lg);color:var(--ink)}.button{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);background:var(--ink);color:var(--on-ink);border:1px solid var(--ink);border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:700;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.button:hover:not(:disabled){background:var(--surface);color:var(--ink)}.button:disabled{opacity:.4}.link{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) 0;border:0;background:none;color:var(--ink);font-size:var(--text-sm);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px;transition:text-decoration-color var(--duration) var(--ease),opacity var(--duration) var(--ease)}.link:hover:not(:disabled){text-decoration-color:currentColor}.link:disabled{opacity:.35;text-decoration-color:transparent}.option[aria-disabled=true]{cursor:default}.option[aria-disabled=true]:not([aria-pressed=true]){opacity:.6}.option[aria-disabled=true]:hover:not([aria-pressed=true]){background:var(--surface);border-color:var(--line)}.question-box[aria-busy=true] .question-stem,.question-box[aria-busy=true] .question-options{opacity:.55;transition:opacity var(--duration) var(--ease)}@media(max-width:750px){.question-box{padding:var(--space-5);border-radius:var(--radius-md)}.option{gap:var(--space-3);font-size:var(--text-sm)}.question-nav{gap:var(--space-3)}}.test-bar{display:flex;align-items:center;gap:var(--space-6);width:100%;max-width:calc(var(--measure) + var(--space-7) * 2);margin-inline:auto;padding:var(--space-4) var(--space-6);background:var(--surface);border-radius:var(--radius-pill);box-shadow:var(--shadow-card)}.test-clock{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;font-size:var(--text-lg);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.test-clock.is-low{font-weight:800}.test-paused-flag{margin-left:var(--space-2);font-size:var(--text-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted)}.test-progress{display:grid;gap:var(--space-2);flex:1;min-width:0}.test-progress-text{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);font-size:var(--text-xs);color:var(--ink-muted);white-space:nowrap}.test-answered{color:var(--ink-faint)}.test-progress-track{height:6px;border-radius:var(--radius-pill);background:var(--wash);overflow:hidden}.test-progress-fill{display:block;block-size:100%;background:var(--ink);border-radius:var(--radius-pill);transition:inline-size var(--duration) var(--ease)}.test-bar-actions{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}.setup-title{font-size:var(--text-2xl);margin-bottom:var(--space-4)}.setup-lead{font-size:var(--text-md);line-height:1.7;color:var(--ink-muted);max-width:36rem}.dashboard{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);margin-bottom:var(--space-6)}.dashboard-overlay,.history-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#ffffff8c;border-radius:var(--radius-md)}.spinner{color:var(--ink);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}}.dashboard-tile{display:grid;gap:var(--space-1);padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--wash)}.dashboard-value{font-size:var(--text-xl);font-weight:800;line-height:1;color:var(--ink)}.dashboard-label{font-size:var(--text-xs);color:var(--ink-muted)}.dashboard-note{color:var(--ink-faint)}@media(max-width:640px){.dashboard{grid-template-columns:repeat(2,1fr)}}.setup-form{margin-top:var(--space-6)}.setup-fields{display:flex;flex-wrap:wrap;gap:var(--space-4)}.setup-field{display:grid;gap:var(--space-2);flex:1 1 10rem;font-size:var(--text-sm);font-weight:700}.setup-field select{padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-weight:400}.select-wrap{position:relative;display:block}.setup-field select,.setup-select{width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:var(--space-6)}.select-wrap:after{content:"▾";position:absolute;top:50%;right:var(--space-4);transform:translateY(-50%);pointer-events:none;color:var(--ink-muted);font-size:var(--text-sm)}.setup-field-wide{flex:2 1 14rem}.setup-papers{display:grid;gap:var(--space-2);margin-top:var(--space-4);font-size:var(--text-sm);font-weight:700}.setup-papers-label{font-size:var(--text-sm);font-weight:700}.setup-select{padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-weight:400}.year-tags{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-1) 0 0;padding:0;list-style:none}.year-tag{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-pill);background:var(--ink);color:var(--surface);font-size:var(--text-sm);font-weight:700}.year-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:1.4em;height:1.4em;padding:0;border:0;border-radius:var(--radius-pill);background:transparent;color:var(--on-ink);cursor:pointer}.year-tag-remove:hover{background:#ffffff2e}.setup-pace{margin-top:var(--space-4);font-size:var(--text-xs);color:var(--ink-faint);line-height:1.6}.review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-6)}.button-outline{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.button-outline:hover:not(:disabled){background:var(--wash);color:var(--ink)}.review-hint{margin-top:var(--space-3);font-size:var(--text-xs);line-height:1.7;color:var(--ink-faint);max-width:34rem}.review-manual{width:100%;margin-top:var(--space-4);padding:var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-family:ui-monospace,monospace;font-size:var(--text-xs);line-height:1.6;resize:vertical}.review-list{margin:var(--space-6) 0 0;padding:0;list-style:none;display:grid;gap:var(--space-4)}.review-item{padding-top:var(--space-4);border-top:1px solid var(--line)}.review-stem{display:flex;gap:var(--space-3);font-size:var(--text-sm);line-height:1.6}.review-number{flex-shrink:0;font-weight:800;color:var(--ink-faint);font-variant-numeric:tabular-nums}@media(max-width:750px){.test-bar{flex-wrap:wrap;gap:var(--space-3) var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md)}.test-progress{order:1;flex-basis:100%}.test-bar-actions{margin-left:auto}}.login{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}.login-panel{position:relative;overflow:hidden;background:var(--ink);color:var(--cream)}.login-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(74% 56% at 50% 4%,rgb(240 235 214 / 10%),transparent 72%);pointer-events:none}.login-main{display:grid;place-items:center;padding:var(--space-7) var(--shell-gutter);background:var(--ground)}.login-column{width:100%;max-width:25rem}.login-back{margin-bottom:var(--space-6)}.login-logo{display:block;font-size:40px;font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--ink)}.login-title{margin-top:var(--space-5);font-size:var(--text-2xl);line-height:1.2}.login-lead{margin-top:var(--space-3);font-size:var(--text-sm);line-height:1.6;color:var(--ink-muted)}.login-error{margin-top:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);line-height:1.5}.login-google{width:100%;margin-top:var(--space-6)}.login-legal{margin-top:var(--space-4);font-size:var(--text-xs);line-height:1.7;color:var(--ink-muted)}.login-legal a{color:inherit;text-underline-offset:3px}.login-features{margin:var(--space-6) 0 0;padding:var(--space-5) 0 0;border-top:1px solid var(--line);list-style:none;display:grid;gap:var(--space-4)}.login-features li{display:flex;align-items:start;gap:var(--space-3);font-size:var(--text-xs);line-height:1.6;color:var(--ink-muted)}.login-features svg{flex-shrink:0;margin-top:1px;color:var(--ink)}.login-features strong{display:block;font-size:var(--text-sm);color:var(--ink)}.login-request{margin-top:var(--space-6)}.login-request-rule{width:48px;height:1px;margin:0 0 var(--space-5);border:0;background:var(--line-strong)}.login-request-label{display:block;margin-bottom:var(--space-3);font-size:var(--text-sm);color:var(--ink-muted)}.login-request-row{display:flex;gap:var(--space-2)}.login-request-input{flex:1;min-width:0;min-height:46px;padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--text-md);transition:border-color var(--duration) var(--ease)}.login-request-input:focus-visible{outline:none;border-color:var(--ink);box-shadow:var(--shadow-card)}.login-request-button{flex-shrink:0;min-height:46px;padding:var(--space-3) var(--space-5);border:1px solid var(--ink);border-radius:var(--radius-md);background:var(--ink);color:var(--on-ink);font:inherit;font-size:var(--text-md);font-weight:700;cursor:pointer;transition:box-shadow var(--duration) var(--ease),opacity var(--duration) var(--ease)}.login-request-button:hover{box-shadow:var(--shadow-card)}.login-request-button:disabled{opacity:.6;cursor:default;box-shadow:none}.login-request-done{font-size:var(--text-sm);line-height:1.6;color:var(--ink-muted)}.login-request-error{margin-top:var(--space-3)}.login-note{margin-top:var(--space-5);padding-top:var(--space-4);border-top:1px solid var(--line);font-size:var(--text-xs);line-height:1.7;color:var(--ink-faint)}@media(max-width:860px){.login{grid-template-columns:1fr}.login-panel{display:none}.login-main{place-items:start center;padding-top:var(--space-8)}}.vine-art{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-webkit-mask-image:linear-gradient(to top,black 0%,rgb(0 0 0 / 82%) 46%,transparent 88%);mask-image:linear-gradient(to top,black 0%,rgb(0 0 0 / 82%) 46%,transparent 88%)}.google-button{display:flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:46px;padding:var(--space-3) var(--space-5);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);color:var(--ink);font-size:var(--text-md);font-weight:700;text-decoration:none;transition:border-color var(--duration) var(--ease),box-shadow var(--duration) var(--ease)}.google-button:hover{border-color:var(--ink);box-shadow:var(--shadow-card)}.google-mark{flex-shrink:0}.legal{max-width:calc(var(--measure) + var(--space-7) * 2)}.legal-title{margin-top:var(--space-3);font-size:var(--text-2xl)}.legal-updated{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--ink-faint)}.legal h2{margin-top:var(--space-6);font-size:var(--text-lg)}.legal p{margin-top:var(--space-3);font-size:var(--text-sm);line-height:1.75;color:var(--ink-muted)}.app-sections{position:relative;min-width:0;margin-right:auto}.sections-toggle{display:none;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-sm);font-weight:700;max-width:100%}.sections-toggle-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sections-caret{flex-shrink:0;transition:transform var(--duration) var(--ease)}.app-sections[data-open=true] .sections-caret{transform:rotate(180deg)}.sections-list{display:flex;align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none}.section-item{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:0;border-radius:var(--radius-pill);background:transparent;font-size:var(--text-sm);font-weight:700;white-space:nowrap;transition:background var(--duration) var(--ease),color var(--duration) var(--ease)}.section-item:hover{background:var(--wash)}.section-item[aria-current=page]{background:var(--ink);color:var(--on-ink)}@media(max-width:860px){.sections-toggle{display:inline-flex}.sections-menu{position:absolute;top:calc(100% + var(--space-2));left:0;z-index:20;min-width:15rem;max-width:min(20rem,calc(100vw - var(--space-6)));padding:var(--space-3);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.app-sections[data-open=false] .sections-menu{display:none}.sections-list{display:grid;gap:var(--space-1)}.section-item{width:100%;justify-content:start}}.account{position:relative;flex-shrink:0}.account-bubble{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--ink);border-radius:50%;background:var(--ink);color:var(--on-ink);font-size:var(--text-md);font-weight:800;line-height:1;transition:box-shadow var(--duration) var(--ease)}.account-bubble:hover{box-shadow:var(--shadow-card)}.account-menu{position:absolute;top:calc(100% + var(--space-2));right:0;z-index:20;min-width:14rem;max-width:min(18rem,calc(100vw - var(--space-6)));padding:var(--space-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-card)}.account[data-open=false] .account-menu{display:none}.account-name{font-size:var(--text-sm);font-weight:700;overflow-wrap:anywhere}.account-email{margin-top:2px;font-size:var(--text-xs);color:var(--ink-muted);overflow-wrap:anywhere}.account-signout{display:flex;align-items:center;gap:var(--space-2);width:100%;margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-sm);font-weight:700;transition:background var(--duration) var(--ease)}.account-signout:hover{background:var(--wash)}.history{margin-top:var(--space-7);padding-top:var(--space-6);border-top:1px solid var(--line)}.history-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-4)}.history-heading{font-size:var(--text-lg);font-weight:800;letter-spacing:0;text-transform:none;color:var(--ink)}.history-range{font-size:var(--text-xs);color:var(--ink-faint);font-variant-numeric:tabular-nums}.history-table-wrap{position:relative}.skeleton-bar{display:inline-block;width:60%;min-width:2.5rem;height:.85em;border-radius:var(--radius-sm);background:var(--wash)}.history-skeleton .history-chevron{color:var(--ink-faint)}.history-note{margin-top:var(--space-4);font-size:var(--text-xs);line-height:1.7;color:var(--ink-faint);max-width:34rem}.history-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-4)}.history-table{width:100%;margin-top:var(--space-4);border-collapse:collapse;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.history-table thead th{padding:0 var(--space-4) var(--space-3);font-size:var(--text-xs);font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);border-bottom:1px solid var(--line);white-space:nowrap;text-align:right}.history-table thead th:first-child{padding-left:var(--space-3);text-align:left}.history-table thead th:last-child{padding-right:var(--space-3);width:1.75rem}.history-table tbody th,.history-table tbody td{padding:var(--space-4);vertical-align:middle;font-weight:400;white-space:nowrap}.history-table tbody th{padding-left:var(--space-3);text-align:left}.history-number{text-align:right}.history-table tbody td:last-child{padding-right:var(--space-3)}.history-table tbody tr{transition:background var(--duration) var(--ease)}.history-table tbody tr:nth-child(odd){background:#2145390a}.history-table tbody tr:hover{background:#21453917}.history-open{display:inline-flex;align-items:baseline;gap:var(--space-3);padding:0;border:0;background:none;text-align:left;font:inherit;white-space:nowrap}.history-date{font-weight:700;text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:4px}.history-open:hover .history-date{text-decoration-color:currentColor}.history-time{font-size:var(--text-xs);color:var(--ink-faint)}.history-flag{margin-left:var(--space-2);padding:2px var(--space-2);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);font-size:var(--text-xs);color:var(--ink-muted)}.history-chevron{width:1.75rem;color:var(--ink-faint);text-align:right}@media(max-width:750px){.history-table thead{display:none}.history-table,.history-table tbody{display:block}.history-table tbody tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--space-2);padding:var(--space-4) var(--space-3);border-radius:var(--radius-sm)}.history-table tbody th,.history-table tbody td{display:block;padding:0;white-space:normal}.history-table tbody th{flex-basis:100%;margin-bottom:var(--space-2)}.history-number{font-size:var(--text-xs);color:var(--ink-muted);text-align:left}.history-number[data-label]:after{content:" " attr(data-label)}.history-number+.history-number:before{content:"·";margin-right:var(--space-2);color:var(--ink-faint)}.history-table tbody td.history-chevron{display:none}}.review-stem-block{display:block}.review-stem-block+.review-stem-block{margin-top:var(--space-3)}.review-options{display:grid;gap:var(--space-2);margin:var(--space-4) 0 0;margin-left:calc(var(--space-3) + 1.2em);padding:0;list-style:none}.review-option{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:1.6;color:var(--ink-muted)}.review-option.is-chosen{border-color:var(--ink);background:var(--wash);color:var(--ink);font-weight:700}.review-option.is-correct{border-color:var(--ink);background:var(--correct-wash);color:var(--ink)}.review-option.is-wrong{border-color:var(--wrong);background:var(--wrong-wash);color:var(--wrong)}.review-option.is-wrong .review-option-mark{color:var(--wrong)}.review-option-letter{flex-shrink:0;width:1.2em;font-weight:800}.review-option-text{flex:1;min-width:0}.review-option-mark{display:inline-flex;align-items:center;gap:var(--space-1);flex-shrink:0;font-size:var(--text-xs);font-weight:700;white-space:nowrap}.review-option-confidence{color:var(--ink)}.review-blank{margin-top:var(--space-3);margin-left:calc(var(--space-3) + 1.2em);font-size:var(--text-xs);color:var(--ink-faint)}.review-summary{margin-top:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--line);border-radius:var(--radius-md);background:var(--wash)}.review-summary.is-celebrating{border-color:var(--ink)}.review-summary-score{display:flex;align-items:baseline;gap:2px;margin:0;line-height:1;color:var(--ink)}.review-summary-score strong{font-size:64px;font-weight:800}.review-summary-total{font-size:var(--text-2xl);font-weight:700;color:var(--ink-muted)}.review-summary-note{margin:var(--space-2) 0 0;font-size:var(--text-xs);line-height:1.6;color:var(--ink-muted)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:50}@media(max-width:750px){.review-options,.review-blank{margin-left:0}.review-option{flex-wrap:wrap}}.landing{--band-inset: clamp(var(--space-5), 5vw, var(--space-8))}.landing section{padding-inline:var(--band-inset)}.hero{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:clamp(30rem,64dvh,44rem);padding-block:0 clamp(var(--space-7),6vw,var(--space-9));background:var(--ink);color:var(--on-ink)}.hero-art{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--cream);pointer-events:none}.hero-art .vine-art{-webkit-mask-image:linear-gradient(to top,black 0%,rgb(0 0 0 / 72%) 58%,transparent 97%);mask-image:linear-gradient(to top,black 0%,rgb(0 0 0 / 72%) 58%,transparent 97%)}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(72% 52% at 50% 0%,rgb(240 235 214 / 9%),transparent 74%);pointer-events:none}.hero-top,.hero-body{position:relative;width:100%;max-width:var(--shell-max);margin-inline:auto}.hero-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:104px}.hero-top .logo{color:var(--on-ink)}.hero-top .app-nav{background:#f0ebd61f}.hero-top .nav-item{text-decoration:none;background:var(--cream);color:var(--ink)}.hero-top .nav-item:hover{background:var(--surface);box-shadow:0 8px 24px -12px #00000073}.hero-body{margin-top:auto;padding-top:var(--space-8);display:grid;justify-items:center;text-align:center}.hero-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#f0ebd6b8}.hero-title{margin-top:var(--space-4);font-size:clamp(3rem,10vw,7rem);font-weight:800;line-height:.95;letter-spacing:-.04em;max-width:16ch}.hero-lead{margin-top:var(--space-5);max-width:34rem;font-size:var(--text-lg);line-height:1.6;color:#f0ebd6c7}.hero-affirmations{position:relative;display:grid;place-items:center;margin-top:var(--space-6);min-height:2.4em;max-width:34rem;font-size:var(--text-md);font-style:italic;line-height:1.5;color:#f0ebd6eb}.hero-affirmations span{grid-area:1 / 1;padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:#f0ebd61a;opacity:0;transform:translateY(4px);transition:opacity .7s var(--ease),transform .7s var(--ease);pointer-events:none}.hero-affirmations span.is-active{opacity:1;transform:translateY(0)}.hero-scroll{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-7);font-size:var(--text-sm);color:var(--on-ink);text-decoration:underline;text-decoration-color:#f0ebd666;text-underline-offset:5px}.hero-scroll:hover{text-decoration-color:currentColor}.countdown-section{position:relative;overflow:hidden;background:var(--ink);color:var(--on-ink);padding-block:clamp(var(--space-8),8vw,var(--space-9))}.countdown-art{position:absolute;top:0;right:0;bottom:0;left:0;color:var(--cream);pointer-events:none;opacity:.55}.countdown-art .vine-art{-webkit-mask-image:radial-gradient(80% 65% at 50% 50%,black 0%,transparent 82%);mask-image:radial-gradient(80% 65% at 50% 50%,black 0%,transparent 82%)}.countdown-inner{position:relative;max-width:var(--shell-max);margin-inline:auto;text-align:center}.countdown-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:#f0ebd624;color:#f0ebd6e0;font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase}.countdown-title{margin-top:var(--space-5);font-size:clamp(1.75rem,4vw,2.75rem);line-height:1.15;max-width:22ch;margin-inline:auto;color:var(--on-ink)}.countdown-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);margin:var(--space-7) auto 0;padding:0;list-style:none;max-width:40rem}.countdown-grid li{display:grid;gap:var(--space-2);padding:var(--space-5) var(--space-3);background:var(--surface);border-radius:var(--radius-lg);box-shadow:0 12px 32px -18px #0000008c}.countdown-value{font-size:clamp(2rem,6vw,3.25rem);font-weight:800;letter-spacing:-.03em;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1}.countdown-label{font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.countdown-date{margin-top:var(--space-6);font-size:var(--text-sm);color:#f0ebd6b8;font-style:italic}.support-section{max-width:var(--shell-max);margin-inline:auto;padding-block:clamp(var(--space-8),8vw,var(--space-9));text-align:center;display:grid;justify-items:center}.section-title{font-size:var(--text-xs);font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-muted)}.support-heading{margin-top:var(--space-4);font-size:clamp(1.5rem,3.4vw,2.25rem);line-height:1.2;max-width:26ch}.support-lead{margin-top:var(--space-4);max-width:42rem;font-size:var(--text-md);line-height:1.75;color:var(--ink-muted)}.support-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:var(--space-4);margin:var(--space-7) 0 0;padding:0;list-style:none;width:100%}.support-cards li{display:grid;justify-items:center;padding:var(--space-6);background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:center}.support-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--on-ink)}.support-cards h3{margin-top:var(--space-4);font-size:var(--text-lg)}.support-cards p{margin-top:var(--space-3);max-width:26ch;font-size:var(--text-sm);line-height:1.7;color:var(--ink-muted)}.admirer-section{max-width:var(--shell-max);margin-inline:auto;padding-block:clamp(var(--space-6),5vw,var(--space-8))}.admirer{position:relative;padding:clamp(var(--space-7),6vw,var(--space-9)) clamp(var(--space-6),5vw,var(--space-8));background:var(--surface);color:var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);border:1px solid var(--line);max-width:44rem;margin-inline:auto;text-align:center;display:grid;justify-items:center;gap:var(--space-5)}.admirer-eyebrow{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--wash);font-size:var(--text-xs);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-muted)}.admirer-stage{position:relative;display:grid;width:100%;min-height:8rem}.admirer-note{grid-area:1 / 1;margin:0;padding:0 var(--space-3);font-size:var(--text-lg);line-height:1.7;font-style:italic;color:var(--ink);max-width:34rem;justify-self:center;opacity:0;transform:translateY(6px);transition:opacity .6s var(--ease),transform .6s var(--ease);pointer-events:none}.admirer-note.is-active{opacity:1;transform:translateY(0)}.admirer-dots{display:flex;justify-content:center;gap:var(--space-3);margin:0;padding:0;list-style:none}.admirer-dot{width:10px;height:10px;padding:0;border:1px solid var(--line-strong);border-radius:50%;background:transparent;cursor:pointer;transition:background var(--duration) var(--ease),transform var(--duration) var(--ease)}.admirer-dot:hover{background:var(--wash)}.admirer-dot.is-active{background:var(--ink);border-color:var(--ink);transform:scale(1.15)}.admirer-dot:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.admirer-signoff{margin:0;font-size:var(--text-sm);font-weight:700;letter-spacing:.14em;color:var(--ink-faint)}.admirer-cta{display:inline-flex;align-items:center;gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-4) var(--space-6);border-radius:var(--radius-pill);background:var(--ink);color:var(--on-ink);font-size:var(--text-md);font-weight:700;text-decoration:none;transition:box-shadow var(--duration) var(--ease)}.admirer-cta:hover{box-shadow:0 10px 30px -14px #0000008c}.landing-footer{max-width:var(--shell-max);margin-inline:auto;padding:clamp(var(--space-7),6vw,var(--space-8)) var(--band-inset) clamp(var(--space-6),4vw,var(--space-7))}.landing-footer-inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-7);padding-bottom:var(--space-6);border-bottom:1px solid var(--line)}.landing-footer-brand p{margin-top:var(--space-2);font-size:var(--text-xs);color:var(--ink-faint)}.landing-footer-links{display:flex;flex-wrap:wrap;gap:var(--space-8)}.landing-footer-links>div{display:grid;gap:var(--space-3);align-content:start}.landing-footer-links h2{font-size:var(--text-xs);font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint)}.landing-footer-links a{font-size:var(--text-sm);color:var(--ink);text-decoration:none;width:fit-content}.landing-footer-links a:hover{text-decoration:underline;text-underline-offset:4px}.landing-footer-note{margin-top:var(--space-5);max-width:44rem;font-size:var(--text-xs);line-height:1.7;color:var(--ink-faint)}@media(max-width:750px){.hero-top{min-height:84px}.hero-top .logo{font-size:38px}.admirer-cta{width:100%;justify-content:center}.admirer-stage{min-height:10rem}.countdown-grid{gap:var(--space-2)}.countdown-grid li{padding:var(--space-4) var(--space-2)}}
