@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-cyrillic-ext-wght-normal.d45eAU9y.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-cyrillic-wght-normal.BAAhND-U.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-greek-wght-normal.CmyJS8uq.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-vietnamese-wght-normal.Dg1JeJN0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-latin-ext-wght-normal.CIII54If.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/_astro/ibm-plex-sans-latin-wght-normal.IvpUvPa2.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@property --paper{syntax: "<color>"; inherits: true; initial-value: #f2efe7;}@property --paper-deep{syntax: "<color>"; inherits: true; initial-value: #e7e2d7;}@property --graphite{syntax: "<color>"; inherits: true; initial-value: #1b1a18;}@property --graphite-soft{syntax: "<color>"; inherits: true; initial-value: #35322e;}@property --muted{syntax: "<color>"; inherits: true; initial-value: #625e56;}@property --rule{syntax: "<color>"; inherits: true; initial-value: #c9c2b4;}@property --accent{syntax: "<color>"; inherits: true; initial-value: #963729;}@property --accent-dark{syntax: "<color>"; inherits: true; initial-value: #70271f;}@property --white{syntax: "<color>"; inherits: true; initial-value: #fffdfa;}@property --scroll-track{syntax: "<color>"; inherits: true; initial-value: #ebe7df;}@property --scroll-thumb{syntax: "<color>"; inherits: true; initial-value: #a43d2c;}@property --scroll-thumb-hover{syntax: "<color>"; inherits: true; initial-value: #7f2f23;}:root{color-scheme:light;--paper: #f2efe7;--paper-deep: #e7e2d7;--graphite: #1b1a18;--graphite-soft: #35322e;--muted: #625e56;--rule: #c9c2b4;--accent: #963729;--accent-dark: #70271f;--white: #fffdfa;--inverse-background: #1b1a18;--inverse-text: #f2efe7;--inverse-muted: #c9c3b8;--inverse-subtle: #aba59a;--inverse-rule: #55514a;--scroll-track: #ebe7df;--scroll-thumb: #a43d2c;--scroll-thumb-hover: #7f2f23;--font-display: "Newsreader Variable", Georgia, serif;--font-sans: "IBM Plex Sans Variable", "Helvetica Neue", sans-serif;--page: min( calc(100% - clamp(2rem, 8vw, 8rem)) , 88rem);--measure: 42rem;--line: 1px;--focus: 3px solid var(--accent);--ease-out: cubic-bezier(.16, 1, .3, 1)}:root[data-theme-ready]{transition:--paper .18s var(--ease-out),--paper-deep .18s var(--ease-out),--graphite .18s var(--ease-out),--graphite-soft .18s var(--ease-out),--muted .18s var(--ease-out),--rule .18s var(--ease-out),--accent .18s var(--ease-out),--accent-dark .18s var(--ease-out),--white .18s var(--ease-out),--scroll-track .18s var(--ease-out),--scroll-thumb .18s var(--ease-out),--scroll-thumb-hover .18s var(--ease-out)}:root[data-theme=dark]{color-scheme:dark;--paper: #181a1d;--paper-deep: #22262a;--graphite: #edeae2;--graphite-soft: #d3d0c8;--muted: #9ba3aa;--rule: #4b535a;--accent: #c6a15b;--accent-dark: #e2be73;--white: #111315;--inverse-background: #24292d;--inverse-text: #f1eee6;--inverse-muted: #c2c5bd;--inverse-subtle: #929ba2;--inverse-rule: #596269;--scroll-track: #22262a;--scroll-thumb: #9e7f46;--scroll-thumb-hover: #c6a15b}@media(prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--paper: #181a1d;--paper-deep: #22262a;--graphite: #edeae2;--graphite-soft: #d3d0c8;--muted: #9ba3aa;--rule: #4b535a;--accent: #c6a15b;--accent-dark: #e2be73;--white: #111315;--inverse-background: #24292d;--inverse-text: #f1eee6;--inverse-muted: #c2c5bd;--inverse-subtle: #929ba2;--inverse-rule: #596269;--scroll-track: #22262a;--scroll-thumb: #9e7f46;--scroll-thumb-hover: #c6a15b}}*,*:before,*:after{box-sizing:border-box}html{background:var(--paper);color:var(--graphite);font-family:var(--font-sans);scroll-behavior:smooth;text-rendering:optimizeLegibility}body{margin:0;background:var(--paper);font-size:clamp(1rem,.2vw + .95rem,1.1rem);line-height:1.62}body:before{position:fixed;inset:0 0 auto;height:3px;background:var(--accent);content:"";z-index:20}main{overflow:clip}a{color:inherit;text-decoration-thickness:.08em;text-underline-offset:.18em}a:hover{color:var(--accent-dark)}a:focus-visible,button:focus-visible,summary:focus-visible,select:focus-visible{outline:var(--focus);outline-offset:4px}button,summary,select{font:inherit}img,svg{display:block;max-width:100%}p,h1,h2,h3,figure,ol,ul,dl{margin-block:0}h1,h2,h3{font-family:var(--font-display);font-optical-sizing:auto;font-weight:430;letter-spacing:-.025em;text-wrap:balance}h1{font-size:clamp(3.2rem,5.8vw,5.8rem);line-height:.97}h2{font-size:clamp(2.2rem,3.35vw,3.5rem);line-height:1.02}h3{font-size:clamp(1.6rem,1.8vw,2.1rem);line-height:1.08}p,li,dd{text-wrap:pretty}.page-shell{width:var(--page);margin-inline:auto}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:100;padding:.65rem .85rem;background:var(--graphite);color:var(--paper);transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.section-index,.project-meta,.index-number{color:var(--muted);font-size:.78rem;font-variant-numeric:tabular-nums;letter-spacing:.055em;line-height:1.35}.text-link{display:inline-block;padding-block:.25rem;font-weight:520;text-decoration-color:var(--accent)}.site-header{position:relative;z-index:10;border-bottom:var(--line) solid var(--rule)}.header-inner{display:flex;width:var(--page);min-height:4.75rem;align-items:center;justify-content:space-between;margin-inline:auto}.brand-lockup{display:inline-flex;align-items:center;gap:.8rem;font-size:.96rem;font-weight:560;letter-spacing:-.015em;text-decoration:none}.brand-mark{width:1.55rem;color:var(--accent)}.desktop-nav ul,.mobile-nav ul{display:flex;gap:clamp(1.4rem,3vw,3.5rem);margin:0;padding:0;list-style:none}.desktop-nav a{position:relative;font-size:.9rem;text-decoration:none}.desktop-nav a:after{position:absolute;right:0;bottom:-.48rem;left:0;height:1px;background:currentColor;content:"";transform:scaleX(0);transform-origin:right;transition:transform .28s var(--ease-out)}.desktop-nav a:hover:after,.desktop-nav a[aria-current=page]:after{transform:scaleX(1);transform-origin:left}.mobile-nav{display:none}.hero{display:grid;min-height:min(54rem,calc(100svh - 4.75rem));grid-template-columns:minmax(0,1.06fr) minmax(24rem,.94fr);align-items:end;gap:clamp(3rem,6vw,6rem);padding-block:clamp(4.5rem,8vh,7rem) clamp(3.25rem,6vh,5rem)}.hero-copy{align-self:center}.hero h1{max-width:11.5ch;margin-block:clamp(1.15rem,2.4vw,2rem) 1.4rem;font-size:clamp(3.4rem,5.7vw,5.8rem)}.hero-intro{max-width:33rem;margin-bottom:1.25rem;color:var(--graphite-soft);font-size:clamp(1.05rem,.8vw + .8rem,1.3rem);line-height:1.5}.hero-plot{align-self:end;margin-bottom:0}.hero-plot svg{width:100%;height:auto}.plot-grid path,.plot-axes path{fill:none;stroke:var(--rule);stroke-width:1;vector-effect:non-scaling-stroke}.plot-axes path{stroke:var(--muted)}.plot-curve{fill:none;stroke:var(--accent);stroke-width:3;stroke-dasharray:1200;stroke-dashoffset:1200;vector-effect:non-scaling-stroke;animation:draw-curve 1.5s .22s var(--ease-out) forwards}.plot-points circle{fill:var(--paper);stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke}.plot-labels,.figure-text,.mark-construction text{fill:var(--muted);font-family:var(--font-sans);font-size:16px}.hero-plot figcaption,.mark-construction figcaption{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;padding-top:.9rem;border-top:var(--line) solid var(--graphite);color:var(--muted);font-size:.78rem;line-height:1.45}.figure-label{color:var(--graphite);font-variant-numeric:tabular-nums}@keyframes draw-curve{to{stroke-dashoffset:0}}.selected-work{padding-block:clamp(5.5rem,9vw,8.5rem) clamp(5.5rem,8vw,8rem)}.section-heading{display:grid;grid-template-columns:.7fr 1.8fr .9fr;gap:clamp(1.5rem,3.5vw,4rem);align-items:start;margin-bottom:clamp(3.5rem,6vw,5.5rem)}.section-heading h2{max-width:13ch}.section-heading>p:last-child{max-width:24rem;color:var(--muted)}.project-ledger{border-bottom:var(--line) solid var(--graphite)}.ledger-row{display:grid;grid-template-columns:minmax(3rem,.45fr) minmax(17rem,1.65fr) minmax(18rem,1.1fr);gap:clamp(1.5rem,3.5vw,4rem);align-items:center;padding-block:clamp(2.5rem,4vw,4rem);border-top:var(--line) solid var(--graphite)}.ledger-count{align-self:start;color:var(--accent);font-family:var(--font-display);font-size:1.1rem;font-variant-numeric:tabular-nums}.ledger-copy h3{margin:.8rem 0 1.2rem}.ledger-copy h3 a,.index-copy h2 a{text-decoration-color:transparent}.ledger-copy h3 a:hover,.index-copy h2 a:hover{text-decoration-color:var(--accent)}.ledger-copy>p:not(.project-meta){max-width:36rem;margin-bottom:1rem;color:var(--muted)}.sample-note,.sample-banner{display:inline-block;border-bottom:var(--line) solid var(--accent);color:var(--accent-dark);font-size:.76rem;letter-spacing:.04em}.project-figure{margin:0;color:var(--graphite)}.project-figure svg{width:100%;max-height:16rem}.figure-grid{fill:none;stroke:var(--rule);stroke-width:1;vector-effect:non-scaling-stroke}.figure-axis{fill:none;stroke:var(--muted);stroke-width:1;vector-effect:non-scaling-stroke}.figure-accent{fill:none;stroke:var(--accent);stroke-width:2.5;vector-effect:non-scaling-stroke}.figure-dots circle{fill:var(--paper);stroke:var(--accent);stroke-width:2}.working-notes{position:relative;display:grid;grid-template-columns:.25fr 1.15fr 2fr;gap:clamp(1.5rem,4vw,4.5rem);padding:clamp(3rem,4.5vw,4.5rem);background:var(--inverse-background);color:var(--inverse-text)}.working-notes .section-index{color:var(--inverse-subtle)}.working-notes h2{max-width:9ch}.notes-rule{width:1px;min-height:10rem;background:var(--accent)}.interest-list{margin:0;padding:0;list-style:none;counter-reset:interests}.interest-list li{display:grid;grid-template-columns:minmax(8rem,.7fr) 1.3fr;gap:2rem;padding-block:1.25rem;border-top:1px solid var(--inverse-rule);counter-increment:interests}.interest-list li:last-child{border-bottom:1px solid var(--inverse-rule)}.interest-list span:before{margin-right:1rem;color:var(--inverse-subtle);content:"0" counter(interests);font-size:.72rem}.interest-list p{margin:0;color:var(--inverse-muted)}.home-about{display:grid;grid-template-columns:1fr 2.35fr;gap:clamp(2rem,7vw,8rem);padding-block:clamp(6rem,10vw,10rem)}.home-about h2{max-width:14ch;margin-bottom:2rem}.home-about>div p{max-width:42rem;margin-bottom:1.25rem;color:var(--muted);font-size:clamp(1.08rem,.4vw + 1rem,1.27rem)}.page-lead{display:grid;grid-template-columns:minmax(8rem,.72fr) minmax(0,2.28fr);column-gap:clamp(2rem,6vw,6rem);row-gap:clamp(1.5rem,3vw,2.5rem);padding-block:clamp(4.5rem,6.5vw,6.5rem) clamp(4rem,5.5vw,5.5rem);border-bottom:var(--line) solid var(--graphite)}.page-lead h1{max-width:12ch;margin-bottom:0;font-size:clamp(3.3rem,5.4vw,5.5rem)}.page-lead>p:last-child{max-width:40rem;margin-bottom:0;color:var(--muted);font-size:clamp(1.05rem,.65vw + .9rem,1.28rem)}.page-lead>:not(.section-index){grid-column:2}.page-lead .section-index{grid-row:1 / span 3}.index-section,.cas-index{padding-block:clamp(3rem,4vw,4rem) clamp(6rem,9vw,9rem)}.filter-bar{display:flex;flex-wrap:wrap;align-items:baseline;gap:.6rem 1.5rem;margin-bottom:clamp(2.75rem,4vw,3.75rem);color:var(--muted)}.filter-bar>span{margin-right:1rem;color:var(--graphite);font-family:var(--font-display);font-size:1.4rem}.filter-bar button{padding:.15rem 0;border:0;border-bottom:1px solid transparent;background:transparent;color:inherit;cursor:pointer}.filter-bar button:hover,.filter-bar button[aria-pressed=true]{border-bottom-color:var(--accent);color:var(--graphite)}.index-list{border-bottom:var(--line) solid var(--graphite)}.index-entry{display:grid;grid-template-columns:minmax(2.5rem,.45fr) minmax(18rem,2.5fr) minmax(18rem,1.7fr);gap:clamp(1.5rem,4vw,4.5rem);align-items:center;padding-block:clamp(2.75rem,4vw,4rem);border-top:var(--line) solid var(--graphite)}.index-entry[hidden],.cas-entry[hidden]{display:none}.index-number{align-self:start;color:var(--accent)}.index-copy h2{margin:.7rem 0 1.2rem;font-size:clamp(2rem,3vw,3.25rem)}.index-copy>p:last-child{max-width:38rem;color:var(--muted)}.case-study{padding-top:clamp(5rem,7vw,7rem)}.case-header{display:grid;grid-template-columns:minmax(0,2.5fr) minmax(14rem,.8fr);gap:clamp(3rem,6vw,7rem);align-items:end}.case-header h1{max-width:12ch;margin:1.4rem 0 2rem;font-size:clamp(3.3rem,5.6vw,5.75rem)}.case-deck{max-width:42rem;color:var(--muted);font-size:clamp(1.15rem,.8vw + .95rem,1.45rem)}.sample-banner{margin-top:1.5rem}.case-meta{margin:0;border-top:var(--line) solid var(--graphite)}.case-meta div{display:grid;grid-template-columns:5.5rem 1fr;gap:1rem;padding-block:.85rem;border-bottom:var(--line) solid var(--rule)}.case-meta dt{color:var(--muted);font-size:.78rem}.case-meta dd{margin:0;font-size:.88rem}.case-study>.project-figure{margin-block:clamp(5rem,7vw,7rem);padding:clamp(2rem,4vw,4rem);border:var(--line) solid var(--rule)}.case-study>.project-figure svg{max-height:35rem}.case-body{display:grid;grid-template-columns:1fr minmax(0,2.4fr);gap:clamp(3rem,7vw,8rem);padding-bottom:clamp(6rem,9vw,9rem)}.case-contents{align-self:start;position:sticky;top:2rem}.case-contents>p{padding-bottom:.6rem;border-bottom:var(--line) solid var(--graphite);font-family:var(--font-display);font-size:1.3rem}.case-contents ol{margin:0;padding:0;list-style:none}.case-contents li{padding-block:.5rem;border-bottom:var(--line) solid var(--rule);font-size:.84rem}.case-contents a{text-decoration:none}.prose{max-width:var(--measure)}.prose h2{margin:4rem 0 1.35rem;font-size:clamp(2rem,3vw,3.25rem);scroll-margin-top:2rem}.prose h2:first-child{margin-top:0}.prose h3{margin:3rem 0 1rem}.prose p+p,.prose p+ul,.prose p+ol,.prose ul+p,.prose ol+p{margin-top:1.15rem}.prose p,.prose li{color:var(--graphite-soft)}.prose blockquote{margin:3.5rem 0;padding:.2rem 0 .2rem clamp(1.25rem,3vw,3rem);border-left:3px solid var(--accent);font-family:var(--font-display);font-size:clamp(1.5rem,2vw,2.1rem);line-height:1.3}.prose blockquote p{color:var(--graphite)}.prose li+li{margin-top:.65rem}.project-pagination{display:grid;grid-template-columns:1fr 1fr;border-top:var(--line) solid var(--graphite);border-bottom:var(--line) solid var(--graphite);margin-bottom:clamp(6rem,9vw,9rem)}.project-pagination a{padding:clamp(1.5rem,3vw,3rem);font-family:var(--font-display);font-size:clamp(1.3rem,2vw,2rem);text-decoration:none}.project-pagination a+a{border-left:var(--line) solid var(--rule);text-align:right}.project-pagination span{display:block;margin-bottom:.4rem;color:var(--muted);font-family:var(--font-sans);font-size:.72rem;letter-spacing:.05em}.cas-lead{grid-template-rows:auto auto auto}.strand-key{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:.75rem;background:var(--rule);border:var(--line) solid var(--rule)}.strand-key span{display:flex;min-height:4.75rem;align-items:flex-end;justify-content:space-between;padding:1rem;background:var(--paper)}.strand-key b{color:var(--accent);font-size:.72rem;font-weight:450}.cas-list{border-bottom:var(--line) solid var(--graphite)}.filter-empty{margin:0;padding-block:clamp(4rem,8vw,7rem);border-top:var(--line) solid var(--graphite);color:var(--muted);font-family:var(--font-display);font-size:clamp(1.75rem,3vw,3rem);line-height:1.1}.cas-entry{--cas-index-column: clamp(2.75rem, 5vw, 5.5rem);--cas-column-gap: clamp(1.5rem, 4vw, 4.5rem);padding-block:clamp(3rem,4vw,4rem);border-top:var(--line) solid var(--graphite)}.cas-entry>header{display:grid;grid-template-columns:var(--cas-index-column) minmax(0,1fr);gap:var(--cas-column-gap)}.cas-entry h2{margin:.7rem 0 1rem;font-size:clamp(2.2rem,3.4vw,3.5rem)}.cas-entry header>div>p:last-child{max-width:42rem;color:var(--muted)}.cas-detail{display:grid;grid-template-columns:var(--cas-index-column) minmax(0,2fr) minmax(15rem,.9fr);gap:var(--cas-column-gap);margin-top:clamp(2.75rem,4vw,4rem)}.cas-detail .prose{grid-column:2}.cas-detail aside{grid-column:3}.cas-detail aside{padding-top:.5rem}.cas-detail aside h3{margin:0 0 .8rem;font-family:var(--font-sans);font-size:.82rem;font-weight:600;letter-spacing:.04em}.cas-detail aside h3:not(:first-child){margin-top:2.5rem}.cas-detail aside ul{margin:0;padding:0;list-style:none}.cas-detail aside li{padding-block:.5rem;border-top:var(--line) solid var(--rule);color:var(--muted);font-size:.84rem}.about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(3rem,7vw,8rem);padding-block:clamp(5rem,8vw,8rem)}.about-section{padding-block:clamp(2.5rem,3.75vw,3.75rem);border-top:var(--line) solid var(--graphite)}.about-section h2{max-width:11ch;margin:1rem 0 2rem;font-size:clamp(2rem,3vw,3.25rem)}.about-section>p:last-child{max-width:34rem;color:var(--muted)}.about-interests ul{display:grid;grid-template-columns:repeat(2,1fr);gap:0 2rem;margin:1.5rem 0 2rem;padding:0;list-style:none}.about-interests li{padding-block:.65rem;border-bottom:var(--line) solid var(--rule)}.mark-construction{grid-column:1 / -1;margin:clamp(4rem,5vw,5rem) 0}.mark-construction svg{width:min(100%,56rem);margin-inline:auto}.construction-grid path{fill:none;stroke:var(--rule);stroke-width:1}.construction-symbol{x:93px;y:50px;width:300px;height:300px;color:var(--accent)}.dimension-line{fill:none;stroke:var(--muted);stroke-width:1}.mark-construction figcaption{max-width:56rem;margin:2rem auto 0}.contact-page{display:grid;min-height:calc(100svh - 4.75rem);grid-template-columns:minmax(0,1.15fr) minmax(22rem,.85fr);gap:clamp(4rem,7vw,8rem);align-items:center;padding-block:clamp(5rem,7vw,7rem)}.contact-page h1{max-width:9ch;margin:1.4rem 0 2rem}.contact-page>div>p:last-child{max-width:35rem;color:var(--muted)}.contact-list{container-type:inline-size;margin:0;border-top:var(--line) solid var(--graphite);font-style:normal}.contact-list>div{display:grid;grid-template-columns:clamp(5rem,18%,7.5rem) minmax(0,1fr) max-content;column-gap:clamp(.75rem,2vw,1.5rem);align-items:baseline;padding-block:1.15rem;border-bottom:var(--line) solid var(--rule)}.contact-list dt{color:var(--muted);font-size:.78rem}.contact-list dd{min-width:0;margin:0;overflow-wrap:anywhere}.contact-list>div>dd:last-child{align-self:center}.contact-list small{color:var(--accent);font-size:.7rem;white-space:nowrap}@container (max-width: 27rem){.contact-list>div{grid-template-columns:5.5rem minmax(0,1fr);gap:.35rem 1rem}.contact-list>div>dd:last-child{grid-column:2}}.not-found{min-height:70svh;padding-block:clamp(7rem,15vw,15rem)}.not-found h1{max-width:11ch;margin:1.5rem 0 2rem}.not-found>p:not(.section-index){color:var(--muted)}.site-footer{border-top:var(--line) solid var(--graphite)}.footer-grid{display:grid;grid-template-columns:1fr 1.5fr 1.5fr minmax(13rem,1fr) auto;gap:clamp(1.5rem,4vw,5rem);align-items:start;padding-block:2.75rem 3.5rem;font-size:.82rem}.footer-name{font-weight:600}.footer-note,.footer-year,.site-footer small{color:var(--muted)}.site-footer address{display:flex;flex-direction:column;font-style:normal}.site-footer a{width:fit-content}.site-footer small{margin-top:.4rem}.theme-setting{min-width:0;margin:0;padding:0;border:0}.theme-setting[hidden]{display:none}.theme-setting legend{margin-bottom:.35rem;padding:0;color:var(--muted);font-size:.72rem}.theme-options{position:relative;isolation:isolate;display:grid;width:100%;min-height:2.75rem;grid-template-columns:repeat(3,1fr);padding:3px;border:var(--line) solid var(--muted);background-color:var(--paper)}.theme-options:before{position:absolute;z-index:-1;top:3px;bottom:3px;left:3px;width:calc((100% - 6px) / 3);background:var(--graphite);content:"";transform:translate(0);transition:transform .18s var(--ease-out)}:root[data-theme-preference=light] .theme-options:before{transform:translate(100%)}:root[data-theme-preference=dark] .theme-options:before{transform:translate(200%)}.theme-options input{position:absolute;width:1px;height:1px;opacity:0}.theme-options label{position:relative;display:grid;min-width:0;place-items:center;padding-inline:.35rem;color:var(--muted);cursor:pointer;font-size:.72rem;line-height:1}.theme-options input:checked+label{color:var(--paper)}.theme-options input:focus-visible+label{outline:var(--focus);outline-offset:1px}@media(max-width:62rem){.hero{min-height:auto;grid-template-columns:1fr}.hero-copy{max-width:50rem}.hero-plot{width:min(100%,42rem);margin-left:auto}.section-heading{grid-template-columns:.7fr 2fr}.section-heading>p:last-child{grid-column:2}.ledger-row,.index-entry{grid-template-columns:3rem minmax(0,1fr)}.ledger-row .project-figure,.index-entry .project-figure{grid-column:2;width:min(100%,34rem)}.working-notes{grid-template-columns:1px 1fr}.interest-list{grid-column:2}.case-header{grid-template-columns:1fr 17rem;gap:4rem}.cas-detail{grid-template-columns:var(--cas-index-column) minmax(0,1fr);row-gap:2.5rem}.cas-detail .prose,.cas-detail aside{grid-column:2}.footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:45rem){:root{--page: min( calc(100% - 2.5rem) , 96rem)}body{font-size:1rem}h1{font-size:clamp(3rem,12.75vw,4rem)}.header-inner{min-height:4.6rem}.desktop-nav{display:none}.mobile-nav{display:block}.mobile-nav summary{padding-block:.5rem;cursor:pointer;list-style:none;text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:.3rem}.mobile-nav summary::-webkit-details-marker{display:none}.mobile-nav[open] nav{position:absolute;right:0;left:0;top:calc(100% + 1px);padding:1.2rem 1rem 2rem;border-bottom:var(--line) solid var(--graphite);background:var(--paper)}.mobile-nav ul{display:grid;gap:0}.mobile-nav li{border-bottom:var(--line) solid var(--rule)}.mobile-nav a{display:block;padding-block:.8rem;text-decoration:none}.hero{padding-top:4rem;gap:3rem}.hero h1{max-width:10ch}.hero-plot figcaption,.mark-construction figcaption{grid-template-columns:1fr;gap:.35rem}.selected-work{padding-block:5.5rem}.section-heading,.home-about,.page-lead,.about-grid,.contact-page,.case-header,.case-body,.cas-detail{grid-template-columns:1fr}.page-lead{gap:1.5rem;padding-block:4rem 3.5rem}.section-heading{margin-bottom:3.25rem}.section-heading>p:last-child,.page-lead>:not(.section-index),.page-lead .section-index{grid-column:auto;grid-row:auto}.page-lead>p:last-child{margin-left:0}.ledger-row,.index-entry{grid-template-columns:2rem minmax(0,1fr);gap:1rem}.ledger-row .project-figure,.index-entry .project-figure{grid-column:1 / -1;margin-top:1rem}.working-notes{width:100%;grid-template-columns:1px 1fr;padding:3.25rem 1.25rem}.interest-list li{grid-template-columns:1fr;gap:.5rem}.home-about{gap:1rem;padding-block:5.5rem}.filter-bar{gap:.5rem 1rem}.filter-bar>span{width:100%}.case-header{align-items:start}.case-meta{margin-top:2rem}.case-contents{display:none}.case-study>.project-figure{margin-block:4rem;padding:1rem}.project-pagination{grid-template-columns:1fr}.project-pagination a+a{border-top:var(--line) solid var(--rule);border-left:0;text-align:left}.strand-key{grid-template-columns:1fr}.strand-key span{min-height:4rem}.cas-entry>header{grid-template-columns:2rem minmax(0,1fr);gap:1rem}.cas-detail{grid-template-columns:2rem minmax(0,1fr);gap:1rem;margin-top:2.5rem}.cas-detail .prose,.cas-detail aside{grid-column:2}.about-grid{gap:0}.mark-construction{grid-column:auto}.about-interests ul{grid-template-columns:1fr}.contact-page{min-height:auto;gap:3.5rem;align-items:start;padding-block:4rem 5rem}.contact-list>div{grid-template-columns:5rem minmax(0,1fr);gap:.35rem 1rem}.contact-list>div>dd:last-child{grid-column:2}.footer-grid{grid-template-columns:1fr;gap:.6rem}}@media(max-width:23.5rem){.hero h1,.page-lead h1,.case-header h1{font-size:2.85rem}.brand-lockup{gap:.55rem}.brand-mark{width:1.35rem}}@media(prefers-reduced-motion:reduce){:root[data-theme-ready]{transition:none}html{scroll-behavior:auto}.desktop-nav a:after{transition:none}.plot-curve{animation:none;stroke-dashoffset:0}.theme-options:before{transition:none}}@media print{:root,:root[data-theme]{color-scheme:light;--paper: #fff;--graphite: #000;--graphite-soft: #222;--muted: #444;--rule: #777;--accent: #70271f;--accent-dark: #5d211a}.site-header,.site-footer,.filter-bar,.project-pagination{display:none}body{background:#fff;color:#000}.page-shell{width:100%}}*{scrollbar-width:thin;scrollbar-color:var(--scroll-thumb) var(--scroll-track)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--scroll-track)}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:3px solid var(--scroll-track);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}
