@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/f3deaf8281908ff2-s.woff2) format("woff2");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:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c62081b071647022-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:italic;font-weight:100 900;font-display:swap;src:url(/_next/static/media/6ba5f591ae6c56f6-s.p.woff2) format("woff2");unicode-range:u+00??,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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/fb526027db1fc1ae-s.woff2) format("woff2");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:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/4da3161b738b07dd-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/af4bf8399d1aacdf-s.p.woff2) format("woff2");unicode-range:u+00??,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:Fraunces Fallback;src:local("Times New Roman");ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.00%;size-adjust:115.45%}.__className_c2a63e{font-family:Fraunces,Fraunces Fallback}.__variable_c2a63e{--font-serif:"Fraunces","Fraunces Fallback"}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_d8ebd1{font-family:Inter,Inter Fallback;font-style:normal}.__variable_d8ebd1{--font-sans:"Inter","Inter Fallback"}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/58f386aa6b1a2a92-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/011e180705008d6f-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/7ba5fb2a8c88521c-s.woff2) format("woff2");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-weight:400;font-display:swap;src:url(/_next/static/media/92eeb95d069020cc-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d3ebbfd689654d3a-s.p.woff2) format("woff2");unicode-range:u+00??,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-weight:500;font-display:swap;src:url(/_next/static/media/ef4d5661765d0e49-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/d29838c109ef09b4-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/e40af3453d7c920a-s.woff2) format("woff2");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-weight:500;font-display:swap;src:url(/_next/static/media/99dcf268bda04fe5-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/98e207f02528a563-s.p.woff2) format("woff2");unicode-range:u+00??,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 Fallback;src:local("Arial");ascent-override:76.16%;descent-override:20.43%;line-gap-override:0.00%;size-adjust:134.59%}.__className_9f0762{font-family:IBM Plex Mono,IBM Plex Mono Fallback;font-style:normal}.__variable_9f0762{--font-mono:"IBM Plex Mono","IBM Plex Mono Fallback"}:root{--bg:#f7f5ef;--bg-2:#efede3;--panel:#fdfcf8;--panel-2:#f3f1e8;--ink:#1b1a16;--ink-2:#45423a;--muted:#5f5b51;--hairline:#e0ddd0;--hairline-strong:#c7c4b6;--dot:rgba(27,26,22,0.055);--accent:#bc3f0c;--accent-hover:#a33308;--accent-soft:rgba(188,63,12,0.1);--cover-ink:#161310;--cover-paper:#e9e5d9;--shadow:0 18px 48px rgba(27,26,22,0.12);--radius:6px;color-scheme:light}[data-theme=dark]{--bg:#131311;--bg-2:#171714;--panel:#1a1a18;--panel-2:#1f1f1c;--ink:#e8e5da;--ink-2:#c9c6ba;--muted:#9a968a;--hairline:#262622;--hairline-strong:#3a3a34;--dot:rgba(255,255,255,0.035);--accent:#ff6b35;--accent-hover:#ff8354;--accent-soft:rgba(255,107,53,0.13);--cover-ink:#161310;--cover-paper:#e9e5d9;--shadow:0 24px 60px rgba(0,0,0,0.45);color-scheme:dark}*,:after,:before{box-sizing:border-box}*{margin:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background-color:var(--bg);background-image:radial-gradient(var(--dot) 1px,transparent 1.35px);background-size:24px 24px;color:var(--ink);font-family:var(--font-sans),system-ui,-apple-system,sans-serif;font-size:16.5px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background-color .35s ease,color .35s ease}::selection{background:var(--accent);color:#161310}img,svg,video{max-width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-2)}::-webkit-scrollbar-thumb{background:var(--hairline-strong);border-radius:6px}.container{width:min(1180px,100% - 3rem);margin-inline:auto}@media (max-width:640px){.container{width:min(1180px,100% - 2.25rem)}}.skip-link{position:absolute;left:-9999px;top:.75rem;z-index:100;background:var(--ink);color:var(--bg);font-family:var(--font-mono),monospace;font-size:.75rem;letter-spacing:.1em;padding:.65rem 1rem;border-radius:4px;text-decoration:none}.skip-link:focus-visible{left:.75rem}.kicker,.mono{font-family:var(--font-mono),monospace}.kicker{display:inline-flex;align-items:center;gap:.65rem;font-size:.66rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}.kicker-bar{width:16px;height:2px}.kicker-bar,.kicker-square{background:var(--accent);flex:none}.kicker-square{width:9px;height:9px}.section{border-top:1px solid var(--hairline);padding-block:clamp(3.5rem,7vw,5.5rem)}.section-head-wrap{margin-bottom:clamp(1.75rem,3.5vw,2.75rem)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.05rem}.section-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:clamp(2rem,4.4vw,3.1rem);line-height:1.06;letter-spacing:-.018em;max-width:24ch}.contact-title em,.section-title em{font-style:italic;color:var(--accent)}.head-link{font-family:var(--font-mono),monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;padding-bottom:.3rem;border-bottom:1px solid var(--hairline-strong);white-space:nowrap;transition:color .2s ease,border-color .2s ease}.head-link:hover{color:var(--accent);border-color:var(--accent)}.head-link-arrow{display:inline-block;margin-left:.35rem;transition:transform .25s ease}.head-link:hover .head-link-arrow{transform:translateX(4px)}.btn{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono),monospace;font-size:.72rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;padding:.9rem 1.6rem;border-radius:4px;border:1px solid transparent;cursor:pointer;transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease}.btn:hover{transform:translateY(-2px)}.btn:active{transform:translateY(0)}.btn-solid{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn-solid:hover{background:var(--accent);border-color:var(--accent);color:#161310}.btn-ghost{background:transparent;border-color:var(--hairline-strong);color:var(--ink)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-small{padding:.62rem 1.05rem;font-size:.64rem}.reveal{transition:opacity .7s ease,transform .7s cubic-bezier(.16,1,.3,1)}html.js .reveal{opacity:0;transform:translateY(18px)}html.js .reveal.is-visible{opacity:1;transform:none}.stamp{font-family:var(--font-mono),monospace;font-size:.58rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 65%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent);padding:.35rem .55rem;border-radius:3px;white-space:nowrap}.stamp-cover{position:absolute;top:.85rem;right:.85rem;z-index:2;transform:rotate(-3deg);color:#ff6b35;border-color:rgba(255,107,53,.65);background:rgba(22,19,16,.78);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.stamp-ink{color:#ffb08a;border-color:rgba(255,107,53,.6)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:60;height:64px;background:var(--bg);border-bottom:1px solid var(--hairline);transition:background-color .35s ease}.nav-inner{height:100%;display:flex;justify-content:space-between;gap:1.5rem}.brand,.nav-inner{align-items:center}.brand{display:inline-flex;gap:.55rem;text-decoration:none;color:var(--ink)}.brand-word{font-family:var(--font-mono),monospace;font-weight:600;font-size:1.02rem;letter-spacing:-.02em}.brand-word em{font-style:normal;color:var(--accent)}.brand-mark{width:8px;height:8px;background:var(--accent);transform:rotate(12deg);transition:transform .35s ease}.brand:hover .brand-mark{transform:rotate(102deg)}.desktop-nav{display:flex;align-items:center;gap:1.6rem}.nav-link{font-family:var(--font-mono),monospace;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;padding:.4rem 0;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease}.nav-link:hover{color:var(--accent);border-color:var(--accent)}.nav-actions{display:flex;align-items:center;gap:.65rem}.theme-toggle{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--hairline-strong);background:var(--panel);color:var(--ink);border-radius:4px;cursor:pointer;transition:color .2s ease,border-color .2s ease,transform .2s ease}.theme-toggle:hover{color:var(--accent);border-color:var(--accent);transform:rotate(12deg)}.hamburger,[data-theme=dark] .icon-moon,[data-theme=light] .icon-sun{display:none}.hamburger{width:40px;height:38px;border:1px solid var(--hairline-strong);background:var(--panel);border-radius:4px;cursor:pointer;position:relative}.hamburger span{position:absolute;left:10px;right:10px;height:1.8px;background:var(--ink);transition:transform .3s ease,top .3s ease}.hamburger span:first-child{top:15px}.hamburger span:last-child{top:22px}.hamburger.is-open span:first-child{top:18.5px;transform:rotate(45deg)}.hamburger.is-open span:last-child{top:18.5px;transform:rotate(-45deg)}.mobile-menu{position:fixed;inset:0;z-index:55;background:var(--bg);padding:92px 1.5rem 2rem;display:flex;flex-direction:column;animation:menu-in .35s ease both;overflow-y:auto}@keyframes menu-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.mobile-menu-nav{display:flex;flex-direction:column}.mobile-menu-link{display:flex;align-items:baseline;gap:1.1rem;padding:1.05rem .25rem;border-bottom:1px solid var(--hairline);text-decoration:none;color:var(--ink);animation:menu-item .45s cubic-bezier(.16,1,.3,1) both}@keyframes menu-item{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.mobile-menu-index{font-family:var(--font-mono),monospace;font-size:.65rem;letter-spacing:.2em;color:var(--accent)}.mobile-menu-label{font-family:var(--font-serif),Georgia,serif;font-size:1.65rem;letter-spacing:-.01em}.mobile-menu-foot{margin-top:auto;padding-top:2rem}.mobile-menu-mail{font-family:var(--font-serif),Georgia,serif;font-style:italic;font-size:1.25rem;color:var(--accent);text-decoration:none}.mobile-menu-loc{margin-top:.5rem;font-family:var(--font-mono),monospace;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.hero{padding-block:clamp(2.25rem,5.5vw,4rem) clamp(2.75rem,6vw,4.5rem)}.hero-grid{display:grid;grid-template-columns:1.12fr .88fr;grid-gap:clamp(2rem,4.5vw,4.5rem);gap:clamp(2rem,4.5vw,4.5rem);align-items:end}.hero-kicker{display:flex;align-items:center;gap:.65rem;font-family:var(--font-mono),monospace;font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.hero-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:clamp(3.3rem,8.6vw,6.6rem);line-height:.99;letter-spacing:-.032em;margin:1.35rem 0 1.6rem;text-wrap:balance}.hero-title .accent-i{font-style:italic;color:var(--accent)}.hero-intro{max-width:52ch;font-size:1.05rem;line-height:1.65;color:var(--ink-2)}.hero-intro strong{color:var(--ink);font-weight:600}.hero-ctas{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;margin-top:1.9rem}.text-link{font-family:var(--font-mono),monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hairline-strong);padding-bottom:.35rem;transition:color .2s ease,border-color .2s ease}.text-link:hover{color:var(--accent);border-color:var(--accent)}.text-link span{color:var(--accent);margin-left:.3rem}.hero-loop{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:2.1rem;font-family:var(--font-mono),monospace;font-size:.62rem;letter-spacing:.2em;color:var(--muted)}.hero-loop b{color:var(--accent);font-weight:500}.now-panel{border:1px solid var(--hairline-strong);border-radius:var(--radius);background:var(--panel);overflow:hidden;box-shadow:var(--shadow)}.now-panel-head{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.15rem;border-bottom:1px solid var(--hairline);font-family:var(--font-mono),monospace;font-size:.62rem;letter-spacing:.22em;color:var(--muted)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulse 2.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.72)}}.now-row{display:grid;grid-template-columns:7.5rem 1fr;grid-gap:1rem;gap:1rem;align-items:baseline;padding:.72rem 1.15rem;border-bottom:1px solid var(--hairline)}.now-row:last-of-type{border-bottom:none}.now-label{font-family:var(--font-mono),monospace;font-size:.56rem;letter-spacing:.18em;color:var(--muted);padding-top:.15rem}.now-value{font-size:.86rem;line-height:1.45;color:var(--ink)}.now-value em{font-style:normal;color:var(--accent)}.now-foot{justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1.15rem;background:var(--panel-2);font-size:.55rem;letter-spacing:.2em}.now-foot,.principles{display:flex;border-top:1px solid var(--hairline);font-family:var(--font-mono),monospace;color:var(--muted)}.principles{flex-wrap:wrap;gap:.6rem 2.25rem;margin-top:clamp(2.25rem,5vw,3.5rem);padding-top:1.35rem;font-size:.62rem;letter-spacing:.22em}.principles li{list-style:none;display:flex;align-items:center;gap:.6rem}.principles li:before{content:"";width:6px;height:6px;background:var(--accent);display:inline-block;transform:rotate(45deg)}.work-featured{margin-bottom:1.15rem}.work-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1.15rem;gap:1.15rem}.project-card{position:relative;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.project-card:hover{transform:translateY(-5px);border-color:var(--hairline-strong);box-shadow:var(--shadow)}.project-card.is-featured{display:grid;grid-template-columns:1.02fr 1fr}.project-card.is-featured .project-cover{border-bottom:none;border-right:1px solid var(--hairline);aspect-ratio:auto;min-height:100%}.project-card.is-featured .project-body{padding:1.6rem 1.7rem}.project-card.is-featured .project-title{font-size:2.1rem}.project-card.is-featured .project-desc{font-size:.95rem}.project-cover{position:relative;display:block;aspect-ratio:16/10.5;background:var(--cover-ink);overflow:hidden;border-bottom:1px solid var(--hairline)}.cover-art{width:100%;height:100%;display:block;transition:transform .6s cubic-bezier(.16,1,.3,1)}.project-card:hover .cover-art{transform:scale(1.04)}.project-body{display:flex;flex-direction:column;gap:.45rem;padding:1.15rem 1.2rem;flex:1 1}.project-meta{display:flex;align-items:center;gap:.5rem;font-family:var(--font-mono),monospace;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.project-index{color:var(--accent);font-weight:500}.project-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:1.55rem;line-height:1.1;letter-spacing:-.015em;margin-top:.15rem}.project-title a{color:inherit;text-decoration:none;transition:color .2s ease}.project-title a:hover{color:var(--accent)}.project-title a:after{content:"";position:absolute;inset:0}.project-tagline{font-family:var(--font-serif),Georgia,serif;font-style:italic;font-size:.92rem;color:var(--ink-2)}.project-desc{font-size:.85rem;line-height:1.55;color:var(--muted)}.tech-tags{display:flex;flex-wrap:wrap;gap:.38rem;list-style:none;padding:.35rem 0 0;margin-top:auto}.tech-tags li{font-family:var(--font-mono),monospace;font-size:.58rem;letter-spacing:.06em;color:var(--ink-2);border:1px solid var(--hairline);border-radius:3px;padding:.3rem .5rem}.project-foot{display:flex;align-items:center;gap:1.25rem;border-top:1px solid var(--hairline);padding-top:.75rem;margin-top:.5rem}.mini-link{position:relative;z-index:1;font-family:var(--font-mono),monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;transition:color .2s ease}.mini-link-accent,.mini-link:hover{color:var(--accent)}.mini-link-accent{margin-left:auto}.mini-link-accent:hover{color:var(--accent-hover)}.explore-list{border-top:1px solid var(--hairline)}.explore-row{display:grid;grid-template-columns:4rem 1fr auto;grid-gap:clamp(1rem,3vw,2.5rem);gap:clamp(1rem,3vw,2.5rem);align-items:baseline;padding:1.3rem .5rem;border-bottom:1px solid var(--hairline);text-decoration:none;color:inherit;transition:background .25s ease,padding-left .25s ease}.explore-row:hover{background:var(--panel);padding-left:1.35rem}.explore-index{font-family:var(--font-mono),monospace;font-size:.78rem;color:var(--accent);letter-spacing:.1em}.explore-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:clamp(1.3rem,2.6vw,1.75rem);letter-spacing:-.015em;line-height:1.15}.explore-note{margin-top:.35rem;font-size:.88rem;color:var(--muted);max-width:66ch;line-height:1.55}.explore-arrow{font-family:var(--font-mono),monospace;font-size:1.1rem;color:var(--muted);transition:color .25s ease,transform .25s ease}.explore-row:hover .explore-arrow{color:var(--accent);transform:translateX(6px)}.about-teaser{display:grid;grid-template-columns:1fr 1fr;grid-gap:clamp(2.5rem,5vw,5rem);gap:clamp(2.5rem,5vw,5rem);align-items:start}.about-teaser-copy p{color:var(--ink-2);font-size:1rem;line-height:1.7}.about-teaser-copy p+p{margin-top:1.1rem}.pull-quote{border-left:2px solid var(--accent);padding-left:1.4rem;margin:1.75rem 0;font-family:var(--font-serif),Georgia,serif;font-style:italic;font-size:clamp(1.3rem,2.2vw,1.6rem);line-height:1.3;color:var(--ink)}.lab-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:1.15rem;gap:1.15rem}.lab-item{display:flex;flex-direction:column;gap:.4rem;background:var(--panel);border:1px solid var(--hairline);border-radius:var(--radius);padding:1.1rem 1.15rem 1.15rem;transition:border-color .25s ease,transform .25s ease}.lab-item:hover{border-color:var(--hairline-strong);transform:translateY(-3px)}.lab-kind{font-family:var(--font-mono),monospace;font-size:.54rem;letter-spacing:.24em;color:var(--accent)}.lab-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:1.12rem;line-height:1.25;letter-spacing:-.01em}.lab-note{font-size:.83rem;line-height:1.55;color:var(--muted)}.lab-feeds{margin-top:auto;padding-top:.65rem;border-top:1px solid var(--hairline);font-family:var(--font-mono),monospace;font-size:.55rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.lab-feeds b{color:var(--ink-2);font-weight:500}.notes-panel{border:1px dashed var(--hairline-strong);border-radius:var(--radius);padding:clamp(1.75rem,4vw,3rem)}.notes-panel-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.notes-empty-title{font-family:var(--font-serif),Georgia,serif;font-style:italic;font-size:clamp(1.2rem,2vw,1.5rem);color:var(--ink-2);max-width:46ch;line-height:1.35}.notes-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:.9rem;gap:.9rem}.note-item{border:1px solid var(--hairline);border-radius:4px;background:var(--panel);padding:.9rem 1rem}.note-status{font-family:var(--font-mono),monospace;font-size:.52rem;letter-spacing:.24em;color:var(--accent)}.note-title{font-size:.95rem;font-weight:600;margin:.3rem 0;line-height:1.4}.note-summary{font-size:.8rem;color:var(--muted);line-height:1.55}.contact-block{display:grid;grid-template-columns:1.05fr .95fr;grid-gap:clamp(2.5rem,5vw,5rem);gap:clamp(2.5rem,5vw,5rem);align-items:end}.contact-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:clamp(2.5rem,5.6vw,4.2rem);line-height:1.02;letter-spacing:-.025em;margin:1.1rem 0 1.2rem}.contact-sub{color:var(--ink-2);font-size:1.02rem;line-height:1.65;max-width:46ch}.contact-panel{border:1px solid var(--hairline-strong);border-radius:var(--radius);background:var(--panel);padding:clamp(1.5rem,3vw,2.25rem)}.contact-mail{display:inline-flex;align-items:baseline;gap:.6rem;font-family:var(--font-serif),Georgia,serif;font-size:clamp(1.35rem,2.7vw,1.9rem);letter-spacing:-.015em;color:var(--ink);text-decoration:none;border-bottom:2px solid var(--hairline-strong);padding-bottom:.4rem;transition:color .2s ease,border-color .2s ease;word-break:break-word}.contact-mail:hover{color:var(--accent);border-color:var(--accent)}.contact-mail-arrow{color:var(--accent)}.contact-links{list-style:none;padding:0;margin:1.5rem 0 0}.contact-links li+li{border-top:1px solid var(--hairline)}.contact-links a{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:.85rem .35rem;text-decoration:none;transition:background .2s ease,padding-left .2s ease;border-radius:3px}.contact-links a:hover{background:var(--panel-2);padding-left:.85rem}.contact-link-label{font-family:var(--font-mono),monospace;font-size:.58rem;letter-spacing:.2em;color:var(--muted)}.contact-link-value{font-size:.88rem;color:var(--ink)}.contact-footnote{margin-top:1.4rem;font-family:var(--font-mono),monospace;font-size:.54rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}.site-footer{border-top:1px solid var(--hairline-strong);background:var(--bg-2);padding:clamp(2.5rem,5vw,4rem) 0 1.25rem}.footer-top{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;border-bottom:1px solid var(--hairline);padding-bottom:clamp(1.5rem,3vw,2.5rem)}.footer-brand{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:clamp(3.2rem,10.5vw,6.4rem);line-height:.95;letter-spacing:-.035em;color:var(--ink);text-decoration:none}.footer-brand em{font-style:italic;color:var(--accent)}.footer-brand-dot{display:inline-block;width:.14em;height:.14em;border-radius:50%;background:var(--accent);margin-left:.06em}.footer-philosophy{font-family:var(--font-serif),Georgia,serif;font-style:italic;font-size:1.05rem;color:var(--muted);max-width:36ch;line-height:1.45;padding-bottom:.35em}.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:2rem;gap:2rem;padding-block:2rem 0}.footer-head{font-family:var(--font-mono),monospace;font-size:.56rem;letter-spacing:.26em;color:var(--muted);margin-bottom:.75rem}.footer-links{list-style:none;padding:0;display:flex;flex-direction:column;gap:.45rem}.footer-links a{color:var(--ink-2);text-decoration:none;font-size:.9rem;transition:color .2s ease}.footer-links a:hover{color:var(--accent)}.footer-links-plain li{color:var(--ink-2);font-size:.9rem}.local-time{font-size:.66rem;letter-spacing:.14em;color:var(--accent)}.footer-bottom,.local-time{font-family:var(--font-mono),monospace}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--hairline);margin-top:2.25rem;padding-top:1.1rem;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase}.footer-bottom,.footer-bottom-mid{color:var(--muted)}.footer-top-link{color:var(--ink-2);text-decoration:none;transition:color .2s ease}.footer-top-link:hover{color:var(--accent)}.detail-hero{padding-block:clamp(2rem,5vw,3.5rem) 0}.breadcrumb{display:flex;align-items:center;gap:.6rem;font-family:var(--font-mono),monospace;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem}.breadcrumb a{color:var(--ink-2);text-decoration:none}.breadcrumb a:hover{color:var(--accent)}.detail-title{font-weight:560;font-size:clamp(3rem,8vw,5.5rem);line-height:.98;letter-spacing:-.03em}.detail-tagline,.detail-title{font-family:var(--font-serif),Georgia,serif}.detail-tagline{font-style:italic;font-size:clamp(1.15rem,2.2vw,1.5rem);color:var(--ink-2);margin-top:.9rem;max-width:52ch}.detail-meta{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;border-block:1px solid var(--hairline);margin-top:1.75rem;padding-block:1rem}.detail-meta-item dt{font-family:var(--font-mono),monospace;font-size:.52rem;letter-spacing:.24em;color:var(--muted);margin-bottom:.3rem}.detail-meta-item dd{font-size:.9rem;color:var(--ink)}.detail-cover{position:relative;margin-block:clamp(2rem,4vw,3rem);border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;background:var(--cover-ink);aspect-ratio:21/10}.shots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:.9rem;gap:.9rem;margin-top:-1rem;margin-bottom:1.5rem}.shot{position:relative;aspect-ratio:16/10;border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;background:var(--cover-ink)}.detail-cover .cover-art{aspect-ratio:auto;height:100%}.detail-body{display:grid;grid-template-columns:1fr 320px;grid-gap:clamp(2rem,4vw,4rem);gap:clamp(2rem,4vw,4rem);padding-bottom:clamp(3rem,6vw,5rem)}.detail-main>p{color:var(--ink-2);font-size:1.02rem;line-height:1.72;max-width:68ch}.detail-main>p+p{margin-top:1.2rem}.detail-h3{font-family:var(--font-mono),monospace;font-size:.62rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin:2rem 0 .9rem;display:flex;align-items:center;gap:.65rem}.detail-h3:after{content:"";flex:1 1;height:1px;background:var(--hairline)}.highlights{list-style:none;padding:0;display:flex;flex-direction:column;gap:.55rem}.highlights li{position:relative;padding-left:1.35rem;color:var(--ink-2);font-size:.95rem}.highlights li:before{content:"";position:absolute;left:0;top:.32em;width:8px;height:8px;border:1.5px solid var(--accent);border-radius:1px}.honesty-note{margin-top:1.75rem;border-left:2px solid var(--accent);background:var(--accent-soft);padding:1rem 1.25rem;border-radius:0 var(--radius) var(--radius) 0;font-size:.9rem;line-height:1.6;color:var(--ink-2)}.honesty-note b{display:block;font-family:var(--font-mono),monospace;font-size:.56rem;letter-spacing:.22em;color:var(--accent);margin-bottom:.3rem;font-weight:500}.detail-aside{align-self:start;position:-webkit-sticky;position:sticky;top:84px;display:flex;flex-direction:column;gap:.9rem;border:1px solid var(--hairline);border-radius:var(--radius);background:var(--panel);padding:1.35rem}.detail-aside .btn{justify-content:center}.aside-head{font-family:var(--font-mono),monospace;font-size:.56rem;letter-spacing:.26em;color:var(--muted);border-bottom:1px solid var(--hairline);padding-bottom:.6rem}.aside-links{display:flex;flex-direction:column;gap:.6rem}.back-link{font-family:var(--font-mono),monospace;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);text-decoration:none;text-align:center;transition:color .2s ease}.back-link:hover{color:var(--accent)}.detail-nav{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--hairline);padding-top:1.25rem;margin-top:.5rem}.detail-nav-link{font-family:var(--font-mono),monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);text-decoration:none;transition:color .2s ease}.detail-nav-link:hover{color:var(--accent)}.detail-nav-link small{display:block;font-size:.52rem;color:var(--muted);margin-bottom:.25rem;letter-spacing:.2em}.catalog-list{border-top:1px solid var(--hairline)}.catalog-row{display:grid;grid-template-columns:4.5rem 1.35fr 1fr auto;grid-gap:clamp(1rem,3vw,2.5rem);gap:clamp(1rem,3vw,2.5rem);align-items:center;padding:1.6rem .5rem;border-bottom:1px solid var(--hairline);text-decoration:none;color:inherit;transition:background .25s ease,padding-left .25s ease}.catalog-row:hover{background:var(--panel);padding-left:1.35rem}.catalog-index{font-family:var(--font-serif),Georgia,serif;font-size:1.9rem;color:var(--hairline-strong);letter-spacing:-.02em;transition:color .25s ease}.catalog-row:hover .catalog-index{color:var(--accent)}.catalog-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:clamp(1.5rem,3.2vw,2.1rem);letter-spacing:-.02em;line-height:1.05}.catalog-tagline{font-size:.82rem;color:var(--muted);margin-top:.3rem}.catalog-meta{display:flex;flex-direction:column;gap:.45rem}.catalog-cat{font-size:.58rem;letter-spacing:.18em;text-transform:uppercase}.catalog-arrow,.catalog-cat{font-family:var(--font-mono),monospace;color:var(--muted)}.catalog-arrow{font-size:1.15rem}.catalog-row:hover .catalog-arrow{color:var(--accent)}.page-intro{max-width:60ch;color:var(--ink-2);font-size:1.02rem;line-height:1.65;margin-bottom:clamp(1.75rem,3vw,2.5rem)}.about-hero{padding-block:clamp(2rem,5vw,3.5rem) clamp(2rem,4vw,3rem)}.about-title{font-family:var(--font-serif),Georgia,serif;font-weight:560;font-size:clamp(3rem,9vw,6.2rem);line-height:.98;letter-spacing:-.032em;margin-top:1.1rem}.about-title .accent-i{font-style:italic;color:var(--accent)}.about-cols{display:grid;grid-template-columns:1.15fr .85fr;grid-gap:clamp(2rem,5vw,5rem);gap:clamp(2rem,5vw,5rem);border-top:1px solid var(--hairline);padding-top:clamp(2rem,4vw,3.5rem)}.about-cols p{color:var(--ink-2);line-height:1.72;font-size:1.02rem}.about-cols p+p{margin-top:1.15rem}.about-cols strong{color:var(--ink)}.belief-list{list-style:none;padding:0;border-top:1px solid var(--hairline)}.belief-list li{display:grid;grid-template-columns:2.25rem 1fr;grid-gap:.75rem;gap:.75rem;padding:.8rem 0;border-bottom:1px solid var(--hairline);font-size:.92rem;color:var(--ink-2);line-height:1.55}.belief-list b{font-family:var(--font-mono),monospace;font-size:.6rem;color:var(--accent);padding-top:.2rem;letter-spacing:.1em}.about-aside-box{border:1px solid var(--hairline-strong);border-radius:var(--radius);background:var(--panel);padding:1.5rem}.about-aside-box h3{font-family:var(--font-mono),monospace;font-size:.6rem;font-weight:500;letter-spacing:.26em;color:var(--muted);margin-bottom:.85rem}.about-aside-box dl{display:flex;flex-direction:column}.about-aside-box div{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid var(--hairline);padding:.65rem 0;font-size:.88rem}.about-aside-box dt{color:var(--muted)}.about-aside-box dd{color:var(--ink);text-align:right}.notfound{padding-block:clamp(4rem,12vw,8rem);text-align:left}.notfound-code{font-weight:560;font-size:clamp(6rem,22vw,14rem);line-height:.9;letter-spacing:-.04em;color:var(--hairline-strong)}.notfound-code,.notfound-line{font-family:var(--font-serif),Georgia,serif}.notfound-line{font-style:italic;font-size:clamp(1.3rem,3vw,2rem);color:var(--ink-2);margin:1.25rem 0 1.75rem}@media (max-width:1080px){.lab-grid,.work-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:900px){.desktop-nav{display:none}.hamburger{display:inline-flex}.nav-cta{display:none}.hero-grid{grid-template-columns:1fr;align-items:start}.now-panel{max-width:560px}.about-teaser,.contact-block{grid-template-columns:1fr}.contact-block{align-items:start}.about-cols,.detail-body{grid-template-columns:1fr}.detail-aside{position:static;order:3}.catalog-row{grid-template-columns:3rem 1fr auto}.catalog-cat{display:none}.project-card.is-featured{grid-template-columns:1fr}.project-card.is-featured .project-cover{border-right:none;border-bottom:1px solid var(--hairline);aspect-ratio:16/10.5;min-height:0}}@media (max-width:640px){body{font-size:15.5px}.footer-grid,.lab-grid,.notes-grid,.work-grid{grid-template-columns:1fr}.footer-grid{gap:1.5rem}.footer-philosophy{max-width:100%}.explore-row{grid-template-columns:2.5rem 1fr auto;padding:1.05rem .35rem}.explore-arrow{font-size:.95rem}.now-row{grid-template-columns:1fr;gap:.15rem}.detail-cover{aspect-ratio:16/11}.hero-ctas{gap:1rem}.section-head{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}.work-grid>.reveal{display:flex}.work-grid>.reveal>.project-card{flex:1 1;width:100%}.lab-grid>.reveal{display:flex}.lab-grid>.reveal>.lab-item{flex:1 1;width:100%}