:root{color-scheme:light;--ink: #172033;--muted: #667286;--paper: #f5f7fb;--panel: #ffffff;--line: #dbe2ec;--blue: #245fe0;--blue-soft: #eaf1ff;--green: #16865f;--green-soft: #e7f6ef;--orange: #c86f1f;--orange-soft: #fff0df;--red-soft: #fff0f0;--slate: #273142;--shadow: 0 16px 36px rgba(23, 32, 51, .1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Pretendard,Noto Sans KR,Malgun Gothic,Arial,sans-serif;color:var(--ink);background:linear-gradient(135deg,rgba(36,95,224,.08),transparent 32%),linear-gradient(225deg,rgba(22,134,95,.08),transparent 34%),var(--paper);line-height:1.65}button,input,textarea{font:inherit}a{color:inherit}.app-shell{max-width:1240px;margin:0 auto;padding:22px 18px 72px}.topbar{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center;padding:10px;border:1px solid rgba(23,32,51,.12);border-radius:8px;background:#ffffffeb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 28px #17203314}.topbar a,.button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border:1px solid rgba(23,32,51,.16);border-radius:8px;background:#fff;color:var(--ink);text-decoration:none;font-weight:900;cursor:pointer}.button.primary{background:var(--blue);border-color:var(--blue);color:#fff}.button:focus-visible,.topbar a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(36,95,224,.3);outline-offset:2px}.hero-panel,.section-panel,.concept-card,.sprint-card,.question-panel,.score-panel,.library-link{border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:var(--shadow)}.hero-panel{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.6fr);gap:22px;margin:18px 0;padding:28px}.eyebrow{margin:0 0 8px;color:var(--blue);font-weight:900}h1,h2,h3,p{margin-top:0}h1{margin-bottom:12px;font-size:clamp(32px,5vw,56px);line-height:1.08;letter-spacing:0}h2{margin-bottom:12px;font-size:clamp(23px,3vw,32px);line-height:1.2}h3{margin-bottom:8px;font-size:18px}.hero-panel p{max-width:720px;color:var(--muted)}.hero-actions,.action-row,.section-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.hero-metrics{display:grid;gap:10px}.hero-metrics div,.score-panel{padding:16px;border-radius:8px;background:linear-gradient(180deg,#fff,#f8fbff)}.hero-metrics span,.score-panel span{display:block;color:var(--muted);font-size:13px;font-weight:900}.hero-metrics strong,.score-panel strong{display:block;margin-top:4px;color:var(--slate);font-size:30px;line-height:1.1}main{display:grid;gap:16px}.section-panel{padding:24px}.section-head{display:flex;gap:14px;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.mission-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px}.step-list{display:grid;gap:10px}.step-row{display:grid;grid-template-columns:minmax(160px,.34fr) minmax(0,1fr);gap:12px;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfdff}.step-row strong{color:var(--blue)}.score-panel p{margin:12px 0 0;color:var(--muted);font-size:14px}.sprint-grid,.library-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sprint-card,.library-link,.concept-card,.question-panel{padding:16px;box-shadow:none}.sprint-id{display:inline-flex;align-items:center;justify-content:center;width:42px;height:32px;border-radius:8px;background:var(--blue-soft);color:var(--blue);font-weight:900}.sprint-card p,.note{color:var(--muted)}.sprint-card a,.library-link{color:var(--blue);font-weight:900}.concept-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.concept-card.wide{grid-column:1 / -1}.must-list{columns:2;column-gap:28px;padding-left:22px}.must-list li{break-inside:avoid;margin-bottom:8px}.table-wrap{overflow-x:auto}table{width:100%;min-width:620px;border-collapse:collapse;font-size:14px}th,td{padding:10px;border:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f0f4fa}.matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.matrix div{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdff}.matrix strong{color:var(--orange)}.formula{display:block;margin:10px 0;padding:14px;overflow-x:auto;border-radius:8px;background:#101828;color:#fff;font-family:Cascadia Code,Consolas,monospace;white-space:pre-wrap}.quiz-topline{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}.timer{display:inline-flex;align-items:center;justify-content:center;min-width:94px;min-height:42px;border-radius:8px;background:#101828;color:#fff;font-weight:900;font-variant-numeric:tabular-nums}.quiz-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.answer-options{display:grid;gap:8px}.option,.check-row{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fbfdff}.option.selected{border-color:#245fe094;background:var(--blue-soft)}input[type=radio],input[type=checkbox]{width:18px;height:18px;margin-top:4px;accent-color:var(--blue)}.check-row{margin-top:10px}.answer-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;margin-top:14px}textarea{width:100%;min-height:132px;resize:vertical;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfdff;color:var(--ink);font-family:Cascadia Code,Consolas,monospace}.copy-ok{display:inline-flex;align-items:center;min-height:42px;padding:0 10px;color:var(--green);font-weight:900}.library-link{display:grid;gap:4px;text-decoration:none}.library-link span{color:var(--muted);font-size:12px;word-break:break-all}@media(max-width:920px){.hero-panel,.mission-layout,.concept-grid,.quiz-grid,.answer-box{grid-template-columns:1fr}.sprint-grid,.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.must-list{columns:1}}@media(max-width:640px){.app-shell{padding:12px 10px 64px}.topbar{justify-content:stretch}.topbar a,.button{width:100%}.hero-panel,.section-panel{padding:18px}.section-head,.step-row{grid-template-columns:1fr;flex-direction:column}.sprint-grid,.library-grid,.matrix{grid-template-columns:1fr}}
