@font-face{font-family:Space Grotesk;src:url('/assets/fonts/space-grotesk-variable.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}
@font-face{font-family:Manrope;src:url('/assets/fonts/manrope-variable.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:DM Mono;src:url('/assets/fonts/dm-mono-400-normal.woff') format('woff');font-weight:400;font-style:normal;font-display:swap}
:root{--bg:#080808;--surface:#11100f;--surface-2:#1a1511;--text:#f7f4f0;--muted:#b7b0a8;--faint:#948b82;--line:#302720;--accent:#ff8a3d;--accent-strong:#ffb36b;--ember:#ff5b16;--ink:#140b04;--sans:Manrope,Arial,sans-serif;--display:'Space Grotesk',Arial,sans-serif;--mono:'DM Mono',monospace;--radius:10px;color-scheme:dark}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.8 var(--sans);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a{color:inherit;text-decoration:none}
button{cursor:pointer}
button:disabled{cursor:default}
img{max-width:100%;height:auto;display:block}
svg{display:block;max-width:100%}
figure,blockquote,dl,dd{margin:0}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3,h4{font-family:var(--display);font-weight:600;line-height:1.08;text-wrap:balance;letter-spacing:-.045em}
h2{font-size:clamp(36px,4.1vw,56px)}
h3{font-size:28px}
em{font-style:normal;color:var(--accent);font-family:inherit;font-weight:inherit;letter-spacing:inherit}
p{color:var(--muted)}
p+p{margin-top:20px}
::selection{background:var(--accent);color:var(--ink)}
:focus-visible{outline:2px solid var(--accent-strong);outline-offset:5px;border-radius:3px}
[hidden]{display:none!important}
.container{width:min(1240px,calc(100% - 112px));margin-inline:auto}
.section-space{padding-block:106px}
.eyebrow{font:400 10px/1.65 var(--mono);letter-spacing:.12em;color:var(--accent);text-transform:uppercase;display:flex;align-items:center;gap:11px}
.status-dot,.tiny-dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0;background:var(--accent);box-shadow:0 0 0 4px #ff812914}
.icon{width:20px;height:20px;flex-shrink:0}
.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}
.skip-link{position:fixed;left:16px;top:-100px;z-index:1000;background:var(--accent);color:var(--ink);padding:12px 22px}
.skip-link:focus{top:16px}
.lead{font-size:18px;line-height:1.85;max-width:700px}
.muted{color:var(--muted)}
.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:600;line-height:1.55;padding-block:10px;position:relative}
.text-link .icon{width:17px;height:17px;transition:transform .25s ease}
.text-link:hover{color:var(--accent)}
.text-link:hover .icon{transform:translateX(4px)}
.button{min-height:53px;display:inline-flex;justify-content:center;align-items:center;gap:25px;padding:15px 24px;font-size:13px;line-height:1.5;font-weight:700;border:1px solid var(--line);border-radius:7px;position:relative;isolation:isolate;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s,background .25s}
.button .icon{width:18px;height:18px;transition:transform .25s}
.button:hover{transform:translateY(-3px);border-color:var(--accent)}
.button:hover .icon{transform:translateX(4px)}
.button-primary{background:linear-gradient(120deg,#ffac55,#ff7927 65%,#ff6519);color:#170b02;border-color:#ff903f;box-shadow:0 4px 26px #ff6a1617}
.button-primary:before{content:'';position:absolute;inset:0;transform:translateX(-120%) skewX(-22deg);background:linear-gradient(90deg,transparent,#fff7,transparent);z-index:-1}
.button-primary:hover{box-shadow:0 8px 34px #ff741a38}
.button-primary:hover:before{animation:button-sweep .7s ease}
.button-secondary{background:#ffffff03;color:var(--text);border-color:#504034}
.button-secondary:hover{background:#ff84220c}
.chips{padding:0;margin:23px 0;display:flex;flex-wrap:wrap;gap:7px;list-style:none}
.chips li{font-size:10px;line-height:1.5;padding:6px 10px;color:var(--muted);border:1px solid var(--line);border-radius:4px;background:#ff861c03}
.scope-chip{color:var(--accent);font-size:11px;display:inline-flex;gap:8px;align-items:center}
.scope-chip:before{content:'';width:5px;height:5px;background:var(--accent);border-radius:50%}
/* Persistent navigation and a direct control over motion. */
.site-header{position:sticky;top:0;z-index:50;background:#080808ed;border-bottom:1px solid #ffffff0e;backdrop-filter:blur(16px)}
.header-inner{height:84px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;gap:12px;align-items:center;flex-shrink:0}
.brand-mark{width:38px;height:38px;display:block;color:var(--accent)}
.brand-mark svg{width:100%;height:100%}
.brand-name{font:600 14px/1.5 var(--display);letter-spacing:-.02em}
.brand-name>span{display:block;font:400 7px/1.7 var(--mono);letter-spacing:.12em;margin-top:3px;color:var(--faint)}
.navigation{display:flex;gap:32px;margin-inline:auto}
.navigation>a{font-size:12px;font-weight:600;line-height:1.5;color:var(--muted);padding:12px 0;position:relative}
.navigation>a:hover,.navigation>a[aria-current=page]{color:var(--accent-strong)}
.navigation>a:after{content:'';position:absolute;width:0;left:0;bottom:3px;height:2px;background:var(--accent);transition:width .25s}
.navigation>a:hover:after,.navigation>a[aria-current=page]:after{width:100%}
.header-tools{display:flex;align-items:center;gap:20px}
.location{display:flex;gap:9px;align-items:center;color:var(--faint);font:9px var(--mono);white-space:nowrap}
.location i{width:4px;height:4px;border-radius:50%;background:var(--accent)}
.motion-toggle{display:none;gap:7px;align-items:center;background:transparent;border:1px solid var(--line);color:var(--muted);padding:7px 10px;border-radius:5px;font:9px/1.6 var(--mono);white-space:nowrap;min-height:35px}
.js .motion-toggle{display:flex}
.motion-toggle .icon{width:16px;height:16px;color:var(--accent)}
.motion-state{color:var(--accent)}
.motion-toggle:hover{border-color:var(--accent)}
.menu-toggle{display:none}
.reading-progress{position:absolute;bottom:-1px;left:0;width:100%;height:2px;background:linear-gradient(90deg,#ff5d13,#ffb75c);transform-origin:left;transform:scaleX(var(--reading-progress,0));pointer-events:none}
/* A sunrise, two orbiting arcs and an original spiral motif. */
.hero-stage{position:relative;isolation:isolate;overflow:hidden;border-bottom:1px solid #ff831511}
.sunrise-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:radial-gradient(ellipse at 78% 49%,#ff641b12,transparent 46%)}
.horizon-glow{position:absolute;width:75%;height:350px;right:-8%;bottom:-280px;border-radius:50%;background:#ff681d;filter:blur(100px);opacity:.3;animation:dawn-breathe 8s ease-in-out infinite alternate}
.horizon-line{position:absolute;bottom:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,#ff7d3544,#ff9e4d,transparent)}
.hero{padding-block:67px 65px;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:55px;min-height:680px}
.hero-copy{max-width:650px;position:relative;z-index:2}
.hero .eyebrow{font-size:9px;letter-spacing:.09em}
.hero-intro{font-size:16px;color:var(--text);margin:27px 0 9px}
.hero-title{font-size:clamp(65px,6.75vw,96px);font-weight:700;line-height:.98;letter-spacing:-.065em;text-wrap:nowrap}
.hero-title>span{display:block;animation:hero-enter 1s cubic-bezier(.16,1,.3,1) both}
.hero-title>span:nth-child(2){animation-delay:.14s}
.sunrise-text{background:linear-gradient(105deg,#ffb65d 5%,#ff8b36 35%,#ff641e 76%);background-clip:text;-webkit-background-clip:text;color:transparent}
.title-stop{color:var(--accent)}
.hero-discipline{color:var(--accent);font:400 10px/1.7 var(--mono);letter-spacing:.19em;margin-top:23px;animation:hero-enter .9s .25s both}
.hero-tagline{font-family:var(--display);font-weight:500;font-size:25px;letter-spacing:-.025em;line-height:1.3;color:var(--text);margin-top:22px;animation:hero-enter .9s .32s both}
.hero-description{margin-top:17px;font-size:13px;line-height:1.9;max-width:420px;animation:hero-enter .9s .4s both}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:27px;animation:hero-enter .9s .48s both}
.hero-role{display:flex;gap:10px;align-items:center;font-size:10px;margin-top:23px;color:var(--muted);animation:hero-enter .9s .56s both}
.hero-role .status-dot{width:5px;height:5px}
.portrait-composition{position:relative;width:100%;max-width:500px;min-height:510px;display:flex;align-items:center;justify-content:center;justify-self:center;isolation:isolate;animation:scene-enter 1.2s .15s both}
.energy-field{position:absolute;inset:0;z-index:-1;pointer-events:none;display:grid;place-items:center;overflow:hidden}
.energy-field:before{content:'';position:absolute;inset:13%;background:radial-gradient(circle,#ff681e30,#ff601209 50%,transparent 70%);filter:blur(15px)}
.energy-glyph{position:absolute;inset:0;width:100%;height:100%;opacity:.9}
.energy-orbit,.orbit-spark{transform-origin:260px 260px;animation:orbit 34s linear infinite}
.orbit-inner{animation:orbit-reverse 25s linear infinite}
.orbit-spark{animation-duration:18s}
.energy-spiral{stroke-dasharray:2100;stroke-dashoffset:0;animation:spiral-draw 3s cubic-bezier(.2,.7,.2,1) both;opacity:.62}
.ember-canvas{position:absolute;inset:0;width:100%;height:100%}
.scene-index{position:absolute;top:19px;left:50%;transform:translateX(-50%);font:7px/1.6 var(--mono);color:var(--faint);letter-spacing:.1em;white-space:nowrap}
.hero-portrait{position:relative;overflow:hidden;width:min(70%,320px);aspect-ratio:1;background:#171412;border-radius:16px;border:1px solid #ffb46d70;box-shadow:0 0 0 7px #080808aa,0 0 0 8px #ff7d241c,0 20px 80px #0007;transform:translate(var(--px,0px),var(--py,0px));transition:transform .35s ease-out}
.hero-portrait>img{width:100%;height:100%;object-fit:cover;object-position:50% 50%;filter:none}
.hero-portrait:after{content:'';position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#070505d9);pointer-events:none}
.hero-portrait figcaption{position:absolute;left:18px;right:18px;bottom:17px;z-index:1;font:7px/1.5 var(--mono);letter-spacing:.03em;display:flex;justify-content:space-between;color:#fff4e8;gap:10px}
.portrait-fallback{height:100%;min-height:260px;padding:75px 24px 30px;background:linear-gradient(140deg,#3a2013,#13100e)}
.portrait-fallback>span{font:600 34px/1 var(--display);color:var(--text)}
.portrait-fallback p{margin-top:15px;font-size:11px}
.portrait-note{position:absolute;bottom:54px;left:8%;right:8%;display:flex;gap:12px;align-items:center;justify-content:center;font:500 12px/1.5 var(--display);padding:14px 17px;background:#12100fea;border:1px solid #744122;border-radius:7px;box-shadow:0 10px 35px #0005}
.portrait-note .icon{margin-left:auto;color:var(--accent);width:16px;height:16px}
.portrait-caption{display:flex;align-items:center;gap:12px;position:absolute;bottom:7px;left:50%;transform:translateX(-50%);font:7px/1.5 var(--mono);color:var(--faint);letter-spacing:.1em;white-space:nowrap}
.portrait-caption i{width:23px;height:1px;background:linear-gradient(90deg,#ffb16444,#ff7b1f);position:relative;overflow:hidden}
.portrait-caption i:after{content:'';position:absolute;inset:0;background:#ffb76d;transform:translateX(-100%);animation:signal-flow 3s ease-in-out infinite}
.portrait-caption i:nth-of-type(2):after{animation-delay:.5s}
.hero-bottom{display:flex;justify-content:space-between;align-items:center;padding-block:23px;color:var(--faint);font:8px/1.6 var(--mono);letter-spacing:.07em;gap:22px}
.hero-bottom a{display:flex;gap:15px;align-items:center;min-height:36px;color:var(--muted)}
.hero-bottom .icon{width:15px;height:15px;animation:scroll-hint 2.6s ease-in-out infinite}
/* Project evidence has its own visual rhythm. */
.evidence-strip{background:linear-gradient(105deg,#15100c,#100d0b 70%,#0c0c0c);border-block:1px solid var(--line)}
.evidence-inner{display:grid;grid-template-columns:repeat(3,1fr);align-items:center;min-height:124px}
.evidence-inner>a{padding:29px 29px;display:flex;align-items:center;gap:18px;border-left:1px solid var(--line)}
.evidence-inner>a:first-child{padding-left:0;border-left:0}
.evidence-inner>a:last-child{padding-right:0}
.evidence-inner strong{font:600 40px/1 var(--display);letter-spacing:-.06em;color:var(--accent);white-space:nowrap;transition:color .25s}
.evidence-inner strong>span{font-size:11px;letter-spacing:-.01em}
.evidence-inner div{font-size:10px;color:var(--text);line-height:1.8}
.evidence-inner div>span{display:block;font-size:8px;color:var(--faint)}
.evidence-inner>a:hover strong{color:var(--accent-strong)}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:60px;margin-bottom:50px}
.section-heading .eyebrow{margin-bottom:21px}
.section-heading>p{font-size:13px;line-height:1.9;max-width:310px}
.project-row{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;border-top:1px solid var(--line);padding-block:48px;position:relative}
.project-row:last-of-type{border-bottom:1px solid var(--line)}
.project-row:nth-of-type(even) .project-art{order:2}
.project-row:nth-of-type(even) .project-summary{order:1}
.project-art,.project-summary{min-width:0}
.project-kicker{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font:9px/1.7 var(--mono);color:var(--accent)}
.project-kind{font-size:7px;letter-spacing:.035em;color:var(--faint)}
.project-summary h3{font-size:clamp(28px,2.7vw,38px);margin:18px 0;line-height:1.15}
.project-summary h3 a:hover{color:var(--accent)}
.project-summary>p{font-size:13px;line-height:1.9;max-width:430px}
.project-summary .chips{margin:21px 0}
.project-result{display:flex;align-items:center;gap:17px}
.project-result strong{font:600 33px/1 var(--display);letter-spacing:-.045em}
.project-result>span{font-size:10px;line-height:1.7;max-width:170px;color:var(--muted)}
.project-actions{display:flex;gap:26px;flex-wrap:wrap;margin-top:20px}
.project-actions .text-link:last-child{font-size:11px;color:var(--faint)}
.section-end{display:flex;justify-content:flex-end;margin-top:20px}
.technical-art{border:1px solid #49301f;border-radius:10px;background:linear-gradient(135deg,#1a130e,#100e0c);padding:27px;color:#f4e5d8;position:relative;overflow:hidden;isolation:isolate;min-height:355px;transition:border-color .4s,box-shadow .4s,transform .4s}
.technical-art:before{content:'';position:absolute;inset:0;background-image:linear-gradient(#e9862c09 1px,transparent 1px),linear-gradient(90deg,#e9862c09 1px,transparent 1px);background-size:30px 30px;z-index:-1;mask-image:linear-gradient(transparent,#000)}
.technical-art:after{content:'';position:absolute;left:-60%;width:35%;top:-30%;bottom:-30%;background:linear-gradient(90deg,transparent,#ff9c4210,transparent);transform:skewX(-25deg);pointer-events:none}
.project-row:hover .technical-art{border-color:#a05b28;box-shadow:0 15px 55px #ff651607;transform:translateY(-3px)}
.project-row:hover .technical-art:after{animation:art-sweep 1.2s ease}
.art-head{display:flex;justify-content:space-between;gap:15px;font:7px/1.7 var(--mono);letter-spacing:.08em;color:#efb58b;padding-bottom:24px}
.art-head>span:last-child{color:#a27a5c}
.layer-stack{padding-block:5px}
.data-layer{display:flex;gap:14px;align-items:center;background:#21180f;border:1px solid #644124;border-radius:5px;padding:13px 15px;transition:transform .3s,border-color .3s}
.layer-icon{width:34px;height:34px;display:grid;place-items:center;font:600 17px var(--display);color:#ffb572;border:1px solid #a56b32;border-radius:7px;flex-shrink:0}
.data-layer strong{display:block;font-size:12px;line-height:1.4;font-weight:700}
.data-layer div>span{display:block;font-size:8px;color:#c6a98f;margin-top:4px;line-height:1.7}
.layer-format{font:6px/1.7 var(--mono);letter-spacing:.03em;margin-left:auto;white-space:nowrap;color:#d0ac8e}
.layer-bronze .layer-icon{color:#dba779;border-color:#875633}
.layer-silver .layer-icon{color:#d7c5b3;border-color:#87796d}
.layer-gold .layer-icon{color:#ffb95d;border-color:#ad742d}
.flow-line{display:block;height:17px;width:1px;margin-left:31px;background:#79502b;position:relative;overflow:hidden}
.flow-line:after{content:'';position:absolute;inset:0;background:#ffac5f;animation:vertical-flow 2.7s ease-in-out infinite}
.layer-stack .flow-line:nth-of-type(2):after{animation-delay:.5s}
.project-row:hover .data-layer{transform:translateX(4px);border-color:#a16833}
.art-foot{display:flex;gap:9px;align-items:center;margin-top:23px;font:7px/1.7 var(--mono);color:#bfa084}
.tiny-dot{width:4px;height:4px;box-shadow:none}
.art-fulfill{background:linear-gradient(145deg,#19120e,#0d1010)}
.deploy-flow{display:grid;grid-template-columns:1fr 20px 1fr 20px 1fr;align-items:center;gap:5px;padding-top:8px}
.deploy-node{text-align:center;min-width:0}
.node-icon{width:47px;height:47px;display:grid;place-items:center;margin-inline:auto;font:500 24px var(--display);color:#ffb472;background:#26190e;border:1px solid #8b5d32;border-radius:10px;transition:transform .3s,box-shadow .3s}
.deploy-node strong{display:block;font-size:10px;margin-top:12px;font-weight:700}
.deploy-node>span:last-child{display:block;font-size:8px;color:#bda38f;margin-top:4px}
.flow-arrow{font-size:20px;color:#ad6b32}
.gitops-bridge{margin:22px 0 11px;display:flex;flex-direction:column;align-items:center;gap:8px;font:7px var(--mono);letter-spacing:.06em;color:#c2a186}
.gitops-bridge>span:last-child{font-size:19px;line-height:1;animation:scroll-hint 3s ease-in-out infinite}
.runtime-box{display:flex;gap:15px;align-items:center;padding:17px 16px;border:1px solid #77512e;background:#22180f;border-radius:5px}
.runtime-box strong{font-size:12px;display:block;font-weight:700}
.runtime-box div>span{font-size:8px;color:#c8aa92;display:block}
.runtime-label{font:6px var(--mono);margin-left:auto;color:#ffb271;white-space:nowrap}
.runtime-symbol{display:flex;gap:3px;align-items:center;width:33px;flex-shrink:0}
.runtime-symbol>span{height:23px;width:8px;border:1px solid #ff9b4a;background:#ff9b4a1c;display:block;animation:server-pulse 3s ease-in-out infinite}
.runtime-symbol>span:nth-child(2){height:34px;animation-delay:.2s}
.runtime-symbol>span:nth-child(3){animation-delay:.4s}
.project-row:hover .node-icon{transform:translateY(-3px);box-shadow:0 0 25px #ff921414}
.art-otto{background:linear-gradient(145deg,#20170e,#12100d)}
.art-otto svg{width:100%;overflow:visible;margin-top:-9px}
.art-otto .art-head{padding-bottom:11px}
.chart-label{font:13px var(--sans);fill:#e3cbb8}
.chart-value{font:12px var(--mono);fill:#e7c8aa}
.chart-subtitle{font:9px var(--mono);letter-spacing:1px;fill:#c8a486}
.chart-grid{stroke:#c7803a28;stroke-width:1;stroke-dasharray:3 4;fill:none}
.chart-bar{fill:#775133;transform-origin:158px center}
.selected-bar{fill:#ff9b48}
.chart-axis{font:9px var(--mono);fill:#c0a083}
.art-otto .art-foot{margin-top:15px}
/* Narrative sections, with distinct content rather than repeated cards. */
.approach-section{background:linear-gradient(115deg,#15100d,#0d0c0b);border-block:1px solid var(--line)}
.approach-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.approach-grid article{padding:5px 32px;border-left:1px solid var(--line)}
.approach-grid article:first-child{padding-left:0;border-left:0}
.approach-grid article:last-child{padding-right:0}
.approach-number{display:block;font:11px var(--mono);color:var(--accent);margin-bottom:35px}
.approach-grid h3{font-size:23px;margin-bottom:17px}
.approach-grid p{font-size:12px;line-height:1.95;min-height:100px;max-width:300px}
.approach-grid a{display:flex;align-items:center;gap:12px;color:var(--accent);font-size:10px;margin-top:25px}
.approach-grid .icon{width:16px}
.about-teaser{display:grid;grid-template-columns:1fr 1fr;gap:80px}
.about-teaser .eyebrow{margin-bottom:23px}
.about-teaser>div:last-child{padding-top:38px}
.large-copy{font-size:20px;line-height:1.75;color:var(--text)}
.about-teaser p:not(.large-copy):not(.eyebrow){font-size:13px;line-height:1.95;margin-top:24px}
.about-teaser .text-link{margin-top:24px}
.contact-band{border-top:1px solid var(--line);padding-block:78px 90px;display:grid;grid-template-columns:1.3fr .7fr;gap:100px;align-items:center;position:relative}
.contact-band .eyebrow{margin-bottom:24px}
.contact-band h2{font-size:clamp(36px,4.1vw,57px)}
.contact-band>div:last-child{padding-top:12px}
.contact-band p:not(.eyebrow){font-size:13px;line-height:1.95;max-width:320px}
.contact-band .button{margin-top:24px}
.site-footer{background:#100d0b;border-top:1px solid var(--line)}
.footer-top{padding-block:54px;display:flex;align-items:center;justify-content:space-between;gap:50px}
.footer-wordmark{font:600 31px/.98 var(--display);letter-spacing:-.05em}
.footer-wordmark>span{display:block;color:var(--accent);font-size:41px;line-height:1.1}
.footer-top>p{font-size:12px;line-height:1.9}
.footer-links{display:flex;gap:25px}
.footer-links .text-link{font-size:11px}
.footer-bottom{padding:22px 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px;border-top:1px solid var(--line);color:var(--faint);font:8px/1.8 var(--mono)}
.footer-bottom>div{display:flex;gap:22px}
.footer-bottom a:hover{color:var(--text)}
.page-intro{padding-top:80px;padding-bottom:60px;position:relative}
.page-intro .eyebrow{margin-bottom:27px}
.page-intro h1,.case-intro h1{font-size:clamp(45px,5.5vw,78px);max-width:1100px;line-height:1.1;letter-spacing:-.05em}
.page-intro .lead{margin-top:28px;max-width:695px;font-size:17px}
.projects-index{padding-bottom:90px}
.project-filter{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-bottom:30px}
.project-filter button{background:transparent;border:1px solid var(--line);border-radius:6px;padding:10px 17px;font-size:11px;color:var(--muted);transition:color .2s,background .2s,border-color .2s}
.project-filter button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--ink);font-weight:700}
.project-filter button:hover{border-color:var(--accent)}
.project-filter button>span{font:9px var(--mono);margin-left:9px}
.about-story{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:start;padding:15px 0 100px}
.about-photo{position:sticky;top:125px;max-width:360px}
.about-photo img{width:100%;border-radius:12px;aspect-ratio:1;object-fit:cover;filter:none;border:1px solid #794b29;box-shadow:0 0 0 8px #ff701206}
.about-photo figcaption{font:8px var(--mono);color:var(--faint);letter-spacing:.07em;margin-top:19px}
.prose{font-size:14px;line-height:1.95;min-width:0}
.prose h2{font-size:31px;line-height:1.2;margin:42px 0 20px}
.prose>h2:first-child{margin-top:0}
.prose strong{font-weight:700;color:var(--text)}
.prose p+p{margin-top:20px}
.inline-links{display:flex;gap:24px;flex-wrap:wrap;margin-top:24px}
.personal-note{padding:55px 6%;margin-bottom:100px;border:1px solid var(--line);background:linear-gradient(125deg,#1c130d,#0d0c0a);border-radius:var(--radius);text-align:center}
.personal-note>span{font:8px/1.7 var(--mono);letter-spacing:.1em;color:var(--accent)}
.personal-note blockquote{font:500 34px/1.3 var(--display);letter-spacing:-.03em;max-width:850px;margin:24px auto;color:var(--text)}
.personal-note p{font-size:12px}
.skill-sections{padding-bottom:95px}
.skill-section{display:grid;grid-template-columns:.3fr 1fr;gap:70px;border-top:1px solid var(--line);padding:48px 0 58px}
.skill-number{font:600 48px/1 var(--display);letter-spacing:-.05em;color:var(--accent)}
.skill-section .eyebrow{margin-bottom:20px}
.skill-section h2{font-size:46px;line-height:1.12;margin-bottom:24px}
.skill-section p:not(.eyebrow){font-size:14px;line-height:1.95;max-width:750px}
.skill-section .chips{margin-block:24px}
.detail-list{padding-left:19px;font-size:13px;line-height:1.9;color:var(--muted);margin-block:22px}
.detail-list li+li{margin-top:8px}
.skill-section .text-link{margin-right:25px}
.scope-note{padding:21px 24px;border-left:2px solid var(--accent);background:var(--surface);margin-top:25px}
.background-grid{display:grid;grid-template-columns:.4fr 1fr;gap:65px;padding-bottom:90px}
.section-label{font:9px/1.8 var(--mono);letter-spacing:.1em;color:var(--accent);padding-top:5px}
.timeline article{border-top:1px solid var(--line);padding:30px 0 33px}
.timeline article:first-child{padding-top:0;border-top:0}
.timeline .eyebrow{font-size:9px;margin-bottom:17px}
.timeline h2{font-size:35px;line-height:1.15;margin-bottom:15px}
.timeline p{font-size:13px;line-height:1.9}
.timeline p+p{margin-top:12px}
.timeline .text-link{margin-top:12px}
.resume-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding-bottom:50px;align-items:stretch}
.resume-card{background:linear-gradient(130deg,#1b130c,#11100e);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.resume-info{padding:35px}
.resume-info .eyebrow{font-size:9px}
.resume-info h2{font-size:43px;line-height:1.1;margin:24px 0 20px}
.resume-info p{font-size:13px;line-height:1.9;max-width:380px;min-height:72px}
.resume-info .chips{margin-block:21px}
.resume-actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}
.resume-actions .button{font-size:12px;gap:20px}
.resume-actions .text-link{font-size:11px}
.file-meta{display:block;font:8px/1.7 var(--mono);color:var(--faint);margin-top:17px}
.resume-preview{display:block;height:300px;margin:5px 35px 0;overflow:hidden;background:#fff;border-radius:5px 5px 0 0;box-shadow:0 -5px 35px #0003}
.resume-preview img{width:100%;height:auto;transition:transform .45s}
.resume-preview:hover img{transform:translateY(-12px)}
.resume-bottom{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:10px 0 80px}
.resume-bottom p{font-size:12px}
.contact-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:80px;padding-bottom:90px}
.contact-primary>.eyebrow{font-size:9px;margin-bottom:18px}
.email-link{display:flex;gap:13px;align-items:center;font:500 clamp(20px,2.15vw,29px)/1.5 var(--display);letter-spacing:-.04em;overflow-wrap:anywhere}
.email-link:hover{color:var(--accent)}
.email-link .icon{width:23px;height:23px;color:var(--accent)}
.copy-email{border:0;background:transparent;color:var(--accent);font-size:11px;padding:13px 0;gap:9px}
.copy-email .icon{width:15px;height:15px}
.contact-note{font-size:11px;line-height:1.9;margin-top:14px;max-width:430px}
.social-rows{margin-top:42px;border-top:1px solid var(--line)}
.social-rows>a{display:flex;gap:25px;align-items:center;padding:27px 0;border-bottom:1px solid var(--line)}
.social-number{font:9px var(--mono);color:var(--accent)}
.social-rows strong{font:500 25px var(--display);letter-spacing:-.03em;display:block}
.social-rows div>span{display:block;font-size:10px;color:var(--muted);margin-top:6px}
.social-rows .icon{margin-left:auto;width:20px;height:20px;color:var(--accent);transition:transform .25s}
.social-rows>a:hover .icon{transform:translate(4px,-4px)}
.contact-aside{padding:33px;background:linear-gradient(135deg,#24170c,#13100d);border:1px solid #634126;border-radius:var(--radius)}
.contact-aside h2{font-size:40px;line-height:1.1;margin-top:24px}
.contact-aside dl{margin-top:28px}
.contact-aside dt{font:8px/1.7 var(--mono);color:var(--accent);letter-spacing:.09em;margin-top:22px}
.contact-aside dd{font-size:12px;line-height:1.9;margin-top:7px;color:var(--muted)}
.contact-aside>.text-link{margin-top:22px;font-size:12px}
.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:#241a12;color:var(--text);border:1px solid var(--accent);padding:13px 20px;border-radius:6px;box-shadow:0 5px 40px #0009;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;max-width:calc(100% - 40px);width:max-content}
.toast.is-visible{opacity:1;transform:translate(-50%,0)}
/* Full case studies retain readable measures, source links and mobile tables. */
.case-intro{padding-top:35px}
.back-link{display:inline-block;font-size:11px;color:var(--muted);margin-bottom:34px}
.back-link:hover{color:var(--accent)}
.case-intro>.eyebrow{margin-bottom:26px;font-size:9px}
.case-intro .lead{max-width:760px;margin-top:28px;font-size:17px}
.case-links{display:flex;align-items:center;flex-wrap:wrap;gap:27px;margin-top:30px}
.case-links .button{font-size:12px}
.case-links>.text-link{font-size:12px}
.case-stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:48px;border-block:1px solid var(--line)}
.case-stats>div{padding:27px 35px;border-left:1px solid var(--line)}
.case-stats>div:first-child{padding-left:0;border-left:0}
.case-stats strong{font:600 46px/1 var(--display);letter-spacing:-.05em;color:var(--accent);display:block}
.case-stats span{display:block;font-size:11px;line-height:1.8;color:var(--muted);margin-top:12px}
.case-feature{padding:48px 0;display:grid;grid-template-columns:1.15fr .85fr;gap:70px;align-items:center;border-bottom:1px solid var(--line)}
.case-summary .eyebrow{font-size:9px}
.case-summary h2{font-size:38px;margin:19px 0 20px}
.case-summary p:not(.eyebrow){font-size:13px;line-height:1.9;max-width:390px}
.case-body{display:grid;grid-template-columns:.33fr 1fr;gap:90px;padding-top:52px;padding-bottom:65px}
.case-toc{position:sticky;top:125px;align-self:start;display:flex;flex-direction:column}
.case-toc>.eyebrow{font-size:8px;margin-bottom:18px}
.case-toc>a{padding:10px 0 10px 14px;border-left:1px solid var(--line);font-size:11px;line-height:1.7;color:var(--muted)}
.case-toc>a:hover,.case-toc>a[aria-current=location]{border-color:var(--accent);color:var(--accent)}
.case-prose{max-width:810px}
.case-prose section{padding-bottom:38px;scroll-margin-top:115px}
.case-prose h2{margin:0 0 22px;font-size:32px}
.case-prose code{font:11px var(--mono);color:var(--accent-strong);background:#ff8a3d0a;padding:3px 5px;overflow-wrap:anywhere}
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:5px;margin:28px 0;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:12px;min-width:320px;text-align:left;line-height:1.7}
caption{font:8px/1.8 var(--mono);text-align:left;padding:15px 18px;color:var(--accent);background:var(--surface);border-bottom:1px solid var(--line)}
th,td{padding:14px 18px;border-bottom:1px solid var(--line)}
thead th{font-size:10px;font-weight:700;background:var(--surface);color:var(--text)}
tbody th{font-weight:500;color:var(--muted)}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
td{font:11px/1.7 var(--mono);color:var(--text);white-space:nowrap}
tbody tr:first-child td{color:var(--accent)}
.source-links{margin-top:24px;display:flex;flex-direction:column;padding:13px 24px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}
.source-links a{font-size:12px;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}
.source-links a:last-child{border-bottom:0}
.next-project{border-top:1px solid var(--line);padding:35px 0 60px}
.next-project>.text-link{font:500 44px/1.3 var(--display);letter-spacing:-.04em;display:flex;justify-content:space-between;margin-top:16px}
.next-project .icon{width:32px;height:32px}
.error-actions{display:flex;gap:15px;flex-wrap:wrap;padding-bottom:110px}
/* Entrance, orbit, energy flow and hover motion have different speeds. */
@keyframes hero-enter{from{opacity:0;transform:translateY(24px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes scene-enter{from{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:none}}
@keyframes spiral-draw{from{stroke-dashoffset:2100;opacity:0}to{stroke-dashoffset:0;opacity:.62}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes orbit-reverse{to{transform:rotate(-360deg)}}
@keyframes dawn-breathe{from{opacity:.2;transform:scaleX(.9)}to{opacity:.36;transform:scaleX(1.1)}}
@keyframes signal-flow{0%,30%{transform:translateX(-105%)}80%,100%{transform:translateX(105%)}}
@keyframes vertical-flow{0%,20%{transform:translateY(-100%)}80%,100%{transform:translateY(100%)}}
@keyframes server-pulse{0%,100%{background:#ff9b4a12}50%{background:#ff9b4a50}}
@keyframes scroll-hint{0%,75%,100%{transform:translateY(0)}40%{transform:translateY(4px)}}
@keyframes button-sweep{to{transform:translateX(120%) skewX(-22deg)}}
@keyframes art-sweep{to{left:130%}}
.reveal-pending{opacity:0;transform:translateY(32px);filter:blur(3px)}
.reveal-visible{opacity:1;transform:none;filter:none;transition:opacity .8s ease,transform .9s cubic-bezier(.16,1,.3,1),filter .8s ease}
/* Laptop and tablet. */
@media(min-width:1600px){.hero{min-height:735px;padding-block:80px}.hero-title{font-size:103px}.hero-description{font-size:14px}.portrait-composition{min-height:540px}.hero-portrait{width:330px}.portrait-note{bottom:66px}}
@media(max-width:1199px){.container{width:calc(100% - 80px)}.header-inner{height:80px}.header-tools{gap:13px}.location{display:none}.hero{gap:25px;min-height:650px;padding-block:55px}.hero-title{font-size:clamp(64px,7.3vw,86px)}.portrait-composition{min-height:460px}.hero-portrait{width:72%;max-width:300px}.portrait-note{left:7%;right:7%;bottom:38px;font-size:11px}.portrait-caption{bottom:0}.scene-index{top:5px;font-size:6px}.hero-tagline{font-size:24px}.hero-description{font-size:12px;max-width:380px}.hero-role{font-size:9px}.evidence-inner>a{gap:14px;padding-inline:23px}.evidence-inner strong{font-size:35px}.evidence-inner strong>span{font-size:9px}.evidence-inner div{font-size:9px}.evidence-inner div>span{font-size:7px}.section-space{padding-block:85px}.project-row{gap:40px}.technical-art{padding:23px}.layer-format{font-size:5px}.data-layer{padding:12px;gap:10px}.art-head{font-size:6px}.section-heading>p{max-width:285px}.contact-band{gap:65px}.about-story{gap:65px}.contact-layout{gap:55px}.case-body{gap:65px}.case-feature{gap:45px}.resume-info{padding:29px}.resume-preview{margin-inline:29px}.resume-info h2{font-size:39px}.footer-bottom{font-size:7px}.runtime-box{gap:10px;padding:15px 12px}.runtime-box div>span{font-size:7px}.runtime-label{font-size:5px}}
@media(max-width:980px){.brand-name{font-size:12px}.brand-name>span{font-size:6px}.brand{gap:9px}.brand-mark{width:33px;height:33px}.navigation{gap:25px}.navigation>a{font-size:11px}.motion-label{display:none}.motion-toggle{padding:8px}.hero{grid-template-columns:1.15fr 1fr;gap:15px;padding-block:48px;min-height:620px}.hero .eyebrow{font-size:7px;letter-spacing:.07em}.hero-title{font-size:clamp(59px,7.25vw,72px)}.hero-intro{font-size:14px}.hero-discipline{font-size:8px;margin-top:20px}.hero-tagline{font-size:21px}.hero-description{font-size:11px}.hero .button{font-size:11px;padding:13px 17px;gap:17px;min-height:48px}.hero-role{font-size:8px;gap:8px}.portrait-composition{min-height:410px}.hero-portrait{width:73%;border-radius:12px}.portrait-note{font-size:10px;gap:9px;bottom:29px;padding:12px}.portrait-note .icon{width:13px}.portrait-caption{font-size:6px;gap:8px;bottom:0}.portrait-caption i{width:20px}.hero-portrait figcaption{font-size:5px;left:13px;right:13px}.scene-index{font-size:5px;top:4px}.evidence-inner>a{display:block;padding-inline:25px}.evidence-inner strong{display:block;margin-bottom:12px}.evidence-inner{min-height:145px}.section-heading h2{font-size:44px}.section-heading>p{font-size:12px;max-width:245px}.project-row{gap:30px}.project-summary h3{font-size:29px}.project-summary>p{font-size:12px}.project-kind{font-size:6px}.project-kicker{gap:9px;font-size:8px}.project-result strong{font-size:29px}.project-result>span{font-size:9px}.project-actions{gap:21px}.project-actions .text-link{font-size:11px}.project-actions .text-link:last-child{font-size:10px}.technical-art{padding:19px;min-height:317px}.layer-format{display:none}.data-layer div>span{font-size:7px}.data-layer strong{font-size:11px}.art-foot{font-size:6px}.art-head{font-size:5px}.deploy-node strong{font-size:9px}.deploy-node>span:last-child{font-size:6px}.runtime-box strong{font-size:10px}.runtime-box div>span{font-size:6px}.runtime-label{display:none}.approach-grid article{padding-inline:23px}.approach-grid h3{font-size:21px}.approach-grid p{font-size:11px;min-height:125px}.approach-grid a{font-size:9px;gap:7px}.about-teaser{gap:50px}.large-copy{font-size:18px}.contact-band{gap:45px}.contact-band h2{font-size:44px}.footer-top{gap:30px}.footer-links{gap:17px}.footer-links .text-link{font-size:10px}.footer-top>p{font-size:10px}.page-intro{padding-top:60px;padding-bottom:48px}.page-intro h1,.case-intro h1{font-size:57px}.page-intro .lead,.case-intro .lead{font-size:16px}.about-story{gap:45px;grid-template-columns:.85fr 1.15fr}.about-story .prose h2{font-size:28px}.personal-note blockquote{font-size:30px}.skill-section{grid-template-columns:.2fr 1fr;gap:35px}.skill-section h2{font-size:40px}.background-grid{gap:45px}.timeline h2{font-size:32px}.resume-grid{gap:20px}.resume-info{padding:25px}.resume-info h2{font-size:36px}.resume-info p{font-size:12px;min-height:76px}.resume-actions{gap:18px}.resume-actions .button{font-size:11px;padding-inline:17px;gap:17px}.resume-actions .text-link{font-size:10px}.resume-preview{margin-inline:25px;height:250px}.contact-layout{grid-template-columns:1.2fr .8fr;gap:35px}.contact-aside{padding:25px}.contact-aside h2{font-size:35px}.email-link{font-size:22px}.case-feature{grid-template-columns:1.2fr .8fr;gap:35px}.case-summary h2{font-size:31px}.case-summary p:not(.eyebrow){font-size:12px}.case-body{gap:40px}.case-toc>a{font-size:10px}.case-stats strong{font-size:41px}.case-stats span{font-size:10px}}
/* One considered mobile composition, including the animated portrait. */
@media(max-width:760px){
html{scroll-padding-top:94px}.container{width:calc(100% - 48px)}.header-inner{height:74px;gap:15px}.brand-name{font-size:12px}.brand-name>span{font-size:6px}.header-tools{gap:11px}.motion-toggle{min-height:32px;padding:7px}.motion-toggle .icon{width:15px;height:15px}.js .menu-toggle{display:flex;gap:9px;align-items:center;background:transparent;border:0;color:var(--text);padding:10px 0 10px 6px;font-size:10px}.menu-lines{position:relative;width:17px;height:12px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}.menu-lines:after{content:'';position:absolute;top:5px;left:5px;width:12px;border-top:1px solid currentColor}.menu-toggle[aria-expanded=true] .menu-lines{border:0}.menu-toggle[aria-expanded=true] .menu-lines:before,.menu-toggle[aria-expanded=true] .menu-lines:after{content:'';position:absolute;top:5px;left:0;width:17px;border-top:1px solid currentColor;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] .menu-lines:after{transform:rotate(-45deg)}.navigation{gap:20px;flex-wrap:wrap;justify-content:center;grid-column:1/-1;margin:0}.js .navigation{position:absolute;top:74px;left:0;right:0;display:none;padding:19px 24px 24px;background:#0e0c0b;border-bottom:1px solid var(--line);box-shadow:0 20px 30px #0006;z-index:51}.js .navigation.is-open{display:flex;flex-direction:column;gap:0;align-items:stretch}.navigation>a{font-size:15px;padding:13px 0}.navigation>a:after{display:none}html:not(.js) .header-inner{display:grid;grid-template-columns:1fr auto;height:auto;padding-block:16px;row-gap:8px}html:not(.js) .navigation{order:3}.hero{grid-template-columns:1fr;gap:25px;padding-block:37px 31px;min-height:0}.hero-copy{max-width:560px;width:100%}.hero .eyebrow{font-size:8px;letter-spacing:.06em}.hero-intro{font-size:14px;margin:23px 0 10px}.hero-title{font-size:clamp(52px,14.1vw,88px);letter-spacing:-.062em;line-height:1}.hero-discipline{font-size:9px;letter-spacing:.14em;margin-top:20px}.hero-tagline{font-size:23px;line-height:1.3;margin-top:20px}.hero-description{font-size:12px;max-width:470px;line-height:1.85;margin-top:16px}.hero-actions{display:grid;grid-template-columns:1fr 1fr;max-width:360px;margin-top:24px;gap:11px}.hero .button{font-size:11px;padding-inline:13px;gap:16px;min-height:49px}.hero-role{font-size:9px;margin-top:21px}.portrait-composition{max-width:415px;min-height:410px;justify-self:center;margin-top:0}.hero-portrait{width:73%;max-width:290px;border-radius:13px}.hero-portrait figcaption{font-size:6px;left:15px;right:15px;bottom:15px}.scene-index{font-size:6px;top:3px}.portrait-note{bottom:26px;font-size:12px;left:5%;right:5%;padding:13px 16px;gap:12px}.portrait-note .icon{width:16px}.portrait-caption{font-size:6px;bottom:0;gap:10px}.energy-glyph{opacity:.95}.hero-bottom{font-size:6px;padding-block:18px;line-height:1.8;gap:20px}.hero-bottom>span{max-width:170px}.hero-bottom a{font-size:7px;gap:10px;white-space:nowrap}.horizon-glow{width:130%;right:-20%}.evidence-inner{grid-template-columns:repeat(3,1fr);min-height:0;align-items:start}.evidence-inner>a{padding:24px 13px}.evidence-inner strong{font-size:29px;white-space:normal;margin-bottom:10px}.evidence-inner strong>span{font-size:8px}.evidence-inner div{font-size:8px;line-height:1.7}.evidence-inner div>span{font-size:6px;margin-top:4px}.section-space{padding-block:62px}.section-heading{display:block;margin-bottom:32px}.section-heading .eyebrow{font-size:9px;margin-bottom:18px}.section-heading h2{font-size:38px;line-height:1.12}.section-heading>p{font-size:12px;line-height:1.9;max-width:500px;margin-top:23px}.project-row{grid-template-columns:1fr;gap:27px;padding-block:31px}.project-row:nth-of-type(even) .project-art,.project-row:nth-of-type(even) .project-summary{order:0}.project-art{max-width:580px;width:100%}.technical-art{padding:22px;min-height:330px}.art-head{font-size:6px;letter-spacing:.05em}.layer-format{display:block;font-size:5px}.data-layer div>span{font-size:8px}.data-layer strong{font-size:12px}.art-foot{font-size:7px}.project-summary h3{font-size:32px;line-height:1.14;margin:16px 0 17px}.project-summary>p{font-size:13px;line-height:1.9;max-width:540px}.project-kicker{font-size:9px;gap:13px}.project-kind{font-size:6px}.project-result strong{font-size:32px}.project-result>span{font-size:9px;max-width:200px}.project-summary .chips{margin-block:20px}.project-actions{gap:25px;margin-top:19px}.project-actions .text-link{font-size:12px}.project-actions .text-link:last-child{font-size:10px}.section-end{justify-content:flex-start;margin-top:18px}.deploy-node strong{font-size:10px}.deploy-node>span:last-child{font-size:7px}.runtime-box strong{font-size:12px}.runtime-box div>span{font-size:7px}.runtime-label{display:block;font-size:5px}.approach-grid{grid-template-columns:1fr}.approach-grid article{padding:28px 0;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:30px 1fr;gap:0 17px}.approach-grid article:first-child{border-top:0;padding-top:0}.approach-number{grid-row:1/4;line-height:2;margin:0}.approach-grid h3{font-size:23px;margin-bottom:13px}.approach-grid p{font-size:12px;min-height:0;line-height:1.9;max-width:520px}.approach-grid a{font-size:10px;margin-top:18px}.about-teaser{grid-template-columns:1fr;gap:27px}.about-teaser h2{font-size:39px}.about-teaser>div:last-child{padding-top:0}.large-copy{font-size:19px}.about-teaser p:not(.large-copy):not(.eyebrow){font-size:12px;margin-top:22px}.contact-band{padding-block:57px 62px;grid-template-columns:1fr;gap:27px}.contact-band .eyebrow{font-size:8px;margin-bottom:22px}.contact-band h2{font-size:39px}.contact-band>div:last-child{padding-top:0}.contact-band p:not(.eyebrow){font-size:13px;max-width:440px}.contact-band .button{margin-top:22px}.footer-top{flex-wrap:wrap;padding-block:39px;gap:25px 35px}.footer-wordmark{font-size:27px}.footer-wordmark>span{font-size:35px}.footer-top>p{font-size:10px;margin-left:auto}.footer-links{width:100%;gap:27px}.footer-links .text-link{font-size:11px}.footer-bottom{padding-block:20px 27px;gap:14px;font-size:7px}.footer-bottom>div{gap:18px;order:3;width:100%}.page-intro{padding-top:44px;padding-bottom:38px}.page-intro .eyebrow{font-size:8px;margin-bottom:23px}.page-intro h1,.case-intro h1{font-size:clamp(38px,7.7vw,58px);line-height:1.12;letter-spacing:-.045em}.page-intro .lead,.case-intro .lead{font-size:15px;line-height:1.85;margin-top:24px}.projects-index{padding-bottom:64px}.project-filter{gap:8px;padding-bottom:24px}.project-filter button{font-size:10px;padding:8px 12px}.project-filter button>span{font-size:8px}.about-story{grid-template-columns:1fr;gap:37px;padding-bottom:60px}.about-photo{position:relative;top:auto;max-width:320px;margin:0 auto;width:100%}.about-photo figcaption{font-size:7px}.prose{font-size:14px;line-height:1.95}.about-story .prose h2,.prose h2{font-size:29px}.personal-note{padding:33px 24px;margin-bottom:64px}.personal-note>span{font-size:7px}.personal-note blockquote{font-size:27px;margin-block:22px}.personal-note p{font-size:11px}.skill-sections{padding-bottom:59px}.skill-section{grid-template-columns:30px 1fr;gap:19px;padding-block:35px 44px}.skill-number{font-size:30px}.skill-section .eyebrow{font-size:7px;margin-bottom:18px}.skill-section h2{font-size:33px;margin-bottom:21px}.skill-section p:not(.eyebrow){font-size:13px}.skill-section .chips li{font-size:9px}.detail-list{font-size:12px;padding-left:16px}.skill-section .text-link{font-size:11px;margin-right:10px}.scope-note{padding:17px 19px}.background-grid{grid-template-columns:1fr;gap:14px;padding-bottom:60px}.section-label{padding-top:25px;font-size:8px}.timeline h2{font-size:29px}.timeline p{font-size:12px}.timeline .eyebrow{font-size:8px}.resume-grid{grid-template-columns:1fr;gap:25px}.resume-info{padding:28px}.resume-info h2{font-size:38px}.resume-info p{font-size:13px;max-width:100%;min-height:0}.resume-actions{gap:25px}.resume-actions .button{font-size:12px;gap:25px}.resume-actions .text-link{font-size:11px}.resume-preview{margin-inline:28px;height:270px}.resume-bottom{display:block;padding-top:0;padding-bottom:55px}.resume-bottom p{font-size:11px;margin-bottom:12px}.contact-layout{grid-template-columns:1fr;gap:39px;padding-bottom:64px}.contact-primary>.eyebrow{font-size:8px}.email-link{font-size:clamp(18px,4.8vw,27px);gap:10px}.email-link .icon{width:19px;height:19px}.contact-note{font-size:11px}.social-rows{margin-top:32px}.social-rows>a{gap:22px;padding:24px 0}.social-rows strong{font-size:23px}.social-rows div>span{font-size:9px}.contact-aside{padding:29px}.contact-aside h2{font-size:39px}.contact-aside dd{font-size:12px}.case-intro{padding-top:27px}.back-link{margin-bottom:25px;font-size:10px}.case-intro>.eyebrow{font-size:7px;letter-spacing:.07em;margin-bottom:21px}.case-links{gap:20px;margin-top:26px}.case-links .button{font-size:11px;gap:20px;padding-inline:18px}.case-links>.text-link{font-size:11px}.case-stats{margin-top:35px}.case-stats>div{padding:23px 13px}.case-stats strong{font-size:32px}.case-stats span{font-size:8px;line-height:1.8}.case-feature{grid-template-columns:1fr;gap:27px;padding:31px 0 34px}.case-feature .technical-art{min-height:330px}.case-summary h2{font-size:31px;margin-top:15px}.case-summary p:not(.eyebrow){font-size:13px;max-width:100%}.case-summary .eyebrow{font-size:8px}.case-summary .chips{margin-block:19px}.case-body{grid-template-columns:1fr;gap:30px;padding-top:25px;padding-bottom:40px}.case-toc{position:static;display:flex;flex-direction:row;flex-wrap:wrap;gap:6px 14px;padding-bottom:24px;border-bottom:1px solid var(--line)}.case-toc .eyebrow{width:100%;margin-bottom:6px}.case-toc>a{padding:4px 0;border-left:0;font-size:9px;line-height:1.7}.case-toc>a:hover{text-decoration:underline}.case-prose section{padding-bottom:34px}.case-prose h2{font-size:28px;line-height:1.2}.table-wrap{margin-block:24px}th,td{padding:12px 14px}caption{padding:14px;font-size:7px}table{font-size:11px;min-width:290px}td{font-size:9px}.source-links{padding:10px 18px}.source-links a{font-size:11px;gap:14px}.next-project{padding:30px 0 45px}.next-project>.text-link{font-size:35px}.next-project .icon{width:27px;height:27px}.next-project>.eyebrow{font-size:8px}.error-actions{padding-bottom:74px}.scope-chip{font-size:9px}
}
@media(max-width:374px){.container{width:calc(100% - 36px)}.brand-name{font-size:10px}.brand-name>span{font-size:5px}.brand{gap:7px}.brand-mark{width:30px;height:30px}.header-tools{gap:6px}.js .menu-toggle{font-size:9px;gap:7px}.hero-title{font-size:48px}.hero .eyebrow{font-size:7px}.hero-discipline{font-size:8px}.hero-tagline{font-size:21px}.hero-role{font-size:8px}.hero .button{font-size:10px;gap:11px;padding-inline:11px}.hero-actions{gap:9px}.portrait-composition{min-height:355px}.hero-portrait{width:73%}.portrait-note{font-size:10px;bottom:26px;padding:11px 13px}.portrait-caption{font-size:5px}.scene-index{font-size:5px}.hero-portrait figcaption{font-size:5px}.evidence-inner>a{padding-inline:10px}.evidence-inner strong{font-size:26px}.evidence-inner strong>span{font-size:7px}.evidence-inner div{font-size:7px}.evidence-inner div>span{font-size:5px}.section-heading h2{font-size:34px}.technical-art{padding:17px;min-height:312px}.art-head{font-size:5px}.layer-format{display:none}.data-layer{padding:11px}.runtime-label{display:none}.runtime-box div>span{font-size:6px}.art-foot{font-size:6px}.project-summary h3{font-size:29px}.project-kind{font-size:5px}.project-actions{gap:21px}.project-actions .text-link{font-size:11px}.project-actions .text-link:last-child{font-size:9px}.about-teaser h2{font-size:35px}.contact-band h2{font-size:35px}.contact-band .eyebrow{font-size:7px}.footer-top>p{font-size:9px}.footer-bottom{font-size:6px}.page-intro h1,.case-intro h1{font-size:35px}.skill-section{grid-template-columns:24px 1fr;gap:14px}.skill-section h2{font-size:29px}.skill-number{font-size:27px}.resume-info{padding:22px}.resume-preview{margin-inline:22px}.resume-info h2{font-size:35px}.resume-actions{gap:18px}.resume-actions .button{padding-inline:15px;font-size:11px}.email-link{font-size:17px}.case-links{gap:15px}.case-links .button{font-size:10px;padding-inline:14px;gap:15px}.case-links>.text-link{font-size:10px}.case-stats strong{font-size:28px}.case-stats span{font-size:7px}.case-stats>div{padding-inline:10px}.case-feature .technical-art{min-height:312px}}
/* Pause leaves all information visible, including content mid-entrance. */
html[data-motion=off]{scroll-behavior:auto}
html[data-motion=off] *,html[data-motion=off] *:before,html[data-motion=off] *:after{animation:none!important;transition:none!important}
html[data-motion=off] .reveal-pending{opacity:1;transform:none;filter:none}
html[data-motion=off] .hero-portrait{transform:none!important}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;transform:none;filter:none}.hero-portrait{transform:none!important}::view-transition-group(*),::view-transition-old(root),::view-transition-new(root){animation:none!important}}
@media print{.site-header,.site-footer,.case-toc,.contact-band,.motion-toggle,.menu-toggle,.copy-email,.project-filter,.energy-field,.sunrise-atmosphere{display:none!important}body{background:#fff;color:#111}.container{width:100%}p{color:#333}h1,h2,h3,em,.sunrise-text{color:#111;background:none}.hero,.project-row,.case-body,.case-feature,.contact-layout{display:block}.reveal-pending{opacity:1;transform:none;filter:none}a[href^=https]:after{content:' (' attr(href) ')';font:9px var(--sans)}.portrait-composition{max-width:240px;margin:30px auto;min-height:280px}.technical-art{break-inside:avoid}.case-prose{max-width:100%}.button{color:#111;border-color:#aaa}.page-intro{padding-top:20px}*,*:before,*:after{animation:none!important;transition:none!important}}
@media(max-width:480px){.case-stats{grid-template-columns:1fr}.case-stats>div{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:19px 0;border-left:0;border-top:1px solid var(--line);min-width:0}.case-stats>div:first-child{border-top:0}.case-stats strong{font-size:32px;flex-shrink:0}.case-stats span{font-size:10px;margin:0;text-align:right;max-width:150px}}
html:not(.js) *,html:not(.js) *:before,html:not(.js) *:after{animation:none!important}
