@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;600;700;800&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#08111d;--surface:#101c2b;--surface2:#152538;--line:#24384e;--ink:#f7f2e8;--muted:#9fb0c2;--red:#ef5350;--blue:#39c5d4;--gold:#f2bd55;--green:#50d29a;--shadow:0 24px 70px rgba(0,0,0,.25);--radius:22px;--font:'Manrope','Noto Sans KR',system-ui,sans-serif}
[data-theme="light"]{--bg:#f6f4ef;--surface:#fff;--surface2:#edf3f5;--line:#dce5e9;--ink:#132235;--muted:#617287;--shadow:0 22px 55px rgba(21,45,65,.11)}
*{box-sizing:border-box}html{color-scheme:dark;scroll-behavior:smooth}[data-theme="light"]{color-scheme:light}body{margin:0;background:radial-gradient(circle at 80% -10%,rgba(57,197,212,.13),transparent 34%),radial-gradient(circle at 10% 12%,rgba(239,83,80,.11),transparent 28%),var(--bg);color:var(--ink);font-family:var(--font);min-height:100vh}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}.app{width:min(1180px,calc(100% - 32px));margin:auto;padding:22px 0 100px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:-.02em}.mark{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:linear-gradient(145deg,var(--red),#ff7b68 48%,var(--blue) 49%,#1c96ad);box-shadow:0 9px 28px rgba(57,197,212,.18);font:800 21px 'Noto Sans KR';color:white}.brand small{display:block;font-weight:600;font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase;margin-top:2px}.top-actions{display:flex;gap:9px}.iconbtn,.ghost,.primary,.answer,.chip{border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);cursor:pointer;min-height:44px}.iconbtn{width:44px;display:grid;place-items:center;font-size:18px}.ghost,.primary{padding:11px 17px;font-weight:750}.primary{background:linear-gradient(135deg,var(--red),#d7425a);border-color:transparent;color:#fff;box-shadow:0 10px 25px rgba(239,83,80,.18)}.ghost:hover,.iconbtn:hover,.chip:hover{background:var(--surface2)}.hero{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:30px;background:linear-gradient(145deg,rgba(21,37,56,.96),rgba(10,25,40,.96));padding:clamp(26px,5vw,54px);box-shadow:var(--shadow)}[data-theme="light"] .hero{background:linear-gradient(145deg,#fff,#edf5f7)}.hero:after{content:'한';position:absolute;right:-16px;bottom:-60px;font:800 clamp(150px,28vw,330px) 'Noto Sans KR';color:rgba(57,197,212,.06);pointer-events:none}.eyebrow{display:flex;align-items:center;gap:8px;color:var(--blue);font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase}.eyebrow:before{content:'';width:20px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--red),var(--blue))}h1{font-size:clamp(32px,6vw,67px);line-height:1.02;letter-spacing:-.055em;margin:14px 0 17px;max-width:830px}h2{font-size:clamp(22px,3vw,33px);letter-spacing:-.035em;margin:0 0 9px}h3{margin:0 0 7px;font-size:17px}.lead{max-width:760px;color:var(--muted);line-height:1.72;font-size:clamp(15px,2vw,18px);margin:0}.hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px;position:relative;z-index:1}.kpi{border:1px solid var(--line);background:rgba(8,17,29,.38);padding:14px 16px;border-radius:16px}.kpi b{font-size:21px;display:block}.kpi span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}[data-theme="light"] .kpi{background:rgba(255,255,255,.66)}.section{margin-top:34px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:15px}.section-head p{color:var(--muted);margin:0;line-height:1.5}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.card{position:relative;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:21px;box-shadow:0 9px 28px rgba(0,0,0,.08)}.card.link{transition:transform .2s,border-color .2s}.card.link:hover{transform:translateY(-3px);border-color:rgba(57,197,212,.55)}.card p{color:var(--muted);line-height:1.56;margin:0;font-size:14px}.module-icon{width:43px;height:43px;border-radius:14px;display:grid;place-items:center;background:var(--surface2);margin-bottom:16px;color:var(--blue);font:800 18px 'Noto Sans KR'}.badge{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:99px;padding:6px 9px;font-size:11px;font-weight:800;color:var(--muted)}.badge.red{color:#ff8c84;background:rgba(239,83,80,.09);border-color:rgba(239,83,80,.25)}.badge.green{color:var(--green);background:rgba(80,210,154,.08);border-color:rgba(80,210,154,.22)}.card-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:17px;color:var(--muted);font-size:12px}.arrow{font-size:20px;color:var(--blue)}.progress{height:7px;border-radius:99px;background:var(--surface2);overflow:hidden;margin-top:13px}.progress>i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--red),var(--blue));transition:width .35s}.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:19px 0}.chip{padding:9px 13px;font-size:13px;font-weight:750}.chip[aria-pressed="true"],.chip.active{background:rgba(57,197,212,.13);color:var(--blue);border-color:rgba(57,197,212,.35)}.select{border:1px solid var(--line);border-radius:13px;background:var(--surface);color:var(--ink);padding:11px 14px;min-height:44px}.question{margin-top:16px}.ko{font-family:'Noto Sans KR',sans-serif;line-height:1.75}.prompt{font-size:clamp(18px,3vw,25px);margin:14px 0;white-space:pre-wrap}.answers{display:grid;gap:9px}.answer{text-align:left;padding:13px 15px;line-height:1.5}.answer:hover{border-color:var(--blue)}.answer.correct{border-color:var(--green);background:rgba(80,210,154,.1)}.answer.wrong{border-color:var(--red);background:rgba(239,83,80,.1)}.feedback{display:none;margin-top:13px;padding:14px;border-radius:14px;background:var(--surface2);line-height:1.6;font-size:14px}.feedback.show{display:block}.study{display:grid;grid-template-columns:340px 1fr;gap:16px}.list{display:grid;gap:8px;max-height:680px;overflow:auto;padding-right:3px}.list-item{border:1px solid var(--line);border-radius:14px;background:var(--surface);padding:13px;text-align:left;color:var(--ink);cursor:pointer}.list-item.active{border-color:var(--blue);background:rgba(57,197,212,.09)}.list-item small{display:block;color:var(--muted);margin-top:4px}.editor{width:100%;min-height:290px;resize:vertical;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:15px;padding:17px;font:500 17px/1.9 'Noto Sans KR',sans-serif}.editor:focus{outline:2px solid rgba(57,197,212,.35);border-color:var(--blue)}.rubric{display:grid;gap:8px;margin-top:14px}.rubric label{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:11px;border-radius:12px;color:var(--muted);font-size:13px}.rubric input{accent-color:var(--blue);margin-top:3px}.counter{font-size:13px;color:var(--muted)}.counter.good{color:var(--green)}.exam-layout{display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:16px}.exam-side{position:sticky;top:18px;align-self:start}.timer{font-variant-numeric:tabular-nums;font-size:26px;font-weight:850;letter-spacing:-.03em}.notice{border-left:3px solid var(--gold);padding:12px 15px;background:rgba(242,189,85,.08);color:var(--muted);border-radius:0 12px 12px 0;line-height:1.55;font-size:13px}.empty{text-align:center;padding:42px 20px;color:var(--muted)}.footer{text-align:center;color:var(--muted);font-size:12px;padding:40px 0 0}.mobile-nav{display:none}.score{font-size:clamp(42px,8vw,78px);font-weight:850;letter-spacing:-.06em}.score small{font-size:20px;color:var(--muted);letter-spacing:0}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);padding:12px 17px;border-radius:12px;background:var(--ink);color:var(--bg);font-weight:750;z-index:100;box-shadow:var(--shadow)}
@media(max-width:900px){.grid{grid-template-columns:repeat(2,1fr)}.study,.exam-layout{grid-template-columns:1fr}.exam-side{position:static}.kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.app{width:min(100% - 22px,1180px);padding-top:13px}.top{margin-bottom:15px}.brand-copy{display:none}.top .ghost{display:none}.hero{border-radius:22px;padding:25px 20px}.grid{grid-template-columns:1fr}.kpis{gap:8px}.kpi{padding:11px}.kpi b{font-size:18px}.section{margin-top:27px}.card{padding:17px}.mobile-nav{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(8,17,29,.95);backdrop-filter:blur(16px);border-top:1px solid var(--line);padding:8px max(6px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom))}.mobile-nav a{display:grid;place-items:center;gap:3px;color:var(--muted);font-size:9px;font-weight:750}.mobile-nav b{font-size:19px;color:var(--ink)}[data-theme="light"] .mobile-nav{background:rgba(255,255,255,.94)}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
