@font-face{font-family:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2) format("woff2"),url(/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff) format("woff");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:"Instrument Serif";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2) format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff) format("woff");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:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-italic-C9HzH3YL.woff2) format("woff2"),url(/assets/instrument-serif-latin-ext-400-italic-D7-lnxEk.woff) format("woff");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:"Instrument Serif";font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2) format("woff2"),url(/assets/instrument-serif-latin-400-italic-u__WvvIK.woff) format("woff");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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-cyrillic-ext-wght-normal-D_UHSL_T.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.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:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff) format("woff");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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff) format("woff");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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff) format("woff");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 Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff) format("woff");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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff) format("woff");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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2) format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2) format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff) format("woff");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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff) format("woff");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 Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2) format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff) format("woff");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}:root{--cream: #fff8ec;--teal: #0f8b8d;--leaf: #4f9f2f;--sage: #9fd18b;--saffron: #f5a623;--terracotta: #e4572e;--coral: #ff8a5b;--rose: #e5408a;--plum: #8e2a6b;--sky: #2fa3d8;--deep: #0b4f5c;--deep-2: #0f5f6d;--forest: #0d3640;--bloom: #a3195b;--ground-sage: #d4f0d0;--ground-blush: #ffe1ea;--ground-sky: #d3ecfa;--ground-saffron: #ffc23d;--paper: var(--cream);--paper-2: #fbecd4;--ink: #1e2b26;--ink-soft: #46524b;--muted: #646d66;--line: rgba(30, 43, 38, .14);--line-strong: rgba(30, 43, 38, .32);--accent: var(--teal);--accent-strong: #0b6f71;--d-paper: var(--paper);--d-ink: var(--ink);--c-contour: #b07a4f;--c-water: #7fd6d8;--c-water-strong: var(--teal);--c-sand: #f6e3b4;--c-plaza: #ffc9a8;--c-bed: #e0a3f0;--c-canopy-0: rgba(124, 195, 90, .62);--c-canopy-1: rgba(64, 160, 80, .55);--c-canopy-2: rgba(255, 193, 69, .62);--c-canopy-3: rgba(244, 143, 177, .72);--c-canopy-4: rgba(255, 138, 91, .62);--c-meadow-0: var(--saffron);--c-meadow-1: var(--rose);--c-meadow-2: var(--leaf);--font-serif: "Instrument Serif", "Times New Roman", serif;--font-sans: "Hanken Grotesk Variable", "Helvetica Neue", Arial, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--step--2: .75rem;--step--1: clamp(.8rem, .78rem + .1vw, .875rem);--step-0: clamp(1rem, .96rem + .2vw, 1.125rem);--step-1: clamp(1.2rem, 1.1rem + .5vw, 1.5rem);--step-2: clamp(1.6rem, 1.3rem + 1.4vw, 2.5rem);--step-3: clamp(2.2rem, 1.6rem + 3vw, 4.25rem);--step-4: clamp(2.8rem, 1.8rem + 5vw, 7rem);--step-5: clamp(3.4rem, 1.6rem + 9vw, 11.5rem);--gutter: clamp(1rem, .5rem + 2.5vw, 3rem);--section-space: clamp(5rem, 3.5rem + 6vw, 9.5rem);--radius: 6px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--header-h: 4.5rem;color-scheme:light}.theme-night{--paper: var(--deep);--paper-2: var(--deep-2);--ink: #f4ecdd;--ink-soft: #d3dcd3;--muted: #a9bdb6;--line: rgba(244, 236, 221, .16);--line-strong: rgba(244, 236, 221, .36);--accent: var(--saffron);--accent-strong: var(--saffron);--d-paper: var(--deep);--d-ink: #f4ecdd;--c-contour: #a9c29a;--c-water: #2e7d7a;--c-water-strong: #8fd3cf;--c-sand: #2a5a57;--c-plaza: #7a4a3a;--c-bed: #8a5d93;color-scheme:dark}.theme-bloom{--paper: var(--bloom);--paper-2: #8c124d;--ink: #fff6ea;--ink-soft: #fde9da;--muted: #f8dccb;--line: rgba(255, 246, 234, .22);--line-strong: rgba(255, 246, 234, .5);--accent: var(--saffron);--accent-strong: var(--saffron);--on-accent: #1e2b26;color-scheme:dark}.theme-forest,.site-footer{--paper: var(--forest);--ink: #f4ecdd;--ink-soft: #d3dcd3;--muted: #b5c4bc;--line: rgba(236, 232, 220, .2);--line-strong: rgba(236, 232, 220, .4);--accent: var(--saffron);--accent-strong: var(--saffron);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem);overflow-x:clip}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--step-0);line-height:1.6;font-feature-settings:"ss01","kern";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip}img,svg,canvas{display:block;max-width:100%}h1,h2,h3{margin:0;font-family:var(--font-serif);font-weight:400;line-height:1.02;letter-spacing:-.01em;text-wrap:balance}p{margin:0 0 1em;text-wrap:pretty}a{color:inherit}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}ul,ol{list-style:none;margin:0;padding:0}::selection{background:var(--accent);color:var(--paper)}:focus-visible{outline:2px solid var(--accent-strong, var(--accent));outline-offset:4px;border-radius:2px}main:focus,[tabindex="-1"]:focus{outline:none}.mono{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.04em;text-transform:uppercase}.unit{text-transform:none}.muted{color:var(--muted)}.small{font-size:.75rem}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.split-line{padding-bottom:.08em;margin-bottom:-.08em}.link-underline{position:relative;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100% / 100% 1px no-repeat;transition:background-size .5s var(--ease-out);padding-bottom:1px}.link-underline:hover{background-size:0 1px;background-position:100% 100%}.drawing{width:100%;height:100%;overflow:hidden}.drawing-paper{fill:var(--d-paper)}.drawing .contour{fill:none;stroke:var(--c-contour);stroke-opacity:.5;stroke-width:1.1}.drawing .contour-major{fill:none;stroke:var(--c-contour);stroke-opacity:.85;stroke-width:2}.drawing .ink{fill:none;stroke:var(--d-ink);stroke-width:2}.drawing .ink-thin{fill:none;stroke:var(--d-ink);stroke-width:1.1}.drawing .ink-bold{fill:none;stroke:var(--d-ink);stroke-width:3.5}.drawing .fill-ink{fill:var(--d-ink)}.drawing .fill-paper{fill:var(--d-paper)}.drawing .fill-plaza{fill:var(--c-plaza)}.drawing .fill-bed{fill:var(--c-bed);fill-opacity:.5}.drawing .fill-water{fill:var(--c-water);fill-opacity:.85}.drawing .fill-water-strong{fill:var(--c-water-strong)}.drawing .water-line{fill:none;stroke:var(--c-water-strong);stroke-width:1.4}.drawing .water-level{fill:none;stroke:var(--c-water-strong);stroke-width:3}.drawing .storage{fill:none;stroke:var(--c-water-strong);stroke-width:16;stroke-opacity:.5}.drawing .flow{fill:none;stroke:var(--c-water-strong);stroke-width:2}.drawing .route-edge{fill:none;stroke:var(--d-ink);stroke-width:24;stroke-linecap:round;stroke-opacity:.6}.drawing .route-fill{fill:none;stroke:var(--c-sand);stroke-width:20;stroke-linecap:round}.drawing .joints{fill:none;stroke:var(--d-ink);stroke-opacity:.22;stroke-width:.8}.drawing .hatch{stroke:var(--plum);stroke-opacity:.45;stroke-width:1.2}.theme-night .drawing .hatch{stroke:#f4ecdd}.drawing .fill-stipple{fill:var(--d-ink);fill-opacity:.8}.drawing .meadow-0{fill:var(--c-meadow-0)}.drawing .meadow-1{fill:var(--c-meadow-1)}.drawing .meadow-2{fill:var(--c-meadow-2)}.drawing .fill-canopy{fill:var(--c-canopy-0)}.drawing .canopy-1{fill:var(--c-canopy-1)}.drawing .canopy-2{fill:var(--c-canopy-2)}.drawing .canopy-3{fill:var(--c-canopy-3)}.drawing .canopy-4{fill:var(--c-canopy-4)}.drawing .root{fill:none;stroke:var(--d-ink);stroke-opacity:.3;stroke-dasharray:4 6}.drawing .mono-label{font-family:var(--font-mono);font-size:22px;letter-spacing:.12em;fill:var(--d-ink);paint-order:stroke;stroke:var(--d-paper);stroke-width:.35em;stroke-linejoin:round}.drawing .layer-annotation .mono-label{stroke:none}.drawing .title-plate{fill:var(--d-paper);stroke:var(--d-ink);stroke-opacity:.55}.drawing.is-stand-in{filter:saturate(.5)}.drawing .fill-drift{fill-opacity:.62}.drawing .drift-0{fill:#c77dff}.drawing .drift-1{fill:#ff7eb6}.drawing .drift-2{fill:#ffc23d}.drawing .drift-3{fill:#7ed957}.drawing .drift-4{fill:#ff8a5b}.drawing .drift-5{fill:#4cc9c0}.drawing .plant-mark{stroke-opacity:.55}.drawing .canopy-outline{fill:none;stroke:var(--leaf);stroke-width:2;stroke-dasharray:10 8}html:not(.reduced-motion) .drawing[data-draw] .canopy-outline{stroke-dasharray:1}.drawing .heat-0{fill:#cfe3c6}.drawing .heat-1{fill:#a9c29a}.drawing .heat-2{fill:#efd27a}.drawing .heat-3{fill:#efa36f}.drawing .heat-4{fill:#d4683f}.drawing .heat-5{fill:#8e3b46}.drawing .corridor{fill:none;stroke:var(--teal);stroke-width:14;stroke-linecap:round;stroke-opacity:.85}.drawing .patch-line{fill:none;stroke:var(--leaf);stroke-width:3}.drawing .fill-soil{fill:#b98a63}.drawing .fill-soil-dark{fill:#9c6f4d}.drawing .fill-lawn{fill:#c9ecb0}.drawing .fill-sand{fill:var(--c-sand)}.drawing .fill-plaza-dark{fill:#d99c76}.drawing .tree-shadow{fill:var(--d-ink);fill-opacity:.12}.drawing .canopy-solid{fill-opacity:1}.drawing-sketch{--d-paper: #f9ecdc}.drawing-model{--d-paper: #e8d4ad}.theme-night .drawing-sketch,.theme-night .drawing-model{--d-paper: var(--deep-2)}html:not(.reduced-motion) .drawing[data-draw] .ln{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.4s var(--ease-in-out) calc(var(--layer, 0) * .15s)}html:not(.reduced-motion) .drawing[data-draw].is-drawn .ln{stroke-dashoffset:0}html:not(.reduced-motion) .drawing[data-draw] :is(.fill-water,.fill-canopy,.fill-stipple,.route-fill,.fill-ink,.fill-drift,.fill-plaza,.fill-bed,.heat,.fill-soil,.fill-soil-dark,.fill-lawn,.fill-sand,.fill-plaza-dark,.tree-shadow,[fill^=url],text){opacity:.35;transition:opacity .9s ease calc(var(--layer, 0) * .15s + .3s)}html:not(.reduced-motion) .drawing[data-draw].is-drawn :is(.fill-water,.fill-canopy,.fill-stipple,.route-fill,.fill-ink,.fill-drift,.fill-plaza,.fill-bed,.heat,.fill-soil,.fill-soil-dark,.fill-lawn,.fill-sand,.fill-plaza-dark,.tree-shadow,[fill^=url],text){opacity:1}::view-transition-old(root),::view-transition-new(root){animation-duration:.7s;animation-timing-function:var(--ease-in-out)}::view-transition-group(*){animation-duration:.8s;animation-timing-function:var(--ease-in-out)}html[data-transition=lang] ::view-transition-old(root){animation:.45s ease both lang-out}html[data-transition=lang] ::view-transition-new(root){animation:.6s var(--ease-out) both lang-in}@keyframes lang-out{to{opacity:0;filter:blur(6px)}}@keyframes lang-in{0%{opacity:0;filter:blur(6px);transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}html.reduced-motion::view-transition-group(*),html.reduced-motion::view-transition-old(*),html.reduced-motion::view-transition-new(*){animation:none!important}.reduced-motion *,.reduced-motion *:before,.reduced-motion *:after{animation-play-state:paused!important}.skip-link{position:fixed;left:var(--gutter);top:-4rem;z-index:1000;padding:.6rem 1rem;background:var(--ink);color:var(--paper);text-decoration:none}.skip-link:focus{top:.75rem}.site-header{position:fixed;inset:0 0 auto;z-index:500;display:flex;align-items:center;justify-content:space-between;gap:2rem;height:var(--header-h);padding:0 var(--gutter);transition:transform .6s var(--ease-out),background-color .4s ease,border-color .4s ease;border-bottom:1px solid transparent}.site-header.is-solid{background:color-mix(in srgb,var(--cream) 96%,transparent);border-color:var(--line)}.site-header.is-hidden{transform:translateY(-100%)}.site-header:focus-within{transform:none}.brand{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none}.brand-mark{display:grid;place-items:center;width:2.4rem;height:2.4rem;border:1px solid var(--ink);border-radius:50%;font-family:var(--font-serif);font-size:1.05rem;font-style:italic;transition:background .4s ease,color .4s ease}@media(hover:hover){.brand:hover .brand-mark{background:var(--ink);color:var(--paper)}}.brand-name{font-family:var(--font-serif);font-size:1.35rem;letter-spacing:.005em}.main-nav{display:flex;align-items:center;gap:clamp(1rem,3vw,3rem)}.main-nav ul{display:flex;gap:clamp(1rem,2.4vw,2.4rem)}.nav-link{display:inline-flex;align-items:baseline;gap:.4rem;text-decoration:none;font-size:.95rem}.nav-label{position:relative;display:inline-block;overflow:hidden;line-height:1.5;padding-top:.1em}.nav-label:after{content:attr(data-text);content:attr(data-text) / "";position:absolute;left:0;top:calc(100% + .3em);font-style:italic;font-family:var(--font-serif);font-size:1.1em}.nav-label,.nav-label:after{transition:transform .5s var(--ease-out)}@media(hover:hover){.nav-link:hover .nav-label{transform:translateY(calc(-100% - .3em))}.nav-link:hover .nav-label:after{transform:translateY(0)}}.nav-extra{display:none}.nav-tools{display:flex;align-items:center;gap:.5rem}.tool-button{display:inline-flex;align-items:center;gap:.25rem;min-height:2.4rem;padding:0 .85rem;border:1px solid var(--line-strong);border-radius:999px;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.06em;transition:background .3s ease,color .3s ease,border-color .3s ease}.tool-button span:not(.is-active):not(.motion-icon){color:var(--muted)}@media(hover:hover){.tool-button:hover{border-color:var(--ink)}}.motion-toggle{width:2.4rem;padding:0;justify-content:center}.motion-icon{position:relative;width:10px;height:11px;border-left:3px solid currentColor;border-right:3px solid currentColor}.motion-icon.is-paused{border:0;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:10px solid currentColor}.menu-button{display:none;width:2.75rem;height:2.75rem;border:1px solid var(--line-strong);border-radius:50%;position:relative;z-index:2}.menu-lines,.menu-lines:before{position:absolute;left:50%;width:1.1rem;height:1px;background:currentColor;transform:translate(-50%);transition:transform .5s var(--ease-out),top .5s var(--ease-out)}.menu-lines{top:calc(50% - 3px)}.menu-lines:before{content:"";top:6px}.is-open .menu-lines{top:50%;transform:translate(-50%) rotate(45deg)}.is-open .menu-lines:before{top:0;transform:translate(-50%) rotate(-90deg)}@media(max-width:860px){.menu-button{display:block}.main-nav{position:fixed;top:0;right:0;bottom:0;left:0;flex-direction:column;justify-content:safe center;align-items:flex-start;gap:3rem;padding:calc(var(--header-h) + 2rem) var(--gutter) 3rem;overflow-y:auto;overscroll-behavior:contain;background:var(--paper);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .8s var(--ease-in-out),visibility 0s linear .8s}.is-open .main-nav{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .8s var(--ease-in-out)}.main-nav ul{flex-direction:column;gap:.75rem}.nav-extra{display:flex;flex-direction:column;gap:.5rem;padding-top:1.5rem;border-top:1px solid var(--line)}.nav-link{font-family:var(--font-serif);font-size:var(--step-3)}.brand{position:relative;z-index:2}body.menu-open{overflow:hidden}}@media(max-width:860px)and (max-height:500px){.main-nav{gap:1.5rem}.nav-link{font-size:var(--step-2)}}.button-row{display:flex;flex-wrap:wrap;gap:.75rem}.button{position:relative;display:inline-flex;align-items:center;gap:.75rem;min-height:3.25rem;padding:0 1.6rem;border-radius:999px;font-size:.95rem;font-weight:500;text-decoration:none;overflow:hidden;isolation:isolate;transition:color .5s var(--ease-out),border-color .4s ease}.button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .6s var(--ease-out)}.button:focus-visible:before{transform:translateY(0)}.button-primary{background:var(--ink);color:var(--paper)}.button-primary:before{background:var(--accent-strong)}.button-primary:focus-visible{color:var(--on-accent, var(--paper))}.button-ghost{border:1px solid var(--ink)}.button-ghost:before{background:var(--ink)}.button-ghost:focus-visible{color:var(--paper)}.button[disabled],.button[aria-disabled=true]{opacity:.6;cursor:progress}.button-arrow{display:inline-block;transition:transform .5s var(--ease-out)}@media(hover:hover){.button:hover:before{transform:translateY(0)}.button-primary:hover{color:var(--on-accent, var(--paper))}.button-ghost:hover{color:var(--paper)}.button:hover .button-arrow{transform:translate(4px)}}.chips{display:flex;flex-wrap:wrap;gap:.5rem}@media(max-width:760px){.chips-scroll{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(var(--gutter) * -1);padding:.25rem var(--gutter);scroll-padding-inline:var(--gutter);scroll-snap-type:x proximity;scrollbar-width:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 var(--gutter),#000 calc(100% - 3rem),transparent);mask-image:linear-gradient(to right,transparent,#000 var(--gutter),#000 calc(100% - 3rem),transparent)}.chips-scroll::-webkit-scrollbar{display:none}.chips-scroll .chip{flex:none;scroll-snap-align:start}}.chip{display:inline-flex;align-items:center;gap:.45rem;min-height:2.25rem;padding:0 1rem;border:1px solid var(--line-strong);border-radius:999px;font-size:var(--step--1);transition:background .3s ease,color .3s ease,border-color .3s ease}@media(hover:hover){.chip:hover{border-color:var(--ink)}}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.theme-dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--leaf)}.theme-dot{background:var(--theme, var(--teal))}.chip-theme[aria-pressed=true] .theme-dot{box-shadow:0 0 0 2px var(--paper)}.tags{display:flex;flex-wrap:wrap;gap:.4rem}.tag{padding:.25rem .6rem;border:1px solid var(--line-strong);border-radius:999px;font-size:var(--step--2)}.badge{position:absolute;top:1rem;left:1rem;padding:.35rem .75rem;border-radius:999px;background:var(--saffron);color:#1e2b26;font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.04em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:.75rem;margin:0 0 1.75rem;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.eyebrow-index{display:inline-grid;place-items:center;min-width:2.2rem;height:1.5rem;border-radius:999px;background:var(--index-bg, var(--accent-strong));color:var(--index-ink, var(--on-accent, var(--paper)));font-size:var(--step--2);transition:background .6s ease}.section{position:relative;padding:var(--section-space) var(--gutter)}.section-head{max-width:62rem;margin-bottom:clamp(2.5rem,5vw,5rem)}.section-head-split{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);align-items:end;gap:2rem 4rem;max-width:none}.section-title{font-size:var(--step-4);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}.section-lead{font-size:var(--step-1);line-height:1.45;color:var(--ink-soft);max-width:34rem}@media(max-width:760px){.section-head-split{grid-template-columns:1fr}}.marquee{overflow:hidden;border-block:1px solid var(--line);padding:1.4rem 0}.marquee-track{display:flex;width:max-content;animation:marquee 48s linear infinite}.marquee.is-reverse .marquee-track{animation-direction:reverse}@media(hover:hover){.marquee:hover .marquee-track{animation-play-state:paused}}.marquee-group{display:flex}.marquee-item{display:inline-flex;align-items:center;gap:2.5rem;padding-right:2.5rem;font-family:var(--font-serif);font-size:var(--step-3);font-style:italic;line-height:1;white-space:nowrap}.marquee-leaf{width:1.6rem;fill:none;stroke:currentColor;stroke-width:1.4}.marquee-item:nth-child(4n+1) .marquee-leaf{color:var(--teal)}.marquee-item:nth-child(4n+2) .marquee-leaf{color:var(--terracotta)}.marquee-item:nth-child(4n+3) .marquee-leaf{color:var(--leaf)}.marquee-item:nth-child(4n) .marquee-leaf{color:var(--plum)}@keyframes marquee{to{transform:translate(-50%)}}.cursor-ring{position:fixed;left:0;top:0;z-index:8000;display:grid;place-items:center;width:2.25rem;height:2.25rem;margin:-1.125rem 0 0 -1.125rem;border:1px solid var(--ink);border-radius:50%;pointer-events:none;opacity:0;border-color:var(--ink);box-shadow:0 0 0 1px #f7f1e6b3;will-change:transform;transition:width .45s var(--ease-out),height .45s var(--ease-out),margin .45s var(--ease-out),opacity .3s ease,background .3s ease}.cursor-ring.is-visible{opacity:1}.cursor-ring.is-hover{width:3.5rem;height:3.5rem;margin:-1.75rem 0 0 -1.75rem}.cursor-ring.has-label{width:6.5rem;height:6.5rem;margin:.9rem 0 0 .9rem;background:var(--ink)}.cursor-label{font-family:var(--font-mono);font-size:var(--step--2);letter-spacing:.08em;text-transform:uppercase;color:var(--cream);text-align:center;line-height:1.3;padding-inline:.9rem;opacity:0;transition:opacity .3s ease}.has-label .cursor-label{opacity:1}.preloader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9500;display:grid;place-items:center;background:var(--deep);color:#f4ecdd;clip-path:inset(0 0 0 0)}.preloader-ring{width:min(42vw,15rem)}.preloader-ring path{fill:none;stroke:#ece8dc;stroke-width:.8;stroke-dasharray:1;stroke-dashoffset:1;animation:preloader-draw 1.3s var(--ease-in-out) forwards;animation-delay:calc(var(--i) * .12s)}@keyframes preloader-draw{to{stroke-dashoffset:0}}.preloader-count{position:absolute;right:var(--gutter);bottom:var(--gutter);font-size:var(--step--1)}.site-footer{padding:clamp(4rem,8vw,8rem) var(--gutter) 2rem;background:var(--paper);color:var(--ink);overflow:hidden}.footer-name{font-family:var(--font-serif);font-size:12vw;width:max-content;line-height:.85;letter-spacing:-.03em;white-space:nowrap;margin-bottom:clamp(2rem,5vw,4rem)}.footer-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;padding-top:2rem;border-top:1px solid var(--line)}.footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem}.footer-grid p{margin:0}.footer-grid>div{min-width:0}.footer-grid>div>*{max-width:100%;overflow-wrap:anywhere}.footer-end{align-items:flex-end!important;text-align:right}.to-top{font-family:var(--font-mono);font-size:var(--step--1);text-transform:uppercase;letter-spacing:.06em;padding:.75rem 1.1rem;border:1px solid var(--line-strong);border-radius:999px}@media(max-width:760px){.footer-grid{grid-template-columns:1fr 1fr}.footer-end{grid-column:1 / -1;align-items:flex-start!important;text-align:left}}@media(max-width:360px){.footer-grid{grid-template-columns:1fr}}.load-error{padding:30vh var(--gutter);text-align:center}.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header-h) + 2rem) var(--gutter) clamp(2.5rem,6vw,5rem);overflow:hidden}.hero-canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0}.hero-canvas-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 50% at 22% 78%,color-mix(in srgb,var(--paper) 85%,transparent) 10%,transparent 70%),linear-gradient(to top,var(--paper),transparent 30%);pointer-events:none}.hero-blooms{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.hero-blooms span{position:absolute;width:46vmax;height:46vmax;border-radius:50%;opacity:.32;animation:bloom-drift 26s ease-in-out infinite alternate;will-change:transform}.hero-blooms span:nth-child(1){top:-18vmax;right:-8vmax;background:radial-gradient(circle,var(--rose) 0%,transparent 65%)}.hero-blooms span:nth-child(2){top:10vmax;right:22vmax;background:radial-gradient(circle,var(--saffron) 0%,transparent 65%);animation-duration:32s;animation-delay:-8s}.hero-blooms span:nth-child(3){bottom:-24vmax;right:-14vmax;background:radial-gradient(circle,var(--teal) 0%,transparent 65%);animation-duration:38s;animation-delay:-15s}.hero.is-offscreen .hero-blooms span{animation-play-state:paused}@keyframes bloom-drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-6vmax,4vmax,0) scale(1.12)}}.accent-text{font-style:italic;color:var(--rose)}.topo-canvas,.topo-canvas canvas{width:100%;height:100%}.hero-inner{position:relative;display:grid;gap:clamp(1.5rem,3vw,2.5rem)}.hero-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem;color:var(--ink-soft)}.hero-meta>span{padding:.15em .45em;border-radius:3px;background:color-mix(in srgb,var(--paper) 86%,transparent)}.hero-meta>span{margin-left:-.45em}.hero-name{color:var(--ink);font-weight:500}.hero-elevation{color:var(--muted);font-variant-numeric:tabular-nums}.hero-title{max-width:15ch;font-size:var(--step-5);line-height:.92;letter-spacing:-.025em}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 3rem}.availability{display:flex;align-items:center;gap:.85rem;margin:0;max-width:30rem;color:var(--ink-soft)}.availability .mono{margin-right:.4rem;color:var(--ink)}.availability-terms{display:block;margin-top:.3rem;color:var(--ink);font-weight:500}.pulse{position:relative;flex:none;width:.6rem;height:.6rem;border-radius:50%;background:#5f9a4e}.pulse:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:inherit;animation:pulse 2.2s ease-out infinite}@keyframes pulse{to{transform:scale(3);opacity:0}}.scroll-cue{position:absolute;right:var(--gutter);top:50%;display:flex;flex-direction:column;align-items:center;gap:1rem;writing-mode:vertical-rl;font-size:var(--step--2);color:var(--muted)}.scroll-cue-line{width:1px;height:4.5rem;background:var(--line-strong);position:relative;overflow:hidden}.scroll-cue-line:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ink);animation:cue 2.4s var(--ease-in-out) infinite}@keyframes cue{0%{transform:translateY(-100%)}60%,to{transform:translateY(100%)}}@media(max-width:760px){.scroll-cue{display:none}}.hero-marquee{margin-top:0;background:var(--ground-saffron);border:0;color:#1e2b26}.hero-marquee .marquee-item:nth-child(n) .marquee-leaf{color:#1e2b26}.range{--accent: var(--leaf);--accent-strong: #33691c}.about{--accent: var(--rose);--accent-strong: #b5246b}.home>.section+.section:not(.theme-night,.theme-bloom){border-top:1px solid var(--line)}.statement{max-width:34ch;font-size:clamp(1.3rem,1.1rem + .8vw,1.85rem);line-height:1.35;letter-spacing:-.01em;color:var(--ink);margin:0 0 clamp(3rem,7vw,7rem)}.about-grid.no-portrait .statement{margin-bottom:0}.about-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,7rem);align-items:start}.portrait{margin:0;aspect-ratio:4 / 5;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}.portrait-inner,.portrait-inner>*{width:100%;height:100%;object-fit:cover}.about-text{font-size:var(--step-1);line-height:1.55;color:var(--ink-soft)}.about-text p:first-of-type:first-letter,.about-text p:first-of-type>:first-child:first-letter{float:left;font-family:var(--font-serif);font-size:4.6em;line-height:.82;padding:.06em .1em 0 0;color:var(--accent)}@supports (initial-letter: 3) or (-webkit-initial-letter: 3){.about-text p:first-of-type:first-letter,.about-text p:first-of-type>:first-child:first-letter{float:none;font-size:inherit;line-height:inherit;padding:0 .12em 0 0;-webkit-initial-letter:3;initial-letter:3}}.languages{display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin:2.5rem 0 0;padding-top:1.5rem;border-top:1px solid var(--line);font-size:var(--step-0)}.languages dt{width:100%;color:var(--muted)}.languages dd{margin:0}.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(4rem,8vw,8rem);border-top:1px solid var(--line)}.fact{display:flex;flex-direction:column;gap:.5rem;padding:1.75rem 1.5rem 0 0}.fact+.fact{padding-left:1.5rem;border-left:1px solid var(--line)}.fact-value{font-family:var(--font-serif);font-size:var(--step-4);line-height:1;font-variant-numeric:tabular-nums;color:var(--terracotta)}.fact:nth-child(4n+2) .fact-value{color:var(--teal)}.fact:nth-child(4n+3) .fact-value{color:var(--leaf)}.fact:nth-child(4n) .fact-value{color:var(--plum)}.about .fact-value{color:#b23c1a}.about .fact:nth-child(4n+2) .fact-value{color:#0b6f71}.about .fact:nth-child(4n+3) .fact-value{color:#2f6e1b}.fact-label{color:var(--muted);-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}@media(max-width:860px){.about-grid{grid-template-columns:1fr}.portrait{max-width:26rem}.facts{grid-template-columns:repeat(2,minmax(0,1fr))}.fact:nth-child(3){border-left:0;padding-left:0}}@media(max-width:420px){.facts{grid-template-columns:1fr}.fact+.fact{padding-left:0;border-left:0;border-top:1px solid var(--line)}.fact{padding-bottom:1.75rem}}.work-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"types view" "themes themes";align-items:center;gap:1rem 2rem;padding-bottom:1.5rem;margin-bottom:clamp(2rem,4vw,3.5rem);border-bottom:1px solid var(--line)}.chips-types{grid-area:types}.chips-themes{grid-area:themes}.view-toggle{grid-area:view}.work-controls>*{min-width:0}.view-toggle{display:flex;align-items:center;gap:.5rem}.view-toggle .mono{margin-right:.75rem}@media(max-width:1100px){.work-controls{grid-template-columns:minmax(0,1fr);grid-template-areas:"types" "themes" "view"}}.project-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(3rem,6vw,6rem) var(--gutter)}.project-card.span-7{grid-column:span 7}.project-card.span-5{grid-column:span 5}.project-card.span-12{grid-column:1 / -1}.project-grid{align-items:start}.card-media,.project-cover,.gallery-frame,.sketch-frame,.next-media,.index-preview{--d-paper: #eef3f3;box-shadow:inset 0 0 0 1px var(--line)}.project-card:nth-child(4n+2) .card-media,.gallery-item:nth-child(4n+2) .gallery-frame,.sketch-item:nth-child(4n+2) .sketch-frame{--d-paper: #f1f4ea}.project-card:nth-child(4n+3) .card-media,.gallery-item:nth-child(4n+3) .gallery-frame,.sketch-item:nth-child(4n+3) .sketch-frame{--d-paper: #fbefe7}.project-card:nth-child(4n) .card-media,.gallery-item:nth-child(4n) .gallery-frame,.sketch-item:nth-child(4n) .sketch-frame{--d-paper: #f7f0dc}.card-link{position:relative}.card-link{display:block;text-decoration:none}.card-media{position:relative;aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}.project-card.span-5 .card-media{aspect-ratio:10 / 9}.project-card.is-wide .card-media{aspect-ratio:21 / 9}.card-media-inner{width:100%;height:100%;transition:transform 1.2s var(--ease-out)}.card-media-inner>*{width:100%;height:100%;object-fit:cover}.card-link:focus-visible .card-media-inner{transform:scale(1.045)}.card-text{display:grid;grid-template-columns:auto 1fr;column-gap:1rem;padding-top:1.25rem}.card-index{grid-row:span 4;padding-top:.6rem;color:var(--muted)}.card-title{font-size:var(--step-2)}.card-link:focus-visible .card-title{font-style:italic;color:var(--accent)}@media(hover:hover){.card-link:hover .card-media-inner{transform:scale(1.045)}.card-link:hover .card-title{font-style:italic;color:var(--accent)}}.card-subtitle{margin:.35rem 0 .75rem;color:var(--ink-soft)}.card-role{margin:-.4rem 0 .75rem;font-size:var(--step--1);font-weight:500;color:var(--ink)}.card-meta{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:0;color:var(--muted);font-size:var(--step--2)}@media(max-width:760px){.project-card.project-card{grid-column:1 / -1;margin-top:0}.project-card.project-card .card-media{aspect-ratio:16 / 10}}.card-themes{display:inline-flex;gap:.3rem;align-items:center}.card-themes .theme-dot{width:.5rem;height:.5rem}.empty{padding:4rem 0;color:var(--muted)}.project-index ol{border-top:1px solid var(--line)}.index-row{display:grid;grid-template-columns:5rem minmax(0,1fr) 12rem 14rem 2rem;align-items:baseline;gap:1rem;padding:1.6rem 0;border-bottom:1px solid var(--line);text-decoration:none;transition:color .3s ease}.index-row>:not(.index-arrow){transition:transform .6s var(--ease-out)}.index-title{font-family:var(--font-serif);font-size:var(--step-2);line-height:1.1}.index-arrow{justify-self:end;opacity:0;transform:translate(-12px);transition:opacity .4s ease,transform .5s var(--ease-out)}.index-row:focus-visible>:not(.index-arrow){transform:translate(1.25rem)}.index-row:focus-visible .index-arrow{opacity:1;transform:none}@media(hover:hover){.index-row:hover>:not(.index-arrow){transform:translate(1.25rem)}.index-row:hover .index-arrow{opacity:1;transform:none}.project-index ol:hover .index-row:not(:hover){color:var(--muted)}}.index-preview{position:fixed;left:0;top:0;z-index:50;width:clamp(14rem,22vw,22rem);aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius);pointer-events:none;opacity:0;transform:scale(.85);transition:opacity .35s ease,scale .5s var(--ease-out);scale:.85;box-shadow:0 30px 60px -20px #1f2a2459}.index-preview.is-active{opacity:1;scale:1}.index-preview>*{width:100%;height:100%;object-fit:cover}@media(max-width:860px),(pointer:coarse){.index-row{grid-template-columns:3.5rem minmax(0,1fr)}.index-type,.index-location,.index-arrow,.index-preview{display:none}}.range-layout{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,6vw,7rem);align-items:start}.range-visual{position:relative;height:100%}.range-visual-sticky{position:sticky;top:calc(var(--header-h) + 2rem);aspect-ratio:4 / 5;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}.range-drawing{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transform:scale(1.06);transition:opacity .9s ease,transform 1.4s var(--ease-out)}.range-drawing.is-active{opacity:1;transform:none}.range-counter{position:absolute;left:1rem;top:1rem;padding:.3rem .7rem;border-radius:999px;background:var(--paper);font-size:var(--step--2)}.range-list{border-top:1px solid var(--line)}.range-item{border-bottom:1px solid var(--line)}.range-item h3{font-size:inherit;font-family:inherit}.range-trigger{display:grid;grid-template-columns:3rem minmax(0,1fr) 1.5rem;align-items:baseline;gap:1rem;width:100%;padding:1.6rem 0;text-align:left}.range-number{color:var(--muted)}.range-title{font-family:var(--font-serif);font-size:var(--step-3);line-height:1;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;transition:transform .6s var(--ease-out),color .3s}.range-trigger:focus-visible .range-title{transform:translate(.5rem);font-style:italic}@media(hover:hover){.range-trigger:hover .range-title{transform:translate(.5rem);font-style:italic}}.range-item.is-open .range-title{color:var(--accent-strong);font-style:italic}.range-plus{position:relative;align-self:center;width:1.1rem;height:1.1rem}.range-plus:before,.range-plus:after{content:"";position:absolute;left:0;top:50%;width:100%;height:1px;background:currentColor;transition:transform .5s var(--ease-out)}.range-plus:after{transform:rotate(90deg)}.is-open .range-plus:after{transform:rotate(0)}.range-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .7s var(--ease-out)}.is-open .range-panel{grid-template-rows:1fr}.range-panel-inner{min-height:0;overflow:hidden;padding-left:4rem}.range-panel-inner>:first-child{margin-top:0}.range-panel-inner>:last-child{margin-bottom:1.75rem}.range-panel-inner p{max-width:34rem;color:var(--ink-soft)}.range-panel-inner .tags{margin-bottom:1.25rem}.range-projects{display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem}@media(max-width:860px){.range-layout{grid-template-columns:1fr}.range-visual{display:none}.range-panel-inner{padding-left:0}}.approach{background:var(--paper);color:var(--ink)}.approach-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(2rem,5vw,6rem)}.approach-sticky{position:sticky;top:calc(var(--header-h) + 1.5rem);align-self:start}.approach-drawing{aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line)}.approach-drawing .layer-terrain,.approach-drawing .layer-annotation{--draw: var(--d0, 1)}.approach-drawing .layer-water{--draw: var(--d1, 1)}.approach-drawing .layer-paths{--draw: var(--d2, 1)}.approach-drawing .layer-planting{--draw: var(--d3, 1)}.approach-drawing .layer-trees{--draw: var(--d4, 1)}.approach-drawing .layer .ln{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--draw))}.approach-drawing .layer :is(.fill-water,.fill-canopy,.fill-stipple,.route-fill,.fill-ink,.fill-plaza,.fill-bed,[fill^=url]){opacity:calc(var(--draw) * 1.6 - .6)}.approach-progress{display:flex;gap:.5rem;margin-top:1rem}.approach-progress li{flex:1;padding-top:.6rem;border-top:2px solid var(--line);color:var(--muted);transition:border-color .6s ease,color .6s ease}.approach-progress li.is-done{border-color:var(--accent);color:var(--ink)}.approach-steps{padding-block:10vh 25vh}.approach-step{min-height:62vh;padding-top:1.5rem;color:var(--muted);transition:color .6s ease}.approach-step.is-active,.reduced-motion .approach-step{color:var(--ink)}.approach-number{display:block;margin-bottom:1rem;color:var(--saffron)}.approach-step h3{font-size:var(--step-3);margin-bottom:1rem}.approach-step p{font-size:var(--step-1);line-height:1.5;color:var(--muted);transition:color .6s ease}.approach-step.is-active p,.reduced-motion .approach-step p{color:var(--ink-soft)}.reduced-motion .approach-step{min-height:0;margin-bottom:3rem}.reduced-motion .approach-steps{padding-block:0}@media(max-width:860px){.approach-layout{grid-template-columns:1fr}.approach-sticky{top:0;z-index:1;margin-inline:calc(var(--gutter) * -1);padding:calc(var(--header-h) + .25rem) var(--gutter) .75rem;background:var(--paper)}.approach-drawing{height:30svh;aspect-ratio:auto}.approach-sticky:after{content:"";position:absolute;left:0;right:0;top:100%;height:2.5rem;background:linear-gradient(var(--paper),transparent);pointer-events:none}.approach-steps{padding-block:2.5rem 12vh}.approach-step{min-height:30vh}}.skill-groups{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2.5rem var(--gutter)}.skill-group h3{padding-bottom:.9rem;margin-bottom:.5rem;border-bottom:3px solid var(--group-colour, var(--teal));color:var(--ink)}.skill-group:nth-child(4n+1){--group-colour: var(--teal)}.skill-group:nth-child(4n+2){--group-colour: var(--leaf)}.skill-group:nth-child(4n+3){--group-colour: var(--terracotta)}.skill-group:nth-child(4n){--group-colour: var(--plum)}.skill{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.skill-rating{display:inline-flex;justify-content:flex-end;width:51px}.skill-level{display:inline-flex;gap:4px}.skill-level span{width:7px;height:7px;border-radius:50%;border:1px solid var(--ink)}.skill-level span{border-color:var(--group-colour)}.skill-level span.is-filled{background:var(--group-colour)}@media(max-width:1000px){.skill-groups{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.skill-groups{grid-template-columns:1fr}}.cv{overflow:hidden}.cv-pin{padding-bottom:2rem}.cv-hint{margin-top:1.5rem}.cv-viewport{position:relative}@media(min-width:900px){.cv-viewport{overflow-x:clip}.cv-viewport:after{content:"";position:absolute;top:0;right:0;bottom:0;width:10vw;background:linear-gradient(to right,transparent,var(--paper));pointer-events:none}html:not(.reduced-motion) .cv-pin{display:flex;flex-direction:column;justify-content:center;min-height:100svh;padding-block:calc(var(--header-h) + 1rem) 2rem}html:not(.reduced-motion) .cv{padding-block:0}}.cv-line{position:absolute;left:0;right:0;top:.45rem;height:1px;background:var(--line-strong)}.cv-line-progress{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--accent);transform-origin:left;transform:scaleX(0)}.cv-track{display:flex;gap:clamp(2rem,4vw,4rem);width:max-content;padding-right:max(var(--gutter),10vw)}.cv-entry{position:relative;width:clamp(16rem,24vw,22rem);padding-top:2.5rem}.cv-dot{position:absolute;top:0;left:0;width:.9rem;height:.9rem;border-radius:50%;background:var(--paper);border:1px solid var(--ink)}.cv-education .cv-dot{background:var(--teal);border-color:var(--teal)}.cv-work .cv-dot{background:var(--saffron);border-color:var(--saffron)}.cv-exchange .cv-dot{background:var(--rose);border-color:var(--rose)}.cv-competition .cv-dot{background:var(--terracotta);border-color:var(--terracotta)}.cv-volunteering .cv-dot{background:var(--leaf);border-color:var(--leaf)}.cv-years{margin-bottom:.25rem;font-size:var(--step--1)}.cv-kind{margin-bottom:1rem;color:var(--muted);font-size:var(--step--2)}.cv-title{font-size:var(--step-2);margin-bottom:.5rem;-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word;text-wrap:balance}.cv-place{margin-bottom:.5rem;font-weight:500}.cv-text{color:var(--ink-soft)}@media(max-width:899px){.cv-hint,.cv-line{display:none}.cv-track{flex-direction:column;width:auto;gap:2.5rem;padding-left:1.75rem;padding-right:0;border-left:1px solid var(--line-strong)}.cv-entry{width:auto;padding-top:0}.cv-dot{left:calc(-2.2rem - .5px);top:.3rem}}.reduced-motion .cv-hint{display:none}@media(min-width:900px){.reduced-motion .cv-viewport:after,.reduced-motion .cv-line{display:none}.reduced-motion .cv-track{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));width:auto;padding-right:0;row-gap:3rem}.reduced-motion .cv-entry{width:auto;border-top:1px solid var(--line-strong)}.reduced-motion .cv-dot{top:-.45rem}}.sketch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem) var(--gutter)}.sketch-item:nth-child(3n+2){margin-top:12%}.sketch-item figure{margin:0}.sketch-frame{aspect-ratio:4 / 5;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}.sketch-item:nth-child(2n) .sketch-frame{aspect-ratio:1}.sketch-frame-inner,.sketch-frame-inner>*{width:100%;height:100%;object-fit:cover}.sketch-item figcaption{display:flex;justify-content:space-between;gap:1rem;padding-top:.85rem;font-size:.95rem}@media(max-width:760px){.sketch-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sketch-item:nth-child(3n+2){margin-top:0}.sketch-item:nth-child(2n){margin-top:18%}}.contact{background:var(--paper);color:var(--ink);overflow:hidden}.contact-topo{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.8;pointer-events:auto;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 22%,rgb(0 0 0 / .22) 42%,rgb(0 0 0 / .22) 100%);mask-image:linear-gradient(to bottom,#000,#000 22%,#00000038 42%,#00000038)}.contact>:not(.contact-topo){position:relative}.contact-title{max-width:14ch;font-size:var(--step-5);line-height:.92;letter-spacing:-.025em;margin-bottom:clamp(3rem,6vw,6rem)}.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(3rem,6vw,8rem)}.contact-direct{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.email-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.email-link{font-family:var(--font-serif);font-size:var(--step-2);text-decoration:none;background:linear-gradient(var(--accent),var(--accent)) 0 100% / 0 2px no-repeat;transition:background-size .6s var(--ease-out);overflow-wrap:anywhere}.email-link:focus-visible{background-size:100% 2px}@media(hover:hover){.email-link:hover{background-size:100% 2px}}.contact-direct .button-row{margin-top:1rem}.contact-form{display:grid;gap:1.5rem;align-content:start}.field{position:relative}.field input,.field textarea{width:100%;padding:1.6rem 0 .6rem;border:0;border-bottom:1px solid color-mix(in srgb,var(--ink) 70%,transparent);background:transparent;color:inherit;font:inherit;font-size:var(--step-1);resize:vertical;transition:border-color .3s ease}.field input:focus,.field textarea:focus{outline:none;border-color:var(--ink)}.field input:focus-visible,.field textarea:focus-visible{box-shadow:0 3px 0 var(--ink)}.field label{position:absolute;left:0;top:1.6rem;color:var(--muted);pointer-events:none;transform-origin:left top;transition:transform .4s var(--ease-out),color .3s ease}.field input:focus+label,.field input:not(:placeholder-shown)+label,.field textarea:focus+label,.field textarea:not(:placeholder-shown)+label{transform:translateY(-1.5rem) scale(.78);color:var(--ink)}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.contact-form .button{justify-self:start}.field-error{margin:.4rem 0 0;font-size:var(--step--1);color:#fff3c4}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-bottom:2px solid #fff3c4}.form-status{min-height:1.5em;margin:0}.form-sent,.form-error{padding-left:.75rem;border-left:3px solid var(--accent);color:var(--ink)}@media(max-width:860px){.contact-grid{grid-template-columns:1fr}}.glance{display:grid;gap:1.75rem;padding:clamp(2.5rem,5vw,4rem) var(--gutter);border-bottom:1px solid var(--line)}.glance-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.5rem 2rem;margin:0}.glance-item{padding-top:.9rem;border-top:3px solid var(--glance-colour, var(--teal))}.glance-item:nth-child(2){--glance-colour: var(--leaf)}.glance-item:nth-child(3){--glance-colour: var(--saffron)}.glance-item:nth-child(4){--glance-colour: var(--terracotta)}.glance-item:nth-child(5){--glance-colour: var(--plum)}.glance-item dt{margin-bottom:.4rem;color:var(--muted);font-size:var(--step--2)}.glance-item dd{margin:0;line-height:1.4}.glance-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem}@media(max-width:1100px){.glance-list{grid-template-columns:repeat(2,minmax(0,1fr))}.glance-actions{justify-content:flex-start}}@media(max-width:560px){.glance-list{grid-template-columns:1fr}}.home{position:relative}.scroll-garden{position:absolute;right:var(--gutter);width:76px;pointer-events:none}.scroll-garden>*{position:absolute;top:0;left:0}.scroll-garden svg{display:block;overflow:visible}.garden-grown{width:100%;overflow:hidden;transform:translate3d(0,-100%,0);will-change:transform}.garden-grown>div{transform:translate3d(0,100%,0);will-change:transform}.garden-route{fill:none;stroke-width:1;stroke-dasharray:1 6;stroke-linecap:round}.garden-stem{fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.garden-seed path{fill:var(--c-canopy-0);stroke:var(--ink);stroke-width:1}.garden-tip path{fill:var(--c-canopy-1);stroke:var(--ink);stroke-width:1}.garden-tip.is-hidden{visibility:hidden}.garden-leaf-shape,.garden-bloom{transform-box:view-box;transform-origin:0 0}.garden-leaf-shape{transform:scale(0);transition:transform .8s var(--ease-out)}.garden-leaf.is-open .garden-leaf-shape{transform:scale(1)}.garden-leaf-fill{fill:var(--c-canopy-0);stroke:var(--g-ink);stroke-width:1;vector-effect:non-scaling-stroke}.garden-leaf:nth-of-type(3n) .garden-leaf-fill{fill:var(--c-canopy-1)}.garden-leaf:nth-of-type(3n+1) .garden-leaf-fill{fill:var(--c-canopy-2)}.garden-leaf-rib{fill:none;stroke:var(--g-ink);stroke-width:.8;stroke-opacity:.6;vector-effect:non-scaling-stroke}.garden-tendril path{fill:none;stroke:var(--g-ink);stroke-width:1;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s var(--ease-out)}.garden-tendril.is-open path{stroke-dashoffset:0}.garden-leader{fill:none;stroke:var(--g-ink);stroke-width:1;stroke-opacity:.35;stroke-dasharray:2 3;opacity:0;transition:opacity .6s ease}.garden-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;fill:var(--g-muted);opacity:0;transition:opacity .6s ease .2s}.garden-flower.is-open :is(.garden-leader,.garden-label){opacity:1}.garden-bloom{transform:scale(0) rotate(-90deg);transition:transform 1s cubic-bezier(.34,1.4,.64,1)}.garden-flower.is-open .garden-bloom{transform:scale(1) rotate(0)}.garden-flower.is-last.is-open .garden-bloom{transform:scale(1.6) rotate(0)}.garden-bloom ellipse{fill:color-mix(in srgb,var(--bloom) 78%,transparent);stroke:var(--g-ink);stroke-width:.9;vector-effect:non-scaling-stroke}.garden-heart{fill:var(--g-ink)}@media(min-width:1100px){.home>.section,.home>.glance{padding-right:calc(var(--gutter) + 76px)}}@media(max-width:1099px){.scroll-garden{display:none}.home .eyebrow-index{position:relative;margin-left:1.9rem}.home .eyebrow-index:before{content:"";position:absolute;left:-1.9rem;top:50%;width:1.35rem;height:1.35rem;margin-top:-.675rem;background:radial-gradient(circle,var(--ink) 0 16%,color-mix(in srgb,var(--flower, var(--rose)) 85%,transparent) 17%);-webkit-mask:var(--bloom-shape) center / contain no-repeat;mask:var(--bloom-shape) center / contain no-repeat}@supports (animation-timeline: view()){html:not(.reduced-motion) .home .eyebrow-index:before{animation:bloom-open linear both;animation-timeline:view();animation-range:entry 10% cover 30%}}}.home{--bloom-shape: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-20 -20 40 40'%3E%3Cg%3E%3Cellipse rx='5.4' ry='10' cy='-9.5'/%3E%3Cellipse rx='5.4' ry='10' cy='-9.5' transform='rotate(72)'/%3E%3Cellipse rx='5.4' ry='10' cy='-9.5' transform='rotate(144)'/%3E%3Cellipse rx='5.4' ry='10' cy='-9.5' transform='rotate(216)'/%3E%3Cellipse rx='5.4' ry='10' cy='-9.5' transform='rotate(288)'/%3E%3C/g%3E%3C/svg%3E")}.about{--flower: #e5408a}.cv{--flower: #0f8b8d}.skills{--flower: #f5a623}.range{--flower: #4f9f2f}.work{--flower: #e4572e}.approach{--flower: #2fa3d8}.sketchbook{--flower: #ffc23d}.contact{--flower: #ff8a5b}.work{--index-bg: #a6431f}.skills,.approach,.sketchbook,.contact{--index-bg: var(--flower);--index-ink: #1e2b26}@keyframes bloom-open{0%{transform:scale(0) rotate(-90deg)}to{transform:scale(1) rotate(0)}}.project-hero{padding:calc(var(--header-h) + clamp(1.5rem,4vw,3rem)) var(--gutter) clamp(2rem,4vw,3.5rem)}.back-link{display:inline-flex;gap:.5rem;margin-bottom:clamp(1.5rem,4vw,3rem);text-decoration:none;color:var(--ink-soft)}@media(hover:hover){.back-link:hover{color:var(--ink)}}.project-hero-meta{display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin-bottom:1.5rem;color:var(--muted)}.project-title{max-width:18ch;font-size:var(--step-4);line-height:.92;letter-spacing:-.025em}.project-keyfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:1rem 2.5rem;margin:2rem 0 0}.project-keyfacts>div{padding-top:.7rem;border-top:3px solid var(--keyfact, var(--teal))}.project-keyfacts>div:nth-child(2){--keyfact: var(--saffron)}.project-keyfacts>div:nth-child(3){--keyfact: var(--terracotta)}.project-keyfacts dt{color:var(--muted);margin-bottom:.3rem}.project-keyfacts dd{margin:0}.project-subtitle{margin:1.5rem 0 0;font-family:var(--font-serif);font-style:italic;font-size:var(--step-2);color:var(--ink-soft)}.project-title,.next-title{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:break-word}@media(min-width:1100px){.project-hero{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:var(--gutter)}.project-hero>*{grid-column:1}.back-link{justify-self:start}.project-hero>.project-keyfacts{grid-column:2;grid-row:2 / span 3;align-self:end;grid-template-columns:1fr;gap:1.25rem;margin:0}}.project-cover{margin:0 var(--gutter);aspect-ratio:16 / 9;max-height:88svh;width:calc(100% - 2 * var(--gutter));overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}.project-cover-inner{width:100%;height:112%;margin-top:-6%}.project-cover-inner.is-drawing{height:100%;margin-top:0}.project-cover-inner>*{width:100%;height:100%;object-fit:cover}.project-body{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:clamp(2rem,6vw,8rem);padding:clamp(4rem,8vw,8rem) var(--gutter)}.project-facts dl{position:sticky;top:calc(var(--header-h) + 1.5rem);margin:0;border-top:1px solid var(--ink)}.fact-row{display:grid;grid-template-columns:minmax(7rem,2fr) 3fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line)}.fact-row dt{font-size:var(--step--2, .75rem);padding-top:.2rem}.fact-row dd{margin:0}.project-summary{font-family:var(--font-serif);font-size:var(--step-3);line-height:1.1;margin-bottom:2.5rem}.project-text p:not(.project-summary){max-width:40rem;font-size:var(--step-1);line-height:1.6;color:var(--ink-soft)}.project-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(2.5rem,5vw,5rem) var(--gutter);padding:0 var(--gutter)}.gallery-item{grid-column:1 / -1;margin:0}.gallery-item:nth-child(3n+2){grid-column:1 / span 7}.gallery-item:nth-child(3n){grid-column:8 / span 5;margin-top:25%}.gallery-frame{aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius);background:var(--paper-2)}.gallery-item:nth-child(3n) .gallery-frame{aspect-ratio:4 / 5}.gallery-frame-inner,.gallery-frame-inner>*{width:100%;height:100%;object-fit:cover}.gallery-item figcaption{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;padding-top:.9rem}@media(max-width:900px){.project-body{grid-template-columns:1fr}.project-text{order:-1}}@media(max-width:760px){.project-facts dl{position:static}.gallery-item:nth-child(n){grid-column:1 / -1;margin-top:0}.gallery-item:nth-child(3n) .gallery-frame{aspect-ratio:16 / 10}}.before-after,.plants{margin-top:clamp(4rem,8vw,7rem);padding:clamp(3.5rem,7vw,6rem) var(--gutter)}.before-after{background:var(--ground-sky);--paper: var(--ground-sky)}.plants{background:var(--ground-sage);--paper: var(--ground-sage);--muted: #4e5a56}.plant-table td.mono:before{content:"";display:inline-block;width:.6rem;height:.6rem;margin-right:.5rem;border-radius:50%;background:var(--layer-colour, var(--leaf))}.plant-table tr[data-layer=perennial]{--layer-colour: var(--rose)}.plant-table tr[data-layer=grass]{--layer-colour: var(--saffron)}.plant-table tr[data-layer=shrub]{--layer-colour: var(--teal)}.plant-table tr[data-layer=bulb]{--layer-colour: var(--plum)}.plant-table tr[data-layer=climber]{--layer-colour: var(--terracotta)}.ba-frame{position:relative;aspect-ratio:16 / 9;overflow:hidden;border-radius:var(--radius);background:var(--paper-2);margin-bottom:1rem}.ba-layer{position:absolute;top:0;right:0;bottom:0;left:0}.ba-layer>*{width:100%;height:100%;object-fit:cover}.ba-after{clip-path:inset(0 0 0 var(--ba))}.ba-handle{position:absolute;top:0;bottom:0;left:var(--ba);width:1px;background:var(--ink);pointer-events:none}.ba-handle span{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:50%;background:var(--paper);border:1px solid var(--ink);transform:translate(-50%,-50%)}.ba-tag{position:absolute;top:1rem;padding:.3rem .7rem;border-radius:999px;background:var(--paper);font-size:var(--step--2, .75rem);pointer-events:none}.ba-tag-before{left:1rem}.ba-tag-after{right:1rem}.ba-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}.ba-input:focus-visible+*,.ba-frame:has(.ba-input:focus-visible){outline:2px solid var(--accent);outline-offset:4px}.plant-table{width:100%;border-collapse:collapse;border-top:1px solid var(--ink)}.plant-table th,.plant-table td{padding:1rem 1rem 1rem 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:baseline}.plant-table th{font-family:var(--font-serif);font-size:var(--step-2);font-weight:400;width:45%}.plant-table td.mono{text-align:right;padding-right:0}@media(max-width:560px){.plant-table tr{display:grid;grid-template-columns:1fr auto;border-bottom:1px solid var(--line)}.plant-table th{grid-column:1 / -1;width:auto;padding-bottom:.25rem}.plant-table th,.plant-table td{border-bottom:0}.plant-table td{padding-top:0}}.project-cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem 3rem;margin-top:clamp(3rem,6vw,5rem);padding:clamp(2rem,4vw,3rem) var(--gutter);border-top:1px solid var(--line)}.project-cta-text{max-width:34ch;margin:0;font-family:var(--font-serif);font-size:var(--step-2);line-height:1.15}.next-project{--next-media-w: clamp(12rem, 28vw, 26rem);position:relative;display:grid;gap:1rem;padding:clamp(4rem,9vw,9rem) var(--gutter);border-top:1px solid var(--line);text-decoration:none;overflow:hidden}.next-title{position:relative;z-index:1;padding-right:calc(var(--next-media-w) + 2rem);font-family:var(--font-serif);font-size:var(--step-5);line-height:.95;letter-spacing:-.025em;transition:transform .8s var(--ease-out)}.next-project:focus-visible .next-title{transform:translate(1.5rem);font-style:italic;color:var(--accent)}@media(hover:hover){.next-project:hover .next-title{transform:translate(1.5rem);font-style:italic;color:var(--accent)}.next-project:hover .next-media{transform:translateY(-50%) rotate(0) scale(1)}}.next-media{position:absolute;right:var(--gutter);top:50%;width:var(--next-media-w);aspect-ratio:16 / 10;overflow:hidden;border-radius:var(--radius);transform:translateY(-50%) rotate(-3deg) scale(.92);transition:transform .9s var(--ease-out)}.next-media>*{width:100%;height:100%;object-fit:cover}.next-project:focus-visible .next-media{transform:translateY(-50%) rotate(0) scale(1)}@media(max-width:760px){.next-title{padding-right:0}.next-media,.next-project:focus-visible .next-media,.next-project:hover .next-media{position:relative;right:auto;top:auto;width:100%;transform:none}}.legal{max-width:46rem;min-height:70svh;padding:calc(var(--header-h) + 5rem) var(--gutter) 6rem}.legal h1{font-size:var(--step-4);margin-bottom:2.5rem}.legal h1+p{padding-top:.8rem;border-top:1px solid var(--ink)}.legal p{color:var(--ink-soft)}.not-found{position:relative;isolation:isolate;min-height:100svh;display:grid;align-items:end;padding:calc(var(--header-h) + 2rem) var(--gutter) 5rem}.not-found-drawing{position:absolute;inset:var(--header-h) 0 0;height:calc(100% - var(--header-h));opacity:.75}.not-found-drawing .layer-annotation{display:none}.not-found-drawing{-webkit-mask-image:radial-gradient(ellipse 80% 75% at 70% 40%,#000 35%,transparent 80%);mask-image:radial-gradient(ellipse 80% 75% at 70% 40%,#000 35%,transparent 80%)}.not-found:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 60% 55% at 20% 80%,var(--paper) 45%,transparent 85%)}.not-found-text{position:relative;z-index:2;display:grid;gap:1.5rem;justify-items:start;max-width:40rem}.not-found h1{font-size:var(--step-4);max-width:16ch}@media print{.site-header,.cursor-ring,.preloader,.scroll-cue,.marquee,.contact-form,.motion-toggle,body:after{display:none!important}.section{break-inside:avoid-page}}.legal-pending{color:var(--muted);font-style:italic}
