:root{--accent:#6366f1;--accent-strong:#4f46e5;--accent-deep:#3730a3;--accent-soft:#b8b9ff;--accent-wash:#efefff;--neutral:#ddd7cf;--neutral-light:#ebe6df;--neutral-dark:#6f6963;--stone:#a8a29e;--ink:#1c1917;--ink-soft:#292524;--paper:#faf8f5;--surface:#fffdf9;--surface-muted:#f3efe9;--danger:#a23d37;--radius:12px;--radius-small:4px}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-variant-numeric:tabular-nums;font-synthesis:none;scroll-behavior:smooth;text-rendering:optimizelegibility;word-break:keep-all;font-family:Pretendard,Apple SD Gothic Neo,Noto Sans KR,sans-serif}body{background:var(--paper);min-width:320px;min-height:100vh;margin:0}::selection{background:var(--accent);color:var(--surface)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}img{max-width:100%}.shell{width:min(1280px,100% - 64px);margin-inline:auto}.public-header,.library-header{z-index:5;border-bottom:1px solid var(--neutral);justify-content:space-between;align-items:center;min-height:96px;display:flex;position:relative}.brand{align-items:center;gap:14px;min-height:48px;padding-block:8px;display:inline-flex}.brand-mark{flex:0 0 52px;place-items:center;width:52px;height:52px;display:grid}.brand-mark img{object-fit:contain;width:100%;height:100%;display:block}.brand-wordmark{gap:4px;display:grid}.brand strong{color:var(--ink);letter-spacing:-.02em;font-size:.98rem;font-weight:760;line-height:1.1}.brand small{color:var(--neutral-dark);letter-spacing:.18em;font-size:.66rem;font-weight:650;line-height:1.1}.header-note{color:var(--neutral-dark);letter-spacing:.18em;font-size:.72rem;font-weight:650}.context-label{color:var(--accent-strong);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:12px;margin:0 0 20px;font-size:.76rem;font-weight:760;line-height:1.4;display:flex}.context-label:before{content:"";background:currentColor;flex:0 0 28px;width:28px;height:2px}.login-page{background:var(--paper);min-height:100dvh;position:relative;overflow:hidden}.login-stage{z-index:2;grid-template-columns:minmax(360px,.76fr) minmax(520px,1.24fr);align-items:stretch;gap:clamp(48px,7vw,108px);min-height:calc(100dvh - 192px);padding-block:clamp(48px,7vh,76px);display:grid;position:relative}.login-copy{border-top:1px solid var(--ink);flex-direction:column;align-self:center;max-width:540px;padding-top:34px;display:flex}.login-copy h1,.identity-required h1,.library-intro h1{letter-spacing:-.075em;margin:0;font-size:clamp(4.4rem,7.8vw,7.4rem);font-weight:780;line-height:.9}.login-lead{max-width:520px;color:var(--neutral-dark);margin:32px 0 36px;font-size:1.125rem;line-height:1.72}.auth-action{width:min(100%,400px)}.google-id-button{align-items:center;width:100%;min-height:44px;transition:opacity .16s;display:flex}.google-id-button>div{max-width:100%}.google-id-button[data-pending=true]{opacity:.64;pointer-events:none}.google-button-placeholder{border:1px solid var(--ink);border-radius:var(--radius-small);background:var(--ink);width:100%;min-height:44px;color:var(--surface);place-items:center;font-size:.95rem;font-weight:700;display:grid}.google-login-status,.google-config-error,.auth-error{margin:13px 0 0;font-size:.9rem;line-height:1.6}.google-login-status{color:var(--neutral-dark)}.google-config-error,.auth-error{color:var(--danger)}.privacy-note{max-width:400px;color:var(--neutral-dark);margin:18px 0 0;font-size:.875rem;line-height:1.65}.login-visual{min-width:0;margin:0;position:relative}.login-visual:before{background:var(--accent);content:"";width:clamp(96px,18vw,228px);height:12px;position:absolute;top:-12px;right:-12px}.login-visual-link{border-radius:var(--radius-small);background:var(--ink);min-height:clamp(560px,69dvh,740px);display:block;position:relative;overflow:hidden}.login-visual-media{z-index:0;background:var(--ink-soft);display:block;position:absolute;inset:0;overflow:hidden}.login-visual-media:after{z-index:2;content:"";pointer-events:none;background:#1c191714;position:absolute;inset:0}.login-visual-poster,.login-visual-video{object-fit:cover;object-position:64% center;filter:saturate(.88)contrast(1.04);width:100%;height:100%;transition:filter .22s;display:block;position:absolute;inset:0}.login-visual-poster{z-index:0}.login-visual-video{z-index:1}.login-visual-control{z-index:4;min-width:112px;min-height:44px;color:var(--paper);cursor:pointer;font:inherit;letter-spacing:.02em;background:#1c1917eb;border:1px solid #faf8f56b;border-radius:2px;justify-content:center;align-items:center;gap:9px;padding:0 15px;font-size:.78rem;font-weight:720;display:inline-flex;position:absolute;top:18px;left:18px}.login-visual-control:hover{border-color:var(--accent-soft);background:var(--ink)}.login-visual-control>span:first-child{width:16px;color:var(--accent-soft);place-items:center;font-size:.74rem;display:inline-grid}.login-visual-link:hover .login-visual-poster,.login-visual-link:hover .login-visual-video{filter:saturate()contrast(1.02)}.login-visual-caption{z-index:1;color:var(--paper);background:#1c1917eb;border-top:1px solid #faf8f53d;grid-template-columns:minmax(0,1fr) minmax(160px,.42fr);align-items:end;gap:32px;padding:28px 30px 30px;display:grid;position:absolute;bottom:0;left:0;right:0}.login-visual-caption>span:first-child{gap:8px;display:grid}.login-visual-caption small{color:var(--accent-soft);letter-spacing:.02em;font-size:.875rem;font-weight:720}.login-visual-caption strong{color:var(--paper);letter-spacing:-.025em;font-size:1.3rem;font-weight:680;line-height:1.35}.login-visual-detail{color:color-mix(in srgb, var(--paper) 70%, var(--stone));border-left:1px solid #faf8f53d;padding-left:24px;font-size:.92rem;font-weight:620;line-height:1.55}.public-footer,.library-footer{z-index:2;border-top:1px solid var(--neutral);min-height:96px;color:var(--neutral-dark);letter-spacing:.02em;justify-content:space-between;align-items:center;font-size:.8rem;display:flex;position:relative}.identity-required{flex-direction:column;justify-content:center;max-width:840px;min-height:calc(100dvh - 96px);padding-block:96px;display:flex}.identity-required h1{max-width:820px;font-size:clamp(3.2rem,7vw,6.2rem);line-height:.98}.identity-required>p:not(.context-label){max-width:620px;color:var(--neutral-dark);margin:30px 0 36px;font-size:1.04rem;line-height:1.8}.identity-marker{grid-template-columns:repeat(3,1fr);gap:8px;width:156px;margin-bottom:44px;display:grid}.identity-marker span{background:var(--neutral);height:5px}.identity-marker span:last-child{background:var(--accent)}.system-actions{align-items:center;gap:24px;display:flex}.library-page,.course-detail-page{background:var(--paper);min-height:100dvh}.account-line{color:var(--neutral-dark);align-items:center;gap:22px;font-size:.84rem;display:flex}.logout-button{border:1px solid var(--neutral);border-radius:var(--radius-small);min-width:88px;min-height:44px;color:var(--ink);cursor:pointer;background:0 0;padding:0 16px;font-size:.84rem;font-weight:680;transition:border-color .15s,background-color .15s,color .15s}.logout-button:hover:not(:disabled){border-color:var(--ink);background:var(--ink);color:var(--paper)}.logout-button:disabled{cursor:wait;opacity:.6}.library-main{padding-block:84px 128px}.library-intro{border-bottom:1px solid var(--ink);grid-template-columns:minmax(300px,.88fr) minmax(360px,1.12fr);align-items:end;padding-bottom:60px;display:grid}.library-intro .context-label{grid-column:1/-1}.library-intro h1{font-size:clamp(4.6rem,7.6vw,7rem)}.library-intro>p:last-child{max-width:560px;color:var(--neutral-dark);justify-self:end;margin:0 0 8px;font-size:1.125rem;line-height:1.72}.course-catalog{gap:0;padding-top:72px;display:grid}.course-catalog-entry{border-top:1px solid var(--neutral);min-width:0}.course-catalog-entry:last-child{border-bottom:1px solid var(--neutral)}.course-catalog-link{background:var(--surface);min-height:600px;color:var(--ink);grid-template-columns:minmax(0,1.03fr) minmax(420px,.97fr);display:grid;overflow:hidden}.course-catalog-entry:nth-child(2n) .course-media-art{grid-area:1/2}.course-catalog-entry:nth-child(2n) .course-media-body{grid-area:1/1}.course-media-art{background:var(--ink-soft);min-height:600px;display:block;position:relative;overflow:hidden}.course-media-art:after{background:var(--accent);content:"";width:36%;height:8px;position:absolute;bottom:0;right:0}.course-catalog-entry:nth-child(2n) .course-media-art:after{left:0;right:auto}.course-media-art>img{object-fit:cover;object-position:center;filter:saturate(.86)contrast(1.04);transition:filter .18s,opacity .18s}.course-catalog-entry[data-course-slug=deep-learning-basics] .course-media-art>img{object-position:46% center}.course-catalog-link:hover .course-media-art>img{filter:saturate()contrast(1.02)}.course-media-fallback{width:100%;height:100%;min-height:inherit;background:var(--ink-soft);color:var(--accent-soft);letter-spacing:-.09em;place-items:center;font-size:clamp(4.8rem,11vw,9rem);font-weight:780;display:grid}.course-media-body{background:var(--surface);flex-direction:column;min-width:0;min-height:600px;padding:clamp(48px,5vw,76px);display:flex}.course-media-heading{gap:18px;display:grid}.course-media-heading>span{color:var(--accent-strong);letter-spacing:.14em;text-transform:uppercase;font-size:.76rem;font-weight:760}.course-media-heading>strong{letter-spacing:-.065em;max-width:9ch;font-size:clamp(3rem,4.8vw,4.8rem);font-weight:760;line-height:.98}.course-media-heading>small{max-width:510px;color:var(--neutral-dark);font-size:1.125rem;line-height:1.72}.course-media-meta{border-top:1px solid var(--neutral);border-bottom:1px solid var(--neutral);color:var(--ink-soft);flex-wrap:wrap;gap:10px 0;margin-top:32px;padding-block:19px;font-size:1rem;font-weight:650;display:flex}.course-media-meta span+span:before{color:var(--stone);content:"/";margin-inline:14px}.course-media-footer{justify-content:space-between;align-items:flex-end;gap:28px;margin-top:auto;padding-top:48px;display:flex}.course-media-progress{width:min(100%,320px);color:var(--neutral-dark);gap:13px;font-size:.92rem;font-weight:680;display:grid}.course-media-progress progress{appearance:none;background:var(--neutral);border:0;border-radius:0;width:100%;height:4px;overflow:hidden}.course-media-progress progress::-webkit-progress-bar{background:var(--neutral)}.course-media-progress progress::-webkit-progress-value{background:var(--accent)}.course-media-progress progress::-moz-progress-bar{background:var(--accent)}.course-media-action{flex:0 0 60px;width:60px;height:60px;display:block;overflow:hidden}.course-media-action img{object-fit:contain;width:100%;height:100%;display:block}.course-detail-main{padding-block:0 124px}.learning-context-nav{border-bottom:1px solid var(--neutral);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(32px,5vw,72px);padding:18px 0 24px;display:grid}.learning-context-path{--learning-step-gap:clamp(28px, 4vw, 56px);gap:var(--learning-step-gap);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;margin:0;padding:0;list-style:none;display:grid}.learning-context-nav.has-lesson .learning-context-path{grid-template-columns:repeat(3,minmax(0,1fr))}.learning-context-step{min-width:0;position:relative}.learning-context-step:not(:last-child):after{top:12px;right:calc(-1 * var(--learning-step-gap));background:var(--neutral);content:"";height:1px;position:absolute;left:12px}.learning-context-node{z-index:1;background:var(--accent);outline:4px solid var(--paper);border-radius:1px;width:7px;height:7px;position:absolute;top:9px;left:0}.learning-context-step-link{align-content:end;gap:4px;min-width:0;min-height:62px;padding-top:24px;display:grid}.learning-context-step-link>span{color:var(--neutral-dark);letter-spacing:.08em;font-size:.7rem;font-weight:680}.learning-context-step-link>strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:680;line-height:1.4;overflow:hidden}.learning-context-step-link:hover>strong,.learning-context-step-link[aria-current=page]>strong{color:var(--accent-strong)}.learning-context-step:has(.learning-context-step-link[aria-current=page]) .learning-context-node{background:var(--ink);width:9px;height:9px;top:8px;left:-1px}.learning-context-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px 22px;display:flex}.learning-context-action{border-bottom:1px solid var(--accent);min-height:44px;color:var(--ink);align-items:center;font-size:.84rem;font-weight:700;display:inline-flex}.learning-context-action:hover{color:var(--accent-strong)}.catalog-back{border-bottom:1px solid var(--accent);min-height:44px;color:var(--ink);align-items:center;margin-bottom:42px;font-size:.9rem;font-weight:700;display:inline-flex}.catalog-back:hover{color:var(--accent-strong)}.system-actions .catalog-back{margin:0}.course-detail-intro{background:var(--ink);color:var(--paper);grid-template-columns:minmax(0,1.38fr) minmax(300px,.62fr);gap:clamp(56px,8vw,112px);margin-top:48px;padding:clamp(54px,6vw,82px);display:grid;position:relative;overflow:hidden}.course-detail-intro:before{background:var(--accent);content:"";width:28%;height:8px;position:absolute;top:0;right:0}.course-provider{color:var(--accent-soft);letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px;font-size:.76rem;font-weight:760}.course-detail-copy h1{letter-spacing:-.075em;max-width:9ch;margin:0;font-size:clamp(4rem,7.4vw,7rem);font-weight:760;line-height:.92}.course-detail-copy>p:last-child{max-width:680px;color:color-mix(in srgb, var(--paper) 68%, var(--stone));margin:32px 0 0;font-size:1.125rem;line-height:1.78}.course-detail-meta{border-left:1px solid #faf8f538;align-self:end;margin:0;padding-left:clamp(28px,4vw,52px);display:grid}.course-detail-meta div{border-top:1px solid #faf8f52e;grid-template-columns:92px minmax(0,1fr);gap:18px;padding-block:20px;display:grid}.course-detail-meta div:last-child{border-bottom:1px solid #faf8f52e}.course-detail-meta dt{color:color-mix(in srgb, var(--paper) 56%, var(--stone));font-size:.8rem;font-weight:620}.course-detail-meta dd{color:var(--paper);margin:0;font-size:.95rem;font-weight:680;line-height:1.55}.course-curriculum{grid-template-columns:minmax(240px,.42fr) minmax(0,1.58fr);gap:clamp(54px,8vw,104px);padding-top:104px;display:grid}.curriculum-heading{align-self:start}.curriculum-heading h2{letter-spacing:-.06em;max-width:8ch;margin:0;font-size:clamp(2.5rem,4.2vw,4.2rem);font-weight:750;line-height:.98}.curriculum-heading>p:last-child{max-width:280px;color:var(--neutral-dark);margin:24px 0 0;font-size:.98rem;line-height:1.72}.lesson-path{border-bottom:1px solid var(--neutral);gap:0;margin:0;padding:0;list-style:none;display:grid}.lesson-path:before{display:none}.lesson{border-top:1px solid var(--neutral);position:relative}.lesson-node{z-index:1;background:0 0;width:3px;position:absolute;top:0;bottom:0;left:0}.lesson.is-open .lesson-node{background:var(--accent)}.lesson-content{grid-template-columns:92px minmax(0,1fr) 104px;align-items:center;gap:24px;min-height:128px;padding:24px 12px 24px 28px;display:grid}a.lesson-content{background:0 0;transition:background-color .15s}a.lesson-content:hover{background:var(--accent-wash)}.lesson-day{color:var(--neutral-dark);letter-spacing:.08em;font-size:.8rem;font-weight:760}.lesson.is-open .lesson-day{color:var(--accent-strong)}.lesson-copy{gap:8px;min-width:0;display:grid}.lesson-copy strong{letter-spacing:-.02em;text-overflow:ellipsis;white-space:nowrap;font-size:1.12rem;font-weight:700;line-height:1.45;overflow:hidden}.lesson-copy small{color:var(--neutral-dark);text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;line-height:1.55;overflow:hidden}.lesson-state{color:var(--neutral-dark);justify-self:end;font-size:.82rem;font-weight:700}.lesson.is-open .lesson-state{border-bottom:1px solid var(--accent);color:var(--ink);padding-bottom:3px}.empty-state{border-left:4px solid var(--accent);background:var(--surface-muted);margin-top:64px;padding:36px 40px}.empty-state h2{margin:0 0 10px;font-size:1.3rem}.empty-state p{color:var(--neutral-dark);margin:0}@media (max-width:1040px){.login-stage{grid-template-columns:minmax(320px,.82fr) minmax(430px,1.18fr);gap:48px}.course-catalog-link{grid-template-columns:minmax(0,.92fr) minmax(400px,1.08fr)}.course-media-body{padding:48px}}@media (max-width:900px){.login-stage{grid-template-columns:1fr;gap:64px;min-height:auto;padding-block:72px 88px}.login-copy{max-width:680px}.login-visual{width:min(100%,760px)}.login-visual-link{min-height:640px}.library-intro,.course-detail-intro,.course-curriculum{grid-template-columns:1fr}.library-intro>p:last-child{justify-self:start;margin-top:28px}.course-catalog-link,.course-catalog-entry:nth-child(2n) .course-catalog-link{flex-direction:column;min-height:0;display:flex}.course-catalog-entry:nth-child(2n) .course-media-art,.course-catalog-entry:nth-child(2n) .course-media-body{grid-area:auto}.course-media-art{aspect-ratio:16/10;min-height:0}.course-media-body{min-height:460px}.course-detail-intro{gap:52px}.course-detail-meta{border-top:1px solid #faf8f538;border-left:0;padding:28px 0 0}.course-curriculum{gap:52px}.curriculum-heading>p:last-child{max-width:520px}.learning-context-nav{grid-template-columns:1fr;gap:16px}.learning-context-actions{justify-content:flex-start}}@media (max-width:640px){.shell{width:min(1280px,100% - 32px)}.public-header,.library-header{min-height:78px}.brand{gap:10px}.brand-mark{flex-basis:38px;width:38px;height:38px}.brand strong{font-size:.86rem}.brand small{font-size:.58rem}.header-note,.account-line>span{display:none}.logout-button{min-width:76px;padding-inline:12px}.context-label{margin-bottom:16px;font-size:.7rem}.login-stage{gap:46px;padding-block:54px 72px}.login-copy{padding-top:26px}.login-copy h1,.identity-required h1{font-size:clamp(3.35rem,16vw,4.6rem);line-height:.94}.login-lead{margin:26px 0 30px;font-size:1.05rem}.auth-action{width:100%}.login-visual:before{height:8px;top:-8px;right:-8px}.login-visual-link{min-height:510px}.login-visual-poster,.login-visual-video{object-position:68% center}.login-visual-caption{grid-template-columns:1fr;gap:16px;padding:24px}.login-visual-caption strong{font-size:1.25rem}.login-visual-detail{border-top:1px solid #faf8f53d;border-left:0;padding:14px 0 0}.public-footer,.library-footer{flex-direction:column;justify-content:center;align-items:flex-start;gap:6px;min-height:94px}.identity-required{min-height:calc(100dvh - 78px);padding-block:72px}.identity-marker{margin-bottom:34px}.system-actions{flex-wrap:wrap}.library-main{padding-block:60px 84px}.library-intro{padding-bottom:44px}.library-intro h1{font-size:clamp(3.6rem,18vw,4.8rem)}.library-intro>p:last-child{margin-top:24px;font-size:1.04rem}.course-catalog{padding-top:48px}.course-media-art{aspect-ratio:4/3}.course-media-art:after{height:6px}.course-media-body{min-height:430px;padding:32px 24px 36px}.course-media-heading{gap:15px}.course-media-heading>strong{max-width:10ch;font-size:clamp(2.75rem,13vw,3.5rem)}.course-media-heading>small{font-size:1.04rem}.course-media-meta{margin-top:26px;font-size:.94rem}.course-media-meta span+span:before{margin-inline:9px}.course-media-footer{gap:18px;padding-top:38px}.course-media-action{flex-basis:54px;width:54px;height:54px}.course-detail-main{padding-bottom:84px}.learning-context-nav{gap:12px;padding:10px 0 22px}.learning-context-path,.learning-context-nav.has-lesson .learning-context-path{grid-template-columns:1fr;gap:0;display:grid}.learning-context-step{min-height:54px}.learning-context-step:not(:last-child):after{width:1px;height:auto;inset:14px auto -14px 3px}.learning-context-node{top:10px;left:0}.learning-context-step:has(.learning-context-step-link[aria-current=page]) .learning-context-node{top:10px;left:0}.learning-context-step-link{align-content:start;gap:2px;min-height:54px;padding:5px 0 6px 26px}.learning-context-step-link>strong{white-space:normal}.learning-context-actions{gap:8px 20px;padding-left:26px}.course-detail-intro{gap:38px;margin-top:32px;padding:44px 24px 46px}.course-detail-intro:before{width:36%;height:6px}.course-detail-copy h1{font-size:clamp(3.5rem,17vw,4.8rem)}.course-detail-copy>p:last-child{margin-top:26px;font-size:1.04rem}.course-detail-meta div{grid-template-columns:82px minmax(0,1fr);gap:12px;padding-block:17px}.course-curriculum{gap:38px;padding-top:68px}.curriculum-heading h2{font-size:clamp(2.65rem,13vw,3.5rem)}.lesson-content{grid-template-columns:1fr auto;gap:9px 14px;min-height:140px;padding:24px 8px 24px 18px}.lesson-day{grid-column:1/-1}.lesson-copy strong,.lesson-copy small{white-space:normal}.lesson-copy small{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.lesson-state{align-self:start;padding-top:2px}.empty-state{padding:30px 26px}}@media (max-width:390px){.brand-wordmark small{display:none}.login-copy h1,.identity-required h1{font-size:3.25rem}.login-visual-link{min-height:490px}.course-media-meta{gap:8px 0}.course-media-meta span:last-child{width:100%}.course-media-meta span:last-child:before{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
