:root{--ink:#1d1d1f;--muted:#626269;--blue:#0066cc;--surface:#f5f5f7;--line:#e5e5ea;--side:258px;--top:64px;--radius:26px;--ease:220ms ease}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;color:var(--ink);background:#fff;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Malgun Gothic",sans-serif;font-size:16px;line-height:1.8;word-break:keep-all;overflow-wrap:break-word}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #0071e3;outline-offset:5px}button{border:0}svg{display:block}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{line-height:1.25;letter-spacing:-.045em}p+p{margin-top:16px}p{min-width:0}strong{font-weight:650}code{font-family:Consolas,"SFMono-Regular",monospace;font-size:.9em;background:#eef1f6;border-radius:5px;padding:2px 5px;overflow-wrap:anywhere}pre{overflow-x:auto;padding:24px;margin:0;line-height:1.65;font-size:13px;tab-size:4;word-break:normal;white-space:pre}pre code{background:transparent;padding:0;color:inherit;font-size:inherit;overflow-wrap:normal}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:12px}.topbar{height:var(--top);position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);gap:20px}.brand-group,.toplinks,.brand{display:flex;align-items:center;gap:20px}.brand{gap:10px;color:var(--ink);font-size:14px;font-weight:650;letter-spacing:-.02em}.brand svg{color:var(--blue)}.brand:hover{text-decoration:none}.brand span:last-child{color:#7d7d83;font-weight:400;border-left:1px solid #d2d2d7;padding-left:14px}.toplinks{gap:24px;font-size:12px}.toplinks>a{color:var(--muted)}.icon-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;background:var(--surface);border-radius:12px;color:#48484e}.pill{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:11px 23px;border-radius:30px;font-size:14px;font-weight:600;background:var(--blue);color:white;line-height:1.5}.pill:hover{background:#005bb8;text-decoration:none}.pill.secondary{background:#eaf3fc;color:var(--blue)}.print-btn{min-height:44px;padding:10px 12px;border-radius:10px;background:#eaf3fc;color:var(--blue);font-size:12px;line-height:1.5;white-space:nowrap}.sidebar{position:fixed;top:var(--top);bottom:0;left:0;width:var(--side);z-index:35;background:#fafafa;border-right:1px solid var(--line);padding:34px 20px 22px;display:flex;flex-direction:column;transition:transform var(--ease);overflow-y:auto}.sidebar-title{font-size:11px;letter-spacing:.12em;color:#85858d;font-weight:650;padding:0 14px;margin-bottom:14px}.chapter-label{padding:0 14px 22px;font-size:18px;font-weight:650;letter-spacing:-.04em}.toc{display:grid;gap:4px}.toc a{display:flex;gap:10px;align-items:center;padding:8px 13px;border-radius:9px;color:#66666e;font-size:12px}.toc a span{font-size:10px;color:#9999a1;font-variant-numeric:tabular-nums}.toc a:hover{background:#f0f0f3;text-decoration:none}.toc a[aria-current="location"]{background:#eaf2fc;color:var(--blue);font-weight:600}.toc a[aria-current="location"] span{color:var(--blue)}.toc-divider{height:1px;background:var(--line);margin:13px}.progress-card{margin-top:auto;padding:32px 14px 0;font-size:11px;color:var(--muted)}.progress-label{display:flex;justify-content:space-between;margin-bottom:10px}.progress-card progress{width:100%;height:4px;border:0;background:#e4e4e9;border-radius:4px;display:block;accent-color:var(--blue)}progress::-webkit-progress-bar{background:#e4e4e9;border-radius:4px}progress::-webkit-progress-value{background:var(--blue);border-radius:4px}.progress-card p{font-size:10px;line-height:1.6;margin-top:12px}.page{margin-left:var(--side);padding-top:var(--top);transition:margin-left var(--ease)}body.toc-closed .sidebar{transform:translateX(-100%)}body.toc-closed .page{margin-left:0}.scrim{display:none}.content{max-width:1136px;margin:auto;padding:0 64px;container:lecture / inline-size}.hero{padding-top:64px;padding-bottom:55px;position:relative}.eyebrow{color:var(--blue);font-size:11px;font-weight:650;letter-spacing:.16em;margin-bottom:22px;display:flex;align-items:center;gap:9px}.eyebrow::before{content:"";width:6px;height:6px;background:var(--blue);border-radius:50%}.hero h1{font-size:clamp(46px,5.1vw,76px);font-weight:720;letter-spacing:-.067em;line-height:1.13}.hero h1 span{color:#86868b}.hero .lead{font-size:18px;line-height:1.8;color:var(--muted);max-width:none;margin-top:26px;letter-spacing:-.035em}.hero-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:28px}.meta{display:flex;gap:18px;color:#86868b;font-size:11px;margin-top:23px;flex-wrap:wrap}.network-hero{background:radial-gradient(ellipse at 50% 15%,#e3efff 0,transparent 65%),linear-gradient(130deg,#f7f9fc,#f1f5fa);border:1px solid #e8eef5;border-radius:var(--radius);padding:30px 38px 25px;margin-top:42px;overflow:hidden}.diagram-label{font-size:10px;letter-spacing:.12em;color:#72849b;font-weight:600}.network-route{display:flex;align-items:center;justify-content:center;gap:0;padding:35px 0 27px}.device{min-width:110px;text-align:center;position:relative}.device-icon{width:68px;height:60px;background:#fff;border-radius:16px;box-shadow:0 10px 25px #3158890b;border:1px solid #e0e7ef;display:grid;place-items:center;margin:0 auto 14px;color:#4276ac}.device b{font-size:12px;display:block}.device small{font-size:10px;color:#6f7e90;display:block;margin-top:3px}.wire{height:1px;flex:1;background:#abc6e7;margin-top:-44px;position:relative;min-width:24px}.wire:after{content:"";position:absolute;left:50%;top:-4px;width:8px;height:8px;border-radius:3px;background:#0071e3;box-shadow:0 0 0 5px #dceafa}.wire.internet{min-width:60px}.network-caption{font-size:11px;color:#758294;border-top:1px solid #dfe7f0;padding-top:18px;text-align:center}.section{padding:70px 0;border-top:1px solid var(--line);scroll-margin-top:0}.section-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.kicker{font-size:11px;color:var(--blue);font-weight:650;letter-spacing:.09em}.source-ref{font-size:10px;color:#86868b}.section h2{font-size:clamp(29px,3vw,42px);margin-bottom:20px;font-weight:700}.section>.intro{color:var(--muted);font-size:17px;line-height:1.9;margin-bottom:30px}.section h3{font-size:22px;line-height:1.45;margin:36px 0 18px}.section h4{font-size:17px;line-height:1.5;margin-bottom:16px}.grid{display:grid;gap:18px}.grid>*{min-width:0}:where(.hero,.section,.subsection,.lesson-detail)>.grid,:where(.section,.subsection,.lesson-detail)>.card{margin-block:28px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.card{background:var(--surface);border:1px solid transparent;border-radius:22px;padding:28px;min-width:0}.card h3{margin:13px 0 16px;font-size:20px}.card h3:first-child{margin-top:0}.card p{font-size:14px;color:var(--muted);line-height:1.85}.card .big-num{font-size:12px;color:var(--blue);font-weight:600}.card-link{color:var(--ink);display:block;transition:transform var(--ease),background var(--ease)}.card-link:hover{background:#eef3fa;transform:translateY(-3px);text-decoration:none}.card-link .go{color:var(--blue);font-size:18px;display:block;margin-top:16px}.note{border-left:3px solid #90bcee;padding:22px 26px;background:#f4f8fd;border-radius:0 12px 12px 0;margin:28px 0;font-size:14px;color:#4f5c6e}.note strong{color:#253f60}.note small{display:block;margin-top:8px}.original{margin-top:24px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.original summary{font-size:12px;color:var(--muted);padding:15px 20px;cursor:pointer}.original[open] summary{border-bottom:1px solid var(--line)}.original figure{padding:18px;background:#fafafa;text-align:center}.original img{width:100%;height:auto;max-width:720px;border:1px solid #e8e8ec}.original figcaption{font-size:12px;text-align:left;color:var(--muted);margin:14px auto 0;max-width:720px}.figure{background:var(--surface);border:1px solid #eeeef1;border-radius:22px;padding:28px;margin:26px 0}.figure figcaption{color:var(--muted);font-size:13px;line-height:1.75;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.layer-stack{display:grid;gap:9px}.layer{border-radius:12px;display:grid;grid-template-columns:140px 1fr 130px;align-items:center;gap:15px;padding:18px 22px;background:#fff;font-size:13px;border-left:4px solid #a9c8e9}.layer:first-child{border-left-color:#0071e3}.layer:nth-child(2){border-left-color:#4c92d8}.layer b{font-size:15px}.layer span{color:var(--muted)}.layer small{text-align:right;color:#557ca5}.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:16px;margin:24px 0}table{width:100%;border-collapse:collapse;font-size:13px;min-width:590px}th{text-align:left;font-weight:650;background:#f5f5f7;color:#48484f}th,td{padding:16px 20px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:0}td:first-child{font-weight:600;width:20%}.interactive{background:#f5f7fa;border:1px solid #e4eaf2;border-radius:23px;padding:28px;margin:26px 0}.control-row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:24px}.control-row :is(h3,h4){margin:0;font-size:18px;line-height:1.5}.segments{display:inline-flex;gap:4px;padding:4px;background:#e5e9ee;border-radius:12px}.segments button{min-height:44px;min-width:64px;background:transparent;border-radius:9px;padding:10px 20px;font-size:13px;line-height:1.5;color:#646a73}.segments button[aria-pressed="true"]{background:#fff;box-shadow:0 2px 4px #00000008;color:var(--ink);font-weight:600}.stream-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:12px 0}.stream-row>small{width:100%;font-size:11px;color:var(--muted)}.packet{background:white;border:1px solid #cddced;border-radius:10px;padding:9px 19px;font-family:Consolas,monospace;font-size:16px;color:#2f659f;letter-spacing:3px}.packet.lost{opacity:.5;text-decoration:line-through;border-style:dashed}.explanation{font-size:13px;color:#5f6e82;margin-top:20px;min-height:48px}.text-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;line-height:1.5;background:white;border:1px solid #c6d5e7;border-radius:11px;font-size:13px;color:var(--blue);padding:10px 16px}.text-btn:hover:not(:disabled){background:#eaf3fc;border-color:#90bcee}.interactive>.text-btn{margin-top:16px}.packet-stack{display:grid;gap:10px;overflow-x:auto;padding:2px}.packet-line{display:flex;align-items:stretch;min-width:570px;font-size:11px;gap:3px}.packet-line>span{border-radius:7px;padding:12px 13px;white-space:nowrap;display:grid;place-items:center}.packet-line .layer-name{width:84px;flex:none;justify-content:start;padding-left:0;color:#74747d}.p-data{background:#fff;border:1px solid #dfe4eb;flex:1}.p-tcp{background:#dcecff;color:#265c98}.p-ip{background:#c5ddf8;color:#244d7c}.p-eth{background:#adcbed;color:#254a72}.address-example{background:#f5f7fa;border-radius:24px;text-align:center;padding:35px 20px;margin:26px 0}.address-example .endpoint{font-size:clamp(27px,4vw,48px);font-family:Consolas,monospace;letter-spacing:-.04em;line-height:1.5}.endpoint .ip{color:#637892}.endpoint .port{color:var(--blue)}.address-example p{font-size:12px;color:var(--muted);margin:10px auto 0}.sequence{display:grid;grid-template-columns:1fr 1fr;gap:25px}.sequence>div{min-width:0}.sequence h4{text-align:center;font-size:15px;margin-bottom:18px}.step{border:1px solid #dae3ef;background:#fff;border-radius:10px;padding:12px;text-align:center;font:13px Consolas,monospace;margin:9px 0}.step small{font:11px -apple-system,"Segoe UI","Malgun Gothic",sans-serif;color:#788596;display:block;margin-top:6px}.step.key{background:#e4effc;border-color:#c6dcf6;color:var(--blue)}.arrow{text-align:center;font-size:16px;color:#a4b3c6}.codebox{border:1px solid #3c3c3c;border-radius:15px;overflow:hidden;margin:24px 0;background:#1e1e1e;color:#d4d4d4;min-width:0;color-scheme:dark}.codehead{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#252526;border-bottom:1px solid #3c3c3c;padding:12px 16px;font-size:12px;line-height:1.6;color:#cccccc}.codehead>span{min-width:0}.copy-btn{display:inline-flex;align-items:center;justify-content:center;min-width:64px;min-height:44px;background:#333333;border:1px solid #606060;border-radius:10px;padding:10px 14px;color:#e2e2e2;font-size:12px;line-height:1.5;flex-shrink:0}.codebox.output{background:#181818;color:#cccccc}.codebox.output .codehead{background:#202020;color:#bdbdbd}.code-details{margin:28px 0}.code-details summary{font-size:14px;line-height:1.7;color:var(--blue);cursor:pointer;padding:16px 20px;background:#f5f7fa;border:1px solid #dfe6ef;border-radius:12px}.code-details summary:hover{background:#eaf3fc}.steps-list{padding-left:23px;font-size:14px;line-height:1.95}.steps-list li+li{margin-top:10px}.download-row{display:flex;align-items:stretch;gap:12px;flex-wrap:wrap;margin:28px 0;font-size:13px}.download-row>a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 16px;border:1px solid #cddff2;border-radius:12px;background:#eef5fd;line-height:1.6;text-align:center}.download-row>a:hover{background:#e1efff;border-color:#91b8e2;text-decoration:none}.complete{display:flex;align-items:center;gap:12px;min-height:44px;padding:8px 0;font-size:12px;color:#707078;margin-top:30px;width:fit-content;cursor:pointer}.complete input{width:20px;height:20px;flex-shrink:0;margin:0;accent-color:var(--blue)}.quiz-item{padding:20px 0;border-bottom:1px solid var(--line)}.quiz-item summary{cursor:pointer;font-size:15px;font-weight:600}.quiz-item p{margin-top:15px;color:var(--muted);font-size:14px}.source-list{padding-left:20px;font-size:13px;color:var(--muted)}.source-list li{margin:9px 0}.viewer{border:1px solid var(--line);border-radius:22px;overflow:hidden;margin-top:26px}.viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:var(--surface);flex-wrap:wrap}.viewer-bar label{font-size:12px}.viewer-bar select{max-width:100%;background:white;border:1px solid #d5d5dd;padding:5px 9px;border-radius:8px;font-size:12px}.viewer-controls{display:flex;gap:8px}.viewer-stage{padding:20px;background:#eceef1;text-align:center}.viewer-stage img{max-width:100%;width:760px;height:auto;background:white}.viewer-caption{padding:16px 22px;font-size:12px;color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:20px}.gallery a{font-size:10px;text-align:center}.gallery img{width:100%;height:auto;border:1px solid var(--line)}.footer{border-top:1px solid var(--line);padding:30px 0 45px;display:flex;justify-content:space-between;gap:15px;color:#919198;font-size:11px}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#242c37;color:white;border-radius:14px;padding:12px 22px;font-size:13px;box-shadow:0 8px 30px #0002;z-index:100;max-width:90vw}.toast:empty{display:none}.noscript{padding:18px;background:#f4f8fd;font-size:13px}.mini-label{font-size:11px;color:var(--muted);margin-bottom:12px}.history{font-size:13px;line-height:1.9;color:var(--muted)}.history summary{color:var(--blue);cursor:pointer;margin:20px 0 10px}

/* VS Code Dark+ 계열: 본문은 밝게 유지하고 코드 안에서만 사용한다. */
.codebox pre{line-height:1.85;tab-size:4}
.copy-btn:hover{background:#424242;color:#ffffff}
.codebox ::selection{background:#264f78;color:#ffffff}
.syntax-comment{color:#7ca668}
.syntax-keyword,.syntax-preprocessor{color:#c586c0}
.syntax-type{color:#569cd6}
.syntax-function{color:#dcdcaa}
.syntax-string{color:#ce9178}
.syntax-number{color:#b5cea8}
.syntax-constant{color:#4fc1ff}
.syntax-variable{color:#9cdcfe}

@media(min-width:1500px){.hero{padding-top:85px}.content{padding:0 80px}.hero h1{font-size:82px}}
@media(max-width:1100px){:root{--side:230px}.content{padding:0 36px}.topbar{padding:0 22px}.network-hero{padding:25px}.device{min-width:90px}.grid.three{grid-template-columns:1fr}.layer{grid-template-columns:120px 1fr}.layer small{grid-column:2;text-align:left}.hero h1{font-size:57px}}
@media(max-width:760px){:root{--side:278px;--top:58px}.topbar{padding:0 16px;gap:12px}.brand-group{gap:10px}.brand{font-size:12px;gap:7px}.brand span:last-child{font-size:10px;padding-left:9px}.toplinks{gap:10px}.toplinks>a{display:none}.print-btn{font-size:11px}.page,body.toc-closed .page{margin-left:0}.sidebar{box-shadow:12px 0 60px #0001}.scrim{position:fixed;inset:var(--top) 0 0;background:#0004;z-index:30;border:0;width:100%}body:not(.toc-closed) .scrim{display:block}.content{padding:0 23px}.hero{padding-top:43px;padding-bottom:42px}.eyebrow{font-size:10px;margin-bottom:20px}.hero h1{font-size:clamp(38px,10.8vw,60px)}.hero .lead{font-size:16px}.hero-actions{gap:10px}.pill{font-size:12px;padding:11px 18px}.meta{gap:10px;font-size:10px}.network-hero{padding:22px 16px 18px;margin-top:33px}.network-route{padding-top:28px;flex-wrap:nowrap}.device{min-width:58px}.device-icon{width:48px;height:45px;border-radius:12px;margin-bottom:11px}.device-icon svg{width:27px}.device b{font-size:10px}.device small{font-size:8px}.wire{min-width:8px;margin-top:-39px}.wire.internet{min-width:15px}.wire:after{width:6px;height:6px;top:-3px;box-shadow:0 0 0 3px #dceafa}.network-caption{font-size:10px}.section{padding:44px 0}.section h2{font-size:30px}.section>.intro{font-size:15px;margin-bottom:24px}.section-top{align-items:flex-start}.source-ref{font-size:9px}.kicker{font-size:10px}.grid.two{grid-template-columns:1fr}.grid{gap:13px}.card{padding:23px}.layer{grid-template-columns:1fr;padding:17px;gap:6px}.layer small{grid-column:auto}.figure,.interactive{padding:20px}.figure{margin:23px 0}.sequence{gap:12px}.step{font-size:11px;padding:10px 5px}.step small{font-size:10px}.stream-row{gap:6px}.packet{padding:8px 13px}.section h3{font-size:21px}.viewer-stage{padding:8px}.viewer-bar{padding:15px}.viewer-bar select{width:100%}.viewer-bar label{width:100%}.gallery{grid-template-columns:repeat(3,minmax(0,1fr));padding:12px}.footer{flex-direction:column}.source-list{padding-left:18px}.original figure{padding:8px}.original figcaption{padding:8px}.progress-card{padding-top:25px}pre{padding:18px}.toast{width:max-content;max-width:88vw}.brand svg{width:20px}}
@container lecture (max-width:680px){.grid.two{grid-template-columns:1fr}.download-row>a{flex:1 1 220px}.control-row{align-items:flex-start;gap:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media print{@page{size:A4;margin:16mm}html{scroll-behavior:auto}body{font-size:10pt;line-height:1.6;color:#000}.topbar,.sidebar,.scrim,.hero-actions,.copy-btn,.text-btn,.segments,.complete,.viewer-controls,.viewer-bar,.toast,.skip,.progress-card{display:none!important}.page,body.toc-closed .page{margin:0;padding:0}.content{max-width:none;padding:0;container-type:normal}.hero{padding:10px 0 25px}.hero h1{font-size:39pt}.hero .lead{font-size:12pt}.network-hero{margin-top:25px}.section{padding:25px 0;scroll-margin:0}.section h2{font-size:24pt}.section>.intro{font-size:11pt}.section h3{font-size:16pt}.grid.two{grid-template-columns:1fr 1fr}.grid.three{grid-template-columns:repeat(3,1fr)}.card,.figure,.interactive,.network-hero{break-inside:avoid;padding:16px}.card p{font-size:10pt}.original:not([open]){display:none}.original img{max-height:210mm;width:auto;max-width:100%}.original figure{break-inside:avoid}.codebox{break-inside:auto}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:8pt;padding:12px}.table-wrap{overflow:visible}table{min-width:0;font-size:9pt}th,td{padding:10px}.packet-line{min-width:0;font-size:8pt}.packet-line>span{padding:8px}.layer{grid-template-columns:120px 1fr 100px}.layer small{grid-column:auto}.gallery{grid-template-columns:repeat(5,1fr)}.viewer{display:none}.source-ref{font-size:8pt}.note{font-size:10pt}a{color:#174c87}h2,h3,h4{break-after:avoid}img{max-width:100%}.footer{padding:20px 0;font-size:8pt}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}

.section[tabindex='-1']:focus{outline:none}

/* 공통 이미지 확대 및 강의 목록 화면 */
.image-dialog{border:0;padding:0;border-radius:18px;width:min(1000px,96vw);max-height:94vh;background:#f5f5f7;box-shadow:0 20px 100px #0005}.image-dialog::backdrop{background:#121820b8;backdrop-filter:blur(5px)}.image-dialog-bar{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:#ffffffed;border-bottom:1px solid #ddd;font-size:12px;z-index:1}.image-dialog img{display:block;width:100%;height:auto}.image-dialog button{padding:7px 15px;border-radius:9px;background:#eaf2fc;color:#0066cc}.image-dialog-actions{display:flex;align-items:center;gap:17px}.brand img{display:block;flex-shrink:0}.catalog .page{margin-left:0}.catalog .content{max-width:1120px}.catalog .hero{padding-top:85px}.catalog .hero h1{font-size:clamp(44px,6.5vw,78px)}.course-cover{height:140px;border-radius:15px;display:flex;align-items:center;justify-content:space-between;padding:24px 30px;margin-bottom:24px;background:linear-gradient(130deg,#e4efff,#f1f5fb);color:#597da7}.course-cover span{font-size:60px;font-weight:700;line-height:1;letter-spacing:-.07em}.course-cover img{width:50px;height:50px;opacity:.7}.course-cover.pending{background:#eaecef;color:#acafb5}.status-badge{font-size:10px;font-weight:600;border-radius:20px;padding:5px 10px;background:#e7f2e9;color:#387149}.status-badge.pending{background:#e7e7ec;color:#73737d}.catalog .card{padding:28px}.catalog-note{color:var(--muted);font-size:13px;margin:28px 0 50px}.catalog .hero .lead{max-width:650px}.chapter-return{display:inline-block;font-size:12px;margin-bottom:28px}.catalog .card h3{font-size:25px}.placeholder-card{padding:36px;margin:35px 0;background:#f5f5f7;border-radius:24px}.placeholder-card p{color:var(--muted);font-size:15px}@media(max-width:760px){.catalog .hero{padding-top:45px}.catalog .card{padding:22px}.course-cover{height:110px;padding:20px}.course-cover span{font-size:48px}.catalog .card h3{font-size:22px}.placeholder-card{padding:25px}}@media print{.image-dialog{display:none!important}.catalog .hero{padding-top:10px}}

@media(max-width:380px){.brand span:last-child{display:none}}

/* Explanatory notation is translated; executable code keeps its original bytes. */
.code-label{font-family:Consolas,"SFMono-Regular",monospace;font-size:.9em;background:var(--soft,#f5f5f7);padding:.12em .35em;border-radius:5px;overflow-wrap:anywhere}
