:root{--ease-out:cubic-bezier(.16,1,.3,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--ease-spring:cubic-bezier(.34,1.4,.64,1);--ease-soft:cubic-bezier(.22,1.2,.36,1);--press-shadow:#556333;--error:#a3402a;--spotlight:rgb(217 239 114 / .42)}@supports(transition-timing-function:linear(0,1)){:root{--ease-spring:linear(0, 0.041, 0.141, 0.276, 0.424, 0.569, 0.702, 0.815, 0.907, 0.978, 1.028, 1.06, 1.077, 1.083, 1.081, 1.073, 1.063, 1.05, 1.038, 1.027, 1.017, 1.009, 1.003, 0.998, 0.995, 0.994, 0.993, 0.993, 0.994, 0.995, 0.996, 0.997, 0.998, 1);--ease-soft:linear(0, 0.028, 0.097, 0.192, 0.3, 0.41, 0.516, 0.615, 0.702, 0.778, 0.841, 0.893, 0.934, 0.966, 0.989, 1.006, 1.017, 1.024, 1.027, 1.028, 1.027, 1.025, 1.023, 1.02, 1.016, 1.013, 1.011, 1.008, 1.006, 1.004, 1.003, 1.002, 1.001, 1)}}html.dark{--error:#f0927a;--spotlight:rgb(217 239 114 / .14)}.word{display:inline-block;vertical-align:top}.word-ink{display:inline-block;will-change:auto}.intro h1 .headline-words,.contact h2 .headline-words,.headline-words{display:block;isolation:auto}.intro h1 .word,.intro h1 .word-ink{isolation:auto}.has-indicator{position:relative;isolation:isolate}.glide-indicator{position:absolute;top:0;left:0;z-index:-1;width:var(--w,0px);height:var(--h,0px);transform:translate(var(--x,0px),var(--y,0px));pointer-events:none;transition:transform 560ms var(--ease-spring),width 560ms var(--ease-spring),height 320ms var(--ease-out),opacity 220ms}.glide-indicator.is-instant{transition:none}.glide-indicator.is-hidden{opacity:0}.tab-pill,.filter-pill{background:var(--accent);border:1.5px solid var(--accent-ink)}.tab-pill{border-radius:12px;box-shadow:0 3px 0 var(--accent-ink)}.filter-pill{border-radius:30px}.feature-tabs.has-indicator>button[aria-selected=true],.filters.has-indicator>button.active{background:transparent;border-color:transparent;box-shadow:none;color:var(--accent-ink)}.feature-tabs.has-indicator>button,.filters.has-indicator>button{transition:color 220ms,border-color 220ms,transform 380ms var(--ease-spring)}.nav-indicator{height:2px;border-radius:2px;background:var(--ink);transform:translate(var(--x,0px),calc(var(--y,0px) + var(--h,0px) + 3px));z-index:0}.header nav.has-indicator>a[aria-current]:after{transform:scaleX(0)}.primary-button{translate:var(--mx,0px) var(--my,0px);transition:transform 460ms var(--ease-spring),box-shadow 460ms var(--ease-spring),translate 420ms var(--ease-out),background-color 200ms}.primary-button:active,.primary-button:hover:active{transform:translate(3px,4px);box-shadow:0 0 0 var(--press-shadow);transition-duration:90ms}.primary-button:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.direct-email,.profile-links>a,footer>a:last-child{background-image:linear-gradient(var(--accent),var(--accent));background-repeat:no-repeat;background-position:0 88%;background-size:0% 38%;transition:background-size 420ms var(--ease-out),color 200ms}.direct-email:hover,.profile-links>a:hover,footer>a:last-child:hover,.direct-email:focus-visible,.profile-links>a:focus-visible{background-size:100% 38%;color:var(--accent-ink)}.dark .direct-email:hover,.dark .profile-links>a:hover,.dark footer>a:last-child:hover{background-image:linear-gradient(#556333,#556333);color:var(--ink)}@media(prefers-reduced-motion:no-preference){.reveal-ready [data-reveal=up]:not(.is-revealed),.reveal-ready [data-reveal=stagger]:not(.is-revealed)>:not([data-reveal-lines]):not(.motion-art):not(.scroll-art){opacity:0;transform:translateY(28px)}[data-reveal=up].is-revealed,[data-reveal=stagger].is-revealed>:not([data-reveal-lines]):not(.motion-art):not(.scroll-art){animation:rise-in 900ms var(--ease-out) backwards;animation-delay:calc(var(--i,0) * 75ms + 60ms)}.reveal-ready [data-reveal-lines]:not(.hero-title):not(.is-revealed) .word-ink{transform:translateY(112%)}[data-reveal-lines].is-revealed .word-ink{animation:word-rise 940ms var(--ease-out) backwards;animation-delay:calc(var(--w,0) * 58ms + 40ms)}.reveal-ready [data-reveal-lines]:not(.hero-title):not(.is-revealed) .accent-phrase:before{transform:rotate(-2deg) scaleX(0)}[data-reveal-lines].is-revealed .accent-phrase:before{animation:highlight-sweep 720ms var(--ease-out) backwards 480ms}.reveal-ready [data-reveal=card]:not(.is-revealed){opacity:0;transform:translateY(44px)}[data-reveal=card].is-revealed:not(.is-settled){animation:card-in 900ms var(--ease-out) backwards;animation-delay:calc(var(--col,0) * 95ms)}[data-reveal=card]:nth-child(even){--tilt:-1.4deg}}@keyframes rise-in{from{opacity:0;transform:translateY(28px)}}@keyframes word-rise{from{transform:translateY(112%) rotate(5deg)}}@keyframes highlight-sweep{from{transform:rotate(-2deg) scaleX(0)}}@keyframes card-in{from{opacity:0;transform:translateY(44px) rotate(var(--tilt,1.4deg)) scale(.97)}}@keyframes pop-in{from{opacity:0;scale:.82}}.accent-phrase:before{transform-origin:0 50%}.intro{position:relative;isolation:isolate}.intro:after{content:"";position:absolute;inset:-18% 0 -10%;z-index:-1;pointer-events:none;background:radial-gradient(560px circle at var(--sx,74%) var(--sy,46%),var(--spotlight),transparent 68%);-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);opacity:.55;transition:opacity 700ms var(--ease-out)}.intro.is-pointing:after{opacity:1}.hero-title .headline-line:nth-child(2){--l:1}.hero-title .word:nth-child(2){--w:1}.hero-title .word:nth-child(3){--w:2}.hero-title .word:nth-child(4){--w:3}.hero-title .word:nth-child(5){--w:4}@media(prefers-reduced-motion:no-preference){.js .intro .hero-enter,.js .intro .hero-visual{animation:none}.js .intro .eyebrow{animation:rise-in 760ms var(--ease-out) backwards 60ms}.js .hero-title .word-ink{animation:word-rise 980ms var(--ease-out) backwards;animation-delay:calc(160ms + var(--l,0) * 190ms + var(--w,0) * 62ms)}.js .hero-title .accent-phrase:before{animation:highlight-sweep 700ms var(--ease-out) backwards 760ms}.js .intro .intro-copy{animation:rise-in 860ms var(--ease-out) backwards 560ms}.js .intro .hero-actions{animation:pop-in 760ms var(--ease-spring) backwards 700ms}.js .hero-scene .mascot-orbit{animation:orbit-in 1100ms var(--ease-out) backwards 120ms}.js .hero-scene .mascot-button{animation:mascot-drop 1000ms var(--ease-spring) backwards 280ms}.js .hero-scene .hero-star{animation:prop-pop 760ms var(--ease-spring) backwards 780ms}.js .hero-scene .hero-arrow{animation:prop-pop 760ms var(--ease-spring) backwards 880ms}.js .stats>div{animation:rise-in 820ms var(--ease-out) backwards;animation-delay:calc(840ms + var(--i,0) * 90ms)}.stats>div:nth-child(2){--i:1}.stats>div:nth-child(3){--i:2}}@keyframes orbit-in{from{opacity:0;scale:.55;rotate:-28deg}}@keyframes mascot-drop{from{opacity:0;translate:0 -70px;scale:.86}}@keyframes prop-pop{from{opacity:0;scale:.2;rotate:-50deg}}.hero-scene .mascot-orbit,.hero-scene .mascot-button,.hero-scene .hero-star,.hero-scene .hero-arrow{transition:translate 900ms var(--ease-out),rotate 1100ms var(--ease-out),transform 420ms var(--ease-spring)}.hero-scene .mascot-orbit{translate:calc(var(--px,0) * -12px) calc(var(--py,0) * -9px)}.hero-scene .mascot-button{translate:calc(var(--px,0) * 18px) calc(var(--py,0) * 12px);rotate:calc(var(--px,0) * 4deg)}.hero-scene .hero-star{translate:calc(var(--px,0) * 32px) calc(var(--py,0) * 24px)}.hero-scene .hero-arrow{translate:calc(var(--px,0) * 24px) calc(var(--py,0) * 20px)}.featured-media{overflow:hidden;touch-action:pan-y}#featured-image{transition:translate 700ms var(--ease-out),scale 700ms var(--ease-out)}.stage-frame.pointer-active #featured-image{translate:calc(var(--ptr-x,0) * -9px) calc(var(--ptr-y,0) * -7px);scale:1.035}.featured-media>.stage-backdrop{position:absolute;inset:-14%;width:128%;height:128%;object-fit:cover;filter:blur(30px) saturate(1.3);opacity:.7;pointer-events:none}.dark .featured-media>.stage-backdrop{opacity:.62}.featured-media>#featured-image{position:relative;z-index:1}.scene-wipe{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:8px;padding:24px;text-align:center;color:var(--accent-ink);background-color:var(--accent);background-image:repeating-linear-gradient(-45deg,transparent 0 22px,rgb(37 40 35 / .06) 22px 44px);clip-path:polygon(0% 0%,0% 0%,-14% 100%,-14% 100%);pointer-events:none}.scene-wipe-index{font-size:12px;font-weight:700;letter-spacing:2.4px;text-transform:uppercase}.scene-wipe-title{font-family:Bricolage,"Avenir Next",Arial,sans-serif;font-size:clamp(30px,4.2vw,58px);font-weight:800;letter-spacing:-2px;line-height:1}#feature-title .word{overflow:clip;padding-bottom:.1em;margin-bottom:-.1em}.feature-controls>button{display:inline-flex;align-items:center;gap:8px;transition:transform 380ms var(--ease-spring),color 200ms}.feature-controls>button:first-child:before{content:"←"}.feature-controls>button:last-child:after{content:"→"}.project-grid{position:relative}.project-ghost{position:absolute;z-index:3;margin:0;pointer-events:none}.project-image{isolation:isolate}.project-image>.project-backdrop{position:absolute;inset:-14%;width:128%;height:128%;z-index:-1;object-fit:cover;filter:blur(26px) saturate(1.3);opacity:.72}.dark .project-image>.project-backdrop{opacity:.68}.project-image>.project-cover{position:relative;z-index:1}.project-image:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(380px circle at calc(50% + var(--ptr-x,0) * 50%) calc(50% + var(--ptr-y,0) * 50%),rgb(255 255 255 / .28),transparent 62%);opacity:0;transition:opacity 320ms}.project-image.pointer-active:after{opacity:1}.project-text h3{transition:translate 420ms var(--ease-spring)}.project-card:focus-visible{outline:2px solid var(--ink);outline-offset:8px;border-radius:var(--radius)}@media(hover:hover) and (pointer:fine){.project-card:hover .project-text h3{translate:4px 0}.project-card:hover .project-open-mark{transform:rotate(90deg) scale(1.12)}}@media(prefers-reduced-motion:no-preference){.reveal-ready [data-reveal=portrait]:not(.is-revealed){opacity:0}.reveal-ready [data-reveal=portrait]:not(.is-revealed) .portrait img{clip-path:inset(100% 0 0 0)}[data-reveal=portrait].is-revealed{animation:fade-in 500ms var(--ease-out) backwards}[data-reveal=portrait].is-revealed .portrait img{animation:photo-wipe 1200ms var(--ease-in-out) backwards 150ms}[data-reveal=portrait].is-revealed .portrait-bottom{animation:rise-in 800ms var(--ease-out) backwards 700ms}[data-reveal=stagger].is-revealed .agent-tools li{animation:pop-in 680ms var(--ease-spring) backwards;animation-delay:calc(620ms + var(--n,0) * 90ms)}.agent-tools li:nth-child(2){--n:1}.agent-tools li:nth-child(3){--n:2}}@keyframes fade-in{from{opacity:0}}@keyframes photo-wipe{from{clip-path:inset(100% 0 0 0);scale:1.16}}.agent-symbol{transition:transform 480ms var(--ease-spring)}@media(hover:hover) and (pointer:fine){.agent-tools li:hover .agent-symbol{transform:translateY(-5px) rotate(-7deg) scale(1.08)}}@media(prefers-reduced-motion:no-preference){.reveal-ready [data-reveal=postcard]:not(.is-revealed){opacity:0}[data-reveal=postcard].is-revealed{animation:postcard-in 1150ms var(--ease-spring) backwards 120ms}}@keyframes postcard-in{from{opacity:0;translate:40px -60px;rotate:8deg}}.postcard label{transition:color 200ms}.postcard input,.postcard textarea{transition:border-color 200ms,box-shadow 260ms var(--ease-out),translate 300ms var(--ease-spring)}.postcard input:focus,.postcard textarea:focus{translate:0 -2px}.postcard label.is-invalid{color:var(--error)}.postcard label.is-invalid input,.postcard label.is-invalid textarea{border-color:var(--error);box-shadow:0 0 0 3px rgb(163 64 42 / .18)}.postcard-stamp{position:absolute;top:18px;right:20px;display:grid;place-items:center;width:74px;height:74px;border:2px dashed var(--accent-ink);border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:12px;font-weight:800;letter-spacing:1.5px;line-height:1.15;text-align:center;text-transform:uppercase;rotate:-14deg;opacity:0;scale:1.6;pointer-events:none;transition:opacity 200ms,scale 520ms var(--ease-spring)}.postcard[data-state=sent] .postcard-stamp{opacity:1;scale:1}.button-dots{display:none;gap:3px;margin-left:8px}.button-dots>i{width:5px;height:5px;border-radius:50%;background:currentColor}.postcard[data-state=sending] .button-dots{display:inline-flex}.postcard[data-state=sending] .primary-button{cursor:progress;opacity:1}.postcard[data-state=sent] .form-status{color:var(--ink);font-weight:600}.postcard[data-state=error] .form-status{color:var(--error)}@media(prefers-reduced-motion:no-preference){.button-dots>i{animation:dot-hop 900ms var(--ease-in-out) infinite}.button-dots>i:nth-child(2){animation-delay:120ms}.button-dots>i:nth-child(3){animation-delay:240ms}}@keyframes dot-hop{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}.achievement-region{position:fixed;left:20px;bottom:20px;z-index:60;pointer-events:none}.achievement{display:flex;align-items:center;gap:12px;width:max-content;max-width:min(340px,calc(100vw - 40px));padding:9px 18px 9px 9px;border:1.5px solid var(--ink);border-radius:18px;background:var(--ink);color:var(--paper);box-shadow:4px 5px 0 var(--accent);cursor:pointer;pointer-events:auto;animation:toast-in 640ms var(--ease-spring) both}.achievement img{flex:0 0 auto;width:54px;height:54px;padding:4px;object-fit:contain;border-radius:12px;background:var(--accent)}.achievement p{display:grid;gap:1px;line-height:1.3}.achievement span{font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--accent)}.dark .achievement span{color:#556333}.achievement strong{font-family:Bricolage,"Avenir Next",Arial,sans-serif;font-size:17px;letter-spacing:-.3px}.achievement small{font-size:12px;opacity:.78}.achievement.is-leaving{animation:toast-out 300ms var(--ease-out) forwards}@keyframes toast-in{from{opacity:0;translate:0 28px;scale:.9}}@keyframes toast-out{to{opacity:0;translate:0 18px}}@media(max-width:767px){.achievement-region{left:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom))}.achievement{max-width:100%}.postcard-stamp{width:62px;height:62px;top:14px;right:14px;font-size:11px}}@media(prefers-reduced-motion:reduce){.glide-indicator,.primary-button,.feature-controls>button,.postcard input,.postcard textarea,.postcard-stamp,.agent-symbol{transition:none}.primary-button{translate:none}.scene-wipe{display:none}.hero-scene .mascot-orbit,.hero-scene .mascot-button,.hero-scene .hero-star,.hero-scene .hero-arrow,#featured-image{translate:none;rotate:none;scale:none}.achievement,.achievement.is-leaving{animation:none}}@media(hover:none),(pointer:coarse){.primary-button{translate:none}.intro:after{opacity:.4}}