:root{color-scheme:light;--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;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 20px;--radius-xl: 26px;--radius-2xl: 32px;--radius-pill: 9999px;--duration-fast: .12s;--duration-normal: .2s;--duration-slow: .32s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-spring: cubic-bezier(.2, .8, .2, 1);--background: #f4f2ed;--surface: #fffefa;--surface-raised: #ffffff;--surface-soft: #eeece6;--text-primary: rgba(20, 24, 29, .92);--text-secondary: rgba(20, 24, 29, .62);--text-tertiary: rgba(20, 24, 29, .42);--glass-bg: rgba(255, 255, 255, .7);--glass-bg-strong: rgba(255, 255, 255, .84);--glass-border: rgba(255, 255, 255, .7);--glass-border-subtle: rgba(20, 24, 29, .08);--glass-highlight: rgba(255, 255, 255, .78);--glass-blur: 18px;--glass-blur-strong: 26px;--shadow-soft: 0 1px 2px rgba(25, 29, 34, .04), 0 10px 30px rgba(25, 29, 34, .07);--shadow-floating: 0 2px 5px rgba(25, 29, 34, .06), 0 18px 46px rgba(25, 29, 34, .13);--accent: #176b5b;--accent-hover: #105c4f;--accent-soft: #e4f0eb;--accent-text: #0d5448;--danger: #b74238;--danger-soft: #fae7e2;--warning: #9a6514;--warning-soft: #f7edd8;--info: #366293;--info-soft: #e4edf7}:root[data-theme=dark]{color-scheme:dark;--background: #111412;--surface: #1b1f1c;--surface-raised: #202521;--surface-soft: #252a26;--text-primary: rgba(249, 249, 245, .94);--text-secondary: rgba(249, 249, 245, .64);--text-tertiary: rgba(249, 249, 245, .43);--glass-bg: rgba(29, 34, 30, .76);--glass-bg-strong: rgba(35, 41, 36, .88);--glass-border: rgba(255, 255, 255, .11);--glass-border-subtle: rgba(255, 255, 255, .08);--glass-highlight: rgba(255, 255, 255, .12);--shadow-soft: 0 1px 2px rgba(0, 0, 0, .2), 0 10px 30px rgba(0, 0, 0, .24);--shadow-floating: 0 2px 6px rgba(0, 0, 0, .24), 0 18px 46px rgba(0, 0, 0, .36);--accent: #72c1ad;--accent-hover: #88cbb9;--accent-soft: #203a33;--accent-text: #9bd7c7;--danger: #f08d82;--danger-soft: #492a27;--warning: #e6b567;--warning-soft: #433721;--info: #8db8e8;--info-soft: #25384e}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% -10%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 42rem),var(--background);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}button,textarea{font:inherit}button{color:inherit}button:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,a:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 48%,transparent);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.48}[hidden]{display:none!important}.skip-link{position:fixed;z-index:100;top:var(--space-3);left:var(--space-3);transform:translateY(-180%);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--text-primary);box-shadow:var(--shadow-floating)}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.glass-surface,.glass-elevated{position:relative;background:var(--glass-bg-strong);border:1px solid var(--glass-border);box-shadow:var(--shadow-soft)}.glass-surface:before,.glass-elevated:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;box-shadow:inset 0 1px 0 var(--glass-highlight)}.glass-elevated{background:var(--glass-bg-strong);box-shadow:var(--shadow-floating)}@supports (backdrop-filter: blur(1px)){.glass-surface{background:linear-gradient(180deg,#ffffff14,#ffffff04),var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(135%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(135%)}.glass-elevated{backdrop-filter:blur(var(--glass-blur-strong)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur-strong)) saturate(140%)}}.site-nav{position:sticky;z-index:20;top:var(--space-3);width:min(calc(100% - var(--space-6)),1180px);min-height:64px;margin:var(--space-3) auto 0;padding:6px;border-radius:var(--radius-xl);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-4)}.brand,.theme-button,.step-tab,.dock-button,.hint-button,.icon-button{border:0;background:transparent;cursor:pointer}.brand{min-height:50px;width:max-content;padding:0 var(--space-3) 0 var(--space-2);display:flex;align-items:center;gap:var(--space-3);text-align:left;border-radius:var(--radius-lg)}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:var(--accent);color:var(--surface-raised);font-weight:750;line-height:1}:root[data-theme=dark] .brand-mark{color:#10251f}.brand-copy{display:grid;line-height:1.2}.brand-copy strong{font-size:14px;letter-spacing:-.01em}.brand-copy span{margin-top:2px;color:var(--text-tertiary);font-size:11px}.step-nav{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--text-primary) 5%,transparent)}.step-tab{min-height:42px;padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--text-secondary);font-size:14px;font-weight:600;transition:background var(--duration-normal) var(--ease-standard),color var(--duration-normal) var(--ease-standard),transform var(--duration-fast) var(--ease-standard)}.step-tab span{margin-right:var(--space-1);color:var(--text-tertiary)}.step-tab.is-active{background:var(--surface-raised);color:var(--accent-text);box-shadow:0 1px 5px #14181d14}.step-tab.is-active span{color:inherit}.step-tab:not(:disabled):active{transform:scale(.98)}.theme-button{justify-self:end;min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-md);display:flex;align-items:center;gap:var(--space-2);color:var(--text-secondary);font-size:13px;font-weight:600}.theme-symbol{width:15px;height:15px;border:2px solid currentColor;border-radius:50%;box-shadow:-5px -3px 0 -3px currentColor}.brand:hover,.theme-button:hover,.dock-button:hover{background:color-mix(in srgb,var(--text-primary) 6%,transparent)}.app-shell{width:min(calc(100% - var(--space-8)),1120px);margin:0 auto;min-height:calc(100vh - 170px)}.view{animation:view-in var(--duration-slow) var(--ease-spring) both}@keyframes view-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.hero{max-width:760px;padding:clamp(72px,11vw,120px) 0 var(--space-12)}.eyebrow,.section-index{margin:0 0 var(--space-3);color:var(--accent-text);font-size:12px;font-weight:750;letter-spacing:.13em;text-transform:uppercase}.hero h1,.section-intro h1,.result-hero h1{margin:0;max-width:720px;font-size:clamp(40px,7vw,68px);font-weight:680;letter-spacing:-.055em;line-height:1.04;word-break:keep-all}.hero-copy{max-width:610px;margin:var(--space-6) 0 0;color:var(--text-secondary);font-size:clamp(16px,2vw,19px);line-height:1.75;word-break:keep-all}.content-surface{background:var(--surface);border:1px solid var(--glass-border-subtle);box-shadow:var(--shadow-soft)}.editor-card,.analysis-card{border-radius:var(--radius-xl);padding:var(--space-8)}.card-heading,.analysis-heading,.card-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-5)}.card-heading{margin-bottom:var(--space-6)}.card-heading h2,.analysis-heading h2{margin:0;font-size:26px;letter-spacing:-.035em;line-height:1.25}.section-index{margin-bottom:var(--space-1);font-size:11px}.save-state{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);color:var(--text-secondary);font-size:13px}.save-dot{width:7px;height:7px;border-radius:50%;background:var(--accent)}.editor-frame{position:relative}textarea{display:block;width:100%;min-height:310px;resize:vertical;padding:var(--space-6) var(--space-6) 72px;border:1px solid var(--glass-border-subtle);border-radius:var(--radius-lg);background:var(--surface-soft);color:var(--text-primary);font-family:ui-serif,Georgia,Times New Roman,serif;font-size:20px;line-height:1.85;caret-color:var(--accent);transition:border var(--duration-normal) var(--ease-standard),background var(--duration-normal) var(--ease-standard),box-shadow var(--duration-normal) var(--ease-standard)}textarea::placeholder{color:var(--text-tertiary)}textarea:hover{border-color:color-mix(in srgb,var(--text-primary) 15%,transparent)}textarea:focus{background:var(--surface-raised);border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent)}.editor-toolbar{position:absolute;right:var(--space-3);bottom:var(--space-3);display:flex;align-items:baseline;gap:6px;min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);color:var(--text-secondary);font-size:12px}.editor-toolbar strong{color:var(--text-primary);font-size:14px}.editor-toolbar i{width:1px;height:14px;margin:0 var(--space-1);background:var(--glass-border-subtle)}.selection-label{margin-right:var(--space-1);color:var(--text-tertiary);font-weight:700}.selection-label.is-selection{color:var(--accent-text)}.card-footer{align-items:center;margin-top:var(--space-5)}.card-footer p{max-width:560px;margin:0;color:var(--text-secondary);font-size:13px}.action-group{display:flex;gap:var(--space-2);flex-shrink:0}.primary-button,.secondary-button{min-height:46px;padding:0 var(--space-5);border-radius:var(--radius-md);font-size:14px;font-weight:700;cursor:pointer;transition:transform var(--duration-fast) var(--ease-standard),background var(--duration-normal) var(--ease-standard),box-shadow var(--duration-normal) var(--ease-standard)}.primary-button{border:1px solid transparent;background:var(--accent);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--accent) 20%,transparent)}:root[data-theme=dark] .primary-button{color:#10251f}.primary-button:not(:disabled):hover{background:var(--accent-hover)}.secondary-button{border:1px solid var(--glass-border-subtle);background:var(--surface-raised);color:var(--text-secondary)}.secondary-button:not(:disabled):hover{color:var(--text-primary);background:var(--surface-soft)}.primary-button:not(:disabled):active,.secondary-button:not(:disabled):active,.hint-button:active{transform:scale(.98)}.privacy-note{display:flex;align-items:flex-start;gap:var(--space-3);width:fit-content;margin:var(--space-6) auto var(--space-16);color:var(--text-secondary);font-size:13px}.privacy-note strong{color:var(--text-primary);font-size:13px}.privacy-note p{margin:1px 0 0}.privacy-mark{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:800}.section-intro{padding:clamp(64px,9vw,100px) 0 var(--space-10)}.compact-intro{max-width:760px}.compact-intro h1,.result-hero h1{font-size:clamp(36px,5.5vw,56px)}.compact-intro>p:last-child{margin:var(--space-5) 0 0;color:var(--text-secondary);font-size:17px}.practice-progress{margin:var(--space-2) 0 0;color:var(--text-secondary);font-size:13px}.practice-frame textarea{min-height:370px}.practice-dock,.result-actions{position:sticky;z-index:10;bottom:max(var(--space-3),env(safe-area-inset-bottom));width:min(100%,760px);min-height:68px;margin:var(--space-6) auto var(--space-12);padding:6px;border-radius:var(--radius-xl);display:flex;align-items:center;gap:var(--space-2)}.dock-button,.hint-button{min-height:54px;padding:0 var(--space-4);border-radius:var(--radius-lg);font-size:13px;font-weight:700;transition:transform var(--duration-fast) var(--ease-standard),background var(--duration-normal) var(--ease-standard)}.dock-divider{width:1px;height:30px;background:var(--glass-border-subtle)}.dock-copy{display:grid;flex:1;padding:0 var(--space-2);line-height:1.3}.dock-copy strong{font-size:13px}.dock-copy span{margin-top:3px;color:var(--text-tertiary);font-size:11px}.hint-button{background:var(--text-primary);color:var(--surface)}.hint-count{display:inline-grid;place-items:center;min-width:24px;height:24px;margin-left:var(--space-2);padding:0 6px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface) 18%,transparent)}.hint-popover{position:fixed;z-index:30;right:max(var(--space-6),calc((100vw - 1120px)/2));bottom:104px;width:min(calc(100% - var(--space-8)),390px);padding:var(--space-5);border-radius:var(--radius-xl);display:flex;gap:var(--space-4);animation:pop-in var(--duration-normal) var(--ease-spring) both}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}.hint-popover>div{flex:1}.hint-level{color:var(--accent-text);font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hint-popover p{margin:var(--space-2) 0 0;color:var(--text-primary);font-size:14px;line-height:1.6}.icon-button{width:44px;height:44px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:24px;line-height:1}.icon-button:hover{background:color-mix(in srgb,var(--text-primary) 7%,transparent)}.result-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-8);padding:clamp(64px,9vw,100px) 0 var(--space-10)}.score-orbit{--score: 0;flex:0 0 auto;width:154px;height:154px;position:relative;isolation:isolate;background:conic-gradient(from -90deg,var(--accent) calc(var(--score) * 1%),var(--accent-soft) 0);border-radius:50%;display:grid;grid-template-columns:auto auto;place-content:center;align-items:baseline}.score-orbit:before{content:"";position:absolute;z-index:-1;inset:10px;border-radius:50%;background:var(--background)}.score-orbit span{position:relative;z-index:1;font-size:42px;font-weight:720;letter-spacing:-.05em;line-height:1}.score-orbit small{margin-left:2px;color:var(--text-secondary);font-size:16px}.score-orbit p{grid-column:1 / -1;margin:var(--space-2) 0 0;color:var(--text-secondary);font-size:12px;text-align:center}.score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-4)}.score-card{min-height:150px;padding:var(--space-6);border-radius:var(--radius-lg)}.score-card p{margin:0;color:var(--text-secondary);font-size:13px;font-weight:650}.score-card strong{display:block;margin:var(--space-3) 0 var(--space-2);font-size:34px;line-height:1;letter-spacing:-.04em}.score-card span{display:block;color:var(--text-tertiary);font-size:12px;line-height:1.5}.hint-score-card strong{color:var(--accent-text)}.analysis-card{margin-bottom:var(--space-4)}.analysis-heading{align-items:center;margin-bottom:var(--space-6)}.legend{display:flex;flex-wrap:wrap;gap:var(--space-3);color:var(--text-secondary);font-size:11px}.legend span{display:flex;align-items:center;gap:5px}.legend i{display:block;width:8px;height:8px;border-radius:3px}.legend-changed i{background:var(--danger)}.legend-missing i{background:var(--warning)}.diff-passage{padding:var(--space-6);border-radius:var(--radius-lg);background:var(--surface-soft);font-family:ui-serif,Georgia,Times New Roman,serif;font-size:19px;line-height:2.35}.diff-word{display:inline;padding:3px 4px;border-radius:5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.diff-word.correct{color:var(--text-primary)}.diff-word.changed{background:var(--danger-soft);color:var(--danger)}.diff-word.changed small{margin-left:5px;font-family:inherit;font-size:13px;font-weight:700}.diff-word.missing{background:var(--warning-soft);color:var(--warning);text-decoration:underline wavy;text-underline-offset:4px}.diff-word.extra{border:1px dashed color-mix(in srgb,var(--info) 42%,transparent);color:var(--info)}.diff-word.case{background:var(--info-soft);color:var(--info)}.issue-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-2);margin-top:var(--space-5)}.issue-summary div{padding:var(--space-3) var(--space-4);border-left:1px solid var(--glass-border-subtle)}.issue-summary div:first-child{border-left:0}.issue-summary strong{display:block;font-size:20px}.issue-summary span{color:var(--text-secondary);font-size:12px}.review-list{display:grid;gap:var(--space-3)}.review-item{display:grid;grid-template-columns:48px 1fr;align-items:start;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-md);background:var(--surface-soft)}.review-code{display:grid;place-items:center;min-height:40px;border-radius:var(--radius-sm);font-size:12px;font-weight:800;background:var(--surface-raised);color:var(--text-secondary)}.review-item strong{font-size:14px}.review-item p{margin:2px 0 0;color:var(--text-secondary);font-size:13px;overflow-wrap:anywhere}.review-item.changed .review-code{background:var(--danger-soft);color:var(--danger)}.review-item.missing .review-code{background:var(--warning-soft);color:var(--warning)}.review-item.extra .review-code,.review-item.case .review-code,.review-item.punctuation .review-code{background:var(--info-soft);color:var(--info)}.review-item.perfect .review-code{background:var(--accent-soft);color:var(--accent-text)}.result-actions{justify-content:flex-end;width:fit-content;margin-right:0}.site-footer{width:min(calc(100% - var(--space-8)),1120px);margin:var(--space-16) auto var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--glass-border-subtle);display:flex;justify-content:space-between;color:var(--text-tertiary);font-size:12px}.site-footer p{margin:0}@media(max-width:760px){.site-nav{grid-template-columns:auto 1fr auto}.brand-copy,.theme-label,.step-tab{font-size:0}.brand{padding:0 var(--space-2)}.step-tab{min-width:42px;padding:0}.step-tab span{margin:0;font-size:13px}.theme-button{width:44px;justify-content:center;padding:0}.app-shell{width:min(calc(100% - var(--space-6)),1120px)}.hero{padding-top:var(--space-16)}.hero h1{font-size:clamp(40px,12.5vw,56px)}.editor-card,.analysis-card{padding:var(--space-5);border-radius:var(--radius-lg)}.card-heading{display:block}.save-state{padding-top:var(--space-3)}textarea{min-height:300px;padding:var(--space-5) var(--space-4) 72px;font-size:18px}.card-footer{align-items:stretch;flex-direction:column}.action-group{width:100%}.action-group>button,.card-footer>button{flex:1}.practice-dock{position:fixed;left:var(--space-3);right:var(--space-3);bottom:max(var(--space-3),env(safe-area-inset-bottom));width:auto;margin:0}.dock-copy,.dock-divider{display:none}.dock-button,.hint-button{flex:1;padding-inline:var(--space-2)}.hint-popover{right:var(--space-4);bottom:96px}#practice-view{padding-bottom:104px}.result-hero{align-items:flex-start}.score-orbit{width:120px;height:120px}.score-orbit:before{inset:8px}.score-orbit span{font-size:32px}.score-grid{grid-template-columns:1fr}.score-card{min-height:auto}.analysis-heading{align-items:flex-start;flex-direction:column}.issue-summary{grid-template-columns:repeat(2,1fr)}.issue-summary div:nth-child(3){border-left:0}.result-actions{position:static;width:100%;margin:var(--space-5) 0 var(--space-12)}.result-actions button{flex:1}.site-footer{display:block}.site-footer p+p{margin-top:var(--space-1)}}@media(max-width:480px){.site-nav{width:calc(100% - var(--space-4));top:var(--space-2);margin-top:var(--space-2);gap:var(--space-1)}.brand-mark{width:36px;height:36px}.hero h1,.compact-intro h1,.result-hero h1{font-size:38px}.hero-copy{font-size:16px}.card-footer .action-group{display:grid;grid-template-columns:auto 1fr}.privacy-note{margin-bottom:var(--space-12)}.result-hero{display:block}.score-orbit{margin-top:var(--space-8)}.legend{gap:var(--space-2)}.diff-passage{padding:var(--space-4);font-size:18px}.result-actions{flex-direction:column}.result-actions button{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
