/* Motion and depth extend the existing Dudsbury visual system. */
.hero{isolation:isolate}.scene{--pitch:0deg;--yaw:0deg;--pan-x:0px;--pan-y:0px;--spot-x:55%;--spot-y:40%;height:490px;touch-action:pan-y;isolation:isolate}
.scene:after{content:"";position:absolute;inset:-30px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at var(--spot-x) var(--spot-y),#70ffc023,transparent 57%)}
.scene:before{animation:ground-breathe 8s ease-in-out infinite;pointer-events:none;z-index:-2}
.scene-carrier{position:relative;width:100%;transform-style:preserve-3d;transform:translate3d(var(--pan-x),var(--pan-y),0) rotateX(var(--pitch)) rotateY(var(--yaw));will-change:transform}
.stack{width:100%;max-width:510px;margin:auto;transform-style:preserve-3d;filter:none;animation:dashboard-float 8s ease-in-out infinite;box-shadow:22px 35px 40px #0006;border-radius:18px}
.stack:before{inset:8px -9px -12px 9px;transform:translateZ(-22px);background:linear-gradient(135deg,#538d73,#1a342b 50%,#4b8b6e);border:1px solid #47755d;box-shadow:12px 20px 45px #0008}
.screen{transform-style:preserve-3d;background:linear-gradient(125deg,#223a32f5,#172321 55%);box-shadow:inset 0 1px #acffcc55,0 0 70px #5ee5b010}
.screen:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,transparent 10%,#c4ffe508 43%,#c4ffe529 49%,#c4ffe505 54%,transparent 80%);background-size:250% 100%;animation:screen-sheen 10s ease-in-out infinite}
.screen-top{transform:translateZ(14px)}.screen-header{transform:translateZ(28px)}.pipeline{transform-style:preserve-3d;transform:translateZ(34px)}
.tile{position:relative;transform:translateZ(0);transition:transform .7s cubic-bezier(.2,.8,.2,1),border-color .7s,background .7s,box-shadow .7s;box-shadow:0 6px 12px #0003;min-height:106px}
.tile:after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--mint);transform:scaleX(0);transform-origin:left;transition:transform .7s}
.tile.is-active{transform:translateZ(25px) translateY(-5px);border-color:#83efb4;background:#325344;box-shadow:0 12px 20px #0005,0 0 18px #5ee5b022}.tile.is-active:after{transform:scaleX(1)}.tile.is-active .ico{filter:drop-shadow(0 0 6px #5ee5b0)}
.activity{transform:translateZ(46px);box-shadow:0 12px 24px #0005;background:linear-gradient(120deg,#294633,#20332a)}
.activity.is-changing b{animation:activity-in .65s ease both}.pulse{animation:signal-pulse 2.4s ease-out infinite}
.floating{z-index:3;pointer-events:none;box-shadow:0 18px 36px #0007,inset 0 1px #fff;animation:notification-float 6s ease-in-out infinite;transform:translate3d(calc(var(--pan-x)*-1.2),calc(var(--pan-y)*-1.2),0)}
.floating.one{top:45px;right:-18px}.floating.two{bottom:48px;left:-28px;animation-delay:-3s}
.scene-orbit{position:absolute;width:465px;height:390px;border:1px solid #73dbaa20;border-radius:50%;transform:rotateX(65deg) rotateZ(-28deg);pointer-events:none;z-index:-1}
.scene-orbit:before{content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:#b7ffdc;box-shadow:0 0 18px 4px #5ee5b077;top:50%;left:50%;offset-path:ellipse(232px 195px at 0 0);animation:orbit-travel 14s linear infinite}
.orbit-two{width:580px;height:520px;opacity:.5;transform:rotateX(64deg) rotateZ(25deg)}.orbit-two:before{offset-path:ellipse(290px 260px at 0 0);animation-duration:21s;animation-direction:reverse}
.scene-controls{position:absolute;bottom:-8px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:18px;font-size:12px;color:#a1bbb0;z-index:4}.motion-toggle{border:1px solid #456858;background:#15251fbb;color:#c1d9cc;border-radius:100px;padding:7px 12px;font-size:12px}.motion-toggle:hover{border-color:var(--mint);color:var(--mint)}.motion-toggle span{margin-left:7px}
.flow{perspective:1100px}.step{--card-x:0deg;--card-y:0deg;transform:rotateX(var(--card-x)) rotateY(var(--card-y));transform-style:preserve-3d;transition:box-shadow .6s,border-color .6s,background .6s;box-shadow:0 8px 20px #0002}
.step strong,.step b{transform:translateZ(16px)}.step small{transform:translateZ(8px)}.step:before{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(120deg,transparent,#5ee5b013,transparent);opacity:0;transition:opacity .7s;pointer-events:none}
.step.is-flow-active{border-color:#67c99c;background:linear-gradient(145deg,#264838,#111e18);box-shadow:0 8px 26px #0005,0 0 30px #5ee5b00d}.step.is-flow-active:before{opacity:1}.step.is-flow-active:after{animation:connection-travel 1.8s ease infinite}
.feature,.contact-card{--card-x:0deg;--card-y:0deg;transform:perspective(900px) rotateX(var(--card-x)) rotateY(var(--card-y));transform-style:preserve-3d;transition:background .3s,box-shadow .3s;position:relative}
.feature:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--glow-x,50%) var(--glow-y,50%),#5ee5b011,transparent 70%);opacity:0;transition:opacity .3s}.feature:hover:before{opacity:1}.feature h3{transform:translateZ(14px)}.contact-card:hover{box-shadow:0 18px 25px #0b332224}.contact-card a{display:inline-block;transform:translateZ(16px)}
.reveal-ready [data-reveal]{opacity:0;translate:0 27px;transition:opacity .8s ease,translate .8s cubic-bezier(.2,.8,.2,1);transition-delay:var(--reveal-delay,0ms)}.reveal-ready [data-reveal].is-visible{opacity:1;translate:0 0}
.hero h1{animation:hero-enter 1s cubic-bezier(.2,.8,.2,1) both}.hero .eyebrow{display:inline-block;animation:hero-enter .8s ease both}.hero .lead,.hero .actions,.hero-note{animation:hero-enter 1s .15s ease both}.hero-note{animation-delay:.3s}
.demo-controls{flex-wrap:wrap;gap:8px}.demo-controls button{font-size:14px;padding:11px 14px;transition:transform .2s,background .2s}.demo-controls button:hover:not(:disabled){transform:translateY(-2px)}.demo-controls #play{background:#b3f1cd;color:#16402a;border:1px solid #83d5a6}.demo-controls #play[aria-pressed="true"]{background:#d7f4e2}.demo-controls #progress{margin-left:auto;font-size:12px}.demo-progress{height:3px;border-radius:3px;background:#d7e5dc;margin-bottom:14px;overflow:hidden}.demo-progress span{display:block;background:#399e6e;height:100%;width:var(--progress,25%);transition:width .8s cubic-bezier(.16,1,.3,1)}
.transcript{min-height:280px}.bubble-new{animation:bubble-enter .5s cubic-bezier(.2,.8,.2,1) both;transform-origin:bottom left}.bubble-new.ai{transform-origin:bottom right}.dashboard{transition:box-shadow .7s,border-color .7s;border:1px solid transparent}.dashboard.is-complete{border-color:#5ba97a;box-shadow:inset 0 1px #476956,0 0 24px #5ee5b032}.dashboard .dash-row{animation:row-enter .5s ease both}.dashboard .dash-row:nth-child(2){animation-delay:50ms}.dashboard .dash-row:nth-child(3){animation-delay:100ms}.dashboard .dash-row:nth-child(4){animation-delay:150ms}.dashboard .dash-row:nth-child(5){animation-delay:200ms}.dashboard .dash-row:nth-child(6){animation-delay:250ms}.dash-status{display:inline-block}.is-complete .dash-status{animation:status-in .7s .2s ease both}
.signal-bars{display:flex;align-items:center;justify-content:center;height:52px;gap:5px;margin-bottom:20px}.signal-bars i{display:block;width:4px;height:14px;background:var(--mint);border-radius:4px;animation:wave 1.8s ease-in-out infinite}.signal-bars i:nth-child(2n){height:27px;animation-delay:-.6s}.signal-bars i:nth-child(3n){height:38px;animation-delay:-1.1s}.signal-bars i:nth-child(4){height:48px;animation-delay:-.3s}
@keyframes dashboard-float{0%,100%{transform:translateY(0) rotateY(-16deg) rotateX(11deg) rotateZ(-3deg)}50%{transform:translateY(-14px) rotateY(-10deg) rotateX(7deg) rotateZ(-1deg)}}
@keyframes notification-float{0%,100%{translate:0 0;rotate:-2deg}50%{translate:0 -12px;rotate:1deg}}
@keyframes screen-sheen{0%,15%{background-position:100% 0}70%,100%{background-position:0 0}}
@keyframes signal-pulse{0%{box-shadow:0 0 0 0 #5ee5b066}85%,100%{box-shadow:0 0 0 12px #5ee5b000}}
@keyframes orbit-travel{to{offset-distance:100%}}
@keyframes ground-breathe{50%{opacity:.5}}
@keyframes activity-in{from{opacity:.25;translate:0 5px}to{opacity:1;translate:0 0}}
@keyframes connection-travel{0%{translate:-3px 0;opacity:.35}65%{translate:3px 0;opacity:1}100%{translate:5px 0;opacity:.35}}
@keyframes hero-enter{from{opacity:0;translate:0 25px}to{opacity:1;translate:0 0}}
@keyframes bubble-enter{from{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes row-enter{from{opacity:.2;translate:8px 0}to{opacity:1;translate:0 0}}
@keyframes status-in{from{opacity:.2;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes wave{0%,100%{transform:scaleY(.45);opacity:.4}50%{transform:scaleY(1);opacity:1}}
html.motion-paused *,html.motion-paused *:before,html.motion-paused *:after{animation-play-state:paused!important;transition:none!important;scroll-behavior:auto!important}
html.motion-paused [data-reveal]{opacity:1;translate:0 0}html.motion-paused .hero h1,html.motion-paused .hero .eyebrow,html.motion-paused .hero .lead,html.motion-paused .hero .actions,html.motion-paused .hero-note,html.motion-paused .bubble,html.motion-paused .dash-row,html.motion-paused .dash-status,html.motion-paused .activity b{animation:none!important;opacity:1}
@media(max-width:950px){.scene{max-width:620px;margin:35px auto 0;width:100%;height:430px}.scene-carrier{width:85%}.floating.one{right:15px}.floating.two{left:15px}.scene-controls{bottom:-15px}.hero{padding-bottom:90px}}
@media(max-width:650px){.scene{height:345px;margin-top:40px}.scene-carrier{width:90%}.stack{animation-name:dashboard-float-small}.screen{padding:15px}.screen-header{margin:18px 0}.screen-header h3{font-size:19px}.screen-header .tag{font-size:9px;padding:4px 6px}.screen-top{font-size:10px}.tile{min-height:90px}.activity{padding:11px}.activity b{font-size:12px}.activity span{font-size:10px}.floating{font-size:11px;padding:10px 12px}.floating.one{top:10px;right:2px}.floating.two{bottom:26px;left:0}.scene-controls{bottom:-30px}.pointer-hint{display:none}.transcript{min-height:320px}.scene-orbit{width:360px;height:300px}.orbit-two{width:450px;height:390px}.demo-controls #progress{width:100%;margin:7px 0 0}.hero{padding-bottom:90px}.signal-bars{margin-bottom:10px}}
@keyframes dashboard-float-small{0%,100%{transform:translateY(0) rotateY(-8deg) rotateX(7deg) rotateZ(-2deg)}50%{transform:translateY(-10px) rotateY(-5deg) rotateX(5deg) rotateZ(0deg)}}
@media(hover:none){.pointer-hint{display:none}}
@media(prefers-reduced-motion:reduce){.reveal-ready [data-reveal]{opacity:1;translate:0 0}.scene-carrier{will-change:auto}.hero h1,.hero .eyebrow,.hero .lead,.hero .actions,.hero-note{animation:none}.scene-orbit:before{animation:none}.stack{animation:none;transform:rotateY(-10deg) rotateX(7deg) rotateZ(-2deg)}}

/* Give the email enough room and keep its address on one line. */
.contact-grid{grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr))}
.contact-card .email-link{display:inline-flex;align-items:center;gap:.35em;white-space:nowrap;word-break:normal;font-size:clamp(1rem,1.8vw,1.3125rem)}
@media(max-width:900px){.contact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-card-email{grid-column:1/-1}}
@media(max-width:650px){.contact-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:380px){.contact-card{padding:20px}}

/* Restore page gutters where section/footer vertical padding removed them. */
.section.shell,.footer.shell{padding-inline:clamp(1.5rem,5vw,4rem)}

.contact-card .founder-role{display:block;margin-top:4px}
