.site-footer[data-astro-cid-nns7i3if]{margin-top:var(--space-8);border-radius:var(--radius-chamber) var(--radius-chamber) 0 0;background:var(--ink-deep);color:var(--ink)}.footer-inner[data-astro-cid-nns7i3if]{justify-content:space-between;gap:var(--space-7);width:min(100% - 2 * var(--page-gutter), var(--content-width));padding-block:clamp(3.5rem, 8vw, 6rem) var(--space-5);font-size:var(--step--1);flex-wrap:wrap;margin-inline:auto;display:flex}p[data-astro-cid-nns7i3if]{margin:0}.footer-label[data-astro-cid-nns7i3if]{color:var(--accent-soft);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.footer-statement[data-astro-cid-nns7i3if]{max-width:18ch;margin-top:var(--space-4);font-family:var(--font-display);font-size:var(--step-2);line-height:1.05}nav[data-astro-cid-nns7i3if]{gap:var(--space-4);flex-wrap:wrap;display:flex}a[data-astro-cid-nns7i3if]{color:var(--ink);text-decoration-color:var(--accent);transition:color var(--motion-fast) ease, text-underline-offset var(--motion-fast) var(--ease-out)}a[data-astro-cid-nns7i3if]:hover{color:var(--accent-soft);text-underline-offset:.45em}.copyright[data-astro-cid-nns7i3if]{padding-top:var(--space-5);border-top:1px solid color-mix(in srgb, var(--ink) 18%, transparent);color:color-mix(in srgb, var(--ink) 60%, transparent);font-family:var(--font-mono);flex-basis:100%}@media (width<=36rem){.footer-inner[data-astro-cid-nns7i3if]{flex-direction:column}}.site-header[data-astro-cid-fzpbxy5g]{z-index:20;top:var(--space-3);width:min(100% - 2 * var(--page-gutter), var(--content-width));margin:var(--space-4) auto 0;position:sticky}.header-inner[data-astro-cid-fzpbxy5g]{justify-content:space-between;align-items:center;gap:var(--space-4);border:1px solid var(--glass-line);box-shadow:0 0 0 1px #00160e52, inset 0 1px 0 #ffffff2e, var(--glass-shadow);transition:border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;backdrop-filter:blur(24px)saturate(145%);background:#002d1ce0;border-radius:1.15rem;padding:.4rem .45rem .4rem .9rem;display:flex;overflow:hidden}.wordmark[data-astro-cid-fzpbxy5g]{gap:var(--space-3);color:var(--ink);align-items:baseline;text-decoration:none;display:flex}.wordmark-name[data-astro-cid-fzpbxy5g]{font-family:var(--font-display);letter-spacing:-.035em;font-size:1.08rem;font-weight:650}.wordmark-role[data-astro-cid-fzpbxy5g]{color:var(--ink-soft);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;font-size:.62rem}ul[data-astro-cid-fzpbxy5g]{gap:.15rem;margin:0;padding:0;list-style:none;display:flex}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{min-height:2.25rem;color:var(--ink-soft);font-size:var(--step--1);transition:background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, box-shadow var(--motion-fast) ease, color var(--motion-fast) ease, translate var(--motion-fast) var(--ease-out);border:1px solid #0000;border-radius:.75rem;align-items:center;padding-inline:clamp(.65rem,1.5vw,1rem);text-decoration:none;display:inline-flex}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover,nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:focus-visible{color:var(--ink);background:#ffffff1a;border-color:#ffffff5c}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g][aria-current=page]{background:linear-gradient(135deg, var(--ink-deep), #0b5a3e);color:var(--ink);border-color:#ffffff7a;box-shadow:inset 0 1px #ffffff61,0 5px 16px #05060733}@media (hover:hover){.header-inner[data-astro-cid-fzpbxy5g]:hover{border-color:#ffffff6b;box-shadow:0 0 0 1px #00160e5c,inset 0 1px #fff3,0 18px 48px #00160e52}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]:hover{translate:0 -2px}}@media (width<=46rem){.header-inner[data-astro-cid-fzpbxy5g]{padding:var(--space-3);border-radius:var(--radius-card);flex-direction:column;align-items:stretch}.wordmark[data-astro-cid-fzpbxy5g]{padding-inline:var(--space-2);justify-content:space-between}ul[data-astro-cid-fzpbxy5g]{grid-template-columns:repeat(4,1fr);display:grid}nav[data-astro-cid-fzpbxy5g] a[data-astro-cid-fzpbxy5g]{justify-content:center;padding-inline:.35rem}}@media (width<=26rem){.wordmark-role[data-astro-cid-fzpbxy5g]{display:none}}@supports (background:color-mix(in srgb, white, transparent)){.header-inner[data-astro-cid-fzpbxy5g]{background:color-mix(in srgb, var(--glass-fill) 92%, transparent)}}@media (prefers-reduced-transparency:reduce){.header-inner[data-astro-cid-fzpbxy5g]{border-color:var(--line);background:var(--surface);backdrop-filter:none;box-shadow:0 0 0 1px #00160e3d}}:root{color-scheme:dark;--canvas:#004225;--surface:#064b35;--surface-strong:#0a573d;--ink:#fff;--ink-deep:#002d1c;--ink-soft:#d4e2dc;--line:#3f725e;--line-strong:#86aa9a;--accent:#fff;--accent-bright:#e4f3eb;--accent-secondary:#bad4c7;--accent-soft:#cfe5da;--wash-mint:#0a5138;--wash-peach:#0d4a35;--wash-lavender:#07523a;--wash-teal:#0c5940;--verified:#a8cfbb;--verified-soft:#ecf8f1;--status-live:#31d158;--status-preview:#ff453a;--glass-fill:#002d1cc2;--glass-line:#ffffff38;--glass-shadow:0 14px 40px #00160e52;--font-display:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-body:Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;--content-width:75rem;--text-width:46rem;--page-gutter:clamp(1rem, 4vw, 3.5rem);--section-space:clamp(4rem, 7vw, 6.5rem);--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--radius-control:.5rem;--radius-card:.875rem;--radius-chamber:1.125rem;--border-hairline:1px solid var(--line);--border-ink:1px solid var(--ink);--focus-ring:.1875rem solid var(--accent);--motion-fast:.16s;--motion-medium:.36s;--ease-out:cubic-bezier(.22, 1, .36, 1);--step--1:clamp(.76rem, .72rem + .16vw, .86rem);--step-0:clamp(1rem, .95rem + .22vw, 1.12rem);--step-1:clamp(1.2rem, 1.05rem + .58vw, 1.55rem);--step-2:clamp(1.65rem, 1.28rem + 1.2vw, 2.4rem);--step-3:clamp(2.2rem, 1.55rem + 2.35vw, 3.7rem);--step-4:clamp(3rem, 1.85rem + 4.2vw, 5.8rem);--step-5:clamp(3.75rem, 2rem + 6.8vw, 7.75rem);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;line-height:1.5}*{box-sizing:border-box}html{background:var(--canvas);min-width:20rem;color:var(--ink);scroll-behavior:smooth}body{background:radial-gradient(circle at 18% -8%, #ffffff1f, transparent 34rem), linear-gradient(#ffffff0f 1px, transparent 1px), linear-gradient(90deg, #ffffff0f 1px, transparent 1px), var(--canvas);background-size:auto,2rem 2rem,2rem 2rem,auto;min-height:100vh;margin:0}::selection{background:var(--accent-soft);color:var(--ink-deep)}a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:.22em;text-decoration-thickness:.1em}a:hover{color:var(--accent)}main{min-height:65svh}.page-shell{width:min(100% - 2 * var(--page-gutter), var(--content-width));margin-inline:auto}.content-section{padding-block:var(--section-space);border-top:var(--border-hairline)}.content-section>:first-child{margin-top:0}.content-section>:last-child{margin-bottom:0}.section-index,.eyebrow,.family{color:var(--accent);font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.section-heading{max-width:21ch;font-family:var(--font-display);font-size:var(--step-3);letter-spacing:-.035em;text-wrap:balance;margin:0;font-weight:400;line-height:1.02}.section-copy{max-width:var(--text-width);color:var(--ink-soft);font-size:var(--step-0);line-height:1.7}.project-grid{gap:var(--space-5);margin-top:var(--space-7);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.text-link{background:linear-gradient(135deg, var(--ink-deep), #0b5a3e);width:fit-content;min-height:2.9rem;color:var(--ink);font-size:var(--step--1);transition:background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, color var(--motion-fast) ease, box-shadow var(--motion-fast) ease, translate var(--motion-fast) var(--ease-out);backdrop-filter:blur(14px)saturate(135%);border:1px solid #ffffff85;border-radius:.8rem;justify-content:center;align-items:center;gap:.55rem;padding:.65rem 1rem;font-weight:650;text-decoration:none;display:inline-flex;box-shadow:inset 0 1px #ffffff6b,0 8px 24px #0506072e}.text-link:hover{background:linear-gradient(135deg, var(--ink-deep), #106747);color:var(--ink);border-color:#ffffffb8;translate:0 -2px;box-shadow:inset 0 1px #ffffff8f,0 12px 30px #0506073d}.text-link span{transition:translate var(--motion-fast) var(--ease-out)}.text-link:hover span,.text-link:focus-visible span{translate:.2rem}.tag-list,.link-list{margin:var(--space-5) 0 0;flex-wrap:wrap;gap:.65rem;padding:0;list-style:none;display:flex}.tag-list li,.link-list a{border:var(--border-hairline);border-radius:var(--radius-control);min-height:2.25rem;color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--step--1);transition:border-color var(--motion-fast) ease, color var(--motion-fast) ease, translate var(--motion-fast) var(--ease-out);align-items:center;padding:.4rem .75rem;text-decoration:none;display:inline-flex}.link-list a:hover{border-color:var(--accent);color:var(--accent);translate:0 -2px}.prose{max-width:var(--text-width)}.prose h2{margin:var(--space-8) 0 var(--space-5);font-family:var(--font-display);font-size:var(--step-3);letter-spacing:-.035em;font-weight:400;line-height:1.05}.prose h3{margin:var(--space-7) 0 var(--space-3);font-size:var(--step-1)}.prose p,.prose li{color:var(--ink-soft);font-size:var(--step-0);line-height:1.75}.prose ul,.prose ol{padding-left:1.25rem}:focus-visible{outline:var(--focus-ring);outline-offset:.25rem}.skip-link{z-index:100;top:var(--space-4);left:var(--space-4);border-radius:var(--radius-control);background:var(--ink);color:var(--surface);padding:.7rem 1rem;position:fixed;translate:0 -200%}.skip-link:focus{translate:0}@keyframes reveal-down{0%{opacity:0;translate:0 -.75rem}to{opacity:1;translate:0}}@keyframes reveal-up{0%{opacity:0;translate:0 1.25rem}to{opacity:1;translate:0}}@media (prefers-reduced-motion:no-preference){.site-header{animation:reveal-down .48s var(--ease-out) both}.page-intro .eyebrow{animation:reveal-up .42s 80ms var(--ease-out) both}.page-intro h1{animation:reveal-up .56s .14s var(--ease-out) both}.page-intro .lede{animation:reveal-up .52s .22s var(--ease-out) both}}@media (width<=50rem){.project-grid{grid-template-columns:1fr}}@media (width<=36rem){:root{--page-gutter:1rem;--section-space:4rem}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-reduced-transparency:reduce){body{background:var(--canvas)}.text-link{backdrop-filter:none}}.project-overlay{overscroll-behavior:contain;border:var(--border-ink);border-radius:var(--radius-chamber);background:var(--surface);width:min(100% - 2rem,78rem);max-width:none;max-height:min(100% - 2rem,58rem);color:var(--ink);padding:0;overflow-y:auto;box-shadow:0 1.5rem 5rem #0506074d}.project-overlay::backdrop{backdrop-filter:blur(.3rem);background:#050607b8}.overlay-frame{min-height:100%}.project-overlay .sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.overlay-header{z-index:2;padding:var(--space-3);border-bottom:var(--border-hairline);background:var(--glass-fill);backdrop-filter:blur(16px)saturate(125%);justify-content:flex-end;display:flex;position:sticky;top:0}.overlay-close,.overlay-back{border:var(--border-ink);border-radius:var(--radius-control);background:var(--surface-strong);min-height:2.5rem;color:var(--ink);font:inherit;font-size:var(--step--1);cursor:pointer;font-weight:650}.overlay-close{padding:.45rem .75rem}.overlay-close span{margin-left:.35rem;font-size:1.15rem;line-height:0}.overlay-back{padding:.45rem .65rem;display:none}.overlay-panel{padding:clamp(1.5rem,5vw,4rem)}.overlay-status{color:var(--ink-soft);margin:0}.overlay-intro{border-bottom:var(--border-hairline);max-width:54rem;padding-bottom:clamp(2.5rem,6vw,5rem)}.overlay-intro .family{margin:0 0 var(--space-4)}.overlay-intro h2{font-family:var(--font-display);font-size:var(--step-4);letter-spacing:-.05em;margin:0;font-weight:500;line-height:.95}.overlay-subtitle{margin:var(--space-3) 0 0;color:var(--ink-soft);font-size:var(--step-1);line-height:1.35}.overlay-description{max-width:48rem;margin:var(--space-5) 0 0;color:var(--ink-soft);font-size:var(--step-0);line-height:1.75}.overlay-content{grid-template-columns:minmax(0,1fr) minmax(13rem,.3fr);gap:clamp(2.5rem,7vw,7rem);padding-top:clamp(2.5rem,6vw,5rem);display:grid}.overlay-article{max-width:48rem}.overlay-section+.overlay-section{margin-top:clamp(2.5rem,6vw,4.5rem)}.overlay-section h3{max-width:19ch;margin:0 0 var(--space-5);font-family:var(--font-display);font-size:var(--step-2);letter-spacing:-.035em;font-weight:500;line-height:1.05}.overlay-section p{color:var(--ink-soft);font-size:var(--step-0);margin:0;line-height:1.8}.overlay-section p+p{margin-top:var(--space-5)}.overlay-opening p:first-child{color:var(--ink);font-family:var(--font-display);font-size:var(--step-1);letter-spacing:-.02em;line-height:1.55}.overlay-notes{align-content:start;gap:var(--space-7);padding-left:var(--space-5);border-left:var(--border-hairline);display:grid;position:sticky;top:5.25rem}.overlay-notes p{margin:0}.overlay-notes ul{gap:var(--space-3);margin:var(--space-4) 0 0;padding:0;list-style:none;display:grid}.overlay-notes li,.overlay-notes a{color:var(--ink-soft);font-size:var(--step--1);line-height:1.5}.overlay-notes a{text-underline-offset:.2em}.overlay-footer{gap:var(--space-4);padding-top:var(--space-5);border-top:var(--border-hairline);flex-wrap:wrap;align-items:center;margin-top:clamp(3rem,7vw,6rem);display:flex}.overlay-full-page{color:var(--ink-soft);font-size:var(--step--1);text-underline-offset:.2em;font-weight:650}@media (width<=50rem){.project-overlay{border:0;border-radius:0;width:100%;height:100%;max-height:100%}.project-overlay::backdrop{background:var(--surface)}.overlay-header{justify-content:space-between}.overlay-back{align-items:center;gap:.35rem;display:inline-flex}.overlay-panel{padding:var(--space-6) var(--page-gutter) clamp(3rem, 10vw, 5rem)}.overlay-content{gap:var(--space-7);grid-template-columns:1fr}.overlay-notes{padding:var(--space-5) 0;border-top:var(--border-hairline);border-bottom:var(--border-hairline);border-left:0;grid-template-columns:repeat(2,minmax(0,1fr));position:static}}@media (width<=34rem){.overlay-notes{grid-template-columns:1fr}}@media (prefers-reduced-transparency:reduce){.overlay-header,.project-overlay::backdrop{backdrop-filter:none}}
