:root{--bg: #000000;--text: #d8d2d2;--muted: #b5aeae;--label: #b86a6a;--accent: #ff2020;--accent-soft: #ff4444;--line: #2a0d0d;--line-strong: #3d1414;--gutter: clamp(20px, 5.5vw, 80px);--section-pad: clamp(56px, 7vw, 104px);--numeral-dim: rgba(255, 32, 32, .42);--tube: #ff3a3a;--glow: drop-shadow(0 0 1px rgba(255, 96, 96, .95)) drop-shadow(0 0 7px rgba(255, 32, 32, .75)) drop-shadow(0 0 22px rgba(255, 32, 32, .42));--glow-off: drop-shadow(0 0 1px rgba(255, 96, 96, 0)) drop-shadow(0 0 7px rgba(255, 32, 32, 0)) drop-shadow(0 0 22px rgba(255, 32, 32, 0));--glow-soft: drop-shadow(0 0 8px rgba(255, 32, 32, .38)) drop-shadow(0 0 38px rgba(255, 32, 32, .22));--glow-soft-off: drop-shadow(0 0 8px rgba(255, 32, 32, 0)) drop-shadow(0 0 38px rgba(255, 32, 32, 0));--numeral-hero-size: clamp(200px, 39vw, 560px);--numeral-section-size: clamp(96px, 9vw, 140px)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--accent-soft) var(--bg)}*::-webkit-scrollbar{width:7px;height:7px}*::-webkit-scrollbar-track{background:var(--bg)}*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#650000,red,#650000);border-radius:999px}html,body,#root{margin:0;min-height:100%}html{scroll-behavior:smooth}body{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:16.5px;font-weight:500;line-height:1.75;color:var(--text);background:var(--bg)}a{color:var(--accent-soft);text-decoration:none;transition:color .18s ease}a:hover{color:#ff8080}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.disp{font-family:Archivo,system-ui,sans-serif;letter-spacing:-.03em}.boot-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:var(--bg)}.boot-grid{position:fixed;top:0;right:0;bottom:0;left:0;z-index:51;pointer-events:none;background-image:linear-gradient(to right,rgba(255,45,45,.13) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,45,45,.13) 1px,transparent 1px);background-size:68px 68px;animation:boot-grid-in .6s ease both}.boot-edge{position:fixed;left:0;right:0;top:0;height:2px;z-index:53;background:var(--accent);opacity:0}.app-shell.boot .hero{z-index:52}.app-shell.boot .boot-hide{opacity:0}.app-shell.wipe .boot-veil{animation:boot-peel .76s cubic-bezier(.6,0,.2,1) both}.app-shell.wipe .boot-grid{animation:boot-grid-out .62s ease both}.app-shell.wipe .boot-edge{animation:boot-edge .76s cubic-bezier(.6,0,.2,1) both}.app-shell.wipe .boot-hide{animation:boot-rise .52s cubic-bezier(.16,1,.3,1) both}.app-shell.wipe .d1{animation-delay:60ms}.app-shell.wipe .d2{animation-delay:.14s}.app-shell.wipe .d3{animation-delay:.22s}.app-shell.wipe .metrics{animation:metrics-cool .88s ease .62s both}@keyframes boot-grid-in{0%{opacity:0}to{opacity:1}}@keyframes boot-grid-out{0%{opacity:1}to{opacity:0}}@keyframes boot-peel{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(100% 0 0 0)}}@keyframes boot-edge{0%{top:0;opacity:1}92%{opacity:1}to{top:100%;opacity:0}}@keyframes boot-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes metrics-cool{0%{border-top-color:var(--accent)}to{border-top-color:var(--line)}}.app-shell{width:min(1200px,100%);margin:0 auto;padding:0 var(--gutter)}.lbl{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--label)}.topbar{display:flex;justify-content:space-between;align-items:baseline;gap:24px;padding:60px 0 0;flex-wrap:wrap}.topbar-mark{color:var(--accent-soft)}.topbar-nav{display:flex;gap:26px;flex-wrap:wrap}.hero{position:relative;isolation:isolate;padding:clamp(72px,13vw,150px) 0 clamp(80px,12vw,130px)}.numeral{display:inline-flex;margin:0;pointer-events:none;-webkit-user-select:none;user-select:none;font-family:Archivo,system-ui,sans-serif;font-weight:800;line-height:.86;color:transparent;-webkit-text-stroke:1.5px rgba(255,32,32,.2)}.numeral-digit{display:block;height:.86em;overflow:hidden;padding-inline:.02em;margin-right:-.07em}.numeral-digit:last-child{margin-right:0}.numeral-strip{display:flex;flex-direction:column;transform:translateY(0);transition:transform 1.15s cubic-bezier(.2,.8,.2,1) .22s}.numeral-strip>span{display:block;height:.86em}.app-shell:not(.boot) .section.in-view .numeral-strip{transform:translateY(calc(var(--steps) * -.86em))}.numeral-hero{position:absolute;z-index:-1;right:calc(-1 * var(--gutter));top:clamp(40px,7vw,68px);font-size:var(--numeral-hero-size);-webkit-text-stroke-width:1.75px;filter:var(--glow-soft-off);transition:-webkit-text-stroke-color 1.6s ease .3s,filter 1.6s ease .3s}.app-shell:not(.boot) .numeral-hero{-webkit-text-stroke-color:rgba(255,58,58,.5);filter:var(--glow-soft)}.section-head{position:sticky;top:40px;align-self:start;display:flex;flex-direction:column;gap:16px}.numeral-section{font-size:var(--numeral-section-size);-webkit-text-stroke-width:1.75px;-webkit-text-stroke-color:var(--numeral-dim)}@keyframes neon-ignite{0%{-webkit-text-stroke-color:var(--numeral-dim);filter:var(--glow-off)}14%{-webkit-text-stroke-color:var(--tube);filter:var(--glow)}22%{-webkit-text-stroke-color:var(--numeral-dim);filter:var(--glow-off)}46%{-webkit-text-stroke-color:var(--tube);filter:var(--glow)}52%{-webkit-text-stroke-color:var(--numeral-dim);filter:var(--glow-off)}70%,to{-webkit-text-stroke-color:var(--tube);filter:var(--glow)}}.app-shell:not(.boot) .section.in-view .numeral-section{animation:neon-ignite .9s steps(1,end) 1.25s both}.ambient{position:absolute;top:0;left:0;right:0;height:1200px;z-index:-1;pointer-events:none;opacity:0;transition:opacity 1.6s ease .3s}.app-shell:not(.boot) .ambient{opacity:1}.ambient:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse calc(var(--numeral-hero-size) * 1.07) calc(var(--numeral-hero-size) * .98) at calc(50% + min(600px,50%) - var(--numeral-hero-size) * .615) calc(81px + clamp(40px,7vw,68px) + var(--numeral-hero-size) * .43),#ff202016,#ff202008 45%,#ff202000);animation:ambient-hum 7s ease-in-out infinite}@keyframes ambient-hum{0%,to{opacity:1}50%{opacity:.74}}.section-head:before{content:"";position:absolute;z-index:-1;left:calc(var(--numeral-section-size) * -1.385);top:calc(var(--numeral-section-size) * -1.17);width:calc(var(--numeral-section-size) * 4);height:calc(var(--numeral-section-size) * 3.2);background:radial-gradient(closest-side,#ff20200f,#ff202000);pointer-events:none;opacity:0}@keyframes spill-ignite{0%{opacity:0}14%{opacity:1}22%{opacity:0}46%{opacity:1}52%{opacity:0}70%,to{opacity:1}}.app-shell:not(.boot) .section.in-view .section-head:before{animation:spill-ignite .9s steps(1,end) 1.25s both}.section-title{margin:0;font-family:inherit;font-weight:400}@keyframes numeral-drift{0%{transform:translateY(0)}to{transform:translateY(146px)}}@supports (animation-timeline: scroll()){@media (prefers-reduced-motion: no-preference){.numeral-hero{animation-name:numeral-drift;animation-duration:auto;animation-timing-function:linear;animation-fill-mode:both;animation-timeline:scroll(root block);animation-range:0 104vh}}}.hero h1{margin:24px 0 0;font-size:clamp(2.6rem,7.6vw,6.5rem);line-height:.94;font-weight:800;color:#fff}.hero h1 .surname{color:var(--accent)}.scramble{display:inline-grid}.scramble>span{grid-area:1 / 1;white-space:pre}.scramble-ghost{visibility:hidden}.hero-body{display:flex;gap:clamp(28px,5vw,60px);margin-top:44px;align-items:flex-start;flex-wrap:wrap}.hero-summary{margin:0;max-width:560px;flex-grow:1;color:var(--muted);text-wrap:pretty}.hero-links{display:flex;flex-direction:column;gap:10px}.hero-links a{font-size:15.5px}.hero-status{margin:0 0 4px}.hero-links a.dim{color:var(--muted)}.hero-links a.dim:hover{color:var(--accent-soft)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.metric{padding:32px 0 32px 28px}.metric+.metric{border-left:1px solid var(--line)}.metric-value{font-size:clamp(1.5rem,2.9vw,2.6rem);font-weight:700;color:var(--accent);line-height:1}.metric-label{margin-top:10px}.count-up{display:inline-grid}.count-up-final,.count-up-live{grid-area:1 / 1;white-space:nowrap}.count-up-final{visibility:hidden}.count-up-live{font-variant-numeric:tabular-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.section{position:relative;isolation:isolate;display:grid;grid-template-columns:200px minmax(0,1fr);gap:clamp(24px,5vw,60px);padding:var(--section-pad) 0;border-bottom:1px solid var(--line)}.section-body{min-width:0}.prose{display:flex;flex-direction:column;gap:18px;max-width:660px}.prose p{margin:0;color:var(--muted);line-height:1.8}.jobs-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px dashed var(--line)}.jobs-top p{margin:0}.jobs-intro{font-size:15.5px;color:var(--muted)}.jobs-count{color:var(--muted)}.job{display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;padding:24px 0;border-bottom:1px dashed var(--line)}.job:last-child{border-bottom:0;padding-bottom:0}.job-index{margin:0;color:var(--accent-soft)}.job-title{margin:2px 0 0;font-size:23px;font-weight:700;letter-spacing:-.02em;line-height:1.2;color:#fff}.job-blurb{margin:6px 0 0;font-size:13px;line-height:1.5;color:#938c8c}.job-tools{list-style:none;margin:0;padding:18px 0 0;line-height:1.85}.job-tools li{display:inline;font-size:15.5px;color:var(--muted)}.job-tools li:not(:last-child):after{content:" · ";color:#5a1f1f}.job-tools .job-tool-primary{font-size:18px;font-weight:600;color:#fff}.rows{display:flex;flex-direction:column;gap:22px}.row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:clamp(16px,3vw,32px)}.row-value{font-size:15.5px;line-height:1.8;color:var(--muted);min-width:0}.row-value a{color:var(--muted);border-bottom:1px solid var(--line-strong)}.row-value a:hover{color:var(--accent-soft)}.timeline{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:28px}.timeline-item+.timeline-item{border-top:1px solid var(--line);padding-top:28px}.timeline-row{display:grid;grid-template-columns:170px minmax(0,1fr);gap:clamp(16px,3vw,32px)}.timeline-period{margin:0;padding-top:4px}.timeline-period.now{color:var(--accent-soft)}.timeline-title{margin:0;font-size:clamp(1.1rem,1.7vw,1.38rem);font-weight:600;color:#fff}.timeline-org{margin:6px 0 0;font-size:14.5px;color:var(--label)}.timeline-details{margin:12px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px;max-width:600px}.timeline-details li{font-size:15.5px;line-height:1.7;color:var(--muted);padding-left:18px;position:relative}.timeline-details li:before{content:"—";position:absolute;left:0;color:var(--line-strong)}.project-card{border:1px solid var(--line);padding:28px;max-width:660px}.project-card+.project-card{margin-top:20px}.project-card header{display:flex;justify-content:space-between;align-items:baseline;gap:18px;flex-wrap:wrap}.project-card h3{margin:0;font-size:1.32rem;font-weight:600;color:#fff}.project-card header a{font-size:12px;letter-spacing:.18em;text-transform:uppercase}.project-card ul{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}.project-card li{font-size:15.5px;line-height:1.7;color:var(--muted)}.tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.tag{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:5px 9px}.case-hero{padding:clamp(56px,9vw,110px) 0 clamp(48px,7vw,80px)}.case-hero h1{font-size:clamp(2.2rem,5.6vw,4.6rem)}.case-hero .hero-summary{margin-top:32px;max-width:660px}.case-body>*+*{margin-top:28px}.contact-block{position:relative;padding:84px 0 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end;gap:36px;flex-wrap:wrap}.contact-block:before{content:"";position:absolute;top:-1px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left center}.contact-block.in-view:before{animation:contact-sweep .9s cubic-bezier(.6,0,.2,1) both}@keyframes contact-sweep{0%{transform:scaleX(0);background:var(--accent)}55%{transform:scaleX(1);background:var(--accent)}to{transform:scaleX(1);background:transparent}}.sweep{display:block;overflow:hidden}.sweep>span{display:inline-block;transform:translateY(105%);transition:transform .78s cubic-bezier(.16,1,.3,1) .14s}.contact-block.in-view .sweep>span{transform:none}.intro-done .sweep>span{transform:none;transition:none}.intro-done .contact-block:before{animation:none;transform:scaleX(1);background:transparent}.contact-head{margin:18px 0 0;font-size:clamp(2rem,5vw,3.25rem);font-weight:800;color:#fff}.contact-email{display:inline-block;margin-top:16px;font-size:clamp(.95rem,1.5vw,1.06rem);border-bottom:1px solid var(--line-strong);padding-bottom:3px;word-break:break-word}.contact-links{display:flex;gap:22px;flex-wrap:wrap}.contact-links a{color:var(--muted)}.contact-links a:hover{color:var(--accent-soft)}.site-footer{margin-top:84px;padding:26px 0 40px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}.footer-copy{margin:0}.reveal{opacity:0;transform:translateY(16px);transition:opacity .62s ease,transform .62s ease}.reveal.in-view{opacity:1;transform:none}@media (max-width: 900px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric:nth-child(3){border-left:0}.metric:nth-child(n+3){border-top:1px solid var(--line)}.section{grid-template-columns:minmax(0,1fr);gap:20px}.section-head{position:relative;top:0;flex-direction:row;align-items:flex-end;gap:14px}:root{--numeral-section-size: 64px}.row,.timeline-row{grid-template-columns:minmax(0,1fr);gap:8px}.job{grid-template-columns:minmax(0,1fr);gap:4px}.job-tools{padding-top:8px}.timeline-period{padding-top:0}}@media (max-width: 560px){.metric{padding:24px 0 24px 18px}.contact-block{padding-top:56px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}.reveal,.reveal.in-view{animation:none;transition:none}.reveal,.reveal.in-view{opacity:1;transform:none}.numeral-strip,.numeral-hero{transition:none}.section .numeral-section,.app-shell:not(.boot) .section.in-view .numeral-section{animation:none;-webkit-text-stroke-color:var(--tube);filter:var(--glow)}.ambient{transition:none}.ambient:before{animation:none}.section .section-head:before,.app-shell:not(.boot) .section.in-view .section-head:before{animation:none;opacity:1}.sweep>span{transform:none;transition:none}.contact-block:before{animation:none;transform:scaleX(1);background:transparent}}
