:root{
  --spring-snappy:linear(0,.009,.035 2.1%,.141 4.4%,.723 12.9%,.938 16.7%,1.017 19.4%,1.067 22.5%,1.089 26%,1.079 30.3%,1.049 36%,1.024 42.6%,1.011 50.3%,1.004 59.2%,1.001 69.3%,1);
  --spring-smooth:linear(0,.004,.016 2.3%,.063 4.7%,.141 7.2%,.25 9.9%,.601 16.5%,.815 21%,.929 25.2%,.987 29%,1.025 33.5%,1.042 38%,1.04 43.5%,1.027 50%,1.013 57.5%,1.005 67%,1.001 79%,1);
  --spring-bouncy:linear(0,.014,.055 1.8%,.218 3.7%,.867 8.5%,1.085 10.7%,1.212 12.9%,1.264 15%,1.262 17%,1.217 19.5%,1.098 24%,1.035 28.5%,.993 33%,.981 38%,.988 45%,.998 55%,1.001 68%,1);
  --motion-out:cubic-bezier(.16,1,.3,1);
  --motion-snap:cubic-bezier(.22,1,.36,1);
  --motion-in-out:cubic-bezier(.65,0,.35,1);
}

/* Branded environmental motion */
.motion-wash{position:fixed;z-index:0;inset:-25%;pointer-events:none;background:conic-gradient(from 110deg at 72% 18%,transparent 0 25%,rgba(45,212,191,.055) 34%,transparent 43% 72%,rgba(37,99,235,.04) 82%,transparent 92%);animation:wash-turn 28s linear infinite;transform-origin:62% 28%}
.grid-glow{position:fixed;z-index:0;inset:84px 0 auto 0;height:min(760px,75vh);pointer-events:none;opacity:.25;background-image:linear-gradient(rgba(147,178,203,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(147,178,203,.045) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse at 69% 24%,#000 0%,transparent 68%);animation:grid-breathe 9s var(--motion-in-out) infinite alternate}
.ambient-one{animation:ambient-one 16s var(--motion-in-out) infinite alternate;will-change:transform}
.ambient-two{animation:ambient-two 19s var(--motion-in-out) infinite alternate;will-change:transform}
@keyframes wash-turn{to{transform:rotate(360deg)}}
@keyframes grid-breathe{from{opacity:.16;transform:scale(1)}to{opacity:.31;transform:scale(1.025)}}
@keyframes ambient-one{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(-70px,52px,0) scale(1.14)}}
@keyframes ambient-two{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(80px,-45px,0) scale(1.12)}}

/* Evidence-lens brand system */
.brand{position:relative;isolation:isolate}
.brand-mark{position:relative;width:42px;height:42px;border-radius:13px;background:none;box-shadow:0 10px 30px rgba(45,212,191,.12);overflow:visible;transform-origin:50% 58%;transition:transform .48s var(--spring-snappy),filter .3s var(--motion-snap)}
.brand-mark img{display:block;width:100%;height:100%;filter:drop-shadow(0 7px 14px rgba(1,12,18,.28))}
.brand-mark:after{content:"";position:absolute;inset:-4px;border:1px solid rgba(45,212,191,0);border-radius:16px;transform:scale(.8);transition:transform .5s var(--spring-snappy),border-color .3s var(--motion-snap),opacity .3s var(--motion-snap);opacity:0}
.brand:hover .brand-mark{transform:translateY(-2px) rotate(-2deg) scale(1.055);filter:brightness(1.08)}
.brand:hover .brand-mark:after{transform:scale(1);border-color:rgba(45,212,191,.35);opacity:1}
.brand-wordmark{transition:transform .4s var(--spring-snappy)}
.brand:hover .brand-wordmark{transform:translateX(2px)}
.topbar nav a,.text-button{position:relative;transition:color .24s var(--motion-snap),transform .36s var(--spring-snappy)}
.topbar nav a:after,.text-button:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--teal);transform:scaleX(0);transform-origin:right;transition:transform .34s var(--motion-snap)}
.topbar nav a:hover,.text-button:hover{transform:translateY(-1px)}
.topbar nav a:hover:after,.text-button:hover:after{transform:scaleX(1);transform-origin:left}

