@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-400.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-500.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-600.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/newsreader-400.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/newsreader-400-italic.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/newsreader-500.woff2) format("woff2")}@font-face{font-family:Newsreader;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/newsreader-600.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2) format("woff2")}:root{--bg: #fbfaf7;--bg-2: #f4f1ea;--ink: #1b1a17;--ink-2: #45433d;--muted: #6f6c63;--line: #e3ded2;--accent: #b8431f;--accent-soft: #f3e3da;--max: 1080px;--radius: 14px;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--serif: "Newsreader", Georgia, "Times New Roman", serif;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #14130f;--bg-2: #1c1a15;--ink: #f3efe6;--ink-2: #d6d1c4;--muted: #9a958a;--line: #2c2a23;--accent: #e5703f;--accent-soft: #2a1f18}}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--sans);background:var(--bg);color:var(--ink-2);font-size:18px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);line-height:1.15;font-weight:500;letter-spacing:-.01em;margin:0}h1{font-size:clamp(2.6rem,6vw,4.4rem)}h2{font-size:clamp(1.7rem,3.4vw,2.4rem)}h3{font-size:1.22rem;font-weight:600;font-family:var(--sans);letter-spacing:0}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}p{margin:0 0 1em}.eyebrow{font-family:var(--mono);font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 1.4rem}section{padding:5rem 0;border-top:1px solid var(--line)}section.hero{border-top:none}.section-head{max-width:720px;margin-bottom:2.6rem}.section-head p{color:var(--muted);margin-top:.6rem}.site-header{position:sticky;top:0;z-index:50;backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--line)}.site-header .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}.site-header .name{font-family:var(--serif);font-size:1.15rem;color:var(--ink);font-weight:600}.site-header .name:hover{text-decoration:none}.site-header nav{display:flex;gap:1.6rem;font-size:.9rem}.site-header nav a{color:var(--ink-2)}.site-header nav a:hover{color:var(--accent);text-decoration:none}.site-header .wrap{position:relative}.site-header__toggle-cb{position:absolute;opacity:0;pointer-events:none;width:0;height:0}.site-header__toggle{display:none}@media(max-width:640px){.site-header__toggle{display:block;cursor:pointer;color:var(--ink-2);font-size:1.5rem;line-height:1;padding:.3rem .4rem;margin-right:-.4rem;user-select:none}.site-header__toggle:hover{color:var(--accent)}.site-header .wrap>nav{display:none}.site-header__toggle-cb:checked~nav{display:flex;flex-direction:column;position:absolute;top:calc(100% + 8px);right:16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:.9rem 1.2rem;gap:.9rem;min-width:180px;box-shadow:0 8px 28px #0000001f;font-size:.95rem}}.hero{padding:6.5rem 0 5rem}.hero .headshot{width:96px;height:96px;border-radius:50%;object-fit:cover;border:1px solid var(--line);margin-bottom:1.8rem;display:block}.hero h1{margin-bottom:1.4rem}.hero .lede{font-size:clamp(1.15rem,2.2vw,1.45rem);color:var(--ink-2);max-width:760px;font-family:var(--serif);line-height:1.5}.hero .blurb{max-width:720px;margin-top:1.6rem;color:var(--muted)}.hero .meta{margin-top:2.2rem;display:flex;flex-wrap:wrap;gap:.7rem 1.4rem;font-family:var(--mono);font-size:.8rem;color:var(--muted);letter-spacing:.04em}.hero .meta a{color:var(--ink-2)}.cta-row{margin-top:2.4rem;display:flex;flex-wrap:wrap;gap:.8rem}.btn{display:inline-block;padding:.7rem 1.2rem;border-radius:999px;font-size:.9rem;font-weight:500;border:1px solid var(--line);color:var(--ink);background:var(--bg-2)}.btn:hover{text-decoration:none;border-color:var(--accent);color:var(--accent)}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn.primary:hover{color:#fff;filter:brightness(1.07)}.pillars{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}@media(max-width:760px){.pillars{grid-template-columns:1fr}}.pillar{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem 1.7rem}.pillar h3{color:var(--ink);margin-bottom:.5rem}.pillar p{margin:0;color:var(--ink-2);font-size:.96rem}.projects{display:grid;gap:1rem}.project{display:grid;grid-template-columns:200px 1fr;gap:1.6rem;padding:1.6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);transition:border-color .15s ease}.project:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.project .side .org{font-family:var(--mono);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}.project .side .year{font-family:var(--mono);font-size:.78rem;color:var(--muted);margin-top:.2rem}.project h3{margin-bottom:.5rem}.project p{margin:0 0 .9rem;color:var(--ink-2);font-size:.97rem}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{font-family:var(--mono);font-size:.68rem;letter-spacing:.03em;padding:.2rem .55rem;border-radius:6px;background:var(--accent-soft);color:var(--accent)}@media(max-width:720px){.project{grid-template-columns:1fr;gap:.8rem}.project .side{display:flex;gap:.8rem;align-items:baseline}}.demo-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.demo-cards .project{grid-template-columns:1fr;gap:0;padding:0;overflow:hidden}.demo-cards .project .side{padding:1.2rem 1.6rem 0;display:flex;gap:.8rem;align-items:baseline}.demo-cards .project .body{padding:.6rem 1.6rem 1.6rem}@media(max-width:720px){.demo-cards{grid-template-columns:1fr}}.project-thumb{width:100%;aspect-ratio:16 / 9;object-fit:cover;object-position:center;display:block;border-radius:calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0;max-height:190px;filter:brightness(.93) saturate(.9);transition:filter .2s ease}.project:hover .project-thumb{filter:brightness(1) saturate(1)}.demos-empty{border:1px dashed var(--line);border-radius:var(--radius);padding:2.6rem;text-align:center;color:var(--muted);background:var(--bg-2)}.demos-empty strong{color:var(--ink);font-family:var(--serif);font-weight:500}.rows{display:grid;gap:0}.row{display:grid;grid-template-columns:220px 1fr;gap:1.6rem;padding:1.3rem 0;border-top:1px solid var(--line)}.row:first-child{border-top:none}.row .when{font-family:var(--mono);font-size:.8rem;color:var(--muted);padding-top:.15rem}.row .what .h{color:var(--ink);font-weight:600}.row .what .sub{color:var(--ink-2)}.row .what .note{color:var(--muted);font-size:.93rem;margin-top:.3rem}@media(max-width:640px){.row{grid-template-columns:1fr;gap:.3rem}}.skills{display:grid;gap:1.4rem}.skill h3{color:var(--accent);font-family:var(--mono);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.4rem}.skill p{margin:0;color:var(--ink-2)}.cols{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem}@media(max-width:820px){.cols{grid-template-columns:1fr}}.patent-group{margin-bottom:1.8rem}.patent-group h3{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem}.patent-group ul,.pub-list{list-style:none;padding:0;margin:0}.patent-group li,.pub-list li{padding:.55rem 0;border-top:1px solid var(--line)}.patent-group li:first-child,.pub-list li:first-child{border-top:none}.patent-group .t,.pub-list .t{color:var(--ink);font-size:.96rem}.patent-group .m,.pub-list .m{color:var(--muted);font-family:var(--mono);font-size:.74rem;margin-top:.15rem}.awards{list-style:none;padding:0;margin:1.4rem 0 0}.awards li{padding:.45rem 0;border-top:1px solid var(--line);color:var(--ink-2);font-size:.95rem}.awards li:first-child{border-top:none}.research-hero{padding-bottom:3rem}.research-hero .blurb{font-size:1.05rem;color:var(--ink-2)}#highlights{padding-top:1.5rem}.research-item{display:grid;grid-template-columns:380px 1fr;gap:2.4rem;padding:2.6rem 0;border-top:1px solid var(--line);align-items:start}.research-item:first-child{border-top:none;padding-top:.5rem}.research-fig{margin:0;position:sticky;top:80px}.research-fig img{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2)}.research-cap{color:var(--muted);font-size:.82rem;line-height:1.5;margin:.6rem 0 0}.research-text h2{margin:.3rem 0 .7rem}.research-text>p{color:var(--ink-2);font-size:.99rem}.research-pill{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 .2rem}.research-then{border-left:3px solid var(--accent);padding:.1rem 0 .1rem 1rem;color:var(--ink-2);font-size:.95rem;margin:1.3rem 0 1.5rem}.research-then strong{color:var(--accent);font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase}.research-cite{list-style:none;padding:0;margin:0}.research-cite li{padding:.5rem 0;border-top:1px solid var(--line)}.research-cite li:first-child{border-top:none}.research-cite .t{color:var(--ink);font-size:.9rem;font-style:italic}.research-cite .m{color:var(--muted);font-family:var(--mono);font-size:.72rem;margin-top:.15rem}#research-footnote{padding:3rem 0 4rem}@media(max-width:820px){.research-item{grid-template-columns:1fr;gap:1rem;padding:2.2rem 0}.research-fig{position:static;max-width:480px}}.contact{text-align:center;padding:6rem 0 7rem}.contact h2{margin-bottom:1rem}.contact p{color:var(--muted);max-width:560px;margin:0 auto 2rem}.site-footer{border-top:1px solid var(--line);padding:2.4rem 0;color:var(--muted);font-family:var(--mono);font-size:.74rem;letter-spacing:.04em}.site-footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}.site-footer a{color:var(--muted)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.post-hero{width:100%;max-height:420px;overflow:hidden;position:relative}.post-hero-img{width:100%;height:100%;object-fit:cover;object-position:center 40%;display:block;max-height:420px;filter:brightness(.92) saturate(.95)}.post-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,transparent 55%,var(--bg) 100%);pointer-events:none}.post .post-head{padding:2.5rem 0 3rem;border-bottom:1px solid var(--line)}.post .post-head .lede{font-family:var(--serif);font-size:clamp(1.1rem,2vw,1.35rem);color:var(--ink-2);max-width:760px;margin-top:1.2rem;line-height:1.5}.post .post-meta{margin-top:1.6rem;display:flex;flex-wrap:wrap;gap:.55rem;font-family:var(--mono);font-size:.78rem;color:var(--muted);letter-spacing:.04em}.prose{max-width:760px;padding-top:3.5rem;padding-bottom:5rem;font-size:1.02rem;line-height:1.72}.prose h2{margin-top:3rem;margin-bottom:1rem;font-size:clamp(1.4rem,2.6vw,1.85rem);scroll-margin-top:80px}.prose h2:first-of-type{margin-top:0}.prose p{margin-bottom:1.3rem}.prose code{font-family:var(--mono);font-size:.9em;background:var(--bg-2);padding:.1em .35em;border-radius:4px;color:var(--ink)}.prose sup a{font-family:var(--mono);font-size:.75em}.prose .aside{font-size:.94rem;color:var(--muted);border-left:2px solid var(--accent-soft);padding:.1rem 0 .1rem 1rem;margin:1.6rem 0 2.2rem;font-style:italic}.prose figure{margin:1.8rem 0;text-align:center}.prose figure img{display:inline-block;max-width:100%;max-height:230px;width:auto;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:zoom-in;vertical-align:middle;transition:border-color .12s}.prose figure img:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}.prose figure video{display:inline-block;max-width:100%;max-height:360px;border:1px solid var(--line);border-radius:10px;background:#000;vertical-align:middle}.prose figcaption{margin-top:.55rem;font-size:.82rem;color:var(--muted);line-height:1.5;text-align:left}.prose .fig-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem 1.5rem;margin:1.8rem 0;align-items:start}.prose .fig-row figure{margin:0}.prose .fig-row figure img{max-height:175px}.prose figure.fig-wide img{max-height:300px}@media(max-width:640px){.prose .fig-row{grid-template-columns:1fr}.prose figure img{max-height:200px}}.lightbox-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px 24px 56px;background:#fcfcfbf7;cursor:zoom-out}.lightbox-overlay img{max-width:95vw;max-height:90vh;border-radius:8px;background:#fff;box-shadow:0 10px 50px #00000040}.lightbox-overlay figcaption{position:fixed;bottom:16px;left:0;right:0;text-align:center;font-size:.82rem;color:#444;font-family:var(--mono);padding:0 24px}.refs{font-size:.92rem;padding-left:1.4rem}.refs li{margin-bottom:.85rem;color:var(--ink-2)}.refs em{color:var(--ink);font-style:italic}.back-link{margin-top:3rem;font-family:var(--mono);font-size:.85rem}.firemap-embed,.app-embed{margin:2rem 0 .7rem;width:min(1000px,92vw);position:relative;left:50%;transform:translate(-50%);aspect-ratio:16 / 10;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#0f0f15}.firemap-embed iframe,.app-embed iframe{display:block;width:100%;height:100%;border:0}.firemap-embed-note,.app-embed-note{font-size:.88rem;color:var(--muted);margin-top:0}.app-embed{width:min(1180px,94vw);aspect-ratio:16 / 11;background:var(--bg)}@media(max-width:760px){.firemap-embed,.app-embed{aspect-ratio:3 / 4}}.demo-root{margin:2rem 0 2.4rem;width:100%}.demo-canvas-wrap{background:#0f0f15;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;padding:6px;position:relative}.demo-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0f0f15;color:#a8a8b0;font-family:var(--mono);font-size:.9rem;gap:.9rem;border-radius:calc(var(--radius) - 4px);z-index:2;transition:opacity .18s ease}.demo-loading.hidden{opacity:0;pointer-events:none}.demo-progress-bar{width:220px;max-width:60%;height:6px;background:#2a2a35;border-radius:3px;overflow:hidden}.demo-progress-fill{height:100%;width:0%;background:var(--accent);transition:width .1s ease}.demo-canvas-wrap canvas{display:block;width:100%;height:auto;cursor:crosshair;touch-action:none;border-radius:calc(var(--radius) - 4px)}.demo-controls{display:flex;flex-wrap:wrap;gap:1rem 1.4rem;margin:.8rem 0 0;font-family:var(--mono)}.demo-control-group{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.demo-control-label{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:.2rem}.demo-btn{font-family:var(--mono);font-size:.78rem;letter-spacing:.02em;padding:.32rem .7rem;border-radius:6px;border:1px solid var(--line);background:var(--bg-2);color:var(--ink-2);cursor:pointer;transition:border-color .12s,color .12s,background .12s}.demo-btn:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));color:var(--ink)}.demo-btn.active{background:color-mix(in srgb,var(--accent) 12%,var(--bg-2));border-color:color-mix(in srgb,var(--accent) 60%,var(--line));color:var(--accent)}.demo-btn.alt{background:color-mix(in srgb,var(--ink) 4%,var(--bg-2));color:var(--muted)}.demo-btn.alt:hover{color:var(--ink)}.demo-btn.launch{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600;letter-spacing:.08em;padding:.4rem 1.1rem}.demo-btn.launch:hover{filter:brightness(1.07);color:#fff}.demo-hint{margin:.9rem 0 0;font-size:.9rem;color:var(--muted);line-height:1.55}.demo-hint b{color:var(--ink);font-weight:600}.academy-hero{padding-bottom:4rem}.academy-hero .lede{margin-top:1.6rem}.academy-stats-section{padding:2rem 0}.academy-stats-section{border-top:1px solid var(--line)}.academy-stats{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;color:var(--muted);margin:0}.academy-stats .sep{color:var(--line)}.program-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:1.2rem}@media(max-width:760px){.program-tiles{grid-template-columns:1fr}}.program-tile{display:block;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem 1.8rem 1.6rem;color:var(--ink-2);border-left:3px solid var(--program-tile-accent, var(--accent));transition:border-color .15s ease,transform .15s ease;position:relative}.program-tile:hover{text-decoration:none;border-color:color-mix(in srgb,var(--accent) 45%,var(--line));border-left-color:var(--program-tile-accent, var(--accent))}.program-tile__glyph{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--program-tile-soft, var(--accent-soft));color:var(--program-tile-accent, var(--accent));font-size:1.4rem;margin-bottom:1.1rem}.program-tile__slug{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--program-tile-accent, var(--accent));margin:0 0 .3rem}.program-tile h3{color:var(--ink);margin:0 0 .4rem;font-family:var(--serif);font-weight:500;font-size:1.25rem;letter-spacing:-.01em}.program-tile__meta{color:var(--muted);font-family:var(--mono);font-size:.75rem;letter-spacing:.04em;margin:0 0 .9rem}.program-tile__desc{color:var(--ink-2);font-size:.95rem;margin:0 0 1.2rem;line-height:1.55}.program-tile__cta{color:var(--accent);font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;margin:0}.program-tile__progress{margin:1rem 0 0;display:flex;align-items:center;gap:.7rem}.program-tile__progress-bar{flex:1;height:4px;background:var(--line);border-radius:4px;overflow:hidden}.program-tile__progress-fill{display:block;height:100%;width:0;background:var(--program-tile-accent, var(--accent));transition:width .4s ease}.program-tile__progress-text{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;color:var(--muted)}.program-tile--circuits,.program-tile--semiconductor{--program-tile-accent: #2c63c8;--program-tile-soft: #dfe8f7}.program-tile--mechanical{--program-tile-accent: #c66a17;--program-tile-soft: #f4e1c8}.program-tile--safety{--program-tile-accent: #a8362b;--program-tile-soft: #f1d8d2}@media(prefers-color-scheme:dark){.program-tile--circuits,.program-tile--semiconductor{--program-tile-accent: #6e9ad8;--program-tile-soft: #1a2236}.program-tile--mechanical{--program-tile-accent: #d99257;--program-tile-soft: #2a1d12}.program-tile--safety{--program-tile-accent: #d97264;--program-tile-soft: #2a1413}}#how-to-use .cols h3{margin-bottom:.6rem;color:var(--ink);font-family:var(--serif);font-weight:500}#how-to-use .cols p{color:var(--ink-2)}#how-to-use .cols code{font-family:var(--mono);font-size:.9em;background:var(--bg-2);padding:.1em .35em;border-radius:4px;color:var(--ink)}.course-toc{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem}@media(max-width:760px){.course-toc{grid-template-columns:1fr}}.course-toc__col{background:var(--bg-2);border:1px solid var(--line);border-left:3px solid var(--program-tile-accent, var(--accent));border-radius:var(--radius);padding:1.4rem 1.4rem .8rem}.course-toc__col--circuits,.course-toc__col--semiconductor{--program-tile-accent: #2c63c8;--program-tile-soft: #dfe8f7}.course-toc__col--mechanical{--program-tile-accent: #c66a17;--program-tile-soft: #f4e1c8}.course-toc__col--safety{--program-tile-accent: #a8362b;--program-tile-soft: #f1d8d2}@media(prefers-color-scheme:dark){.course-toc__col--circuits,.course-toc__col--semiconductor{--program-tile-accent: #6e9ad8;--program-tile-soft: #1a2236}.course-toc__col--mechanical{--program-tile-accent: #d99257;--program-tile-soft: #2a1d12}.course-toc__col--safety{--program-tile-accent: #d97264;--program-tile-soft: #2a1413}}.course-toc__head{display:grid;grid-template-columns:1fr auto;gap:.8rem 1rem;align-items:center;padding-bottom:1rem;margin-bottom:.4rem;border-bottom:1px solid var(--line)}.course-toc__head-link{display:flex;align-items:center;gap:.8rem;color:inherit}.course-toc__head-link:hover{text-decoration:none}.course-toc__head-link:hover h3{color:var(--accent)}.course-toc__glyph{width:38px;height:38px;border-radius:10px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--program-tile-soft);color:var(--program-tile-accent);font-size:1.15rem}.course-toc__head-text h3{color:var(--ink);margin:0;font-family:var(--serif);font-weight:500;font-size:1.05rem;letter-spacing:-.005em;line-height:1.2}.course-toc__head-meta{color:var(--muted);font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;margin:.15rem 0 0}.course-toc__head-progress{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem;min-width:84px}.course-toc__head-pct{font-family:var(--mono);font-size:.78rem;font-weight:500;color:var(--program-tile-accent);letter-spacing:.04em}.course-toc__progress-bar{display:block;width:84px;height:4px;background:var(--line);border-radius:4px;overflow:hidden}.course-toc__progress-fill{display:block;height:100%;width:0;background:var(--program-tile-accent);transition:width .4s ease}.course-toc__list{list-style:none;padding:0;margin:0}.course-toc__row{display:grid;grid-template-columns:28px 1fr auto 64px 40px;gap:.6rem .8rem;align-items:center;padding:.7rem .4rem;color:var(--ink-2);border-radius:8px;border:1px solid transparent;transition:background .12s ease,border-color .12s ease}.course-toc__row:hover{text-decoration:none;background:color-mix(in srgb,var(--accent) 5%,transparent);border-color:color-mix(in srgb,var(--accent) 30%,var(--line))}.course-toc__row:hover .course-toc__title{color:var(--accent)}.course-toc__n{font-family:var(--mono);font-size:.78rem;letter-spacing:.04em;color:var(--muted)}.course-toc__title{color:var(--ink);font-size:.94rem;line-height:1.35}.course-toc__weeks{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;color:var(--muted);white-space:nowrap}.course-toc__minibar{display:block;height:4px;background:var(--line);border-radius:4px;overflow:hidden}.course-toc__minibar-fill{display:block;height:100%;width:0;background:var(--program-tile-accent);transition:width .4s ease}.course-toc__pct{font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);text-align:right}.course-toc__row.is-started .course-toc__pct{color:var(--program-tile-accent)}.course-toc__row.is-complete{background:color-mix(in srgb,var(--program-tile-accent) 6%,transparent)}.course-toc__row.is-complete .course-toc__pct{color:var(--program-tile-accent);font-weight:600}.course-toc__hint{color:var(--muted);font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;margin:1.6rem 0 0;text-align:center}@media(max-width:480px){.course-toc__row{grid-template-columns:28px 1fr 48px}.course-toc__row .course-toc__weeks,.course-toc__row .course-toc__minibar{display:none}}.sample-weeks{list-style:none;padding:0;margin:0;display:grid;gap:0}.sample-week{border-top:1px solid var(--line);border-left:3px solid var(--program-tile-accent, var(--accent));transition:background .15s ease}.sample-week:last-child{border-bottom:1px solid var(--line)}.sample-week:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}.sample-week>a{display:grid;grid-template-columns:88px 1fr;gap:1.6rem;padding:1.8rem 1.6rem 1.6rem;color:var(--ink-2)}.sample-week>a:hover{text-decoration:none}.sample-week__badge{width:56px;height:56px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:var(--program-tile-soft, var(--accent-soft));color:var(--program-tile-accent, var(--accent));font-size:1.5rem}.sample-week__where{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--program-tile-accent, var(--accent));margin:0 0 .35rem}.sample-week h3{color:var(--ink);margin:0 0 .5rem;font-family:var(--serif);font-weight:500;font-size:1.3rem;letter-spacing:-.01em}.sample-week p{color:var(--ink-2);margin:0 0 .9rem;font-size:.97rem;line-height:1.6}.sample-week__cta{color:var(--accent);font-family:var(--mono);font-size:.78rem;letter-spacing:.04em}.sample-week--circuits,.sample-week--semiconductor{--program-tile-accent: #2c63c8;--program-tile-soft: #dfe8f7}.sample-week--mechanical{--program-tile-accent: #c66a17;--program-tile-soft: #f4e1c8}.sample-week--safety{--program-tile-accent: #a8362b;--program-tile-soft: #f1d8d2}@media(prefers-color-scheme:dark){.sample-week--circuits,.sample-week--semiconductor{--program-tile-accent: #6e9ad8;--program-tile-soft: #1a2236}.sample-week--mechanical{--program-tile-accent: #d99257;--program-tile-soft: #2a1d12}.sample-week--safety{--program-tile-accent: #d97264;--program-tile-soft: #2a1413}}@media(max-width:640px){.sample-week>a{grid-template-columns:1fr;gap:.8rem;padding:1.4rem 1.2rem}.sample-week__badge{width:44px;height:44px;font-size:1.2rem}}
