@font-face{font-family:Pretendard;src:url(/assets/fonts/Pretendard-Regular.otf)format("opentype");font-weight:400;font-display:swap}@font-face{font-family:Pretendard;src:url(/assets/fonts/Pretendard-SemiBold.otf)format("opentype");font-weight:600;font-display:swap}@font-face{font-family:Pretendard;src:url(/assets/fonts/Pretendard-Bold.otf)format("opentype");font-weight:700;font-display:swap}:root{color:#17251f;font-synthesis:none;background:#f3f0e8;font-family:Pretendard,Malgun Gothic,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;overflow-x:hidden}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}.app{background:#f3f0e8;min-height:100dvh}.app-header{z-index:30;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffcf6f5;border-bottom:1px solid #cdd7cf;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);align-items:center;gap:22px;min-height:74px;padding:10px clamp(16px,3vw,40px);display:grid;position:sticky;top:0}.brand{letter-spacing:-.7px;font-size:23px;font-weight:700}.brand span{color:#124c3b}.step-nav{align-items:center;gap:clamp(8px,2.2vw,28px);display:flex}.step{color:#758279;white-space:nowrap;align-items:center;gap:7px;font-size:13px;display:flex}.step b{background:#fff;border:1px solid #cdd7cf;border-radius:50%;place-items:center;width:28px;height:28px;display:grid}.step.active{color:#124c3b;font-weight:700}.step.active b{color:#fff;background:#124c3b;border-color:#124c3b}.step.done b{color:#fff;background:#7e9c8e;border-color:#7e9c8e}.icon-button{cursor:pointer;background:#fff;border:1px solid #b9c7be;border-radius:9px;justify-self:end;min-height:42px;padding:0 14px}.progress-track{background:#dfe5e0;height:4px}.progress-track span{background:#124c3b;height:100%;transition:width .25s;display:block}.screen{min-height:calc(100dvh - 78px);padding:clamp(16px,3vw,36px)}.paper{background:#fffcf6;border:1px solid #cdd7cf;border-radius:16px;width:min(1180px,100%);margin:0 auto;padding:clamp(22px,4vw,50px);box-shadow:0 14px 40px #17251f12}.screen .paper{min-height:min(650px,100dvh - 150px)}h1,h2,p{margin-top:0}h1{letter-spacing:-.045em;margin-bottom:18px;font-size:clamp(28px,3.4vw,48px);line-height:1.18}h2{font-size:clamp(21px,2vw,28px);line-height:1.35}p{line-height:1.65}em{color:#124c3b;font-style:normal}.eyebrow{color:#124c3b;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:13px;font-weight:700;display:block}.helper{color:#53635b;font-size:14px}.error{color:#8c2f24!important}.section-heading{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.step-count,.completion-badge{color:#124c3b;background:#ddebe3;border-radius:99px;flex:none;padding:8px 12px;font-size:14px;font-weight:700}.button{cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:0 20px;font-weight:700;text-decoration:none;display:inline-flex}.button:disabled{opacity:.45;cursor:not-allowed}.button.primary{color:#fff;background:#124c3b}.button.primary:hover{background:#0a352a}.button.secondary{background:#fff;border-color:#9bb0a4}.button.quiet{background:#e8eee8;border-color:#0000}.button.kakao{color:#2d2600;background:#fee500;width:100%}.button.large{min-width:230px;min-height:54px;font-size:17px}.text-button,.quiet-actions button{color:#124c3b;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;min-height:42px;font-weight:700;text-decoration:underline}.button-row,.report-actions{flex-wrap:wrap;gap:10px;display:flex}.start-grid{grid-template-columns:minmax(0,1.18fr) minmax(280px,.82fr);align-items:center;gap:clamp(28px,6vw,76px);display:grid}.start-copy>p{color:#53635b;max-width:650px;font-size:17px}.status-chip{color:#33483d;background:#e8eee8;border-radius:8px;width:-moz-fit-content;width:fit-content;margin:22px 0;padding:9px 13px;font-size:14px}.student-picker{gap:6px;max-width:430px;margin-top:18px;display:grid}.student-picker label{color:#53635b;font-size:13px;font-weight:600}.student-picker select{background:#fff;border:1px solid #aebdb4;border-radius:8px;min-height:44px;padding:0 10px}.quiet-actions{flex-wrap:wrap;gap:8px 18px;margin-top:14px;display:flex}.portrait-card{background:linear-gradient(#ddebe3,#c6d9ce);border-radius:16px;flex-direction:column;justify-content:flex-end;align-self:stretch;min-height:430px;display:flex;overflow:hidden}.portrait-card img{object-fit:contain;object-position:center bottom;flex:1;width:100%;min-height:0}.portrait-card div{color:#fff;background:#0a352aeb;gap:3px;padding:15px 18px;display:grid}.portrait-card span{color:#e2eee7;font-size:13px}.practice-card,.reread-card,.question-card,.complete-card{flex-direction:column;display:flex}.practice-text,.active-sentence{color:#17251f;font-size:var(--reading-font);line-height:var(--reading-line);word-break:keep-all;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text;background:#fff;border:1px solid #cdd7cf;border-radius:14px;margin:clamp(22px,5vh,54px) 0;padding:clamp(24px,5vw,58px)}.practice-text.running,.active-sentence{border-left:6px solid #124c3b}.sticky-action{z-index:10;background:#fffcf6f7;border:1px solid #b9c7be;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;margin-top:auto;padding:14px 16px;display:flex;position:sticky;bottom:12px;box-shadow:0 8px 25px #17251f1c}.sticky-action p{color:#53635b;margin:0}.sticky-action.compact{margin-top:22px}.sentence-context{margin:18px 0}.context-line{color:#89938d;word-break:keep-all;max-width:900px;margin:0 auto;padding:12px clamp(10px,3vw,30px);font-size:16px;line-height:1.7}.context-line.next{max-height:54px;overflow:hidden;-webkit-mask-image:linear-gradient(#000 30%,#0000);mask-image:linear-gradient(#000 30%,#0000)}.sentence-context .active-sentence{margin:4px auto}.expression-card{background:#fff;border:1px solid #cdd7cf;border-radius:14px;padding:24px}.token-list,.selected-list{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.token-list button,.selected-list button{cursor:pointer;background:#f7f9f7;border:1px solid #b9c7be;border-radius:99px;min-height:40px;padding:0 12px}.selected-list button{color:#0a352a;background:#ddebe3;border-color:#789988}.manual-row{gap:8px;margin-top:10px;display:flex}.manual-row input{border:1px solid #aebdb4;border-radius:8px;flex:1;min-width:0;min-height:44px;padding:0 12px}.manual-row button{background:#e8eee8;border:0;border-radius:8px;min-width:70px;font-weight:700}.question-card blockquote,.coaching-main blockquote{background:#e8eee8;border-left:5px solid #789988;margin:12px 0 22px;padding:18px 20px;font-size:17px;line-height:1.65}.choice-list{gap:10px;margin:14px 0 24px;display:grid}.choice-list button{text-align:left;cursor:pointer;background:#fff;border:1px solid #c2cec6;border-radius:10px;align-items:center;gap:13px;min-height:56px;padding:9px 14px;display:flex}.choice-list button:hover,.choice-list button.selected{background:#edf4f0;border-color:#124c3b}.choice-list b{color:#124c3b;background:#e8eee8;border-radius:50%;flex:0 0 30px;place-items:center;width:30px;height:30px;display:grid}.recommendation{color:#33483d;background:#e8eee8;border-radius:9px;padding:11px 14px}.outcome{color:#725a1e;background:#f2e9d4;border-radius:99px;padding:8px 12px;font-size:14px;font-weight:700}.outcome.원활{color:#124c3b;background:#ddebe3}.coaching-grid{grid-template-columns:minmax(0,1fr) minmax(280px,360px);align-items:start;gap:22px;display:grid}.coaching-main,.secondary-panel{background:#fff;border:1px solid #cdd7cf;border-radius:13px;min-width:0;padding:22px}.expression-help{color:#624f25;background:#fff8e8;border-radius:8px;padding:10px 13px}.coaching-text{white-space:pre-line;font-size:17px;line-height:1.75}.reread-prompt{background:#edf4f0;border-left:4px solid #124c3b;padding:13px;font-weight:600}.secondary-panel audio{width:100%}.chat-preview{margin-top:12px}.chat-preview details{border-bottom:1px solid #e1e7e2;padding:9px 0}.chat-preview summary{cursor:pointer;font-weight:600}.chat-preview p{color:#53635b;margin:8px 0 0}.privacy-copy{color:#53635b;font-size:13px}.comparison{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0;display:grid}.comparison div{background:#e8eee8;border-radius:12px;padding:22px}.comparison span{color:#53635b;font-size:13px;display:block}.comparison strong{font-size:28px}.summary-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0;display:grid}.summary-grid div{background:#e8eee8;border-radius:12px;min-width:0;padding:18px}.summary-grid span{color:#53635b;font-size:13px;display:block}.summary-grid strong{font-size:25px}.result-list{gap:9px;margin:20px 0;display:grid}.result-list article{background:#fff;border:1px solid #d5ded7;border-radius:10px;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:13px 15px;display:grid}.result-list article>div:first-child{gap:10px;min-width:0;display:flex}.result-list article>div:first-child>span{color:#124c3b;background:#ddebe3;border-radius:50%;flex:0 0 28px;place-items:center;width:28px;height:28px;font-weight:700;display:grid}.result-list p{margin:3px 0 0;line-height:1.55}.result-meta{color:#53635b;text-align:right;flex-wrap:wrap;place-content:center flex-end;gap:5px 9px;max-width:380px;font-size:12px;display:flex}.result-meta b{color:#124c3b}.report-actions{background:#fffcf6f7;border:1px solid #cdd7cf;border-radius:12px;justify-content:flex-end;padding:12px;position:sticky;bottom:10px}.settings-panel{z-index:50;background:#fffcf6;border:1px solid #b9c7be;border-radius:13px;width:min(330px,100vw - 36px);padding:20px;position:fixed;top:82px;right:18px;box-shadow:0 18px 50px #17251f33}.panel-heading{justify-content:space-between;align-items:center;display:flex}.panel-heading h2{margin:0}.settings-panel label{color:#53635b;gap:7px;margin:15px 0;font-size:14px;display:grid}.settings-panel select{background:#fff;border:1px solid #aebdb4;border-radius:8px;min-height:44px;padding:0 10px}.notice,.toast{z-index:45;background:#fff;border:1px solid #9bb0a4;border-radius:10px;justify-content:space-between;align-items:center;gap:10px;width:min(650px,100vw - 28px);padding:11px 14px;display:flex;position:fixed;top:88px;left:50%;transform:translate(-50%);box-shadow:0 12px 30px #17251f29}.notice.error,.toast.error{background:#fff4f2;border-color:#c8948d;color:#6c241b!important}.notice button,.toast button{cursor:pointer;background:0 0;border:0;min-height:32px}.toast{top:auto;bottom:18px}.recovery-shell{background:#f3f0e8;place-items:center;min-height:100dvh;padding:24px;display:grid}.recovery-card{max-width:720px;min-height:0!important}.file-button{cursor:pointer;background:#fff;border:1px solid #9bb0a4;border-radius:10px;align-items:center;min-height:46px;margin-top:10px;padding:0 20px;font-weight:700;display:inline-flex}.file-button input{display:none}@media (max-width:900px){.app-header{grid-template-columns:auto 1fr auto;gap:10px;padding:8px 14px}.step-nav{justify-content:center;gap:7px}.step{gap:0}.step span{display:none}.start-grid{grid-template-columns:minmax(0,1fr) minmax(210px,31%);gap:22px}.portrait-card{min-height:300px}.coaching-grid{grid-template-columns:1fr}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.result-list article{grid-template-columns:1fr}.result-meta{text-align:left;justify-content:flex-start;max-width:none}}@media (max-width:620px){.app-header{grid-template-columns:auto 1fr auto;min-height:64px}.brand{font-size:19px}.step b{width:24px;height:24px;font-size:12px}.icon-button{min-height:38px;padding:0 9px;font-size:12px}.screen{min-height:calc(100dvh - 68px);padding:10px}.paper{border-radius:12px;padding:20px 16px}.screen .paper{min-height:calc(100dvh - 88px)}h1{font-size:clamp(25px,8vw,34px)}.start-grid{flex-direction:column;align-items:stretch;display:flex}.start-copy{display:contents}.start-copy .eyebrow,.start-copy h1,.start-copy>p,.start-copy .student-picker,.start-copy .status-chip,.start-copy .button,.start-copy .quiet-actions{order:1}.portrait-card{order:2;grid-template-columns:42% 1fr;height:190px;min-height:0;display:grid}.portrait-card img{width:100%;height:190px}.portrait-card div{align-content:center}.button.large{width:100%}.quiet-actions{justify-content:center}.section-heading h1{font-size:26px}.step-count{padding:7px 9px}.practice-text,.active-sentence{margin:16px 0;padding:22px 16px}.context-line{padding-inline:4px}.sticky-action{flex-direction:column;align-items:stretch;gap:8px;bottom:6px}.sticky-action .button{width:100%}.expression-card{padding:16px 12px}.manual-row{flex-direction:column}.coaching-main,.secondary-panel{padding:16px 12px}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-grid div{padding:14px 12px}.summary-grid strong{font-size:21px}.report-actions{grid-template-columns:1fr;display:grid}.comparison{grid-template-columns:1fr}.button-row{display:grid}}@media (max-height:600px) and (min-width:621px){.app-header{min-height:60px;padding-block:6px}.screen{min-height:calc(100dvh - 64px);padding:10px 18px}.paper{padding:22px 28px}.screen .paper{min-height:calc(100dvh - 84px)}h1{margin-bottom:10px;font-size:30px}.start-grid{gap:30px}.portrait-card{height:calc(100dvh - 130px);min-height:0}.practice-text,.active-sentence{margin:12px 0;padding:20px 24px}.context-line{padding-block:5px;line-height:1.45}.context-line.next{max-height:34px}}
