:root{color-scheme:light;--font-interface:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--font-content:Georgia, "Times New Roman", serif;--font-code:ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;--paper:#fbfaf7;--surface:#fff;--surface-muted:#f3f1ec;--ink:#202326;--ink-soft:#575b5f;--border:#d8d4cc;--border-strong:#aaa59b;--accent:#315f78;--accent-soft:#eaf1f4;--warning:#775925;--error:#7b3f3f;--header-background:#fbfaf7f7;--dialog-shadow:#20232629;--dialog-backdrop:#20232659;--field-placeholder:#73777b;--interactive-hover:#f7f9fa;--highlight-ink:#172f3c;--highlight-background:#f2d678;--highlight-ring:#b8881633;--ink-disabled:#737577;--ink-faint:#77746e;--practice-accent:#4f6d55;--practice-text:#38543d;--practice-tag-text:#48544a;--practice-surface:#f0f5f1;--practice-surface-soft:#eef3ef;--practice-border:#cbd9ce;--practice-border-soft:#d2ded4;--practice-response:#f7f9f7;--practice-response-border:#d6dfd8;--code-surface:#f7f7f5;--danger-text:#6f3d3d;--danger-border:#c9aaaa;--warning-surface:#f8f4ea;--warning-border:#9c7b35;--header-height:3.5rem}html[data-theme=dark]{color-scheme:dark;--paper:#111416;--surface:#181c1f;--surface-muted:#202529;--ink:#e8e6df;--ink-soft:#adb3b7;--border:#30363a;--border-strong:#4d565c;--accent:#80b8d2;--accent-soft:#19313c;--warning:#d4b46a;--error:#d89090;--header-background:#111416f0;--dialog-shadow:#00000075;--dialog-backdrop:#000000a8;--field-placeholder:#899197;--interactive-hover:#202a2f;--highlight-ink:#fff4c8;--highlight-background:#6f5a1f;--highlight-ring:#e5bf5638;--ink-disabled:#858d92;--ink-faint:#92999d;--practice-accent:#83ae8b;--practice-text:#a9d1b0;--practice-tag-text:#b9d2bd;--practice-surface:#19251d;--practice-surface-soft:#1d2921;--practice-border:#35503b;--practice-border-soft:#314638;--practice-response:#171f19;--practice-response-border:#33463a;--code-surface:#161a1d;--danger-text:#e2a0a0;--danger-border:#754f4f;--warning-surface:#292318;--warning-border:#8f743a}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 1.5rem);background:var(--paper)}body{background:var(--paper);min-width:20rem;color:var(--ink);font-family:var(--font-interface);margin:0;line-height:1.55}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:.08em}a:hover{text-decoration-thickness:.13em}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button,input,summary{font:inherit}button,summary{cursor:pointer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--surface);border:2px solid var(--accent);padding:.65rem .8rem;position:fixed;top:.5rem;left:.5rem;transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.site-header{z-index:50;min-height:var(--header-height);background:var(--header-background);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);grid-template-columns:1fr auto auto auto;align-items:center;gap:1rem;padding:.55rem clamp(1rem,2.5vw,2rem);display:grid;position:sticky;top:0}.site-brand{width:fit-content;color:var(--ink);letter-spacing:-.01em;align-items:center;gap:.65rem;font-weight:720;text-decoration:none;display:inline-flex}.site-brand__mark{width:1.9rem;height:1.9rem;color:var(--surface);background:var(--ink);font-family:var(--font-content);border-radius:2px;place-items:center;font-size:1.12rem;display:inline-grid}.site-header nav a{color:var(--ink-soft);font-size:.92rem;font-weight:650;text-decoration:none}.site-header nav{gap:.85rem;display:flex}.search-trigger,.icon-button,.theme-toggle{min-height:2.35rem;color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);border-radius:3px;align-items:center;gap:.7rem;padding:.42rem .7rem;display:inline-flex}.theme-toggle{justify-content:center;width:2.35rem;padding:.42rem}.theme-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1rem;height:1rem}.theme-toggle__sun,html[data-theme=dark] .theme-toggle__moon{display:none}html[data-theme=dark] .theme-toggle__sun{display:block}.search-trigger kbd{color:var(--ink-soft);font-family:var(--font-code);font-size:.72rem}.search-trigger{justify-content:space-between;min-width:13.5rem}.search-trigger__label-short{display:none}.search-dialog{top:calc(var(--header-height) + .55rem);z-index:80;width:min(50rem,100vw - 2rem);max-height:calc(100dvh - var(--header-height) - 1.5rem);color:var(--ink);background:var(--surface);border:1px solid var(--border-strong);box-shadow:0 .75rem 2.2rem var(--dialog-shadow);border-radius:4px;margin:0;padding:0;position:fixed;left:auto;right:clamp(.8rem,2.5vw,2rem);overflow:hidden}.search-dialog__header{border-bottom:1px solid var(--border);align-items:center;gap:.65rem;padding:.8rem;display:flex}.eyebrow{color:var(--ink-soft);letter-spacing:.1em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:750}.search-field{flex:1;padding:0;display:block}.search-field input{width:100%;min-height:2.85rem;color:var(--ink);background:var(--paper);border:1px solid var(--border-strong);border-radius:3px;padding:.6rem .8rem;font-size:1.02rem}.search-field input::placeholder{color:var(--field-placeholder)}.search-dialog__close{flex:none;min-height:2.85rem}.search-status{color:var(--ink-soft);background:var(--surface-muted);border-bottom:1px solid var(--border);margin:0;padding:.55rem .9rem;font-size:.8rem}.search-results{max-height:min(34rem, calc(100dvh - var(--header-height) - 10rem));overscroll-behavior:contain;overflow-y:auto}.search-result{border-bottom:1px solid var(--border);padding:.9rem 1rem}.search-result:hover,.search-result:focus-within{background:var(--interactive-hover)}.search-result__heading{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.search-result__heading>a{font-weight:720}.search-result__heading>span{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;flex:none;font-size:.7rem;font-weight:700}.search-result__excerpt{color:var(--ink-soft);font-family:var(--font-content);margin:.25rem 0 0;font-size:.9rem}.search-result__sections{border-left:2px solid var(--accent-soft);gap:.35rem;margin-top:.65rem;padding-left:.7rem;display:grid}.search-result__section{color:var(--ink);border-radius:2px;grid-template-columns:minmax(9rem,.45fr) minmax(0,1fr);gap:.8rem;padding:.3rem .4rem;text-decoration:none;display:grid}.search-result__section:hover,.search-result__section:focus-visible{background:var(--accent-soft)}.search-result__section strong{color:var(--accent);font-size:.84rem}.search-result__section-excerpt{color:var(--ink-soft);font-family:var(--font-content);font-size:.82rem}.search-result mark{color:var(--highlight-ink);background:var(--highlight-background);border-radius:2px;padding:0 .08em}.page-search-highlight{color:var(--highlight-ink);background:var(--highlight-background);box-shadow:0 0 0 .16rem var(--highlight-ring);border-radius:2px;padding:.04em .12em}.search-dialog__hint{color:var(--ink-soft);background:var(--surface-muted);border-top:1px solid var(--border);text-align:right;margin:0;padding:.45rem .9rem;font-size:.72rem}.search-dialog__hint kbd{font-family:var(--font-code);font-size:.7rem}.site-footer{color:var(--ink-soft);border-top:1px solid var(--border);text-align:center;padding:1rem 2rem;font-size:.8rem}.course-shell{grid-template-columns:minmax(15.5rem,19rem) minmax(0,50rem) minmax(12rem,15rem);justify-content:center;gap:clamp(1rem,2vw,2.5rem);max-width:100rem;margin:0 auto;padding:0 clamp(1rem,2vw,2rem);display:grid}.course-shell--without-toc{grid-template-columns:minmax(15.5rem,19rem) minmax(0,62rem)}.course-shell--without-navigation{grid-template-columns:minmax(0,62rem)}.course-sidebar,.course-toc{top:var(--header-height);max-height:calc(100dvh - var(--header-height));scrollbar-width:thin;align-self:start;padding:1.25rem 0 2rem;position:sticky;overflow-y:auto}.course-main{min-width:0;padding:1.2rem 0 4rem}.course-navigation__map{color:var(--ink);margin-bottom:1rem;font-size:.82rem;font-weight:720;text-decoration:none;display:block}.course-navigation__block-link,.course-navigation__practice{color:var(--ink-soft);border-top:1px solid var(--border);padding:.55rem 0;font-size:.74rem;font-weight:700;text-decoration:none;display:block}.course-navigation__practice{color:var(--accent);border-bottom:1px solid var(--border);margin-top:.8rem}.course-navigation details{border-top:1px solid var(--border);padding:.25rem 0}.course-navigation summary{color:var(--ink);grid-template-columns:auto 1fr;gap:.55rem;padding:.45rem 0;font-size:.78rem;font-weight:760;list-style-position:outside;display:grid}.course-navigation__block-title{color:var(--ink-soft);font-weight:580}.course-navigation__block{border-left:1px solid var(--border);padding:.15rem 0 .75rem .55rem}.course-navigation section+section{margin-top:.8rem}.course-navigation h3{color:var(--ink-soft);letter-spacing:.02em;margin:.2rem 0 .35rem;font-size:.72rem;font-weight:710}.course-navigation ol{gap:.1rem;margin:0;padding:0;list-style:none;display:grid}.course-navigation__unit>a,.course-navigation__unit>span{color:var(--ink-soft);border-left:2px solid #0000;padding:.35rem .45rem;font-size:.76rem;line-height:1.35;text-decoration:none;display:block}.course-navigation__unit>a:hover{color:var(--ink);background:var(--surface-muted)}.course-navigation__unit.is-active>a{color:var(--ink);background:var(--accent-soft);border-left-color:var(--accent);font-weight:690}.course-navigation__unit.is-pending>span{color:var(--ink-disabled)}.course-navigation__unit small{color:var(--ink-faint);text-transform:uppercase;margin-left:.3rem;font-size:.62rem;display:inline-block}.breadcrumbs ol{color:var(--ink-soft);flex-wrap:wrap;gap:.35rem;margin:0 0 1.5rem;padding:0;font-size:.78rem;list-style:none;display:flex}.breadcrumbs li{gap:.35rem;display:inline-flex}.breadcrumbs a{color:var(--ink-soft)}.course-toc{padding-left:.25rem}.internal-toc h2{color:var(--ink-soft);font-family:var(--font-interface);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .65rem;font-size:.72rem}.internal-toc ol{border-left:1px solid var(--border);gap:.2rem;margin:0;padding:0;list-style:none;display:grid}.internal-toc a{color:var(--ink-soft);border-left:2px solid #0000;padding:.28rem .55rem;font-size:.74rem;line-height:1.35;text-decoration:none;display:block}.internal-toc a:hover,.internal-toc a[aria-current=location]{color:var(--ink);border-left-color:var(--accent)}.internal-toc .is-nested a{padding-left:1rem}@media (width<=1180px){.course-shell{grid-template-columns:minmax(15rem,18rem) minmax(0,50rem)}.course-shell.course-shell--without-navigation{grid-template-columns:minmax(0,62rem)}.course-toc{display:none}}@media (width<=800px){:root{--header-height:3.3rem}.site-header{grid-template-columns:1fr auto auto;gap:.65rem;padding-inline:.8rem}.site-header>nav,.search-trigger kbd{display:none}.search-trigger{min-width:auto}.search-trigger__label-long{display:none}.search-trigger__label-short{display:inline}.search-dialog{top:calc(var(--header-height) + .35rem);width:calc(100% - 1rem);max-height:calc(100dvh - var(--header-height) - .85rem);right:.5rem}.search-result__section{display:block}.search-result__section-excerpt{margin-top:.12rem;display:block}.search-dialog__hint{display:none}.course-shell,.course-shell--without-toc{padding:0 1rem;display:block}.course-sidebar{max-height:none;padding:.7rem 0 0;display:block;position:static;overflow:visible}.course-navigation{gap:.4rem;padding-bottom:.55rem;display:flex;overflow-x:auto}.course-navigation__map,.course-navigation__block-link,.course-navigation__practice{background:var(--surface);border:1px solid var(--border);white-space:nowrap;flex:none;margin:0;padding:.4rem .55rem}.course-navigation ol{flex:none;gap:.4rem;display:flex}.course-navigation__unit>a{background:var(--surface);border:1px solid var(--border);width:12rem;min-height:100%;padding:.4rem .55rem}.course-main{width:100%;padding-top:1rem}.breadcrumbs{overflow-x:auto}.breadcrumbs ol{flex-wrap:nowrap;width:max-content}.site-footer{padding-inline:1rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}.course-article,.course-overview{font-family:var(--font-content);font-size:1.04rem;line-height:1.72}.course-article__header,.course-overview__header{border-bottom:1px solid var(--border);margin-bottom:2.2rem;padding-bottom:1.25rem}.course-article__kicker,.course-overview__kicker{color:var(--accent);font-family:var(--font-interface);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .45rem;font-size:.76rem;font-weight:760}.course-article h1,.course-overview h1{max-width:22ch;font-family:var(--font-content);letter-spacing:-.025em;margin:0;font-size:clamp(2.1rem,4.5vw,3.35rem);font-weight:620;line-height:1.08}.course-article__lead,.course-overview__lead{max-width:64ch;color:var(--ink-soft);margin:1.1rem 0 0;font-size:1.12rem;line-height:1.62}.course-article p,.course-article li,.course-overview p,.course-overview li{max-width:74ch}.course-article p,.course-overview p{margin:.75rem 0 1rem}.course-article ul,.course-article ol,.course-overview ul,.course-overview ol{padding-left:1.4rem}.course-article li+li,.course-overview li+li{margin-top:.32rem}.content-section-heading{max-width:31ch;scroll-margin-top:calc(var(--header-height) + 1.2rem);color:var(--ink);font-family:var(--font-content);align-items:baseline;gap:.5rem;font-weight:620;line-height:1.2;display:flex}h2.content-section-heading{letter-spacing:-.012em;margin:3.4rem 0 1.2rem;font-size:clamp(1.65rem,3vw,2.15rem)}h3.content-section-heading{margin:2.1rem 0 .8rem;font-size:1.32rem}.heading-anchor{opacity:0;color:var(--accent);font-family:var(--font-interface);font-size:.75em;text-decoration:none}.content-section-heading:hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.callout{background:var(--surface-muted);border:1px solid var(--border);border-left:4px solid var(--accent);break-inside:avoid;max-width:74ch;margin:1.4rem 0;padding:.85rem 1rem .9rem}.callout--warning{border-left-color:var(--warning)}.callout--error{border-left-color:var(--error)}.callout--definition{background:var(--surface);border-left-color:var(--ink-soft)}.callout--practice{border-left-color:var(--practice-accent)}.callout__label{color:var(--ink-soft);font-family:var(--font-interface);letter-spacing:.09em;text-transform:uppercase;margin:0 0 .3rem;font-size:.7rem;font-weight:790}.callout__body>:first-child{margin-top:0}.callout__body>:last-child{margin-bottom:0}.table-scroll{border:1px solid var(--border);scrollbar-width:thin;max-width:100%;margin:1.4rem 0 1.8rem;overflow-x:auto}.table-scroll table{border-collapse:collapse;width:100%;min-width:42rem;font-family:var(--font-interface);font-size:.78rem;line-height:1.45}.table-scroll th,.table-scroll td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);text-align:left;vertical-align:top;padding:.65rem .7rem}.table-scroll th{color:var(--ink);background:var(--surface-muted);font-weight:760}.table-scroll tr:last-child td{border-bottom:0}.table-scroll th:last-child,.table-scroll td:last-child{border-right:0}.http-message{background:var(--surface);border:1px solid var(--border-strong);break-inside:avoid;max-width:74ch;margin:1.5rem 0}.http-message figcaption{color:var(--ink-soft);background:var(--surface-muted);border-bottom:1px solid var(--border);font-family:var(--font-interface);justify-content:space-between;align-items:center;gap:1rem;padding:.48rem .7rem;font-size:.72rem;font-weight:680;display:flex}.http-message__kind{font-family:var(--font-code);text-transform:uppercase;font-size:.66rem}.http-message__content>:first-child,.code-frame pre{margin:0}.code-frame{max-width:100%;position:relative}.code-frame pre{max-width:100%;font-family:var(--font-code);scrollbar-width:thin;border-radius:0;padding:1.05rem 1rem 1.15rem;font-size:.82rem;line-height:1.55;overflow-x:auto;background:var(--code-surface)!important}html[data-theme=dark] .astro-code,html[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;text-decoration:var(--shiki-dark-text-decoration)!important}.copy-button{min-height:1.8rem;color:var(--ink-soft);background:var(--surface);border:1px solid var(--border-strong);font-family:var(--font-interface);border-radius:2px;padding:.2rem .45rem;font-size:.68rem;position:absolute;top:.55rem;right:.55rem}.sequence-diagram{background:var(--surface);border:1px solid var(--border-strong);break-inside:avoid;max-width:100%;margin:2rem 0;padding:1rem;overflow-x:auto}.sequence-diagram figcaption{font-family:var(--font-interface);margin-bottom:1rem;font-size:.8rem;font-weight:750}.sequence-diagram__flow{align-items:stretch;min-width:58rem;display:flex}.sequence-node{border:1px solid var(--border-strong);min-width:8.8rem;font-family:var(--font-interface);grid-template-columns:auto 1fr;align-content:center;column-gap:.45rem;padding:.75rem;display:grid}.sequence-node strong{color:var(--accent);grid-row:span 2}.sequence-node span{font-size:.78rem;font-weight:760}.sequence-node small{color:var(--ink-soft);font-size:.66rem}.sequence-arrow{min-width:4.5rem;color:var(--ink-soft);font-family:var(--font-interface);place-items:center;font-size:.62rem;display:grid}.sequence-arrow b{color:var(--ink);font-size:1.2rem}.concurrency-timeline{max-width:74ch;scroll-margin-top:calc(var(--header-height) + 1rem);background:var(--surface);border:1px solid var(--border-strong);break-inside:avoid;margin:2rem 0;padding:1rem}.concurrency-timeline figcaption{font-family:var(--font-interface);font-size:.8rem;font-weight:750}.concurrency-timeline__legend{color:var(--ink-soft);font-family:var(--font-interface);flex-wrap:wrap;gap:1rem;margin:.75rem 0 1.2rem;font-size:.68rem;display:flex}.concurrency-timeline__legend span{align-items:center;gap:.35rem;display:inline-flex}.concurrency-timeline__legend i{border:1px solid var(--border-strong);width:1.2rem;height:.55rem}.concurrency-timeline__case+.concurrency-timeline__case{border-top:1px solid var(--border);margin-top:1.4rem;padding-top:1.2rem}.concurrency-timeline__case header{font-family:var(--font-interface);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;display:flex}.concurrency-timeline__case header strong{font-size:.76rem}.concurrency-timeline__case header span{color:var(--ink-soft);font-size:.66rem}.concurrency-timeline__axis{color:var(--ink-soft);font-family:var(--font-interface);justify-content:space-between;margin:.65rem 0 .3rem 5.4rem;font-size:.58rem;display:flex}.concurrency-timeline__lane{grid-template-columns:4.7rem minmax(28rem,1fr);align-items:center;gap:.7rem;display:grid;overflow-x:auto}.concurrency-timeline__lane+.concurrency-timeline__lane{margin-top:.35rem}.concurrency-timeline__lane b{font-family:var(--font-interface);font-size:.66rem}.concurrency-timeline__track{min-width:28rem;min-height:2rem;display:flex}.concurrency-timeline__track span{flex:var(--size);border:1px solid var(--border-strong);min-width:0;font-family:var(--font-interface);text-align:center;place-items:center;padding:.3rem;font-size:.58rem;display:grid}.concurrency-timeline .is-work{color:var(--surface);background:var(--accent)}.concurrency-timeline .is-wait{color:var(--ink-soft);background:var(--surface-muted)}.concurrency-timeline .is-empty{background:0 0;border-color:#0000}.cross-reference{border-top:1px solid var(--border);border-bottom:1px solid var(--border);max-width:74ch;font-family:var(--font-interface);grid-template-columns:auto 1fr;gap:.8rem;margin:1.4rem 0;padding:.8rem 0;font-size:.8rem;display:grid}.cross-reference>span{color:var(--ink-soft);font-weight:720}.source-list{gap:.8rem;margin:1rem 0;padding:0;list-style:none;display:grid}.source-reference{border-top:1px solid var(--border);max-width:74ch;padding:.85rem 0}.source-reference>a{font-family:var(--font-interface);font-size:.88rem;font-weight:720}.source-reference p{color:var(--ink-soft);margin:.25rem 0 0;font-size:.9rem}.unit-pagination{border-top:1px solid var(--border-strong);font-family:var(--font-interface);grid-template-columns:1fr 1fr;gap:1rem;margin-top:4rem;padding-top:1.25rem;font-size:.78rem;display:grid}.unit-pagination>div{gap:.3rem;display:grid}.unit-pagination__next{text-align:right}.unit-pagination__label{color:var(--ink-soft);letter-spacing:.07em;text-transform:uppercase;font-size:.68rem;font-weight:730}.course-map{gap:1.1rem;margin:2rem 0;display:grid}.course-map__block{border-top:1px solid var(--border-strong);padding:1.1rem 0}.course-map__block h2{font-family:var(--font-content);margin:0;font-size:1.45rem;font-weight:620}.course-map__objective{color:var(--ink-soft)}.course-map__module{margin-top:1.2rem}.course-map__module h3{font-family:var(--font-interface);margin:0 0 .5rem;font-size:.82rem}.unit-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.unit-list li{border-bottom:1px solid var(--border);font-family:var(--font-interface);grid-template-columns:3rem minmax(0,1fr) auto;align-items:baseline;gap:.65rem;padding:.55rem 0;font-size:.8rem;display:grid}.unit-list__id{color:var(--ink-soft);font-family:var(--font-code)}.status-label{color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;font-size:.65rem;font-weight:740}.status-label--available{color:var(--accent)}code:not(pre code){background:var(--surface-muted);border:1px solid var(--border);font-family:var(--font-code);border-radius:2px;padding:.08em .26em;font-size:.86em}@media (width<=620px){.course-article,.course-overview{font-size:1rem}.course-article h1,.course-overview h1{font-size:2.05rem}.heading-anchor{opacity:1}.unit-pagination{grid-template-columns:1fr}.unit-pagination__next{text-align:left}.unit-list li{grid-template-columns:2.7rem 1fr}.concurrency-timeline{padding:.8rem;overflow-x:auto}.status-label{grid-column:2}}:root{--site-width:78rem;--site-gutter:clamp(1.15rem, 3.5vw, 3rem);--font-display:Inter, "Helvetica Neue", "Segoe UI", Arial, sans-serif;--paper:#f2f3ed;--surface:#fafbf7;--surface-muted:#e6e9e1;--ink:#101613;--ink-soft:#4f5a54;--ink-faint:#717b75;--border:#ced4cc;--border-strong:#929e97;--accent:#0f7059;--accent-strong:#094c3e;--accent-soft:#d6e9e1;--signal:#dd7d4b;--header-background:#f2f3edf0;--interactive-hover:#e4ece7;--header-height:4.65rem}html[data-theme=dark]{--paper:#0b100e;--surface:#111815;--surface-muted:#17211d;--ink:#edf2ee;--ink-soft:#a7b3ad;--ink-faint:#7f8c85;--border:#293630;--border-strong:#52635a;--accent:#72d8b8;--accent-strong:#9ae6cf;--accent-soft:#153b2f;--signal:#f0a06f;--header-background:#0b100ef0;--interactive-hover:#192720}html{background:var(--paper)}body{background:var(--paper);font-family:var(--font-display)}::selection{color:#fff;background:var(--accent)}.site-header{min-height:var(--header-height);background:var(--header-background);border-bottom:1px solid var(--border);backdrop-filter:blur(16px)saturate(130%);padding:0;display:block}.site-header__inner{width:min(calc(100% - 2rem), var(--site-width));min-height:var(--header-height);grid-template-columns:minmax(13rem,1fr) auto auto;align-items:center;gap:clamp(1rem,2.5vw,2.6rem);margin-inline:auto;display:grid}.site-brand{gap:.7rem}.site-brand__mark{color:#f4f8f5;background:var(--accent-strong);width:2rem;height:2rem;font-family:var(--font-interface);letter-spacing:.08em;border-radius:2px;font-size:.67rem;font-weight:800}html[data-theme=dark] .site-brand__mark{color:#0b100e}.site-brand__copy{line-height:1.1;display:grid}.site-brand__copy strong{font-size:.84rem;font-weight:760}.site-brand__copy small{color:var(--ink-soft);letter-spacing:.05em;text-transform:uppercase;margin-top:.22rem;font-size:.58rem;font-weight:650}.site-nav{align-items:center;gap:1.1rem;display:flex}.site-header .site-nav a{color:var(--ink-soft);white-space:nowrap;border-bottom:1px solid #0000;padding:.6rem 0;font-size:.75rem;font-weight:700;text-decoration:none}.site-header .site-nav a:hover,.site-header .site-nav a[aria-current=page]{color:var(--ink);border-color:var(--accent)}.site-tools{align-items:center;gap:.35rem;display:flex}.site-tools .theme-toggle,.site-tools .search-trigger{min-height:2.35rem;color:var(--ink);border-color:var(--border);background:0 0}.site-tools .search-trigger{min-width:7.7rem}.site-tools .theme-toggle:hover,.site-tools .search-trigger:hover{background:var(--surface);border-color:var(--border-strong)}.search-dialog{top:calc(var(--header-height) + .5rem);border-color:var(--border-strong);box-shadow:0 1.5rem 4rem #0000003d}.site-footer{color:var(--ink-soft);background:var(--surface);border-top:1px solid var(--border);text-align:left;padding:0}.site-footer__inner{width:min(calc(100% - 2rem), var(--site-width));justify-content:space-between;gap:2rem;margin-inline:auto;padding:1.25rem 0;display:flex}.site-footer__inner p{margin:0;font-size:.68rem}.site-footer__inner strong{color:var(--ink)}.portfolio-main{min-height:calc(100dvh - var(--header-height))}.shell{width:min(calc(100% - 2rem), var(--site-width));padding-inline:var(--site-gutter);margin-inline:auto}.section-kicker,.project-meta,.project-status{color:var(--accent);font-family:var(--font-code);letter-spacing:.08em;text-transform:uppercase;font-size:.64rem;font-weight:740}.button{min-height:2.8rem;color:var(--ink);border:1px solid var(--border-strong);background:0 0;border-radius:2px;justify-content:center;align-items:center;padding:.65rem 1rem;font-size:.78rem;font-weight:740;text-decoration:none;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.button:hover{transform:translateY(-1px)}.button--primary{color:#fff;background:var(--accent-strong);border-color:var(--accent-strong)}html[data-theme=dark] .button--primary{color:#0b100e}.button--quiet:hover{background:var(--surface)}.text-link{color:var(--ink);white-space:nowrap;align-self:end;font-size:.72rem;font-weight:740;text-decoration:none}.text-link span{margin-left:.25rem;transition:transform .15s;display:inline-block}.text-link:hover span{transform:translate(.2rem)}.portfolio-hero{min-height:min(44rem, calc(100dvh - var(--header-height)));border-right:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:minmax(0,1.35fr) minmax(16rem,.48fr);align-items:end;gap:3rem clamp(3rem,9vw,8rem);padding-top:clamp(4rem,9vw,8rem);padding-bottom:clamp(4rem,8vw,6.5rem);display:grid}.portfolio-hero__main h1{letter-spacing:-.07em;max-width:10ch;margin:0;font-size:clamp(3.8rem,8.7vw,7.2rem);font-weight:590;line-height:.88}.portfolio-hero__summary{max-width:61ch;color:var(--ink-soft);margin:1.7rem 0 0;font-size:clamp(1rem,1.4vw,1.13rem);line-height:1.7}.portfolio-hero__actions{flex-wrap:wrap;gap:.65rem;margin-top:2rem;display:flex}.portfolio-hero__context{border-top:1px solid var(--border-strong);padding-top:1rem}.portfolio-hero__context>p:first-child{color:var(--ink-faint);font-family:var(--font-code);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:.56rem}.portfolio-hero__context ul{gap:0;margin:.75rem 0 0;padding:0;list-style:none;display:grid}.portfolio-hero__context li{color:var(--ink);border-bottom:1px solid var(--border);padding:.72rem 0;font-size:.8rem;font-weight:700}.portfolio-hero__criterion{color:var(--ink-soft);margin:1.2rem 0 0;font-size:.68rem;line-height:1.65}.portfolio-section{border:1px solid var(--border);border-bottom:0;padding-top:clamp(4rem,8vw,6.5rem);padding-bottom:clamp(4rem,8vw,6.5rem)}.portfolio-section:last-child{border-bottom:1px solid var(--border)}.portfolio-section--tinted{background:var(--surface-muted)}.section-heading{grid-template-columns:8rem minmax(0,1fr) auto;align-items:start;gap:1.5rem clamp(2rem,6vw,5rem);margin-bottom:clamp(2.6rem,6vw,4.5rem);display:grid}.section-heading>p,.portfolio-about header>p,.portfolio-contact header>p,.project-policy>p,.notes-method>p{color:var(--ink-soft);font-family:var(--font-code);letter-spacing:.055em;text-transform:uppercase;margin:0;font-size:.59rem;font-weight:680}.section-heading>p span,.portfolio-about header>p span,.portfolio-contact header>p span{color:var(--accent);margin-right:.5rem}.section-heading h2,.portfolio-about h2,.portfolio-contact h2,.project-policy h2,.notes-method h2{letter-spacing:-.05em;max-width:20ch;margin:0;font-size:clamp(1.9rem,4.3vw,3.5rem);font-weight:610;line-height:1.02}.section-heading>div>p{max-width:62ch;color:var(--ink-soft);margin:1rem 0 0;font-size:.8rem;line-height:1.7}.featured-projects{border-top:1px solid var(--border-strong)}.featured-project{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1.2fr) minmax(15rem,.62fr) auto;align-items:end;gap:2rem clamp(2rem,6vw,5rem);padding:2.2rem 0;display:grid}.featured-project h3{letter-spacing:-.045em;margin:.65rem 0 .7rem;font-size:clamp(1.7rem,4vw,3.1rem);font-weight:610}.featured-project>div>p:last-child{max-width:63ch;color:var(--ink-soft);margin:0;font-size:.8rem;line-height:1.7}.featured-project dl{border-top:1px solid var(--border);margin:0}.featured-project dl div{border-bottom:1px solid var(--border);padding:.7rem 0}.featured-project dt,.notes-preview dt{color:var(--ink-faint);font-family:var(--font-code);letter-spacing:.05em;text-transform:uppercase;font-size:.53rem}.featured-project dd,.notes-preview dd{color:var(--ink-soft);margin:.28rem 0 0;font-size:.66rem;line-height:1.55}.featured-project>a,.notes-preview__item>a{color:var(--ink);white-space:nowrap;font-size:.72rem;font-weight:740;text-decoration:none}.knowledge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.knowledge-card{background:var(--surface);border:1px solid var(--border);padding:clamp(1.5rem,3vw,2.25rem)}.knowledge-card h3{letter-spacing:-.035em;margin:0;font-size:clamp(1.45rem,2.6vw,2rem);font-weight:620}.knowledge-card>p{max-width:57ch;min-height:3.8rem;color:var(--ink-soft);margin:.8rem 0 1.8rem;font-size:.76rem;line-height:1.65}.knowledge-card ul{border-top:1px solid var(--border-strong);margin:0;padding:0;list-style:none}.knowledge-card li{border-bottom:1px solid var(--border);grid-template-columns:5.5rem minmax(0,1fr);gap:1rem;padding:.7rem 0;display:grid}.knowledge-card li>span{color:var(--ink-faint);font-family:var(--font-code);letter-spacing:.04em;text-transform:uppercase;font-size:.54rem}.knowledge-card li a,.knowledge-card li strong{color:var(--ink);font-size:.69rem;font-weight:690;text-decoration:none}.knowledge-card li a:hover{color:var(--accent)}.notes-preview{border-top:1px solid var(--border-strong)}.notes-preview__item{border-bottom:1px solid var(--border);grid-template-columns:2rem minmax(0,1fr) minmax(15rem,.6fr) auto;align-items:center;gap:1.5rem clamp(1.5rem,5vw,4rem);padding:1.8rem 0;display:grid}.notes-preview__item>span{color:var(--accent);font-family:var(--font-code);font-size:.6rem}.notes-preview h3{letter-spacing:-.035em;margin:0;font-size:clamp(1.35rem,3vw,2.2rem);font-weight:620}.notes-preview__item>div>p{max-width:60ch;color:var(--ink-soft);margin:.5rem 0 0;font-size:.74rem}.notes-preview dl{margin:0}.notes-preview dl div+div{margin-top:.7rem}.portfolio-about,.portfolio-contact{grid-template-columns:minmax(15rem,.7fr) minmax(0,1fr);gap:2rem clamp(3rem,9vw,8rem);display:grid}.portfolio-about header,.portfolio-contact header{align-content:start;gap:.8rem;display:grid}.portfolio-about h2,.portfolio-contact h2{font-size:clamp(1.8rem,3.8vw,3rem)}.portfolio-about>div>p{max-width:68ch;color:var(--ink-soft);margin:0;font-size:.9rem;line-height:1.75}.portfolio-about ul{border-top:1px solid var(--border-strong);margin:2rem 0 0;padding:0;list-style:none}.portfolio-about li{color:var(--ink-soft);border-bottom:1px solid var(--border);padding:.75rem 0;font-size:.72rem}.portfolio-contact{background:var(--accent-strong);border-color:var(--accent-strong)}.portfolio-contact h2,.portfolio-contact header>p{color:#f5f8f6}.portfolio-contact header>p span{color:#9fe4d0}.contact-links{flex-wrap:wrap;align-content:start;gap:.65rem;display:flex}.contact-links a{color:#f5f8f6;border:1px solid #ffffff73;min-height:2.65rem;padding:.65rem .85rem;font-size:.75rem;font-weight:720;text-decoration:none}.empty-state{color:var(--ink-soft);background:var(--surface);border:1px dashed var(--border-strong);margin:0;padding:1.4rem;font-size:.76rem}.empty-state h2{color:var(--ink);margin:0;font-size:1.2rem}.empty-state p{margin:.5rem 0 0}.empty-state--compact{color:color-mix(in srgb, #fff 75%, var(--accent-strong));background:0 0;border-color:#ffffff61;align-self:start}.page-header{border-right:1px solid var(--border);border-bottom:1px solid var(--border-strong);border-left:1px solid var(--border);grid-template-columns:8rem minmax(0,1fr) minmax(16rem,.48fr);align-items:end;gap:2rem clamp(2rem,6vw,5rem);padding-top:clamp(4rem,9vw,7rem);padding-bottom:clamp(3.5rem,7vw,5.5rem);display:grid}.page-header>p:first-child{color:var(--accent);font-family:var(--font-code);letter-spacing:.07em;text-transform:uppercase;margin:0;font-size:.62rem;font-weight:700}.page-header h1{letter-spacing:-.06em;max-width:14ch;margin:0;font-size:clamp(3rem,6.5vw,5.2rem);font-weight:600;line-height:.95}.page-header>p:last-child,.page-header--notes>div>p{color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.7}.page-header--notes>div .button{margin-top:1.2rem}.project-directory{border-right:1px solid var(--border);border-left:1px solid var(--border);padding-top:clamp(3.5rem,7vw,5.5rem);padding-bottom:clamp(4rem,8vw,6.5rem)}.project-group+.project-group{margin-top:5rem}.project-group>header{grid-template-columns:3rem minmax(0,1fr);gap:1.5rem;margin-bottom:1.8rem;display:grid}.project-group>header>p{color:var(--accent);font-family:var(--font-code);margin:.25rem 0 0;font-size:.6rem}.project-group h2{letter-spacing:-.045em;margin:0;font-size:clamp(1.8rem,4vw,3rem);font-weight:610}.project-group>header div>p{max-width:65ch;color:var(--ink-soft);margin:.65rem 0 0;font-size:.75rem}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-left:4.5rem;display:grid}.project-card{background:var(--surface);border:1px solid var(--border);align-content:start;min-height:22rem;padding:clamp(1.5rem,3vw,2.2rem);display:grid}.project-card__topline{color:var(--ink-faint);font-family:var(--font-code);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;gap:1rem;font-size:.54rem;display:flex}.project-card__topline span:first-child{color:var(--signal)}.project-card h3{letter-spacing:-.045em;margin:2rem 0 .8rem;font-size:clamp(1.6rem,3vw,2.5rem);font-weight:610;line-height:1.05}.project-card>p{color:var(--ink-soft);margin:0;font-size:.76rem;line-height:1.7}.project-card .project-card__stack{border-top:1px solid var(--border);font-family:var(--font-code);align-self:end;margin-top:2rem;padding-top:.9rem;font-size:.58rem}.project-card>a{width:fit-content;color:var(--ink);margin-top:1rem;font-size:.72rem;font-weight:740;text-decoration:none}.project-policy,.notes-method{background:var(--surface-muted);border:1px solid var(--border);grid-template-columns:8rem minmax(0,1fr);gap:2rem clamp(2rem,6vw,5rem);padding-top:3.5rem;padding-bottom:3.5rem;display:grid}.project-policy h2,.notes-method h2{max-width:27ch;font-size:clamp(1.45rem,3vw,2.3rem)}.project-policy>div>p{max-width:69ch;color:var(--ink-soft);margin:1rem 0 0;font-size:.76rem;line-height:1.7}.case-header{border-right:1px solid var(--border);border-bottom:1px solid var(--border-strong);border-left:1px solid var(--border);grid-template-columns:minmax(0,1.2fr) minmax(17rem,.5fr);align-items:end;gap:2rem clamp(3rem,8vw,7rem);padding-top:2rem;padding-bottom:clamp(3.5rem,8vw,6rem);display:grid}.back-link{width:fit-content;color:var(--ink-soft);grid-column:1/-1;font-size:.7rem;font-weight:700;text-decoration:none}.case-header>div:nth-child(2)>p{color:var(--accent);font-family:var(--font-code);letter-spacing:.06em;text-transform:uppercase;margin:2.5rem 0 .7rem;font-size:.62rem;font-weight:700}.case-header h1{letter-spacing:-.065em;max-width:12ch;margin:0;font-size:clamp(3rem,7vw,5.7rem);font-weight:590;line-height:.93}.case-header>div:last-child>p:last-child{color:var(--ink-soft);margin:1rem 0 0;font-size:.82rem;line-height:1.7}.case-summary{background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border-strong);border-left:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));padding-block:0;display:grid}.case-summary dl{border-left:1px solid var(--border);margin:0;padding:1rem}.case-summary dl:first-child{border-left:0}.case-summary dt{color:var(--ink-soft);font-size:.58rem}.case-summary dd{font-family:var(--font-code);margin:0 0 .3rem;font-size:1.45rem}.case-layout{border-right:1px solid var(--border);border-left:1px solid var(--border);grid-template-columns:13rem minmax(0,48rem);justify-content:center;gap:clamp(3rem,8vw,7rem);padding-top:clamp(3.5rem,7vw,6rem);padding-bottom:clamp(4rem,8vw,7rem);display:grid}.case-layout>aside{top:calc(var(--header-height) + 1.5rem);align-self:start;position:sticky}.case-layout>aside>p:first-child{color:var(--ink-faint);font-family:var(--font-code);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.56rem}.case-layout>aside>p:nth-child(2){color:var(--ink-soft);margin:.5rem 0 1.4rem;font-size:.67rem;line-height:1.6}.case-layout aside nav{border-top:1px solid var(--border);display:grid}.case-layout aside nav a{color:var(--ink);border-bottom:1px solid var(--border);padding:.65rem 0;font-size:.67rem;font-weight:680;text-decoration:none}.case-layout aside nav a:hover{color:var(--accent)}.case-article>section{grid-template-columns:2rem minmax(0,1fr);gap:1.2rem;padding:0 0 3.5rem;display:grid}.case-article>section+section{border-top:1px solid var(--border-strong);padding-top:3.5rem}.case-article section>span{color:var(--accent);font-family:var(--font-code);font-size:.62rem}.case-article h2{letter-spacing:-.04em;margin:0 0 1rem;font-size:clamp(1.7rem,3vw,2.5rem);font-weight:610}.case-article p,.case-article li{color:var(--ink-soft);font-size:.86rem;line-height:1.75}.case-article p{max-width:67ch}.case-article ul{border-top:1px solid var(--border);margin:1rem 0 0;padding:0;list-style:none}.case-article li{border-bottom:1px solid var(--border);padding:.75rem 0}.notes-directory{border-right:1px solid var(--border);border-left:1px solid var(--border);padding-top:clamp(3.5rem,7vw,5.5rem);padding-bottom:clamp(4rem,8vw,6.5rem)}.note-collection+.note-collection{margin-top:clamp(4rem,8vw,6.5rem)}.note-collection>header{border-bottom:1px solid var(--border-strong);grid-template-columns:3rem minmax(0,1fr) minmax(15rem,.5fr);align-items:start;gap:1.5rem clamp(2rem,6vw,5rem);padding-bottom:1.8rem;display:grid}.note-collection>header>p{color:var(--accent);font-family:var(--font-code);margin:.35rem 0 0;font-size:.6rem}.note-collection h2{letter-spacing:-.05em;margin:0;font-size:clamp(1.9rem,4vw,3.1rem);font-weight:610}.note-collection>header div>p{max-width:58ch;color:var(--ink-soft);margin:.7rem 0 0;font-size:.76rem;line-height:1.65}.note-collection header dl{margin:0}.note-collection header dl div{border-bottom:1px solid var(--border);grid-template-columns:4rem 1fr;gap:1rem;padding:.55rem 0;display:grid}.note-collection header dt{color:var(--ink-faint);font-family:var(--font-code);text-transform:uppercase;font-size:.53rem}.note-collection header dd{color:var(--ink-soft);margin:0;font-size:.64rem}.note-collection__body{grid-template-columns:minmax(0,1fr) minmax(12rem,.32fr);gap:2rem clamp(3rem,8vw,7rem);margin-left:4.5rem;padding-top:1.8rem;display:grid}.note-collection ol{margin:0;padding:0;list-style:none}.note-collection li{border-bottom:1px solid var(--border);grid-template-columns:2.4rem minmax(0,1fr);gap:.8rem;padding:.8rem 0;display:grid}.note-collection li:first-child{border-top:1px solid var(--border)}.note-collection li span{color:var(--accent);font-family:var(--font-code);font-size:.6rem}.note-collection li a{color:var(--ink);font-size:.75rem;font-weight:690;text-decoration:none}.note-collection li a:hover{color:var(--accent)}.note-collection__body nav{border-top:1px solid var(--border-strong);align-content:start;display:grid}.note-collection__body nav a{color:var(--ink);border-bottom:1px solid var(--border);padding:.7rem 0;font-size:.68rem;font-weight:700;text-decoration:none}.note-collection__body nav a:hover{color:var(--accent)}.notes-method dl{border-top:1px solid var(--border-strong);grid-template-columns:repeat(3,1fr);gap:0;margin:2rem 0 0;display:grid}.notes-method dl div{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:1rem}.notes-method dl div:first-child{border-left:1px solid var(--border)}.notes-method dt{color:var(--accent);font-family:var(--font-code);text-transform:uppercase;font-size:.58rem;font-weight:700}.notes-method dd{color:var(--ink-soft);margin:.6rem 0 0;font-size:.69rem;line-height:1.6}.course-overview__continue{font-family:var(--font-interface);font-size:.78rem;font-weight:720;margin-top:1.4rem!important}.course-overview__continue a{color:#fff;background:var(--accent-strong);border:1px solid var(--accent-strong);border-radius:2px;padding:.55rem .75rem;text-decoration:none;display:inline-block}html[data-theme=dark] .course-overview__continue a{color:#0b100e}.course-roadmap{border-top:1px solid var(--border-strong);border-bottom:1px solid var(--border-strong);margin-top:2rem}.course-roadmap>summary{color:var(--ink);font-family:var(--font-interface);padding:.9rem .2rem;font-size:.78rem;font-weight:720}.course-roadmap>div{padding:.5rem 0 1.5rem}.course-roadmap section{border-top:1px solid var(--border);padding:1rem 0}.course-roadmap h2{margin:0;font-size:1rem}.course-roadmap section p,.course-roadmap section li{color:var(--ink-soft);font-size:.72rem}.course-roadmap section ul{gap:.35rem;margin:.8rem 0 0;padding:0;list-style:none;display:grid}.course-roadmap section li span{width:2.2rem;color:var(--ink-faint);font-family:var(--font-code);font-size:.6rem;display:inline-block}@media (width<=980px){.site-header__inner{gap:1rem}.site-nav{gap:.7rem}.site-tools .search-trigger{min-width:auto}.search-trigger kbd{display:none}.section-heading{grid-template-columns:6rem minmax(0,1fr)}.section-heading .text-link{grid-column:2}.featured-project{grid-template-columns:minmax(0,1fr) minmax(13rem,.55fr)}.featured-project>a{grid-column:1/-1}.notes-preview__item{grid-template-columns:2rem minmax(0,1fr) minmax(13rem,.5fr)}.notes-preview__item>a{grid-column:2}.page-header{grid-template-columns:6rem minmax(0,1fr)}.page-header>p:last-child,.page-header--notes>div{grid-column:2}.case-layout{grid-template-columns:10rem minmax(0,1fr);gap:3rem}.note-collection>header{grid-template-columns:3rem minmax(0,1fr)}.note-collection>header dl{grid-column:2}}@media (width<=760px){:root{--header-height:7.2rem}.site-header__inner{grid-template-rows:auto auto;grid-template-columns:1fr auto;width:calc(100% - 1rem);padding-top:.35rem}.site-brand__copy small,.search-trigger__label-long{display:none}.search-trigger__label-short{display:inline}.site-nav{border-top:1px solid var(--border);scrollbar-width:none;grid-area:2/1/auto/-1;justify-content:flex-start;width:100%;padding-inline:.2rem;overflow-x:auto}.site-nav::-webkit-scrollbar{display:none}.site-header .site-nav a{flex:none;padding:.65rem .55rem}.search-dialog{top:calc(var(--header-height) + .35rem)}.shell{width:100%;padding-inline:1rem}.portfolio-hero,.portfolio-about,.portfolio-contact,.page-header,.case-header{grid-template-columns:1fr}.portfolio-hero{border-left:0;border-right:0;min-height:auto;padding-top:4.2rem;padding-bottom:4.2rem}.portfolio-hero__main h1{font-size:clamp(3.4rem,18vw,5.2rem)}.portfolio-hero__context{max-width:28rem}.portfolio-section,.page-header,.project-directory,.project-policy,.case-header,.case-summary,.case-layout,.notes-directory,.notes-method{border-left:0;border-right:0}.section-heading,.project-policy,.notes-method{grid-template-columns:1fr}.section-heading .text-link,.page-header>p:last-child,.page-header--notes>div{grid-column:auto}.knowledge-grid,.project-grid{grid-template-columns:1fr}.knowledge-card>p{min-height:auto}.featured-project,.notes-preview__item{grid-template-columns:1fr}.featured-project>a,.notes-preview__item>a{grid-column:auto}.notes-preview__item>span{margin-bottom:-.8rem}.project-grid,.note-collection__body{margin-left:0}.project-group>header{grid-template-columns:2rem minmax(0,1fr)}.case-header{padding-top:2rem}.back-link{grid-column:auto}.case-header h1{font-size:clamp(3rem,15vw,4.8rem)}.case-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.case-summary dl:nth-child(odd){border-left:0}.case-summary dl:nth-child(n+3){border-top:1px solid var(--border)}.case-layout{display:block}.case-layout>aside{margin-bottom:3.5rem;position:static}.note-collection>header{grid-template-columns:2rem minmax(0,1fr)}.note-collection__body,.notes-method dl{grid-template-columns:1fr}.notes-method dl div,.notes-method dl div:first-child{border-right:1px solid var(--border);border-left:1px solid var(--border)}.site-footer__inner{gap:.35rem;width:calc(100% - 2rem);display:grid}}@media (width<=460px){.portfolio-hero__actions{display:grid}.portfolio-hero__actions .button{width:100%}.knowledge-card li{grid-template-columns:1fr;gap:.25rem}.project-card__topline{display:grid}.case-summary{grid-template-columns:1fr}.case-summary dl,.case-summary dl:nth-child(odd){border-top:1px solid var(--border);border-left:0}.case-summary dl:first-child{border-top:0}.case-article>section{grid-template-columns:1.5rem minmax(0,1fr)}.note-collection>header{grid-template-columns:1fr}.note-collection>header dl{grid-column:auto}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.text-link span{transition:none}}@media print{@page{size:A4;margin:18mm 17mm 20mm}:root{--paper:#fff;--surface:#fff;--surface-muted:#f4f4f4;--ink:#000;--ink-soft:#333;--border:#b8b8b8;--border-strong:#777;--accent:#000}html,body{background:#fff;font-size:10.5pt}.site-header,.site-footer,.course-sidebar,.course-toc,.practice-sidebar,.practice-toc,.practice-filter,.practice-response__state button,.breadcrumbs,.unit-pagination,.copy-button,.skip-link{display:none!important}.course-shell,.course-shell--without-toc,.practice-shell,.practice-shell--without-toc{max-width:none;padding:0;display:block}.course-main,.practice-main{padding:0}.course-article,.course-overview,.practice-page{font-size:10.5pt;line-height:1.5}.practice-card,.practice-series,.practice-case-grid>section{break-inside:avoid}.practice-card__body>summary,.practice-series__body>summary,.practice-hints{display:none}.practice-card__body>.practice-card__content,.practice-series__body>.practice-card__content{display:block!important}.course-article h1{max-width:none;font-size:24pt}.section-heading,.content-section-heading{break-after:avoid;max-width:none}.heading-anchor{display:none}.callout,.http-message,.sequence-diagram,.code-frame,.table-scroll,table,pre{break-inside:avoid}.table-scroll,.sequence-diagram,.code-frame pre{overflow:visible}.sequence-diagram__flow{transform-origin:0 0;width:126%;min-width:0;margin-bottom:-.7rem;transform:scale(.79)}.source-reference a[href^=http]:after{content:" (" attr(href) ")";color:#333;font-family:var(--font-code);overflow-wrap:anywhere;font-size:7.5pt}}
