:root{--paper:#fbf8f1;--card:#fff;--ink:#2b2a27;--muted:#6f6a60;--line:#e6e0d3;--pen:#c2412d;--pen-ink:#fff;--focus:#2f6fb3;--ok:#2f7d4f;--grammar:#f6d6cf;--vocabulary:#f3e3b5;--coherence:#d5e3f3;--task:#e2d7f0;--strength:#d2ecd9;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#1b1a18;--card:#24221f;--ink:#ece7dc;--muted:#a39d90;--line:#3a3732;--pen:#e06a52;--pen-ink:#1b1a18;--focus:#7fb0e6;--ok:#6fc391;--grammar:#5a2f27;--vocabulary:#54471f;--coherence:#263d55;--task:#3d3150;--strength:#24452f;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans);margin:0}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2}h1{margin:.4rem 0 .8rem;font-size:1.9rem}h2{margin:1.6rem 0 .6rem;font-size:1.3rem}.card h2,.card h1{margin-top:0}h3{margin:0 0 .6rem;font-size:1.05rem}a{color:var(--pen)}code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.92em}code.big{word-break:break-all;margin:.2rem 0;font-size:1.05rem;display:block}.page{max-width:1120px;margin:0 auto;padding:0 16px 64px}.page.student{max-width:980px}.topbar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:14px 0;display:flex}.brand{font-family:var(--serif);color:var(--ink);border-left:3px solid var(--pen);padding-left:10px;font-size:1.35rem;font-weight:700;text-decoration:none}nav{flex-wrap:wrap;align-items:center;gap:18px;display:flex}nav a{color:var(--ink);text-decoration:none}nav a:hover{color:var(--pen)}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:20px}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.row.between{justify-content:space-between}.grow{flex:1}.narrow{max-width:520px;margin:40px auto}.muted{color:var(--muted)}.small{font-size:.86rem}.prewrap{white-space:pre-wrap}.error{color:var(--pen);margin:0}.ok{color:var(--ok);margin:0}.empty{color:var(--muted)}.crumbs{color:var(--muted);margin:0;font-size:.9rem}.task{white-space:pre-wrap;border-left:3px solid var(--line);color:var(--muted);padding-left:12px}label{font-weight:500;display:block}label>input,label>textarea,label>select{margin-top:4px;display:block}input,textarea,select{font:inherit;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:7px;width:100%;padding:8px 10px}textarea{resize:vertical;line-height:1.5}input:focus-visible,textarea:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:7px;padding:8px 14px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.55;cursor:not-allowed}button.primary{background:var(--pen);border-color:var(--pen);color:var(--pen-ink);font-weight:600}button.link{color:var(--pen);background:0 0;border:none;padding:0;text-decoration:underline}.auth{grid-template-columns:1.2fr 1fr;align-items:start;gap:40px;padding-top:8vh;display:grid}.hero h1{border-left:4px solid var(--pen);margin:0;padding-left:14px;font-size:3rem}.lede{font-family:var(--serif);margin:.6rem 0 1.2rem;font-size:1.4rem}.points{flex-direction:column;gap:6px;padding-left:1.1rem;display:flex}.auth-form{flex-direction:column;gap:14px;display:flex}.list{margin:0;padding:0;list-style:none}.list-item{flex-direction:column;gap:2px;padding:14px 18px;display:flex}.list-item a{color:var(--ink);font-size:1.1rem;text-decoration:none}.list-item a:hover{color:var(--pen)}.table{border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:10px;width:100%;overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:10px 12px}.table th{color:var(--muted);font-size:.85rem;font-weight:600}.table tr:last-child td{border-bottom:none}.status{background:var(--paper);border:1px solid var(--line);white-space:nowrap;border-radius:99px;padding:2px 8px;font-size:.85rem}.status-drafted{border-color:var(--pen);color:var(--pen)}.status-released{border-color:var(--ok);color:var(--ok)}.share{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.review-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:24px;margin:16px 0;display:grid}.essay{background:var(--card);border:1px solid var(--line);font-family:var(--serif);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;padding:28px 32px;font-size:1.12rem;line-height:1.85}.hl{color:inherit;cursor:pointer;border-radius:3px;padding:1px 0}.hl-grammar{background:var(--grammar)}.hl-vocabulary{background:var(--vocabulary)}.hl-coherence{background:var(--coherence)}.hl-task{background:var(--task)}.hl-strength{background:var(--strength)}.hl-muted{-webkit-text-decoration:line-through dotted var(--muted);text-decoration:line-through dotted var(--muted);background:0 0}.hl-active{outline:2px solid var(--pen)}.selection-bar{min-height:40px;padding:8px 0}.margin-col{flex-direction:column;gap:10px;max-height:calc(100vh - 24px);padding-right:2px;display:flex;position:sticky;top:12px;overflow-y:auto}.ann{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:8px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.ann.active{border-left-color:var(--pen)}.ann.off{opacity:.55}.ann.mine{border-left-color:var(--focus)}.ann q{font-family:var(--serif);color:var(--muted);font-style:italic}.ann p{margin:0}.ann select{width:auto;padding:2px 6px}.toggle{flex-direction:row;align-items:center;gap:6px;font-size:.9rem;font-weight:400;display:flex}.toggle input{width:auto}.tag{text-transform:uppercase;letter-spacing:.03em;border-radius:99px;align-self:flex-start;padding:1px 8px;font-size:.75rem;font-weight:600}.tag-grammar{background:var(--grammar)}.tag-vocabulary{background:var(--vocabulary)}.tag-coherence{background:var(--coherence)}.tag-task{background:var(--task)}.tag-strength{background:var(--strength)}.criterion{border-top:1px solid var(--line);flex-direction:column;gap:6px;padding-top:12px;display:flex}.criterion:first-of-type{border-top:none;padding-top:0}.criterion p{margin:0}.scale{flex-wrap:wrap;gap:6px;display:flex}.scale button{min-width:42px;padding:6px 0;font-weight:600;position:relative}.scale button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.scale button.ai:after{content:"AI";background:var(--pen);color:var(--pen-ink);border-radius:4px;padding:0 3px;font-size:.6rem;position:absolute;top:-8px;right:-6px}.choices{flex-direction:column;gap:8px;display:flex}.choice{border:1px solid var(--line);cursor:pointer;border-radius:8px;flex-direction:row;align-items:flex-start;gap:10px;padding:10px 12px;font-weight:400;display:flex}.choice.on{border-color:var(--pen)}.choice input{width:auto;margin-top:4px}.choice>span{flex-direction:column;gap:2px;display:flex}.tiles{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.tile{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:16px}.tile-label{color:var(--muted);font-size:.88rem}.tile-value{font-family:var(--serif);font-size:2rem;font-weight:600}@media (width<=860px){.auth{grid-template-columns:1fr;gap:16px;padding-top:2vh}.review-grid{grid-template-columns:1fr}.margin-col{max-height:none;position:static}.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.essay{padding:18px}.table{display:block;overflow-x:auto}}.stack-tight{flex-direction:column;align-items:flex-start;gap:4px;display:flex}.field-label{font-weight:500}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.onboarding h2{margin:0}.sample-cta{background:var(--paper);border:1px dashed var(--pen);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:14px 0 4px;padding:14px 16px;display:flex}.sample-cta p{margin:4px 0 0}.steps{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:14px 0 0;padding:0;list-style:none;display:grid}.steps li{align-items:flex-start;gap:10px;display:flex}.steps p{margin:2px 0 0}.step-mark{border:2px solid var(--line);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.9rem;font-weight:700;display:grid}.steps li.done .step-mark{background:var(--ok);border-color:var(--ok);color:var(--paper)}.steps li.done strong{color:var(--muted);text-decoration:line-through}.progress{color:var(--ink);align-items:center;gap:10px;display:flex}.spinner{border:2px solid var(--line);border-top-color:var(--pen);border-radius:50%;flex:none;width:16px;height:16px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.hint,.tip{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--focus);border-radius:8px;padding:10px 14px}.tip{margin:12px 0}.tip ul{flex-direction:column;gap:4px;margin:8px 0 0;padding-left:1.1rem;display:flex}.ai-chip{background:var(--pen);color:var(--pen-ink);border-radius:4px;padding:0 4px;font-size:.65rem;font-weight:700}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;margin:8px 0 0;display:flex}.legend>span{align-items:center;gap:6px;display:inline-flex}.swatch{border-radius:3px;width:14px;height:14px;display:inline-block}.danger-zone{margin-top:40px}button.link.danger{color:var(--pen)}.how-title{margin-top:1.4rem}.how{flex-direction:column;gap:10px;padding:0;list-style:none;display:flex}.how li{align-items:flex-start;gap:12px;display:flex}.how li>span{background:var(--pen);width:28px;height:28px;color:var(--pen-ink);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.how p{margin:2px 0 0}.plain-steps{flex-direction:column;gap:6px;margin:0;display:flex}.faq{flex-direction:column;gap:0;display:flex}.faq details{margin:6px 0;padding:14px 18px}.faq summary{cursor:pointer;font-weight:600}.faq-a{margin-top:8px}@media (width<=860px){.steps{grid-template-columns:1fr}}fieldset.skill-choice{border:none;grid-template-columns:1fr 1fr;gap:8px;margin:0;padding:0;display:grid}fieldset.skill-choice legend{margin-bottom:4px;padding:0;font-weight:500}.skill-tag{letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--line);border-radius:99px;padding:1px 8px;font-size:.72rem;font-weight:700}.skill-speaking{color:var(--focus);border-color:var(--focus)}.skill-writing{color:var(--muted)}@media (width<=620px){fieldset.skill-choice{grid-template-columns:1fr}}.status-warn{color:#b7791f;border-color:#b7791f;margin-left:6px}.recorder{flex-direction:column;gap:12px;margin:0;display:flex}.rec-live{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.rec-clock{font-variant-numeric:tabular-nums;color:var(--muted)}.rec-dot{background:var(--pen);border-radius:50%;width:10px;height:10px;display:inline-block}.rec-live .rec-dot{animation:1.2s ease-in-out infinite pulse}.rec-button .rec-dot{background:var(--pen-ink);margin-right:4px}@keyframes pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.rec-live .rec-dot{animation:none}}.rec-audio{width:100%}.rec-upload{color:var(--muted);font-weight:400}.rec-upload input{background:0 0;border:none;padding:4px 0}.speech-panel h3{margin:0}.speech-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:start;gap:20px;display:grid}.measures{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.measures>div{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:8px 10px}.measures dt{color:var(--muted);font-size:.78rem}.measures dd{font-family:var(--serif);margin:2px 0 0;font-size:1.35rem;font-weight:600}.measures dd span{font-family:var(--sans);color:var(--muted);font-size:.78rem;font-weight:400}.unsure{margin-top:12px}.unsure ul{margin:4px 0 0;padding-left:1.1rem}.transcript-edit{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.transcript-edit p{margin:0}@media (width<=860px){.speech-grid{grid-template-columns:1fr}.measures{grid-template-columns:repeat(2,minmax(0,1fr))}}
