/* Component adaptations: see content/motion-sources.json. */
.text-generate .motion-word{display:inline-block;opacity:.2;filter:blur(7px);transform:translate3d(0,18px,0);transition:opacity .65s var(--ease),filter .65s var(--ease),transform .65s var(--ease);transition-delay:var(--word-delay)}.text-generate.fx-visible .motion-word{opacity:1;filter:blur(0);transform:none}.text-generate{overflow-wrap:normal}.motion-word{max-width:100%;overflow-wrap:anywhere}
/* Spotlight Card + Aceternity 3D Card: pointer light and independent depth. */
.spotlight-card{position:relative;isolation:isolate}.spotlight-card:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:4;opacity:0;background:radial-gradient(400px circle at var(--spot-x,50%) var(--spot-y,50%),#ffffff20,transparent 65%);transition:opacity .4s;border-radius:inherit}.spotlight-card.pointer-active:after{opacity:1}.tilt-surface{transform:perspective(1100px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .45s var(--ease),box-shadow .45s;transform-style:preserve-3d;transform-origin:center}.section-page .project-card{overflow:visible;border:1px solid color-mix(in srgb,var(--brand) 10%,transparent);transition:box-shadow .4s,border-color .4s}.section-page .project-card.pointer-active{box-shadow:0 24px 65px color-mix(in srgb,var(--brand) 14%,transparent);border-color:color-mix(in srgb,var(--brand) 40%,transparent)}.section-page .project-card .project-content{overflow:hidden}.section-page .project-card .project-visual{min-height:390px}.section-page .project-card .brand-display{transition:translate .6s var(--ease),box-shadow .6s}.section-page .project-card.pointer-active .brand-display{translate:0 -12px;box-shadow:0 40px 70px #0004}.team article{perspective:1200px}.team article .portrait{transition:transform .5s var(--ease),box-shadow .5s}.team article.pointer-active .portrait{box-shadow:0 25px 40px #061b5025}.team article .portrait small{transform:translateZ(30px)}.team-info{transition:border-color .4s}.team article.pointer-active .team-info{border-color:#7285ad}.contact-links a.spotlight-card:after{height:auto;transform:none;width:auto;background:radial-gradient(350px circle at var(--spot-x,50%) var(--spot-y,50%),#061b500a,transparent 70%)}
/* Animated catalog tabs stay keyboard accessible. */
.catalog-controls{display:flex;gap:9px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:20px}.catalog-controls button{display:flex;align-items:center;gap:12px;padding:13px 18px;border:1px solid transparent;border-radius:30px;color:var(--muted);background:var(--surface);font-size:12px;transition:background .3s,color .3s,transform .3s}.catalog-controls button:hover{transform:translateY(-2px);background:#e6ebf3}.catalog-controls button.selected{background:var(--navy);color:white}.catalog-controls small{font-size:9px;opacity:.6}.catalog-result{font-size:10px;color:var(--muted);padding-block:18px 28px}.project-card[hidden]{display:none!important}.section-page .product-catalog.single-result{grid-template-columns:1fr}.section-page .single-result .project-card{display:grid;grid-template-columns:1fr 1fr}.section-page .single-result .project-visual{min-height:520px}.section-page #catalog>.section-heading{position:relative;isolation:isolate;min-height:240px}.section-page #catalog>.section-heading>div:first-child{z-index:1}.section-page #catalog>.section-heading>p{z-index:1;background:#ffffffdc;padding:15px 0}.catalog-paths{position:absolute;right:0;top:-30px;width:48%;height:210px;z-index:0;color:var(--navy);mask-image:linear-gradient(90deg,transparent,#000 25%)}
/* Actual native port of Kokonut UI Background Paths. */
.background-paths{position:absolute;inset:0;width:100%;height:100%;color:inherit;pointer-events:none}.paths-art{height:195px;max-width:650px;margin-top:15px;position:relative;color:var(--navy);mask-image:linear-gradient(90deg,transparent,#000 15%,#000 85%,transparent)}.section-page .about-signature{height:210px;color:#fff;max-width:680px;mask-image:linear-gradient(90deg,#000,transparent)}.section-page .about-signature img{position:absolute;left:0;top:30px;opacity:.75;width:150px;height:112px}.section-page .about-signature:after{display:none}
/* A linked product map: fixed hit targets, animated routes. */
.ecosystem-map-section{padding-bottom:100px}.ecosystem-map{height:540px;border:1px solid var(--line);background:var(--surface);position:relative;overflow:hidden;isolation:isolate}.ecosystem-map:before{content:'';position:absolute;inset:0;background-image:radial-gradient(#061b5024 .7px,transparent .7px);background-size:22px 22px;mask-image:radial-gradient(ellipse,#000,transparent 75%)}.ecosystem-map>svg{position:absolute;inset:0;width:100%;height:100%;fill:none;overflow:visible}.map-lines{stroke:#061b501a;stroke-width:.16}.map-beams{stroke:#061b5080;stroke-width:.22;stroke-dasharray:3 27;animation:map-flow 7s linear infinite}.map-beams path:nth-child(2){stroke-dashoffset:7}.map-beams path:nth-child(3){stroke-dashoffset:14}.map-beams path:nth-child(4){stroke-dashoffset:21}.map-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--navy);width:150px;height:150px;border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 14px #061b5005,0 0 0 30px #061b5004;z-index:2}.map-core img{width:85px;height:auto;filter:brightness(0) invert(1)}.map-node{position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);display:flex;align-items:center;gap:17px;min-width:230px;padding:22px;background:white;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 30px #061b5005;z-index:3;transition:border-color .3s,box-shadow .3s}.map-node img{width:42px;height:42px;object-fit:contain}.map-node span{font-size:15px;font-weight:500}.map-node b{margin-left:auto;font-weight:400;font-size:20px;transition:transform .3s}.map-node:hover{border-color:var(--brand);box-shadow:0 14px 40px #061b5015}.map-node:hover b{transform:translate(3px,-3px)}.map-orbit{position:absolute;width:310px;height:310px;border:1px solid #061b5010;border-radius:50%;left:50%;top:50%;translate:-50% -50%;animation:map-orbit 24s linear infinite}.map-orbit:after{content:'';position:absolute;width:7px;height:7px;background:var(--navy);border-radius:50%;top:-3px;left:50%;box-shadow:0 0 0 6px #061b5007}@keyframes map-flow{to{stroke-dashoffset:-60}}@keyframes map-orbit{to{rotate:360deg}}
/* Container Scroll 20deg -> 0deg, with a readable stationary narrative. */
.product-detail-grid{perspective:1200px}.container-scroll-surface{transform:rotateX(calc((1 - var(--container-progress,0))*20deg)) scale(calc(.94 + var(--container-progress,0)*.06));transform-origin:50% 15%;box-shadow:0 15px 35px color-mix(in srgb,var(--brand-deep) 12%,transparent),0 55px 65px color-mix(in srgb,var(--brand-deep) 8%,transparent);transition:box-shadow .4s}.product-cover .brand-display{border-radius:5px}.tracing-story{grid-template-columns:.85fr 1.15fr;column-gap:clamp(40px,7vw,150px);row-gap:0;position:relative;align-items:start}.tracing-story article:first-child{position:sticky;top:calc(var(--header) + 35px);grid-column:1;grid-row:1/4;display:block;padding:45px;min-height:390px}.tracing-story article:first-child h2{font-size:clamp(32px,3vw,54px);margin-bottom:25px}.tracing-story article:first-child p:last-child{font-size:18px;line-height:1.8}.tracing-story article:not(:first-child){grid-column:2;min-height:360px;padding:40px 0 50px 40px;border-top:0;border-left:2px solid color-mix(in srgb,var(--brand) 18%,transparent);position:relative;opacity:1;transition:border-color .5s,opacity .5s}.tracing-story article:not(:first-child):before{content:'';position:absolute;left:-6px;top:44px;width:10px;height:10px;border-radius:50%;background:var(--brand-soft);border:1px solid var(--brand);transition:background .3s,box-shadow .3s}.tracing-story article.story-active{opacity:1;border-left-color:var(--brand)}.tracing-story article.story-active:before{background:var(--brand);box-shadow:0 0 0 7px color-mix(in srgb,var(--brand) 10%,transparent)}.tracing-story article:not(:first-child) .eyebrow{font-size:11px;margin-bottom:26px}.tracing-story article:not(:first-child) h2{font-size:clamp(28px,2.4vw,45px)}.tracing-story article:not(:first-child) p:last-child{font-size:17px;max-width:800px}
/* Motion footer: the wordmark moves into view; contact information never hides. */
.footer-signature{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-top:65px;padding-top:25px;border-top:1px solid #ffffff18;overflow:hidden;color:#fff;line-height:1;pointer-events:none}.footer-signature>span{font-size:clamp(85px,17vw,340px);font-weight:600;letter-spacing:-.075em;transform:translateY(calc((1 - var(--footer-progress,1))*55px));opacity:calc(.25 + var(--footer-progress,1)*.75)}.footer-signature>b{font-size:clamp(80px,13vw,260px);font-weight:300;opacity:.25;transform:translateY(calc((1 - var(--footer-progress,1))*-40px))}.footer-bottom{margin-top:40px}.footer-main{position:relative;z-index:1}
@media(max-width:1100px){.map-node{min-width:190px;padding:18px;gap:10px}.map-node span{font-size:12px}.map-node img{width:32px;height:32px}.map-core{width:130px;height:130px}.tracing-story article:first-child{padding:32px}.tracing-story article:first-child p:last-child{font-size:16px}}
@media(max-width:800px){.section-page .project-card .project-visual{min-height:300px}.section-page #catalog>.section-heading{min-height:0}.catalog-paths{position:relative;width:100%;height:130px;top:0;grid-row:2;mask-image:linear-gradient(90deg,#000,transparent)}.section-page #catalog>.section-heading>p{padding:0}.section-page .single-result .project-card{display:flex}.section-page .single-result .project-visual{min-height:300px}.catalog-controls{gap:8px}.catalog-controls button{padding:11px 14px;font-size:11px}.paths-art{height:140px;margin-top:10px}.ecosystem-map{height:560px}.map-node{min-width:0;width:38%;padding:15px;gap:9px;flex-wrap:wrap}.map-node img{height:32px;width:32px}.map-node span{font-size:12px}.map-node b{display:none}.map-node:nth-of-type(odd){--node-x:23%!important}.map-node:nth-of-type(even){--node-x:77%!important}.map-core{width:105px;height:105px}.map-core img{width:60px}.map-orbit{width:240px;height:240px}.map-node:nth-of-type(1),.map-node:nth-of-type(2){top:20%}.map-node:nth-of-type(3),.map-node:nth-of-type(4){top:80%}.ecosystem-map>svg{opacity:.5}.tracing-story{display:block}.tracing-story article:first-child{position:relative;top:0;min-height:0;padding:30px;margin-bottom:40px}.tracing-story article:not(:first-child){min-height:0;padding:25px 0 40px 25px}.tracing-story article:not(:first-child):before{top:30px}.tracing-story article:not(:first-child) p:last-child{font-size:15px}.tracing-story article:not(:first-child) h2{font-size:30px}.container-scroll-surface{transform:rotateX(calc((1 - var(--container-progress,0))*8deg)) scale(calc(.96 + var(--container-progress,0)*.04))}.footer-signature{margin-top:40px;gap:20px}.footer-signature>span{font-size:18vw}.footer-signature>b{font-size:14vw}.section-page .about-signature{height:180px}.section-page .about-signature img{width:110px;height:82px}}
.fx-off .motion-word{opacity:1;filter:none;transform:none;transition:none}.fx-off .tilt-surface,.fx-off .container-scroll-surface,.fx-off .footer-signature>*{transform:none!important;opacity:1}.fx-off .spotlight-card:after{display:none}.fx-off .map-beams,.fx-off .map-orbit{animation-play-state:paused}.fx-off .tracing-story article{opacity:1}.fx-off .project-card .brand-display{translate:none!important}
@media(prefers-reduced-motion:reduce){.motion-word{opacity:1!important;filter:none!important;transform:none!important}.tilt-surface,.container-scroll-surface,.footer-signature>*{transform:none!important;opacity:1!important}.map-beams,.map-orbit{animation:none!important}.tracing-story article{opacity:1!important}.spotlight-card:after{display:none}}

/* Pause decorative routes while the ecosystem map is off screen. */
.ecosystem-map:not(.fx-visible) .map-beams,.ecosystem-map:not(.fx-visible) .map-orbit{animation-play-state:paused}

/* Keep the narrative readable before its active marker reaches the scroll line. */
.product-detail .lead,.tracing-story article:not(:first-child) p:last-child{color:color-mix(in srgb,var(--brand-deep) 82%,white)}
