@charset "UTF-8";
/* Front page first view (FV): dark, high-impact hero with motion.
   Kept in its own file so brand-design.css / deeptech-home.css stay untouched. */
body.home{--fv-bg:#030a18;--fv-ink:#f2f8ff;--fv-muted:#a9bdd6;--fv-cyan:#4fd2ff;--fv-blue:#1f7bff;--fv-line:#7cc8ff2e}

/* Shell: full-bleed deep navy stage */
body.home .hero-shell{position:relative;isolation:isolate;margin:0;border:0;border-radius:0;overflow:hidden;color:var(--fv-ink);
 background:radial-gradient(60% 70% at 78% 45%,#0b4fa855 0%,transparent 70%),radial-gradient(45% 60% at 8% 100%,#00b4ff22 0%,transparent 70%),linear-gradient(160deg,#020814 0%,#04132b 55%,#061d3f 100%)}
body.home .hero-shell:before{content:"";display:block;position:absolute;inset:0;z-index:-1;width:auto;height:auto;border:0;border-radius:0;pointer-events:none;
 background-image:linear-gradient(var(--fv-line) 1px,transparent 1px),linear-gradient(90deg,var(--fv-line) 1px,transparent 1px);background-size:64px 64px;
 -webkit-mask-image:radial-gradient(75% 85% at 60% 40%,#000 15%,transparent 75%);mask-image:radial-gradient(75% 85% at 60% 40%,#000 15%,transparent 75%);opacity:.55;animation:fvGrid 22s linear infinite}
body.home .hero-shell:after{content:"";display:block;position:absolute;left:0;right:0;bottom:0;top:auto;width:auto;height:140px;border-radius:0;background:linear-gradient(transparent,#020814aa);pointer-events:none;z-index:-1}
.fv-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;opacity:.9}

/* Layout */
body.home .hero{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);min-height:min(860px,calc(100svh - 100px));padding-block:clamp(44px,5vw,72px) clamp(72px,6vw,92px)}

/* Copy */
body.home .hero-site-name,body.home .hero-note{display:none}
body.home .hero h1{color:#fff;font-size:clamp(38px,4.2vw,64px);line-height:1.32;letter-spacing:-.035em;margin-bottom:24px;text-shadow:0 4px 40px #1f7bff33;animation:fvReveal 1.1s .15s cubic-bezier(.2,.7,.2,1) both}
body.home .hero h1 em{display:inline-block;margin-top:.08em;font-size:1.12em;color:transparent;text-shadow:none;background:linear-gradient(100deg,#4fd2ff 0%,#8fe3ff 22%,#ffffff 40%,#3b9bff 60%,#4fd2ff 100%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:fvShine 6s 1.2s ease-in-out infinite;filter:drop-shadow(0 0 22px #2aa8ff55)}
body.home .hero-lead{color:var(--fv-muted);font-size:clamp(14px,1.15vw,16px);line-height:2;max-width:540px;animation:fvUp .9s .45s both}

/* CTA: consultation becomes the primary conversion path */
body.home .hero .actions{flex-direction:row;flex-wrap:wrap;align-items:stretch;max-width:none;gap:12px;margin-top:30px;animation:fvUp .9s .6s both}
body.home .hero .button{position:relative;overflow:hidden;flex:1 1 auto;min-height:64px;gap:16px;padding-inline:26px;font-size:15px;border-radius:100px;transition:transform .25s,box-shadow .25s,background .25s,border-color .25s}
body.home .hero .button[href*="/contact"]{order:-1;color:#fff;border:0;background:linear-gradient(100deg,#0a6cff 0%,#1d8fff 45%,#22c3ff 100%);box-shadow:0 10px 34px #1784ff66,inset 0 1px 0 #ffffff40}
body.home .hero .button[href*="/contact"]:hover{transform:translateY(-3px);box-shadow:0 16px 44px #1784ff88,inset 0 1px 0 #ffffff55}
body.home .hero .button[href*="/contact"]:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,#ffffff70,transparent);transform:skewX(-20deg);animation:fvSweep 3.6s 1.6s ease-in-out infinite;pointer-events:none}
body.home .hero .button:not([href*="/contact"]){color:#e6f3ff;background:#ffffff0d;border:1px solid #9fd8ff4d;box-shadow:none;backdrop-filter:blur(6px)}
body.home .hero .button:not([href*="/contact"]):hover{background:#ffffff1c;border-color:#9fd8ffa0;transform:translateY(-3px)}
body.home .hero .button span{transition:transform .25s}
body.home .hero .button:hover span{transform:translate(3px,-3px)}
body.home .hero .button:focus-visible{outline:3px solid #8fe3ff;outline-offset:3px}

/* FV CTA cards (template-parts/home-hero-cta.php) */
body.home .hero .fv-cta{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;max-width:520px}
.fv-cta-card{position:relative;display:grid;grid-template-columns:118px minmax(0,1fr) auto;align-items:center;gap:16px;min-height:96px;padding:12px 16px 12px 12px;border-radius:16px;text-decoration:none;transition:transform .25s,box-shadow .25s,background .25s}
.fv-cta-card:hover{transform:translateY(-3px)}
.fv-cta-card:focus-visible{outline:3px solid #8fe3ff;outline-offset:3px}
.fv-cta-card.is-doc{background:#fff;border:2px solid #4fa8ff;box-shadow:0 14px 36px #1784ff55}
.fv-cta-card.is-doc:hover{box-shadow:0 18px 44px #1784ff80}
.fv-cta-card.is-consult{background:#ffffffd9;border:2px solid #9fd8ff;box-shadow:0 10px 26px #00102a55}
.fv-cta-card.is-consult:hover{background:#fff}
.fv-cta-img{position:relative;display:block;height:72px}
.fv-cta-img img{position:absolute;width:96px;height:auto;border-radius:4px;box-shadow:0 4px 12px #0a2a5240;border:1px solid #cfdcea}
.fv-cta-img img:first-child{left:16px;top:2px;transform:rotate(6deg);opacity:.85}
.fv-cta-img img:last-child{left:0;top:12px;transform:rotate(-4deg)}
.fv-cta-img svg{display:block;width:100%;height:100%}
.fv-cta-text{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.fv-cta-text small{color:#0b2a55;font-size:13px;font-weight:700}
.fv-cta-text b{color:#0a4a9e;font-size:clamp(22px,2.2vw,28px);font-weight:800;letter-spacing:.06em;line-height:1.25}
.fv-cta-badge{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:66px;height:56px;border-radius:12px;color:#fff;font-size:19px;font-weight:800;line-height:1.1;box-shadow:inset 0 1px 0 #ffffff55,0 6px 14px #00102a40}
.fv-cta-badge:before{content:"";position:absolute;left:0;right:0;top:0;height:50%;background:linear-gradient(#ffffff30,transparent);pointer-events:none}
.is-doc .fv-cta-badge{background:linear-gradient(160deg,#e05a1c,#b8400c)}
.is-consult .fv-cta-badge{background:linear-gradient(160deg,#1a73f0,#0a4fc0)}
.fv-cta-card.is-doc:after{content:"";position:absolute;inset:0;border-radius:14px;background:linear-gradient(100deg,transparent 30%,#ffffff99 50%,transparent 70%);background-size:250% 100%;animation:fvCtaShine 4s 1.6s ease-in-out infinite;pointer-events:none}
@keyframes fvCtaShine{0%{background-position:150% 0}50%,100%{background-position:-50% 0}}

/* Visual */
body.home .hero-art{position:relative;padding:0;animation:fvZoom 1.4s .2s cubic-bezier(.2,.7,.2,1) both}
body.home .hero-art:before{content:"";position:absolute;inset:-14%;z-index:-1;border-radius:50%;background:radial-gradient(closest-side,#1f8bff55,transparent 70%);animation:fvBreath 5s ease-in-out infinite;pointer-events:none}
body.home .tech-visual{position:relative;border-radius:30px;background:#020a18;border:1px solid #6cc4ff40;box-shadow:0 30px 80px #000c,0 0 0 1px #0b2a52,0 0 60px #1f7bff33;transform:translate3d(var(--fv-px,0),var(--fv-py,0),0);transition:transform .6s cubic-bezier(.2,.7,.2,1)}
body.home .tech-visual img{height:min(600px,62vh);min-height:440px;object-position:70% center;transform:scale(1.04);animation:fvDrift 18s ease-in-out infinite alternate}
body.home .tech-visual:after{content:"";position:absolute;left:0;right:0;top:-30%;height:30%;background:linear-gradient(180deg,transparent,#4fd2ff1f 60%,#8fe3ff55 98%,transparent);mix-blend-mode:screen;animation:fvScan 5.5s 1.5s ease-in-out infinite;pointer-events:none}
.fv-ring{position:absolute;left:58%;top:42%;width:68%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;border:1px dashed #6cc4ff40;pointer-events:none;animation:fvSpin 40s linear infinite}
.fv-ring.r2{width:92%;border:1px solid #6cc4ff1f;border-top-color:#4fd2ffaa;animation-duration:16s;animation-direction:reverse}

/* Floating chips: company information flowing into the master brain */
.fv-chip{position:absolute;z-index:2;display:flex;align-items:center;gap:9px;padding:10px 16px 10px 12px;border:1px solid #8fd6ff40;border-radius:14px;background:#06162fcc;backdrop-filter:blur(10px);box-shadow:0 12px 30px #0008;color:#e9f5ff;font-size:13px;font-weight:700;white-space:nowrap;pointer-events:none;opacity:0;animation:fvChipIn .7s var(--d,0s) both,fvFloat 6s calc(var(--d,0s) + .7s) ease-in-out infinite}
.fv-chip i{flex:none;width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-style:normal;font-size:11px;background:#1f7bff33;color:#8fe3ff}
.fv-chip[data-pos="a"]{left:-34px;top:9%}
.fv-chip[data-pos="b"]{left:-50px;top:27%}
.fv-chip[data-pos="c"]{left:-26px;top:45%}

/* Chat card: question → answer with sources and the human check */
.fv-chat{position:absolute;z-index:3;right:-40px;bottom:26px;width:min(360px,80%);padding:16px 16px 14px;border:1px solid #6cc4ff4d;border-radius:20px;background:#04122acc;backdrop-filter:blur(14px);box-shadow:0 24px 60px #000a;color:#e9f5ff;pointer-events:none;animation:fvChipIn .8s 1.4s both;transition:opacity .4s,transform .4s}
.fv-chat.out{opacity:0;transform:translateY(8px)}
.fv-chat-head{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:11px}
.fv-chat-head b{letter-spacing:.1em;color:#fff;white-space:nowrap}
.fv-chat-head em{margin-left:auto;padding:3px 10px;border:1px solid #4fd2ff55;border-radius:100px;color:#8fe3ff;font-style:normal;font-weight:700;white-space:nowrap}
.fv-chat-dot{flex:none;width:8px;height:8px;border-radius:50%;background:#3dff9e;animation:fvPulseG 1.8s infinite}
.fv-q{margin:0 0 10px auto;width:fit-content;max-width:88%;padding:9px 14px;border-radius:14px 14px 4px 14px;background:#e9f3ff;color:#06203f;font-size:13px;font-weight:700;line-height:1.6;opacity:0;transform:translateY(8px);transition:.35s}
.fv-chat.q .fv-q{opacity:1;transform:none}
.fv-a{position:relative;min-height:44px;padding:11px 14px;border:1px solid #4fd2ff40;border-radius:14px 14px 14px 4px;background:#0a2a55aa;opacity:0;transition:opacity .3s}
.fv-chat.typing .fv-a,.fv-chat.a .fv-a{opacity:1}
.fv-a p{margin:0;font-size:13px;line-height:1.7;color:#f2f8ff}
.fv-typing{display:none;gap:5px;padding:6px 0}
.fv-chat.typing .fv-typing{display:flex}
.fv-typing i{width:6px;height:6px;border-radius:50%;background:#8fe3ff;animation:fvDot 1s infinite}
.fv-typing i:nth-child(2){animation-delay:.15s}.fv-typing i:nth-child(3){animation-delay:.3s}
.fv-a dl{display:grid;gap:5px;margin:0;max-height:0;overflow:hidden;opacity:0;transition:max-height .4s,opacity .4s,margin .4s}
.fv-chat.meta .fv-a dl{max-height:80px;opacity:1;margin-top:10px}
.fv-a dl div{display:flex;align-items:baseline;gap:8px;font-size:11px}
.fv-a dt{flex:none;padding:1px 7px;border-radius:5px;font-weight:700;background:#4fd2ff;color:#03172f}
.fv-a dl div+div dt{background:#ffd27a;color:#3a2600}
.fv-a dd{margin:0;color:#bcd3ee}
.fv-steps{display:flex;gap:5px;justify-content:center;margin-top:12px}
.fv-steps span{width:14px;height:3px;border-radius:3px;background:#ffffff26;transition:.3s}
.fv-steps span.on{width:26px;background:#4fd2ff}
@keyframes fvDot{0%,100%{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}

/* Scroll cue */
.fv-scroll{position:absolute;left:50%;bottom:22px;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:8px;color:#7f98b8;font-size:10px;letter-spacing:.24em;text-decoration:none;z-index:2}
.fv-scroll:after{content:"";width:1px;height:38px;background:linear-gradient(#4fd2ff,transparent);animation:fvCue 2s ease-in-out infinite;transform-origin:top}

/* Floating CTA shown after the hero leaves the viewport */
.fv-sticky{position:fixed;right:24px;bottom:24px;z-index:90;display:flex;align-items:center;gap:16px;padding:10px 10px 10px 22px;border:1px solid #6cc4ff4d;border-radius:100px;background:#041530ee;backdrop-filter:blur(12px);box-shadow:0 18px 50px #00102a55;color:#e9f5ff;transform:translateY(140%);opacity:0;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .3s;pointer-events:none}
.fv-sticky.show{transform:none;opacity:1;pointer-events:auto}
.fv-sticky p{margin:0;font-size:13px;font-weight:700;line-height:1.4}
.fv-sticky p small{display:block;color:#93b3d6;font-size:11px;font-weight:400}
.fv-sticky a{display:inline-flex;align-items:center;gap:12px;min-height:48px;padding:0 22px;border-radius:100px;background:linear-gradient(100deg,#0a6cff,#22c3ff);color:#fff;font-size:14px;font-weight:700;text-decoration:none;white-space:nowrap;box-shadow:0 8px 24px #1784ff55;transition:transform .2s}
.fv-sticky a:hover{transform:translateY(-2px)}

@keyframes fvUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes fvReveal{from{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(30px)}to{opacity:1;clip-path:inset(-20% -10% -20% 0);transform:none}}
@keyframes fvZoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@keyframes fvShine{0%,100%{background-position:100% 0}50%{background-position:0 0}}
@keyframes fvSweep{0%{left:-60%}55%,100%{left:130%}}
@keyframes fvPulseG{0%{box-shadow:0 0 0 0 #3dff9e99}80%,100%{box-shadow:0 0 0 9px #3dff9e00}}
@keyframes fvGrid{to{background-position:64px 64px}}
@keyframes fvBreath{0%,100%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}
@keyframes fvDrift{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.1) translate(-1.5%,-1%)}}
@keyframes fvScan{0%{top:-30%}60%,100%{top:110%}}
@keyframes fvSpin{to{rotate:360deg}}
@keyframes fvChipIn{from{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:none}}
@keyframes fvFloat{0%,100%{translate:0 0}50%{translate:0 -8px}}
@keyframes fvCue{0%{transform:scaleY(0);opacity:1}70%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}

@media(max-width:1180px){.fv-chip[data-pos]{left:-14px}.fv-chat{right:-12px}}
@media(max-width:950px){body.home .hero .actions{flex-direction:column;max-width:420px}body.home .tech-visual img{min-height:400px}}
@media(max-width:760px){
 body.home .hero-shell{margin:0;border-radius:0}
 body.home .hero{grid-template-columns:minmax(0,1fr);grid-template-areas:"heading" "lead" "visual" "cta";min-height:0;padding-block:44px 84px;gap:24px}
 /* Mobile reading order: title, explanation, illustration, then CTA. */
 body.home .hero-copy{display:contents}
 body.home .hero h1{grid-area:heading;margin-bottom:0}
 body.home .hero-lead{grid-area:lead;margin-bottom:0}
 body.home .hero-art{grid-area:visual;isolation:isolate;z-index:0}
 body.home .hero .actions{grid-area:cta;position:relative;z-index:1;margin-top:8px}
 body.home .hero h1{font-size:clamp(30px,8.4vw,46px)}
 body.home .hero .actions{max-width:none}
 body.home .hero .button{min-height:60px}
 body.home .hero .fv-cta{max-width:none}
 .fv-cta-card{grid-template-columns:84px minmax(0,1fr) auto;gap:10px;min-height:84px}
 .fv-cta-img{height:58px}.fv-cta-img img{width:72px}
 .fv-cta-text small{font-size:11px}.fv-cta-text b{font-size:21px}
 .fv-cta-badge{width:56px;height:48px;font-size:17px}
 body.home .tech-visual{box-shadow:0 12px 28px #0006,0 0 0 1px #0b2a52,0 0 28px #1f7bff22}
 body.home .tech-visual img{height:460px;min-height:0;object-position:68% center}
 .fv-chip{font-size:11px;padding:7px 11px 7px 8px;gap:7px;border-radius:11px}.fv-chip i{width:20px;height:20px;font-size:9px}
 .fv-chip[data-pos]{left:10px}.fv-chip[data-pos="a"]{top:4%}.fv-chip[data-pos="b"]{top:15%}.fv-chip[data-pos="c"]{display:none}
 .fv-scroll{display:none}
 .fv-chat{left:10px;right:10px;bottom:10px;width:auto;padding:12px;box-shadow:0 8px 20px #0006}
 .fv-chat-head{margin-bottom:8px}.fv-q,.fv-a p{font-size:12px}.fv-a{padding:9px 12px}
 .fv-sticky{left:12px;right:12px;bottom:12px;justify-content:space-between;padding-left:18px}
 .fv-sticky p small{display:none}
}
@media(max-width:420px){body.home .tech-visual img{height:420px}.fv-sticky p{font-size:12px}.fv-sticky a{padding:0 16px;font-size:13px}}

@media(prefers-reduced-motion:reduce){
 body.home .hero-shell *,body.home .hero-shell:before,body.home .hero-shell *:before,body.home .hero-shell *:after{animation:none!important;transition:none!important}
 .fv-chip,.fv-chat{opacity:1}
 .fv-sticky{transition:none}
}
