/* CLOUDAR / checkpoint 02. Additive homepage motion language; other page layouts are unchanged. */
.topoai-home{--ease-out: cubic-bezier(.16,1,.3,1);--motion-fast:240ms;--motion-enter:1100ms;background:#090f16}
.topoai-home .header{height:100px;border-color:#26343b}
.topoai-home .brand{letter-spacing:-.055em;font-size:28px;gap:10px}
.topoai-home .brand img{width:31px;height:31px}
.topoai-home .brand-dot{font-size:25px;margin:0 8px;color:#5c7368}
.brand-subtitle{font-size:8px;letter-spacing:.16em;font-weight:400;line-height:1.6;color:#a7b8be}
.topoai-home .header nav a{position:relative;transition:color var(--motion-fast)}
.topoai-home .header nav a:not(.nav-contact):after{content:'';position:absolute;height:1px;background:var(--lime);bottom:6px;left:0;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
.topoai-home .header nav a:hover:after,.topoai-home .header nav a:focus-visible:after{transform:scaleX(1)}
.topoai-home .nav-contact{background:linear-gradient(125deg,#16251d80,transparent);transition:border-color .25s,background .25s}
.topoai-home .nav-contact:hover{border-color:var(--lime);background:#1e2e24}
.topoai-home .hero{position:relative;isolation:isolate;grid-template-columns:1.06fr 1fr;gap:0;padding-top:58px;padding-bottom:38px;min-height:760px;overflow:hidden}
.hero-atmosphere{position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 78% 48%,#21413248,transparent 52%),linear-gradient(90deg,transparent 49.9%,#71887709 50%,transparent 50.1%)}
.hero-atmosphere:after{content:'';position:absolute;inset:0;opacity:.14;background-image:radial-gradient(#93b69e 0.65px,transparent .8px);background-size:22px 22px;mask-image:linear-gradient(90deg,transparent 38%,#000)}
.topoai-home .hero-copy{pointer-events:none}.topoai-home .hero-copy a{pointer-events:auto}
.topoai-home .hero .eyebrow{letter-spacing:.13em;font-size:10px;margin:0 0 32px;color:#b2c1c4}
.eyebrow-divider{color:#526c5f;margin:0 8px}
.topoai-home .hero h1{font-size:clamp(59px,6.1vw,100px);line-height:1.02;letter-spacing:-.06em;max-width:none;text-wrap:initial}
.title-line{display:block;white-space:nowrap}
.topoai-home .hero h1 .outline{color:#96a6ae}
.topoai-home .hero h1 em{color:#c1ff66;text-shadow:0 0 48px #c1ff6615}
.topoai-home .hero-deck{font-size:16px;color:#aebec4;line-height:1.7;margin:30px 0 27px}
.topoai-home .hero-actions{gap:24px}
.topoai-home .button{position:relative;overflow:hidden;box-shadow:0 0 0 #c1ff6600;transition:background .25s,box-shadow .3s,transform .3s var(--ease-out)}
.topoai-home .button>span,.topoai-home .text-link>span{transition:transform .3s var(--ease-out)}
.topoai-home .button:hover,.topoai-home .button:focus-visible{box-shadow:0 8px 34px #a9f74218;transform:translateY(-3px)}
.topoai-home .button:hover>span,.topoai-home .text-link:hover>span{transform:translate(3px,-3px)}
.topoai-home .hero-foot{max-width:none;flex-wrap:wrap;gap:12px;margin-top:42px;font-size:8px;letter-spacing:.07em;line-height:1.7;color:#91a5aa}
.topoai-home .hero-foot>span{display:flex;gap:9px;align-items:center}.coordinate-cross{font-size:22px;color:var(--lime);line-height:1}
.topoai-home .hero-foot a{display:flex;gap:10px;align-items:center;min-height:36px;color:#b3c1bd;margin-right:40px}
.topoai-home .hero-foot a>span{color:var(--lime);font-size:16px}
.topoai-home .hero-scene{margin:0 -15px 0 -35px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;position:relative;min-width:0}
.topoai-home .scene-top{padding:0 0 0 24px;font-size:9px;letter-spacing:.1em;flex-wrap:nowrap}
.topoai-home .motion-toggle{color:#b5c7bc;background:#0b1517a6;border:1px solid #3a5047;min-height:44px;min-width:118px;display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;padding:8px;transition:background .25s,border-color .25s}
.topoai-home .motion-toggle[hidden],.topoai-home .scene-controls[hidden]{display:none}
.topoai-home .motion-toggle:hover{border-color:var(--lime);background:#18291e}
.scene-viewport{position:relative;height:490px;margin-top:12px;isolation:isolate}
.scene-art{position:absolute;inset:-4% -12% 0 -12%;pointer-events:none}
#terrain-canvas{display:block;width:100%;height:100%;opacity:0}
.canvas-ready #terrain-canvas{opacity:1}.canvas-ready .scene-fallback{opacity:0}
.scene-fallback{position:absolute;width:100%;height:100%;object-fit:contain;transform:rotate(-5deg);opacity:.95;transition:opacity 1s}
.scene-rings{position:absolute;inset:1% 0 9%;border:1px solid #7eb38815;border-radius:50%;transform:rotate(-25deg) scaleY(.85);pointer-events:none}
.scene-rings:before,.scene-rings:after{content:'';position:absolute;inset:9%;border:1px dashed #7eb3881c;border-radius:50%}
.scene-rings:after{inset:23%;border-style:solid;border-color:#7eb3880c}
.scene-corner{position:absolute;width:18px;height:18px;border-color:#597463;opacity:.65;pointer-events:none}
.corner-tl{top:15px;left:20px;border-left:1px solid;border-top:1px solid}.corner-br{bottom:82px;right:8px;border-right:1px solid;border-bottom:1px solid}
.scene-origin,.scene-index{position:absolute;font:8px/1.7 monospace;letter-spacing:.09em;color:#84998d;pointer-events:none}
.scene-origin{top:35px;left:24px}.scene-index{right:12px;top:27px;text-align:right}
.scene-readout{display:flex;align-items:center;gap:13px;position:absolute;bottom:8px;left:24px;right:0;border-top:1px solid #46624470;padding:15px 0 8px;color:#bfd0c4}
.readout-symbol{color:var(--lime);font-size:26px}.readout-kicker{font-size:8px;letter-spacing:.16em;color:#a7c097}
.scene-readout p{font-size:13px;line-height:1.4;margin:5px 0 0;color:#c2d0c9;min-height:1.4em}
.readout-bars{display:flex;align-items:center;gap:3px;height:23px;margin-left:auto;margin-right:8px}
.readout-bars i{width:2px;height:9px;background:#8dba62}.readout-bars i:nth-child(2n){height:17px}.readout-bars i:nth-child(3){height:23px}
.scene-controls{display:flex;margin-left:24px;gap:4px;border:1px solid #354a3a;background:#0c1615;position:relative;z-index:3;padding:4px}
.scene-controls button{flex:1;min-width:0;padding:11px 8px;background:transparent;color:#a6b6ad;border:1px solid transparent;min-height:45px;font-size:11px;transition:background .3s,color .3s,border-color .3s}
.scene-controls button span{font:9px monospace;margin-right:7px;opacity:.65}
.scene-controls button[aria-pressed=true]{background:#bfef7820;border-color:#9ac96765;color:#d6ffa2}
.scene-controls button:hover{background:#c1ff6614;color:#dcf4bd}
.scene-controls button:focus-visible{outline-offset:1px;z-index:1}
.topoai-home .scene-bottom{border:0;margin-left:24px;padding-top:14px;gap:12px;font-size:9px;letter-spacing:.04em;flex-wrap:wrap}
.scene-annotations{opacity:0;transition:opacity .5s;pointer-events:none}.hero-scene[data-mode=candidates] .scene-annotations{opacity:1}
.scene-pin{position:absolute;font-size:9px;background:#0a171ced;padding:7px 10px;border:1px solid #658863;color:#c1ff66;box-shadow:0 5px 25px #0004;line-height:1.4}
.scene-pin:before{content:'';width:1px;height:28px;position:absolute;top:100%;left:50%;background:linear-gradient(#a8d56c,transparent)}
.scene-pin small{display:block;font-size:8px;color:#a4b8ad}.pin-pole{top:32%;left:39%;color:#b2ccff;border-color:#668db8}.pin-curb{top:58%;left:73%}
.topoai-home .signal-strip{background:linear-gradient(90deg,#13201866,#10171c66);position:relative}
.topoai-home .signal-strip:before{content:'';position:absolute;top:-1px;left:var(--pad);width:100px;height:1px;background:var(--lime)}
.topoai-home .intro{scroll-margin-top:25px}.topoai-home .workflow-rows article{transition:background .35s,border-color .35s}
.topoai-home .workflow-rows article:hover{background:#bddf7c05;border-top-color:#668048}
.topoai-home .proof-band{background:#dce8d6}.topoai-home .footer .brand{letter-spacing:-.05em}
/* Content is readable even if scripting fails. Animation is opt-in, not a permanent hidden state. */
.motion-on .hero-enter{animation:topo-enter var(--motion-enter) var(--ease-out) both}
.motion-on .title-line:nth-child(1){animation-delay:90ms}.motion-on .title-line:nth-child(2){animation-delay:160ms}.motion-on .title-line:nth-child(3){animation-delay:230ms}.motion-on .title-line:nth-child(4){animation-delay:300ms}
.motion-on .hero-deck{animation-delay:380ms}.motion-on .hero-actions{animation-delay:450ms}.motion-on .hero-foot{animation-delay:500ms}
.motion-on .hero-scene{animation:scene-enter 1400ms var(--ease-out) both}
.motion-on .topo-revealed{animation:topo-enter 900ms var(--ease-out) both}
@keyframes topo-enter{from{opacity:.15;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes scene-enter{from{opacity:.1;transform:translateY(16px) scale(.975)}to{opacity:1;transform:none}}
.topoai-home.motion-paused *,.topoai-home.motion-paused *:before,.topoai-home.motion-paused *:after,.topoai-home.document-hidden *{animation-play-state:paused!important;transition:none!important}
.topoai-home.motion-paused .hero-enter,.topoai-home.motion-paused .hero-scene,.topoai-home.motion-paused .topo-revealed{animation:none!important;opacity:1;transform:none}
@media(min-width:1600px){.topoai-home .hero{min-height:835px}.scene-viewport{height:560px}.topoai-home .hero-foot{margin-top:50px}}
@media(min-width:901px) and (max-width:1200px){.brand-subtitle{display:none}.topoai-home .brand-dot{display:none}.topoai-home .hero h1{font-size:6.25vw}.topoai-home .hero{min-height:710px}.topoai-home .scene-top>span{font-size:8px;max-width:145px}.topoai-home .hero-scene{margin-left:-8px;margin-right:-15px}.scene-viewport{height:430px}.scene-controls button{font-size:10px}.scene-controls button span{display:none}.topoai-home .hero .eyebrow{font-size:8px}.topoai-home .hero-actions{gap:14px}.topoai-home .hero-actions .button{font-size:12px}}
@media(max-width:900px){
 .topoai-home .header{height:78px}.topoai-home .brand{font-size:26px}.topoai-home .brand img{width:28px;height:28px}.brand-subtitle{display:none}.topoai-home .brand-dot{font-size:20px;margin:0 2px}
 .topoai-home .hero{display:flex;min-height:0;padding-top:38px;padding-bottom:30px;gap:0}.topoai-home .hero-copy{max-width:none}
 .topoai-home .hero h1{font-size:clamp(45px,9.8vw,80px);line-height:1.04;letter-spacing:-.055em;max-width:none}.topoai-home .hero .eyebrow{font-size:9px;letter-spacing:.08em;margin-bottom:23px}
 .topoai-home .hero-deck{font-size:15px;line-height:1.6;margin:22px 0}.topoai-home .hero-actions{flex-direction:row;align-items:center;gap:12px 22px}.topoai-home .hero-actions .button{padding:15px 18px;font-size:13px;min-height:52px}.topoai-home .hero-actions .text-link{font-size:12px}
 .topoai-home .hero-foot{margin:22px 0 0;font-size:8px;gap:6px}.topoai-home .hero-foot a{display:none}
 .topoai-home .hero-scene{margin:28px auto 0;max-width:680px;width:100%;align-self:stretch}
 .topoai-home .scene-top{padding:0;font-size:8px;gap:8px}.topoai-home .motion-toggle{min-width:108px;font-size:9px}
 .scene-viewport{height:390px;margin-top:2px}.scene-art{inset:-5% -10% 0}.scene-controls{margin-left:0}.scene-controls button{font-size:11px}.topoai-home .scene-bottom{margin-left:0;font-size:9px;padding-top:12px}
 .scene-readout{left:0}.scene-origin{left:7px;top:31px}.corner-tl{left:3px;top:12px}.scene-index{top:20px;right:4px}.scene-rings{inset:2% 0 15%}
 .hero-atmosphere{background:radial-gradient(ellipse at 55% 72%,#24493349,transparent 45%)}.hero-atmosphere:after{mask-image:linear-gradient(transparent 20%,#000)}
}
@media(max-width:480px){
 .topoai-home .hero{padding-top:31px}.topoai-home .hero h1{font-size:clamp(39px,10.6vw,51px)}.topoai-home .hero .eyebrow{font-size:8px;letter-spacing:.065em;margin-bottom:22px}.eyebrow-divider{margin:0 5px}
 .topoai-home .hero-deck{font-size:14px;max-width:35ch}.topoai-home .hero-deck br{display:none}.topoai-home .hero-actions{gap:9px 20px}.topoai-home .hero-actions .button{padding:14px 15px;gap:25px}.topoai-home .hero-actions .text-link{gap:14px}
 .topoai-home .hero-foot{font-size:7px;margin-top:18px}.coordinate-cross{font-size:18px}.topoai-home .hero-scene{margin-top:22px}
 .topoai-home .scene-top>span{max-width:190px;font-size:7px}.scene-viewport{height:320px}.scene-origin,.scene-index{font-size:7px}.scene-controls button{font-size:10px;padding:9px 3px;min-height:44px}.scene-controls button span{font-size:8px;margin-right:4px}
 .scene-readout{padding-top:12px;bottom:3px;gap:9px}.scene-readout p{font-size:11px}.readout-kicker{font-size:7px}.readout-symbol{font-size:22px}.readout-bars{margin-right:2px}.topoai-home .scene-bottom{font-size:9px;letter-spacing:0;gap:4px;justify-content:space-between}
 .scene-pin{font-size:8px;padding:5px 7px}.scene-pin small{font-size:7px}.pin-curb{left:69%}.scene-pin:before{height:18px}
 .topoai-home .signal-strip{gap:12px}.topoai-home .signal-strip strong{font-size:14px}
}
@media(max-width:350px){.topoai-home .brand-dot{display:none}.topoai-home .hero h1{font-size:10.4vw}.topoai-home .hero .eyebrow{font-size:7px}.topoai-home .hero-actions{gap:5px}.topoai-home .hero-deck{font-size:13px}.scene-viewport{height:290px}.topoai-home .scene-top>span{max-width:140px}.scene-controls button span{display:none}.scene-readout p{font-size:10px}}
@media(max-width:280px){.topoai-home .header{height:auto;min-height:95px}.topoai-home .hero h1{font-size:12vw}.title-line{white-space:normal}.topoai-home .hero .eyebrow{font-size:8px}.topoai-home .scene-top{flex-wrap:wrap}.topoai-home .hero-foot{font-size:8px}.scene-controls{flex-direction:column}.scene-viewport{height:240px}.readout-bars,.scene-index,.scene-origin{display:none}.scene-readout p{min-height:2.8em}.scene-readout{left:0;gap:6px}.topoai-home .scene-bottom{font-size:8px}.scene-pin{display:none}}
@media(prefers-reduced-motion:reduce){
 .topoai-home{scroll-behavior:auto}.topoai-home *,.topoai-home *:before,.topoai-home *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .topoai-home .motion-toggle{display:none!important}.topoai-home .hero-enter,.topoai-home .hero-scene,.topoai-home .topo-revealed{opacity:1;transform:none}
}
