@font-face{font-family:Archivo;src:url(/fonts/archivo-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo-800.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Archivo;src:url(/fonts/archivo-900.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/jetbrains-mono-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--display:"Archivo","Archivo Black","Helvetica Neue",Arial,sans-serif;--body:"Inter","Helvetica Neue",Arial,sans-serif;--mono:"JetBrains Mono","SF Mono",Consolas,monospace;--motion-ease:cubic-bezier(.16,1,.3,1);--ghost:#a9afa2}body{font-family:var(--body)}h1,h2,h3,.brand,.portrait-caption b,.hero-proof strong{font-family:var(--display);letter-spacing:-.025em;font-weight:800}.hero h1.display-heading,.library-head h1.display-heading{letter-spacing:-.035em;font-size:clamp(2.1rem,1rem + 3.2vw,3.75rem);font-weight:900;line-height:1.04}.section-heading h2.display-heading,.split-section h2.display-heading,.contact h2.display-heading{letter-spacing:-.035em;font-size:clamp(2rem,1.15rem + 2.5vw,3.4rem);font-weight:900;line-height:1.04}.contact h2.display-heading{font-size:clamp(2rem,1.2rem + 3vw,4.1rem)}.display-heading{text-transform:uppercase;overflow-wrap:normal;word-break:normal;text-wrap:balance;max-width:100%}.heading-line{margin-bottom:-.14em;padding:.08em .04em .14em 0;display:block;overflow:clip}.heading-line>span{display:block;transform:none}.heading-line.ghost{color:var(--ghost)}.hero-title .ghost,.library-head .ghost{color:var(--orange)}.work-section,.library-results{--ghost:#56634b}.contact{--ghost:#473228}@supports ((-webkit-background-clip:text) or (background-clip:text)){.heading-line.ghost>span{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.13' filter='url(%23n)'/%3E%3C/svg%3E");background-color:var(--ghost);background-blend-mode:soft-light;color:#0000;-webkit-background-clip:text;background-clip:text}.hero-title .ghost>span,.library-head .ghost>span{background-color:var(--orange)}}.eyebrow,.portrait-index,.service .num,.experience-row>span,.case-fields h3,.project-meta,.service small,.footer-label{font-family:var(--mono);letter-spacing:.07em;font-weight:400}.service small{letter-spacing:.02em}.eyebrow,.hero .eyebrow{letter-spacing:.1em;font-size:.75rem;line-height:1.7}.project-meta{text-transform:uppercase;flex-wrap:wrap;font-size:.75rem;line-height:1.65}.project-meta span{font-size:inherit!important}.project-meta span:last-child{font-weight:400}.project-title h3{letter-spacing:-.02em;font-size:clamp(1.4rem,1.1rem + 1vw,1.8rem);font-weight:700}.hero-proof strong{font-variant-numeric:tabular-nums;font-weight:900}.count-number{min-width:1.3ch;display:inline-block}.service p,.project-card p,.case-fields p,.experience-row p,.process-step p,.section-heading>p,.library-head p{font-size:1rem;line-height:1.7}.filter-field{font-size:.875rem}.case-fields h3{font-size:.8125rem}.experience-row{grid-template-columns:120px minmax(0,1fr)}.btn,.project-visual img,.text-link svg{transition-timing-function:var(--motion-ease)}.reading-progress{background:var(--orange);z-index:80;transform-origin:0;height:3px;transform:scaleX(var(--scroll-progress,0));pointer-events:none;position:fixed;inset:0 0 auto}@keyframes progressGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes lineRise{0%{transform:translateY(108%)}to{transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUpSm{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes introCard{0%{opacity:0;transform:translateY(16px)scale(.975)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes thumbSettle{0%{scale:1.045}to{scale:1}}@keyframes photoFloat{0%{transform:scale(1.06)translateY(-2.5%)}to{transform:scale(1.06)translateY(2.5%)}}@keyframes lbFade{0%{opacity:0}to{opacity:1}}@keyframes lbPop{0%{opacity:0;scale:.975}to{opacity:1;scale:1}}@keyframes punchIn{0%{opacity:0;transform:scale(1.35)}55%{opacity:1;transform:scale(.97)}80%,to{opacity:1;transform:scale(1)}}@keyframes curtainOpen{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes slideFromLeft{0%{opacity:0;transform:translate(-22%)}to{opacity:1;transform:none}}@keyframes slideFromRight{0%{opacity:0;transform:translate(22%)}to{opacity:1;transform:none}}@keyframes focusIn{0%{opacity:0;filter:blur(14px);transform:translateY(10px)}to{opacity:1;filter:blur();transform:none}}@keyframes wordIn{0%{opacity:0;transform:translateY(.35em)}to{opacity:1;transform:none}}.contact{overflow-x:clip}@media (prefers-reduced-motion:no-preference){.hero-title .heading-line>span,.library-head .heading-line>span{animation:lineRise .65s var(--motion-ease) both}.hero-title .heading-line:nth-child(2)>span,.library-head .heading-line:nth-child(2)>span{animation-delay:90ms}.hero .eyebrow{animation:fadeUpSm .55s var(--motion-ease) both}.hero p{animation:fadeUp .65s var(--motion-ease) .14s both}.hero-actions{animation:fadeUp .65s var(--motion-ease) .21s both}.hero-portrait{animation:introCard .8s var(--motion-ease) 80ms both}.hero-proof{animation:fadeUpSm .65s var(--motion-ease) .28s both}[data-slot=dialog-overlay][data-state=open]{animation:.25s both lbFade}.project-dialog[data-state=open]{animation:lbPop .32s var(--motion-ease) both}.dialog-image{animation:fadeUpSm .35s var(--motion-ease) both}.reveal-pending{opacity:0;transform:translateY(18px)}.heading-line>span.reveal-pending{opacity:1;transform:translateY(108%)}.contact-title .heading-line{overflow:visible}.contact-title .heading-line>span{transform-origin:0}.reveal-visible{transition:opacity .7s var(--motion-ease),transform .7s var(--motion-ease)}@supports (animation-timeline:view()){[data-reveal]{animation:fadeUpSm 1s var(--motion-ease) both;animation-timeline:view();animation-range:entry entry 65%}.display-heading:not(.hero-title):not(.library-head h1):not([data-text-anim]) .heading-line>span{animation:lineRise 1s var(--motion-ease) both;animation-timeline:view();animation-range:entry entry 90%}.skills-title .heading-line>span{opacity:1!important;animation:none!important;transform:none!important}.project-visual img{animation:thumbSettle 1s var(--motion-ease) both;animation-timeline:view();animation-range:entry entry 80%}}@supports (animation-timeline:scroll(root block)){.reading-progress{animation:1s linear both progressGrow;animation-timeline:scroll(root)}@media (min-width:1001px){.portrait-frame img{animation:1s linear both photoFloat;animation-timeline:scroll(root)}}}html[data-text-ready] [data-text-anim=curtain] .heading-line>span{animation:curtainOpen 1s var(--motion-ease) both;animation-play-state:paused}html[data-text-ready] [data-text-anim=assemble] .heading-line:nth-child(odd)>span{animation:slideFromLeft 1s var(--motion-ease) both;animation-play-state:paused}html[data-text-ready] [data-text-anim=assemble] .heading-line:nth-child(2n)>span{animation:slideFromRight 1s var(--motion-ease) both;animation-play-state:paused}html[data-text-ready] [data-text-anim=focus] .heading-line>span{animation:focusIn 1.1s var(--motion-ease) both;animation-play-state:paused}html[data-text-ready] [data-text-anim=punch] .heading-line>span{animation:1.1s cubic-bezier(.33,1,.68,1) both paused punchIn}html[data-text-ready] [data-text-anim=whisper] .word-reveal>span{animation:wordIn .6s var(--motion-ease) both;animation-delay:calc(var(--i) * 55ms);animation-play-state:paused;display:inline-block}html[data-text-ready] [data-text-anim=whisper] cite{animation:fadeUpSm .8s var(--motion-ease) 1.1s both;animation-play-state:paused}html[data-text-ready] [data-text-anim] .heading-line:nth-child(2)>span{animation-delay:.18s}[data-text-anim=focus] .heading-line{overflow:visible}[data-text-anim=curtain] .heading-line>span{width:fit-content}html[data-text-ready] [data-text-anim].text-in .heading-line>span,html[data-text-ready] [data-text-anim].text-in .word-reveal>span,html[data-text-ready] [data-text-anim].text-in cite{animation-play-state:running}[data-reveal]:focus-within{opacity:1;animation:none;transform:none}.reveal-pending:focus-within{opacity:1;transform:none}}@media (max-width:700px){.hero h1.display-heading{font-size:clamp(1.85rem,1.1rem + 3.8vw,2.8rem)}.experience-row{grid-template-columns:90px minmax(0,1fr)}.display-heading{overflow-wrap:anywhere}.contact h2.display-heading{font-size:clamp(1.9rem,1.1rem + 4vw,3rem)}.hero .eyebrow{font-size:.75rem}.portrait-caption b{font-size:.9375rem}.service small{font-size:.75rem}.hero-proof{gap:20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}.reading-progress{display:none}.reveal-pending{opacity:1;transform:none}.heading-line>span{opacity:1!important;transform:none!important}.portrait-frame img,.project-visual img{transform:scale(1)!important}}@media print{.reading-progress{display:none}*,:before,:after{opacity:1!important;transition:none!important;animation:none!important}.heading-line>span,.reveal-pending{transform:none!important}.heading-line.ghost>span{color:inherit!important;background:0 0!important}}.count-number{margin-right:.12em}.project-dialog>div:first-child{padding-right:2rem}.project-dialog .eyebrow{overflow-wrap:anywhere}.selected-stories{gap:4rem;display:grid}.featured-story{border-bottom:1px solid #cbd0c5;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:clamp(2rem,5vw,5rem);padding-bottom:3.5rem;display:grid}.project-story-copy{min-width:0}.featured-story .project-meta{margin-top:0}.featured-story .project-story-copy>p{-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.story-link{border-bottom:1px solid;min-height:44px;margin-top:.75rem;padding-bottom:.25rem;font-weight:600}.system-diagram{border-top:1px solid #41443e;max-width:480px;margin:2.25rem 0 0;padding-top:1.2rem}.system-diagram svg{width:100%;height:auto;margin-top:.5rem;display:block;overflow:visible}.system-track{stroke:#4b5047;stroke-width:1.5px}.system-flow{stroke:var(--orange);stroke-width:2px;fill:none}.system-node rect{fill:#222620;stroke:#69725e;stroke-width:1px}.system-node circle{fill:var(--orange)}.system-node text{fill:#f3f4ef;font:500 13px var(--body)}.system-node .system-caption{fill:#aeb5a5;font:12px var(--mono)}@keyframes connectLayers{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes illuminateNode{0%{stroke:#69725e}40%{stroke:#ff815e}to{stroke:#69725e}}@media (prefers-reduced-motion:no-preference){.system-visible .system-flow{stroke-dasharray:1;animation:connectLayers 1.8s var(--motion-ease) both}.system-visible .system-node rect{animation:1s both illuminateNode}.system-visible .node-1 rect{animation-delay:.45s}.system-visible .node-2 rect{animation-delay:.9s}@media (min-width:1001px) and (min-height:650px){.featured-story>.project-image-button{position:sticky;top:5rem}.featured-story .project-story-copy{min-height:70vh}}@media (hover:hover) and (pointer:fine){.btn>svg,.nav-contact>svg,.project-open{translate:var(--pointer-x,0px) var(--pointer-y,0px);transition:translate .3s var(--motion-ease),rotate .3s var(--motion-ease)}.project-image-button:hover .project-open{rotate:45deg}.project-image-button .project-open svg{transition:rotate .3s var(--motion-ease)}.project-image-button:hover .project-open svg{rotate:-45deg}.btn:hover>svg{rotate:-8deg}}::view-transition-group(*){animation-duration:.48s;animation-timing-function:var(--motion-ease)}::view-transition-group(root){animation-duration:0s}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}}@media (max-width:1000px){.featured-story{grid-template-columns:1fr;gap:1.4rem}.selected-stories{gap:2.5rem}}@media (max-width:600px){.featured-story{padding-bottom:2.5rem}.system-diagram{margin-top:1.75rem}}@media (prefers-reduced-motion:reduce){.btn>svg,.nav-contact>svg,.project-open{translate:none!important;rotate:none!important}::view-transition-group(*){animation:none!important}::view-transition-old(*){animation:none!important}::view-transition-new(*){animation:none!important}}@media print{.featured-story>.project-image-button{position:static!important}.featured-story .project-story-copy{min-height:0}}@media (max-width:600px){.system-node text{font-size:18px}.system-node .system-caption{font-size:17px}}.system-labels{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;display:grid}.system-labels b{font-size:.875rem;font-weight:500;display:block}.system-labels span{font:.75rem var(--mono);color:#aeb5a5;margin-top:7px;display:block}.system-labels>div{overflow-wrap:anywhere;min-width:0}@media (min-width:1001px){.system-diagram{container-type:inline-size}.system-labels b{font-size:.875rem}}.rotator-controls{border-bottom:1px solid #cbd0c5;align-items:center;gap:.75rem;margin-bottom:2rem;display:flex}.rotator-picker{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.rotator-picker::-webkit-scrollbar{display:none}.rotator-tab{white-space:nowrap;color:#5d6458;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:.6rem;min-height:48px;padding:.75rem 1.25rem .8rem;font-weight:600;display:flex;position:relative}.rotator-tab:first-child{padding-left:0}.rotator-tab+.rotator-tab{border-left:1px solid #cbd0c5}.rotator-tab:hover,.rotator-tab.is-active{color:var(--ink)}.rotator-tab.is-active:after,.rotator-progress{content:"";background:var(--ink);height:2px;position:absolute;bottom:-1px;left:0;right:0}.rotator-progress{background:var(--orange);transform-origin:0;animation:linear both rotatorProgress}@keyframes rotatorProgress{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.rotator-track{overflow-clip-margin:8px;display:grid;overflow:clip}.rotator-slide{opacity:0;visibility:hidden;min-width:0;transition:opacity .55s var(--motion-ease),transform .55s var(--motion-ease),visibility 0s linear .55s;grid-area:1/1;transform:translate(3rem)}.rotator-slide.is-leaving{transition:opacity .25s var(--motion-ease),transform .55s var(--motion-ease),visibility 0s linear .55s;transform:translate(-3rem)}.rotator-slide.is-active{opacity:1;visibility:visible;transition-delay:0s;transform:none}.rotator-slide .featured-story>.project-image-button{position:relative}.rotator-slide .featured-story .project-story-copy{min-height:0}.rotator-name{font-weight:inherit}@media (max-width:700px){.rotator-controls{margin-bottom:1.25rem}.rotator-picker{grid-template-columns:repeat(3,minmax(0,1fr));display:grid;overflow:visible}.rotator-tab{white-space:normal;text-align:left;flex-direction:column;align-items:flex-start;gap:.2rem;padding:.6rem .75rem .75rem;font-size:.875rem;line-height:1.25}}@media (prefers-reduced-motion:reduce){.rotator-slide{transition:none;transform:none}}html[data-motion=paused] .rotator-slide{transition:none;transform:none}@media print{.rotator-controls{display:none}.rotator-track{display:block}.rotator-slide{opacity:1;visibility:visible;transform:none}.rotator-slide+.rotator-slide{margin-top:2rem}}.case-highlights{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;gap:22px;margin-top:26px;padding-top:24px;display:grid}.case-highlights>div{min-width:0}.case-highlights h3{font:400 .8125rem var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--orange);margin-bottom:9px}.case-highlights ul{gap:.45rem;margin:0;padding-left:1.1rem;display:grid}.case-highlights li{font-size:.9375rem;line-height:1.6}.case-stack{margin-top:22px;font-size:.9375rem;line-height:1.6}.case-stack strong{font:400 .8125rem var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--orange);margin-bottom:6px;display:block}@media (max-width:700px){.case-highlights{grid-template-columns:1fr}}
@font-face{font-family:VT323;src:url(/fonts/vt323-regular.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}.motion-toggle{min-width:44px;min-height:44px;color:var(--muted-foreground);border:1px solid var(--line);white-space:nowrap;background:0 0;border-radius:3px;justify-content:center;align-items:center;gap:7px;padding:8px 10px;font-size:.75rem;display:flex}.desktop-nav{margin-left:auto}.motion-toggle:hover{color:var(--orange);border-color:var(--orange)}.matrix-label{font-family:VT323,var(--mono);letter-spacing:.12em;color:#adbda3;white-space:nowrap;font-size:1.125rem}.portfolio-home{isolation:isolate;position:relative}.hero-region{background:0 0}.portfolio-home .about{background:#02050655}.hero{isolation:isolate;position:relative}.hero>div:not(.hero-backdrop){z-index:2;position:relative}.hero>div:not(.hero-portrait):not(.hero-backdrop){text-shadow:0 2px 24px #0008}.hero-backdrop{z-index:-1;pointer-events:none;contain:paint;background:#020506;position:fixed;inset:0;overflow:hidden}#particle-field{opacity:0;width:100%;height:100%;transition:opacity .5s ease-out;display:block;position:absolute;inset:0}.particles-ready #particle-field{opacity:1}.particles-ready .particle-fallback{display:none}.particle-fallback{background-image:radial-gradient(circle at 18px 23px,#b5b1a68a .7px,#0000 1.2px),radial-gradient(circle at 82px 55px,#b5755066 .8px,#0000 1.3px),radial-gradient(circle at 43px 112px,#cac8bd5e .5px,#0000 1px);background-size:163px 127px,271px 223px,113px 191px;position:absolute;inset:0}.hero-vignette{background:linear-gradient(#171917 0%,#0407071a 16%,#0000 66%,#040707 100%),linear-gradient(90deg,#0005,#0000 16% 53%,#0008 100%),radial-gradient(at 35% 45%,#0000 24%,#0007 85%);position:absolute;inset:-1px}@media (max-width:700px){.hero-vignette{background:linear-gradient(#171917,#0000 17%,#0002 56%,#040707 100%),linear-gradient(90deg,#0004,#0000 65%,#0005)}}@media print{.hero-backdrop{display:none}.hero-region{background:0 0}.hero>div:not(.hero-portrait):not(.hero-backdrop){text-shadow:none}}.hero-title .ghost>span{position:relative}.hero-title .ghost>span:before,.hero-title .ghost>span:after{content:attr(data-text);pointer-events:none;color:var(--orange);opacity:0;text-shadow:none;background:0 0;position:absolute;inset:0}.hero-title .title-cursor{vertical-align:baseline;background:var(--orange);width:.07em;height:.72em;margin-left:.06em;display:inline-block}@keyframes transmissionGlitch{0%,89%,to{opacity:0;clip-path:inset(0);transform:none}90%,92%{opacity:.85;clip-path:inset(18% 0 64%);text-shadow:-2px 0 #bcd4b0;transform:translate(3px)}94%,96%{opacity:.75;clip-path:inset(60% 0 17%);text-shadow:2px 0 #f4d6c4;transform:translate(-3px)}98%{opacity:.8;clip-path:inset(40% 0 44%);transform:translate(2px)}}@keyframes transmissionEcho{0%,89%,to{opacity:0}91%,94%{opacity:.4;clip-path:inset(45% 0 40%);transform:translate(-3px)}96%,98%{opacity:.3;clip-path:inset(5% 0 84%);transform:translate(2px)}}@keyframes cursorBlink{0%,49%{opacity:1}50%,to{opacity:0}}@media (prefers-reduced-motion:no-preference){.hero-title .ghost>span:before{animation:4s step-end infinite paused transmissionGlitch}.hero-title .ghost>span:after{animation:4s step-end infinite paused transmissionEcho}.hero.scene-visible .ghost>span:before,.hero.scene-visible .ghost>span:after{animation-play-state:running}.hero .portrait-frame img{transform:translateY(var(--portrait-shift,0%)) scale(1.06);will-change:transform;animation:none}.hero-title .title-cursor{opacity:0;animation:1.1s step-end .7s infinite paused cursorBlink}.hero.scene-visible .title-cursor{animation-play-state:running}}@media (prefers-reduced-motion:reduce){.hero-title .title-cursor{display:none}}html[data-motion=paused] .hero-title .title-cursor{display:none}.sketch-icon{color:#ea7f5d;--draft-phase:0s;filter:drop-shadow(0 0 5px #ff815e4d);width:100%;height:auto;display:block;overflow:visible}.sketch-icon .draft-edge{stroke:#ff9272;stroke-width:1.2px}.sketch-icon .draft-fine{stroke:#f07f5d;stroke-width:.7px}.sketch-icon .draft-dim{stroke:#d06d4f;opacity:.8}.sketch-icon .draft-datum{stroke:#b3614a;stroke-width:.65px;opacity:.6}.sketch-icon .draft-hidden{stroke:#e0775a;stroke-width:.65px;stroke-dasharray:2.5 4;opacity:.7}.sketch-icon .draft-accent,.sketch-icon .draft-route{stroke:#ffb296;stroke-width:1.1px}.sketch-icon .draft-route{stroke:var(--orange);opacity:.4}.sketch-icon .draft-node{fill:#ffc9b3;stroke:none}.sketch-icon .draft-flow{stroke:#ffe1d5;stroke-width:1.5px;stroke-dasharray:.18 .82;stroke-dashoffset:.18px}.sketch-form{--draft-phase:-2.5s}.sketch-table{--draft-phase:-5s}.sketch-website{--draft-phase:-1s}.sketch-webapp{--draft-phase:-3.5s}.sketch-mobile{--draft-phase:-6s}.system-loop svg{margin:0}.system-loop{max-width:560px}.system-connections{grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr) 22px minmax(0,1fr);align-items:start;margin-top:1.3rem;display:grid}.system-connections>div{text-align:center;min-width:0}.system-connections .sketch-icon{max-width:156px;margin:0 auto 10px}.system-connections b{overflow-wrap:anywhere;font-size:.875rem;font-weight:500;display:block}.system-connections span{font:.75rem var(--mono);color:#aeb5a5;margin-top:8px;display:block}.system-connections>.signal-wave{width:100%;height:24px;margin-top:45px;overflow:hidden}.signal-wave path{stroke:var(--orange);stroke-width:1.1px;opacity:.8}.signal-wave .wave-back{stroke:#a65c44;opacity:.45}.illustrated-service{transition:opacity .7s var(--motion-ease),transform .7s var(--motion-ease);grid-template-columns:144px minmax(0,1fr);gap:24px}.service-sketch{padding-top:0}.service-pending{opacity:0;transform:translateY(32px)}@keyframes draftLiftLow{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes draftLiftHigh{0%,to{transform:translateY(0)}50%{transform:translateY(-13px)}}@keyframes draftScreen{0%,to{transform:translate(0)}50%{transform:translate(-6px,-5px)}}@keyframes draftPhone{0%,to{transform:translate(0)}50%{transform:translate(-8px,-4px)}}@keyframes draftPulse{0%,to{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.9)}}@keyframes draftFlow{0%{stroke-dashoffset:.18px;opacity:0}12%,80%{opacity:1}to{stroke-dashoffset:-1px;opacity:0}}@keyframes draftDash{to{stroke-dashoffset:-13px}}@keyframes draftBlink{0%,to{opacity:.5}50%{opacity:1}}@keyframes signalTravel{0%{transform:translate(0)}to{transform:translate(-80px)}}@media (prefers-reduced-motion:no-preference){.draft-motion{animation-duration:4.8s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--draft-phase);animation-play-state:paused}.draft-lift-low{animation-name:draftLiftLow}.draft-lift-high{animation-name:draftLiftHigh;animation-duration:5.6s}.draft-screen{animation-name:draftScreen}.draft-phone{animation-name:draftPhone}.draft-pulse{transform-box:fill-box;transform-origin:50%;animation-name:draftPulse;animation-duration:1.8s}.draft-flow{animation-name:draftFlow;animation-duration:2.4s;animation-timing-function:linear}.sketch-icon .draft-hidden{animation:2s linear infinite paused draftDash}.sketch-icon .draft-accent{animation:draftBlink 2.2s ease-in-out var(--draft-phase) infinite paused}.signal-wave path{animation:3s linear infinite paused signalTravel}.signal-wave .wave-back{animation-duration:4.5s;animation-direction:reverse}.scene-visible .draft-motion,.scene-visible .signal-wave path,.scene-visible .sketch-icon .draft-hidden,.scene-visible .sketch-icon .draft-accent{animation-play-state:running}}.process-sequence{padding-top:64px;padding-bottom:24px}.process-stage{padding:20px 0 24px}.process-stage .section-heading{margin-bottom:28px}.process-stage .heading-line>span{opacity:1!important;animation:none!important;transform:none!important}.process-track{background:var(--line);height:2px;margin-top:28px}.process-track span{background:var(--orange);transform-origin:0;width:100%;height:100%;transform:scaleX(var(--process-progress,1));transition:transform .45s var(--motion-ease);display:block}.process-stage .process-grid{margin-top:24px}.process-stage .process-step{transition:opacity .6s var(--motion-ease),transform .6s var(--motion-ease);border-top:0}.process-stage .process-step h3{margin-top:18px}.process-hint{font:.75rem var(--mono);color:var(--muted-foreground);margin-top:28px;display:none}.process-pinned{min-height:340svh}.process-pinned .process-stage{top:var(--process-top,24px);position:sticky}.process-pinned .process-step{opacity:0;transform:translateY(30px)}.process-pinned .step-visible{opacity:1;transform:none}.process-pinned .step-current .eyebrow{color:var(--orange)}.process-pinned .process-hint{display:block}.process-warranty{padding-bottom:64px}.process-warranty .warranty{margin-top:0}.tech-marquee{flex-direction:column;gap:14px;margin-top:40px;display:flex;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee-row{gap:28px;width:max-content;margin:0;padding:0;list-style:none;display:flex}.marquee-row li{opacity:.55;flex-shrink:0;place-items:center;width:34px;height:34px;transition:opacity .25s;display:grid}.marquee-row li:hover{opacity:.95}.marquee-row svg{width:24px;height:24px;fill:var(--tech-hex,currentColor)}@media (prefers-reduced-motion:no-preference){.marquee-row{animation:38s linear infinite marqueeLeft}.marquee-reverse{animation-name:marqueeRight}html[data-motion=paused] .marquee-row{animation-play-state:paused}}@keyframes marqueeLeft{to{transform:translate(-50%)}}@keyframes marqueeRight{0%{transform:translate(-50%)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){.marquee-row{flex-wrap:wrap;width:auto}.marquee-row li:nth-child(n+11){display:none}}.skill-categories{background:var(--ink);border-radius:6px;margin-top:36px;padding:8px 32px}.skill-category{border-top:1px solid var(--line);grid-template-columns:minmax(180px,.8fr) minmax(0,1.3fr);align-items:start;gap:24px;padding:27px 0;display:grid}.skill-category:first-child{border-top:0}.skill-category h3{font-size:1.2rem;line-height:1.4}.skill-category ul{flex-wrap:wrap;gap:10px 22px;margin:0;padding:0;list-style:none;display:flex}.skill-category li{color:var(--muted-foreground);font-size:1rem;line-height:1.6}@media (max-width:1000px){.site-header,.desktop-nav{gap:18px}.motion-toggle span{display:none}.system-connections{grid-template-columns:minmax(0,1fr) 14px minmax(0,1fr) 14px minmax(0,1fr)}.system-connections>.signal-wave{margin-top:30px}.illustrated-service{grid-template-columns:108px minmax(0,1fr);gap:18px}.skill-category{grid-template-columns:minmax(140px,.7fr) minmax(0,1fr)}.process-stage .process-grid{gap:22px}.process-stage .process-step h3{margin-top:8px}}@media (max-width:700px){.motion-toggle{margin-left:auto}.site-header{gap:16px}.hero-portrait{flex-wrap:wrap}.hero-portrait .matrix-label{writing-mode:horizontal-tb;letter-spacing:.1em;width:100%;margin-bottom:-5px;font-size:1rem;display:block;position:static;transform:none}.hero .portrait-frame img{transform:translateY(var(--portrait-shift,0%)) scale(1.06)}.system-connections{grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 24px minmax(0,1fr)}.system-connections>.signal-wave{margin-top:30px}.illustrated-service{grid-template-columns:100px minmax(0,1fr);gap:16px}.process-sequence{padding-top:32px}.process-stage .section-heading{gap:12px;margin-bottom:16px}.process-stage .section-heading>p{font-size:.875rem}.process-stage .process-grid{grid-template-columns:1fr;gap:17px;margin-top:20px}.process-stage .process-step{grid-template-columns:28px minmax(0,1fr);column-gap:14px;display:grid}.process-stage .process-step .eyebrow{grid-row:1/3;padding-top:3px}.process-stage .process-step h3{margin:0 0 5px;font-size:1.05rem}.process-stage .process-step p{grid-column:2;font-size:.875rem;line-height:1.55}.process-hint{margin-top:20px}.process-warranty{padding-bottom:40px}.skill-categories{margin-top:26px;padding:4px 20px}.skill-category{grid-template-columns:minmax(0,1fr);gap:12px;padding:23px 0}.skill-category ul{gap:8px 18px}.skill-category h3{font-size:1.125rem}.skill-category li{font-size:.9375rem}}@media (prefers-reduced-motion:reduce){.service-pending{opacity:1;transform:none}.hero .portrait-frame img{transform:none!important}.hero-title .ghost>span:before,.hero-title .ghost>span:after{display:none}}html[data-motion=paused] *,html[data-motion=paused] :before,html[data-motion=paused] :after{animation-play-state:paused!important}html[data-motion=paused] .hero-title .ghost>span:before,html[data-motion=paused] .hero-title .ghost>span:after{display:none}html[data-motion=paused] .service-pending{opacity:1;transform:none}@media print{.motion-toggle,.process-hint{display:none}.process-sequence{min-height:0!important}.process-stage{position:static!important}.process-step,.service-pending{opacity:1!important;transform:none!important}}.process-hint{visibility:hidden;transition:opacity .4s var(--motion-ease);display:block}.process-pinned .process-hint{visibility:visible}.process-pinned.process-complete .process-hint{opacity:0}@media (max-width:700px){.process-pinned{min-height:300svh}}html[data-motion=paused] [data-reveal],html[data-motion=paused] .heading-line>span{opacity:1!important;animation:none!important;transform:none!important}html[data-motion=paused] .project-visual img{animation:none!important;scale:1!important}html[data-motion=paused] .word-reveal>span,html[data-motion=paused] [data-text-anim] cite{animation:none!important}@media (max-width:380px){.hero-proof strong{font-size:1.15rem}.hero-proof>div{flex:1;min-width:0}}@media (max-width:700px){.hero-portrait .matrix-label{white-space:normal;overflow-wrap:anywhere}.skill-category li{overflow-wrap:anywhere;max-width:100%}.site-header{flex-wrap:wrap;height:auto;min-height:76px;padding-block:12px}.hero-proof>div{min-width:0}.hero-proof strong{overflow-wrap:anywhere}}.skill-category li{transition:color .3s;display:grid}.skill-name,.skill-emphasis{grid-area:1/1;transition:opacity .3s}.skill-emphasis{opacity:0;pointer-events:none;font-weight:700}@media (hover:hover){.skill-category li:hover{color:var(--orange)}.skill-category li:hover .skill-name{opacity:0}.skill-category li:hover .skill-emphasis{opacity:1}}@media (prefers-reduced-motion:no-preference){.hero-portrait{translate:0 var(--portrait-travel,0px)}.hero .portrait-frame img{transform:translateY(var(--portrait-shift,0%)) scale(1.06)}}@media (max-width:700px){.hero-portrait .portrait-frame{width:112px;height:126px}.hero-portrait .portrait-caption{flex:1;min-width:0}.hero-portrait{column-gap:18px}}@media (prefers-reduced-motion:reduce){.hero-portrait{translate:none!important}}html[data-motion=paused] .hero-portrait{translate:none!important}@media print{.hero-portrait{translate:none!important}.skill-emphasis{display:none}}@media (max-width:380px){.illustrated-service{grid-template-columns:84px minmax(0,1fr);gap:12px}.system-connections{grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr) 12px minmax(0,1fr);column-gap:0}}.menu-sheet{z-index:60;overscroll-behavior:contain;color:var(--paper);background:radial-gradient(90% 55% at 100% 100%,#ff815e29,#0000 70%),#0c0d0c;outline:none;flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.menu-bar{border-bottom:1px solid var(--line);flex:none;justify-content:space-between;align-items:center;gap:12px;min-height:76px;display:flex}.menu-close{min-height:44px;color:inherit;background:0 0;border:0;align-items:center;gap:10px;padding:8px 0 8px 12px;font-size:.875rem;display:flex}.menu-body{padding:8px 0 calc(24px + env(safe-area-inset-bottom));flex-direction:column;flex:1;display:flex}.menu-nav{flex-direction:column;display:flex}.menu-link{border-bottom:1px solid var(--line);min-height:64px;color:var(--paper);grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px 0;transition:color .2s;display:grid}.menu-index{font:.75rem var(--mono);letter-spacing:.1em;color:var(--orange)}.menu-label{font-family:var(--display);text-transform:uppercase;letter-spacing:-.02em;font-size:1.5rem;font-weight:900;line-height:1.1}.menu-arrow{color:var(--muted-foreground);transition:transform .25s var(--motion-ease),color .2s}.menu-link:hover .menu-arrow,.menu-link:focus-visible .menu-arrow{color:var(--orange);transform:translate(3px,-3px)}.menu-link[aria-current],.menu-link[aria-current] .menu-arrow{color:var(--orange)}.menu-link[aria-current] .menu-index:after{content:"";vertical-align:middle;background:var(--orange);border-radius:50%;width:6px;height:6px;margin-left:6px;display:inline-block}.menu-cta{justify-content:space-between;width:100%;margin-top:28px}.menu-foot{gap:12px;margin-top:auto;padding-top:40px;display:grid}.menu-status{font:.75rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted-foreground);align-items:center;gap:10px;margin:0;display:flex}.menu-status span{background:var(--orange);border-radius:50%;flex:none;width:8px;height:8px}.menu-email{overflow-wrap:anywhere;width:fit-content;max-width:100%;text-decoration:underline;-webkit-text-decoration-color:var(--orange);text-decoration-color:var(--orange);text-underline-offset:5px;font-size:1.05rem;font-weight:500}.menu-social{flex-wrap:wrap;gap:0 22px;margin:0;padding:0;list-style:none;display:flex}.menu-social a{min-height:44px;font:.8125rem var(--mono);color:var(--muted-foreground);align-items:center;gap:4px;display:inline-flex}.menu-social a:hover{color:var(--orange)}.menu-meta{border-top:1px solid var(--line);font:.75rem var(--mono);color:var(--muted-foreground);justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.motion-toggle-labelled span{display:inline}.menu-sheet :focus-visible{outline:2px solid var(--orange);outline-offset:3px}.menu-sheet :focus:not(:focus-visible){outline:none}@media (max-width:700px){.site-header>.motion-toggle{display:none}}@keyframes menuSheetIn{0%{opacity:0}to{opacity:1}}@keyframes menuSheetOut{0%{opacity:1}to{opacity:0}}@keyframes menuItemIn{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}@keyframes menuPulse{0%{box-shadow:0 0 #ff815e8c}70%,to{box-shadow:0 0 0 8px #ff815e00}}@media (prefers-reduced-motion:no-preference){.menu-sheet[data-state=open]{animation:.25s both menuSheetIn}.menu-sheet[data-state=closed]{animation:.18s both menuSheetOut}.menu-sheet[data-state=open] .menu-item{animation:menuItemIn .5s var(--motion-ease) both;animation-delay:calc(var(--i) * 60ms + 60ms)}.menu-status span{animation:2s ease-out infinite menuPulse}}html[data-motion=paused] .menu-sheet,html[data-motion=paused] .menu-sheet *,html[data-motion=paused] [data-slot=dialog-overlay],html[data-motion=paused] .project-dialog{animation:none!important}
