@charset "UTF-8";
:root{--navy:#11253e;--deep:#08182d;--ink:#172840;--red:#be1640;--red-d:#9f1133;--rose:#f8e9ed;--blue:#1d456e;--muted:#68778c;--line:#dde5ef;--white:#fff;--pale:#f5f7fa;--pale-b:#eaf0f6;--radius:16px;--wide:1200px;--shadow:0 28px 70px rgba(22,42,71,.10)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:95px}
body{margin:0;color:var(--ink);background:#fff;font-family:Inter,"Segoe UI",Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65}
body.is-locked{overflow:hidden}
body,button,input,textarea,select{font-family:Inter,"Segoe UI",Arial,Helvetica,sans-serif}
::selection{background:#f4c9d4;color:#621127}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font-size:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
img{display:block;max-width:100%}
svg{display:block}
.icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
:focus-visible{outline:3px solid rgba(190,22,64,.65);outline-offset:4px}
[hidden]{display:none!important}
.skip-link{position:fixed;z-index:300;top:-80px;left:12px;background:var(--white);color:var(--ink);padding:10px 16px}
.skip-link:focus{top:12px}
.container{width:min(var(--wide),calc(100% - 96px));margin-inline:auto}
.section{padding:116px 0;position:relative}
.overline,.eyebrow{font-size:11px;line-height:1.4;letter-spacing:.19em;font-weight:800;text-transform:uppercase;color:var(--red);display:block}
.overline--light,.eyebrow--light{color:#fca7be}
h1,h2,h3,p{margin-top:0}
h2{font-size:clamp(38px,4.2vw,64px);line-height:1.12;letter-spacing:-.052em;font-weight:740;margin:18px 0 26px}
h2 em{color:var(--red);font-style:normal}
h3{font-size:26px;line-height:1.23;letter-spacing:-.035em}
.lead{font-size:19px;line-height:1.75;color:#52637a}
.small-muted{font-size:13px;color:var(--muted)}
.section-heading{max-width:840px;margin-bottom:51px}
.section-heading p{max-width:620px;color:var(--muted);font-size:17px;margin-bottom:0}
.section-heading--split{max-width:none;display:grid;grid-template-columns:1.2fr .75fr;align-items:end;gap:70px}
.section-heading--split p{margin:0 0 8px}
.section-heading--split h2{max-width:700px;margin-bottom:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:14px;font-size:13px;font-weight:750;letter-spacing:.012em;line-height:1.3;border:1px solid transparent;border-radius:8px;padding:18px 23px;min-height:54px;transition:transform .23s ease,background .23s ease,box-shadow .23s ease;color:var(--ink);white-space:normal;text-align:center}
.btn:hover{transform:translateY(-2px)}
.btn .icon{width:17px;height:17px}
.btn--red{background:var(--red);color:white;box-shadow:0 14px 24px rgba(190,22,64,.18)}
.btn--red:hover{background:var(--red-d);box-shadow:0 16px 34px rgba(190,22,64,.23)}
.btn--outline{border-color:var(--line);background:#fff}
.btn--ghost{background:transparent;color:var(--navy);border-color:#cfdae6}
.btn--ghost:hover{background:#fff}
.btn--light{color:var(--navy);background:#fff}
.btn--sm{padding:13px 17px;min-height:43px;font-size:12px}
.btn--block{width:100%}
.text-link{display:inline-flex;align-items:center;gap:9px;color:var(--red);font-size:14px;font-weight:750;transition:gap .2s}
.text-link:hover{gap:15px}
.text-link .icon{width:17px;height:17px}
/* Transparent cut-out of the supplied logo (fenix-logo-transparente.png); colours untouched. */
.brand-logo{position:relative;display:block;width:112px;height:70px;flex:none}
.brand-logo img{width:100%;height:100%;object-fit:contain}
.header__brand .brand-logo{width:88px;height:55px}
.brand-logo--gate{width:128px;height:80px;margin:0 auto 24px}
/* On dark backgrounds the purple needs a light plate to stay legible. */
.brand-logo--footer{width:150px;height:96px;padding:12px 18px;border-radius:12px;background:#fff}
.reveal{opacity:0;transform:translateY(27px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.in-view{opacity:1;transform:translateY(0)}

/* Cinematic intro. CSS owns the choreography (delays below); JS drives the counter, text decoding, particles, parallax and exit. */
.intro{--mx:0;--my:0;--gut:max(24px,6vw);--ease:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.77,0,.18,1);position:fixed;inset:0;z-index:200;overflow:hidden;isolation:isolate;color:#fff;background:radial-gradient(120% 90% at 50% 42%,#11305a 0%,#08182d 52%,#030a15 100%)}
.intro::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(2,8,18,.75) 100%)}
.intro::after{content:"";position:absolute;inset:0;z-index:6;pointer-events:none;opacity:.09;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.intro__canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%;opacity:0;animation:introFade 1.8s .1s ease forwards}
.intro__glow{position:absolute;inset:-20%;z-index:0;pointer-events:none;background:radial-gradient(26% 30% at 50% 48%,rgba(190,22,64,.30),transparent 70%),radial-gradient(38% 42% at 28% 72%,rgba(29,69,110,.6),transparent 70%),radial-gradient(30% 34% at 76% 24%,rgba(64,120,190,.28),transparent 70%);filter:blur(24px);translate:calc(var(--mx) * -36px) calc(var(--my) * -36px);transition:translate 1.2s var(--ease);animation:introGlow 7s ease-in-out infinite alternate}
.intro__lines span{position:absolute;z-index:1;background:rgba(255,255,255,.09)}
.intro__lines span:nth-child(1){left:0;right:0;top:96px;height:1px;transform:scaleX(0);transform-origin:left;animation:introLineX 1.5s .15s var(--ease-io) forwards}
.intro__lines span:nth-child(2){left:0;right:0;bottom:132px;height:1px;transform:scaleX(0);transform-origin:right;animation:introLineX 1.5s .3s var(--ease-io) forwards}
.intro__lines span:nth-child(3){top:0;bottom:0;left:var(--gut);width:1px;transform:scaleY(0);transform-origin:top;animation:introLineY 1.5s .2s var(--ease-io) forwards}
.intro__lines span:nth-child(4){top:0;bottom:0;right:var(--gut);width:1px;transform:scaleY(0);transform-origin:bottom;animation:introLineY 1.5s .35s var(--ease-io) forwards}
.intro__ghost{position:absolute;z-index:1;top:64%;left:0;display:flex;white-space:nowrap;pointer-events:none;font-size:clamp(110px,21vw,330px);font-weight:900;letter-spacing:-.05em;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.07);opacity:0;animation:introFade 2s 1s ease forwards,introMarquee 48s linear infinite}
.intro__ghost span{padding-right:.3em}

.intro__top{position:absolute;z-index:4;top:0;left:0;right:0;height:96px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 calc(var(--gut) + 24px)}
.intro__presents{display:flex;align-items:center;gap:18px}
.intro__logo{width:80px;height:50px;padding:6px 10px;background:#fff;border-radius:9px;clip-path:inset(0 100% 0 0 round 9px);animation:introClip .9s .5s var(--ease-io) forwards}
.intro__presents-text{display:flex;align-items:center;gap:14px;min-width:9ch;font-size:10px;font-weight:700;letter-spacing:.34em;color:rgba(255,255,255,.62)}
.intro__presents-text::before{content:"";width:28px;height:1px;background:rgba(255,255,255,.35)}
.intro__skip{display:flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.2);border-radius:100px;background:rgba(255,255,255,.05);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:rgba(255,255,255,.82);padding:10px 18px;font-size:11px;font-weight:600;letter-spacing:.06em;opacity:0;animation:introUp .8s .9s var(--ease) forwards;transition:background .25s,color .25s,border-color .25s}
.intro__skip:hover{background:#fff;color:var(--navy);border-color:#fff}
.intro__skip .icon{width:14px;height:14px;transition:transform .25s}
.intro__skip:hover .icon{transform:translateX(3px)}

.intro__stage{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;text-align:center;pointer-events:none;padding:96px 20px 132px}
.intro__vial{position:absolute;left:50%;top:50%;z-index:-1;width:clamp(150px,17vw,250px);height:min(64vh,560px);margin:0;border-radius:999px;overflow:hidden;translate:calc(-50% + var(--mx) * 16px) calc(-50% + var(--my) * 16px);transition:translate 1s var(--ease);clip-path:inset(50% 0 50% 0 round 999px);animation:introVial 1.6s .45s var(--ease-io) forwards}
.intro__vial img{width:100%;height:100%;object-fit:cover;object-position:50% 58%;filter:brightness(.7) saturate(.85) contrast(1.05);transform:scale(1.35);animation:introVialImg 6s .45s cubic-bezier(.2,.7,.2,1) forwards}
.intro__vial::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);transform:translateX(-120%);animation:introSheen 3.2s 2.2s ease-in-out infinite}
.intro__vial::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);background:linear-gradient(180deg,rgba(8,24,45,.35),transparent 30%,rgba(8,24,45,.5) 52%,rgba(8,24,45,.78) 70%,rgba(8,24,45,.9))}
.intro__kicker{display:flex;align-items:center;gap:16px;min-height:1.4em;margin:0;font-size:11px;font-weight:700;letter-spacing:.32em;color:#fca7be;opacity:0;animation:introUp .9s .85s var(--ease) forwards}
.intro__kicker::before,.intro__kicker::after{content:"";width:34px;height:1px;background:currentColor;opacity:.6}
.intro__title{display:flex;align-items:flex-end;justify-content:center;margin:.14em 0 .2em;font-size:clamp(50px,14.2vw,218px);font-weight:850;letter-spacing:-.055em;line-height:.92;filter:drop-shadow(0 18px 40px rgba(0,0,0,.45));translate:calc(var(--mx) * -10px) calc(var(--my) * -10px);transition:translate 1s var(--ease)}
/* Blur lives on the wrapper: combining filter with background-clip:text on one element paints the whole background box in Chrome. */
.intro__letter{display:inline-block;overflow:hidden;padding:.08em .015em .12em;margin:-.08em -.015em -.12em;filter:blur(12px);animation:introUnblur 1.15s calc(1.1s + var(--i) * .07s) var(--ease) forwards}
.intro__letter>span{display:inline-block;color:transparent;background:linear-gradient(100deg,#fff 0 42%,#ffc4d3 50%,#fff 58% 100%);background-size:320% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;opacity:0;transform:translateY(118%) rotate(9deg);transform-origin:left bottom;animation:introLetter 1.15s calc(1.1s + var(--i) * .07s) var(--ease) forwards,introShine 1.4s calc(2.35s + var(--i) * .06s) ease-in-out forwards,introShine 1.4s calc(3.9s + var(--i) * .06s) ease-in-out forwards}
.intro__dot{flex:none;width:.15em;height:.15em;margin:0 0 .12em .05em;border-radius:50%;background:var(--red);box-shadow:0 0 .35em rgba(232,40,88,.85);transform:scale(0);animation:introDot .8s 2s cubic-bezier(.34,1.56,.64,1) forwards,introPulse 2.4s 2.8s ease-in-out infinite}
.intro__tagline{margin:0;font-size:clamp(15px,1.5vw,20px);font-weight:400;letter-spacing:-.01em;color:rgba(255,255,255,.78);text-shadow:0 2px 16px rgba(3,10,21,.9);opacity:0;animation:introUp .9s 2.3s var(--ease) forwards}
.intro__words{display:inline-block;height:1.35em;overflow:hidden;vertical-align:bottom;text-align:left;color:#fff;font-weight:700}
.intro__words span{display:block;line-height:1.35em;animation:introWords 2.6s 2.75s var(--ease-io) forwards}

.intro__hud{position:absolute;z-index:4;left:0;right:0;bottom:0;height:132px;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:0 calc(var(--gut) + 24px)}
.intro__specs{display:flex;gap:clamp(22px,3.4vw,52px);margin:0}
.intro__specs div{opacity:0;animation:introUp .9s calc(2.5s + var(--d,0s)) var(--ease) forwards}
.intro__specs div:nth-child(2){--d:.12s}
.intro__specs div:nth-child(3){--d:.24s}
.intro__specs dt{font-size:9px;font-weight:700;letter-spacing:.24em;color:rgba(255,255,255,.45);margin-bottom:6px}
.intro__specs dd{margin:0;font-size:14px;font-weight:600;color:#fff;letter-spacing:-.01em}
.intro__loading{width:min(280px,100%);margin-left:auto;opacity:0;animation:introUp .9s .6s var(--ease) forwards}
.intro__count{display:flex;align-items:flex-start;justify-content:flex-end;gap:4px;font-size:44px;font-weight:300;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.intro__count small{font-size:13px;font-weight:600;color:#fca7be;margin-top:5px}
.intro__loading-meta{display:flex;justify-content:flex-end;margin:10px 0 10px;font-size:9px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.intro__track{height:2px;overflow:hidden;background:rgba(255,255,255,.12);border-radius:2px}
.intro__fill{display:block;width:100%;height:100%;background:linear-gradient(90deg,var(--red),#ff6f93);box-shadow:0 0 12px rgba(255,80,120,.8);transform:scaleX(0);transform-origin:left center}

/* Exit: content lifts away, then the whole scene wipes up over the gate. */
.intro.is-leaving .intro__letter{animation:introBlurOut .6s calc(var(--i) * .035s) cubic-bezier(.7,0,.84,0) forwards}
.intro.is-leaving .intro__letter>span{animation:introLetterOut .6s calc(var(--i) * .035s) cubic-bezier(.7,0,.84,0) forwards}
.intro.is-leaving :is(.intro__kicker,.intro__tagline,.intro__top,.intro__hud,.intro__dot){animation:introOut .45s ease forwards}
.intro.is-leaving .intro__vial{animation:introVialOut .7s var(--ease-io) forwards}
.intro.is-wiping{animation:introWipe .95s var(--ease-io) forwards}
.gate.is-entering .gate__shell{animation:gateIn 1s .3s var(--ease,cubic-bezier(.16,1,.3,1)) both}

@keyframes introFade{to{opacity:1}}
@keyframes introLineX{to{transform:scaleX(1)}}
@keyframes introLineY{to{transform:scaleY(1)}}
@keyframes introGlow{from{transform:scale(1) rotate(0)}to{transform:scale(1.18) rotate(10deg)}}
@keyframes introMarquee{to{transform:translateX(-50%)}}
@keyframes introClip{to{clip-path:inset(0 0 0 0 round 9px)}}
@keyframes introUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes introVial{to{clip-path:inset(0 0 0 0 round 999px)}}
@keyframes introVialImg{to{transform:scale(1.04)}}
@keyframes introSheen{0%{transform:translateX(-120%)}55%,100%{transform:translateX(120%)}}
@keyframes introLetter{to{opacity:1;transform:none}}
@keyframes introUnblur{to{filter:blur(0)}}
@keyframes introBlurOut{from{filter:blur(0)}to{filter:blur(8px)}}
@keyframes introShine{from{background-position:100% 0}to{background-position:0 0}}
@keyframes introDot{to{transform:scale(1)}}
@keyframes introPulse{0%,100%{box-shadow:0 0 .35em rgba(232,40,88,.85)}50%{box-shadow:0 0 .9em rgba(232,40,88,1)}}
@keyframes introWords{0%,28%{transform:translateY(0)}38%,66%{transform:translateY(-100%)}76%,100%{transform:translateY(-200%)}}
@keyframes introOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-14px)}}
@keyframes introLetterOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-115%)}}
@keyframes introVialOut{from{clip-path:inset(0 0 0 0 round 999px)}to{clip-path:inset(50% 0 50% 0 round 999px)}}
@keyframes introWipe{from{clip-path:inset(0 0 0 0)}to{clip-path:inset(0 0 100% 0)}}
@keyframes gateIn{from{opacity:0;transform:translateY(36px) scale(.97)}to{opacity:1;transform:none}}

@media(max-width:860px){.intro__specs div:nth-child(3){display:none}}
@media(max-width:640px){
  .intro{--gut:16px}
  .intro__top{height:76px;padding:0 28px}.intro__lines span:nth-child(1){top:76px}
  .intro__logo{width:64px;height:40px;padding:4px 7px}.intro__presents{gap:12px}.intro__presents-text{font-size:9px;letter-spacing:.26em}.intro__presents-text::before{width:16px}
  .intro__skip{padding:9px 14px}
  .intro__stage{padding:76px 16px 120px}
  .intro__vial{width:clamp(120px,36vw,170px);height:min(54vh,440px)}
  .intro__kicker{font-size:9px;letter-spacing:.2em;gap:10px}.intro__kicker::before,.intro__kicker::after{width:14px}
  .intro__title{font-size:15.2vw}
  .intro__hud{height:120px;padding:0 28px}.intro__lines span:nth-child(2){bottom:120px}
  .intro__specs{display:none}.intro__loading{width:100%}
  .intro__count{font-size:34px}
}
@media(max-height:560px){.intro__vial{height:58vh}.intro__hud{height:100px}.intro__lines span:nth-child(2){bottom:100px}.intro__stage{padding-bottom:100px}.intro__count{font-size:30px}}
@media(prefers-reduced-motion:reduce){.intro *,.intro::before,.intro::after,.gate.is-entering .gate__shell{animation:none!important;transition:none!important}}
/* Professional attestation: demo UX, NOT identity verification */
.gate{position:fixed;inset:0;z-index:190;display:grid;place-items:center;background:linear-gradient(125deg,rgba(10,26,46,.96),rgba(14,44,72,.97));padding:20px;overflow:auto}
.gate__shell{background:#fff;max-width:570px;width:100%;border-radius:18px;padding:44px 52px 31px;box-shadow:0 38px 110px rgba(0,0,0,.25);text-align:center}
.gate__mark{height:55px;width:55px;display:grid;place-items:center;margin:0 auto 24px;background:#f9e8ed;color:var(--red);border-radius:17px}
.gate__mark .icon{height:29px;width:29px}
.gate h1{font-size:33px;letter-spacing:-.05em;line-height:1.17;margin:14px 0 17px}
.gate p:not(.eyebrow){color:var(--muted);font-size:14px;margin-bottom:27px}
.gate__form{text-align:left;display:grid;gap:12px}
.gate__form>label:not(.checkline){font-size:12px;color:var(--ink);font-weight:700}
.gate select{height:49px;border:1px solid #ccd7e4;background:#fff;border-radius:7px;width:100%;padding:0 14px;color:var(--ink)}
.checkline{display:flex;align-items:flex-start;gap:11px;text-align:left;font-size:12px;line-height:1.55;color:#5c6979;cursor:pointer}
.checkline input{width:17px;height:17px;accent-color:var(--red);margin:2px 0 0;flex:none}
.gate__form .checkline{margin:7px 0 8px}
.gate__leave{background:none;border:0;text-decoration:underline;text-underline-offset:4px;color:var(--muted);font-size:12px;margin:18px 0}
.gate__shell small{font-size:10.5px;color:#8993a0;display:block;line-height:1.6}
.leave-screen{position:fixed;inset:0;z-index:195;display:grid;place-items:center;background:#fff;padding:30px;text-align:center}
.leave-screen__content{max-width:410px}
.leave-screen h2{font-size:34px}
.leave-screen p{color:var(--muted)}

.site-shell{visibility:hidden}
.site-shell.is-ready{visibility:visible}
.test-banner{height:31px;padding:4px 15px;background:var(--navy);color:#f4f7fb;font-size:10px;letter-spacing:.03em;display:flex;align-items:center;justify-content:center;gap:12px}
.test-banner__dot{height:7px;width:7px;background:#f05c79;border-radius:100%}
.test-banner strong{letter-spacing:.11em;font-size:9px}
.test-banner span:last-child{color:#c5d2e2}
.header{height:86px;background:rgba(255,255,255,.96);border-bottom:1px solid #e5eaf1;position:sticky;top:0;z-index:100;backdrop-filter:blur(15px)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:100%;gap:35px}
.header__brand{display:flex;flex-direction:column;gap:2px;line-height:1.1;flex:none}
.nav{display:flex;gap:24px;align-items:center;margin-left:auto}
.nav>a{font-size:11.5px;font-weight:700;color:#38485b;white-space:nowrap;transition:color .2s}
.nav>a:hover,.nav>a.is-active{color:var(--red)}
.header__right{display:flex;align-items:center;gap:12px}
.header__menu{background:none;border:0;padding:8px;display:none}
.nav__mobile-cta{display:none!important}

.hero{position:relative;overflow:hidden;min-height:710px;padding:75px 0 65px;background:linear-gradient(120deg,#f9fafc 2%,#eef3f9 72%,#e3ecf4 100%)}
.hero__glow{position:absolute;width:780px;height:780px;border-radius:50%;filter:blur(30px);background:radial-gradient(circle,rgba(183,207,235,.58),transparent 65%);right:-270px;top:-220px;pointer-events:none}
.hero__grid{display:grid;grid-template-columns:.88fr 1.05fr;gap:65px;align-items:center}
.hero__copy{position:relative;z-index:1;padding-bottom:18px}
.hero__pill{display:inline-flex;align-items:center;gap:9px;color:#566c82;border:1px solid #d8e1ed;padding:7px 14px;border-radius:50px;font-size:11px;font-weight:650;background:rgba(255,255,255,.8);margin-bottom:32px}
.hero__pill span{display:block;height:7px;width:7px;background:var(--red);border-radius:50%}
.hero__copy .overline{color:var(--blue);font-size:10px;letter-spacing:.17em;margin-bottom:12px}
.hero h1{font-size:clamp(62px,6.7vw,105px);line-height:1.08;letter-spacing:-.058em;font-weight:900;color:var(--red);margin:0 0 15px}
.hero__dot{color:#701780}
.hero__subtitle{font-size:clamp(23px,2.3vw,33px);line-height:1.3;letter-spacing:-.025em;color:var(--navy);font-weight:450}
.hero__subtitle strong{font-weight:780}
.hero__description{font-size:16px;color:#5f7085;line-height:1.78;max-width:480px;margin:26px 0 29px}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap}
.hero__annotation{display:flex;align-items:center;gap:10px;border-top:1px solid #d8e0e8;margin-top:43px;padding-top:20px;color:#7a8797;font-size:11px}
.hero__annotation .icon{color:var(--red);height:18px;width:18px}
.hero__annotation strong{color:var(--navy)}
.hero__visual{position:relative;width:100%;max-width:535px;justify-self:end}
.hero__photo-wrap{border:7px solid rgba(255,255,255,.95);overflow:hidden;aspect-ratio:1/1.07;border-radius:19px;box-shadow:0 28px 65px rgba(40,69,103,.16);background:#dde8f2}
.hero__photo-wrap img{height:100%;width:100%;object-fit:cover;object-position:center 38%}
.hero__photo-caption{position:absolute;left:-39px;bottom:36px;background:rgba(255,255,255,.97);padding:17px 22px;border:1px solid #e5e9f0;box-shadow:0 12px 35px rgba(26,53,88,.10);border-radius:11px;display:flex;flex-direction:column;gap:1px}
.hero__photo-caption strong{font-size:21px;letter-spacing:-.03em;color:var(--navy);line-height:1.3}
.hero__photo-caption span:last-child{font-size:11px;color:var(--muted)}
.caption-tag{font-size:9px;color:var(--red);font-weight:850;letter-spacing:.12em}
.hero__index{position:absolute;left:max(48px,calc((100% - var(--wide))/2));right:max(48px,calc((100% - var(--wide))/2));bottom:25px;display:flex;justify-content:space-between;color:#9baabc;font-size:9px;font-weight:700;letter-spacing:.17em}
.facts-strip{border-bottom:1px solid var(--line);background:#fff}
.facts-strip__grid{display:grid;grid-template-columns:repeat(4,1fr)}
.facts-strip__grid>div{padding:27px 22px 28px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:1px}
.facts-strip__grid>div:first-child{padding-left:0}
.facts-strip__grid>div:last-child{border-right:0}
.facts-strip strong{font-size:23px;letter-spacing:-.03em;color:var(--navy);line-height:1.4}
.facts-strip span{font-size:11px;color:#7c8999}

.audience{background:#fff}
.audience__grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.audience-card{min-height:328px;background:#f7f9fb;border:1px solid #e6ebf1;border-radius:15px;padding:35px 39px;display:flex;flex-direction:column}
.audience-card__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}
.audience-card__head>span:last-child{font-size:10px;font-weight:700;letter-spacing:.1em;color:#8f9baa}
.icon-tile{height:55px;width:55px;border:1px solid #e3dce1;color:var(--red);display:grid;place-items:center;border-radius:13px;background:#fff}
.icon-tile .icon{width:26px;height:26px}
.audience-card h3{margin:0 0 11px;font-size:29px}
.audience-card p{color:var(--muted);font-size:14px;max-width:440px;margin:0 0 24px}
.audience-card .text-link{margin-top:auto}
.audience-card--dark{color:#fff;background:linear-gradient(135deg,#142f50,#091a31);border-color:#1d3b5e}
.audience-card--dark .icon-tile{background:#253f5c;color:#fff;border-color:#516781}
.audience-card--dark p,.audience-card--dark .audience-card__head>span:last-child{color:#b8c8da}
.audience-card--dark .text-link{color:#ffa8c1}

.product-section{background:#f8fafc;overflow:hidden}
.product-section__grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:115px}
.product-section__visual{position:relative}
.product-photo{border-radius:15px;overflow:hidden;background:#dce6f1;box-shadow:var(--shadow);position:relative;z-index:1}
.product-photo img{width:100%;height:535px;object-fit:cover;object-position:center}
.product-section__watermark{position:absolute;z-index:0;left:-74px;top:-124px;font-size:265px;line-height:1;font-weight:800;color:#e9eef4;letter-spacing:-.12em}
.product-section__copy p:not(.lead){font-size:15px;color:var(--muted)}
.spec-list{margin:35px 0 24px;border-top:1px solid #e1e6ee}
.spec-list>div{display:grid;grid-template-columns:41% 59%;gap:8px;padding:14px 0;border-bottom:1px solid #e1e6ee;font-size:13px}
.spec-list dt{color:#8390a0}
.spec-list dd{margin:0;color:var(--navy);font-weight:700}

.indication-section{background:#fff}
.indication-section__grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;align-items:center}
.indication-section p:not(.lead){color:var(--muted);font-size:15px;max-width:540px;margin-bottom:28px}
.indication-panel{border-radius:17px;min-height:420px;background:linear-gradient(145deg,#f8eaf0,#f8f5f6);border:1px solid #f0dce3;padding:42px 43px;position:relative;overflow:hidden}
.indication-panel__label{font-size:10px;letter-spacing:.17em;color:#a33453;font-weight:800;max-width:245px;display:block}
.indication-panel__text{font-weight:750;font-size:clamp(26px,3vw,42px);line-height:1.24;letter-spacing:-.04em;margin:24px 0 27px;max-width:380px;color:#932443;position:relative;z-index:1}
.indication-panel__graphic{height:45px;display:flex;align-items:center;gap:10px;margin:10px 0 23px;opacity:.52}
.indication-panel__graphic span{width:70px;height:1px;background:#ac7590;position:relative}
.indication-panel__graphic span:after{content:"";height:6px;width:6px;border-radius:50%;background:#c83e64;position:absolute;right:-2px;top:-2.5px}
.indication-panel p{max-width:360px;font-size:12px!important;margin:0!important;color:#986577!important;position:relative;z-index:1}

.science-section{background:linear-gradient(150deg,#0d223a,#102f50 58%,#091a30);color:#fff;overflow:hidden}
.science-section::before{content:"";position:absolute;right:-340px;top:-400px;border:1px solid rgba(255,255,255,.1);height:850px;width:850px;border-radius:50%;box-shadow:0 0 0 100px rgba(255,255,255,.015),0 0 0 230px rgba(255,255,255,.012)}
.science-section__heading{position:relative;display:grid;grid-template-columns:1.4fr .75fr;gap:85px;align-items:end;margin-bottom:52px}
.science-section h2{color:#fff;margin-bottom:0}
.science-section h2 em{color:#f5a3bb}
.science-section__heading p{color:#bac9d9;max-width:380px;margin:0 0 7px;font-size:15px}
.science-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;position:relative}
.science-card{padding:33px 29px 32px;border:1px solid rgba(255,255,255,.14);border-radius:12px;min-height:322px;display:flex;flex-direction:column;background:rgba(255,255,255,.045);backdrop-filter:blur(4px)}
.science-card__counter{font-size:10px;color:#8ca5c2;letter-spacing:.13em}
.science-card__symbol{height:52px;width:52px;margin:28px 0 22px;display:grid;place-items:center;color:#ffa8c1;border:1px solid #5d7898;border-radius:50%}
.science-card h3{font-size:22px;color:white;margin-bottom:11px}
.science-card p{font-size:13px;color:#b8c9dc;line-height:1.65;margin-bottom:20px}
.science-card__link{color:#ffafc3;font-size:12px;font-weight:750;display:flex;align-items:center;gap:8px;margin-top:auto}
.science-card__link .icon{width:16px;height:16px}
.science-section__note{border-top:1px solid rgba(255,255,255,.14);margin-top:38px;padding-top:23px;display:flex;gap:13px;align-items:start;font-size:12px;color:#bbcadb;line-height:1.6}
.science-section__note .icon{color:#fda9c0}

.mechanism-section{background:#fff}
.mechanism-section__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:95px;align-items:center}
.mechanism-section p{color:var(--muted);font-size:15px}
.mechanism-flow{border:1px solid var(--line);border-radius:17px;padding:30px 34px;background:#f7fafc;display:flex;flex-direction:column;gap:0}
.mechanism-step{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:7px 20px;padding:9px 0}
.mechanism-step span{grid-row:span 2;width:39px;height:39px;border-radius:11px;background:var(--pale-b);display:grid;place-items:center;color:var(--red);font-size:12px;font-weight:800}
.mechanism-step strong{color:var(--navy);font-size:15px;line-height:1.3}
.mechanism-step small{font-size:12px;color:var(--muted);line-height:1.35}
.mechanism-connector{display:flex;align-items:center;gap:0;margin-left:19px;height:36px;color:#a9b5c2}
.mechanism-connector span{height:32px;width:1px;background:#cfd7e2}
.mechanism-connector .icon{transform:rotate(90deg);width:14px;height:14px;margin-left:-7px;margin-top:33px;display:none}

.institutions-section{background:#f5f8fb}
.institution-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.institution-card{display:flex;flex-direction:column;background:#fff;border:1px solid #e7ecf2;padding:34px 30px 32px;min-height:349px;border-radius:12px;transition:transform .24s,box-shadow .24s}
.institution-card:hover{transform:translateY(-6px);box-shadow:0 20px 36px rgba(18,40,70,.08)}
.institution-card__icon{height:55px;width:55px;display:grid;place-items:center;background:#f6e5eb;color:var(--red);border-radius:12px;margin-bottom:36px}
.institution-card__icon .icon{width:26px;height:26px}
.institution-card>span{font-size:10px;color:#9a6376;letter-spacing:.13em;font-weight:800}
.institution-card h3{font-size:23px;margin:12px 0}
.institution-card p{font-size:13px;color:var(--muted);margin-bottom:18px}
.institution-card .text-link{margin-top:auto;font-size:12px}
.workflow{margin-top:56px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.workflow>div{flex:1;display:grid;grid-template-columns:30px 1fr;gap:2px 13px;align-items:start}
.workflow>div>span{grid-row:span 2;color:var(--red);font-size:12px;font-weight:800;margin-top:3px}
.workflow strong{font-size:15px;color:var(--navy)}
.workflow small{font-size:11px;line-height:1.4;color:var(--muted)}
.workflow__line{height:1px;width:58px;background:#c7d4e2;flex:none}

.presentation-section{background:#fff;overflow:hidden}
.presentation-section__grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:90px}
.presentation-section__copy p{font-size:15px;color:var(--muted);line-height:1.75}
.check-list{list-style:none;margin:33px 0 30px;padding:0;display:grid;gap:17px}
.check-list li{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:650;color:var(--navy)}
.check-list .icon{color:var(--red);height:18px;width:18px}
.presentation-section__image{border-radius:14px;overflow:hidden;position:relative;border:1px solid var(--line);box-shadow:var(--shadow)}
.presentation-section__image img{width:100%;height:610px;object-fit:cover;object-position:center}
.presentation-section__image>span{position:absolute;bottom:20px;left:20px;background:rgba(255,255,255,.94);border-radius:4px;padding:9px 11px;color:#596b82;font-size:9px;letter-spacing:.08em;font-weight:750}

.medical-section{background:#f7f9fc}
.medical-panel{border-radius:16px;display:grid;grid-template-columns:1fr 1.02fr;overflow:hidden;background:#122a47;color:#fff;min-height:390px}
.medical-panel__left{padding:50px 47px;display:flex;flex-direction:column;align-items:flex-start}
.medical-panel__tag{color:#f8abc2;display:flex;align-items:center;gap:10px;font-size:10px;font-weight:800;letter-spacing:.11em}
.medical-panel__tag .icon{height:17px;width:17px}
.medical-panel__left h3{font-size:35px;line-height:1.2;max-width:440px;margin:35px 0 17px}
.medical-panel__left p{font-size:13px;color:#bbcbdc;max-width:400px}
.medical-panel__left .btn{margin-top:auto}
.medical-panel__right{display:grid;grid-template-columns:1fr;padding:25px 39px;background:#173557}
.medical-panel__right>div{padding:21px 0;border-bottom:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;gap:3px}
.medical-panel__right>div:last-child{border-bottom:0}
.medical-panel__right span{color:#a9bed7;font-size:10px;letter-spacing:.11em;font-weight:750}
.medical-panel__right strong{font-size:18px;letter-spacing:-.02em}
.medical-panel__right small{color:#b6c7db;font-size:12px}
.medical-section__caution{border:1px solid #e4eaf2;background:#fff;padding:18px 20px;border-radius:8px;display:flex;align-items:flex-start;gap:12px;color:#5b6c81;font-size:12px;line-height:1.55;margin:22px 0 0}
.medical-section__caution .icon{color:var(--red)}

.docs-section{background:#fff}
.docs-section__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:29px;align-items:stretch}
.regulatory-card{background:#f3f7fb;border-radius:15px;padding:38px 40px}
.regulatory-card__index{letter-spacing:.16em;font-size:10px;font-weight:850;color:var(--red)}
.regulatory-card h3{margin:19px 0 20px}
.regulatory-card dl{margin:0}
.regulatory-card dl>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid #dce5ef;padding:12px 0}
.regulatory-card dt{color:#78889a;font-size:12px;flex:1}
.regulatory-card dd{font-weight:700;font-size:12px;text-align:right;margin:0;max-width:60%}
.regulatory-card small{font-size:11px;color:#8795a4;display:block;margin-top:23px;line-height:1.55}
.document-list{background:#fff;border:1px solid #e1e7ef;border-radius:15px;padding:11px 32px;display:flex;flex-direction:column}
.document-item{display:flex;align-items:center;gap:17px;padding:26px 0;border-bottom:1px solid #e2e9ef}
.document-item:last-child{border-bottom:0}
.document-item__icon{height:47px;width:47px;border-radius:10px;background:#f7e9ed;color:var(--red);display:grid;place-items:center;flex:none}
.document-item h3{font-size:15px;margin:0 0 5px}
.document-item p{font-size:12px;line-height:1.5;color:var(--muted);margin:0}
.document-item>div{flex:1}
.pending{font-size:10px;background:#f7f0e1;color:#936a2c;border-radius:5px;padding:6px 8px;font-weight:750}
.document-item__action{color:var(--red)}

.bibliography{background:#f9fbfd;border-top:1px solid #e5ebf1;border-bottom:1px solid #e5ebf1;padding:37px 0}
.bibliography__inner{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center}
.bibliography h2{font-size:25px;letter-spacing:-.03em;margin:10px 0 0}
.bibliography__links{display:grid;gap:8px}
.bibliography__links a{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--red);font-weight:750}
.bibliography__links a .icon{width:15px;height:15px}
.bibliography__links p{font-size:11px;line-height:1.5;margin:7px 0 0;color:var(--muted)}

.faq-section{background:#fff}
.faq-section__grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:85px}
.faq-section__grid>div:first-child p{color:var(--muted);font-size:15px;max-width:350px}
.faq-list{border-top:1px solid #dfe5ec}
.faq-list details{border-bottom:1px solid #dfe5ec}
.faq-list summary{list-style:none;cursor:pointer;padding:25px 0;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:14px;font-weight:750;color:var(--navy)}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary .icon{color:var(--red);transition:transform .2s;flex:none}
.faq-list details[open] summary .icon{transform:rotate(45deg)}
.faq-list details>p{font-size:13px;color:var(--muted);margin:0 30px 24px 0;line-height:1.75}

.contact-section{background:linear-gradient(135deg,#0e2743 10%,#102d4f 55%,#07192e);color:#fff;overflow:hidden}
.contact-section::before{content:"";position:absolute;right:-260px;top:-350px;border-radius:50%;height:850px;width:850px;border:1px solid rgba(255,255,255,.06);box-shadow:0 0 0 75px rgba(255,255,255,.014),0 0 0 165px rgba(255,255,255,.014)}
.contact-section__grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:100px;position:relative}
.contact-section h2{color:#fff;margin-top:25px}
.contact-section h2 em{color:#ffafc5}
.contact-section__intro p{color:#bdd0e2;font-size:15px;line-height:1.8}
.contact-metadata{display:grid;gap:14px;margin:46px 0 22px}
.contact-metadata span{display:flex;gap:10px;align-items:center;color:#e6eef7;font-size:13px;overflow-wrap:anywhere}
.contact-metadata .icon{color:#ee9bb4;width:18px;height:18px}
.contact-metadata a:hover{text-decoration:underline}
.contact-meta-note{font-size:11px!important;color:#91a9c3!important}
.contact-form{border-radius:15px;background:#fff;color:var(--navy);padding:34px 38px 28px;box-shadow:0 18px 55px rgba(0,0,0,.12)}
.contact-form__top{display:flex;justify-content:space-between;color:#96a1ad;letter-spacing:.14em;font-size:10px;font-weight:800;padding-bottom:25px;border-bottom:1px solid #e2e7ef;margin-bottom:26px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:21px 19px}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-field--full{grid-column:1/-1}
.form-field label{font-size:11px;color:#55667a;font-weight:800}
.form-field input,.form-field select,.form-field textarea{width:100%;border:1px solid #dce4ec;border-radius:7px;background:#f9fbfc;padding:12px 13px;color:var(--navy);font-size:13px;outline-offset:2px;transition:border-color .2s}
.form-field input,.form-field select{height:47px}
.form-field textarea{min-height:104px;resize:vertical;line-height:1.55}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:var(--red);background:#fff}
.form-field input::placeholder,.form-field textarea::placeholder{color:#a6b1bc}
.checkline--form{font-size:11px;margin:22px 0 17px}
.contact-form__copy{display:flex;align-items:center;gap:8px;margin:15px auto 0;color:var(--red);border:0;background:none;font-weight:750;font-size:11px}
.contact-form__copy .icon{width:16px;height:16px}
.contact-form__status{margin:10px 0 0;font-size:12px;font-weight:700;text-align:center;color:#206747}
.contact-form__notice{font-size:10px;line-height:1.5;text-align:center;color:#95a2af;margin:12px 0 0}

.footer{background:#071626;color:#dae5f1;padding:52px 0 27px}
.footer__top{display:flex;justify-content:space-between;gap:40px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,.13)}
.footer__top p{color:#97abc1;font-size:12px;margin:15px 0 0}
.footer__links{display:flex;gap:25px;align-items:start;flex-wrap:wrap}
.footer__links a{color:#c4d4e4;font-size:12px}
.footer__links a:hover{color:#fff}
.footer__bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-top:26px;color:#9fb0c3;font-size:11px}
.footer__legal{font-size:10px;color:#69829a;margin-top:20px;line-height:1.65;max-width:870px}

@media(max-width:1160px){
  .container{width:min(var(--wide),calc(100% - 66px))}
  .nav{gap:14px}.nav>a{font-size:10px}.header__cta{font-size:11px;padding-inline:12px}
  .hero__grid{gap:30px}.hero h1{font-size:clamp(58px,6vw,87px)}
  .product-section__grid{gap:65px}.indication-section__grid{gap:50px}.presentation-section__grid{gap:45px}
  .contact-section__grid{gap:55px}.faq-section__grid{gap:50px}.mechanism-section__grid{gap:55px}
}
@media(max-width:880px){
  .container{width:calc(100% - 52px)}.section{padding:86px 0}
  .header{height:72px}.header__brand .brand-logo{width:77px;height:48px}.header__menu{display:block}.header__cta{display:none}
  .nav{position:absolute;top:72px;left:0;right:0;display:none;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 17px 30px rgba(0,0,0,.07);padding:20px 26px 28px;flex-direction:column;gap:0;align-items:stretch}
  .nav.is-open{display:flex}.nav>a{font-size:14px;padding:13px 4px;border-bottom:1px solid #edf1f5}.nav__mobile-cta{display:block!important;color:var(--red)!important}
  .hero{padding:66px 0 76px;min-height:0}.hero__grid{grid-template-columns:1fr 1fr;gap:25px}.hero h1{font-size:clamp(50px,7vw,75px)}.hero__description{font-size:14px}.hero__photo-caption{left:-15px;bottom:17px;padding:12px 14px}.hero__photo-caption strong{font-size:16px}.hero__index{left:26px;right:26px}
  .facts-strip__grid{grid-template-columns:repeat(2,1fr)}.facts-strip__grid>div{padding:22px 20px;border-bottom:1px solid var(--line)}.facts-strip__grid>div:nth-child(2){border-right:0}.facts-strip__grid>div:nth-child(n+3){border-bottom:0}.facts-strip__grid>div:nth-child(3){padding-left:0}
  .audience-card{padding:30px;min-height:330px}.audience-card h3{font-size:24px}
  .product-section__grid,.indication-section__grid,.presentation-section__grid,.mechanism-section__grid,.contact-section__grid,.faq-section__grid{grid-template-columns:1fr;gap:45px}
  .product-section__visual{max-width:620px;margin-inline:auto;width:100%}.product-photo img{height:520px}
  .indication-panel{min-height:330px}.science-section__heading,.section-heading--split{grid-template-columns:1fr;gap:20px}
  .science-cards{grid-template-columns:repeat(3,1fr)}.science-card{padding:26px 20px}.science-card h3{font-size:19px}
  .institution-card{padding:25px 20px;min-height:350px}.institution-card h3{font-size:21px}
  .presentation-section__image{max-width:640px;width:100%;margin-inline:auto}.presentation-section__image img{height:600px}
  .faq-section__grid{gap:15px}
  .contact-section__grid{gap:30px}.contact-section__intro{max-width:620px}
}
@media(max-width:640px){
  html{scroll-padding-top:77px}
  .container{width:calc(100% - 36px)}.section{padding:72px 0}
  h2{font-size:clamp(34px,9vw,49px);margin-bottom:20px}.section-heading{margin-bottom:30px}.section-heading p{font-size:14px}
  .overline,.eyebrow{font-size:10px}.lead{font-size:16px}
  .btn{width:100%;padding:15px 17px;min-height:49px;font-size:12px}
  .test-banner{height:auto;min-height:32px;font-size:9px;gap:7px;padding:6px 10px;flex-wrap:wrap;text-align:center}.test-banner span:last-child{display:none}
  .hero{padding:52px 0 64px}.hero__grid{grid-template-columns:1fr;gap:36px}.hero__copy{padding-bottom:0}.hero__pill{margin-bottom:27px}.hero h1{font-size:clamp(50px,14vw,78px)}.hero__subtitle{font-size:25px}.hero__description{font-size:14px;margin:20px 0}.hero__actions{flex-direction:column}.hero__annotation{margin-top:27px}.hero__visual{max-width:400px;margin:auto;justify-self:center}.hero__photo-wrap{aspect-ratio:1/1.12;border-width:5px}.hero__photo-caption{left:-7px;bottom:20px}.hero__index{bottom:17px;left:19px;right:19px;font-size:7.5px}
  .facts-strip strong{font-size:19px}.facts-strip span{font-size:10px}.facts-strip__grid>div{padding:20px 10px}.facts-strip__grid>div:nth-child(3){padding-left:0}
  .audience__grid,.science-cards,.institution-grid,.medical-panel,.docs-section__grid,.bibliography__inner{grid-template-columns:1fr}
  .audience-card{min-height:290px;padding:28px}.audience-card__head{margin-bottom:25px}.audience-card h3{font-size:25px}
  .product-photo img{height:405px}.product-section__watermark{font-size:160px;top:-70px;left:-15px}
  .spec-list>div{grid-template-columns:40% 60%;font-size:12px}
  .indication-panel{padding:30px;min-height:320px}.indication-panel__text{font-size:30px}
  .science-section__heading{margin-bottom:25px}.science-section__heading p{font-size:14px}.science-card{min-height:250px;padding:27px}.science-card__symbol{margin:15px 0 17px}
  .mechanism-flow{padding:20px}.mechanism-step{grid-template-columns:36px 1fr;gap:4px 15px}.mechanism-step strong{font-size:14px}
  .institution-card{min-height:290px;padding:27px}.institution-card__icon{margin-bottom:20px}
  .workflow{display:grid;gap:19px;margin-top:35px}.workflow__line{display:none}
  .presentation-section__image img{height:405px}.presentation-section__image>span{font-size:8px;padding:6px;bottom:10px;left:10px}
  .medical-panel__left{padding:32px}.medical-panel__left h3{font-size:28px;margin:24px 0 14px}.medical-panel__left .btn{margin-top:15px}.medical-panel__right{padding:15px 30px}
  .regulatory-card{padding:30px 25px}.document-list{padding:10px 21px}.document-item{gap:12px}.document-item h3{font-size:13px}.document-item p{font-size:11px}.document-item__icon{width:39px;height:39px}.pending{font-size:9px}
  .bibliography__inner{gap:15px}.bibliography h2{font-size:23px}
  .faq-list summary{font-size:13px;padding:21px 0}
  .contact-section__intro p{font-size:14px}.contact-metadata{margin:27px 0 20px}.contact-form{padding:24px 19px}.form-grid{grid-template-columns:1fr;gap:14px}.form-field--full{grid-column:1}.contact-form__top{margin-bottom:18px;padding-bottom:15px}
  .footer__top,.footer__bottom{flex-direction:column;align-items:start;gap:22px}.footer__links{gap:13px 18px}.footer__bottom{padding-top:20px}
  .gate__shell{padding:31px 23px 23px}.gate h1{font-size:28px}.gate p:not(.eyebrow){font-size:13px;margin-bottom:19px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.btn,.institution-card,.text-link{transition:none}}

/* ===== Immersive layer. Everything motion-related is scoped to html.fx, which app.js adds only when reduced motion is off. ===== */
:root{--fx-ease:cubic-bezier(.16,1,.3,1);--fx-io:cubic-bezier(.77,0,.18,1)}
.scroll-progress{position:fixed;top:0;left:0;right:0;z-index:160;height:3px;background:linear-gradient(90deg,var(--red),#ff6f93 60%,#701780);box-shadow:0 0 12px rgba(190,22,64,.5);transform:scaleX(0);transform-origin:left center;pointer-events:none}

/* Header compacts on scroll; nav gets an animated underline and scroll-spy state. */
.header{transition:height .4s var(--fx-ease),box-shadow .4s ease,background .4s ease}
.header.is-scrolled{background:rgba(255,255,255,.88);box-shadow:0 12px 34px rgba(17,37,62,.08)}
@media(min-width:881px){
  .header.is-scrolled{height:72px}
  .nav>a:not(.nav__mobile-cta){position:relative}
  .nav>a:not(.nav__mobile-cta)::after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:2px;border-radius:2px;background:var(--red);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--fx-ease)}
  .nav>a:hover::after,.nav>a.is-active::after{transform:scaleX(1);transform-origin:left}
}

/* Buttons: light sweep on hover; magnetic pull is applied in JS through `translate`. */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn--red::before,.btn--light::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);transform:translateX(-120%);transition:transform .9s var(--fx-ease)}
.btn--light::before{background:linear-gradient(110deg,transparent 30%,rgba(190,22,64,.12) 50%,transparent 70%)}
.btn--red:hover::before,.btn--light:hover::before{transform:translateX(120%)}
.fx .btn{transition:transform .23s ease,background .23s ease,box-shadow .23s ease,translate .45s var(--fx-ease)}
.btn .icon{transition:transform .3s var(--fx-ease)}
.btn:hover .icon{transform:translateX(3px)}

/* Ticker band between the fact strip and the audiences. */
.ticker{overflow:hidden;background:var(--deep);color:#fff;padding:22px 0;border-block:1px solid rgba(255,255,255,.06)}
.ticker__track{display:flex;width:max-content;animation:fxTicker 42s linear infinite}
.ticker span{display:flex;align-items:center;gap:38px;padding-right:38px;font-size:clamp(20px,2.6vw,36px);font-weight:780;letter-spacing:-.035em;white-space:nowrap}
.ticker span::after{content:"";width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 14px rgba(232,40,88,.8)}
.ticker span:nth-child(even){color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.55)}

/* Global reveal: longer travel, expo easing, per-card stagger through --sd. */
.fx .reveal{transform:translateY(46px);transition:opacity 1s var(--fx-ease) var(--sd,0s),transform 1.2s var(--fx-ease) var(--sd,0s)}
.fx .reveal.in-view{transform:none}
.fx :is(.audience__grid,.science-cards,.institution-grid)>.reveal:nth-child(2){--sd:.12s}
.fx :is(.audience__grid,.science-cards,.institution-grid)>.reveal:nth-child(3){--sd:.24s}
.fx :is(.product-section__grid,.indication-section__grid,.presentation-section__grid,.mechanism-section__grid,.faq-section__grid,.contact-section__grid,.docs-section__grid)>.reveal:nth-child(2){--sd:.15s}
.fx .reveal:not(.hero__copy) .overline{opacity:0;letter-spacing:.42em;transition:opacity 1s ease calc(var(--sd,0s) + .1s),letter-spacing 1.3s var(--fx-ease) calc(var(--sd,0s) + .1s)}
.fx .reveal.in-view:not(.hero__copy) .overline{opacity:1;letter-spacing:.19em}

/* Headline word masks (spans injected by app.js). */
.fx-w{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .05em .14em 0;margin:0 -.05em -.14em 0}
.fx-w>span{display:inline-block;transform:translateY(108%);transition:transform 1.15s var(--fx-ease) calc(var(--w) * .055s + .12s)}
.reveal-text.in-view .fx-w>span{transform:none}

/* Hero: staged entrance, letter rise, image wipe, pointer depth. */
.fx .hero{--hx:0;--hy:0}
.hero::before{content:"";position:absolute;z-index:0;width:620px;height:620px;left:-220px;bottom:-300px;border-radius:50%;background:radial-gradient(circle,rgba(190,22,64,.12),transparent 65%);filter:blur(30px);pointer-events:none;animation:fxDrift 14s ease-in-out infinite alternate}
.fx .hero__glow{translate:calc(var(--hx) * 46px) calc(var(--hy) * 46px);transition:translate 1.4s var(--fx-ease)}
.fx .hero .reveal{opacity:1;transform:none;transition:none}
.fx .hero__copy>*:not(h1),.fx .hero__photo-caption,.fx .hero__index{opacity:0}
.fx .hero.is-live .hero__copy>*:not(h1){animation:fxUp 1s var(--fx-ease) both}
.fx .hero.is-live .hero__copy>:nth-child(1){animation-delay:.1s}
.fx .hero.is-live .hero__copy>:nth-child(2){animation-delay:.25s}
.fx .hero.is-live .hero__copy>:nth-child(4){animation-delay:.85s}
.fx .hero.is-live .hero__copy>:nth-child(5){animation-delay:1s}
.fx .hero.is-live .hero__copy>:nth-child(6){animation-delay:1.15s}
.fx .hero.is-live .hero__copy>:nth-child(7){animation-delay:1.3s}
.hero h1{white-space:nowrap}
.fx-ch{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em;margin-bottom:-.06em}
.fx-ch>span{display:inline-block;transform:translateY(108%)}
.fx-ch--t>span{color:transparent;background:linear-gradient(100deg,var(--red) 0 42%,#ff7a9c 50%,var(--red) 58% 100%);background-size:320% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text}
.fx .hero.is-live .fx-ch>span{animation:fxRise 1.1s calc(.3s + var(--c) * .05s) var(--fx-ease) both,fxShine 1.5s calc(1.5s + var(--c) * .06s) ease-in-out both}
.fx .hero__photo-wrap{clip-path:inset(100% 0 0 0 round 19px);transform:perspective(1100px) rotateY(calc(var(--hx) * 5deg)) rotateX(calc(var(--hy) * -5deg));transition:transform .9s var(--fx-ease)}
.fx .hero.is-live .hero__photo-wrap{--r:19px;animation:fxClipUp 1.5s .35s var(--fx-io) both}
.fx .hero.is-live .hero__photo-wrap img{animation:fxZoomHero 2.2s .35s var(--fx-ease) backwards}
.fx .hero__photo-caption{translate:calc(var(--hx) * -16px) calc(var(--hy) * -12px);transition:translate .9s var(--fx-ease)}
.fx .hero.is-live .hero__photo-caption{animation:fxSlide 1s 1.35s var(--fx-ease) both}
.fx .hero.is-live .hero__index{animation:fxUp 1s 1.6s var(--fx-ease) both}

/* Fact strip: staggered entrance plus count-up (JS). */
.fx .facts-strip__grid>div{opacity:0;transform:translateY(20px);transition:opacity .9s var(--fx-ease),transform 1s var(--fx-ease)}
.fx .facts-strip.in-view .facts-strip__grid>div{opacity:1;transform:none}
.fx .facts-strip.in-view .facts-strip__grid>div:nth-child(2){transition-delay:.1s}
.fx .facts-strip.in-view .facts-strip__grid>div:nth-child(3){transition-delay:.2s}
.fx .facts-strip.in-view .facts-strip__grid>div:nth-child(4){transition-delay:.3s}
.facts-strip strong{font-variant-numeric:tabular-nums}

/* Cards: cursor spotlight (coordinates from JS) and smoother lift. */
:is(.audience-card,.science-card,.institution-card,.medical-panel){position:relative;isolation:isolate}
:is(.audience-card,.science-card,.institution-card,.medical-panel)::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .45s ease;background:radial-gradient(420px circle at var(--px,50%) var(--py,50%),rgba(190,22,64,.08),transparent 45%)}
:is(.audience-card--dark,.science-card,.medical-panel)::after{background:radial-gradient(420px circle at var(--px,50%) var(--py,50%),rgba(160,200,255,.13),transparent 45%)}
:is(.audience-card,.science-card,.institution-card,.medical-panel):hover::after{opacity:1}
.audience-card,.science-card{transition:border-color .35s ease,translate .5s var(--fx-ease),box-shadow .5s ease}
.fx .reveal:is(.audience-card,.science-card,.institution-card){transition:opacity 1s var(--fx-ease) var(--sd,0s),transform 1.2s var(--fx-ease) var(--sd,0s),translate .5s var(--fx-ease),border-color .35s ease,box-shadow .5s ease}
.audience-card:hover,.science-card:hover{translate:0 -6px;box-shadow:0 26px 50px rgba(18,40,70,.10)}
.science-card:hover{border-color:rgba(255,255,255,.3);box-shadow:0 26px 50px rgba(0,0,0,.25)}
.fx .institution-card:hover{transform:none;translate:0 -6px}
.icon-tile,.institution-card__icon,.science-card__symbol{transition:transform .5s var(--fx-ease),background .35s ease,color .35s ease}
:is(.audience-card,.institution-card,.science-card):hover :is(.icon-tile,.institution-card__icon,.science-card__symbol){transform:translateY(-3px) rotate(-6deg)}
.institution-card:hover .institution-card__icon{background:var(--red);color:#fff}

/* Images: wipe-in on reveal, zoom settle, scroll parallax via `translate` (JS). */
.fx .product-section__visual:not(.in-view) .product-photo{clip-path:inset(100% 0 0 0 round 15px)}
.fx .product-section__visual.in-view .product-photo{--r:15px;animation:fxClipUp 1.5s var(--fx-io) both}
.fx .presentation-section__image.reveal:not(.in-view){clip-path:inset(100% 0 0 0 round 14px)}
.fx .presentation-section__image.reveal.in-view{--r:14px;animation:fxClipUp 1.5s .15s var(--fx-io) both}
.fx :is(.product-photo,.presentation-section__image) img{scale:1.12;transition:scale 1.2s var(--fx-ease)}
.fx .product-section__visual.in-view .product-photo img,.fx .presentation-section__image.in-view img{animation:fxZoom 2s var(--fx-ease) backwards}
.fx :is(.product-photo,.presentation-section__image):hover img{scale:1.17}
.product-section__watermark{color:transparent;-webkit-text-stroke:2px #dfe6ee}

/* Indication: signal dots travel along the graphic. */
.fx .indication-panel.in-view .indication-panel__graphic span::after{animation:fxTravel 2.6s var(--fx-io) infinite}
.fx .indication-panel.in-view .indication-panel__graphic span:nth-child(2)::after{animation-delay:.3s}
.fx .indication-panel.in-view .indication-panel__graphic span:nth-child(3)::after{animation-delay:.6s}
.fx .indication-panel.in-view .indication-panel__graphic span:nth-child(4)::after{animation-delay:.9s}

/* Dark sections: breathing rings and a soft light that follows the pointer. */
.science-section::before,.contact-section::before{animation:fxBreathe 12s ease-in-out infinite alternate}
.science-section::after,.contact-section::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(640px circle at var(--sx,75%) var(--sy,20%),rgba(110,160,235,.13),transparent 60%)}
.science-section>.container,.contact-section>.container{position:relative;z-index:1}

/* Mechanism: steps light up in sequence and connectors draw between them. */
.fx .mechanism-flow .mechanism-step{opacity:.18;translate:-16px 0;transition:opacity .8s var(--fx-ease) var(--st,0s),translate .9s var(--fx-ease) var(--st,0s)}
.fx .mechanism-flow .mechanism-step:nth-child(1){--st:.35s}
.fx .mechanism-flow .mechanism-step:nth-child(3){--st:.95s}
.fx .mechanism-flow .mechanism-step:nth-child(5){--st:1.55s}
.fx .mechanism-flow.in-view .mechanism-step{opacity:1;translate:0 0}
.fx .mechanism-flow .mechanism-step span{transition:background .6s ease var(--st,0s),color .6s ease var(--st,0s),box-shadow .6s ease var(--st,0s)}
.fx .mechanism-flow.in-view .mechanism-step span{background:var(--red);color:#fff;box-shadow:0 10px 22px rgba(190,22,64,.25)}
.fx .mechanism-connector span{transform:scaleY(0);transform-origin:top;transition:transform .6s var(--fx-io)}
.fx .mechanism-flow.in-view .mechanism-connector:nth-child(2) span{transform:scaleY(1);transition-delay:.65s}
.fx .mechanism-flow.in-view .mechanism-connector:nth-child(4) span{transform:scaleY(1);transition-delay:1.25s}

/* Workflow: lines draw left to right after the steps land. */
.fx .workflow__line{transform:scaleX(0);transform-origin:left;transition:transform .9s var(--fx-io)}
.fx .workflow.in-view .workflow__line:nth-child(2){transform:scaleX(1);transition-delay:.45s}
.fx .workflow.in-view .workflow__line:nth-child(4){transform:scaleX(1);transition-delay:1s}
.fx .workflow>div{opacity:0;transition:opacity .8s ease}
.fx .workflow.in-view>div{opacity:1}
.fx .workflow.in-view>div:nth-child(3){transition-delay:.7s}
.fx .workflow.in-view>div:nth-child(5){transition-delay:1.25s}

/* Documents, FAQ and form micro-interactions. */
.document-item{transition:translate .45s var(--fx-ease)}
.document-item:hover{translate:6px 0}
.document-item__icon{transition:background .3s ease,color .3s ease}
.document-item:hover .document-item__icon{background:var(--red);color:#fff}
.faq-list summary{transition:color .25s ease}
.faq-list summary:hover{color:var(--red)}
.faq-list summary .icon{transition:transform .45s var(--fx-ease)}
.fx .faq-list details[open]>p{animation:fxUp .6s var(--fx-ease)}
.form-field input,.form-field select,.form-field textarea{transition:border-color .25s ease,background .25s ease,box-shadow .25s ease}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus{box-shadow:0 0 0 4px rgba(190,22,64,.09)}

@keyframes fxUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
@keyframes fxRise{from{transform:translateY(108%)}to{transform:none}}
@keyframes fxShine{from{background-position:100% 0}to{background-position:0 0}}
@keyframes fxSlide{from{opacity:0;transform:translateX(-34px)}to{opacity:1;transform:none}}
@keyframes fxClipUp{from{clip-path:inset(100% 0 0 0 round var(--r,15px))}99%{clip-path:inset(0 0 0 0 round var(--r,15px))}to{clip-path:none}}
@keyframes fxZoomHero{from{transform:scale(1.25)}to{transform:none}}
@keyframes fxZoom{from{scale:1.38}to{scale:1.12}}
@keyframes fxDrift{from{transform:translate(0,0)}to{transform:translate(140px,-90px)}}
@keyframes fxBreathe{from{transform:scale(1)}to{transform:scale(1.07)}}
@keyframes fxTicker{to{transform:translateX(-50%)}}
@keyframes fxTravel{0%{right:100%;opacity:0}15%{opacity:1}85%{opacity:1}100%{right:-2px;opacity:0}}

@media(max-width:640px){.ticker{padding:16px 0}.ticker span{gap:24px;padding-right:24px}.fx .reveal{transform:translateY(30px)}}
@media(prefers-reduced-motion:reduce){.ticker__track,.hero::before,.science-section::before,.contact-section::before{animation:none}.scroll-progress{display:none}}