/* Hero choreography */
.hero-grid{position:relative;isolation:isolate}
.hero-grid:before{content:"";position:absolute;z-index:-1;width:360px;height:360px;right:4%;top:4%;border-radius:50%;border:1px solid rgba(45,212,191,.055);box-shadow:0 0 0 45px rgba(45,212,191,.018),0 0 0 92px rgba(45,212,191,.012);animation:signal-orbit 10s var(--motion-in-out) infinite alternate;pointer-events:none}
@keyframes signal-orbit{from{transform:translate3d(0,0,0) scale(.96);opacity:.58}to{transform:translate3d(10px,-12px,0) scale(1.035);opacity:1}}
.signal-chip{display:inline-flex;align-items:center;gap:9px;margin-bottom:24px;padding:7px 10px 7px 8px;border:1px solid rgba(45,212,191,.17);border-radius:999px;background:rgba(9,25,36,.66);color:#91a8b6;font-size:9px;font-weight:750;letter-spacing:.11em;text-transform:uppercase;box-shadow:inset 0 1px rgba(255,255,255,.025)}
.signal-chip i{position:relative;width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 14px rgba(45,212,191,.8)}
.signal-chip i:after{content:"";position:absolute;inset:-5px;border:1px solid rgba(45,212,191,.4);border-radius:50%;animation:signal-pulse 2.2s var(--motion-out) infinite}
@keyframes signal-pulse{0%{transform:scale(.5);opacity:0}30%{opacity:.8}100%{transform:scale(1.7);opacity:0}}
.hero-title .title-line{display:block;overflow:hidden;padding:.04em 0 .09em;margin-bottom:-.09em}
.hero-title .title-line>span{display:block;color:var(--text);will-change:transform,filter,opacity}
.hero-title em{font-style:normal;color:var(--teal)}

.motion-enabled .topbar{opacity:0;transform:translateY(-22px)}
.motion-enabled body.is-ready .topbar{animation:nav-arrive .8s var(--spring-snappy) forwards}
.motion-enabled .brand-mark{opacity:0;transform:scale(.72) rotate(-8deg)}
.motion-enabled body.is-ready .brand-mark{animation:logo-arrive .72s .08s var(--spring-bouncy) forwards}
.motion-enabled .brand-wordmark,.motion-enabled .topbar nav>*{opacity:0;transform:translateY(-8px)}
.motion-enabled body.is-ready .brand-wordmark{animation:soft-arrive .58s .16s var(--spring-snappy) forwards}
.motion-enabled body.is-ready .topbar nav>*:nth-child(1){animation:soft-arrive .55s .22s var(--spring-snappy) forwards}
.motion-enabled body.is-ready .topbar nav>*:nth-child(2){animation:soft-arrive .55s .29s var(--spring-snappy) forwards}
.motion-enabled body.is-ready .topbar nav>*:nth-child(3){animation:soft-arrive .55s .36s var(--spring-snappy) forwards}
.motion-enabled .signal-chip,.motion-enabled .hero-copy>.eyebrow,.motion-enabled .hero-copy>.lead,.motion-enabled .trust-row{opacity:0;transform:translateY(18px);filter:blur(8px)}
.motion-enabled body.is-ready .signal-chip{animation:hero-arrive .68s .18s var(--spring-snappy) forwards}
.motion-enabled body.is-ready .hero-copy>.eyebrow{animation:hero-arrive .68s .26s var(--spring-snappy) forwards}
.motion-enabled .hero-title .title-line>span{opacity:0;transform:translateY(112%);filter:blur(10px)}
.motion-enabled body.is-ready .hero-title .title-line:nth-child(1)>span{animation:title-rise .82s .3s var(--spring-snappy) forwards}
.motion-enabled body.is-ready .hero-title .title-line:nth-child(2)>span{animation:title-rise .82s .39s var(--spring-snappy) forwards}
.motion-enabled body.is-ready .hero-copy>.lead{animation:hero-arrive .76s .5s var(--spring-snappy) forwards}
.motion-enabled body.is-ready .trust-row{animation:hero-arrive .74s .6s var(--spring-snappy) forwards}
.motion-enabled .research-card{opacity:0;transform:translate3d(28px,20px,0) scale(.96);filter:blur(10px)}
.motion-enabled body.is-ready .research-card{animation:card-arrive .92s .34s var(--spring-smooth) forwards}
.motion-enabled body.motion-settled .topbar,
.motion-enabled body.motion-settled .brand-mark,
.motion-enabled body.motion-settled .brand-wordmark,
.motion-enabled body.motion-settled .topbar nav>*,
.motion-enabled body.motion-settled .research-card{animation:none;opacity:1;filter:none}
.motion-enabled body.motion-settled .topbar,
.motion-enabled body.motion-settled .brand-mark,
.motion-enabled body.motion-settled .brand-wordmark,
.motion-enabled body.motion-settled .topbar nav>*,
.motion-enabled body.motion-settled .research-card{transform:none}
.motion-enabled body.motion-settled .brand:hover .brand-mark{transform:translateY(-2px) rotate(-2deg) scale(1.055)}
.motion-enabled body.motion-settled .brand:hover .brand-wordmark{transform:translateX(2px)}
.motion-enabled body.motion-settled .topbar nav a:hover,
.motion-enabled body.motion-settled .topbar .text-button:hover{transform:translateY(-1px)}
.motion-enabled body.motion-settled .research-card:hover{transform:translateY(-4px) rotateX(.35deg) rotateY(-.45deg)}
@keyframes nav-arrive{to{opacity:1;transform:translateY(0)}}
@keyframes logo-arrive{to{opacity:1;transform:scale(1) rotate(0)}}
@keyframes soft-arrive{to{opacity:1;transform:translateY(0)}}
@keyframes hero-arrive{to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes title-rise{to{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes card-arrive{to{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}}

/* Tactile controls */
.panel{transition:transform .42s var(--motion-snap),border-color .3s var(--motion-snap),box-shadow .42s var(--motion-snap),background .45s var(--motion-in-out)}
.research-card{transform-style:preserve-3d}
.research-card:hover{transform:translateY(-4px) rotateX(.35deg) rotateY(-.45deg);border-color:rgba(45,212,191,.22);box-shadow:0 34px 95px rgba(0,0,0,.39),0 0 0 1px rgba(45,212,191,.04)}
.form-heading .step{position:relative;overflow:hidden;transition:transform .48s var(--spring-bouncy),background-color .3s var(--motion-snap),color .3s var(--motion-snap)}
.research-card:hover .form-heading .step{transform:rotate(-4deg) scale(1.06);background:rgba(45,212,191,.09);color:#70f4e2}
input[type=email],input[type=tel],input[type=password],input[name=username]{transition:border-color .25s var(--motion-snap),box-shadow .3s var(--motion-snap),background-color .3s var(--motion-in-out),transform .38s var(--spring-snappy)}
input:hover{background-color:#0b1826}
input:focus{transform:translateY(-1px)}
.primary{position:relative;overflow:hidden;isolation:isolate;transition:transform .42s var(--spring-snappy),box-shadow .36s var(--motion-snap),filter .3s var(--motion-snap)}
.primary:before{content:"";position:absolute;z-index:-1;inset:-1px;background:linear-gradient(105deg,transparent 18%,rgba(255,255,255,.35) 42%,transparent 64%);transform:translateX(-120%) skewX(-12deg);transition:transform .72s var(--motion-out)}
.primary:hover{transform:translateY(-3px) scale(1.012);box-shadow:0 18px 42px rgba(45,212,191,.25);filter:brightness(1.08)}
.primary:hover:before{transform:translateX(120%) skewX(-12deg)}
.primary:active{transform:translateY(1px) scale(.975);transition-duration:.18s}
.primary .arrow{transition:transform .48s var(--spring-snappy)}
.primary:hover .arrow{transform:translateX(5px)}
.check-row input{transition:transform .42s var(--spring-bouncy),filter .25s var(--motion-snap)}
.check-row input:checked{transform:scale(1.12);filter:drop-shadow(0 0 6px rgba(45,212,191,.45))}
.trust-row span{transition:transform .4s var(--spring-snappy),border-color .25s var(--motion-snap),background-color .3s var(--motion-in-out),color .25s var(--motion-snap)}
.trust-row span:hover{transform:translateY(-3px);border-color:rgba(45,212,191,.27);background:rgba(45,212,191,.055);color:#d5e7eb}

/* Scroll and state reveals */
.motion-enabled .motion-reveal{opacity:0;transform:translateY(26px) scale(.985);filter:blur(7px)}
.motion-enabled .motion-reveal.in-view{animation:reveal-in .78s var(--spring-snappy) forwards}
.motion-enabled .motion-reveal.stagger-1{animation-delay:.04s}
.motion-enabled .motion-reveal.stagger-2{animation-delay:.1s}
.motion-enabled .motion-reveal.stagger-3{animation-delay:.16s}
.motion-enabled .motion-reveal.stagger-4{animation-delay:.22s}
.motion-enabled .motion-reveal.stagger-5{animation-delay:.28s}
@keyframes reveal-in{to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}
.history-row{transition:transform .38s var(--spring-snappy),background-color .28s var(--motion-in-out),border-color .28s var(--motion-snap)}
.history-row:hover{transform:translateX(5px);border-color:rgba(45,212,191,.14)}
.history-row .row-arrow{transition:transform .45s var(--spring-snappy),color .24s var(--motion-snap)}
.history-row:hover .row-arrow{transform:translate(3px,-3px);color:#78f8e7}
.status{transition:transform .38s var(--spring-snappy),filter .28s var(--motion-snap)}
.history-row:hover .status{transform:scale(1.035);filter:brightness(1.1)}
.finding{transition:transform .4s var(--spring-snappy),border-color .28s var(--motion-snap)}
.finding:hover{transform:translateX(4px);border-color:rgba(45,212,191,.2)}
.sources-panel>a{transition:transform .4s var(--spring-snappy),background-color .28s var(--motion-in-out),padding-left .4s var(--spring-snappy)}
.sources-panel>a:hover{transform:translateX(4px);background:rgba(45,212,191,.035);padding-left:7px}
.back-link,.secondary,.danger-text{transition:transform .4s var(--spring-snappy),color .24s var(--motion-snap),background-color .3s var(--motion-in-out)}
.back-link:hover{display:inline-block;transform:translateX(-4px);color:var(--teal)}
.secondary:hover{transform:translateY(-2px);background:#30455f}
.danger-text:hover{transform:translateY(-1px)}
footer{transition:opacity .6s var(--motion-out),transform .7s var(--spring-snappy)}
.motion-enabled footer{opacity:0;transform:translateY(14px)}
.motion-enabled body.is-ready footer{opacity:1;transform:translateY(0);transition-delay:.62s}

:focus-visible{outline:2px solid rgba(45,212,191,.78);outline-offset:4px}

@media(max-width:860px){
  .hero-grid:before{right:-95px;top:15%;opacity:.55}
  .research-card:hover{transform:translateY(-3px)}
}

@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important}
  .motion-wash,.grid-glow{display:none}
  .ambient{animation:none!important}
  .motion-enabled .motion-reveal,.motion-enabled .topbar,.motion-enabled .brand-mark,.motion-enabled .brand-wordmark,.motion-enabled .topbar nav>*,.motion-enabled .signal-chip,.motion-enabled .hero-copy>.eyebrow,.motion-enabled .hero-copy>.lead,.motion-enabled .trust-row,.motion-enabled .research-card,.motion-enabled .hero-title .title-line>span,.motion-enabled footer{opacity:1!important;transform:none!important;filter:none!important}
}
