@charset "UTF-8";
:root{font-family:"Pretendard","Malgun Gothic","Apple SD Gothic Neo",system-ui,sans-serif;color:#182640;background:#f6f8fc;font-size:16px;line-height:1.75;--blue:#244fda;--navy:#142544;--line:#dbe2ee;--muted:#53647d;--gold:#f6c94c}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:4px}button,input{font:inherit}button,a,input,summary{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent}a:hover{color:var(--blue)}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b75a00;outline-offset:5px}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.25;letter-spacing:-.04em;word-break:keep-all}h1{font-size:clamp(2rem,4.5vw,3.6rem);font-weight:800;margin-bottom:1.4rem}h2{font-size:1.6rem}h3{font-size:1.65rem;margin-bottom:.8rem}p{word-break:keep-all;overflow-wrap:anywhere}main,.header,footer{max-width:1200px;margin:auto;padding-left:40px;padding-right:40px}.header{display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:114px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:14px;font-weight:750;text-decoration:none;line-height:1.35}.brand-mark{background:var(--navy);color:var(--gold);font-size:1.5rem;width:46px;height:46px;display:grid;place-items:center;border-radius:5px;font-family:Georgia,serif}.brand small{display:block;font-size:.8rem;font-weight:400;color:var(--muted);margin-top:5px}.header nav{display:flex;gap:26px;font-size:.94rem}.header nav a{text-decoration:none;padding:9px 0}.header nav a[aria-current]{color:var(--blue);border-bottom:2px solid var(--blue);font-weight:700}.intro{display:grid;grid-template-columns:1.8fr 1fr;gap:65px;padding:62px 0 54px}.intro p:last-child{color:var(--muted);margin-bottom:0}.eyebrow{color:var(--blue);font-size:.8rem;letter-spacing:.12em;font-weight:750;margin-bottom:15px}.first{align-self:center;padding:27px 30px;border-left:4px solid var(--gold);background:#fff}.first h2{font-size:1.4rem;margin:12px 0}.tiny{font-size:.85rem;color:var(--muted)}.text-link{display:inline-block;color:var(--blue);font-weight:700;margin-top:15px;text-decoration:none}.section-line{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 16px;gap:16px}.section-line h2{font-size:1.25rem;margin:0}.section-line span,.meta{font-size:.875rem;color:var(--muted)}.course-list{border-top:2px solid var(--navy)}.course-row{display:grid;grid-template-columns:100px minmax(0,1fr) 190px;gap:30px;align-items:center;padding:33px 0;border-bottom:1px solid var(--line)}.week-no{font-size:3.3rem;font-weight:750;letter-spacing:-.08em;color:var(--navy);line-height:1.1}.week-no small{display:block;font-size:.7rem;letter-spacing:.13em;margin-bottom:10px;color:var(--muted)}.course-info .eyebrow{margin-bottom:9px}.course-info h3 a{text-decoration:none}.course-info p{margin-bottom:12px;color:var(--muted)}.course-actions{display:grid;gap:8px}.button{border:1px solid var(--blue);background:var(--blue);color:white;display:inline-flex;justify-content:space-between;align-items:center;gap:20px;padding:11px 17px;min-height:46px;border-radius:5px;font-weight:700;font-size:.94rem;text-decoration:none;line-height:1.5;text-align:left}.button:hover{background:#173bae;color:white}.button.secondary{background:transparent;color:var(--navy);border-color:#acb9ce}.button.secondary:hover{background:#e8edf9;border-color:var(--blue);color:var(--blue)}.button:disabled{opacity:.55;cursor:wait}.lab-status{font-size:.8rem;color:var(--muted)}.lab-status::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#7383a0;margin-right:7px;vertical-align:middle}.resource-strip{display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--navy);color:white;padding:35px 38px;margin:48px 0}.resource-strip .eyebrow{color:var(--gold)}.resource-strip h2{font-size:1.5rem}.resource-strip p{margin-bottom:0}.resource-strip .button{color:white;border-color:#8799b9;flex-shrink:0}.back{display:inline-block;margin-top:32px;color:var(--muted);font-size:.875rem}.week-head{padding:48px 0 38px;max-width:880px}.lead{font-size:1.15rem;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0 15px}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:40px}.panel{border:1px solid var(--line);background:white;padding:32px}.panel h2{font-size:1.35rem}.panel p:last-child{margin-bottom:0}.tinted{background:#edf2ff}.numbered{padding-left:24px}.numbered li{margin-bottom:15px;padding-left:9px}.reading{margin:20px 0 45px}.reading h2{font-size:1.4rem}.resource-links{padding:0;list-style:none;border-top:1px solid var(--line)}.resource-links li{border-bottom:1px solid var(--line)}.resource-links a{display:flex;justify-content:space-between;gap:24px;padding:18px 5px;text-decoration:none;font-weight:600}.resource-links span{font-weight:400;font-size:.875rem;color:var(--muted);text-align:right}.guide-layout{display:grid;grid-template-columns:200px minmax(0,1fr);gap:50px}.contents{align-self:start;position:sticky;top:25px;display:grid;font-size:.875rem;border-top:2px solid var(--navy);padding-top:20px;gap:12px}.contents a{text-decoration:none}.guide section{border-top:1px solid var(--line);padding:30px 0;scroll-margin-top:20px}.guide h2{margin-top:10px}.guide li{margin:10px 0}.step-label{color:var(--blue);font-size:.8rem;letter-spacing:.1em;font-weight:700}.check{display:flex;gap:12px;align-items:center;background:#eaf1ff;padding:15px 20px;margin-top:24px;cursor:pointer}.check input{accent-color:var(--blue);width:20px;height:20px;flex-shrink:0}.note{padding:18px 22px;border-left:3px solid var(--gold);background:#fff;margin:20px 0}.code-row{display:flex;gap:20px;justify-content:space-between;padding:14px 20px;background:var(--navy);color:white;border-radius:4px;overflow:auto}.code-row button{border:0;color:var(--navy);background:var(--gold);border-radius:3px;padding:3px 10px;flex-shrink:0}code{font-family:Consolas,monospace;overflow-wrap:anywhere;font-size:.94em}blockquote{margin:20px 0;padding:20px 24px;border-left:3px solid var(--blue);background:#edf2ff}details{border-bottom:1px solid var(--line);padding:15px 0}summary{cursor:pointer;font-weight:650}details p{margin:15px 0 0}.source-kit{background:#eaf0ff;border-top:3px solid var(--blue);padding:35px;display:grid;grid-template-columns:1.3fr 1fr;gap:45px;margin:40px 0}.source-kit li{margin-bottom:10px}.source-kit h2{font-size:1.5rem}.login-panel{max-width:440px;margin:65px auto 120px}.login-panel h1{font-size:2.3rem}.login-panel form{display:grid;gap:15px}.login-panel input{width:100%;border:1px solid #99a8c0;border-radius:4px;background:#fff;padding:10px 12px}.login-panel p{color:#b03426}footer{margin-top:55px;padding-top:25px;padding-bottom:35px;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;display:flex;justify-content:space-between;gap:20px}.skip{position:absolute;left:20px;top:-100px;background:white;padding:10px;z-index:99}.skip:focus{top:10px}#copy-status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;border-radius:5px;padding:10px 20px;z-index:10}#copy-status:empty{display:none}@media(max-width:760px){main,.header,footer{padding-left:22px;padding-right:22px}.header{flex-wrap:wrap;padding-top:20px;padding-bottom:15px;gap:12px}.header nav{width:100%;gap:25px}.intro{grid-template-columns:1fr;gap:20px;padding-top:36px}.first{padding:20px 24px}.first p br{display:none}.course-row{grid-template-columns:60px minmax(0,1fr);gap:16px;padding:27px 0}.week-no{font-size:2.5rem;align-self:start}.course-actions{grid-column:2;grid-template-columns:1fr 1fr}.course-actions .button{font-size:.85rem;padding:10px;gap:8px}.course-actions .lab-status{grid-column:1/-1}.course-info h3{font-size:1.4rem}.resource-strip,.source-kit{display:block;padding:27px}.resource-strip .button{margin-top:20px}.section-line span{display:none}.two-columns{grid-template-columns:1fr}.panel{padding:24px}.guide-layout{grid-template-columns:1fr;gap:20px}.contents{position:static;display:flex;flex-wrap:wrap;gap:10px 20px}.contents strong{width:100%}.guide ol{padding-left:24px}.week-head{padding-top:35px}.resource-links a{align-items:flex-start;gap:10px}.resource-links span{flex-shrink:0;font-size:.8rem}.source-kit ol{padding-left:20px;margin-top:30px}footer{flex-direction:column;gap:8px}}@media(prefers-reduced-motion:no-preference){a,button{transition:background .15s,color .15s}}@media print{.header nav,footer,.button,.contents,#copy-status{display:none}main{max-width:none}.guide-layout{display:block}.intro{padding-top:10px}body{background:white}}
