@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{--bg:#0a0a0c;--ink:#eeedf2;--muted:#99989f;--blue:#3f00ff;--line:#ffffff20}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a:focus-visible,button:focus-visible{outline:3px solid #9d87ff;outline-offset:6px}::selection{background:var(--blue);color:white}.scroll-progress{position:fixed;top:0;left:0;height:3px;background:var(--blue);width:0;z-index:20}.navigation{position:absolute;top:0;left:0;width:100%;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:30px 5%;font-size:13px}.wordmark{font-family:'Space Grotesk',sans-serif;font-size:36px;font-weight:700;letter-spacing:-4px}.wordmark span{font:11px 'DM Sans',sans-serif;vertical-align:top;letter-spacing:0;margin-left:8px}.nav-contact{border:1px solid #ffffff45;padding:12px 20px;border-radius:30px}.navigation a span:not(.wordmark span){margin-left:10px}.hero{min-height:850px;min-height:100svh;position:relative;overflow:hidden;padding:160px 5% 45px;display:flex;flex-direction:column;justify-content:center}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff03 1px,transparent 1px),linear-gradient(90deg,#ffffff03 1px,transparent 1px);background-size:90px 90px;pointer-events:none}.orb{position:absolute;width:70vw;height:70vw;right:-30vw;top:-8vw;border-radius:50%;background:radial-gradient(circle at 35% 40%,#7045ff88, #3f00ff70 30%,#3f00ff15 55%,transparent 70%);filter:blur(40px);animation:breathe 12s ease-in-out infinite;pointer-events:none}.hero-kicker,.small-label,.eyebrow{font-size:11px;letter-spacing:2px}.hero-kicker{position:relative;display:flex;align-items:center;gap:12px}.hero-location{margin-left:auto;color:var(--muted)}.status-dot{height:6px;width:6px;background:var(--blue);border-radius:50%;box-shadow:0 0 14px #7546ff}.hero h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(70px,10.5vw,170px);font-weight:500;letter-spacing:-.075em;line-height:1.02;margin:45px 0 65px;position:relative;animation:enter 1s both}.outlined{color:transparent;-webkit-text-stroke:1px #efedf5}.hero-star{display:inline-block;color:var(--blue);font-size:.72em;margin-left:.15em;vertical-align:middle;animation:rotate 30s linear infinite}.hero-bottom{display:flex;align-items:center;gap:22px;position:relative}.hero-bottom p{font-size:15px;line-height:1.8;color:#b7b5c1;margin-right:auto}.circle-link{width:56px;height:56px;border:1px solid #ffffff40;border-radius:50%;display:grid;place-items:center;font-size:25px;transition:background .3s}.circle-link:hover{background:var(--blue)}.small-label{color:var(--muted)}.marquee{padding:23px 0;background:var(--blue);overflow:hidden;transform:rotate(-2deg);margin:20px -1% 0;width:102%}.marquee>div{width:max-content;white-space:nowrap;font-family:'Space Grotesk',sans-serif;font-size:26px;letter-spacing:1px;animation:ticker 30s linear infinite}.marquee span{margin:0 35px}.section-pad{padding:130px 5%}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:65px}.eyebrow{color:var(--muted);display:block;margin-bottom:30px}h2{font-family:'Space Grotesk',sans-serif;font-size:clamp(48px,6.5vw,100px);font-weight:500;line-height:1.05;letter-spacing:-.06em;margin:0}.blue{color:var(--blue)}.section-heading p{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:8px}.project{border:0;background:none;padding:0;text-align:left;cursor:pointer;width:100%;display:block}.project-image{position:relative;overflow:hidden;background:#17171b;aspect-ratio:16/9}.project-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .8s}.project:hover img{transform:scale(1.035);filter:brightness(.85)}.project-open{position:absolute;top:24px;right:24px;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;background:#0a0a0c90;font-size:25px;transition:background .3s,transform .3s}.project:hover .project-open{background:var(--blue);transform:rotate(45deg)}.image-tag{position:absolute;bottom:25px;left:25px;font-size:10px;letter-spacing:1.5px;color:white;background:#0008;padding:10px 14px;border:1px solid #ffffff30;border-radius:25px}.project-caption{display:flex;justify-content:space-between;align-items:center;padding:22px 0;border-bottom:1px solid var(--line);gap:20px}.project-caption h3{font-size:25px;letter-spacing:-1px;font-weight:500;margin:0}.project-caption>span{font-size:10px;letter-spacing:1px;color:var(--muted)}.index{margin-left:22px}.project-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;margin-top:65px;align-items:start}.project-grid .project-image{aspect-ratio:1/1}.poster-project{margin-top:110px}.poster-project .project-image{aspect-ratio:3/4}.poster-project img{object-fit:contain;background:#d5cbbb}.text-link{display:inline-flex;gap:40px;align-items:center;padding:15px 0;border-bottom:1px solid #ffffff60;font-size:14px}.work>.text-link{margin-top:55px}.text-link span{font-size:23px}.text-link:hover{color:#a994ff}.about{border-top:1px solid var(--line)}.about-content{display:grid;grid-template-columns:1.2fr 1fr;gap:80px}.about h2 em{font-style:normal;color:#a38dff}.about-copy p{font-size:19px;line-height:1.7;color:#b5b3bd;margin:0 0 22px}.disciplines{display:flex;flex-wrap:wrap;gap:10px;margin:35px 0}.disciplines span{border:1px solid var(--line);padding:9px 15px;border-radius:30px;font-size:12px}.contact{background:var(--blue);padding-bottom:30px;position:relative;overflow:hidden}.contact .eyebrow{color:#c5b5ff}.contact h2{font-size:clamp(60px,9vw,140px)}.contact h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1px white}.contact-links{display:flex;gap:35px;margin-top:50px;font-size:20px}.contact-links a{border-bottom:1px solid #ffffff80;padding-bottom:12px}footer{margin-top:130px;padding-top:28px;border-top:1px solid #ffffff40;display:flex;align-items:center;justify-content:space-between}footer>span,footer>a:last-child{font-size:10px;letter-spacing:1px}.reveal{opacity:1}.js-ready .reveal{opacity:0;transform:translateY(35px);transition:opacity .9s,transform .9s}.js-ready .reveal.visible{opacity:1;transform:none}dialog{border:0;background:var(--bg);color:var(--ink);width:min(1100px,95vw);height:92svh;padding:0}dialog::backdrop{background:#000c;backdrop-filter:blur(12px)}.dialog-bar{display:flex;justify-content:space-between;align-items:center;padding:20px 25px;position:sticky;top:0;background:#0a0a0cf2;z-index:1}.dialog-bar button{border:1px solid var(--line);background:transparent;padding:10px 15px;cursor:pointer;font-size:11px}#dialog-gallery{padding:0 20px 20px;display:grid;gap:15px}#dialog-gallery img{width:100%;height:auto;display:block}body.modal-open{overflow:hidden}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes breathe{50%{transform:translate(-8%,12%) scale(1.1)}}@keyframes ticker{to{transform:translateX(-50%)}}@keyframes enter{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@media(min-width:1600px){.section-pad,.navigation,.hero{padding-left:max(5%,calc((100vw - 1500px)/2));padding-right:max(5%,calc((100vw - 1500px)/2))}}@media(max-width:700px){.navigation{padding-top:23px}.navigation>a:nth-child(2){display:none}.nav-contact{font-size:11px}.hero{min-height:760px;min-height:95svh;padding-top:145px}.hero-location{display:none}.hero h1{font-size:clamp(62px,13vw,95px);margin:55px 0 65px}.hero-star{margin-left:.04em}.hero-bottom{flex-wrap:wrap}.hero-bottom p{width:100%;font-size:13px}.small-label{font-size:9px}.orb{width:140vw;height:140vw;right:-70vw;top:0}.section-pad{padding-top:85px;padding-bottom:85px}.section-heading{display:block;margin-bottom:35px}.section-heading p{margin-top:25px}.project-grid{grid-template-columns:1fr;gap:40px;margin-top:40px}.poster-project{margin-top:0}.project-caption{gap:10px}.project-caption h3{font-size:21px}.project-caption>span{font-size:8px}.index{margin-left:10px}.project-open{top:15px;right:15px;width:40px;height:40px}.about-content{grid-template-columns:1fr;gap:35px}.about-copy p{font-size:17px}.contact{padding-bottom:25px}.contact h2{font-size:clamp(48px,11vw,75px)}footer{margin-top:85px;flex-wrap:wrap;gap:25px}footer>span{font-size:8px}.marquee>div{font-size:20px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js-ready .reveal{opacity:1;transform:none}}

/* Keep the tilted ribbon inside the viewport. */
body{overflow-x:clip}
main{overflow-x:clip}

.contact-links{flex-wrap:wrap}
.nav-contact{position:relative;isolation:isolate;overflow:hidden;transition:border-color .3s ease,color .3s ease;}
.nav-contact::before{content:"";position:absolute;left:var(--hover-x,50%);top:var(--hover-y,50%);width:var(--hover-size,450px);height:var(--hover-size,450px);border-radius:50%;background:var(--blue);transform:translate(-50%,-50%) scale(0);transition:transform .5s cubic-bezier(.22,.7,.2,1);z-index:-1;pointer-events:none;}
.nav-contact.is-hovering::before{transform:translate(-50%,-50%) scale(1);}
.nav-contact.is-hovering{border-color:var(--blue);color:#fff;}
.navigation .nav-contact .contact-button-window,.navigation .nav-contact .contact-button-reel,.navigation .nav-contact .contact-button-line{margin-left:0;}
.contact-button-window{display:block;height:var(--reel-line-height,20px);overflow:hidden;}
.contact-button-reel{display:block;}
.contact-button-line{display:flex;align-items:center;justify-content:space-between;gap:10px;height:var(--reel-line-height,20px);white-space:nowrap;}
.is-text-animating .contact-button-reel{animation:contact-reel 1.1s cubic-bezier(.65,0,.35,1) both;}
@keyframes contact-reel{from{transform:translateY(0)}to{transform:translateY(-75%)}}
@media(prefers-reduced-motion:reduce){.is-text-animating .contact-button-reel{animation:none;}.nav-contact::before{transition:none;}}

.nav-contact{display:inline-flex;align-items:center;gap:10px}.navigation .nav-contact .contact-button-icon{margin-left:0}.contact-button-icon{flex:none}
.marquee>div{display:flex;}
.marquee .marquee-group{display:flex;align-items:center;flex-shrink:0;}
.marquee .marquee-term{margin:0;}
.marquee .marquee-separator{margin:0 35px;flex-shrink:0;}
.contact-links a{display:inline-flex;align-items:center;gap:7px;transition:color .25s ease,border-color .25s ease;}
.contact-links a .contact-button-icon{display:inline-block;transition:transform .3s ease;}
.contact-links a:hover,.contact-links a:focus-visible{color:#000;border-color:#000;}
.contact-links a:hover .contact-button-icon,.contact-links a:focus-visible .contact-button-icon{transform:rotate(45deg);}
.header-actions{display:flex;align-items:center;gap:16px;}
.theme-toggle{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);cursor:pointer;}
.theme-toggle:hover{color:var(--blue);border-color:var(--blue);}
.theme-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.moon-icon{display:none;}
:root{color-scheme:dark;}
:root[data-theme="light"]{color-scheme:light;--bg:#f4f3f7;--ink:#141218;--muted:#68646f;--line:#14121825;}
[data-theme="light"] .sun-icon{display:none;}
[data-theme="light"] .moon-icon{display:block;}
[data-theme="light"] .outlined{-webkit-text-stroke-color:var(--ink);}
[data-theme="light"] .hero-grid{background-image:linear-gradient(#14121805 1px,transparent 1px),linear-gradient(90deg,#14121805 1px,transparent 1px);}
[data-theme="light"] .hero-bottom p,[data-theme="light"] .about-copy p{color:#615b6c;}
[data-theme="light"] .nav-contact,[data-theme="light"] .circle-link,[data-theme="light"] .text-link{border-color:#14121850;}
[data-theme="light"] .nav-contact.is-hovering{border-color:var(--blue);}
[data-theme="light"] .circle-link:hover{color:white;}
[data-theme="light"] .about h2 em{color:var(--blue);}
[data-theme="light"] .text-link:hover{color:var(--blue);}
[data-theme="light"] .dialog-bar{background:#f4f3f7f2;}
.marquee,.contact{color:#eeedf2;}
::view-transition-old(root),::view-transition-new(root){animation:none;mix-blend-mode:normal;}
::view-transition-old(root){z-index:1;}
::view-transition-new(root){z-index:2;}
@media(max-width:700px){.header-actions{gap:10px;}.theme-toggle{width:38px;height:38px;}}
.theme-changing *, .theme-changing *::before, .theme-changing *::after{animation-play-state:paused!important;transition:none!important;}
::view-transition-new(root){will-change:clip-path;}
/* Glass treatment adapted from React Bits Glass Surface's CSS fallback.
   https://reactbits.dev/components/glass-surface */
.header-actions{padding-right:calc(var(--contact-width,162px) + 16px);}
.navigation .nav-contact{
  position:fixed;top:30px;right:5%;z-index:10;
  background:linear-gradient(135deg,#ffffff18,#ffffff05 45%,#ffffff10),#1010188c;
  border:0.5px solid #ffffff25;color:#fff;
  -webkit-backdrop-filter:blur(6px) saturate(1.8) brightness(1.1);
  backdrop-filter:blur(6px) saturate(1.8) brightness(1.1);
  box-shadow:0 8px 24px #00000020;
}
.navigation .nav-contact::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,#ffffff10,transparent 38%,transparent 70%,#ffffff08);}
[data-theme="light"] .navigation .nav-contact{background:linear-gradient(135deg,#ffffff75,#ffffff25 45%,#ffffff55),#f4f3f780;border-color:#14121820;color:var(--ink);box-shadow:0 8px 24px #14121818;}
.navigation .nav-contact.is-hovering,[data-theme="light"] .navigation .nav-contact.is-hovering{color:#fff;border-color:transparent;}
.navigation .nav-contact.is-hovering::after{opacity:0;}
@media(min-width:1600px){.navigation .nav-contact{right:max(5%,calc((100vw - 1500px)/2));}}
@media(max-width:700px){.navigation .nav-contact{top:23px;}.header-actions{padding-right:calc(var(--contact-width,148px) + 10px);}}
@supports not ((backdrop-filter:blur(6px)) or (-webkit-backdrop-filter:blur(6px))){.navigation .nav-contact{background:#22212ee8;}[data-theme="light"] .navigation .nav-contact{background:#f4f3f7eb;}}
/* v5: v1 surface with restrained chromatic fringe, no displacement. */
.navigation .nav-contact::after{box-shadow:inset 0.5px 0 0 #ff8c9b10,inset -0.5px 0 0 #81caff14;}
.theme-toggle{position:relative;isolation:isolate;overflow:hidden;border-width:1px;transition:color .25s,border-color .25s;}
.theme-toggle::before{content:"";position:absolute;left:var(--theme-x,50%);top:var(--theme-y,50%);width:var(--theme-size,110px);height:var(--theme-size,110px);background:var(--blue);border-radius:50%;z-index:-1;transform:translate(-50%,-50%) scale(0);transition:transform .42s cubic-bezier(.22,.7,.2,1);}
.theme-toggle.is-filled::before{transform:translate(-50%,-50%) scale(1);}
.theme-toggle.is-filled{color:#fff;border-color:transparent;}
.theme-toggle svg{position:absolute;display:block!important;stroke-width:1.15;}
.theme-toggle[data-icon-theme="dark"] .sun-icon,.theme-toggle[data-icon-theme="light"] .moon-icon{transform:translateY(0);}
.theme-toggle[data-icon-theme="dark"] .moon-icon,.theme-toggle[data-icon-theme="light"] .sun-icon{transform:translateY(44px);}
.theme-changing .theme-toggle::before{transition:transform .42s cubic-bezier(.22,.7,.2,1)!important;}
.page-loader{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:#0a0a0c30;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:opacity .28s ease,backdrop-filter .28s ease;}
.page-loader svg{width:200px;height:100px;overflow:visible;}
.loading-neutral{fill:#fff;}.loading-blue{fill:var(--blue);}.loading-intersection{fill:#000;}
.loading-left{animation:loading-converge-left 1.1s linear both;}
.loading-right{animation:loading-converge-right 1.1s linear both;}
@keyframes loading-converge-left{0%{transform:translate(-40px,0)}20%{transform:translate(0,-55px)}40%{transform:translate(65px,-15px)}60%{transform:translate(45px,28px)}80%{transform:translate(8px,10px)}100%{transform:translate(20px,0)}}
@keyframes loading-converge-right{0%{transform:translate(40px,0)}20%{transform:translate(0,55px)}40%{transform:translate(-65px,15px)}60%{transform:translate(-45px,-28px)}80%{transform:translate(-8px,-10px)}100%{transform:translate(-20px,0)}}
[data-theme="light"] .page-loader{background:#f4f3f730;}
[data-theme="light"] .loading-neutral{fill:#000;}
[data-theme="light"] .loading-intersection{fill:#fff;}
.page-loader.is-loaded{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0);pointer-events:none;}
@media(prefers-reduced-motion:reduce){.page-loader{transition:none;}.loading-left{transform:translateX(20px)}.loading-right{transform:translateX(-20px)}}
@keyframes loading-converge-left{0%{transform:translate(-40px,0px)}1.25%{transform:translate(-38.4px,-5.81px)}2.5%{transform:translate(-35.92px,-11.32px)}3.75%{transform:translate(-32.61px,-16.46px)}5%{transform:translate(-28.59px,-21.18px)}6.25%{transform:translate(-23.93px,-25.43px)}7.5%{transform:translate(-18.74px,-29.17px)}8.75%{transform:translate(-13.12px,-32.38px)}10%{transform:translate(-7.17px,-35.03px)}11.25%{transform:translate(-0.98px,-37.13px)}12.5%{transform:translate(5.34px,-38.68px)}13.75%{transform:translate(11.71px,-39.67px)}15%{transform:translate(18.03px,-40.14px)}16.25%{transform:translate(24.23px,-40.1px)}17.5%{transform:translate(30.23px,-39.57px)}18.75%{transform:translate(35.96px,-38.6px)}20%{transform:translate(41.37px,-37.22px)}21.25%{transform:translate(46.41px,-35.47px)}22.5%{transform:translate(51.03px,-33.4px)}23.75%{transform:translate(55.2px,-31.05px)}25%{transform:translate(58.9px,-28.46px)}26.25%{transform:translate(62.12px,-25.69px)}27.5%{transform:translate(64.83px,-22.76px)}28.75%{transform:translate(67.04px,-19.74px)}30%{transform:translate(68.76px,-16.66px)}31.25%{transform:translate(69.99px,-13.56px)}32.5%{transform:translate(70.76px,-10.47px)}33.75%{transform:translate(71.07px,-7.44px)}35%{transform:translate(70.97px,-4.49px)}36.25%{transform:translate(70.48px,-1.65px)}37.5%{transform:translate(69.62px,1.06px)}38.75%{transform:translate(68.44px,3.61px)}40%{transform:translate(66.96px,5.99px)}41.25%{transform:translate(65.23px,8.19px)}42.5%{transform:translate(63.28px,10.19px)}43.75%{transform:translate(61.14px,11.99px)}45%{transform:translate(58.86px,13.58px)}46.25%{transform:translate(56.46px,14.96px)}47.5%{transform:translate(53.98px,16.13px)}48.75%{transform:translate(51.46px,17.11px)}50%{transform:translate(48.91px,17.88px)}51.25%{transform:translate(46.36px,18.47px)}52.5%{transform:translate(43.85px,18.87px)}53.75%{transform:translate(41.39px,19.1px)}55%{transform:translate(39px,19.18px)}56.25%{transform:translate(36.7px,19.1px)}57.5%{transform:translate(34.51px,18.89px)}58.75%{transform:translate(32.43px,18.56px)}60%{transform:translate(30.47px,18.13px)}61.25%{transform:translate(28.65px,17.59px)}62.5%{transform:translate(26.97px,16.98px)}63.75%{transform:translate(25.42px,16.3px)}65%{transform:translate(24.02px,15.56px)}66.25%{transform:translate(22.77px,14.78px)}67.5%{transform:translate(21.65px,13.96px)}68.75%{transform:translate(20.67px,13.13px)}70%{transform:translate(19.82px,12.28px)}71.25%{transform:translate(19.1px,11.42px)}72.5%{transform:translate(18.49px,10.57px)}73.75%{transform:translate(18.01px,9.73px)}75%{transform:translate(17.63px,8.91px)}76.25%{transform:translate(17.34px,8.11px)}77.5%{transform:translate(17.15px,7.34px)}78.75%{transform:translate(17.04px,6.6px)}80%{transform:translate(17px,5.9px)}81.25%{transform:translate(17.02px,5.23px)}82.5%{transform:translate(17.1px,4.6px)}83.75%{transform:translate(17.23px,4.01px)}85%{transform:translate(17.4px,3.47px)}86.25%{transform:translate(17.61px,2.96px)}87.5%{transform:translate(17.83px,2.5px)}88.75%{transform:translate(18.08px,2.07px)}90%{transform:translate(18.34px,1.69px)}91.25%{transform:translate(18.6px,1.35px)}92.5%{transform:translate(18.86px,1.04px)}93.75%{transform:translate(19.12px,0.77px)}95%{transform:translate(19.36px,0.54px)}96.25%{transform:translate(19.58px,0.34px)}97.5%{transform:translate(19.77px,0.18px)}98.75%{transform:translate(19.92px,0.06px)}100%{transform:translate(20px,0px)}}@keyframes loading-converge-right{0%{transform:translate(40px,-0px)}1.25%{transform:translate(38.4px,5.81px)}2.5%{transform:translate(35.92px,11.32px)}3.75%{transform:translate(32.61px,16.46px)}5%{transform:translate(28.59px,21.18px)}6.25%{transform:translate(23.93px,25.43px)}7.5%{transform:translate(18.74px,29.17px)}8.75%{transform:translate(13.12px,32.38px)}10%{transform:translate(7.17px,35.03px)}11.25%{transform:translate(0.98px,37.13px)}12.5%{transform:translate(-5.34px,38.68px)}13.75%{transform:translate(-11.71px,39.67px)}15%{transform:translate(-18.03px,40.14px)}16.25%{transform:translate(-24.23px,40.1px)}17.5%{transform:translate(-30.23px,39.57px)}18.75%{transform:translate(-35.96px,38.6px)}20%{transform:translate(-41.37px,37.22px)}21.25%{transform:translate(-46.41px,35.47px)}22.5%{transform:translate(-51.03px,33.4px)}23.75%{transform:translate(-55.2px,31.05px)}25%{transform:translate(-58.9px,28.46px)}26.25%{transform:translate(-62.12px,25.69px)}27.5%{transform:translate(-64.83px,22.76px)}28.75%{transform:translate(-67.04px,19.74px)}30%{transform:translate(-68.76px,16.66px)}31.25%{transform:translate(-69.99px,13.56px)}32.5%{transform:translate(-70.76px,10.47px)}33.75%{transform:translate(-71.07px,7.44px)}35%{transform:translate(-70.97px,4.49px)}36.25%{transform:translate(-70.48px,1.65px)}37.5%{transform:translate(-69.62px,-1.06px)}38.75%{transform:translate(-68.44px,-3.61px)}40%{transform:translate(-66.96px,-5.99px)}41.25%{transform:translate(-65.23px,-8.19px)}42.5%{transform:translate(-63.28px,-10.19px)}43.75%{transform:translate(-61.14px,-11.99px)}45%{transform:translate(-58.86px,-13.58px)}46.25%{transform:translate(-56.46px,-14.96px)}47.5%{transform:translate(-53.98px,-16.13px)}48.75%{transform:translate(-51.46px,-17.11px)}50%{transform:translate(-48.91px,-17.88px)}51.25%{transform:translate(-46.36px,-18.47px)}52.5%{transform:translate(-43.85px,-18.87px)}53.75%{transform:translate(-41.39px,-19.1px)}55%{transform:translate(-39px,-19.18px)}56.25%{transform:translate(-36.7px,-19.1px)}57.5%{transform:translate(-34.51px,-18.89px)}58.75%{transform:translate(-32.43px,-18.56px)}60%{transform:translate(-30.47px,-18.13px)}61.25%{transform:translate(-28.65px,-17.59px)}62.5%{transform:translate(-26.97px,-16.98px)}63.75%{transform:translate(-25.42px,-16.3px)}65%{transform:translate(-24.02px,-15.56px)}66.25%{transform:translate(-22.77px,-14.78px)}67.5%{transform:translate(-21.65px,-13.96px)}68.75%{transform:translate(-20.67px,-13.13px)}70%{transform:translate(-19.82px,-12.28px)}71.25%{transform:translate(-19.1px,-11.42px)}72.5%{transform:translate(-18.49px,-10.57px)}73.75%{transform:translate(-18.01px,-9.73px)}75%{transform:translate(-17.63px,-8.91px)}76.25%{transform:translate(-17.34px,-8.11px)}77.5%{transform:translate(-17.15px,-7.34px)}78.75%{transform:translate(-17.04px,-6.6px)}80%{transform:translate(-17px,-5.9px)}81.25%{transform:translate(-17.02px,-5.23px)}82.5%{transform:translate(-17.1px,-4.6px)}83.75%{transform:translate(-17.23px,-4.01px)}85%{transform:translate(-17.4px,-3.47px)}86.25%{transform:translate(-17.61px,-2.96px)}87.5%{transform:translate(-17.83px,-2.5px)}88.75%{transform:translate(-18.08px,-2.07px)}90%{transform:translate(-18.34px,-1.69px)}91.25%{transform:translate(-18.6px,-1.35px)}92.5%{transform:translate(-18.86px,-1.04px)}93.75%{transform:translate(-19.12px,-0.77px)}95%{transform:translate(-19.36px,-0.54px)}96.25%{transform:translate(-19.58px,-0.34px)}97.5%{transform:translate(-19.77px,-0.18px)}98.75%{transform:translate(-19.92px,-0.06px)}100%{transform:translate(-20px,-0px)}}

/* Play only the second half of the original 1.1s spiral. */
.loading-left,.loading-right{animation-delay:-.55s}
.project-carousel{width:100vw;margin-left:calc(50% - 50vw);overflow:hidden;padding:30px 0;touch-action:pan-y;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent);}
.project-track,.project-group{display:flex;width:max-content;gap:28px;}
.project-group{padding-right:28px;gap:28px;}
.project-track{gap:0;will-change:transform;}
.project-carousel .project{flex:none;width:clamp(290px,32vw,480px);position:relative;user-select:none;cursor:grab;}
.project-carousel .project-image{aspect-ratio:4/3;border-radius:16px;isolation:isolate;border:1px solid var(--line);}
.project-carousel .project-image img{object-fit:cover;pointer-events:none;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .6s;}
.project-carousel [data-project="poster"] img{object-fit:contain;background:#d5cbbb;}
.project-carousel .project-image::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,50%),#ffffff30,transparent 60%);opacity:0;transition:opacity .5s;mix-blend-mode:screen;}
.project-carousel .project.is-chroma .project-image::after{opacity:1;}
.project-carousel .project.is-chroma img{transform:scale(1.06);filter:brightness(1.08) saturate(1.2) drop-shadow(2px 0 0 #ff426970) drop-shadow(-2px 0 0 #39caff70);}
.project-carousel .project.is-chroma img{filter:url(#project-chroma) brightness(1.04) saturate(1.12);}
.project-carousel .project-image img{transition:none;}
.project-carousel .project-caption h3{font-size:23px;}
.project-carousel .project-caption>span{font-size:9px;}
.project-carousel .index{margin-left:12px;}
.project-carousel.is-dragging .project{cursor:grabbing;}
.carousel-controls{display:flex;justify-content:space-between;align-items:center;margin-top:12px;color:var(--muted);font-size:10px;letter-spacing:1.5px;}
.carousel-controls button{background:transparent;border:1px solid var(--line);border-radius:30px;padding:10px 15px;font-size:11px;cursor:pointer;}
@media(prefers-reduced-motion:reduce){.project-carousel{overflow-x:auto;mask-image:none;-webkit-mask-image:none;}.project-track{transform:none!important;}.project-track>.project-group:not(:first-child),.project-group>[data-loop-copy]{display:none;}.project-carousel .project{transform:none!important;}.carousel-controls{display:none;}}

.project-rows{display:flex;flex-direction:column;gap:24px}.project-rows .project-carousel{padding:18px 0}.project-rows .project-open{display:none}
/* Covers-only carousel: original colors on hover and soft peripheral falloff. */
.project-rows{gap:12px;}
.project-rows .project-carousel{position:relative;padding:14px 0;mask-image:linear-gradient(to right,transparent,#0004 3%,#000b 7%,#000 13%,#000 87%,#000b 93%,#0004 97%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#0004 3%,#000b 7%,#000 13%,#000 87%,#000b 93%,#0004 97%,transparent);}
.project-group{gap:16px;padding-right:16px;}
.project-carousel .project-image{aspect-ratio:4/3;}
.project-carousel .project-image img,.project-carousel .project:hover img,.project-carousel .project.is-chroma img{filter:brightness(.48);transform:none;transition:filter .45s ease;}
.project-carousel .project.is-chroma img,.project-carousel .project:focus-visible img{filter:brightness(1);}
.project-carousel .project-image::after{display:none;}
.carousel-edge-softness{position:absolute;inset:0;pointer-events:none;z-index:2;backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);mask-image:linear-gradient(to right,#000,#0009 3%,#0003 7%,transparent 13%,transparent 87%,#0003 93%,#0009 97%,#000);-webkit-mask-image:linear-gradient(to right,#000,#0009 3%,#0003 7%,transparent 13%,transparent 87%,#0003 93%,#0009 97%,#000);}
@media(prefers-reduced-motion:reduce){.carousel-edge-softness{display:none;}}
.project-rows{position:relative;gap:16px;isolation:isolate;}
.project-rows .project-carousel{padding:0;}
.project-carousel .project-image{aspect-ratio:16/9;}
.project-carousel .project-image img,.project-carousel .project:hover img,.project-carousel .project.is-chroma img{filter:none;}
.project-spotlight{position:absolute;inset:0;z-index:3;pointer-events:none;background:#0009;backdrop-filter:brightness(1);mask-image:linear-gradient(#000,#000);-webkit-mask-image:linear-gradient(#000,#000);transition:opacity .35s;}
.project-rows.has-spotlight .project-spotlight{mask-image:radial-gradient(circle 360px at var(--spot-x,50%) var(--spot-y,50%),transparent 0%,transparent 18%,#0005 55%,#000 100%);-webkit-mask-image:radial-gradient(circle 360px at var(--spot-x,50%) var(--spot-y,50%),transparent 0%,transparent 18%,#0005 55%,#000 100%);}
.project-carousel .project:focus-visible{z-index:4;}
.project-spotlight{display:none;}
.project-carousel .project-image::after{display:block;opacity:1;background:#0009;mix-blend-mode:normal;transition:none;}
.project-rows.has-spotlight .project-image::after{mask-image:radial-gradient(circle 360px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,transparent 18%,#0005 55%,#000 100%);-webkit-mask-image:radial-gradient(circle 360px at var(--light-x,-1000px) var(--light-y,-1000px),transparent 0%,transparent 18%,#0005 55%,#000 100%);}
.project-carousel .project:focus-visible .project-image::after{opacity:0;}
.project-carousel .project{width:clamp(340px,43vw,640px);}
.carousel-edge-softness{display:none;}
.portfolio-gradual-blur{position:absolute;top:0;bottom:0;width:clamp(65px,13vw,200px);z-index:5;pointer-events:none;}
.portfolio-gradual-blur-left{left:calc(50% - 50vw);}
.portfolio-gradual-blur-right{right:calc(50% - 50vw);}
.portfolio-gradual-blur span{position:absolute;inset:0;pointer-events:none;}
.animated-drag-cursor{position:fixed;width:48px;height:30px;transform:translate(-50%,-50%);z-index:100;pointer-events:none;display:none;}
.animated-drag-cursor svg{width:100%;height:100%;overflow:visible;}
@media(hover:hover) and (pointer:fine){.animated-drag-cursor.is-visible{display:block;}.flex-portfolio-stage .flex-carousel:not([data-hover]),.flex-portfolio-stage .flex-carousel[data-dragging]{cursor:none!important;}}
.animated-drag-cursor.is-pulsing .cursor-arrow-left{animation:cursor-pulse-left .6s ease-in-out;}
.animated-drag-cursor.is-pulsing .cursor-arrow-right{animation:cursor-pulse-right .6s ease-in-out;}
@keyframes cursor-pulse-left{0%,100%{transform:translateX(0)}50%{transform:translateX(-4px)}}
@keyframes cursor-pulse-right{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.flex-drag-hint{position:absolute;top:calc(77.5% + 82px);left:50%;transform:translateX(-50%);white-space:nowrap;pointer-events:none;font-size:10px;letter-spacing:1.4px;color:var(--muted);}
.flex-portfolio-controls{justify-content:center!important;}
@media(hover:hover) and (pointer:fine){.flex-portfolio-stage .flex-carousel,.flex-portfolio-stage .flex-carousel[data-hover],.flex-portfolio-stage .flex-carousel[data-dragging]{cursor:url('assets/cursor-drag.svg') 32 20,ew-resize;}}
.flex-portfolio-stage{width:100vw;margin-left:calc(50% - 50vw);height:clamp(440px,46vw,680px);position:relative;}
.flex-portfolio-controls{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.4px;color:var(--muted);}
.all-projects-button{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:24px;padding:18px 28px;border-radius:40px;background:var(--blue);color:#fff;font-size:14px;font-weight:500;letter-spacing:0;box-shadow:0 8px 28px #3f00ff35;transition:transform .35s ease,box-shadow .35s ease;}
.all-projects-button::before{content:"";position:absolute;inset:-80% -50%;z-index:-1;background:linear-gradient(110deg,transparent 40%,#ffffff28 50%,transparent 60%);transform:translateX(-65%);animation:projects-button-shine 4s ease-in-out infinite;pointer-events:none;}
.all-projects-button:hover{transform:translateY(-3px);box-shadow:0 12px 38px #3f00ff60;}
.all-projects-arrow{font-size:22px;transition:transform .35s cubic-bezier(.22,.7,.2,1);}
.all-projects-button:hover .all-projects-arrow{transform:translate(3px,-3px);}
.all-projects-button:active{transform:translateY(0) scale(.98);}
@keyframes projects-button-shine{0%,30%{transform:translateX(-65%)}65%,100%{transform:translateX(65%)}}
.flex-project-fallback:not([hidden]){display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;}

@media(hover:hover) and (pointer:fine){.flex-portfolio-stage .flex-carousel{cursor:url('assets/cursor-drag.svg?v=3') 24 15,ew-resize}.flex-portfolio-stage .flex-carousel[data-hover]{cursor:pointer}.flex-portfolio-stage .flex-carousel[data-dragging]{cursor:url('assets/cursor-drag.svg?v=3') 24 15,grabbing}}
.projects-contact-button{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:16px;padding:18px 28px;border:0;border-radius:999px;background:#fff;color:#141218;font-size:14px;font-weight:500;letter-spacing:0;--reel-line-height:20px;transition:color .3s ease;}
.projects-contact-button::before{content:"";position:absolute;left:var(--hover-x,50%);top:var(--hover-y,50%);width:var(--hover-size,600px);height:var(--hover-size,600px);border-radius:50%;background:var(--blue);transform:translate(-50%,-50%) scale(0);transition:transform .5s cubic-bezier(.22,.7,.2,1);z-index:-1;pointer-events:none;}
.projects-contact-button.is-hovering{color:#fff;}
.projects-contact-button.is-hovering::before{transform:translate(-50%,-50%) scale(1);}
@media(prefers-reduced-motion:reduce){.projects-contact-button::before{transition:none;}}
.flex-portfolio-mount:has(.flex-carousel[data-focused]) .flex-drag-hint,.flex-portfolio-mount:has(.flex-carousel[data-focused]) .flex-portfolio-controls{opacity:0;visibility:hidden;pointer-events:none;}
.flex-drag-hint,.flex-portfolio-controls{transition:opacity .3s ease,visibility .3s ease;}
.flex-carousel__more{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;background:none;color:var(--ink);padding:6px 12px;font-size:12px;letter-spacing:0;cursor:pointer;pointer-events:auto;animation:flex-carousel-title .45s ease both;}
.flex-carousel__more-arrow{display:inline-block;animation:project-more-pulse 1.4s ease-in-out infinite;}
.flex-carousel[data-focused] .flex-carousel__count{display:none;}
@keyframes project-more-pulse{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
/* Text loop v2: React Bits CurvedLoop. Previous markup saved in references/marquee-versions. */
.portfolio-curved-loop{position:relative;z-index:2;width:100%;overflow:hidden;margin-top:clamp(-140px,-9vw,-85px);padding:45px 0 30px;}
.portfolio-curved-loop .curved-loop-jacket{min-height:0;height:clamp(140px,16vw,260px);touch-action:pan-y;}
.portfolio-curved-loop .curved-loop-svg{font-family:'Space Grotesk',sans-serif;font-size:48px;font-weight:700;fill:var(--blue);flex:none;min-width:900px;}
/* Text loop v3: React Bits TextLoop with an animated blue wave ribbon. */
.portfolio-text-loop{position:relative;z-index:2;width:100%;margin-top:clamp(-140px,-9vw,-85px);overflow:hidden;font-family:'Space Grotesk',sans-serif;}
.portfolio-text-loop .text-loop-svg{min-width:900px;width:100%;position:relative;left:50%;transform:translateX(-50%);margin-top:-5%;margin-bottom:-5%;}
/* Compact wave ribbon and bring the portfolio heading closer. */
.portfolio-text-loop .text-loop-svg{margin-top:-10%;margin-bottom:-10%;}
.portfolio-text-loop + .work{padding-top:45px;}
@media(max-width:700px){.portfolio-text-loop + .work{padding-top:30px;}}
/* Menu v2: spacious hero navigation becomes a floating rounded bar. */
.navigation{z-index:50;gap:24px;}
.header-menu{position:relative;display:flex;align-items:center;justify-content:center;gap:26px;padding:18px 28px;border:1px solid var(--line);border-radius:999px;background:#ffffff08;}
.header-menu::after{content:"";position:absolute;left:var(--menu-marker-x,44px);bottom:-1px;width:24px;height:12px;border-radius:12px 12px 0 0;background:var(--blue);transform:translateX(-50%);transition:left .55s cubic-bezier(.22,.7,.2,1);pointer-events:none;}
.header-menu a{white-space:nowrap;font-size:13px;font-weight:500;transition:color .25s;}
.header-menu a:hover,.header-menu a.is-active{color:var(--blue);}
.navigation .header-actions{padding-right:0;gap:12px;}
.navigation .nav-contact,[data-theme="light"] .navigation .nav-contact{position:relative;top:auto;right:auto;background:#fff;color:#141218;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;padding:16px 22px;}
.navigation .nav-contact::after{display:none;}
.navigation .nav-contact.is-hovering,[data-theme="light"] .navigation .nav-contact.is-hovering{color:#fff;}
.navigation.is-floating{position:fixed;top:12px;left:50%;width:calc(100% - 32px);max-width:1420px;transform:translateX(-50%);padding:10px 18px;background:#141416;border:1px solid #ffffff18;border-radius:999px;box-shadow:0 12px 35px #0003;animation:menu-enter .45s cubic-bezier(.22,.7,.2,1) both;color:#fff;}
.navigation.is-floating .header-menu{padding:10px 20px;background:none;border:0;}
.navigation.is-floating .theme-toggle{color:#fff;border-color:#ffffff40;}
.navigation.is-floating .theme-toggle.is-filled{border-color:transparent;}
.navigation.is-floating .wordmark{font-size:30px;}
@keyframes menu-enter{from{opacity:0;transform:translate(-50%,-110%)}to{opacity:1;transform:translate(-50%,0)}}
.site-cursor{position:fixed;left:0;top:0;width:12px;height:12px;border-radius:50%;background:var(--blue);pointer-events:none;z-index:9999;opacity:0;transition:width .25s,height .25s,opacity .2s,background .25s;will-change:transform;}
.site-cursor.is-visible{opacity:1;}
.site-cursor.is-interactive{width:36px;height:36px;background:#3f00ff55;border:1px solid var(--blue);}
.site-cursor.is-down{width:8px;height:8px;}
body:has(.animated-drag-cursor.is-visible) .site-cursor{opacity:0;}
@media(max-width:1050px){.header-menu{gap:16px;padding:15px 18px;}.header-menu a{font-size:11px;}.navigation{gap:16px;}.navigation .nav-contact{padding:14px 16px;}}
@media(max-width:700px){.navigation{padding:20px 5%;flex-wrap:wrap;gap:12px;}.navigation .header-actions{margin-left:auto;}.header-menu{order:3;width:100%;gap:20px;padding:12px;}.navigation.is-floating{top:8px;padding:10px 14px;border-radius:28px;gap:8px;}.navigation.is-floating .header-menu{padding:8px 0 2px;}.navigation .nav-contact{font-size:11px;padding:12px 14px;}}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.site-cursor{display:none;}}
/* Slower cursor follow with a difference blend for inverted content. */
.site-cursor,.site-cursor.is-interactive{width:var(--cursor-size,12px);height:var(--cursor-size,12px);background:#fff;border:0;mix-blend-mode:difference;transition:width .6s cubic-bezier(.22,.7,.2,1),height .6s cubic-bezier(.22,.7,.2,1),opacity .25s;}
.site-cursor.is-down{width:calc(var(--cursor-size,12px) * .8);height:calc(var(--cursor-size,12px) * .8);}
.theme-cursor-overlay{position:fixed;inset:0;z-index:10000;pointer-events:none;opacity:0;transition:opacity .1s;}
.theme-cursor-overlay.is-visible{opacity:1;}
.theme-cursor-spot{position:fixed;display:block;border-radius:50%;background:#3f00ff;transform:translate(-50%,-50%);}
.theme-cursor-icons{position:fixed;display:grid;place-items:center;pointer-events:none;}
.theme-cursor-icons svg{position:absolute;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.15;stroke-linecap:round;stroke-linejoin:round;}
.theme-toggle:hover{color:var(--ink);border-color:var(--line);}
.theme-toggle.is-filled::before{transform:translate(-50%,-50%) scale(0);}
.theme-toggle.is-filled{color:var(--ink);border-color:var(--line);}
[data-theme="light"] .projects-contact-button{background:#141416;color:#fff;}
.services{border-top:1px solid var(--line);}
.services-list{border-top:1px solid var(--line);}
.service-row{display:grid;grid-template-columns:60px 1fr 70px;align-items:center;gap:24px;padding:34px 0;border-bottom:1px solid var(--line);}
.service-number{font-size:12px;color:var(--muted);}
.service-row h3{font-family:'Space Grotesk',sans-serif;font-size:clamp(28px,3.4vw,52px);font-weight:500;letter-spacing:-.045em;margin:0 0 12px;}
.service-row p{color:var(--muted);font-size:15px;line-height:1.7;margin:0;max-width:650px;}
.service-star{color:var(--blue);font-size:44px;text-align:right;transition:transform .6s cubic-bezier(.22,.7,.2,1);}
.service-row:hover .service-star{transform:rotate(90deg);}
@media(max-width:700px){.service-row{grid-template-columns:25px 1fr 35px;gap:12px;padding:28px 0;}.service-star{font-size:30px;}.service-row p{font-size:13px;}}
#about-projects-button{margin-top:28px;}
/* Menu scroll transition: the selected marker is the upper quarter of a blue dot. */
.navigation{left:50%;transform:translateX(-50%);isolation:isolate;transition:width .6s cubic-bezier(.22,.7,.2,1),top .55s cubic-bezier(.22,.7,.2,1),padding .55s cubic-bezier(.22,.7,.2,1);}
.navigation::before{content:"";position:absolute;inset:0;z-index:-1;border:1px solid #ffffff18;border-radius:999px;background:#141416;box-shadow:0 12px 35px #0003;opacity:0;transform:scale(.72);transition:opacity .45s ease,transform .6s cubic-bezier(.22,.7,.2,1);pointer-events:none;}
.navigation.is-floating{left:50%;width:50%;min-width:min(640px,calc(100% - 24px));max-width:980px;top:12px;padding:10px 18px;border:0;border-radius:999px;background:transparent;box-shadow:none;animation:none;}
.navigation.is-floating::before{opacity:1;transform:scale(1);}
.header-menu::after{bottom:-15px;width:20px;height:20px;border-radius:50%;}
@media(max-width:900px){.navigation.is-floating{width:calc(100% - 24px);min-width:0;}.navigation.is-floating .header-menu{gap:clamp(10px,2vw,18px);}}
@media(prefers-reduced-motion:reduce){.navigation,.navigation::before,.header-menu::after{transition:none;}}
/* Refined menu morph: all three header groups glide into the compact pill. */
.navigation{display:grid;grid-template-columns:minmax(80px,1fr) auto minmax(190px,1fr);gap:24px;transition:width .8s cubic-bezier(.16,1,.3,1),top .7s cubic-bezier(.16,1,.3,1),padding .7s cubic-bezier(.16,1,.3,1),grid-template-columns .7s cubic-bezier(.16,1,.3,1);}
.navigation>.wordmark{justify-self:start;}
.navigation>.header-menu{justify-self:center;}
.navigation>.header-actions{justify-self:end;}
.navigation::before{opacity:1;transform:none;clip-path:inset(0 48% round 999px);transition:clip-path .8s cubic-bezier(.16,1,.3,1),border-radius .8s cubic-bezier(.16,1,.3,1),box-shadow .8s cubic-bezier(.16,1,.3,1);}
.navigation.is-floating{grid-template-columns:auto minmax(0,1fr) auto;gap:18px;width:50%;min-width:min(640px,calc(100% - 24px));max-width:980px;}
.navigation.is-floating::before{clip-path:inset(0 round 999px);}
.navigation.is-floating .header-menu{justify-self:center;transition:padding .7s cubic-bezier(.16,1,.3,1),gap .7s cubic-bezier(.16,1,.3,1);}
.navigation .header-menu{overflow:hidden;}
.header-menu::after{bottom:-17px;width:20px;height:20px;border-radius:50%;}
@media(max-width:900px){.navigation{grid-template-columns:auto 1fr auto;gap:12px;}.navigation.is-floating{grid-template-columns:auto 1fr auto;width:calc(100% - 24px);min-width:0;gap:10px;}.navigation.is-floating .header-menu{gap:clamp(10px,2vw,18px);}}
@media(max-width:700px){.navigation{display:flex;}.navigation.is-floating{display:grid;grid-template-columns:auto 1fr auto;}.navigation.is-floating .header-menu{width:auto;}}
@media(prefers-reduced-motion:reduce){.navigation,.navigation::before,.navigation .header-menu,.header-menu::after{transition:none;}}
/* Keep the transition background hidden behind the initial menu; reveal it only in the compact state. */
.navigation::before{opacity:0;clip-path:inset(0 48% round 999px);}
.navigation.is-floating::before{opacity:1;clip-path:inset(0 round 999px);}
/* Pin the tiny marker to the actual lower edge of the fixed capsule. */
.navigation.is-floating{width:55%;}
.navigation.is-floating .header-menu::after{opacity:0;}
.navigation.is-floating::after{content:"";position:absolute;left:var(--nav-marker-x,50%);bottom:-16.5px;width:22px;height:22px;border-radius:50%;background:var(--blue);clip-path:inset(0 0 75% 0);transform:translateX(-50%);transition:left .55s cubic-bezier(.22,.7,.2,1);pointer-events:none;}
@media(max-width:900px){.navigation.is-floating{width:calc(100% - 24px);}}
.services-flowing-menu{height:clamp(520px,62vw,760px);margin-top:36px;}
.services-flowing-menu .flowing-menu-wrap{background:transparent!important;}
.services-flowing-menu .flowing-menu__item{border-color:var(--line);}
.services-flowing-menu .flowing-menu__item-link{font-family:'Space Grotesk',sans-serif;font-size:clamp(24px,3vw,44px);font-weight:500;letter-spacing:-.04em;}
.services-flowing-menu .flowing-marquee{background:#3f00ff;}
.services-flowing-menu .flowing-marquee span{font-family:'Space Grotesk',sans-serif;font-size:clamp(22px,2.6vw,38px);font-weight:500;letter-spacing:-.035em;padding:0 1.5vw;}
.services-flowing-menu .flowing-marquee__img{width:clamp(120px,16vw,220px);height:clamp(52px,6vw,78px);margin:0 2vw;border-radius:999px;background-position:center;background-size:cover;}
@media(max-width:700px){.services-flowing-menu{height:540px;margin-top:24px;}.services-flowing-menu .flowing-menu__item-link{font-size:22px;}.services-flowing-menu .flowing-marquee span{font-size:20px;}.services-flowing-menu .flowing-marquee__img{width:110px;height:46px;}}
.services-flowing-menu{width:100vw;margin-left:calc(50% - 50vw);}

/* Updated vector wordmarks: light on dark surfaces, black on light surfaces. */
.wordmark{display:inline-flex;align-items:center;flex-shrink:0;letter-spacing:0;line-height:0}
.wordmark .brand-logo{display:block;width:88px;height:46px;object-fit:contain}
.wordmark .brand-logo-dark{display:none}
[data-theme="light"] .wordmark .brand-logo-light{display:none}
[data-theme="light"] .wordmark .brand-logo-dark{display:block}
[data-theme="light"] .contact .wordmark .brand-logo-light{display:block}
[data-theme="light"] .contact .wordmark .brand-logo-dark{display:none}
.navigation.is-floating .wordmark .brand-logo{width:73.333px;height:38.333px}
/* Hero: rotating blue marks cycle through assets/elements. */
.hero-elements{display:inline-block;position:relative;width:.72em;height:.72em;margin-left:.15em;vertical-align:middle;isolation:isolate;cursor:pointer;}
.hero-element{position:absolute;inset:0;display:grid;place-items:center;transform:scale(0);opacity:1;pointer-events:none;}
.hero-element.is-active{transform:scale(1);opacity:1;}
.hero-element img{display:block;width:100%;height:100%;object-fit:contain;animation:hero-element-spin 30s linear infinite;}
.hero-element.is-entering{animation:hero-element-enter .2s .58s cubic-bezier(.2,.72,.25,1) both;z-index:2;}
.hero-element.is-exiting{animation:hero-element-exit .6s linear both;z-index:1;}
@keyframes hero-element-spin{to{transform:rotate(360deg)}}
@keyframes hero-element-enter{0%{transform:scale(0)}100%{transform:scale(1)}}
@keyframes hero-element-exit{0%{transform:scale(1);animation-timing-function:cubic-bezier(.2,.7,.2,1)}66.666%{transform:scale(1.2);animation-timing-function:cubic-bezier(.65,0,1,1)}100%{transform:scale(0)}}
@media(max-width:700px){.hero-elements{margin-left:.04em}}
@media(prefers-reduced-motion:reduce){.hero-element img{animation:none}}
/* The floating navigation stays dark even when the page is in light mode. */
[data-theme="light"] .navigation.is-floating .wordmark .brand-logo-light{display:block}
[data-theme="light"] .navigation.is-floating .wordmark .brand-logo-dark{display:none}
/* Preserve contrast for blue navigation labels inside the difference cursor. */
.cursor-contrast-text{position:fixed;z-index:10001;display:block;overflow:hidden;color:#000!important;text-align:left;white-space:nowrap;pointer-events:none;visibility:hidden;}
.cursor-contrast-text.is-visible{visibility:visible;}
