/* Local motion: all content also remains readable without JavaScript. */
.local-icon { display:inline-block; color:var(--lime); font:400 16px/1 sans-serif; }
.hero h1 { font-size:clamp(3.1rem,7.1vw,7.3rem); line-height:.96; }
html.motion-off { scroll-behavior:auto; }
.technical-notice[hidden] { display:none !important; }
.technical-notice { display:grid; grid-template-columns:38px 1fr; gap:15px; align-items:start; max-width:420px; padding:23px 38px 23px 23px; border:1px solid #8e76ff66; border-radius:22px; background:linear-gradient(140deg,#1c2033f5,#0e1323fa); box-shadow:0 20px 70px #0007,inset 0 1px #ffffff14; color:var(--paper); animation:notice-enter .5s ease both; }
.technical-notice h2 { margin:2px 0 10px; font-size:15px; line-height:1.4; letter-spacing:-.03em; }
.technical-notice p { color:#bfc5d2; font-size:11px; line-height:1.8; }
.technical-notice p a { display:inline; color:var(--lime); text-underline-offset:3px; }
.notice-orbit { display:grid; place-items:center; width:36px; height:36px; border:1px solid #ccff4844; border-radius:12px; color:var(--lime); background:#ccff480a; font-size:27px; }
.technical-notice .notice-dismiss { margin-top:16px; padding:9px 15px; font-size:11px; }
.technical-notice .notice-close { position:absolute; top:10px; right:10px; display:grid; place-items:center; width:30px; height:30px; padding:0; color:#d4d8e2; background:transparent; font:400 23px/1 Arial,sans-serif; }
.footer-bottom button { padding:0; border:0; color:inherit; background:transparent; font:inherit; cursor:pointer; }
.footer-bottom button:hover,.footer-bottom button[aria-pressed="true"] { color:var(--lime); }
.service-card { position:relative; overflow:hidden; transform-style:preserve-3d; }
.service-card::before { content:''; position:absolute; inset:0; pointer-events:none; opacity:0; background:radial-gradient(circle at var(--pointer-x,50%) var(--pointer-y,50%),#ccff4813,transparent 55%); transition:opacity .3s; }
.service-card:hover::before { opacity:1; }
.service-symbol { transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s; }.service-card:hover .service-symbol { transform:rotate(-8deg) translateY(-3px); border-color:#ccff4877; }
.service-card-link span { transition:transform .25s; }.service-card:hover .service-card-link span { transform:translate(3px,-3px); }
.service-visual { position:relative; animation:visual-float 7s ease-in-out infinite; }
.service-visual::after { content:''; position:absolute; top:-30%; left:-80%; width:30%; height:160%; transform:rotate(25deg); background:linear-gradient(90deg,transparent,#ffffff0c,transparent); pointer-events:none; animation:visual-sheen 9s ease-in-out infinite; }
.service-hero .eyebrow,.service-hero h1,.service-lead,.legal-hero h1 { animation:soft-enter .8s both; }.service-lead { animation-delay:.12s; }
.in-view { animation:soft-enter .7s cubic-bezier(.2,.7,.2,1) both; }.service-card.in-view:nth-child(3n+2) { animation-delay:.07s; }.service-card.in-view:nth-child(3n+3) { animation-delay:.14s; }
.service-faq details[open] > p { animation:soft-enter .3s both; }
.main-navbar { background:linear-gradient(#080b14f2,#080b14aa,transparent); }.main-navbar:has(.nav-services[open]) { z-index:50; }
.nav-links { gap:clamp(12px,1.5vw,23px); }.nav-links > a,.nav-services > summary { white-space:nowrap; }
.launch-section { height:210vh; }.launch-copy-one { opacity:1; }.launch-copy { transition:opacity .45s,translate .45s; }.launch-copy-two,.launch-copy-three { opacity:0; }.launch-object { will-change:transform; }.launch-progress i b { width:calc(var(--launch-progress,0) * 100%); }
.hero-video { transition:opacity .5s; }.motion-off .hero-video { opacity:0; }
.motion-off *,.motion-off *::before,.motion-off *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
.motion-off .launch-section { height:auto; }.motion-off .launch-sticky { height:auto; min-height:550px; padding:70px 8vw; }.motion-off .launch-copy { position:relative; inset:auto; opacity:1 !important; transform:none; translate:none; text-align:left; margin:0 0 45px; max-width:700px; }.motion-off .launch-copy h2 { font-size:clamp(2rem,4vw,3.7rem); }.motion-off .launch-object,.motion-off .launch-ui,.motion-off .launch-progress { display:none; }
@keyframes soft-enter { from { opacity:0; transform:translateY(22px); } to { opacity:1; transform:translateY(0); } }
@keyframes notice-enter { from { opacity:0; transform:translateY(15px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes visual-float { 0%,100% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(-10px) rotate(-1deg); } }
@keyframes visual-sheen { 0%,70%,100% { left:-80%; } 90% { left:150%; } }
@media(hover:hover) and (pointer:fine) { .service-card.is-tilted { transform:perspective(900px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg)) translateY(-4px); } }
@media(max-width:1199px) and (min-width:992px) { .nav-contact { display:none; }.logo-wrap img { width:130px; }.nav-links a,.nav-services > summary { font-size:12px; } }
@media(max-width:991px) { .main-navbar { background:#080b14e8; backdrop-filter:blur(16px); }.launch-section { height:180vh; }.service-visual { animation:none; } }
@media(max-width:575px) { .technical-notice { left:12px; right:12px; bottom:12px; max-width:none; grid-template-columns:30px 1fr; gap:12px; padding:18px 33px 18px 17px; }.technical-notice h2 { font-size:14px; }.notice-orbit { width:30px; height:30px; font-size:23px; }.technical-notice p { font-size:10px; }.technical-notice .notice-dismiss { min-height:38px; }.footer-bottom { gap:20px; }.footer-bottom a,.footer-bottom button { min-height:28px; display:inline-flex; align-items:center; }.launch-copy h2 { font-size:clamp(2.4rem,12vw,3.5rem); }.launch-copy { top:17%; }.service-hero h1 { overflow-wrap:break-word; }.service-visual::after { animation:none; }.service-page .eyebrow { flex-wrap:wrap; }.nav-links a,.nav-services summary { min-height:32px; }.hero h1 { font-size:clamp(3rem,14vw,4.7rem); } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none !important; transition:none !important; }.launch-section { height:auto; }.launch-sticky { height:auto; min-height:400px; padding:60px 8vw; }.launch-copy { position:relative; inset:auto; opacity:1 !important; transform:none; text-align:left; margin-bottom:35px; }.launch-copy h2 { font-size:clamp(2rem,5vw,3.5rem); }.launch-object,.launch-ui,.launch-progress,.hero-video { display:none; } }
