@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/caa77eaf0c6cae2c-s.0c05j22lu0e1h.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/6260001f568fa40d-s.14r01_8b-ryu9.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/2aa781f449db21e3-s.p.2lg3sxkcxwsl6.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.bricolage_grotesque_fce67b12-module__b5tlWW__className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.bricolage_grotesque_fce67b12-module__b5tlWW__variable{--font-sans:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.3bz3aq452sydg.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.2sb9jzhmrh7ny.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.343obqi851wr5.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.40kcwrf1wub16.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.200l3jur7oygh.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.269kn9uafm0ti.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_dc177b0e-module__78ed6G__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_dc177b0e-module__78ed6G__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--midnight:#161616;--silver:#fef8e8;--grey:#e4e2e3;--stone:#a8aaac;--orange:#f44a22;--bg:var(--midnight);--bg-raised:#1c1b1a;--bg-sunken:#101010;--fg:var(--silver);--fg-2:#cfcabb;--fg-3:#8d8b86;--line:#34322e;--line-soft:#262523;--accent:var(--orange);--signal:var(--stone);--accent-mark:color-mix(in srgb, var(--orange) 62%, var(--fg-3));--focus:var(--orange);--s-1:.25rem;--s-2:.5rem;--s-3:.75rem;--s-4:1rem;--s-5:1.5rem;--s-6:2rem;--s-7:2.5rem;--s-8:3.5rem;--s-9:5rem;--s-10:7rem;--gutter:clamp(1.25rem, 4.5vw, 5.5rem);--section-y:clamp(3.5rem, 6vw, 6rem);--head-gap:clamp(2rem, 4vw, 3.5rem);--head-pad-top:clamp(.5rem, 1.2vw, .875rem);--head-pad-bottom:clamp(1.25rem, 2.4vw, 2rem);--block-gap:clamp(2rem, 3.5vw, 3rem);--nav-h:4.25rem;--t-h1:clamp(2.75rem, 6.4vw, 6rem);--t-lead:clamp(1.375rem, 2.35vw, 2.125rem);--t-body:clamp(.9375rem, .3vw + .86rem, 1.0625rem);--t-small:.9375rem;--t-meta:.8125rem;--t-label:.6875rem;--measure:62ch;--vf-display:"opsz" 96, "wdth" 100;--vf-title:"opsz" 48, "wdth" 100;--vf-body:"opsz" 14, "wdth" 100;--dur-micro:.18s;--dur-fast:.32s;--dur-base:.6s;--dur-slow:.9s;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.33, 1, .68, 1);--ease-inout:cubic-bezier(.65, 0, .35, 1);--boot-out:.3s;--boot-exit:.62s;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.theme-light{--bg:var(--silver);--bg-raised:#f6efdc;--bg-sunken:var(--grey);--fg:var(--midnight);--fg-2:#3d3b38;--fg-3:#6b6862;--line:#b9b4ab;--line-soft:#d5d0c6;--accent:#c9380f;--signal:#6b6862;--accent-mark:color-mix(in srgb, #c9380f 62%, var(--fg-3));--focus:#c9380f;background:var(--bg);color:var(--fg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{background:var(--bg);color:var(--fg-2);scrollbar-gutter:stable}html.intro:not(.intro-done){overflow-y:hidden}body{--sans:var(--font-sans), "Helvetica Neue", Arial, sans-serif;--mono:var(--font-mono), ui-monospace, "SF Mono", Menlo, monospace;font-family:var(--sans);font-variation-settings:var(--vf-body);font-size:var(--t-body);letter-spacing:-.008em;font-kerning:normal;font-feature-settings:"kern" 1, "liga" 1, "calt" 1;text-rendering:optimizelegibility;background:var(--bg);line-height:1.7;overflow-x:clip}::selection{background:var(--accent);color:var(--silver)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:1px}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}img,svg,canvas{max-width:100%;display:block}img{height:auto}ul,ol{list-style:none}:where(section,header)[id]{scroll-margin-top:calc(var(--nav-h) + var(--s-4))}.skip-link{left:var(--gutter);z-index:100;background:var(--accent);color:var(--silver);padding:var(--s-4);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;text-transform:uppercase;position:fixed;top:0;transform:translateY(-150%)}.skip-link:focus-visible{transform:translateY(var(--s-3))}.page{z-index:1;position:relative}.shell{width:100%;padding-inline:var(--gutter)}.band{padding-block:var(--section-y);position:relative}.band:before,.work:before{content:"";background:var(--line-soft);height:1px;position:absolute;inset:0 0 auto}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.tag{font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-weight:500;line-height:1.4}.prose{font-size:var(--t-body);letter-spacing:-.006em;color:var(--fg-2);max-width:var(--measure);text-wrap:pretty;line-height:1.72}[data-mask]{margin-block:-.16em -.24em;padding-block:.16em .24em;display:block;overflow:hidden}[data-mask]>span{display:block}.band-head{align-items:end;gap:var(--s-4) var(--s-9);padding-block:var(--head-pad-top) var(--head-pad-bottom);border-bottom:1px solid var(--line-soft);margin-bottom:var(--head-gap);grid-template-columns:minmax(0,1fr) minmax(0,22rem);display:grid}.band-title{font-size:var(--t-h1);font-variation-settings:var(--vf-title);letter-spacing:-.042em;color:var(--fg);font-weight:800;line-height:.9}.band-note{font-size:var(--t-small);letter-spacing:-.004em;color:var(--fg-3);text-wrap:pretty;line-height:1.6}.button{align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-3) var(--s-5);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);border:1px solid var(--line);transition:color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft), background-color var(--dur-fast) var(--ease-soft);border-radius:999px;display:inline-flex}.button:hover{color:var(--fg);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent)}.link{align-items:center;gap:var(--s-2);min-height:44px;font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.12em;text-transform:uppercase;color:var(--fg-2);transition:color var(--dur-fast) var(--ease-soft);display:inline-flex;position:relative}.link:after{content:"";transform-origin:100%;height:1px;transition:transform var(--dur-base) var(--ease-out);background:currentColor;position:absolute;inset:auto 0 calc(50% - .9em);transform:scaleX(1)}.link:hover{color:var(--accent)}.link:hover:after{transform-origin:0}.link-arrow{transition:transform var(--dur-fast) var(--ease-out);display:inline-block}.link:hover .link-arrow{transform:translate(.2em,-.2em)}.progress{z-index:80;background:var(--accent);transform-origin:0;pointer-events:none;height:2px;position:fixed;inset:0 0 auto;transform:scaleX(0)}.nav{z-index:70;min-height:var(--nav-h);padding-inline:var(--gutter);transition:transform var(--dur-base) var(--ease-out), background-color var(--dur-fast) var(--ease-soft), border-color var(--dur-fast) var(--ease-soft);border-bottom:1px solid #0000;align-items:center;display:flex;position:fixed;inset:0 0 auto}.nav.is-solid{border-bottom-color:var(--line-soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.nav.on-light{--fg:var(--midnight);--fg-2:#3d3b38;--fg-3:#6b6862;--line:#b9b4ab;--line-soft:#d5d0c6;--accent:#c9380f;--signal:#6b6862}.nav:not(.on-light).is-solid{background:color-mix(in srgb, var(--midnight) 90%, transparent)}.nav.on-light.is-solid{background:color-mix(in srgb, var(--silver) 90%, transparent);border-bottom-color:var(--line-soft)}.nav-inner{justify-content:space-between;align-items:center;gap:var(--s-4);width:100%;display:flex}.nav-links{align-items:center;gap:clamp(.25rem,1.6vw,1.75rem);display:flex}.nav-link{min-height:44px;font-family:var(--mono);letter-spacing:clamp(.04em,.6vw - .02em,.12em);text-transform:uppercase;color:var(--fg-3);transition:color var(--dur-fast) var(--ease-soft);align-items:center;padding-inline:clamp(.125rem,.9vw,.5rem);font-size:clamp(.625rem,.35vw + .55rem,.6875rem);display:inline-flex;position:relative}.nav-link:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform var(--dur-base) var(--ease-out);position:absolute;inset:auto clamp(.125rem,.9vw,.5rem) calc(50% - .95em);transform:scaleX(0)}.nav-link:hover,.nav-link.is-active{color:var(--fg)}.nav-link:hover:after,.nav-link.is-active:after{transform:scaleX(1)}.cursor{z-index:95;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease-soft);will-change:transform;place-items:center;display:grid;position:fixed;top:0;left:0}.cursor.is-shown{opacity:1}.cursor-inner{grid-area:1/1;place-items:center;display:grid}.cursor-ring{will-change:transform;border:1px solid var(--orange);width:28px;height:28px;transition:background-color var(--dur-fast) var(--ease-soft), border-width var(--dur-micro) var(--ease-soft);border-radius:50%;grid-area:1/1;margin:-14px 0 0 -14px}.cursor.is-hot .cursor-ring{background:color-mix(in srgb, var(--orange) 14%, transparent)}.cursor.is-active .cursor-ring{border-width:2px}.cursor.is-active .cursor-inner{transform:scale(.92)}.cursor-ripple{z-index:94;border:1px solid var(--orange);opacity:0;pointer-events:none;border-radius:50%;width:36px;height:36px;margin:-18px 0 0 -18px;position:fixed;top:0;left:0}.cursor-label{white-space:nowrap;font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--orange);opacity:0;transition:opacity var(--dur-micro) linear;grid-area:1/1;font-size:.5625rem}.cursor.has-label .cursor-label{opacity:1}.boot{z-index:90;padding:clamp(var(--s-5), 4vw, var(--s-9));background:var(--midnight);pointer-events:none;align-content:stretch;display:grid;position:fixed;inset:0;overflow:hidden}.boot:before{content:"";background-image:linear-gradient(to right, color-mix(in srgb, var(--stone) 12%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--stone) 9%, transparent) 1px, transparent 1px);opacity:.12;pointer-events:none;background-size:clamp(4.5rem,9vw,9rem) clamp(4.5rem,9vw,9rem);position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 76%);mask-image:radial-gradient(circle,#000,#0000 76%)}html.no-intro .boot{display:none}.boot-inner{grid-template-rows:auto minmax(0,1fr) auto;gap:0;width:100%;min-width:0;max-width:100%;height:100%;display:grid;position:relative}.boot-row{z-index:2;justify-content:space-between;align-items:baseline;gap:var(--s-4);min-width:0;padding-bottom:var(--s-5);border-bottom:1px solid color-mix(in srgb, var(--stone) 24%, transparent);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.135em;text-transform:uppercase;color:var(--fg-3);display:flex;position:relative}.boot-host{color:var(--silver)}.boot-stage{isolation:isolate;place-items:center;min-height:0;display:grid;position:relative;overflow:hidden}.boot-count{z-index:2;padding-inline:clamp(var(--s-4), 2vw, var(--s-6));background:var(--midnight);font-family:var(--mono);font-variation-settings:var(--vf-display);font-variant-numeric:tabular-nums;letter-spacing:-.07em;color:var(--silver);align-items:baseline;font-size:clamp(2.75rem,5vw,4.25rem);font-weight:500;line-height:1;display:flex;position:relative;transform:translateZ(0)}.boot-count:before,.boot-count:after{content:"";background:linear-gradient(to right, transparent, color-mix(in srgb, var(--stone) 34%, transparent));width:min(24vw,15rem);height:1px;position:absolute;top:50%}.boot-count:before{right:100%}.boot-count:after{left:100%;transform:rotate(180deg)}.boot-count sup{font-family:var(--mono);letter-spacing:.04em;color:var(--orange);margin:.02em 0 0 .2em;font-size:.24em;font-weight:500}.boot-track{width:min(100%,22rem);height:1px;margin-bottom:var(--s-2);background:color-mix(in srgb, var(--stone) 28%, transparent);grid-template-columns:repeat(4,1fr);justify-self:center;display:grid;position:relative}.boot-progress{background:var(--orange);transform-origin:0;will-change:transform;position:absolute;inset:0;transform:scaleX(0)}.boot-track i{z-index:1;border-left:1px solid var(--midnight);position:relative}html.intro-done .boot-progress{will-change:auto}html.intro-done .boot{animation:boot-out var(--boot-exit) var(--ease-inout) var(--boot-out) forwards}@keyframes boot-out{to{transform:translateY(-101%)}}[data-intro]{animation-play-state:paused}html.intro-done [data-intro]{animation-play-state:running}.hero{isolation:isolate;background:var(--bg);grid-template-rows:minmax(0,1fr);min-height:100svh;display:grid;position:relative;overflow:clip}.hero-field{z-index:-1;pointer-events:none;contain:strict;position:absolute;inset:0}.hero-canvas{opacity:0;width:100%;height:100%;transition:opacity var(--dur-slow) var(--ease-out);display:block}.hero-canvas.is-live{opacity:1}.hero-weave,.hero-vault{display:block;position:absolute;inset:0}.hero-weave{background-image:linear-gradient(to right, color-mix(in srgb, var(--signal) 12%, transparent) 1px, transparent 1px), linear-gradient(to bottom, color-mix(in srgb, var(--signal) 8%, transparent) 1px, transparent 1px);opacity:.22;background-size:3.25rem 3.25rem;-webkit-mask-image:linear-gradient(#000 2%,#0000 40%);mask-image:linear-gradient(#000 2%,#0000 40%)}.hero-vault{background:linear-gradient(to bottom, var(--bg), transparent 18%), linear-gradient(to top, color-mix(in srgb, var(--bg) 78%, transparent), transparent 14%), linear-gradient(to left, color-mix(in srgb, var(--bg) 90%, transparent), transparent 28%)}.hero-shell{z-index:1;gap:clamp(var(--s-5), 3.2vw, var(--s-8));min-width:0;padding-block:calc(var(--nav-h) + var(--s-4)) var(--s-6);grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:relative}.hero-shell:before{content:"";--tick:color-mix(in srgb, var(--accent) 52%, transparent);inset:var(--nav-h) calc(var(--gutter) * .34) var(--s-2);z-index:-1;pointer-events:none;background-image:linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick)), linear-gradient(var(--tick), var(--tick));background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat;background-size:13px 1px,1px 13px,13px 1px,1px 13px,13px 1px,1px 13px,13px 1px,1px 13px;position:absolute}.hero-brow,.hero-foot{justify-content:space-between;align-items:center;gap:var(--s-4);min-width:0;font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3);line-height:1.4;display:flex}.hero-brow{padding-bottom:var(--s-3);border-bottom:1px solid var(--line-soft)}.hero-brow-live{align-items:center;gap:var(--s-2);color:var(--accent);display:inline-flex}.hero-brow-live:before{content:"";background:var(--accent);width:.4375rem;height:.4375rem;animation:hero-beat 3.2s var(--ease-inout) infinite}@keyframes hero-beat{50%{opacity:.32}}.hero-track{align-items:center;gap:var(--s-3);color:color-mix(in srgb, var(--signal) 78%, var(--fg-3));font-variant-numeric:tabular-nums;white-space:nowrap;display:inline-flex}.hero-mid{align-content:center;gap:clamp(var(--s-6), 4vw, var(--s-9));grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.hero-line{isolation:isolate;font-size:calc(clamp(3rem, 30vw, 9rem) * var(--fit,1));perspective:1000px;display:block;position:relative}.hero-line+.hero-line{margin-top:-.26em}html.js .hero-line{visibility:hidden}html.js .hero-line.is-set{visibility:visible}.hero-plate{width:max-content;display:block;position:relative}.hero-glow{z-index:0;pointer-events:none;background:radial-gradient(44% 56% at 44% 62%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 72%), radial-gradient(60% 40% at 50% 104%, color-mix(in srgb, var(--signal) 16%, transparent), transparent 70%);display:block;position:absolute;inset:-22% -10%}.hero-name{font-size:inherit;font-variation-settings:var(--vf-display);letter-spacing:-.045em;color:var(--fg);white-space:nowrap;perspective:900px;transform-style:preserve-3d;font-weight:800;line-height:.82;display:block}.hero-name--alt{color:var(--accent)}.hero-name--fill{z-index:2;position:relative}.hero-name.hero-name--trace{z-index:1;pointer-events:none;opacity:0;color:var(--signal);position:absolute;inset:0}.hero-char{vertical-align:bottom;margin-block:-.18em -.16em;margin-right:-.09em;margin-left:calc(-.09em + var(--kern,0em));transform-style:preserve-3d;padding-block:.18em .16em;padding-inline:.09em;display:inline-block;overflow:hidden}.hero-glyph{backface-visibility:hidden;line-height:1;display:block}.hero-pen{z-index:4;background:var(--accent);width:max(2px,.005em);box-shadow:0 0 .4em color-mix(in srgb, var(--accent) 55%, transparent);pointer-events:none;opacity:0;position:absolute;top:-.08em;bottom:-.06em;left:0}.hero-rule{z-index:0;background:linear-gradient(to right, transparent, color-mix(in srgb, var(--signal) 62%, transparent), transparent);height:1px;transform-origin:var(--rule-origin,left) center;pointer-events:none;opacity:0;position:absolute;bottom:.06em;left:0;right:0;transform:scaleX(0)}.hero-aside{gap:var(--s-5);width:100%;min-width:0;padding:clamp(var(--s-3), 1.4vw, var(--s-5)) 0 clamp(var(--s-5), 2.5vw, var(--s-7)) clamp(var(--s-5), 2.5vw, var(--s-7));border-left:1px solid var(--line);grid-template-columns:minmax(0,1fr);align-content:start;display:grid;position:relative}.hero-aside:before{content:"";background:var(--accent);width:1px;height:3.5rem;position:absolute;top:0;left:-1px}.hero-role{align-items:center;gap:var(--s-3);color:var(--accent);letter-spacing:.15em;display:flex}.hero-role:before{content:"";background:currentColor;width:1.5rem;height:1px}.hero-thesis{font-variation-settings:var(--vf-title);letter-spacing:-.032em;color:var(--fg);text-wrap:balance;max-width:18ch;font-size:clamp(1.55rem,2.25vw,2.45rem);font-weight:600;line-height:1.08}.hero-resume{isolation:isolate;justify-self:start;align-items:center;gap:var(--s-3);border:1px solid var(--accent);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);transition:color var(--dur-fast) var(--ease-out);padding:.5rem .85rem;font-weight:500;line-height:1;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.hero-resume:before{content:"";z-index:-1;background:var(--accent);transform-origin:0;transition:transform var(--dur-fast) var(--ease-out);position:absolute;inset:0;transform:scaleX(0)}.hero-resume svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:.8125rem;height:.8125rem;transition:transform var(--dur-fast) var(--ease-out)}.hero-resume:hover,.hero-resume:focus-visible{color:var(--bg)}.hero-resume:hover:before,.hero-resume:focus-visible:before{transform:scaleX(1)}.hero-resume:hover svg{transform:translateY(2px)}.hero-foot{padding-top:var(--s-3);border-top:1px solid var(--line-soft)}.hero-place{align-items:center;gap:var(--s-3);min-width:0;display:inline-flex}.hero-clock:not(:empty){padding-left:var(--s-3);border-left:1px solid var(--line);letter-spacing:.1em;font-variant-numeric:tabular-nums;color:var(--fg)}.hero-cue{align-items:center;gap:var(--s-3);color:var(--fg-3);white-space:nowrap;transition:color var(--dur-fast) var(--ease-out);text-decoration:none;display:inline-flex}.hero-cue:hover{color:var(--accent)}.hero-cue-rail{background:var(--line);width:clamp(3rem,7vw,5.5rem);height:1px;display:block;position:relative;overflow:hidden}.hero-cue-rail i{background:var(--accent);width:36%;animation:hero-cue 2.4s var(--ease-inout) infinite;position:absolute;inset:0 auto}@keyframes hero-cue{0%{transform:translate(-120%)}to{transform:translate(300%)}}@media (max-width:40rem){.hero-brow,.hero-foot{row-gap:var(--s-2);flex-wrap:wrap}.hero-cue{margin-left:auto}}.hero-sweep{z-index:2;pointer-events:none;background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--signal) 20%, transparent) 44%, color-mix(in srgb, var(--accent) 26%, transparent) 56%, transparent);width:46%;position:absolute;top:-12%;bottom:-12%;left:0;transform:translate(-150%)skew(-10deg)}.hero-fade{animation:rise var(--dur-slow) var(--ease-out) .24s backwards}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}.about-section{isolation:isolate;padding-block:var(--section-y);position:relative;overflow:hidden}.about-section:before{content:"";inset:var(--section-y) var(--gutter) auto;z-index:-1;background-image:linear-gradient(to right, var(--line-soft) 1px, transparent 1px), linear-gradient(to bottom, var(--line-soft) 1px, transparent 1px);opacity:.16;pointer-events:none;background-size:12.5% 100%,100% 25%;height:min(10rem,18vw);position:absolute;-webkit-mask-image:linear-gradient(115deg,#000,#0000 78%);mask-image:linear-gradient(115deg,#000,#0000 78%)}.about-lead{width:100%;max-width:none;padding:clamp(var(--s-4), 1.8vw, var(--s-6));border-block:1px solid var(--line-soft);border-left:1px solid var(--accent);background:color-mix(in srgb, var(--bg-raised) 58%, transparent);font-variation-settings:var(--vf-title);letter-spacing:-.018em;color:var(--fg);flex-wrap:wrap;align-items:baseline;gap:.18em .3em;font-size:clamp(1.65rem,2.55vw,2.75rem);font-weight:400;line-height:1.14;display:flex}.about-line{width:fit-content;max-width:100%;display:block;position:relative}.about-line-ink{margin-block:-.16em -.24em;padding-block:.16em .24em;display:block;overflow:hidden}.about-line-ink>span{display:block}.about-line-trace{z-index:2;background:linear-gradient(90deg, color-mix(in srgb, var(--accent-mark) 45%, transparent), var(--accent-mark) 30%, var(--accent) 100%);pointer-events:none;height:1px;position:absolute;bottom:-.02em;left:0;right:0;transform:scaleX(0)}.about-line-pen{z-index:3;background:var(--accent);pointer-events:none;opacity:0;width:max(2px,.006em);position:absolute;top:-.04em;bottom:-.06em;left:0}.log{gap:clamp(var(--s-5), 2.5vw, var(--s-7));display:grid;position:relative}.log-spine{background:var(--line-soft);width:1px;position:absolute;top:0;bottom:0;left:5px;overflow:hidden;-webkit-mask-image:linear-gradient(#0000 0,#000 1.25rem calc(100% - 5rem),#0000 100%);mask-image:linear-gradient(#0000 0,#000 1.25rem calc(100% - 5rem),#0000 100%)}.log-spine-fill{background:var(--accent);transform-origin:top;width:100%;height:100%;display:block;transform:scaleY(0)}.log-item{z-index:0;isolation:isolate;gap:clamp(var(--s-6), 4vw, var(--s-9));margin-left:var(--s-7);padding:clamp(var(--s-5), 3vw, var(--s-8));border:1px solid var(--line-soft);background:color-mix(in srgb, var(--bg-raised) 76%, var(--bg));transition:border-color var(--dur-base) var(--ease-soft), background-color var(--dur-base) var(--ease-soft);grid-template-columns:minmax(10rem,.28fr) minmax(0,1fr);display:grid;position:relative}.log-item.is-active{border-color:var(--line);background:color-mix(in srgb, var(--bg-raised) 92%, var(--bg))}.log-item:before{content:"";z-index:-1;background:linear-gradient(105deg, color-mix(in srgb, var(--accent) 6%, transparent), transparent 52%);opacity:0;transition:opacity var(--dur-slow) var(--ease-soft);pointer-events:none;position:absolute;inset:0}.log-item.is-active:before{opacity:1}.log-item:after{content:"";background:var(--line-soft);pointer-events:none;height:1px;transition:background-color var(--dur-base) var(--ease-soft);position:absolute;top:0;left:0;right:0}.log-item.is-active:after{background:linear-gradient(to right, var(--accent), var(--accent-mark) 28%, var(--line-soft) 72%)}.log-item-trace{z-index:2;background:linear-gradient(90deg, color-mix(in srgb, var(--accent-mark) 45%, transparent), var(--accent-mark) 30%, var(--accent) 100%);transform-origin:0;pointer-events:none;height:1px;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.log-node{top:clamp(var(--s-5), 3vw, var(--s-8));left:calc(0px - var(--s-7) - 1px);border:1px solid var(--line);background:var(--bg);width:11px;height:11px;transition:border-color var(--dur-base) var(--ease-soft), background-color var(--dur-base) var(--ease-soft);border-radius:50%;position:absolute}.log-item.is-active .log-node{border-color:var(--accent);background:var(--accent)}.log-node:before{content:"";border:1px solid var(--accent);opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-soft), transform var(--dur-base) var(--ease-out);border-radius:50%;position:absolute;inset:-4px;transform:scale(.72)}.log-item.is-active .log-node:before{opacity:.5;transform:scale(1)}.log-node:after{content:"";border:1px solid var(--accent);opacity:0;pointer-events:none;border-radius:50%;position:absolute;inset:-6px}.log-item.is-active .log-node:after{animation:node-ignite .7s var(--ease-out)}@keyframes node-ignite{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(2.1)}}.log-line{display:block;overflow:hidden}.log-line>span{display:block}.log-role .log-line,.log-points .log-line{margin-block:-.14em -.26em;padding-block:.14em .26em}.log-meta{align-content:start;gap:var(--s-3);padding-right:var(--s-5);border-right:1px solid var(--line-soft);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.105em;text-transform:uppercase;color:var(--fg-3);line-height:1.5;display:grid}.log-meta .log-period{width:fit-content;padding-bottom:var(--s-2);border-bottom:1px solid var(--accent-mark);color:var(--fg);font-variant-numeric:tabular-nums;display:inline-flex}.log-body{min-width:0}.log-role{font-variation-settings:var(--vf-title);letter-spacing:-.045em;color:var(--fg);font-size:clamp(2rem,4.2vw,4.5rem);font-weight:700;line-height:.94}.log-role .log-line{transition:transform var(--dur-slow) var(--ease-out)}.log-item.is-active .log-role .log-line{transform:translate(.12em)}.log-company{margin-top:var(--s-3);font-family:var(--mono);font-size:var(--t-meta);letter-spacing:.09em;text-transform:uppercase;color:var(--fg-3);transition:color var(--dur-base) var(--ease-soft);font-weight:500;display:block}.log-item.is-active .log-company{color:var(--accent)}.log-points{max-width:none;margin-top:clamp(var(--s-6), 3vw, var(--s-8));background:var(--line-soft);border:1px solid var(--line-soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;display:grid}.log-points li{align-content:start;gap:var(--s-3);min-height:8rem;padding:var(--s-4);background:var(--bg-raised);letter-spacing:-.006em;color:var(--fg-2);transition:background-color var(--dur-fast) var(--ease-soft);grid-template-columns:1rem minmax(0,1fr);font-size:clamp(.84rem,.92vw,.96rem);line-height:1.58;display:grid}.log-points li:hover{background:color-mix(in srgb, var(--accent) 5%, var(--bg-raised))}.log-points li:last-child:nth-child(odd){grid-column:1/-1;min-height:6.5rem}.log-points .log-line{transition:transform var(--dur-base) var(--ease-out)}.log-point-text{transition:color var(--dur-base) var(--ease-soft)}.log-item.is-active .log-point-text{color:var(--fg)}.log-item.is-active .log-points .log-line{transform:translate(.22rem)}.log-item.is-active .log-points li:nth-child(2) .log-line{transition-delay:35ms}.log-item.is-active .log-points li:nth-child(3) .log-line{transition-delay:70ms}.log-item.is-active .log-points li:nth-child(4) .log-line{transition-delay:.105s}.log-tick{background:var(--accent-mark);transform-origin:0;width:.55rem;height:1px;margin-top:.82em}.work{padding-block:var(--section-y);position:relative}.work-head{padding-inline:var(--gutter)}.work-rail{align-items:center;gap:var(--s-5);padding-bottom:var(--s-2);margin-bottom:clamp(var(--s-6), 3vw, var(--s-8));font-family:var(--mono);font-size:var(--t-label);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);display:flex}.work-rail-line{background:var(--line-soft);flex:auto;height:1px;overflow:hidden}.work-rail-fill{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.work-rail-hint{display:none}.work-track{gap:var(--block-gap);padding-inline:var(--gutter);grid-template-columns:repeat(auto-fit,minmax(min(100%,62rem),1fr));display:grid}.project{isolation:isolate;min-width:0;padding:clamp(var(--s-4), 2vw, var(--s-6));border:1px solid var(--line-soft);background:color-mix(in srgb, var(--bg-raised) 78%, var(--bg));box-shadow:0 1.25rem 4rem -3rem color-mix(in srgb, var(--bg-sunken) 82%, transparent);transition:border-color var(--dur-base) var(--ease-soft), background-color var(--dur-base) var(--ease-soft), opacity var(--dur-base) var(--ease-soft);grid-template-rows:auto auto minmax(0,1fr);grid-template-columns:minmax(0,1fr);align-content:start;display:grid;position:relative;overflow:hidden;container-type:inline-size}.project:hover{border-color:var(--line);background:color-mix(in srgb, var(--bg-raised) 90%, var(--bg))}.project:after{content:attr(data-project);z-index:-1;font-variation-settings:var(--vf-display);letter-spacing:-.075em;color:color-mix(in srgb, var(--fg) 2.5%, transparent);white-space:nowrap;pointer-events:none;font-size:clamp(5rem,15cqw,15rem);font-weight:800;line-height:.8;position:absolute;bottom:-.19em;right:-.035em}.project-head{justify-content:space-between;align-items:baseline;gap:var(--s-3) var(--s-5);min-height:2.4rem;padding:0 var(--s-2) var(--s-3);border-bottom:1px solid var(--line-soft);display:flex}.project-head .tag{letter-spacing:.115em;line-height:1.45}.project-role{flex:12rem;min-width:0;max-width:58ch}.project-status{color:var(--accent);flex:none}.project-year{flex:none;margin-left:auto}.project-masthead{align-items:center;gap:clamp(var(--s-7), 6cqw, var(--s-10));padding:clamp(var(--s-5), 2.4cqw, var(--s-7)) var(--s-2);border-bottom:1px solid var(--line-soft);grid-template-columns:minmax(0,1.02fr) minmax(20rem,.98fr);display:grid}.project--minimal .project-masthead{grid-template-columns:minmax(0,.75fr) minmax(20rem,1.25fr)}.project--minimal .project-decisions{max-width:62rem}.project-title{align-items:center;gap:var(--s-4);font-variation-settings:var(--vf-title);letter-spacing:-.048em;color:var(--fg);text-wrap:balance;font-size:clamp(min(2.25rem,12cqw),5.2cqw,5.25rem);font-weight:700;line-height:.83;display:flex}.project-icon{aspect-ratio:1;border:1px solid var(--line);border-radius:22%;flex:none;width:clamp(2.5rem,4.5cqw,4.25rem);display:block;overflow:hidden}.project-icon img{object-fit:cover;width:100%;height:100%}.project-icon--mark{background:var(--bg-sunken);font-family:var(--mono);color:var(--accent);place-items:center;font-size:1.1rem;font-weight:600;display:grid}.project-summary{max-width:58ch;padding:var(--s-2) var(--s-2) var(--s-2) clamp(var(--s-5), 2.5cqw, var(--s-7));letter-spacing:-.009em;color:var(--fg);text-wrap:pretty;justify-self:stretch;font-size:clamp(.95rem,1.15cqw,1.12rem);line-height:1.68;position:relative}.project-summary:before{content:"";background:linear-gradient(to bottom, transparent, var(--accent), transparent);width:1px;position:absolute;inset:0 auto 0 0}.project-grid{gap:clamp(var(--s-4), 2cqw, var(--s-6));margin-top:clamp(var(--s-4), 2cqw, var(--s-6));grid-template-columns:minmax(0,1fr);min-width:0;min-height:0;display:grid}.project-col{align-content:start;min-width:0;display:grid}.project-col-head{align-items:center;gap:var(--s-4);display:flex}.project-col-label{letter-spacing:.135em;color:var(--accent-mark);flex:none}.project-col-rule{background:linear-gradient(to right, var(--line), transparent);flex:auto;height:1px}.project-decisions{align-content:start;gap:var(--s-3);min-height:0}.project-decisions .link{justify-self:start}.project-links{align-items:center;gap:var(--s-3) var(--s-6);flex-wrap:wrap;min-width:0;display:flex}.project-links .link{flex:none}.project-media{aspect-ratio:4/3;border:1px solid var(--line-soft);background:var(--bg-sunken);isolation:isolate;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--fg) 3%, transparent);position:relative;overflow:hidden}.project-media:before{content:"";z-index:3;border:1px solid color-mix(in srgb, var(--fg) 7%, transparent);pointer-events:none;position:absolute;inset:0}.project-media:after{content:"";z-index:1;background:radial-gradient(ellipse 80% 60% at 50% 108%, color-mix(in srgb, var(--bg-sunken) 92%, transparent) 0%, transparent 62%), linear-gradient(to top, var(--bg-sunken) 2%, transparent 46%);pointer-events:none;position:absolute;inset:0}.project-cover{z-index:0;position:absolute;inset:-10%;overflow:hidden}.project-cover img{object-fit:cover;opacity:.5;width:100%;height:100%}.gallery{z-index:2;grid-template-columns:repeat(var(--gallery-columns,2), minmax(0, 1fr));gap:var(--s-3);height:100%;padding:var(--s-3);display:grid;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 14% 86%,#0000);mask-image:linear-gradient(#0000,#000 14% 86%,#0000)}.gallery-col{align-content:start;gap:var(--s-3);padding-bottom:var(--s-3);will-change:transform;grid-auto-rows:max-content;display:grid}.shot{aspect-ratio:9/16;box-shadow:0 0 0 1px color-mix(in srgb, var(--silver) 14%, transparent), 0 18px 34px -18px #000000d9;border-radius:8px;display:block;overflow:hidden}.shot img{object-fit:cover;width:100%;height:100%}.notes{border-top:1px solid var(--line-soft);gap:0;display:grid}.notes li{gap:var(--s-4);min-height:0;padding:clamp(.7rem, 1.1cqw, .95rem) var(--s-2);border-bottom:1px solid var(--line-soft);letter-spacing:-.004em;color:var(--fg);text-wrap:pretty;transition:padding-left var(--dur-base) var(--ease-out), color var(--dur-fast) var(--ease-soft);grid-template-columns:1.25rem minmax(0,1fr);font-size:clamp(.875rem,.98cqw,1.02rem);line-height:1.52;display:grid;position:relative}.notes li:before{content:"";border:1px solid var(--accent-mark);width:.65rem;height:.65rem;box-shadow:inset 0 0 0 3px var(--bg-raised);background:var(--accent-mark);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);border-radius:50%;margin-top:.42em}.notes li:after{content:"";background:var(--accent);transform-origin:0;width:28%;height:1px;transition:transform var(--dur-slow) var(--ease-out);position:absolute;bottom:-1px;left:0;transform:scaleX(0)}.notes li:hover{padding-left:var(--s-4)}.notes li:hover:before{box-shadow:inset 0 0 0 2px var(--bg-raised);transform:scale(1.2)}.notes li:hover:after{transform:scaleX(1)}.chips{border:1px solid var(--line-soft);background:var(--line-soft);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.085em;text-transform:uppercase;color:var(--fg-3);grid-template-columns:repeat(auto-fit,minmax(min(100%,3.9rem),1fr));gap:0;margin-top:.35rem;line-height:1.35;display:grid}.chips li{background:var(--bg-raised);min-width:0;min-height:1.8rem;color:var(--fg-3);transition:color var(--dur-fast) var(--ease-soft), background-color var(--dur-fast) var(--ease-soft);grid-template-columns:1.05rem minmax(0,1fr);align-items:center;gap:.3rem;padding:.2rem .3rem;font-size:clamp(.52rem,.57cqw,.63rem);line-height:1.15;display:grid;position:relative;overflow:hidden}.chips li:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform var(--dur-base) var(--ease-out);position:absolute;inset:auto 0 0;transform:scaleX(0)}.chips li:hover{z-index:1;color:var(--fg);background:color-mix(in srgb, var(--accent) 6%, var(--bg-raised))}.chips li:hover:after{transform:scaleX(1)}.project-tech-icon{border:1px solid var(--line);width:1.05rem;height:1.05rem;color:var(--fg-2);transition:border-color var(--dur-fast) var(--ease-soft), color var(--dur-fast) var(--ease-soft), transform var(--dur-base) var(--ease-out);border-radius:50%;place-items:center;display:grid}.project-tech-icon:empty:after{content:"";background:currentColor;border-radius:50%;width:.3rem;height:.3rem}.project-tech-icon .stack-icon{fill:currentColor;width:.54rem;height:.54rem}.chips li:hover .project-tech-icon{border-color:var(--accent);color:var(--accent);transform:rotate(-7deg)scale(1.06)}.signal-feed{border:1px solid var(--line);background:color-mix(in srgb, var(--bg-sunken) 58%, transparent);grid-template-columns:minmax(0,1fr);align-self:end;min-height:0;display:grid;position:relative;overflow:hidden}.signal-feed:after{content:"";z-index:4;background:linear-gradient(to bottom, transparent, var(--accent), transparent);opacity:0;width:1px;animation:signal-scan 7s var(--ease-inout) infinite;pointer-events:none;position:absolute;top:0;bottom:0;left:24%;transform:translate(-12vw)}@keyframes signal-scan{12%{opacity:0}28%{opacity:.65}62%{opacity:.65}78%,to{opacity:0;transform:translate(76vw)}}.signal-feed-head{z-index:2;justify-content:space-between;align-items:center;gap:var(--s-4);padding:.7rem var(--s-4);border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg-raised) 72%, transparent);display:flex;position:relative}.signal-feed-title{align-items:flex-start;gap:var(--s-3);letter-spacing:.12em;color:var(--fg);font-size:clamp(.72rem,.8cqw,.88rem);line-height:1.35;display:flex}.signal-feed-state{letter-spacing:.105em;color:var(--fg-3);line-height:1.35}.signal-live,.signal-snapshot{background:var(--accent);border-radius:50%;width:.5rem;height:.5rem}.signal-live{animation:signal-breathe 2.4s var(--ease-inout) infinite}@keyframes signal-breathe{50%{opacity:.42;transform:scale(.58)}}.signal-spin{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;width:.42em;height:.42em;animation:.72s linear infinite signal-spin;display:inline-block}@keyframes signal-spin{to{transform:rotate(1turn)}}.signal-grid{z-index:2;isolation:isolate;grid-template-columns:repeat(6,minmax(0,1fr));min-height:0;display:grid;position:relative}.signal-cell{border-right:1px solid var(--line-soft);isolation:isolate;min-width:0;min-height:4.2rem;transition:background-color var(--dur-base) var(--ease-soft);flex-direction:column;justify-content:center;gap:.38rem;padding:.55rem clamp(.4rem,.7vw,.65rem);display:flex;position:relative;overflow:hidden}.signal-cell:last-child{border-right:0}.signal-cell:hover{background:color-mix(in srgb, var(--bg-raised) 78%, transparent)}.signal-cell dt{align-items:center;gap:var(--s-2);letter-spacing:.105em;text-overflow:ellipsis;white-space:nowrap;color:var(--fg-3);font-size:clamp(.52rem,.6vw,.65rem);line-height:1.15;display:flex;overflow:hidden}.signal-cell dt span{background:var(--accent-mark);width:1.1rem;height:1px}.signal-cell dd{font-variation-settings:var(--vf-title);font-variant-numeric:tabular-nums;letter-spacing:-.045em;white-space:nowrap;color:var(--fg);font-size:clamp(1.1rem,1.55vw,1.8rem);font-weight:750;line-height:1;overflow:visible}.signal-cell--primary:after{content:"";z-index:-1;aspect-ratio:1;border:1px solid var(--line);width:9rem;box-shadow:0 0 0 1.5rem color-mix(in srgb, var(--line-soft) 44%, transparent), 0 0 0 3rem color-mix(in srgb, var(--line-soft) 22%, transparent);border-radius:50%;position:absolute;bottom:-3.75rem;right:-2.5rem}.signal-cell-line{background:linear-gradient(to right, var(--accent), var(--line-soft) 38%, transparent);transform-origin:0;width:100%;height:1px;transition:transform var(--dur-slow) var(--ease-out);display:block;transform:scaleX(.22)}.signal-cell:hover .signal-cell-line{transform:scaleX(1)}.signal-trace{z-index:1;opacity:.075;pointer-events:none;justify-content:space-around;align-items:end;gap:2px;height:34%;display:flex;position:absolute;inset:auto 0 0}.signal-trace i{width:1px;height:var(--bar);background:var(--accent);transform-origin:bottom;animation:signal-trace 4.8s var(--ease-inout) infinite alternate;animation-delay:calc(var(--bar) * -.025)}@keyframes signal-trace{50%{transform:scaleY(.34)}}.stack-section{padding-block:var(--section-y);overflow:clip}.stack-ledger{isolation:isolate;border-bottom:1px solid var(--line);width:100%;max-width:100%;position:relative;overflow:hidden}.stack-ledger:before{content:"";z-index:-2;background-image:linear-gradient(to right, var(--line-soft) 1px, transparent 1px);opacity:.35;pointer-events:none;background-size:12.5% 100%;position:absolute;inset:0}.stack-ledger-scan{z-index:3;background:linear-gradient(to right, transparent, var(--accent) 30%, var(--accent) 70%, transparent);opacity:0;pointer-events:none;height:1px;position:absolute;inset:0 0 auto;transform:translateY(0)}.is-ledger-live .stack-ledger-scan{animation:stack-ledger-scan 6s var(--ease-inout) infinite}@keyframes stack-ledger-scan{0%{opacity:0;transform:translateY(0)}10%,78%{opacity:.5}88%,to{opacity:0;transform:translateY(31rem)}}.stack-ledger-row{grid-template-columns:minmax(11rem,.24fr) minmax(0,1fr);align-items:stretch;min-height:6.25rem;display:grid;position:relative;overflow:hidden}.stack-ledger-rule{background:var(--line);height:1px;position:absolute;inset:0 0 auto}.stack-ledger-head{align-content:center;gap:var(--s-1) var(--s-3);min-width:0;padding:var(--s-4) clamp(var(--s-4), 1.5vw, var(--s-5));border-right:1px solid var(--line);grid-template-columns:minmax(0,1fr);display:grid;position:relative}.stack-ledger-head h3{font-variation-settings:var(--vf-title);letter-spacing:-.035em;min-width:0;color:var(--fg);font-size:clamp(1.4rem,2.1vw,2rem);font-weight:750;line-height:.95}.stack-ledger-size{letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);grid-column:1;font-size:.5625rem}.stack-ledger-items{grid-template-columns:repeat(auto-fit,minmax(min(100%,9.5rem),1fr));align-items:stretch;min-width:0;display:grid;overflow:hidden}.stack-ledger-items li{align-items:center;gap:var(--s-2);min-width:0;padding:var(--s-3) clamp(var(--s-3), 1.5vw, var(--s-5));border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);color:var(--fg-2);transition:color var(--dur-fast) var(--ease-soft), background-color var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-out);grid-template-columns:1.9rem minmax(0,1fr);display:grid;position:relative;overflow:hidden;transform:translateZ(0)}.stack-ledger-items li:hover{z-index:2;color:var(--fg);background:color-mix(in srgb, var(--accent) 6%, transparent);transform:translateZ(0)}.stack-ledger-items li>:last-child{overflow-wrap:anywhere;min-width:0}.stack-ledger-icon{border:1px solid var(--line);width:1.9rem;height:1.9rem;transition:border-color var(--dur-fast) var(--ease-soft), transform var(--dur-fast) var(--ease-out);border-radius:50%;place-items:center;display:grid}.stack-ledger-icon .stack-icon{width:.82rem;height:.82rem}.stack-ledger-items li:hover .stack-ledger-icon{border-color:var(--accent);transform:rotate(-8deg)scale(1.08)}.stack-icon{width:1em;height:1em;fill:var(--fg-3);transition:fill var(--dur-fast) var(--ease-soft);flex:none;align-self:center}.stack-certs{gap:var(--s-5) var(--s-9);margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--line-soft);grid-template-columns:minmax(8rem,.35fr) minmax(0,1fr);align-items:start;display:grid}.certs{gap:var(--s-3) clamp(var(--s-6), 4vw, var(--s-9));font-size:var(--t-small);color:var(--fg-2);grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr));display:grid}.certs li{gap:var(--s-3);grid-template-columns:auto minmax(0,1fr);display:grid}.certs li:before{content:"✓";font-family:var(--mono);color:var(--accent-mark)}.contact-grid{gap:var(--s-6) clamp(var(--s-7), 6vw, var(--s-10));grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start;display:grid}.contact-lead{font-size:var(--t-lead);font-variation-settings:var(--vf-title);letter-spacing:-.022em;color:var(--fg);text-wrap:balance;max-width:20ch;font-weight:600;line-height:1.24}.facts{gap:var(--s-5) clamp(var(--s-6), 4vw, var(--s-9));grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));display:grid}.fact dd{margin-top:var(--s-2);font-size:var(--t-small);color:var(--fg)}.contact-mail{width:fit-content;max-width:100%;margin-top:var(--block-gap);padding-block:var(--s-3);font-size:min(9.1vw, calc((100vw - var(--gutter) * 2) / 10.6));font-variation-settings:var(--vf-display);letter-spacing:-.045em;color:var(--fg);white-space:nowrap;transition:color var(--dur-fast) var(--ease-soft);font-weight:800;line-height:1.02;display:block}.contact-mail:hover{color:var(--accent)}.contact-actions{align-items:center;gap:var(--s-3) var(--s-6);margin-top:var(--s-5);flex-wrap:wrap;display:flex}.footer{margin-top:var(--section-y);padding-top:var(--s-4);border-top:1px solid var(--line-soft);gap:var(--s-2) var(--s-6);font-family:var(--mono);font-size:var(--t-label);letter-spacing:.1em;color:var(--fg-3);flex-wrap:wrap;justify-content:space-between;display:flex}#contact{min-height:calc(100svh - var(--nav-h) + var(--section-y))}@container (min-width:34rem){.project-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.project--minimal .project-grid{grid-template-columns:minmax(0,1fr)}.project-media{grid-column:1/-1}}@container (min-width:60rem){.project-grid{grid-template-rows:auto auto;grid-template-columns:minmax(0,1.35fr) minmax(24rem,1.05fr);align-items:stretch}.project-media{aspect-ratio:auto;grid-area:1/1;height:100%;min-height:0}.work:not(.is-rail) .project-media{aspect-ratio:5/4;height:auto}.project-decisions{grid-area:1/2;min-height:auto}.signal-feed{grid-area:2/1/auto/-1}.project--minimal .project-grid{grid-template-columns:minmax(0,1.35fr) minmax(24rem,1.05fr);max-width:70rem}.project--minimal .project-decisions{grid-column:1}}@media (min-width:62rem){.hero-mid{align-items:start;gap:clamp(var(--s-7), 5vw, var(--s-10));grid-template-columns:minmax(0,1.5fr) minmax(19rem,.5fr)}.hero-mid>h1{min-width:0}.hero-line{font-size:calc(clamp(4rem, 16.4vw, 26rem) * var(--fit,1))}}@media (min-width:56rem) and (min-height:56rem){.work.is-rail{height:calc(100svh - var(--nav-h));min-height:40rem;padding-block:var(--s-4) 0;grid-template-rows:auto minmax(0,1fr);align-content:start;display:grid;overflow:clip}.work.is-rail .work-head{align-items:center;column-gap:var(--s-7);padding-bottom:var(--s-2);grid-template-columns:auto minmax(0,1fr);display:grid}.work.is-rail .band-head{border-bottom:0;grid-column:1;grid-template-columns:minmax(0,1fr);margin-bottom:0;padding-bottom:0}.work.is-rail .band-title{font-size:var(--t-h1);transform:translateY(calc(var(--s-2) * -1))}.work.is-rail .band-note{display:none}.work.is-rail .work-rail{grid-column:2;margin-bottom:0}.work.is-rail .work-rail-hint{display:block}.work.is-rail .work-track{align-items:stretch;gap:clamp(var(--s-5), 2.4vw, var(--s-7));width:max-content;min-height:0;padding-bottom:.5rem;display:flex}.work.is-rail .project{width:min(94vw,96rem);height:100%;padding:clamp(var(--s-4), 1.8vw, var(--s-6));flex:none;align-content:space-between;padding-block:clamp(.75rem,1.25vh,1rem)}.work.is-rail .project--minimal{grid-template-rows:auto auto auto;align-self:stretch;width:min(72vw,68rem)}.work.is-rail .project-masthead{padding-block:var(--s-2) var(--s-3)}.work.is-rail .project-title{font-size:clamp(2.25rem,4.6cqw,4.75rem)}.work.is-rail .project-grid{align-items:stretch;row-gap:.5rem;min-height:0;margin-top:.4rem}.work.is-rail .project-media{aspect-ratio:auto;align-self:stretch;height:auto;min-height:0}.work.is-rail .signal-feed{grid-template-columns:minmax(9.5rem,.26fr) minmax(0,1fr);align-self:stretch;min-height:4.2rem}.work.is-rail .signal-feed-head{border-right:1px solid var(--line);border-bottom:0;padding-block:.55rem}.work.is-rail .signal-grid{min-height:0}}@media (max-width:61.99rem){.band-head{grid-template-columns:minmax(0,1fr);align-items:start}.hero-aside{max-width:34rem}.log-item{grid-template-columns:minmax(0,1fr)}.log-meta{padding-right:0;padding-bottom:var(--s-4);border-right:0;border-bottom:1px solid var(--line-soft);flex-wrap:wrap;display:flex}.project-masthead,.project--minimal .project-masthead{align-items:start;gap:var(--s-5);grid-template-columns:minmax(0,1fr)}.project-summary{padding-left:var(--s-5);justify-self:start}.project--minimal .project-grid{grid-template-columns:minmax(0,1fr)}.project--minimal .project-decisions{grid-column:auto}.stack-ledger-row{grid-template-columns:minmax(0,1fr)}.stack-ledger-head{padding:var(--s-3) var(--s-4);border-right:0;grid-template-columns:minmax(0,1fr) auto}.stack-ledger-size{grid-area:1/2/3;align-self:center}.stack-ledger-items{grid-template-columns:repeat(auto-fit,minmax(min(100%,8.5rem),1fr));width:100%}.stack-ledger-items li{min-height:4rem}.stack-certs{gap:var(--s-4);grid-template-columns:minmax(0,1fr)}.contact-grid{grid-template-columns:minmax(0,1fr)}.contact-mail{font-size:min(11.6vw, calc((100vw - var(--gutter) * 2) / 10.6))}}@media (max-width:55.99rem){.signal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.signal-cell:nth-child(3n){border-right:0}}@media (max-width:47.99rem){.signal-feed:after{display:none}.signal-cell{border-right:0;border-bottom:1px solid var(--line-soft);flex-direction:row;align-items:end}.signal-cell:last-child{border-bottom:0}}@media (max-width:35.99rem){.signal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.signal-cell{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);flex-direction:column;align-items:flex-start}.signal-cell:nth-child(2n){border-right:0}}@media (max-width:40rem){.nav-links{justify-content:space-between;width:100%}.about-lead{padding:var(--s-4);font-size:clamp(1.55rem,7.4vw,2.15rem);line-height:1.16}.log-item{margin-left:var(--s-5);padding:var(--s-4)}.log-node{left:calc(0px - var(--s-5) - 1px)}.log-role{font-size:clamp(1.75rem,10vw,2.75rem)}.log-points{grid-template-columns:minmax(0,1fr)}.log-points li,.log-points li:last-child:nth-child(odd){grid-column:auto;min-height:0}.project-head{flex-wrap:wrap}.chips{grid-template-columns:repeat(auto-fit,minmax(min(100%,6rem),1fr))}.chips li{overflow-wrap:break-word}.stack-ledger-row{min-height:0}.stack-ledger-head h3{font-size:1.35rem}.stack-ledger-items{grid-template-columns:repeat(auto-fit,minmax(min(100%,7.75rem),1fr))}.stack-ledger-head{padding-inline:var(--s-3)}.stack-ledger-items li{min-height:3.75rem;padding:var(--s-2) var(--s-3)}.boot-row{align-items:flex-start;font-size:.58rem}.boot-row span:last-child{text-align:right;max-width:14rem}.boot-count{font-size:3rem}.boot-count:before,.boot-count:after{width:22vw}}@media (max-height:30rem){.chips{grid-template-columns:repeat(auto-fit,minmax(min(100%,6rem),1fr))}.chips li{overflow-wrap:break-word}}@media (hover:none){.cursor,.cursor-ripple{display:none}.link:after{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.boot,.progress,.cursor,.cursor-ripple,.stack-ledger-scan{display:none}.hero-glyph,.hero-fade,.hero-brow-live:before,.hero-cue-rail i,.log-node:after{animation:none!important}.hero-canvas{transition:none}.log-role .log-line,.log-points .log-line{transition:none!important;transform:none!important}.signal-live,.signal-spin,.signal-trace i,.signal-feed:after{animation:none}.nav{transition:background-color var(--dur-fast) linear, border-color var(--dur-fast) linear}.link:after,.nav-link:after{transition:none;transform:scaleX(1)}.nav-link:after{opacity:0}.nav-link:hover:after,.nav-link.is-active:after{opacity:1}.link-arrow,.project-tech-icon,.chips li:after,.hero-resume,.hero-resume:before,.hero-resume svg{transition:none}}@media (max-width:40rem){.work .chips{grid-template-columns:repeat(2,minmax(0,1fr))}.work .chips li:last-child:nth-child(odd){grid-column:1/-1}}
