:root{--fg:#1a1a1a;--muted:#6b7280;--line:#e5e7eb;--ok:#15803d;--ng:#b91c1c;--bg:#fff}.loading-spinner{box-sizing:border-box;border:3px solid var(--brand-primary-light,#e3f5e8);border-top-color:var(--text-brand,#00a63b);border-radius:50%;flex:none;width:24px;height:24px;animation:.8s linear infinite loading-spinner-turn;display:inline-block}.loading-spinner-small{border-width:2px;border-color:currentColor currentColor #0000 #0000;width:16px;height:16px}.loading-status-line{align-items:center;gap:10px;display:flex}.gaze-calibration-status .loading-status-line{justify-content:center}.loading-button-label{vertical-align:middle;max-width:100%;display:inline-grid}.loading-button-idle,.loading-button-pending{grid-area:1/1;min-width:0}.loading-button-pending{justify-content:center;align-items:center;gap:8px;display:flex}.loading-button-icon{flex:none;width:16px;height:16px;display:inline-flex}@keyframes loading-spinner-turn{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.loading-spinner{animation:none}}@media (prefers-color-scheme:dark){:root{--fg:#e5e7eb;--muted:#9ca3af;--line:#374151;--ok:#4ade80;--ng:#f87171;--bg:#111827}}*{box-sizing:border-box}body{color:var(--fg);background:var(--bg);margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif}h1{margin:0 0 .25rem;font-size:1.5rem}h2{margin:0 0 .5rem;font-size:1.05rem}.lead{color:var(--muted);margin:0 0 2rem}section{border-top:1px solid var(--line);padding:1.5rem 0}.hint{color:var(--muted);font-size:.875rem}button{font:inherit;border:1px solid var(--line);color:var(--fg);cursor:pointer;background:0 0;border-radius:6px;padding:.5rem 1rem}button:disabled{opacity:.45;cursor:default}label{margin-right:.75rem;font-size:.875rem;display:inline-block}input[type=number]{width:5rem;font:inherit;border:1px solid var(--line);color:var(--fg);background:0 0;border-radius:4px;padding:.25rem .4rem}table{border-collapse:collapse;width:100%;margin:.75rem 0;font-size:.875rem;display:block;overflow-x:auto}th,td{text-align:left;border-bottom:1px solid var(--line);white-space:nowrap;padding:.4rem .6rem}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}pre{background:color-mix(in srgb, var(--fg) 5%, transparent);border-radius:6px;padding:1rem;font-size:.8rem;overflow-x:auto}video{background:#000;border-radius:8px;width:240px;max-width:100%;margin-top:1rem;display:block}audio{width:100%;margin-top:.5rem}details{margin:.5rem 0}summary{cursor:pointer;color:var(--muted);font-size:.875rem}.screen{background:var(--bg-page);flex-direction:column;min-height:100dvh;display:flex}.screen-body{width:100%;max-width:var(--content-max);padding-inline:var(--gutter);flex-direction:column;flex:1;justify-content:center;margin-inline:auto;display:flex}.enroll{grid-template-columns:1fr minmax(320px,420px);align-items:center;gap:clamp(24px,5vw,80px);padding-block:48px;display:grid}@media not (min-width:900px){.enroll{grid-template-columns:1fr}.enroll-art{display:none}}.card{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;gap:20px;padding:32px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field input{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);height:56px;color:var(--text-primary);font:500 16px/24px var(--font-sans);padding-inline:16px}.field input:focus-visible{outline:2px solid var(--border-brand);outline-offset:-2px}.field-note{color:var(--text-tertiary)}.confirmed{border:1px solid var(--border-brand);background:var(--bg-tertiary);border-radius:var(--radius-md);flex-direction:column;gap:4px;padding:14px 16px;display:flex}.choice-list{flex-direction:column;gap:8px;display:flex}.choice-row{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;text-align:left;min-height:56px;color:var(--text-primary);align-items:center;gap:12px;padding-inline:16px;display:flex}.choice-row[aria-checked=true]{border-color:var(--border-brand);background:var(--bg-tertiary)}.radio{border:2px solid var(--border-strong);border-radius:50%;flex:none;block-size:20px;inline-size:20px}.choice-row[aria-checked=true] .radio{border-color:var(--brand-primary);background:radial-gradient(circle, var(--brand-primary) 0 5px, transparent 5px)}.btn-primary{border-radius:var(--radius-md);background:var(--brand-primary);height:56px;color:var(--text-inverse);font:600 18px/28px var(--font-sans);cursor:pointer;border:0}.btn-primary:disabled{background:var(--neutral-300);cursor:not-allowed}.btn-text{color:var(--text-secondary);font:500 16px/24px var(--font-sans);cursor:pointer;background:0 0;border:0;padding:8px}.steps{justify-content:center;gap:8px;display:flex}.step-dot{background:var(--neutral-200);border-radius:50%;block-size:8px;inline-size:8px}.step-dot[data-on=true]{background:var(--brand-primary)}.prep-page img,.practice-content img,.type-practice-content img,.run img{-webkit-touch-callout:none;-webkit-user-drag:none}.run{background:var(--bg-primary);grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.run--gaze{min-height:calc(100dvh - var(--header-h));height:calc(100dvh - var(--header-h));overflow:hidden}.run--reading{min-height:0;height:max(0px, calc(100dvh - var(--run-top-offset,var(--header-h))));grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.run--reading .run-main{gap:0;min-height:0;padding-block:clamp(8px,2vh,24px);overflow:hidden}.run--reading .item-ui--reading{border-top:0;grid-template-rows:auto minmax(0,1fr) auto;place-items:stretch center;gap:clamp(6px,1vh,20px);height:100%;min-height:0;margin:0 auto;padding:0;display:grid}.run--reading .item-audio-controls{grid-row:1}.run--reading .item-reading{grid-row:2;min-height:0;overflow:hidden}.run--reading .item-reading h2{margin:0 0 .35em}.run--reading .speech-response,.run--reading .item-done{grid-row:3}.run--reading[data-reading-overflow=true] .item-reading{overscroll-behavior:contain;overflow-y:auto}.run--reading .run-progress{margin-bottom:clamp(8px,2vh,24px)}@media not (min-width:600px){.enroll-header:has(+.run--reading){display:none}}.run-top{padding:16px var(--gutter);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:16px;display:flex}.run-status{color:var(--text-brand);align-items:center;gap:8px;display:flex}.run-sync-status{color:#8a3f1c;font-size:.85rem}.run-status:before{content:"";background:var(--brand-primary);border-radius:50%;block-size:8px;inline-size:8px}.run-main{padding:24px var(--gutter);flex-direction:column;justify-content:center;align-items:center;gap:40px;display:flex}.run-audio-fallback{border:1px solid var(--status-caution);background:var(--status-caution-bg);box-sizing:border-box;border-radius:12px;gap:12px;width:min(100%,560px);padding:16px;font-size:clamp(14px,2vw,18px);line-height:1.5;display:grid}.run-audio-fallback p{margin:0}.run-audio-fallback-prompt{font-weight:700}.run-audio-fallback label{align-items:flex-start;gap:8px;display:flex}.run-audio-fallback input{margin-top:.3em}.run-audio-fallback button{justify-self:start;min-height:44px;padding:8px 16px}.run-progress{background:var(--neutral-100);block-size:6px;margin:0 var(--gutter) 24px;border-radius:var(--radius-pill)}.run-progress>div{background:var(--brand-primary);border-radius:inherit;block-size:100%;transition:inline-size .3s}.choice-grid{grid-template-columns:repeat(auto-fit,minmax(200px,260px));justify-content:center;gap:clamp(16px,3vw,48px);display:grid}.choice-card{aspect-ratio:1;border:1px solid var(--border-default);background:var(--bg-primary);cursor:pointer;font:400 clamp(48px, 8vw, 88px)/1 var(--font-sans);color:var(--text-primary);border-radius:24px;place-items:center;display:grid}.choice-card[aria-pressed=true]{border-color:var(--border-brand);background:var(--bg-tertiary)}.choice-card img{max-block-size:70%;max-inline-size:70%}.speech-card{border:2px solid var(--brand-primary);min-inline-size:min(560px,90vw);font:400 clamp(48px, 8vw, 88px)/1 var(--font-sans);border-radius:24px;place-items:center;padding:clamp(32px,6vw,72px);display:grid}.mic-btn{background:var(--status-danger);block-size:72px;inline-size:72px;color:var(--text-inverse);cursor:pointer;border:0;border-radius:50%;font-size:28px}.unsupported{border:1px solid var(--status-caution);background:var(--status-caution-bg);border-radius:var(--radius-md);flex-direction:column;gap:8px;max-inline-size:560px;padding:20px;display:flex}body{background:var(--bg-page);color:var(--text-primary);font:500 16px/24px var(--font-sans);margin:0}#app{max-width:none;margin:0;padding:0}.app-header{z-index:10;background:var(--bg-primary);border-bottom:1px solid var(--neutral-200);padding:20px var(--gutter);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;display:flex;position:sticky;top:0}.app-header h1{font:600 22px/28px var(--font-sans);letter-spacing:-.44px;margin:0}.app-header h1 a{color:var(--text-primary);text-decoration:none}.brand-mark{background:var(--brand-primary);vertical-align:-6px;border-radius:8px;block-size:28px;inline-size:28px;margin-inline-end:10px;display:inline-block}.app-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.app-nav a,.app-nav span{border-radius:var(--radius-sm);color:var(--text-secondary);font:600 14px/20px var(--font-sans);letter-spacing:-.28px;padding:10px 16px;text-decoration:none}.app-nav a:hover{background:var(--bg-secondary)}.app-nav a[aria-current=page]{color:var(--text-primary);background:var(--bg-tertiary)}.app-nav .nav-cta{background:var(--brand-primary);color:var(--text-inverse)}.app-nav .nav-cta:hover{background:var(--text-brand)}.app-main{max-width:var(--content-max);padding:40px var(--gutter) 80px;margin-inline:auto}.app-main.bare{max-width:none;padding:0}.assessment-complete-page{flex-direction:column;min-height:100dvh;display:flex}.assessment-complete-content{width:100%;padding:32px var(--gutter);text-align:center;border:0;border-radius:0;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;margin:0;display:flex}.assessment-complete-content>h2,.assessment-complete-content>p{max-width:42rem;margin:0}.assessment-complete-content .hint{overflow-wrap:anywhere}.assessment-complete-content>section{width:min(100%,42rem);margin:0}.assessment-complete-content .loading-status-line{justify-content:center}.lead{color:var(--text-secondary);font:500 18px/28px var(--font-sans);margin:8px 0 0}section{background:var(--bg-primary);border:1px solid var(--border-default);border-radius:var(--radius-lg);margin-block-end:20px;padding:28px}section h2{font:600 24px/32px var(--font-sans);letter-spacing:-.48px;margin:0 0 12px}section h3{font:600 20px/28px var(--font-sans);letter-spacing:-.4px;margin:20px 0 8px}.hint{color:var(--text-secondary);font:500 14px/22px var(--font-sans)}table{border-collapse:collapse;width:100%;margin:12px 0}th,td{text-align:left;border-bottom:1px solid var(--border-subtle);font:500 14px/20px var(--font-sans);padding:10px 12px}th{color:var(--text-secondary);font-weight:600}td:first-child{color:var(--text-secondary);width:34%}.ok{color:var(--text-brand)}.ng{color:var(--status-danger)}button{font:600 14px/20px var(--font-sans);border-radius:var(--radius-sm);border:1px solid var(--border-default);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;padding:10px 18px}button:hover:not(:disabled){background:var(--bg-secondary)}button:disabled{color:var(--text-tertiary);cursor:not-allowed}button.btn-primary{border:0}code{background:var(--bg-secondary);border-radius:4px;padding:2px 6px;font-size:13px}pre{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:14px;font-size:12px;overflow:auto}a{color:var(--text-brand)}.hero{background:linear-gradient(180deg, var(--bg-tertiary), var(--bg-primary));border-color:var(--brand-primary-medium);padding:clamp(32px,6vw,64px)}.btn-cta{background:var(--brand-primary);color:var(--text-inverse);border-radius:var(--radius-pill);font:600 18px/28px var(--font-sans);letter-spacing:-.36px;align-items:center;gap:8px;padding:16px 32px;text-decoration:none;display:inline-flex}.btn-cta:hover{background:var(--text-brand)}.domain-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.domain-card{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--bg-primary);flex-direction:column;gap:6px;padding:18px;display:flex}.resume-page{min-height:calc(100dvh - var(--header-h));place-items:center;padding:24px;display:grid}.resume-card{border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--bg-primary);gap:16px;width:min(100%,560px);padding:clamp(24px,5vw,40px);display:grid}.resume-card h2,.resume-card p{margin:0}.resume-card form{gap:16px;display:grid}.resume-card label{gap:6px;font-weight:600;display:grid}.resume-card input{border:1px solid var(--border-default);border-radius:var(--radius-sm);width:100%;font:inherit;padding:12px}.resume-card button{min-height:44px}.resume-choice{text-align:left;border:1px solid var(--border-default);background:var(--bg-primary);border-radius:var(--radius-sm);padding:12px 16px}.resume-choice:hover,.resume-choice:focus-visible{border-color:var(--brand-primary)}.resume-row{gap:8px;min-width:0;display:flex}.resume-row .resume-choice{overflow-wrap:anywhere;flex:1;min-width:0}.resume-delete{border:1px solid var(--text-danger);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-danger);font:inherit;cursor:pointer;padding:10px 16px;font-weight:600}.resume-delete:hover,.resume-delete:focus-visible{background:color-mix(in srgb, var(--text-danger) 8%, white)}.resume-delete:disabled{opacity:.5;cursor:not-allowed}.resume-warning{color:var(--text-danger);font-weight:600}.gaze-calibration{z-index:1000;color:#1a1a1a;background:#fff;border:0;margin:0;padding:0;position:fixed;inset:0;overflow:hidden}.gaze-calibration-status{z-index:2;text-align:center;background:#fffef0ee;border-radius:16px;width:min(90vw,620px);padding:12px 20px;position:fixed;top:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000001a}.gaze-calibration-status p{margin:0}.gaze-calibration-status p+p{color:#555;font-size:13px}.gaze-calibration-point{z-index:2;pointer-events:none;background:#ed5c46;border-radius:50%;width:28px;height:28px;margin:-14px;position:fixed;box-shadow:0 0 0 12px #ed5c4633}.gaze-calibration-error{grid-template-rows:auto minmax(min-content,1fr) auto;gap:24px;padding:24px;display:grid;overflow-y:auto}.gaze-calibration-error .gaze-calibration-status{overflow-wrap:anywhere;justify-self:center;width:min(100%,620px);position:relative;top:auto;left:auto;transform:none}.gaze-calibration-actions{z-index:2;text-align:center;overflow-wrap:anywhere;flex-direction:column;place-self:center;align-items:center;gap:16px;width:min(100%,620px);display:flex;position:relative}.gaze-calibration-actions p{margin:0}.gaze-calibration-actions button{max-width:100%;min-height:44px}.gaze-calibration-actions .btn-primary{background:var(--brand-primary);width:min(100%,360px);height:auto;min-height:56px;color:var(--text-inverse);padding:14px 24px}.gaze-calibration-actions .btn-primary:hover:not(:disabled){background:var(--text-brand)}.gaze-calibration-error button:focus-visible{outline:2px solid var(--text-brand);outline-offset:4px}.gaze-calibration-exit{z-index:2;color:#1a1a1a;background:#fff;position:fixed;bottom:24px;right:24px}.gaze-calibration-error .gaze-calibration-exit{justify-self:end;max-width:100%;min-height:44px;position:relative;bottom:auto;right:auto}.gaze-calibration-active .gaze-calibration-status{padding:8px 12px;top:32dvh;transform:translate(-50%,-50%)}.gaze-calibration-active .gaze-calibration-status p{font-size:14px;line-height:20px}.gaze-calibration-active .gaze-calibration-status p+p{font-size:12px;line-height:18px}.gaze-calibration-active .gaze-calibration-exit{min-height:44px;padding:10px 16px;font-size:14px;line-height:20px;top:68dvh;bottom:auto;transform:translateY(-50%)}@media (max-height:380px){.gaze-calibration-active .gaze-calibration-status{padding:4px 12px}.gaze-calibration-active .gaze-calibration-status p{font-size:12px;line-height:18px}.gaze-calibration-active .gaze-calibration-status p+p{font-size:11px;line-height:16px}}.run-pause{border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--bg-primary);min-height:44px;color:var(--text-primary);font:600 16px/24px var(--font-sans);margin-inline-start:auto;padding:8px 16px}.run-pause:disabled{opacity:.5}
