:root{--canvas:#fafaf8;--canvas-hsl:60 17% 98%;--canvas-deep:#f1f0f6;--canvas-deep-hsl:250 25% 95%;--card:#fff;--card-hsl:0 0% 100%;--ink:#1b1830;--ink-hsl:248 33% 14%;--ink-soft:#1b183099;--ink-soft-hsl:248 33% 14% / .6;--accent:#5b4be0;--accent-hsl:246 71% 59%;--accent-strong:#4434c7;--accent-strong-hsl:247 59% 49%;--accent-soft:#5b4be01a;--accent-soft-hsl:246 71% 59% / .1;--green:#3e7a5c;--green-hsl:150 33% 36%;--green-soft:#3e7a5c1f;--green-soft-hsl:150 33% 36% / .12;--amber:#a97b1a;--amber-hsl:41 73% 38%;--amber-soft:#a97b1a1f;--amber-soft-hsl:41 73% 38% / .12;--red:#b3453e;--red-hsl:4 49% 47%;--red-soft:#b3453e1f;--red-soft-hsl:4 49% 47% / .12;--line:#1b183014;--line-hsl:248 33% 14% / .08;--hairline:#1b18300d;--hairline-hsl:248 33% 14% / .05;--code-bg:#191631;--code-bg-hsl:247 38% 14%;--code-ink:#eceaf7;--code-ink-hsl:249 45% 94%;--course-ios-base:#1b6bbb;--course-ios-strong:#16599c;--course-ios-soft:#e7f0f9;--course-ios-on:#fff;--course-android-base:#188653;--course-android-strong:#157548;--course-android-soft:#e7f9f0;--course-android-on:#fff;--course-ruby-base:#bb301b;--course-ruby-strong:#9c2816;--course-ruby-soft:#f9e9e7;--course-ruby-on:#fff;--course-python-base:#1c8271;--course-python-strong:#187263;--course-python-soft:#e7f9f6;--course-python-on:#fff;--course-go-base:#157e93;--course-go-strong:#116778;--course-go-soft:#e7f6f9;--course-go-on:#fff;--course-node-base:#278634;--course-node-strong:#22772e;--course-node-soft:#e7f8ea;--course-node-on:#fff;--course-native-base:#3420b6;--course-native-strong:#2b1b98;--course-native-soft:#e9e7f9;--course-native-on:#fff;--course-expoui-base:#a06a0d;--course-expoui-strong:#8e5e0b;--course-expoui-soft:#f9f2e7;--course-expoui-on:#fff;--radius-sm:8px;--radius-md:12px;--radius:14px;--radius-lg:18px;--radius-xl:24px;--shadow-sm:0 1px 2px #1b18300a, 0 1px 3px #1b18300d;--shadow-md:0 4px 12px #1b18300f, 0 2px 4px #1b18300a;--shadow-lg:0 12px 32px #1b18301a, 0 4px 8px #1b18300f;--shadow-tint:0 8px 24px hsl(var(--tint-hsl,var(--accent-hsl)) / .12), 0 2px 6px hsl(var(--tint-hsl,var(--accent-hsl)) / .08);--ease-rise:cubic-bezier(.2, .8, .3, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-pop:cubic-bezier(.34, 1.56, .64, 1);--ease-flip:cubic-bezier(.4, 0, .2, 1);--duration-fast:.15s;--duration-rise:.35s;--duration-progress:.6s;--duration-flip:.6s;--duration-drawer:.3s;--duration-confetti:.9s;--confetti-piece-count:16;--text-hero:clamp(40px, 6vw, 64px);--text-hero-weight:700;--text-hero-line-height:1.06;--text-page-title:32px;--text-page-title-weight:700;--text-page-title-line-height:1.18;--text-section-label:13px;--text-section-label-weight:600;--text-section-label-letter-spacing:.12em;--text-section-label-text-transform:uppercase;--text-section-label-font-family:var(--mono);--text-body:16.5px;--text-body-line-height:1.6;--text-caption:12.5px;--text-caption-line-height:1.5;--sans:var(--font-geist-sans), system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--display:var(--font-geist-sans), system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:var(--font-geist-mono), ui-monospace, SFMono-Regular, Menlo, monospace}@media (prefers-color-scheme:dark){:root{--canvas:#0e0c17;--canvas-hsl:251 31% 7%;--canvas-deep:#17142a;--canvas-deep-hsl:248 35% 12%;--card:#191631;--card-hsl:247 38% 14%;--ink:#eceaf7;--ink-hsl:249 45% 94%;--ink-soft:#eceaf79e;--ink-soft-hsl:249 45% 94% / .62;--accent:#8e7dff;--accent-hsl:248 100% 75%;--accent-strong:#a697ff;--accent-strong-hsl:249 100% 80%;--accent-soft:#8e7dff29;--accent-soft-hsl:248 100% 75% / .16;--green:#9fd3c0;--green-hsl:158 37% 73%;--green-soft:#9fd3c024;--green-soft-hsl:158 37% 73% / .14;--amber:#e3b25e;--amber-hsl:38 70% 63%;--amber-soft:#e3b25e24;--amber-soft-hsl:38 70% 63% / .14;--red:#e08a84;--red-hsl:4 60% 70%;--red-soft:#e08a8424;--red-soft-hsl:4 60% 70% / .14;--line:#eceaf71f;--line-hsl:249 45% 94% / .12;--hairline:#eceaf712;--hairline-hsl:249 45% 94% / .07;--code-bg:#07050f;--code-bg-hsl:252 50% 4%;--code-ink:#eceaf7;--code-ink-hsl:249 45% 94%;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #00000040;--shadow-md:0 4px 12px #00000059, 0 2px 4px #0000004d;--course-ios-base:#6cadef;--course-ios-strong:#91c2f3;--course-ios-soft:#152637;--course-ios-on:#0e0c17;--course-android-base:#70ebb1;--course-android-strong:#94f0c5;--course-android-soft:#153727;--course-android-on:#0e0c17;--course-ruby-base:#ef7e6c;--course-ruby-strong:#f39e91;--course-ruby-soft:#371a15;--course-ruby-on:#0e0c17;--course-python-base:#74e7d3;--course-python-strong:#97edde;--course-python-soft:#153732;--course-python-on:#0e0c17;--course-go-base:#6cd9ef;--course-go-strong:#91e2f3;--course-go-soft:#153237;--course-go-on:#0e0c17;--course-node-base:#7cde89;--course-node-strong:#9de7a7;--course-node-soft:#15371a;--course-node-on:#0e0c17;--course-native-base:#8170eb;--course-native-strong:#a094f0;--course-native-soft:#1a1537;--course-native-on:#0e0c17;--course-expoui-base:#efbf6c;--course-expoui-strong:#f3cf91;--course-expoui-soft:#372b15;--course-expoui-on:#0e0c17;--shadow-sm-dark:0 1px 2px #ffffff0d, 0 1px 3px #ffffff0d;--shadow-md-dark:0 4px 12px #ffffff0f, 0 2px 4px #ffffff0d;--shadow-lg-dark:0 12px 32px #ffffff14, 0 4px 8px #ffffff0f}}::selection{background:var(--accent-soft);color:var(--ink)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--canvas);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16.5px;line-height:1.6}a{color:inherit}.layout{min-height:100vh;display:flex}#sidebar{border-right:1px solid var(--line);background:var(--canvas-deep);flex-direction:column;flex-shrink:0;gap:18px;width:300px;height:100vh;padding:26px 16px;display:flex;position:sticky;top:0;overflow-y:auto}#sidebar header a{color:var(--ink);flex-direction:column;align-items:flex-start;gap:2px;text-decoration:none;display:flex}.brand-row .brand-emoji{font-size:24px;line-height:1}.brand-title{letter-spacing:-.01em;font-size:16.5px;font-weight:700;line-height:1.3}.brand-sub{margin-top:3px}.mono-caption{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);font-size:10.5px;font-weight:500}.overall{align-items:center;gap:12px;display:flex}@keyframes progress-fill{0%{width:0%}to{width:var(--pct)}}.overall>div{animation:progress-fill var(--duration-progress) ease-out;width:0%}.bar{background:var(--line);border-radius:3px;flex:1;height:6px;overflow:hidden}.bar>div{background:var(--accent);border-radius:3px;width:0%;height:100%;transition:width .45s cubic-bezier(.2,.8,.3,1)}#overall-label{font-family:var(--mono);color:var(--ink-soft);text-align:right;min-width:38px;font-size:11.5px;font-weight:600}.overall-links{align-items:center;gap:14px;margin-top:10px;display:flex}.overall-links a{text-decoration:none;transition:color .15s}.overall-links a:hover{color:var(--accent)}.review-badge{color:var(--amber);font-weight:600}.search-input{background:var(--card);width:100%;color:var(--ink);border:1px solid var(--line);font:500 13.5px var(--sans);box-shadow:var(--shadow-sm);border-radius:10px;padding:9px 12px 9px 10px;transition:border-color .15s,box-shadow .15s}.search-input::placeholder{color:var(--ink-soft)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--course-ios-hsl);outline:none}.search-result{color:var(--ink);border-radius:8px;margin-bottom:2px;padding:9px 10px;font-size:13.5px;font-weight:600;text-decoration:none;display:block}.search-result:hover{background:var(--accent-soft)}.search-result .mono-caption{margin-top:2px}.search-snippet{color:var(--ink-soft);font-size:12.5px;font-weight:400;line-height:1.45}#module-list{flex-direction:column;flex:1;gap:4px;display:flex}.mod-head{text-align:left;width:100%;color:var(--ink);font:600 14px var(--sans);cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:9px;padding:9px 10px;transition:background .15s;display:flex}.mod-head:hover{background:var(--accent-soft)}.mod-head .emoji{text-align:center;width:20px}.mod-head .count{font-family:var(--mono);color:var(--ink-soft);background:var(--line);border-radius:999px;margin-left:auto;padding:1px 7px;font-size:10px}.mod.open .mod-head{background:var(--course-ios-base);color:var(--text-on-base)}.mod.open .mod-head .count{background:var(--course-ios-on);color:var(--text-on-base)}.mod-head .count.done{color:var(--green);background:var(--green-soft)}.mod-lessons{margin-top:3px;padding-left:10px;display:none}.mod.open .mod-lessons{display:block}.lesson-link{color:var(--ink-soft);border-radius:8px;align-items:center;gap:9px;padding:6px 10px;font-size:13.5px;text-decoration:none;transition:background .15s,color .15s;display:flex}.lesson-link:hover{background:var(--accent-soft);color:var(--ink)}.lesson-link.active{background:var(--accent);color:#fff}.lesson-link .tick{width:16px;color:var(--green);font-size:11px}.lesson-link.active .tick{color:#fff}.lesson-link .est{font-family:var(--mono);color:var(--ink-soft);opacity:.75;margin-left:auto;font-size:10.5px}.lesson-link.active .est{color:#ffffffd9}.side-lang-row{display:flex}.side-foot{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:8px;padding-top:14px;display:grid}.ghost{border:1px solid var(--line);color:var(--ink-soft);font:500 12px var(--sans);cursor:pointer;background:0 0;border-radius:8px;padding:7px 12px;transition:border-color .15s,color .15s}.ghost:hover{border-color:var(--red);color:var(--red)}.lang-switch{background:var(--accent-soft);border:1px solid var(--accent);width:100%;color:var(--accent);font:600 12.5px var(--sans);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:8px 12px;text-decoration:none;transition:background .15s,color .15s;display:flex}.lang-switch:hover{background:var(--accent);color:#fff}.lang-globe{font-size:13px;line-height:1}#menu-toggle{z-index:30;background:var(--card);color:var(--ink);border:1px solid var(--line);font:600 14px var(--sans);cursor:pointer;box-shadow:var(--shadow-md);border-radius:10px;padding:8px 14px;display:none;position:fixed;top:12px;left:12px}#content{background:radial-gradient(1200px 500px at 80% -10%, var(--accent-soft), transparent 60%);flex:1;min-width:0;padding:48px 44px 120px}.lesson-wrap{max-width:720px;margin:0 auto}.crumbs{margin-bottom:8px}.crumb-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.lesson-reset{color:var(--ink-soft);opacity:.75;white-space:nowrap;font-size:11.5px}.lesson-title{letter-spacing:-.022em;margin:0 0 28px;font-size:clamp(28px,4vw,38px);font-weight:700;line-height:1.18}.step{margin-bottom:30px;animation:.35s rise}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.step h3{letter-spacing:-.015em;margin:32px 0 10px;font-size:22px}.step h4{margin:22px 0 8px;font-size:17px}.step p{color:var(--ink);margin:0 0 14px}.step ul,.step ol{margin:0 0 14px;padding-left:22px}.step li{margin-bottom:5px}.step blockquote{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 10px 10px 0;margin:0 0 14px;padding:12px 16px}.step blockquote p{margin:0}.step code{font-family:var(--mono);background:var(--accent-soft);color:var(--accent);border-radius:5px;padding:1.5px 5px;font-size:.85em}.step a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:var(--accent-soft);text-decoration-color:var(--accent-soft)}.codeblock{border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow-sm);margin:0 0 16px;overflow:hidden}pre.md-code{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);border-radius:var(--radius);border:1px solid var(--line);margin:0 0 16px;padding:14px 16px;font-size:13.5px;line-height:1.6;overflow-x:auto}.codeblock .code-title{background:var(--canvas-deep);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 14px;font-size:11px;display:flex}.codeblock .code-title.code-title-run{justify-content:flex-end}.codeblock pre{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);margin:0;padding:16px 18px;font-size:13.5px;line-height:1.6;overflow-x:auto}.run-btn{border:1px solid var(--line);color:var(--ink-soft);font:600 11px var(--mono);letter-spacing:.04em;text-transform:none;cursor:pointer;background:0 0;border-radius:7px;margin-left:auto;padding:4px 10px}.run-btn:hover{color:var(--accent);border-color:var(--accent)}.run-out{background:var(--canvas-deep);max-height:200px;color:var(--ink);font-family:var(--mono);border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);white-space:pre-wrap;word-break:break-word;border-top:0;margin:0;padding:12px 16px;font-size:12.5px;line-height:1.5;overflow:auto}.run-out.err{color:var(--red);background:var(--red-soft)}.card .run-out{border-top:1px solid var(--line);border-radius:10px;margin-top:12px}.tok-kw{color:#ff7ab2}.tok-str{color:#a8e5a3}.tok-num{color:#e3b25e}.tok-type{color:#8ad1f5}.tok-attr{color:#c79dff}.tok-com{color:#8b86a8;font-style:italic}.card{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:16px;margin-bottom:18px;padding:24px}.card.done{background:#3e7a5c08;border-color:#3e7a5c66}.card-tag{align-items:center;gap:8px;margin-bottom:12px;display:flex}.card-tag .dot{background:var(--accent);border-radius:50%;width:8px;height:8px;position:relative}.card.done .card-tag .dot{background:var(--green)}.card-tag .dot:after{content:"";background:inherit;opacity:0;border-radius:50%;animation:none;position:absolute;inset:0}@keyframes pulse{0%{opacity:.35;transform:scale(1)}to{opacity:0;transform:scale(2.2)}}.card:not(.done) .card-tag .dot:after{animation:2s ease-out infinite pulse}.card h4{margin:0 0 10px;font-size:17.5px}.review-context{margin:0 0 10px}.choices{flex-direction:column;gap:10px;margin-top:14px;display:flex}.choice{text-align:left;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font:500 15px var(--sans);cursor:pointer;border-radius:12px;padding:13px 18px;transition:border-color .15s,box-shadow .15s,transform .1s}.choice:hover:not(:disabled){border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.choice:active:not(:disabled){transform:translateY(1px)}.choice.correct{border-color:var(--green);background:var(--green-soft)}.choice.wrong{border-color:var(--red);background:var(--red-soft);animation:.3s shake}.choice:disabled{cursor:default;opacity:.85}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.editor{resize:vertical;background:var(--code-bg);width:100%;min-height:120px;color:var(--code-ink);border:1.5px solid var(--line);font-family:var(--mono);tab-size:4;white-space:pre;border-radius:12px;padding:14px 16px;font-size:13.5px;line-height:1.6;transition:border-color .15s,box-shadow .15s;overflow-x:auto;box-shadow:inset 0 1px 3px #0003}.editor:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.ex-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.btn{background:var(--accent);color:#fff;font:600 14px var(--sans);cursor:pointer;box-shadow:var(--shadow-sm);border:0;border-radius:10px;padding:10px 20px;transition:background .15s,box-shadow .15s,transform .1s}.btn:hover{background:var(--accent-strong);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:default;box-shadow:none}.btn.secondary{color:var(--ink-soft);border:1px solid var(--line);box-shadow:none;background:0 0}.btn.secondary:hover{color:var(--ink);border-color:var(--ink-soft);background:var(--canvas)}.linkish{color:var(--ink-soft);font:500 13px var(--sans);cursor:pointer;background:0 0;border:0;text-decoration:underline}.linkish:hover{color:var(--accent)}.feedback{border-radius:10px;margin-top:14px;padding:12px 16px;font-size:14.5px}.feedback.ok{background:var(--green-soft);color:var(--green);border:1px solid #3e7a5c40;font-weight:600}.feedback.bad{background:var(--amber-soft);border:1px solid #a97b1a40}.feedback.bad .fb-label{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:3px;font-size:10px;display:block}.solution-reveal{margin-top:16px}.card.xcode{border-left:4px solid var(--pin,#457b9d)}.check-item{cursor:pointer;align-items:flex-start;gap:10px;padding:7px 0;display:flex}.check-item input{accent-color:var(--accent);flex-shrink:0;width:16px;height:16px;margin-top:5px}.check-item span{flex:1}.check-item.checked span{color:var(--ink-soft);text-decoration:line-through}.continue-row{align-items:center;gap:12px;margin:32px 0;display:flex}.continue-row .hintline{color:var(--ink-soft);font-size:13px}.complete-card{text-align:center;background:var(--card);border:1.5px solid var(--green);box-shadow:var(--shadow-md);border-radius:18px;padding:40px 24px;animation:.35s rise}.complete-card .big{font-size:44px}.complete-card h3{margin:10px 0 6px}.complete-card p{color:var(--ink-soft);margin:0 0 18px}.mod-intro .lesson-card{background:var(--card);border:1px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm);border-radius:14px;align-items:center;gap:14px;margin-bottom:10px;padding:16px 20px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.mod-intro .lesson-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.mod-intro .lesson-card .num{font-family:var(--mono);color:var(--ink-soft);font-size:11px}.map-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;margin-top:24px;display:grid}.map-card{background:var(--card);border:1.5px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm);border-radius:16px;padding:22px;text-decoration:none;transition:border-color .15s,transform .1s,box-shadow .15s;display:block}.map-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.map-card.done{border-color:var(--green)}.map-card-emoji{margin-bottom:12px;font-size:26px}.map-card-title{margin-bottom:6px;font-size:15.5px;font-weight:600}.course-picker{max-width:860px;margin:0 auto;padding:96px 20px 80px}.course-eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin:0 0 14px;font-size:11px;font-weight:600;display:flex}.course-hero{max-width:640px;margin-bottom:56px}.course-hero h1{letter-spacing:-.03em;margin:0 0 18px;font-size:clamp(34px,6vw,52px);font-weight:700;line-height:1.06}.course-hero p{color:var(--ink-soft);max-width:560px;margin:0;font-size:clamp(16.5px,2vw,18.5px);line-height:1.6}.course-hero .hero-actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.hero-chip{background:var(--accent-soft);color:var(--accent);font:600 13px var(--sans);border-radius:999px;align-items:center;gap:8px;padding:8px 14px;text-decoration:none;transition:background .15s,color .15s,transform .1s;display:inline-flex}.hero-chip:hover{background:var(--accent);color:#fff}.hero-chip.ghost-chip{color:var(--ink-soft);border:1px solid var(--line);background:0 0}.hero-chip.ghost:hover{color:var(--ink);border-color:var(--ink-soft);background:var(--card);transform:none}.picker-section-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);align-items:baseline;gap:10px;margin:0 0 18px;font-size:12px;font-weight:600;display:flex}.picker-section-label .count{color:var(--accent)}.course-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-bottom:64px;display:grid}.course-card{background:var(--card);border:1.5px solid var(--line);color:var(--ink);box-shadow:var(--shadow-sm);border-radius:16px;flex-direction:column;gap:14px;padding:24px 20px;text-decoration:none;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.course-card:before{content:"";background:var(--accent);opacity:0;height:3px;transition:opacity .2s;position:absolute;inset:0 0 auto}.course-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-card:hover:before{opacity:1}.course-emoji{font-size:28px;line-height:1}.course-title{letter-spacing:-.01em;font-size:16px;font-weight:700}.course-meta{color:var(--ink-soft);margin-top:auto;font-size:12.5px}.course-card.vertical{flex-direction:row;align-items:center;gap:16px;padding:20px 16px}.course-card.vertical .course-emoji-tile{font-size:32px}.course-card.vertical .course-card-body{flex-direction:column;gap:8px;display:flex}.course-card.vertical .course-card-title{font-size:16px;font-weight:700}.course-card.vertical .course-meta{color:var(--ink-soft);font-size:12.5px}.course-card.horizontal{flex-direction:column;gap:14px;padding:24px 20px}.course-card.horizontal .course-emoji-tile{order:-1;margin-bottom:12px}.course-card.horizontal .course-card-title{letter-spacing:-.01em;font-size:16px;font-weight:700}.course-card.horizontal .course-meta{color:var(--ink-soft);margin-top:auto;font-size:12.5px}.picker-note{background:var(--card);border:1px dashed var(--line);color:var(--ink-soft);border-radius:12px;align-items:center;gap:10px;padding:14px 18px;font-size:13.5px;display:flex}.picker-note a{color:var(--accent);text-decoration:none}.picker-note a:hover{text-decoration:underline}.brand{margin-bottom:18px}.brand-row{align-items:center;gap:10px;display:flex}.brand h1{letter-spacing:-.01em;margin:0;font-size:19px}.paw{font-size:26px}@media (max-width:900px){#menu-toggle{display:block}#sidebar{z-index:20;width:min(300px,86vw);transition:transform .25s;position:fixed;transform:translate(-100%)}body.menu-open #sidebar{transform:none;box-shadow:8px 0 30px #0000001f}#content{padding:76px 20px 100px}}@media (max-width:767.98px){nav#module-list{border-right:1px solid var(--hairline);background:var(--background);z-index:100;width:260px;max-height:100vh;transition:transform .3s ease-out;position:fixed;top:0;left:0;overflow-y:auto;transform:translate(-100%)}nav#module-list.open{transform:translate(0)}nav#module-list .mod-head{border-top-left-radius:24px;border-top-right-radius:24px}.drawer-scrim{z-index:99;opacity:0;background:#00000073;transition:opacity .3s ease-out;position:fixed;inset:0}.drawer-scrim.open{opacity:1}}
