  /* Creato Display — the Vertevance brand face, self-hosted (SIL OFL) */
  @font-face{font-family:"Creato Display";src:url("/assets/creato-regular.woff") format("woff");font-weight:400;font-style:normal;font-display:swap}
  @font-face{font-family:"Creato Display";src:url("/assets/creato-medium.woff") format("woff");font-weight:500;font-style:normal;font-display:swap}
  @font-face{font-family:"Creato Display";src:url("/assets/creato-bold.woff") format("woff");font-weight:700;font-style:normal;font-display:swap}

  /* This page commits to one look: a dark violet ground, the same in every
     viewer theme. Every colour is painted explicitly so nothing borrows the
     host background. */
  :root{
    color-scheme:dark;

    --base:#0a0520;      /* page ground            */
    --layer-1:#100927;   /* alternating sections   */
    --layer-2:#170e36;   /* cards                  */
    --layer-2-rgb:23,14,54;  /* the same, for vignettes that need an alpha */
    --layer-3:#1e1446;   /* raised / feature       */

    --ink:#f4f0fd;
    --ink-2:#c9bde8;
    --muted:#9b8dc2;
    --faint:#7a6da0;

    --line:rgba(255,255,255,.11);
    --line-soft:rgba(255,255,255,.06);
    --line-bright:rgba(255,255,255,.2);

    --g1:#3b46f5;
    --g2:#8e33fb;
    --g3:#c93cff;
    --accent:#b884ff;

    --display:"Fraunces",Georgia,"Times New Roman",serif;
    --body:"Creato Display","Helvetica Neue",Arial,sans-serif;
    --measure:62ch;
    --gutter:clamp(20px,5vw,60px);

    --r-lg:16px;
    --r-md:12px;
    --r-sm:9px;

    /* One easing and one set of durations for every hover on the page.

       The curve is eased at both ends rather than launching from the first
       frame — a fast-start ease-out reads as a flinch on a card that is only
       lifting a couple of pixels. And the durations sit close together on
       purpose: most hovers move a transform, a border and a shadow at once,
       and when those run at noticeably different speeds the one movement
       arrives in pieces, which is what made them feel unsettled. */
    --ease:cubic-bezier(.32,.04,.18,1);
    --t-fast:.46s;
    --t:.56s;
    --t-slow:.84s;
    --t-xslow:1.25s;
    --ease-soft:cubic-bezier(.4,.1,.25,1);
    /* the team band's dissolve: long, and eased at both ends so neither the
       start nor the settle has a visible edge */
    --t-cross:1.8s;
    --ease-cross:cubic-bezier(.45,.02,.25,1);
    /* arriving: slower than a hover and eased out hard, so blocks settle
       rather than snap — one curve for every reveal on the page */
    --t-reveal:.78s;
    --ease-reveal:cubic-bezier(.22,.68,.28,1);
  }

  *{box-sizing:border-box}
  body{
    margin:0;
    background:var(--base);
    color:var(--ink);
    font-family:var(--body);
    font-size:16px;
    line-height:1.62;
    -webkit-font-smoothing:antialiased;
    /* touch now has its own deliberate :active styling (see the "Touch
       equivalent" block) on everything that used to only have :hover, so
       the browser's own default grey tap-flash is switched off globally —
       otherwise every press would show both the native flash and our
       custom one at once. */
    -webkit-tap-highlight-color:transparent;
  }
  a{color:inherit}
  img{display:block;max-width:100%}
  :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}
  .wrap{width:100%;max-width:1200px;margin-inline:auto;padding-inline:var(--gutter)}

  h1,h2,h3.d{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;letter-spacing:-.014em}

  /* a whisper of grain, so the large dark fields don't band */
  body::after{
    content:"";position:fixed;inset:0;z-index:9;pointer-events:none;opacity:.05;
    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='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* ---------- logo: brand mark as a mask, wordmark as live type ---------- */
  /* flex-shrink:0 matters as soon as nav can no longer fit beside it at its
     natural width — without it, the logo was the only flexible party in
     the masthead's flex row and took the squeeze instead of nav, and since
     the lockup image has a fixed height with width:auto, a squeezed box
     forced its rendered width narrower than its height-correct width: a
     visibly squashed mark. Nav is the side that should give way (it already
     knows how to scroll), never the logo. */
  .logo{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);flex-shrink:0}
  .logo .mark{
    width:46px;height:40px;flex:none;
    background:linear-gradient(108deg,var(--g1) 0%,var(--g2) 50%,var(--g3) 100%);
    -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
    mask:url("/assets/mark-mask.png") center/contain no-repeat;
  }
  .logo .word{display:block;line-height:1}
  .logo .word b{display:block;font-weight:700;font-size:23px;letter-spacing:-.022em}
  .logo .word i{display:block;font-style:normal;font-weight:400;font-size:17px;margin-top:2px;letter-spacing:-.006em;color:var(--ink-2)}
  .logo .mark{transition:filter var(--t-slow) var(--ease),transform var(--t) var(--ease)}
  .logo .mark{background-size:260% 100%;background-position:0% 50%}
  
  @keyframes markSweep{
    0%{background-position:0% 50%}
    55%{background-position:100% 50%}
    100%{background-position:0% 50%}
  }
  .logo::after{
    content:"";position:absolute;left:-9px;top:50%;width:64px;height:58px;
    transform:translateY(-50%) scale(.7);border-radius:50%;pointer-events:none;opacity:0;
    background:radial-gradient(closest-side,rgba(201,60,255,.5),transparent 72%);
    transition:opacity var(--t) var(--ease),transform var(--t) var(--ease);
  }
  .logo{position:relative}
  

  /* the masthead sits on a solid brand-blue field now rather than the dark
     glass every other surface uses, so its own logo is the flat white
     lockup asset rather than the gradient-mask mark + live type — a
     gradient mark would fight the blue instead of sitting on it, and the
     wordmark's ink colour assumes a dark ground. The footer keeps the
     original mark+word treatment; only the header swaps. */
  .logo--lockup img{display:block;height:34px;width:auto;transition:transform var(--t) var(--ease),filter var(--t) var(--ease)}
  
  .logo--lockup::after{display:none}


  /* ---------- product imagery ----------
     Every render is cut out to transparency, so each one sits on the same
     ground with a violet bloom behind it. To swap: replace the file with
     another cut-out of roughly the same proportion. */
  .shot{position:relative;margin:0}
  .shot .stage>img,.shot>img{
    will-change:transform,filter;backface-visibility:hidden;transform-origin:50% 52%;
    transform:scale(.925);
    transition:transform var(--t-slow) var(--ease),filter var(--t-slow) var(--ease);
  }
  
  .shot .stage::before{transition:box-shadow var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
  
  .shot>img{width:100%;height:auto;filter:drop-shadow(0 30px 60px rgba(0,0,0,.6))}
  .dial-feature .shot::before{display:none}
  .shot::before{
    content:"";position:absolute;z-index:-1;inset:4% -10% -6% -10%;border-radius:50%;
    background:radial-gradient(closest-side,rgba(201,60,255,.32),rgba(201,60,255,0) 72%);
  }
  figcaption{
    margin-top:14px;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
    font-style:italic;font-weight:400;font-size:13.5px;letter-spacing:0;
    color:var(--faint);text-align:center;
  }

  /* the hero render sits on a staging dial — a hairline ring with degree ticks,
     borrowed from the geometry of the mark rather than added as another image */
  .stage{position:relative;aspect-ratio:1;display:grid;place-items:center;isolation:isolate}
  .stage::before,.stage::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
  .stage::before{
    inset:4%;
    border:1px solid rgba(255,255,255,.13);
    background:radial-gradient(closest-side,rgba(201,60,255,.26),rgba(142,51,251,.08) 58%,transparent 72%);
  }
  .stage::after{
    inset:4%;
    background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.34) 0deg .45deg,transparent .45deg 7.5deg);
    -webkit-mask:radial-gradient(closest-side,transparent 0 92.5%,#000 93% 100%);
    mask:radial-gradient(closest-side,transparent 0 92.5%,#000 93% 100%);
  }
  .stage>img{position:relative;z-index:1;width:95%;height:auto;filter:drop-shadow(0 34px 62px rgba(0,0,0,.66))}
  .stage--tall>img{width:85%}

  /* ---------- masthead + hero ---------- */
  .top{position:relative;overflow:hidden;isolation:isolate;background:var(--base)}
  .top::before,.top::after{content:"";position:absolute;z-index:-1;border-radius:50%;pointer-events:none}
  /* corner light, not a spotlight: pulled well back into the corners and
     scaled down so neither wash reaches the render sitting in the middle
     of the hero — a large, plainly-circular bloom drifting and swelling
     right behind the product image read as a stray shape wandering
     across it rather than atmosphere. Static and understated instead,
     the way depth is usually added to a dark hero: felt at the edges,
     not seen as an object. */
  .top::before{right:-22%;top:-58%;width:46%;aspect-ratio:1;background:radial-gradient(circle,rgba(201,60,255,.22),rgba(201,60,255,0) 68%)}
  .top::after{left:-24%;bottom:-64%;width:40%;aspect-ratio:1;background:radial-gradient(circle,rgba(59,70,245,.2),rgba(59,70,245,0) 68%)}

  /* the narrow professional-use strip that sits above everything else — kept
     unobtrusive on purpose, a single line rather than a banner */
  .util{background:var(--layer-1);border-bottom:1px solid var(--line-soft)}
  .util .wrap{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;justify-content:space-between;padding-block:9px;font-size:12.5px;color:var(--muted)}
  .util a{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);text-decoration:none;font-weight:500;white-space:nowrap;transition:color var(--t-fast) var(--ease)}
  
  .util a span{transition:transform var(--t) var(--ease)}
  

  .masthead{
    position:sticky;top:env(safe-area-inset-top,0px);z-index:30;
    background:linear-gradient(90deg,var(--g1) 0%,var(--g2) 100%);
    border-bottom:1px solid rgba(255,255,255,.14);
  }
  .masthead .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;padding-block:14px}
  nav{display:flex;gap:26px;align-items:center}
  nav a{font-size:14px;color:var(--ink-2);text-decoration:none;padding-block:5px;white-space:nowrap;transition:color var(--t-fast) var(--ease)}
  
  /* the header's own nav sits on the new solid brand-blue field rather
     than the near-black ground var(--ink-2) was tuned for, where it read
     as a soft, receded secondary tone. On blue that same tone loses too
     much contrast to read comfortably at rest, so it lightens here only;
     every other nav — the pathway tabs, the masthead on every other
     surface (there is only one) — is unaffected since this is scoped to
     .masthead specifically. */
  .masthead nav a{color:rgba(255,255,255,.82)}
  /* the masthead's own nav underline: fully re-declared rather than
     patched, so it can't inherit anything from the generic "wipes in on
     hover" component every other nav (footer, pathway tabs) still uses.
     Two things that component does are wrong specifically here: its
     colour is the brand blue-to-purple gradient, which all but
     disappears into the masthead's own blue/purple field; and it reveals
     itself with `transform:scaleX()` from a `border-radius`ed bar, which
     — because the corner radius scales down along with the bar during
     the animation — reads as the line tapering to a point at each end
     while it wipes in, rather than the same-thickness bar simply getting
     longer. Growing the `width` instead keeps the bar's own height fixed
     throughout, so it draws in left-to-right at one constant thickness
     and stays that way — no thinning, no taper, on the way in or at
     rest. */
  .masthead nav a:not(.btn)::after{
    left:0;right:auto;width:0;height:2.5px;background:#fff;
    transform:none;transition:width var(--t) var(--ease);
  }
  .masthead nav a.is-active{color:#fff}
  /* the page you're actually on needs this same line permanently drawn
     in, not just on hover — arriving should look like the hover wipe
     simply finished and stayed, at the same width, weight and colour,
     on every page you land on. */
  .masthead nav a.is-active:not(.btn)::after{
    left:0;right:auto;width:100%;height:2.5px;bottom:0;background:#fff;transform:none;
  }
  @media (hover:hover) and (pointer:fine){
    .masthead nav a:not(.btn):hover::after{width:100%}
  }
  .masthead nav a:not(.btn):focus-visible::after,
  .masthead nav a:not(.btn):active::after{width:100%}
  /* below 940px the full nav plus the HCP pill no longer fit next to the
     logo at natural width. Nav becomes the side that gives way — a
     scrollable, fade-masked strip with the full link set (still reachable,
     just a swipe away) and a taller tap target — rather than the logo
     being squeezed by the flex row, which is what used to happen (and is
     also why it looked squashed). Live from 940px down, not just on
     phones, so an iPad in portrait gets the same treatment as a phone
     instead of a narrower non-scrolling nav that could still crowd the
     logo. */
  @media (max-width:940px){
    nav{gap:18px;overflow-x:auto;-webkit-overflow-scrolling:touch;
        scrollbar-width:none;margin-left:auto;max-width:60vw;
        -webkit-mask:linear-gradient(90deg,#000 84%,transparent);
        mask:linear-gradient(90deg,#000 84%,transparent)}
    nav::-webkit-scrollbar{display:none}
    nav .hide-md{display:inline}
    nav a{padding-block:12px}          /* a 44px-tall target, not 32 */
  }
  @media (max-width:560px){
    /* one more notch down for the logo itself: at phone widths the lockup
       at its tablet/desktop size left the header feeling tight against
       the nav strip beside it. A touch shorter, and the masthead's own
       vertical padding eases slightly with it, so the whole bar reads as
       sized for a phone rather than a shrunk-down desktop bar. */
    .logo--lockup img{height:29px}
    .masthead .wrap{padding-block:11px}
    nav{gap:14px;max-width:54vw}
  }
  .hcp-btn{padding:10px 18px;font-size:13.5px;flex:none}
  @media (max-width:640px){ .hide-sm{display:none} }

  .hero .wrap{
    display:grid;grid-template-columns:minmax(0,1.24fr) minmax(0,.76fr);
    gap:clamp(24px,5vw,64px);align-items:center;
    padding-block:clamp(54px,8vw,100px) clamp(44px,6vw,78px);
  }
  .eyebrow{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-style:italic;font-weight:400;font-size:16px;letter-spacing:0;color:var(--muted);margin:0 0 18px}
  h1{font-size:clamp(34px,4.7vw,56px);line-height:1.04;font-weight:600;margin:0 0 22px;text-wrap:balance}
  h1 em{font-style:italic;font-weight:400;background:linear-gradient(100deg,var(--g3),#f1b6ff);-webkit-background-clip:text;background-clip:text;color:transparent}
  .lede{font-size:clamp(16px,1.5vw,18.5px);color:var(--ink-2);max-width:var(--measure);margin:0 0 30px}
  .dial-feature .shot{max-width:460px;margin-inline:auto}
  @media (max-width:880px){
    .hero .wrap{grid-template-columns:1fr}
    .dial-feature .shot{max-width:300px;margin-top:10px}
  }

  .actions{display:flex;flex-wrap:wrap;gap:12px}
  .btn{
    display:inline-flex;align-items:center;gap:10px;font-size:15px;font-weight:500;
    text-decoration:none;padding:14px 26px;border-radius:11px;border:1px solid transparent;
    transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
  }
  .btn .arw{display:inline-block;transition:transform var(--t) var(--ease);font-size:1.05em;line-height:1}
  
  .btn-primary{background:linear-gradient(100deg,var(--g1),var(--g2) 56%,var(--g3));color:#fff;box-shadow:0 10px 30px -14px rgba(201,60,255,.95),inset 0 1px 0 rgba(255,255,255,.3)}
  
  .btn-line{border-color:var(--line-bright);color:var(--ink);background:rgba(255,255,255,.025)}
  
  @media (prefers-reduced-motion:reduce){  }@media (prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){.btn:hover{transform:none}}

  .facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--layer-1)}
  .facts .wrap{display:flex;flex-wrap:wrap;gap:12px 44px;padding-block:18px;font-size:13.5px;color:var(--muted)}
  .facts span{display:inline-flex;align-items:center;gap:10px}
  .facts span::before{content:"";width:6px;height:6px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--g1),var(--g3))}

  /* ---------- section frame ---------- */
  section{padding-block:clamp(54px,7vw,92px);position:relative}
  .alt{background:var(--layer-1);border-block:1px solid var(--line-soft)}
  /* heading and note share one grid so every note starts on the same line
     down the whole page, instead of drifting to each section's right edge */
  .sec-head{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:40px;align-items:start}
  @media (min-width:860px){
    .sec-head{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,64px);align-items:baseline}
  }
  h2{font-size:clamp(25px,3.2vw,36px);line-height:1.12;margin:0;font-weight:600;text-wrap:balance}
  .sec-note{
    position:relative;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
    font-style:italic;font-weight:400;font-size:16px;line-height:1.5;
    color:var(--muted);margin:0;max-width:44ch;padding-left:20px;
  }
  .sec-note::before{
    content:"";position:absolute;left:0;top:.35em;bottom:.35em;width:2px;border-radius:2px;
    background:linear-gradient(180deg,var(--g1),var(--g3));opacity:.75;
  }
  .sec-lede{font-size:17px;color:var(--ink-2);max-width:60ch;margin:-18px 0 36px}

  h3.d{font-weight:600;font-size:19px;margin:0 0 10px}

  /* culture statement — no image, no cards, on purpose. A quiet editorial
     field with generous whitespace, holding one idea rather than illustrating
     it, right after the hero where it sets the tone for everything after. */
  .culture-stmt{text-align:center;padding-block:clamp(60px,9vw,108px)}
  .culture-stmt .wrap{max-width:760px}
  .culture-eyebrow{
    font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
    font-style:italic;font-weight:400;font-size:15px;color:var(--muted);margin:0 0 14px;
  }
  .culture-stmt h2{margin:0 0 20px}
  .culture-stmt p:not(.culture-eyebrow){font-size:18px;line-height:1.62;color:var(--ink-2);margin:0 auto;max-width:58ch}

  /* The brain and the spine — the two systems this company supplies, and the
     only picture on the page that is honestly about the range rather than
     about people. Two layers in exact register: the cool one the page rests
     on, and a warmer, busier one that comes up under the cursor, so the
     hover is a change of temperature and never a change of shape. */
  .team{position:relative;max-width:940px;margin:0 auto clamp(30px,4vw,54px);isolation:isolate}

  /* Nothing moves and nothing resizes. The colour is the whole animation.

     The cool layer stays fully opaque underneath from beginning to end, and the
     warm one simply fades in over it. Fading the two against each other — one
     down while the other came up — put a dip in the middle of the crossfade
     where neither was solid, which is what made it feel like a switch rather
     than a flood. Held this way there is no point at which the band is dimmer
     than it starts or ends. */
  .team img{display:block;width:100%;height:auto}

  /* The band does not react. It is a picture, not a control — the colour and
     the movement belong to the three cards under it, which are the things
     there is any reason to point at. */

  /* Pillars — the picture above, continued.
     
     The three cards carry the band's own colours, sampled off it rather than
     guessed: the warm amber burning along the left of the brain, the pink
     through the top of the spine, and the blue its base falls away into. Read
     left to right they run the same sweep the picture does, so the section
     holds together as one thing rather than an image with three boxes under
     it. Each card's rule, watermark, label, heading, border and glow all come
     from its own pair, which is why hovering one lights it in a colour you
     have already seen directly above it. */
  .pillars{display:grid;grid-template-columns:repeat(auto-fit,minmax(262px,1fr));gap:14px}
  .pillar{
    --c1:#ff8a3d;--c2:#ff4d7d;          /* amber into rose — the brain's warm side */
    position:relative;overflow:hidden;padding:30px 26px 32px;
    background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);
    transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease),
               box-shadow var(--t) var(--ease);
  }
  .pillar:nth-child(2){--c1:#ff4d9e;--c2:#a84dff}   /* pink into violet */
  .pillar:nth-child(3){--c1:#6b4dfb;--c2:#3da5ff}   /* violet into the spine's blue */
  .pillar>*{position:relative;z-index:2}
  .pillar::before{
    content:"";position:absolute;inset:0 0 auto 0;height:3px;
    background:linear-gradient(90deg,var(--c1),var(--c2));
    transition:height var(--t) var(--ease),filter var(--t) var(--ease);
  }
  
  .pillar::after{
    content:"";position:absolute;right:-26px;bottom:-30px;width:150px;height:130px;z-index:0;
    background:linear-gradient(140deg,var(--c1),var(--c2));opacity:.08;
    -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
    mask:url("/assets/mark-mask.png") center/contain no-repeat;
    transition:opacity var(--t) var(--ease),transform var(--t) var(--ease);
  }
  /* the lift, and a bloom inside the card's own top edge — the warm light that
     used to come up over the band, moved to the thing worth pointing at */
  
  
  .pillar .tag{color:color-mix(in srgb,var(--c1) 62%,#ffffff)}
  .pillar h3{transition:color var(--t-fast) var(--ease)}
  
  .tag{display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--accent);margin-bottom:13px}
  .pillar .tag{padding-bottom:13px;border-bottom:1px solid var(--line)}
  .pillar h3{margin-bottom:11px}
  .pillar p{margin:0;color:var(--ink-2);font-size:15.5px}

  /* numbered sequence */
  .steps{position:relative;border-top:1px solid var(--line)}
  /* a spine running down the icon column, coloured through the brand ramp,
     with a pulse that travels it once every few seconds */
  .steps::before{
    content:"";position:absolute;left:22px;top:26px;bottom:26px;width:3px;border-radius:3px;z-index:0;
    background:linear-gradient(180deg,#4f5bff,#6b4dfb,#a83cfb,#c93cff,#e264ff);opacity:.3;
  }
  .steps::after{
    content:"";position:absolute;left:18px;width:11px;height:74px;border-radius:11px;z-index:0;
    background:radial-gradient(closest-side,rgba(233,216,255,.85),rgba(201,60,255,.35) 55%,transparent);
    animation:travel 7s cubic-bezier(.45,0,.55,1) infinite;
  }
  @keyframes travel{
    0%{top:0%;opacity:0}
    8%{opacity:1}
    88%{opacity:1}
    100%{top:92%;opacity:0}
  }
  .step{display:grid;grid-template-columns:46px 210px minmax(0,1fr);gap:clamp(14px,3vw,32px);padding-block:28px;border-bottom:1px solid var(--line);align-items:start}
  .stepicon{
    position:relative;z-index:1;width:46px;height:46px;flex:none;border-radius:13px;
    display:grid;place-items:center;background:var(--layer-1);
    border:1px solid color-mix(in srgb,var(--c,#b884ff) 45%,transparent);
    box-shadow:0 0 0 5px var(--layer-1),0 0 18px -6px color-mix(in srgb,var(--c,#b884ff) 70%,transparent);
    transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),transform var(--t) var(--ease),box-shadow var(--t-fast) var(--ease);
  }
  .stepicon svg{width:23px;height:23px;fill:none;stroke:var(--c,var(--accent));stroke-width:1.6;
                stroke-linecap:round;stroke-linejoin:round;
                transition:stroke var(--t-fast) var(--ease),transform var(--t) var(--ease)}
  .stepicon b{
    position:absolute;right:-5px;bottom:-6px;font-family:var(--display);
    font-variation-settings:"SOFT" 0,"WONK" 0;font-size:11px;font-weight:600;
    font-variant-numeric:tabular-nums;color:var(--faint);
    background:var(--layer-1);padding:0 4px;border-radius:5px;line-height:1.5;
    transition:color var(--t-fast) var(--ease);
  }
  
  

  /* each icon has one moving part, idling slowly and quickening on hover */
  .stepicon .ink{stroke-dasharray:14;stroke-dashoffset:14;animation:inkdraw 5s ease-in-out infinite}
  .stepicon .steam{animation:steam 3.6s ease-in-out infinite}
  .stepicon .rays{animation:rays 3.2s ease-in-out infinite}
  .stepicon .bars{animation:bars 3.4s ease-in-out infinite}
  .stepicon .star{transform-origin:12px 12px;animation:twinkle 4.2s ease-in-out infinite}
  .stepicon .spark{transform-origin:20px 5px;animation:spark 4.2s ease-in-out infinite}
  @keyframes inkdraw{0%,12%{stroke-dashoffset:14}38%,78%{stroke-dashoffset:0}100%{stroke-dashoffset:14}}
  @keyframes steam{0%,100%{opacity:.35;transform:translateY(1.2px)}50%{opacity:1;transform:translateY(-1.2px)}}
  @keyframes rays{0%,100%{opacity:.35}50%{opacity:1}}
  @keyframes bars{0%,100%{opacity:.4}45%{opacity:1}}
  @keyframes twinkle{0%,100%{transform:scale(1)}50%{transform:scale(1.07)}}
  @keyframes spark{0%,72%,100%{opacity:0}82%{opacity:1}}
  
  
  
  .step h3{transition:color var(--t-fast) var(--ease)}
  
  .step{position:relative;transition:background var(--t-fast) var(--ease)}
  .step::before{
    content:"";position:absolute;inset:0 -18px;z-index:-1;border-radius:14px;opacity:0;
    background:linear-gradient(90deg,color-mix(in srgb,var(--c) 16%,transparent),transparent 62%);
    transition:opacity var(--t) var(--ease);pointer-events:none;
  }
  
  .step h3{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:19px;margin:0;letter-spacing:-.012em}
  .step p{margin:0;color:var(--ink-2);font-size:15.5px;max-width:64ch}
  @media (max-width:740px){
    .step{grid-template-columns:46px minmax(0,1fr);gap:12px 16px}
    .step p{grid-column:2}
  }

  /* boundary list — a rule to the left says "this is a limit" */
  .bounds{display:grid;grid-template-columns:1fr;gap:14px}
  .bounds div{position:relative;background:var(--layer-2);padding:26px 26px 26px 30px;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
  .bounds div::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--g1),var(--g3))}
  .bounds h3{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:17.5px;margin:0 0 9px}
  .bounds p{margin:0;font-size:14.5px;color:var(--ink-2)}

  .two{grid-template-columns:1fr}
  @media (min-width:820px){ .bounds,.two{grid-template-columns:repeat(2,minmax(0,1fr))} }

  /* portfolio */
  .range{display:grid;grid-template-columns:repeat(auto-fit,minmax(278px,1fr));gap:14px}
  .range article{background:var(--layer-2);padding:28px 26px 30px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-lg)}
  .range p{margin:0 0 15px;font-size:14.5px;color:var(--ink-2)}
  .range ul{margin:0;padding:0;list-style:none;display:grid;gap:7px}
  .range li{font-size:13.5px;color:var(--muted);padding-left:23px;position:relative}
  .range li::before{
    content:"";position:absolute;left:0;top:.46em;width:12px;height:10px;
    background:linear-gradient(110deg,var(--g1),var(--g3));
    -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
    mask:url("/assets/mark-mask.png") center/contain no-repeat;
  }

  .ind{margin:18px 0 0;margin-top:auto;font-size:13.5px;color:var(--muted);padding-top:14px;border-top:1px solid var(--line-soft)}
  .ind b{color:var(--ink-2);font-weight:500}
  .path-cta{
    margin-top:16px;padding-top:0;display:inline-flex;align-items:center;gap:7px;
    font-size:13.5px;font-weight:500;color:var(--accent);text-decoration:none;
  }
  .path-cta span{transition:transform var(--t) var(--ease)}
  

  /* kit table */
  .kits{margin-top:32px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--layer-2);padding:28px clamp(20px,3vw,32px)}
  .kits-note{margin:0 0 22px;font-size:14.5px;color:var(--muted);max-width:72ch}
  .tscroll{overflow-x:auto}
  .kits table{width:100%;border-collapse:collapse;font-size:14.5px;min-width:460px}
  .kits th,.kits td{text-align:left;padding:11px 16px 11px 0;border-bottom:1px solid var(--line-soft);vertical-align:top}
  .kits thead th{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:12.5px;letter-spacing:.01em;color:var(--accent);font-weight:600;border-bottom:1px solid var(--line)}
  .kits tbody th{font-weight:500;color:var(--ink);padding-right:30px}
  .kits tbody td{color:var(--ink-2)}
  .kits tbody tr:last-child th,.kits tbody tr:last-child td{border-bottom:0}

  /* patient-specific workflow — eight stages, read left to right like the
     rest of a process, not illustrated as a system diagram */
  .psi-stages{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
  .psi-stages li{
    display:flex;align-items:center;gap:10px;padding:13px 20px 13px 16px;
    background:var(--layer-2);border:1px solid var(--line);border-radius:999px;
    font-size:14.5px;color:var(--ink-2);
    transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
  }
  .psi-stages b{
    display:grid;place-items:center;width:26px;height:26px;flex:none;border-radius:50%;
    font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:11.5px;font-weight:600;
    color:#fff;background:linear-gradient(135deg,var(--g1),var(--g3));
  }
  
  @media (max-width:560px){ .psi-stages li{padding:11px 16px 11px 12px;font-size:13.5px} }

  /* chain of accountability */
  .chain{list-style:none;margin:0;padding:0}
  .chain li{position:relative;padding:0 0 32px 36px;border-left:1px solid var(--line)}
  .chain li:last-child{border-left-color:transparent;padding-bottom:4px}
  .chain li::before{
    content:"";position:absolute;left:-7px;top:6px;width:13px;height:13px;border-radius:50%;
    background:linear-gradient(135deg,var(--g1),var(--g3));box-shadow:0 0 0 5px var(--layer-1);
  }
  .chain-step{display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--accent);margin-bottom:8px}
  .chain h3{margin:0 0 8px}
  .chain p{margin:0;color:var(--ink-2);font-size:15.5px;max-width:72ch}
  .chain-foot{margin:6px 0 0;padding-left:36px;color:var(--muted);font-size:14.5px;max-width:72ch}
  @media (max-width:520px){
    .chain li{padding-left:26px}
    .chain-foot{padding-left:26px}
  }

  /* component strip */
  .parts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-top:14px}
  .parts figure{
    margin:0;background:var(--layer-3);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 20px 22px;
    display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:8px;
  }
  .parts .ph{height:150px;display:grid;place-items:center;width:100%}
  .parts img{max-height:150px;width:auto;filter:drop-shadow(0 12px 26px rgba(0,0,0,.55))}
  .parts figcaption{margin-top:4px;letter-spacing:.11em;color:var(--muted)}

  .growth{position:relative;margin-top:14px;border:1px solid var(--line);border-radius:var(--r-lg);
          background:var(--layer-2);padding:28px clamp(26px,3vw,38px);overflow:hidden}
  .growth::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--g1),var(--g3))}
  /* No measure on this one. It is one wide card rather than a column, so
     capping the line length left the text stopping well short of the right
     edge while the left sat tight against the padding — which reads as the
     card being misaligned rather than as a comfortable line length. */
  .growth p{margin:0;color:var(--ink-2);font-size:15.5px}

  /* feature band */
  .feature{position:relative;overflow:hidden;isolation:isolate;background:var(--layer-3);border-block:1px solid var(--line)}
  .feature::before{content:"";position:absolute;z-index:-1;right:-6%;top:-80%;width:86%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(201,60,255,.26),rgba(201,60,255,.08) 42%,rgba(201,60,255,0) 70%);pointer-events:none}
  .feature .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,6vw,76px);align-items:center;padding-block:clamp(50px,7vw,88px)}
  .feature h2{margin-bottom:18px}
  .feature p{color:var(--ink-2);margin:0 0 16px;max-width:52ch}
  .feature p:last-of-type{margin-bottom:0}
  .feature .shot{max-width:400px;margin-inline:auto}
  .feature .shot::before{display:none}
  @media (max-width:820px){
    .feature .wrap{grid-template-columns:1fr}
    .feature .shot{max-width:280px}
  }

  /* generic 3/4-up card grid */
  .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:14px}
  .grid div{background:var(--layer-2);padding:27px 25px;border:1px solid var(--line);border-radius:var(--r-lg)}
  .grid h3{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:17.5px;margin:0 0 9px}
  .grid p{margin:0;font-size:14.5px;color:var(--ink-2)}

  /* commitment + signed statement */
  .commit{
    /* the one warm room in the building — amber and rose in place of the blues */
    --g1:#ff7a4d; --g2:#ff5f9e; --g3:#d05cff;
    background:#241349;
  }
  .commit::before{background:radial-gradient(circle,rgba(255,122,77,.26),rgba(255,95,158,.14) 42%,rgba(255,95,158,0) 70%)}
  .commit .wrap{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(30px,5vw,70px);align-items:start;padding-block:clamp(50px,7vw,88px)}
  .vows{display:grid;gap:12px;margin-top:28px}
  .vow{
    position:relative;padding:17px 22px 18px 44px;
    background:linear-gradient(122deg,rgba(255,146,104,.05),rgba(255,255,255,.014) 70%);
    border:1px solid rgba(255,172,136,.13);border-radius:var(--r-lg);
    transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
  }
  .vow>*{position:relative;z-index:1}
  .vow::after{
    content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;opacity:0;
    pointer-events:none;transition:opacity var(--t) var(--ease);
    background:linear-gradient(118deg,rgba(59,70,245,.34),rgba(201,60,255,.30));
  }
  
  
  .vow::before{z-index:2;transition:filter var(--t-slow) var(--ease),transform var(--t) var(--ease)}
  
  .vow::before{
    content:"";position:absolute;left:19px;top:24px;width:12px;height:10px;opacity:.85;
    background:linear-gradient(110deg,var(--g1),var(--g3));
    -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
    mask:url("/assets/mark-mask.png") center/contain no-repeat;
  }
  .vow h3{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:18px;margin:0 0 6px;letter-spacing:-.012em;color:#f6e7de}
  .vow p{margin:0;font-size:14.8px;color:#cfc2d8;max-width:52ch}
  .note{background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(26px,3vw,36px)}
  .note p{margin:0 0 16px;color:var(--ink-2);font-size:16px}
  .note p:first-child{font-size:17.5px;color:var(--ink)}
  .sig{margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
  .sig b{display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-style:italic;font-weight:400;font-size:27px;letter-spacing:-.01em;color:var(--ink)}
  .sig span{display:block;margin-top:5px;font-size:13.5px;color:var(--faint)}
  /* The founder's statement is a card and nothing more — it used to turn over
     to a photograph, which made the one piece of plain writing on the page into
     something to be played with. Now it only lifts: a few pixels up and a
     fraction of a degree out of square, enough to register under the cursor
     and not enough to be a trick. */
  .note-flip{-webkit-tap-highlight-color:transparent}
  .note-flip .note{
    will-change:transform;
    transition:transform var(--t-slow) var(--ease),
               box-shadow var(--t) var(--ease),
               border-color var(--t-fast) var(--ease);
  }
  
  @media (prefers-reduced-motion:reduce){
    
  }@media (prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){.note-flip:hover .note{transform:none}}
  @media (max-width:840px){ .commit .wrap{grid-template-columns:1fr} }

  /* .portrait{width:100%;height:auto;margin-bottom:22px;filter:grayscale(.15) contrast(1.04)} */

  /* the photograph slot — deliberately marked, meant to be replaced */
  .human{display:grid;gap:16px}
  .portrait{width:100%;height:auto;border-radius:var(--r-lg);border:1px solid var(--line);filter:contrast(1.03) saturate(.96)}
  .scene{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
         transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),transform var(--t) var(--ease)}
  .scene svg{width:100%;height:auto;display:block;
             filter:saturate(.82) brightness(.96);transition:filter var(--t-slow) var(--ease)}
  /* restrained on hover: it sits directly above the statement card, and the two
     competing for attention was the problem */
  
  
  .scene svg{transform-origin:50% 60%;will-change:transform,filter;backface-visibility:hidden;transition:filter var(--t-slow) var(--ease),transform var(--t) var(--ease)}

  /* the scene is alive at rest: the lamp breathes, the traces draw, the drip falls */
  .scene .lampwash{animation:lampPulse 6.5s ease-in-out infinite}
  .scene .cone{animation:conePulse 6.5s ease-in-out infinite}
  .scene .cell{animation:cellPulse 6.5s ease-in-out infinite;animation-delay:var(--d,0s)}
  .scene .sheen{animation:sheenPulse 6.5s ease-in-out infinite}
  .scene .trace{stroke-dasharray:260;stroke-dashoffset:260;animation:draw 5s ease-in-out infinite}
  .scene .trace2{animation-delay:1.4s}
  .scene .drip{animation:drip 3.4s cubic-bezier(.5,0,.85,.6) infinite}
  @keyframes lampPulse{0%,100%{opacity:.8}50%{opacity:1}}
  @keyframes conePulse{0%,100%{opacity:.78}50%{opacity:1}}
  @keyframes cellPulse{0%,100%{opacity:.62}50%{opacity:1}}
  @keyframes sheenPulse{0%,100%{opacity:.5}50%{opacity:1}}
  @keyframes draw{
    0%{stroke-dashoffset:260}
    45%{stroke-dashoffset:0}
    80%{stroke-dashoffset:0;opacity:.75}
    100%{stroke-dashoffset:-260;opacity:.2}
  }
  @keyframes drip{0%{transform:translateY(0);opacity:0}12%{opacity:.9}70%{transform:translateY(48px);opacity:.9}86%,100%{transform:translateY(52px);opacity:0}}

  /* motion — a load-in for the hero, a slow turn on the dial, lift on hover.
     Nothing waits on a scroll observer, so the page is complete at rest. */
  @keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
  @keyframes turn{to{transform:rotate(360deg)}}
  @keyframes glow{0%,100%{opacity:.85}50%{opacity:1}}
  .hero .eyebrow,.hero h1,.hero .lede,.hero .actions,.dial-feature .shot{
    animation:rise .62s cubic-bezier(.2,.7,.3,1) both;
  }
  .hero .eyebrow{animation-delay:.04s}
  .hero h1{animation-delay:.10s}
  .hero .lede{animation-delay:.18s}
  .hero .actions{animation-delay:.26s}
  .dial-feature .shot{animation-delay:.16s}
  .stage::after{animation:turn 120s linear infinite;transform-origin:50% 50%}
  .stage::before{animation:glow 7s ease-in-out infinite}
  .range article,.grid div,.parts figure,.sidecard,.kits{
    transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease);
  }
  /* every card lifts, including the two that had the transition declared but
     no hover to trigger it — the kit table and the side panel */
  

  /* ── the closing statements ─────────────────────────────────────────────
     Three different places on the page: the note that ends the portfolio, the
     four limits the company sets itself, and the line that ends the about
     section. Different sections, but the same kind of thing — a position being
     taken rather than information being listed — and they already share the
     rule down their left edge, which is what marks them out.

     So the rule is what moves. It widens and brightens, the card lifts, and a
     little of its colour bleeds in from that edge, as though the statement is
     being underlined rather than the card being picked up. Everything else on
     the page lifts and stops; these three do one thing more, together. */
  .bounds div,.growth,.about .close{
    transition:transform var(--t) var(--ease),
               border-color var(--t-fast) var(--ease),
               box-shadow var(--t) var(--ease);
  }
  .bounds div::before,.growth::before,.about .close::before{
    transition:width var(--t) var(--ease),filter var(--t) var(--ease);
  }
  
  
  .parts img{backface-visibility:hidden;transition:transform var(--t) var(--ease)}
  
  .chain li::before{transition:box-shadow var(--t-fast) var(--ease)}
  

  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation:none!important;transition:none!important}
  }

  /* one pointer everywhere, filled with the brand ramp — only where there is
     a real cursor, so touch and assistive setups are untouched. */
  @media (hover:hover) and (pointer:fine){
    /* the fallback used to be "auto", which lets the browser fall back to
       its own contextual choice — over any selectable body text (every
       paragraph and heading on the site) that resolves to the native
       text-select "I" beam, replacing the custom cursor the instant the
       pointer is over copy rather than a link. "default" pins it to the
       plain arrow everywhere except the inputs explicitly given a text
       cursor below, so the custom cursor never gets silently swapped out. */
    body{cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACuklEQVR42q2TS0hUURzGv3POPfc1Mw4zzehYipojljUtkokyehhZYa7CoiKCIojIolZBURFRtGoZLYqgKI02rey1iAgShALJXARCL3qXOdPo3Ln3ntPCa2aOjoXf2ZzFOb//9z/f/wBjUgAyumeYIcX9es3KsQJjFf5VPp8WP1NevOOFyqJDOp+z02PR/4IGg4mQxkq+bFjSK5fNv5bhNGxprOQ0Ib87p9NleQepBOQ3aqdFomyH2biww+VK4BhDoD0ePlAEQEz3XX9XliCKKglF1kV1qMloWdRphXx1W/oHrtyNFjVWA3C9d50eEABUSWBKBlhpxPQavTXR6cwNb0x+TXc/CGoLVgNwCoU1AahLwAAHtYfhJ361tbYDydKDs1P2m9smr9hNQBwPSAq0DKgC0ASgC8CQDNyxwVxLaak8y5srz6s5kbkIEjpHQIV3hRR0aAhAk2QELBkMQcEc0LWxPcbeefecWXrFEa5E2qPRVf58TscDPXeaEB6QgLk20sP97ofUSxGgAa159omUwcJbfw683JUv/XGpqSDgUkAhBgDAlQ5UEHn5VVv67XBPDlIKhaqUQvksQZ567sSkDilsRFWK15mu7PXX+wdVAoS4QRoi2/w5d/B7SK9qcqls+Gn/qM8675941/IDBYQb4SXoG+zOXujfLru+XhUfhnpslUgsD21CsVFb/SnTW2VZb/uB7ynPnfw7FAYAlpXVfTx4iILq7e9OajmROS5k7r0kItkQapEmU2lO2Ox56n5kc93Rm31fHk1w9qcIAMVUK28wFvmmKrHDBAQmL633qZXpS4s/Wg9XSPdU3eMhnZdZPj43Ueh/j8auRM1kbHQvpSSEBO+sKd4n18XaHJOX2yYvvzULtYGpBnuyYWcAEDDiSwkNPwPMdo2Vrs9jYkqR/JM/smZK9G/XhfQLRE/ppaetrwwAAAAASUVORK5CYII=") 2 2,default}
    a,button,summary,[role="button"],.btn,.scene,.vow,.pillar,.range article,.parts figure,.step,
    .standard-card,.tenet,.gt-node,.handoff-link,.card-grid-item,.flow-step{
      cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAACuklEQVR42q2TS0hUURzGv3POPfc1Mw4zzehYipojljUtkokyehhZYa7CoiKCIojIolZBURFRtGoZLYqgKI02rey1iAgShALJXARCL3qXOdPo3Ln3ntPCa2aOjoXf2ZzFOb//9z/f/wBjUgAyumeYIcX9es3KsQJjFf5VPp8WP1NevOOFyqJDOp+z02PR/4IGg4mQxkq+bFjSK5fNv5bhNGxprOQ0Ib87p9NleQepBOQ3aqdFomyH2biww+VK4BhDoD0ePlAEQEz3XX9XliCKKglF1kV1qMloWdRphXx1W/oHrtyNFjVWA3C9d50eEABUSWBKBlhpxPQavTXR6cwNb0x+TXc/CGoLVgNwCoU1AahLwAAHtYfhJ361tbYDydKDs1P2m9smr9hNQBwPSAq0DKgC0ASgC8CQDNyxwVxLaak8y5srz6s5kbkIEjpHQIV3hRR0aAhAk2QELBkMQcEc0LWxPcbeefecWXrFEa5E2qPRVf58TscDPXeaEB6QgLk20sP97ofUSxGgAa159omUwcJbfw683JUv/XGpqSDgUkAhBgDAlQ5UEHn5VVv67XBPDlIKhaqUQvksQZ567sSkDilsRFWK15mu7PXX+wdVAoS4QRoi2/w5d/B7SK9qcqls+Gn/qM8675941/IDBYQb4SXoG+zOXujfLru+XhUfhnpslUgsD21CsVFb/SnTW2VZb/uB7ynPnfw7FAYAlpXVfTx4iILq7e9OajmROS5k7r0kItkQapEmU2lO2Ox56n5kc93Rm31fHk1w9qcIAMVUK28wFvmmKrHDBAQmL633qZXpS4s/Wg9XSPdU3eMhnZdZPj43Ueh/j8auRM1kbHQvpSSEBO+sKd4n18XaHJOX2yYvvzULtYGpBnuyYWcAEDDiSwkNPwPMdo2Vrs9jYkqR/JM/smZK9G/XhfQLRE/ppaetrwwAAAAASUVORK5CYII=") 2 2,pointer;
    }
    /* text inputs used to fall back to the browser's own black/white I-beam
       here ("cursor:text" with no image) — a different, unbranded cursor
       state that read as a leftover default rather than a deliberate one.
       This is the same custom-cursor treatment as the rest of the page, just
       drawn as a caret instead of an arrow, so every interactive surface
       uses one consistent, branded pointer family. */
    input,textarea,select{
      cursor:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAWCAYAAAD0OH0aAAAAWklEQVR4nGNgoDVghDGiqv//J6R4WSsjIxPZNiCDmAqEbUs6GFHUsGDTwPwXtw3YNfwjUQMTyTbQ3Ekk20C6H2juJNL9MPichC+U4Em3OZhwBqpdS0YGIhkAAM2MGkLqdv35AAAAAElFTkSuQmCC") 6 11,text;
    }
  }

  /* the records grid holds four blocks of uneven copy — two across, equal
     heights and a numbered rail keep it from reading lopsided.
     (.grid is declared later than .two, so this needs the extra specificity) */
  @media (min-width:800px){ .grid.two{grid-template-columns:repeat(2,minmax(0,1fr))} }
  .records div{position:relative;padding-left:58px;display:flex;flex-direction:column;justify-content:flex-start}
  .records div::before{
    counter-increment:rec;content:counter(rec,decimal-leading-zero);
    position:absolute;left:24px;top:27px;
    font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
    font-size:13px;font-weight:600;color:var(--accent);font-variant-numeric:tabular-nums;
  }
  .records div::after{
    content:"";position:absolute;left:25px;top:52px;bottom:26px;width:2px;border-radius:2px;
    background:linear-gradient(180deg,var(--g2),transparent);opacity:.45;
  }
  .records{counter-reset:rec}
  @media (max-width:560px){
    .records div{padding-left:48px}
    .records div::before{left:20px}
    .records div::after{left:21px}
  }

  /* images fade up as they decode. The class is added by script, so with no
     script the images simply render — nothing is parked invisible. */
  .fade-img{opacity:0}
  .fade-img.is-in{opacity:1}
  .fade-img{transition:opacity var(--t-slow) var(--ease)}

  /* about */
  .about{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(26px,5vw,62px);align-items:start}
  .about p{margin:0 0 16px;color:var(--ink-2);max-width:60ch}
  .about p:last-child{margin-bottom:0}
  .about .lead{font-size:18.5px;color:var(--ink);max-width:56ch}
  .about .close{
    position:relative;margin-top:26px;padding:20px 24px 20px 26px;
    font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-style:italic;
    font-size:18px;line-height:1.5;color:var(--ink);max-width:56ch;
    background:linear-gradient(122deg,rgba(255,146,104,.05),rgba(255,255,255,.014) 70%);
    border:1px solid rgba(255,172,136,.13);border-radius:var(--r-lg);overflow:hidden;
  }
  .about .close::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--g1),var(--g3))}
  .sidecard{position:relative;overflow:hidden}
  .sidecard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3))}
  .sidecard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--layer-2);padding:28px}
  .sidecard dl{display:grid;gap:17px;margin:0}
  .sidecard dt{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:12.5px;font-weight:600;letter-spacing:.01em;color:var(--accent);margin-bottom:5px}
  .sidecard dd{margin:0;font-size:15px}
  @media (max-width:780px){ .about{grid-template-columns:1fr} }

  /* the HCP acknowledgement gate — native <details>, so it needs no script and
     is keyboard-operable for free; the professional content sits inside it
     rather than behind a page a general visitor would otherwise land on */
  .hcp-gate{
    border:1px solid var(--line);border-radius:var(--r-lg);background:var(--layer-2);
    padding:6px clamp(20px,3vw,30px);overflow:hidden;
  }
  .hcp-gate summary{
    list-style:none;cursor:pointer;padding:22px 4px;display:flex;align-items:center;
    justify-content:space-between;gap:16px;font-family:var(--display);
    font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:17px;
  }
  .hcp-gate summary::-webkit-details-marker{display:none}
  .hcp-gate summary span{color:var(--accent);transition:transform var(--t) var(--ease);flex:none}
  .hcp-gate[open] summary span{transform:rotate(90deg)}
  
  
  .hcp-body{padding:6px 4px 28px;border-top:1px solid var(--line-soft);margin-top:2px}
  .hcp-body .grid{margin-top:20px}
  .hcp-sec .grid div{background:var(--layer-3)}

  /* contact */
  .band{position:relative;overflow:hidden;isolation:isolate;background:var(--layer-3);border-top:1px solid var(--line)}
  .band::before{content:"";position:absolute;z-index:-1;left:-10%;top:-66%;width:58%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(59,70,245,.34),rgba(59,70,245,0) 64%);pointer-events:none}
  /* the same wing-mark signature as the .phero bands and the footer,
     tucked into the opposite (bottom-right) corner here so the closing
     CTA band reads as another quiet instance of the same brand device,
     not a one-off */
  .band::after{
    content:"";position:absolute;z-index:-1;pointer-events:none;
    right:-8%;bottom:-58%;width:44%;aspect-ratio:1;
    background:linear-gradient(160deg,var(--g1),var(--g2) 55%,var(--g3));
    opacity:.06;
    -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
    mask:url("/assets/mark-mask.png") center/contain no-repeat;
  }
  .band-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,auto);gap:clamp(28px,6vw,76px);align-items:start}
  .band dl{margin:0;display:grid;gap:19px}
  .band dt{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:12.5px;font-weight:600;letter-spacing:.01em;color:var(--accent);margin-bottom:5px}
  .band dd{margin:0;font-size:16px}
  .band dd a{text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:2px;
             transition:color var(--t-fast) var(--ease)}
  
  @media (max-width:720px){ .band-grid{grid-template-columns:1fr} }

  .path-routes{display:grid;gap:10px;margin:28px 0 22px}
  .path-route{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:16px 20px;background:rgba(255,255,255,.03);border:1px solid var(--line);
    border-radius:var(--r-md);text-decoration:none;color:var(--ink);font-size:15px;font-weight:500;
    transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease);
  }
  .path-route span{transition:transform var(--t) var(--ease);color:var(--accent)}
  
  
  .notice{
    font-size:13.5px;color:var(--muted);max-width:56ch;margin:0 0 26px;padding:14px 18px;
    background:rgba(255,255,255,.03);border:1px solid var(--line-soft);border-radius:var(--r-sm);
  }
  .consent-note{font-size:13px;color:var(--faint);max-width:56ch;margin:16px 0 0}

  footer{background:var(--base);border-top:1px solid var(--line);color:var(--faint)}
  footer .wrap{padding-block:28px;display:flex;flex-wrap:wrap;gap:18px 30px;justify-content:space-between;align-items:center;font-size:13px}
  footer p{margin:0;max-width:64ch}
  .foot-nav{display:flex;flex-wrap:wrap;gap:10px 22px}
  .foot-nav a:not(.logo){font-size:13px;color:var(--muted);text-decoration:none;transition:color var(--t-fast) var(--ease)}
  

  /* ── motion ────────────────────────────────────────────────────────────────
     One language for the whole page, so the movement reads as a system rather
     than as a collection of effects.

     Arriving: everything of substance rises sixteen pixels into place on one
     curve, staggered within its own group. The class that hides it is added by
     script and only then, so a page with no script — or one where the observer
     never fires — simply shows everything. Nothing is ever parked invisible by
     the stylesheet itself.

     Responding: a gradient rule wipes in under any link, cards lift, and
     anything that can be pressed moves on the same two durations. Sections
     people are meant to work through — the sequence, the feature, the
     commitments — carry a little more than the ones they only read. */
  /* The arrival moves `translate`, not `transform`.
     
     It used `transform` first, and that quietly broke every hover on the page
     that lifts a card. `.rise.seen` sets the transform back to none, it has
     the same specificity as `.pillar:hover`, and it is declared later — so it
     won, and the cards stopped moving under the cursor. `translate` is its own
     property and composes with `transform` rather than replacing it, so the
     two never meet. */
  .rise{
    opacity:0;translate:0 16px;
    transition:opacity var(--t-reveal) var(--ease-reveal) var(--d,0s),
               translate var(--t-reveal) var(--ease-reveal) var(--d,0s);
  }
  .rise.seen{opacity:1;translate:0 0}

  /* links: one underline, wiping from the left, everywhere */
  nav a:not(.btn),.band dd a,footer .logo{position:relative}
  nav a:not(.btn)::after,.band dd a::after{
    content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;border-radius:2px;
    background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3));
    transform:scaleX(0);transform-origin:left center;
    transition:transform var(--t) var(--ease);
  }
  nav a:not(.btn):focus-visible::after,.band dd a:focus-visible::after{transform:scaleX(1)}

  /* headings inside anything hoverable warm toward the accent, at one speed */
  /* the pillars are left out of this: they carry their own colour from the
     picture above them, set where they are defined */
  .range article h3,.grid div h3,.bounds h3,.parts figcaption,.chain h3{
    transition:color var(--t-fast) var(--ease);
  }
  

  /* the sequence: the rail's accent grows out of the icon on hover */
  .step .stepicon::after{
    content:"";position:absolute;left:50%;top:100%;width:2px;height:0;border-radius:2px;
    background:linear-gradient(180deg,var(--c,var(--accent)),transparent);
    transform:translateX(-50%);opacity:0;
    transition:height var(--t-slow) var(--ease),opacity var(--t-fast) var(--ease);
  }
  

  /* The cranial render breathes, on `translate` rather than on `transform`.
     
     This is why it had stopped lifting under the cursor. Every render on the
     page grows from .925 to 1 on hover, which is a `transform` — and a running
     animation on that same property outranks it, so the keyframes simply won
     and the scale never applied. `translate` is its own property and composes
     with `transform` instead of replacing it, so the float and the lift can
     both happen. It settles while the cursor is on it, so the hover is a lift
     and not a lift on top of a drift. */
  .feature .stage>img{animation:float 9s ease-in-out infinite}
  @keyframes float{0%,100%{translate:0 -4px}50%{translate:0 4px}}
  

  /* the commitments fill from the left rather than all at once */
  .vow::after{transform-origin:left center}
  .vow h3,.vow p{transition:transform var(--t) var(--ease)}
  

  @media (prefers-reduced-motion:reduce){
    .rise{opacity:1;translate:none;transition:none}
    .feature .stage>img{animation:none}
  }

  /* ── phones ────────────────────────────────────────────────────────────────
     Two things change on a touch screen. The kit table stops being a table,
     because a two-column table on a 390px screen either scrolls sideways
     (which people do not discover) or truncates mid-word. And everything the
     desktop reveals on hover has to arrive some other way, since there is no
     hover: the states below are switched on by an observer as each block
     scrolls into view. */
  @media (max-width:640px){
    /* the table becomes a list: each procedure, then what its kit carries */
    .kits table{min-width:0;display:block}
    .kits thead{display:none}
    .kits tbody,.kits tr,.kits th,.kits td{display:block;width:auto}
    .kits tr{padding:14px 0;border-bottom:1px solid var(--line-soft)}
    .kits tr:last-child{border-bottom:0}
    .kits th,.kits td{border-bottom:0;padding:0}
    .kits tbody th{font-size:15.5px;margin-bottom:5px;padding-right:0}
    .kits tbody td{font-size:14.5px;color:var(--muted)}
    .tscroll{overflow-x:visible}

    /* small print that was borderline at arm's length */
    .kits tbody td,.kits thead th,.band dt,.sidecard dt{font-size:14px}
    .tag,.chain-step{font-size:13.5px}
    /* the masthead's own nav scroll/tap-target treatment now lives at the
       940px breakpoint above, so it applies from tablet down rather than
       only below 640px — see the comment there. */
  }

  /* Touch's full hover mirror — every element that had a :hover effect,
     not just these four — now lives in one generated block further down
     (search "Touch equivalent"), driven by initHoverMirror() in main.js.
     This hand-written subset predated that and is superseded by it. */
/* ============================================================
   Vertevance Precision Field — amendment layer
   Extends base-extract.css (unchanged) rather than replacing it.
   New tokens, the coral accent, bone-white sections, breadcrumbs,
   the theatre-boundaries composition, the accountability panel,
   forms, the resource library, 404, and route navigation.
   ============================================================ */

:root{
  /* named motion tokens from the amendment, aliased onto the existing
     duration/ease pairs so every hover on the site still moves as one system */
  --motion-fast:var(--t-fast);
  --motion-base:var(--t);
  --motion-slow:var(--t-slow);
  --motion-ambient:120s;
  --ease-standard:var(--ease);
  --ease-emphasis:var(--ease-reveal);
  --lift-small:4px;
  --focus-ring:0 0 0 3px rgba(184,132,255,.34);
  --warm-1:#e8a94e;
  --warm-2:#f0795f;
  --warm-3:#c93cff;

  /* coral — human accountability and escalation: boundaries, contact, complaints */
  --coral:#f0795f;
  --coral-2:#f0795f;

  /* bone-white — used sparingly, for one or two trust-heavy sections */
  --bone:#f4efe6;
  --bone-ink:#241a3d;
  --bone-muted:#5c4f78;
  --bone-line:rgba(36,26,61,.12);
}

/* ---------- professional-use bar + breadcrumb rail ---------- */
.crumbs{background:var(--layer-1);border-bottom:1px solid var(--line-soft)}
.crumbs .wrap{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-block:12px;font-size:12.5px;color:var(--muted)}
.crumbs a{color:var(--ink-2);text-decoration:none;transition:color var(--motion-fast) var(--ease-standard)}

.crumbs span.sep{color:var(--faint);opacity:.6}
.crumbs span.here{color:var(--ink)}

/* active nav indicator — a fine gradient underline rather than a solid pill */
nav a:not(.btn){position:relative}
nav a.is-active:not(.btn){color:var(--ink)}
nav a.is-active:not(.btn)::after{
  content:"";position:absolute;left:0;right:0;bottom:-3px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--g1),var(--g3));
}

/* section divider — a lone glyph floating in open space read as unstyled
   rather than intentional ("the >> isn't working"). Flanking it with two
   short gradient rules gives it something to belong to, so it reads as a
   deliberate, quiet transition between chapters instead of a stray icon;
   a slow opacity breathe keeps it from being totally static without
   calling attention to itself the way the travelling card-bars do. */
.chevron-div{
  display:flex;align-items:center;justify-content:center;gap:14px;
  padding-block:clamp(28px,4vw,44px);color:var(--faint);
}
.chevron-div::before,.chevron-div::after{
  content:"";height:1px;flex:1 1 auto;max-width:180px;
  background:linear-gradient(90deg,transparent,var(--line-soft));
}
.chevron-div::after{background:linear-gradient(90deg,var(--line-soft),transparent)}
.chevron-div svg{
  width:13px;height:13px;flex:none;stroke:var(--accent);fill:none;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
  animation:chevronBreathe 5s ease-in-out infinite;
}
@keyframes chevronBreathe{
  0%,100%{opacity:.55;transform:translateX(0)}
  50%    {opacity:1;transform:translateX(2px)}
}
@media (prefers-reduced-motion:reduce){
  .chevron-div svg{animation:none;opacity:.8}
}

/* page hero — shorter than the home hero, used on every interior route */
.phero{position:relative;overflow:hidden;isolation:isolate;background:var(--base);border-bottom:1px solid var(--line-soft)}
/* two lights, not one: the brand bloom top-right and a warm counterpart
   lower-left, both on the same unmasked layer so the warmth actually
   shows (the grid layer below fades out toward the bottom, which is
   exactly where a warm accent kept ending up invisible) and both drift
   together with the page's existing ambient-motion system */
.phero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  /* a diagonal "sheen" layer used to ride across this in its own
     animation — pulled per feedback: at that size and diagonal it swept
     straight across the heading and body copy on every cycle, reading as
     a highlight sitting on the text rather than a background effect. The
     two blooms below still drift (ambientDriftA, on the whole element),
     and the mark motif and grid carry the rest of the movement. */
  background:
    radial-gradient(46% 90% at 88% -10%,rgba(201,60,255,.27),transparent 62%),
    radial-gradient(52% 88% at 6% 96%,rgba(255,138,76,.27),transparent 63%);
}
.phero .wrap{padding-block:clamp(40px,6vw,72px) clamp(34px,5vw,56px)}
.phero .eyebrow{margin-bottom:14px}
.phero h1{font-size:clamp(28px,3.8vw,44px);margin-bottom:16px}
.phero .lede{margin-bottom:0}

/* ---------- clinical-focus pathway switcher (Cervical / Thoracolumbar /
   Cranial / Patient-specific) ----------
   Landing on one of these four pages used to give no sense of the other
   three short of scrolling to "Related pathways" at the very bottom.
   A small segmented switcher right in the band answers "which one am I
   on, and how do I reach the others" as soon as the page opens. */
.pw-tabs{
  display:flex;flex-wrap:wrap;gap:4px;margin:0 0 22px;
  padding:4px;width:fit-content;max-width:100%;
  background:rgba(255,255,255,.03);border:1px solid var(--line-soft);border-radius:999px;
}
.pw-tabs a{
  padding:8px 17px;border-radius:999px;font-size:13.5px;font-weight:500;
  color:var(--ink-2);text-decoration:none;white-space:nowrap;
  transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard);
}

.pw-tabs a.is-active{
  color:#fff;
  background:linear-gradient(100deg,var(--g1),var(--g2) 56%,var(--g3));
  box-shadow:0 8px 20px -12px rgba(201,60,255,.7);
}

/* .pw-tabs is a real <nav> for a11y, which means it also matches the
   generic "nav a wipes in an underline on hover" and "nav a.is-active
   gets a gradient underline" rules meant for the masthead — both would
   otherwise draw a stray line under a pill that already has its own
   hover/active background. Switched off here only. */
nav.pw-tabs a:not(.btn)::after,
nav.pw-tabs a.is-active:not(.btn)::after{content:none}
@media (max-width:640px){
  .pw-tabs{width:100%;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
}

/* the professional-use disclaimer used to sit ahead of the eyebrow as its
   own bordered paragraph block — three lines of box before the visitor
   reaches the heading they came for. Inside a .phero band specifically,
   it drops to a slim inline note after the lede instead: still present,
   still legible, but no longer the first and heaviest thing on the page.
   (The base .notice — used on the contact and complaint forms — is left
   exactly as it was; this only re-scopes the one inside .phero.) */
.phero .notice{
  margin:22px 0 0;padding:10px 16px;max-width:none;
  font-size:12.5px;display:inline-flex;align-items:center;gap:8px;
  background:rgba(255,255,255,.03);border-radius:var(--r-sm);
}
.phero .notice::before{
  content:"";flex:none;width:14px;height:14px;
  background:linear-gradient(120deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
  opacity:.75;
}

/* a large, very faint Vertevance mark watermarking every interior-page
   hero — inserted by main.js (initPheroMotif) since .phero's ::before and
   ::after are already spoken for by the colour blooms and the grid. Sits
   behind the grid and the text (see the z-index note above initPheroMotif
   in main.js) and drifts on its own slow cycle, independent of the grid's
   and blooms' timings, so the band reads as quietly alive rather than a
   flat printed backdrop. */
.phero-motif{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  top:50%;right:clamp(-30px,0vw,30px);
  width:clamp(260px,32vw,460px);height:clamp(260px,32vw,460px);
  transform:translate(0,-50%) rotate(0deg) scale(1);
  background:linear-gradient(160deg,var(--c,var(--g1)),color-mix(in srgb,var(--c,var(--g2)) 65%,#fff) 55%,var(--c,var(--g3)));
  opacity:.11;
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
  animation:pheroMotifDrift 20s ease-in-out infinite;
  will-change:transform;
}
@keyframes pheroMotifDrift{
  0%,100%{transform:translate(0,-50%)        rotate(0deg) scale(1)}
  33%    {transform:translate(-10px,calc(-50% - 18px)) rotate(-3.5deg) scale(1.045)}
  66%    {transform:translate(6px,calc(-50% + 10px))   rotate(2.5deg)  scale(.98)}
}

/* two more layers, inserted alongside .phero-motif by the same
   initPheroMotif() call. An earlier pass added a corner-bracket
   "viewfinder" frame and a vertical technical label here — pulled per
   feedback that it read as a HUD overlay rather than a brand mark, not
   obviously decorative and not intuitive at a glance. What's kept: a
   second, larger echo of the mark for depth, and a soft ambient glow
   breathing gently behind both — quieter, and unambiguously just light,
   not an annotation the visitor has to parse. */

/* a second, larger copy of the mark behind the first: fixed and very
   faint rather than drifting, so it reads as depth behind the live mark
   rather than a second shape competing with it */
.phero-echo{
  width:calc(clamp(260px,32vw,460px) * 1.3);
  height:calc(clamp(260px,32vw,460px) * 1.3);
  opacity:.045;
  transform:translate(0,-50%) rotate(-9deg);
  animation:none;
}

/* a soft, slow-breathing glow behind the mark — pure light, no shape to
   read or misread, just a bit more presence in that corner of the band */
.phero-glow{
  position:absolute;z-index:-2;pointer-events:none;
  top:50%;right:clamp(-60px,-2vw,10px);
  width:clamp(220px,26vw,380px);height:clamp(220px,26vw,380px);
  transform:translate(0,-50%);
  background:radial-gradient(circle,color-mix(in srgb,var(--c,#c93cff) 55%,transparent),transparent 70%);
  filter:blur(6px);
  animation:pheroGlowBreathe 11s ease-in-out infinite;
}
@keyframes pheroGlowBreathe{
  0%,100%{opacity:.7;transform:translate(0,-50%) scale(1)}
  50%    {opacity:1;transform:translate(0,-50%) scale(1.12)}
}
@media (prefers-reduced-motion:reduce){
  .phero-glow{animation:none}
}

@media (max-width:760px){
  .phero-echo,.phero-glow{display:none}
  /* on a single stacked column the heading and lede run the full width,
     so a mid-right, vertically-centred mark ends up sitting directly
     behind the text instead of beside it. Anchored to the bottom-right
     corner and mostly cropped off, it reads as a corner watermark again
     rather than a shape competing with the copy — and it drops the
     -50%-based drift keyframes for a corner-safe rotate/scale only. */
  .phero-motif{
    top:auto;bottom:-14vw;right:-20vw;
    width:80vw;height:80vw;
    opacity:.065;
    transform:none;
    animation:pheroMotifDriftMobile 24s ease-in-out infinite;
  }
}
@keyframes pheroMotifDriftMobile{
  0%,100%{transform:rotate(0deg) scale(1)}
  50%    {transform:rotate(3deg) scale(1.035)}
}
@media (prefers-reduced-motion:reduce){
  .phero-motif{animation:none}
}

/* a one-off section-level signature — the same wing-mark, hand-placed
   (not JS-inserted, since this section only exists once) behind the
   patient-specific showcase figure. In its warm variant: every other
   mark on the site runs the cool blue-violet gradient, so a single warm
   coral-to-peach instance gives this section its own identity in the
   scroll rather than reading as one more repeat of the same device. */
.section-motif{
  position:absolute;z-index:-1;pointer-events:none;
  top:6%;right:-6%;
  width:clamp(220px,22vw,360px);height:clamp(220px,22vw,360px);
  background:linear-gradient(160deg,var(--g1),var(--g2) 55%,var(--g3));
  opacity:.08;
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
.section-motif--warm{
  background:linear-gradient(160deg,var(--coral),#f0795f 55%,#ffb066);
  opacity:.1;
}
#patient-specific-preview{position:relative;overflow:hidden;isolation:isolate}
@media (max-width:760px){
  .section-motif{width:52vw;height:52vw;top:-4%;right:-14vw;opacity:.07}
}

/* ---------- bone-white section — used sparingly for trust-heavy proof ---------- */
.bone-sec{background:var(--bone);color:var(--bone-ink);border-block:1px solid var(--bone-line)}
.bone-sec h2,.bone-sec h3{color:var(--bone-ink)}
.bone-sec .sec-note{color:var(--bone-muted)}
.bone-sec .sec-note::before{background:linear-gradient(180deg,var(--g2),var(--coral))}
.bone-sec .grid div{background:#fff;border-color:var(--bone-line);box-shadow:0 1px 0 rgba(36,26,61,.03)}
.bone-sec .grid p{color:var(--bone-muted)}
.bone-sec .grid h3{color:var(--bone-ink)}

/* ---------- theatre-boundaries composition (replaces the withdrawn photo) ---------- */
.tb-wrap{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(30px,5vw,64px);align-items:center}
@media (max-width:860px){ .tb-wrap{grid-template-columns:1fr} }
.tb-stage{position:relative;width:100%;max-width:400px;height:0;padding-top:100%;margin-inline:auto;isolation:isolate;align-self:start}
.tb-stage .tb-field{
  position:absolute;inset:6%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,138,99,.14),rgba(20,12,42,.9) 70%);
  border:1px solid var(--line);
}
.tb-stage .tb-arc{position:absolute;inset:6%;border-radius:50%;pointer-events:none}
.tb-stage .tb-arc svg{width:100%;height:100%}
.tb-stage .tb-arc circle:not(.seg){fill:none;stroke:var(--line);stroke-width:1.4;opacity:.5}
.tb-stage .tb-arc .seg{
  fill:none;stroke:var(--faint);stroke-width:2;stroke-dasharray:76 14;
  transition:stroke var(--motion-base) var(--ease-standard),stroke-width var(--motion-base) var(--ease-standard);
}
.tb-stage .tb-render{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);max-width:46%;max-height:74%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 26px 46px rgba(0,0,0,.65))}
.tb-marks{position:absolute;inset:0}
.tb-mark{
  position:absolute;width:10px;height:10px;border-radius:50%;background:var(--layer-2);
  border:1px solid var(--line);transform:translate(-50%,-50%);
  transition:background var(--motion-base) var(--ease-standard),border-color var(--motion-base) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard);
}
.tb-mark b{
  position:absolute;white-space:nowrap;
  font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-style:italic;font-weight:400;
  font-size:12px;color:var(--faint);transition:color var(--motion-base) var(--ease-standard);
}
.tb-mark.m1{top:0%;left:50%}
.tb-mark.m1 b{top:14px;left:50%;transform:translateX(-50%)}
.tb-mark.m2{top:50%;left:100%}
.tb-mark.m2 b{top:50%;right:14px;left:auto;transform:translateY(-50%)}
.tb-mark.m3{top:100%;left:50%}
.tb-mark.m3 b{bottom:14px;top:auto;left:50%;transform:translateX(-50%)}
.tb-mark.m4{top:50%;left:0%}
.tb-mark.m4 b{top:50%;left:14px;transform:translateY(-50%)}
.bounds div.is-live .tb-relay{ }
/* principle → marker linkage, driven by data-index on hover/focus */
.bounds div{cursor:default}
.bounds div[data-mark]{transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}
.bounds div[data-mark]:focus-within{border-color:rgba(255,138,99,.55)}
.bounds div[data-mark]:focus-within::before{background:linear-gradient(180deg,var(--coral),var(--coral-2))}
.tb-mark.is-lit{background:linear-gradient(135deg,var(--coral),var(--coral-2));border-color:transparent;box-shadow:0 0 0 6px rgba(255,138,99,.16),0 0 22px -2px rgba(255,138,99,.7)}
.tb-mark.is-lit b{color:var(--ink)}
.tb-stage .tb-arc .seg.is-lit{stroke:var(--coral);stroke-width:2.4}

/* ---------- accountability panel (About) — replaces the founder portrait ---------- */
.acc-panel{position:relative;background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(28px,4vw,40px);overflow:hidden}
.acc-panel::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3))}
.acc-mark{width:40px;height:35px;margin-bottom:20px;background:linear-gradient(108deg,var(--g1),var(--g2) 50%,var(--g3));-webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;mask:url("/assets/mark-mask.png") center/contain no-repeat;opacity:.9}
.acc-panel .statement{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-style:italic;font-size:19px;line-height:1.55;color:var(--ink);margin:0 0 24px;max-width:56ch}
.acc-sig{display:flex;align-items:center;gap:16px;padding-top:20px;border-top:1px solid var(--line)}
.acc-signature{width:150px;height:38px;flex:none}
.acc-signature path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:220;stroke-dashoffset:220;animation:sigdraw 2.6s var(--ease-emphasis) .3s forwards}
@keyframes sigdraw{to{stroke-dashoffset:0}}
.acc-sig b{display:block;font-size:15.5px;font-weight:600}
.acc-sig span{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.acc-sig a{margin-top:6px;display:inline-flex;font-size:13px;color:var(--accent);text-decoration:none}
.acc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line-soft)}
.acc-facts div{}
.acc-facts b{display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:20px;margin-bottom:2px}
.acc-facts span{font-size:12.5px;color:var(--muted)}

/* ---------- resource library ---------- */
.res-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.res-filters button{
  font:inherit;font-size:13px;font-weight:500;color:var(--ink-2);background:var(--layer-2);
  border:1px solid var(--line);border-radius:999px;padding:9px 16px;cursor:pointer;
  transition:background var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard);
}
.res-filters button.is-on{background:linear-gradient(100deg,var(--g1),var(--g2) 60%,var(--g3));color:#fff;border-color:transparent}
.res-list{display:grid;gap:12px}
.res-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;
  padding:18px 22px;background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-md);
  transition:border-color var(--motion-fast) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}

.res-row h3{margin:0 0 5px;font-size:15.5px}
.res-meta{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:12.5px;color:var(--muted)}
.res-meta span{white-space:nowrap}
.res-row .btn-line{padding:9px 16px;font-size:13px;white-space:nowrap}
.res-row[hidden]{display:none}
.res-empty{padding:30px;text-align:center;color:var(--muted);font-size:14.5px}

/* ---------- forms ---------- */
.form-grid{display:grid;grid-template-columns:1fr;gap:16px;max-width:640px}
@media (min-width:640px){ .form-grid.two-col{grid-template-columns:1fr 1fr} }
.field{display:flex;flex-direction:column;gap:7px}
.field.full{grid-column:1/-1}
.field label{font-size:13px;font-weight:500;color:var(--ink-2)}
.field .req{color:var(--coral)}
.field input,.field select,.field textarea{
  font:inherit;font-size:15px;color:var(--ink);background:rgba(255,255,255,.03);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;
  transition:border-color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard);
}
.field textarea{resize:vertical;min-height:110px;font-family:inherit}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);background:rgba(255,255,255,.05)}
.field.has-error input,.field.has-error select,.field.has-error textarea{border-color:var(--coral)}
.field-msg{font-size:12.5px;color:var(--coral);min-height:1em}
.form-actions{display:flex;align-items:center;gap:16px;margin-top:6px;flex-wrap:wrap}
.form-status{
  display:none;align-items:center;gap:10px;padding:14px 18px;border-radius:var(--r-sm);font-size:14px;margin-top:18px;max-width:640px;
}
.form-status.is-ok{display:flex;background:rgba(80,220,150,.1);border:1px solid rgba(80,220,150,.35);color:#bdf7d8}
.form-status.is-err{display:flex;background:rgba(255,95,122,.1);border:1px solid rgba(255,95,122,.4);color:#ffd2da}
.form-status svg{width:18px;height:18px;flex:none}
select{color-scheme:dark}

/* ---------- HCP full acknowledgement route ---------- */
.hcp-ack{max-width:640px}
.hcp-ack .check{
  position:relative;display:flex;gap:12px;align-items:flex-start;margin:22px 0;
  padding:18px 20px 18px 24px;background:var(--layer-2);border:1px solid var(--line);
  border-radius:var(--r-md);overflow:hidden;
  transition:border-color var(--motion-fast) var(--ease-standard);
}
.hcp-ack .check::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(180deg,var(--g1),var(--g2),var(--g3));
}
.hcp-ack .check:focus-within{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.hcp-ack .check input{margin-top:3px;accent-color:var(--accent)}
.hcp-ack .check label{font-size:14.5px;color:var(--ink-2)}

.hcp-landing{display:grid;gap:14px}

/* ---------- pathway hub cards linking to /hcp/<pathway>/ ---------- */
.path-hub{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.path-hub a{
  display:block;padding:26px 24px;background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);
  text-decoration:none;color:var(--ink);transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard);
}

.path-hub h3{margin:0 0 8px}
.path-hub p{margin:0;color:var(--ink-2);font-size:14.5px}
.path-hub .go{display:inline-flex;margin-top:14px;font-size:13.5px;color:var(--accent)}

/* ---------- HCP gateway hub: seven cards, each its own route ----------
   The generic .path-hub mark (a single repeated wing-mark, further down
   this file) is switched off here in favour of a real per-card icon, and
   each card carries its own --c so the hover treatment — border, glow,
   top bar and icon — lights up in that route's own colour rather than
   one fixed accent for all seven. */
#hcp-hub a::before{content:none}
#hcp-hub a{padding-top:26px}
#hcp-hub .ph-icon{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;margin-bottom:16px;border-radius:10px;
  background:color-mix(in srgb,var(--c) 14%,var(--layer-1));
  color:var(--c);transition:background var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}
#hcp-hub .ph-icon svg{width:20px;height:20px}

#hcp-hub h3{margin-top:0}


#hcp-hub a::after{background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 45%,#fff))}


/* ---------- related pathways strip ---------- */
.related{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.related a{
  display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;
  background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-md);text-decoration:none;
  color:var(--ink);font-size:14.5px;font-weight:500;transition:border-color var(--motion-fast) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}


/* ---------- version metadata strip on pathway pages ---------- */
.meta-strip{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12.5px;color:var(--muted);padding:16px 0;border-top:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);margin:36px 0}

/* ---------- 404 ---------- */
.err-404{min-height:52vh;display:grid;place-items:center;text-align:center;padding-block:clamp(60px,10vw,120px);position:relative;overflow:hidden;isolation:isolate}
.err-404 .code{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:clamp(48px,10vw,88px);
  background:linear-gradient(100deg,var(--g1),var(--g2) 56%,var(--g3));-webkit-background-clip:text;background-clip:text;color:transparent;margin:0}
.err-404 h1{margin:10px 0 14px}
.err-404 p{color:var(--ink-2);max-width:46ch;margin:0 auto 26px}
/* the one page on the site with nothing else to look at, so the brand
   mark gets to be the largest and most centred it appears anywhere —
   still just a watermark behind the "404", not competing with it */
.err-404::before{
  content:"";position:absolute;z-index:-1;pointer-events:none;
  top:50%;left:50%;transform:translate(-50%,-54%);
  width:clamp(340px,48vw,640px);height:clamp(340px,48vw,640px);
  background:linear-gradient(160deg,var(--g1),var(--g2) 55%,var(--g3));
  opacity:.075;
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}

/* ---------- complaint routing card ---------- */
.escalate{background:var(--layer-3);border:1px solid rgba(255,138,99,.28);border-radius:var(--r-lg);padding:24px 26px;margin-bottom:30px}
.escalate h3{margin:0 0 8px;color:#ffd8c6}
.escalate p{margin:0;color:var(--ink-2);font-size:14.5px}
.escalate a{color:var(--coral)}

/* ---------- static composed "component" image blocks (SVG-built) ---------- */
.diagram{background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;display:grid;place-items:center}
.diagram svg{width:100%;height:auto;max-width:340px}

/* utility */
.mt-lg{margin-top:44px}
.small-note{font-size:13px;color:var(--faint);max-width:60ch}

/* ---------- footer nav grid (multi-route footer) ---------- */
.footer-top{padding-block:44px 32px}
.foot-nav{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px}
@media (max-width:820px){ .foot-nav{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .foot-nav{grid-template-columns:1fr} }
.fnav-col{display:flex;flex-direction:column;gap:11px;font-size:13.5px}
.fnav-col b{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--muted);margin-bottom:2px}
/* the wordmark's own <b>Vertevance</b> is not a column heading — ".fnav-col
   b" above matches it anyway (same trap as the anchor rules just above: a
   generic descendant selector reaching into the logo it was never meant to
   style) and was dyeing it var(--muted), the same dimming the anchor fixes
   above were for. Restated at higher specificity so the wordmark stays the
   same bright --ink in the footer as it is in the header. */
.fnav-col .logo .word b{color:var(--ink);margin-bottom:0}
/* :not(.logo) here matters: a plain ".fnav-col a" rule has higher
   specificity than ".logo{color:var(--ink)}" (class+type beats class alone)
   and was silently winning, dyeing the footer wordmark var(--ink-2) —
   visibly dimmer/more mauve than the header's bright --ink, despite both
   using the exact same markup and .logo rules. */
.fnav-col a:not(.logo){color:var(--ink-2);text-decoration:none;transition:color var(--motion-fast) var(--ease-standard)}

.fnav-brand{gap:16px;padding-right:clamp(0px,3vw,28px)}
.fnav-brand p{margin:0;font-size:13px;color:var(--faint);max-width:34ch;line-height:1.6}
@media (min-width:821px){
  .fnav-brand{position:relative;border-right:1px solid var(--line-soft)}
}
/* footer wordmark: literally the same header logo markup, uniformly scaled
   up with `transform`, not a second, separately-tuned set of sizes — that
   was drifting out of proportion (icon, wordmark and gap each scaled by a
   different factor) and stopped reading as "the same logo, just bigger".
   A single transform:scale guarantees it can only ever be an exact,
   pixel-faithful copy. */
.fnav-brand .logo{transform:scale(1.3);transform-origin:left center;margin:6px 30px 6px 0}

/* footer link list: the same underline-wipe language as the primary nav —
   the wordmark link is excluded, it carries its own hover treatment below */
.fnav-col a:not(.logo){position:relative;width:fit-content}
.fnav-col a:not(.logo)::after{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;border-radius:2px;
  background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3));
  transform:scaleX(0);transform-origin:left center;
  transition:transform var(--motion-base) var(--ease-standard);
}
.fnav-col a:not(.logo):focus-visible::after{transform:scaleX(1)}

/* ---------- manufacturer-story component (About) ---------- */
.mfg-panel{
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:clamp(28px,5vw,56px);align-items:center;
  background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(26px,4vw,40px);
  transition:transform var(--motion-base) var(--ease-standard),
             border-color var(--motion-fast) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard);
}
.mfg-panel::before{
  content:"";position:absolute;inset:-1px -1px auto -1px;height:3px;
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3));
  background-size:220% 100%;animation:cardBarFlow 8s linear infinite;
}

@media (max-width:760px){ .mfg-panel{grid-template-columns:1fr} }
.mfg-visual{display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.mfg-visual svg{width:100%;max-width:180px;height:auto}
.mfg-visual circle:not(.dot){fill:none;stroke:var(--line-bright);stroke-width:1.4}
.mfg-visual .line{stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;opacity:.6}
.mfg-visual .rot{opacity:.35}
.mfg-visual .dot{fill:var(--accent)}
.mfg-visual p{margin:0;font-size:12px;color:var(--faint);font-style:italic;max-width:22ch}
.mfg-copy .lead{font-size:16px;color:var(--ink-2);margin:0 0 20px;max-width:64ch}
.mfg-evidence{display:flex;flex-wrap:wrap;gap:10px}
.mfg-evidence span{
  font-size:12.5px;font-weight:500;color:var(--ink-2);padding:9px 16px;border-radius:999px;
  background:rgba(255,255,255,.04);border:1px solid var(--line);
  transition:border-color var(--motion-fast) var(--ease-standard),
             background-color var(--motion-fast) var(--ease-standard),
             color var(--motion-fast) var(--ease-standard);
}


/* ---------- PSI eight-stage flow, each node owner-tagged ---------- */
.psi-flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:880px){ .psi-flow{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:480px){ .psi-flow{grid-template-columns:1fr} }
.psi-flow li{
  position:relative;padding:20px 18px 18px;background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-md);
  border-top:3px solid var(--c,var(--accent));transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard);
}

.psi-flow b{display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:12px;color:var(--faint);margin-bottom:8px}
.psi-flow .psi-name{display:block;font-weight:600;font-size:15px;margin-bottom:10px}
.psi-flow .psi-owner{display:inline-block;font-size:11.5px;color:var(--muted);padding:3px 10px;border-radius:999px;background:rgba(255,255,255,.05)}
.psi-flow li.owner-surgeon{--c:#4f5bff}
.psi-flow li.owner-vertevance{--c:#c93cff}
.psi-flow li.owner-manufacturer{--c:var(--coral)}
.psi-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:20px;font-size:12.5px;color:var(--muted)}
.psi-legend span{display:inline-flex;align-items:center;gap:8px}
.psi-legend i{width:9px;height:9px;border-radius:50%;display:inline-block}
.psi-legend i.owner-surgeon{background:#4f5bff}
.psi-legend i.owner-vertevance{background:#c93cff}
.psi-legend i.owner-manufacturer{background:var(--coral)}

/* ============================================================
   Style pass V — a consistent chevron accent on every card grid,
   a technical-grid backdrop on interior heroes, a footer signature
   line, and a masthead that gains depth once the page scrolls.
   ============================================================ */

/* chevron corner-mark on every plain content card, so the grid system
   reads as one family across every page rather than bare text boxes */
.grid div{position:relative;padding-top:38px;overflow:hidden}
.grid div::before{
  content:"";position:absolute;left:26px;top:26px;width:15px;height:13px;
  background:linear-gradient(110deg,var(--g1),var(--g3));opacity:.9;
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
  transition:transform var(--motion-base) var(--ease-standard);
}

.bone-sec .grid div::before{background:linear-gradient(110deg,var(--g2),var(--coral))}

/* technical-planning grid behind every interior page hero — faint,
   measured lines rather than a decorative texture */
.phero{position:relative}
.phero::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:
    radial-gradient(55% 65% at 88% 100%,rgba(255,138,76,.15),transparent 65%),
    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:100% 100%,56px 56px,56px 56px;
  -webkit-mask:linear-gradient(180deg,rgba(0,0,0,.9),transparent 92%);
  mask:linear-gradient(180deg,rgba(0,0,0,.9),transparent 92%);
}
/* the hero already uses ::before/::after for its two colour blooms, so its
   grid is a real inserted element (.hero-grid) rather than a third pseudo */
.hero-grid{
  position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:
    radial-gradient(60% 70% at 12% 8%,rgba(255,138,76,.16),transparent 65%),
    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:100% 100%,64px 64px,64px 64px;
  -webkit-mask:radial-gradient(120% 100% at 30% 0%,rgba(0,0,0,.85),transparent 75%);
  mask:radial-gradient(120% 100% at 30% 0%,rgba(0,0,0,.85),transparent 75%);
}

/* ---------- hero background: a sagittal alignment trace, not a shape ----------
   Two hairline paths sit behind the render: a smooth curve echoing a
   sagittal spinal alignment profile, and a thinner trace reading like a
   neuro-monitoring waveform beneath it, with three small nodes standing
   in for calibration points along the curve (two carry a plus-shaped
   crosshair tick, the way a navigation HUD marks a tracked point). A
   left-to-right mask keeps the headline side of the hero completely
   clean — the paths only become visible as they approach the render,
   where they read as an extension of the staging dial rather than
   competing with the copy. Everything here is stroke opacity and
   dash-offset on two thin paths plus opacity pulses on three small
   circles — nothing scales, drifts or resizes, so there is no shape for
   it to look like it's dragging across the render the way the old
   corner blooms did. */
.hero-wave{
  position:absolute;inset:0;z-index:-1;pointer-events:none;
  width:100%;height:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,transparent 30%,rgba(0,0,0,.55) 52%,#000 74%,#000 100%);
  mask-image:linear-gradient(90deg,transparent 0%,transparent 30%,rgba(0,0,0,.55) 52%,#000 74%,#000 100%);
}
.hero-wave .hw-axis{
  stroke-width:1.4px;stroke-linecap:round;opacity:.22;
  stroke-dasharray:5 15;
  animation:heroWaveShimmer 16s ease-in-out infinite;
}
.hero-wave .hw-trace{
  stroke-width:1px;stroke-linecap:round;stroke-linejoin:round;opacity:.14;
  stroke-dasharray:3 11;
  animation:heroWaveShimmer 13s ease-in-out infinite reverse;
}
@keyframes heroWaveShimmer{
  0%,100%{stroke-dashoffset:0}
  50%{stroke-dashoffset:-160}
}
.hero-wave .hw-node circle{fill:#38BDF8;opacity:.4}
.hero-wave .hw-node .hw-tick{
  stroke:#38BDF8;stroke-width:1px;fill:none;opacity:.5;
}
.hero-wave .hw-node{animation:heroNodePulse 5s ease-in-out infinite;animation-delay:var(--d,0s)}
@keyframes heroNodePulse{0%,100%{opacity:.35}50%{opacity:.95}}
@media (max-width:880px){ .hero-wave{display:none} }
@media (prefers-reduced-motion:reduce){
  .hero-wave .hw-axis,.hero-wave .hw-trace,.hero-wave .hw-node{animation:none}
  .hero-wave .hw-node{opacity:.6}
}

/* footer signature — the same gradient hairline that opens the sidecard
   and the masthead's active-link underline, closing the page on the
   same mark it opened on */
footer{position:relative;overflow:hidden;isolation:isolate}
footer::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3));opacity:.8;z-index:1}
/* a second, quieter signature: the same wing-mark used to watermark every
   .phero band, bled off the bottom-left corner of the footer at a bare
   whisper of opacity. Static, not animated — the footer is the page's
   closing line, not another active surface — and cropped by the footer's
   own overflow:hidden so it never competes with the nav columns above it. */
.footer-motif{
  position:absolute;z-index:-1;pointer-events:none;
  bottom:-20%;left:-5%;
  width:clamp(240px,25vw,400px);height:clamp(240px,25vw,400px);
  background:linear-gradient(160deg,var(--g1),var(--g2) 55%,var(--g3));
  opacity:.055;
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
@media (max-width:640px){.footer-motif{opacity:.04}}

/* masthead gains a shadow once the page is no longer at the top —
   JS toggles .is-scrolled on <body> */
.masthead{transition:box-shadow var(--motion-base) var(--ease-standard),border-color var(--motion-base) var(--ease-standard)}
body.is-scrolled .masthead{box-shadow:0 12px 32px -20px rgba(0,0,0,.6);border-color:var(--line)}


/* ============================================================
   Style pass VI
   - the facts strip under the hero: centred and evenly spaced
   - the five-stage sequence: no travelling pulse, the rail fills
     once as the section arrives, and the icons are real objects
   - "the line we hold": the circular dial is gone; the section is
     now a literal line with the instrument in an open field
   - open product fields for the manufacturer renders
   ============================================================ */

/* ---------- facts strip ---------- */
.facts span{display:inline-flex;align-items:center;gap:11px}
.facts span::before{
  content:"";width:13px;height:11px;flex:none;border-radius:0;
  background:linear-gradient(110deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}


/* ---------- five-stage sequence ---------- */
/* the travelling pulse is gone: a rail that fills once, on arrival */
.steps::after{
  content:"";position:absolute;left:22px;top:26px;bottom:26px;width:3px;border-radius:3px;z-index:0;
  background:linear-gradient(180deg,#4f5bff,#6b4dfb,#a83cfb,#c93cff,#e264ff);
  animation:none;opacity:1;
  transform:scaleY(0);transform-origin:top center;
  transition:transform 1.5s var(--ease-emphasis);
}
.steps.seen::after{transform:scaleY(1)}
@media (prefers-reduced-motion:reduce){ .steps::after{transform:scaleY(1);transition:none} }

/* the icon plate: a little larger, squarer, and lit from its own colour */
.stepicon{width:52px;height:52px;border-radius:15px}
.step{grid-template-columns:52px 210px minmax(0,1fr)}
.steps::before{left:25px}
.steps::after{left:25px}
.stepicon svg{width:26px;height:26px;stroke-width:1.5}
@media (max-width:740px){ .step{grid-template-columns:52px minmax(0,1fr)} }

/* one idle gesture per icon, drawn rather than blinking */
.stepicon .draw{stroke-dasharray:40;stroke-dashoffset:40;transition:stroke-dashoffset 1.1s var(--ease-emphasis)}
.step.seen .stepicon .draw{stroke-dashoffset:0}
.stepicon .pulse{transform-origin:center;animation:iconPulse 4.5s ease-in-out infinite}
@keyframes iconPulse{0%,100%{opacity:.45}50%{opacity:1}}


/* stagger the five, so they arrive with the rail rather than all at once */
.step:nth-child(1){--d:0s}
.step:nth-child(2){--d:.12s}
.step:nth-child(3){--d:.24s}
.step:nth-child(4){--d:.36s}
.step:nth-child(5){--d:.48s}

/* ---------- "the line we hold" ---------- */
.boundary{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(30px,5vw,70px);align-items:center}
@media (max-width:880px){ .boundary{grid-template-columns:1fr} }

/* the instrument sits in an open field: a soft bloom and a floor shadow,
   no ring, no card, no border */
figure.field{position:relative;display:grid;place-items:center;padding:clamp(20px,4vw,40px) 0;isolation:isolate}
figure.field::before{
  content:"";position:absolute;z-index:-1;left:50%;top:50%;translate:-50% -50%;
  width:112%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(201,60,255,.22),rgba(59,70,245,.10) 52%,transparent 72%);
}
figure.field img{
  width:100%;max-width:340px;height:auto;
  filter:drop-shadow(0 34px 48px rgba(0,0,0,.66)) drop-shadow(0 0 26px rgba(184,132,255,.16));
  transition:transform var(--motion-slow) var(--ease-standard),filter var(--motion-slow) var(--ease-standard);
}

figure.field figcaption{margin-top:16px}
figure.field--wide img{max-width:460px}
figure.field--tall img{max-width:300px}
/* patient-specific-preview's skull render, slightly smaller than the
   340px default so it stops crowding the two-column showcase */
#patient-specific-preview figure.field img{max-width:280px}

/* the four limits, on one continuous line — the line the section is about */
.limits{list-style:none;margin:0;padding:0;position:relative}
.limits::before{
  content:"";position:absolute;left:7px;top:14px;bottom:14px;width:2px;border-radius:2px;
  background:linear-gradient(180deg,var(--coral),var(--coral-2) 55%,rgba(255,95,122,.15));
  opacity:.55;
}
.limits li{position:relative;padding:0 0 30px 40px}
.limits li:last-child{padding-bottom:0}
.limits li::before{
  content:"";position:absolute;left:0;top:8px;width:16px;height:16px;border-radius:50%;
  background:var(--coral);border:2px solid var(--coral);box-shadow:0 0 0 6px var(--layer-1);
  transition:background-color var(--motion-base) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}
/* the dot is a solid disc at rest too — the earlier hollow/gradient swap
   couldn't transition cleanly, so on the way back out the fill would
   sometimes settle a beat behind the ring and leave the rail line showing
   through the middle of the dot for a frame */
.limits li:focus-within::before{
  background-color:var(--coral-2);transform:scale(1.15);
  box-shadow:0 0 0 6px var(--layer-1),0 0 20px 1px rgba(255,138,99,.6);
}
.limits .lnum{
  display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--coral);margin-bottom:7px;
  font-variant-numeric:tabular-nums;
}
.limits h3{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:18px;margin:0 0 8px;transition:color var(--motion-fast) var(--ease-standard)}

.limits p{margin:0;color:var(--ink-2);font-size:15px;max-width:60ch}

/* ---------- open-field product figure, reused across pages ---------- */
.showcase{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(30px,5vw,70px);align-items:center}
/* clinical-focus pathway copy, once each section's product render was
   removed — a measured text column instead of the two-up showcase grid */
.cf-copy{max-width:64ch}
@media (max-width:820px){ .showcase{grid-template-columns:1fr} }
.showcase--rev figure.field{order:-1}
@media (max-width:820px){ .showcase--rev figure.field{order:0} }

/* a real photograph, framed rather than cut out */
.photo{position:relative;margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard)}
.photo img{width:100%;height:auto;display:block;filter:grayscale(.82) saturate(.35) contrast(1.02);transition:filter var(--motion-slow) var(--ease-standard),transform 1.1s var(--ease-standard)}


.photo figcaption{
  position:absolute;left:0;right:0;bottom:0;margin:0;padding:22px 20px 14px;text-align:left;
  font-size:12px;color:rgba(255,255,255,.72);font-style:normal;letter-spacing:.01em;
  background:linear-gradient(0deg,rgba(6,3,18,.86),transparent);
}

/* ---------- audience/route cards get a mark ---------- */
.path-hub a{position:relative;padding-top:30px}
.path-hub a::before{
  content:"";position:absolute;left:24px;top:26px;width:16px;height:14px;
  background:linear-gradient(110deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
  transition:transform var(--motion-base) var(--ease-standard);
}

.path-hub h3{margin-top:26px}

/* ---------- culture statement: a plate, not a paragraph ---------- */
.culture-stmt{position:relative;overflow:hidden}
.culture-stmt::before{
  content:"";position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:0;
  width:min(520px,78vw);aspect-ratio:1.15;opacity:.05;pointer-events:none;
  background:linear-gradient(120deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
.culture-stmt .wrap{position:relative;z-index:1}
.culture-stmt h2{font-size:clamp(27px,3.6vw,42px)}
.culture-rule{
  width:72px;height:2px;margin:0 auto 24px;border-radius:2px;
  background:linear-gradient(90deg,var(--g1),var(--g3));
}

/* ---------- style pass VI, corrections ---------- */

/* a bare <h2> inside a showcase is not a .sec-head, so the lede's negative
   top margin was pulling the paragraph up over the heading */
.showcase h2{margin:0 0 16px}
.showcase .sec-lede{margin-top:0}
.showcase p:last-child{margin-bottom:0}

/* the culture watermark was taller than the section it sits in */
.culture-stmt::before{width:min(420px,66vw);opacity:.055}

/* the rail runs between the first and last icon centres, not past them */
.steps::before,.steps::after{top:54px;bottom:54px}

/* icons: a touch larger and brighter inside their plate */
.stepicon svg{width:27px;height:27px;stroke-width:1.6}
.stepicon{background:color-mix(in srgb,var(--c,#b884ff) 9%,var(--layer-1))}

/* the instrument carries the left column, so let it fill it */
.boundary figure.field img{max-width:300px}
figure.field figcaption{color:var(--muted)}

/* a thin, threaded shape (the screw) breaks up the usual dark floor-shadow
   into a scatter of dark smudges once blurred — a smooth silhouette like
   the pillars' renders doesn't have this problem, a fine-threaded one does.
   This figure keeps only the soft colour glow, no black floor shadow. */
.boundary figure.field img{filter:drop-shadow(0 0 30px rgba(184,132,255,.22))}


/* ============================================================
   Style pass VII — one system, applied everywhere
   1. every section is numbered, in the same place, by CSS alone
   2. every card carries the same chrome: hairline, mark, lift
   3. product bands, proof bands and closing bands are components
   ============================================================ */

/* ---------- 1. numbered sections ---------- */
main{counter-reset:sec}
.sec-head{counter-increment:sec;position:relative;padding-top:30px}
.sec-head::before{
  content:counter(sec,decimal-leading-zero);
  position:absolute;top:0;left:0;
  font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-size:12px;font-weight:600;letter-spacing:.16em;font-variant-numeric:tabular-nums;
  color:var(--accent);opacity:.85;
}
.sec-head::after{
  content:"";position:absolute;top:7px;left:32px;width:42px;height:1.5px;border-radius:1px;
  background:linear-gradient(90deg,var(--accent),var(--g2) 55%,transparent);opacity:.65;
  box-shadow:0 0 8px 0 color-mix(in srgb,var(--accent) 55%,transparent);
}
.bone-sec .sec-head::before{color:var(--g2)}
.bone-sec .sec-head::after{background:linear-gradient(90deg,var(--g2),transparent)}

/* ---------- 2. one card chrome ---------- */
.grid div,.path-hub a,.range article,.res-row,.sidecard,.acc-panel,.mfg-panel,.note,.escalate{
  position:relative;overflow:hidden;
}
.grid div::after,.path-hub a::after,.range article::after,.res-row::after{
  content:"";position:absolute;inset:0 0 auto 0;height:2px;z-index:1;
  background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3));
  transform:scaleX(0);transform-origin:left center;opacity:.9;
  transition:transform var(--motion-base) var(--ease-standard);
}

.bone-sec .grid div::after{background:linear-gradient(90deg,var(--g2),var(--coral))}

/* ---------- 3. product band: three renders, read as one set ---------- */
.prodband{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
@media (max-width:860px){ .prodband{grid-template-columns:1fr} }
.prodcard{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  background:linear-gradient(180deg,var(--layer-2),color-mix(in srgb,var(--layer-1) 70%,var(--layer-2)));
  border:1px solid var(--line);border-radius:var(--r-lg);text-decoration:none;color:var(--ink);
  transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard);
}

.prodcard .pc-stage{
  position:relative;height:210px;display:grid;place-items:center;padding:24px;isolation:isolate;
  border-bottom:1px solid var(--line-soft);
}
.prodcard .pc-stage::before{
  content:"";position:absolute;z-index:-1;left:50%;top:52%;translate:-50% -50%;
  width:78%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(201,60,255,.26),rgba(59,70,245,.09) 55%,transparent 72%);
  transition:opacity var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}

.prodcard .pc-stage img{
  max-height:160px;width:auto;max-width:86%;
  filter:drop-shadow(0 20px 30px rgba(0,0,0,.6));
  transition:transform var(--motion-slow) var(--ease-standard),filter var(--motion-slow) var(--ease-standard);
}

.prodcard .pc-body{padding:24px 24px 26px;display:flex;flex-direction:column;flex:1}
.prodcard .pc-tag{
  display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-size:11.5px;font-weight:600;letter-spacing:.14em;color:var(--accent);margin-bottom:10px;
}
.prodcard h3{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:18.5px;margin:0 0 9px}
.prodcard p{margin:0 0 16px;font-size:14.5px;color:var(--ink-2)}
.prodcard .pc-go{margin-top:auto;font-size:13.5px;color:var(--accent);display:inline-flex;align-items:center;gap:7px}
.prodcard .pc-go span{transition:transform var(--motion-base) var(--ease-standard)}


/* ---------- 4. proof band on bone-white, with a photograph ---------- */
.bone-sec .photo{border-color:var(--bone-line)}
.bone-sec .photo figcaption{background:linear-gradient(0deg,rgba(36,26,61,.82),transparent);color:rgba(255,255,255,.8)}
.bone-sec .path-cta{color:var(--g2)}
.bone-sec .sec-lede,.bone-sec p{color:var(--bone-muted)}
.bone-sec .proof-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;margin-top:8px}
.bone-sec .proof-nums div{background:none;border:0;border-top:2px solid var(--bone-line);padding:16px 0 0}
.bone-sec .proof-nums b{
  display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-size:26px;font-weight:600;color:var(--bone-ink);margin-bottom:4px;letter-spacing:-.02em;
}
.bone-sec .proof-nums span{font-size:13px;color:var(--bone-muted)}

/* ---------- 5. closing band, same on every page ---------- */
.band .sec-head::before{color:#fff;opacity:.5}
.band .sec-head::after{background:linear-gradient(90deg,rgba(255,255,255,.6),transparent)}
.band .actions{margin-top:4px}

/* ---------- 6. a detail strip of component renders ---------- */
.detail-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:8px}
.detail-strip figure{
  margin:0;position:relative;background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-md);
  padding:20px 16px 16px;display:flex;flex-direction:column;align-items:center;gap:12px;overflow:hidden;
  transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard);
}

.detail-strip .ds-stage{height:110px;display:grid;place-items:center;width:100%}
.detail-strip img{max-height:104px;width:auto;max-width:92%;filter:drop-shadow(0 14px 22px rgba(0,0,0,.55));
  transition:transform var(--motion-base) var(--ease-standard)}

.detail-strip figcaption{
  margin:0;font-size:12px;letter-spacing:.06em;color:var(--muted);text-align:center;
  font-style:normal;font-family:var(--body);
}

/* ---------- 7. quote / statement plate ---------- */
.plate{
  position:relative;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  background:linear-gradient(122deg,rgba(184,132,255,.07),rgba(255,255,255,.012) 70%);
  padding:clamp(28px,4vw,44px);
}
.plate::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;background:linear-gradient(90deg,var(--g1),var(--g3))}
.plate p{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-style:italic;
  font-size:clamp(18px,2.1vw,23px);line-height:1.5;color:var(--ink);margin:0;max-width:52ch}

/* tighten heading rhythm so every section starts on the same beat */
.sec-lede{margin-top:0}
section > .wrap > .sec-head{margin-bottom:38px}

/* ---------- feature list: the brand mark as the bullet ---------- */
.feat-list{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:11px}
.feat-list li{position:relative;padding-left:26px;font-size:15px;color:var(--ink-2)}
.feat-list li::before{
  content:"";position:absolute;left:0;top:.42em;width:13px;height:11px;
  background:linear-gradient(110deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
.bone-sec .feat-list li{color:var(--bone-muted)}
.bone-sec .feat-list li::before{background:linear-gradient(110deg,var(--g2),var(--coral))}

/* ---------- open fields must bound BOTH axes ----------
   A very tall render constrained only by width grew to a thousand pixels
   high and overran its section. Every field render is now boxed. */
figure.field img{max-height:400px;width:auto;height:auto;object-fit:contain}
figure.field--wide img{max-width:440px;max-height:380px}
figure.field--tall img{max-width:280px;max-height:440px}
.prodcard .pc-stage img{max-height:158px;max-width:84%;width:auto;height:auto}
.detail-strip img{max-height:104px;max-width:92%;width:auto;height:auto}

/* ---------- mobile overflow fix ----------
   A collapsed grid written as `1fr` keeps a min-content floor, so a wide
   render or a long list pushed its track past the viewport and the whole
   page gained horizontal scroll (which in turn dragged the masthead out of
   place). Every single-column fallback is minmax(0,1fr), and every media
   element is capped at 100% of its container. */
@media (max-width:880px){
  .boundary,.showcase,.prodband,.mfg-panel,.tb-wrap,.psi-flow,.band-grid,.about,.feature .wrap,.commit .wrap,.hero .wrap{
    grid-template-columns:minmax(0,1fr);
  }
}
@media (max-width:480px){ .psi-flow{grid-template-columns:minmax(0,1fr)} }
.boundary,.showcase,.prodband,.mfg-panel{min-width:0}
.boundary > *,.showcase > *,.prodband > *,.mfg-panel > *{min-width:0}
figure.field,.photo,.limits{min-width:0}
figure.field img,.photo img,.prodcard img,.detail-strip img,.team img{max-width:100%}
.limits p,.limits h3{overflow-wrap:break-word}

/* a hard backstop: nothing on the page may create horizontal scroll */
html,body{max-width:100%;overflow-x:hidden}
/* the last clipped render: cap against the container, not just a pixel value */
figure.field img{max-width:100%}
figure.field--wide img{max-width:min(440px,100%)}
figure.field--tall img{max-width:min(280px,100%)}
.boundary figure.field img{max-width:min(300px,100%)}

/* ---------- dark throughout ----------
   The bone-white bands are withdrawn: the page stays on the dark ground end
   to end. The proof figures that lived in them get their dark treatment here. */
.proof-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px;margin-top:26px}
.proof-nums div{background:none;border:0;border-top:2px solid var(--line);padding:16px 0 0;
  transition:border-color var(--motion-base) var(--ease-standard)}

.proof-nums b{
  display:block;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-size:30px;font-weight:600;letter-spacing:-.02em;margin-bottom:4px;
  background:linear-gradient(100deg,var(--g1),var(--g2) 55%,var(--g3));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.proof-nums span{font-size:13px;color:var(--muted)}

/* the graded facility photograph needs no frame fighting it */
.photo{background:var(--layer-2)}

/* ============================================================
   Style pass VIII — the instrument language
   The site should read like a planning workstation, not a
   brochure: technical micro-type, engineering crop marks,
   coordinate fields behind every render, specimen codes, and
   one restrained light pass across an object on hover.
   ============================================================ */

:root{
  --mono: ui-monospace, "SF Mono", "JetBrains Mono", "Roboto Mono", Menlo, Consolas, monospace;
}

/* ---------- 1. technical micro-type ----------
   Every small label on the site — section numbers, tags, eyebrows,
   metadata, captions — moves to a monospaced face with open tracking.
   It is the single clearest signal that this is an engineering
   environment rather than a marketing page. */
.sec-head::before,
.pc-tag,.tag,.chain-step,.lnum,.res-meta,.meta-strip,
.detail-strip figcaption,.psi-flow b,.psi-flow .psi-owner,
.acc-facts span,.proof-nums span,.mfg-evidence span,
.crumbs,.util .wrap,figure.field figcaption,.photo figcaption,
.fnav-col b,.facts .wrap{
  font-family:var(--mono);
  letter-spacing:.06em;
  font-feature-settings:"tnum" 1;
}
.sec-head::before{letter-spacing:.2em;font-size:11.5px}
.pc-tag,.tag,.chain-step,.lnum{font-size:11px;letter-spacing:.14em;text-transform:uppercase}
figure.field figcaption,.photo figcaption,.detail-strip figcaption{
  font-style:normal;font-size:11px;letter-spacing:.08em;text-transform:uppercase;
}
.crumbs .wrap,.util .wrap{font-size:11.5px;letter-spacing:.05em}
.fnav-col > b{font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.meta-strip,.res-meta{font-size:11.5px}
.proof-nums span,.acc-facts span{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}
.mfg-evidence span{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase}

/* ---------- 2. engineering crop marks ----------
   Four corner ticks around every object field — the register marks of a
   technical drawing, not a decorative border. */
figure.field,.prodcard .pc-stage,.detail-strip .ds-stage{position:relative}
figure.field::after,.prodcard .pc-stage::after{
  content:"";position:absolute;inset:6px;pointer-events:none;z-index:2;
  background:
    linear-gradient(var(--line-bright),var(--line-bright)) left  top   /14px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) left  top   /1px 14px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right top   /14px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right top   /1px 14px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) left  bottom/14px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) left  bottom/1px 14px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right bottom/14px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right bottom/1px 14px no-repeat;
  opacity:.65;transition:opacity var(--motion-base) var(--ease-standard),inset var(--motion-base) var(--ease-standard);
}


/* ---------- 3. coordinate field behind each product ----------
   A fine measured grid, masked to a soft circle, so each render sits on a
   plotted ground rather than floating in empty space. */
.prodcard .pc-stage::before{
  background-image:
    linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px),
    radial-gradient(closest-side,rgba(201,60,255,.26),rgba(59,70,245,.09) 55%,transparent 72%);
  background-size:26px 26px,26px 26px,100% 100%;
  background-position:center;
  -webkit-mask:radial-gradient(closest-side,#000 58%,transparent 92%);
  mask:radial-gradient(closest-side,#000 58%,transparent 92%);
}

/* ---------- 4. specimen codes ----------
   Each pathway card carries a short reference, set in the mono face, the way
   a catalogue plate is numbered. */
.prodcard{counter-increment:spec}
.prodband{counter-reset:spec}
.prodcard .pc-code{
  position:absolute;top:14px;left:16px;z-index:3;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;
  color:var(--faint);transition:color var(--motion-base) var(--ease-standard);
}


/* shimmer/light-pass hover removed sitewide — the object simply lifts
   (see "the object can lift a little further" below). */

/* ---------- 6. headings draw their own rule ----------
   The hairline beside a section number extends as the section arrives. */
.sec-head::after{width:0;transition:width 1.1s var(--ease-emphasis) .1s}
.sec-head.seen::after,.seen .sec-head::after{width:42px}
@media (prefers-reduced-motion:reduce){ .sec-head::after{width:42px;transition:none} }

/* ---------- 7. the hero dial reads as an instrument ---------- */
.dial-feature .stage{transition:transform .12s linear}
.dial-feature .shot{will-change:transform}
.hero-readout{
  position:absolute;right:2%;bottom:6%;z-index:3;text-align:right;pointer-events:none;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--faint);line-height:1.9;
}
.hero-readout b{display:block;font-weight:400;color:var(--muted)}
@media (max-width:880px){ .hero-readout{display:none} }

/* ---------- 7b. the hero render only: three small signs of life ----------
   Everywhere else on the site the staging dial is a still graphic behind a
   still product shot. The hero is the one render a visitor looks at before
   they've scrolled or hovered anything, so it's the one place worth making
   quietly alive rather than a static picture — three effects, each easy to
   miss on its own, together read as an instrument that's actually running:
   the tick ring turns (barely, over two minutes), the violet field behind
   the implant breathes, and a fine scan-grain sits across the render itself
   the way real sensor noise sits across an actual radiographic image. All
   three are scoped to .hero specifically, so the same dial used for the
   feature render and the pathway cards elsewhere keeps its still, settled
   read. */
@keyframes heroRingTurn{to{transform:rotate(360deg)}}
.dial-feature .stage::after{animation:heroRingTurn 130s linear infinite}

@keyframes heroFieldBreathe{0%,100%{opacity:1}50%{opacity:.62}}
.dial-feature .stage::before{animation:heroFieldBreathe 6.5s ease-in-out infinite}

.hero-grain{
  position:absolute;inset:0;border-radius:50%;z-index:2;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='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:180px 180px;
  animation:heroGrainDrift 11s steps(10) infinite;
}
@keyframes heroGrainDrift{
  0%{transform:translate(0,0)}
  100%{transform:translate(-180px,-108px)}
}
@media (prefers-reduced-motion:reduce){
  .dial-feature .stage::after,.dial-feature .stage::before,.hero-grain{animation:none}
}

/* ---------- 8. card corner detail ----------
   A cut corner on every content card: small, consistent, and unlike the
   uniform rounded rectangles every competitor uses. */
.grid div,.path-hub a,.prodcard,.res-row,.acc-panel,.mfg-panel,.plate,.escalate{
  border-radius:var(--r-lg) var(--r-lg) var(--r-lg) 0;
}
.detail-strip figure,.psi-flow li{border-radius:var(--r-md) var(--r-md) var(--r-md) 0}

/* keep the mono labels legible at small sizes on phones */
@media (max-width:560px){
  .facts .wrap{font-size:10.5px}
  .pc-tag,.tag,.chain-step,.lnum{font-size:10.5px}
}

/* ---------- placement corrections for the instrument layer ---------- */
/* the readout belongs under the dial, not across the specimen */
.dial-feature .shot{position:relative;padding-bottom:34px}
.hero-readout{right:0;bottom:-2px;text-align:right;line-height:1.7}
.hero-readout b{font-size:10px;letter-spacing:.2em;color:var(--muted)}
.hero-readout span{font-size:10px;letter-spacing:.14em;color:var(--faint)}

/* the mono face is wider than the sans it replaced, so the utility strip
   needs a smaller size to stay on one line */
.util .wrap{font-size:10.5px;letter-spacing:.04em;gap:6px 18px}
@media (max-width:1100px){ .util .wrap span{max-width:none} }
@media (max-width:720px){ .util .wrap{font-size:10px} }

/* ============================================================
   The facts strip, rebuilt as an instrument readout
   Four equal cells divided by hairlines, so nothing orphans onto
   a second row and the four claims carry equal weight.
   ============================================================ */
.facts{
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:
    linear-gradient(90deg,rgba(59,70,245,.07),transparent 38%,transparent 62%,rgba(201,60,255,.07)),
    var(--layer-1);
  position:relative;overflow:hidden;
}
/* a single hairline of brand light along the top edge */
.facts::before{
  content:"";position:absolute;inset:0 0 auto 0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(184,132,255,.5) 30%,rgba(184,132,255,.5) 70%,transparent);
}
.facts .wrap{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  gap:0;padding-block:0;
  font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);
}
.facts span{
  display:flex;align-items:flex-start;gap:10px;white-space:normal;
  padding:20px clamp(14px,1.8vw,24px);
  border-left:1px solid var(--line-soft);
  line-height:1.55;position:relative;
  transition:color var(--motion-fast) var(--ease-standard),background var(--motion-fast) var(--ease-standard);
}
.facts span:first-child{border-left:0;padding-left:0}
.facts span:last-child{padding-right:0}

/* the chevron sits on the cap-height of the first line, not floating mid-cell */
.facts span::before{
  content:"";width:12px;height:10px;flex:none;margin-top:.28em;border-radius:0;
  background:linear-gradient(110deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
  transition:transform var(--motion-base) var(--ease-standard);
}


/* two-up, then stacked — the divider becomes a rule above each cell */
@media (max-width:900px){
  .facts .wrap{grid-template-columns:repeat(2,minmax(0,1fr))}
  .facts span{padding-inline:clamp(12px,3vw,20px)}
  .facts span:nth-child(odd){border-left:0;padding-left:0}
  .facts span:nth-child(n+3){border-top:1px solid var(--line-soft)}
  .facts span:nth-child(even){padding-right:0}
}
@media (max-width:560px){
  .facts .wrap{grid-template-columns:minmax(0,1fr)}
  .facts span{border-left:0;padding-inline:0;padding-block:15px}
  .facts span + span{border-top:1px solid var(--line-soft)}
  .facts span:nth-child(n+3){border-top:1px solid var(--line-soft)}
}

/* ============================================================
   The clinical-focus signature: two plates, not one dead rectangle
   The artwork is glow-on-black, so it is screen-blended onto the page
   ground — the black falls away and only the light remains, which is
   why there is no visible frame around either plate.
   ============================================================ */
.neuro-pair{
  display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);
  gap:clamp(20px,4vw,56px);align-items:center;
  margin-bottom:clamp(34px,5vw,54px);
}
@media (max-width:820px){ .neuro-pair{grid-template-columns:minmax(0,1fr);gap:32px} }

.neuro-plate{
  position:relative;margin:0;display:flex;flex-direction:column;align-items:center;
  padding:clamp(14px,2vw,22px);
}
.neuro-plate img{
  display:block;width:100%;height:auto;max-height:460px;object-fit:contain;
  mix-blend-mode:screen;                 /* the black ground disappears */
  transition:transform var(--motion-slow) var(--ease-standard),filter var(--motion-slow) var(--ease-standard);
}
.neuro-plate--spine img{max-width:230px;max-height:480px}
.neuro-plate:focus-within img{transform:translateY(-3px) scale(1.018);filter:brightness(1.12) saturate(1.1)}

/* the register marks that every object field on the site carries */
.neuro-plate::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(var(--line-bright),var(--line-bright)) left  top   /16px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) left  top   /1px 16px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right top   /16px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right top   /1px 16px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) left  bottom/16px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) left  bottom/1px 16px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right bottom/16px 1px no-repeat,
    linear-gradient(var(--line-bright),var(--line-bright)) right bottom/1px 16px no-repeat;
  opacity:.4;transition:opacity var(--motion-base) var(--ease-standard);
}


.neuro-plate figcaption{
  margin-top:16px;display:flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);font-style:normal;text-align:left;
}
.neuro-plate figcaption b{
  font-weight:400;color:var(--accent);
  padding-right:10px;margin-right:2px;border-right:1px solid var(--line);
}
/* both plate captions land on one baseline, whatever each render's height */
.neuro-pair{align-items:stretch}
.neuro-plate{justify-content:flex-start}
.neuro-plate img{margin-block:auto}
.neuro-plate figcaption{margin-top:auto;padding-top:16px}

/* a small, secondary version for the homepage's "neuro is not a sideline"
   preview — the pillars carry the section, this is just a quiet visual
   anchor above them, not the full-size showcase the clinical-focus page
   used to carry */
/* the compact pair now lives inside the sec-head's own note column (see
   .cfp-aside) instead of sitting as its own centred block between the
   heading and the pillar cards, where it read as wedged in rather than
   belonging to the section's composition */
.cfp-aside{display:flex;flex-direction:column;gap:22px}
.neuro-pair--compact{
  max-width:440px;margin:0;gap:18px;grid-template-columns:1.3fr 1fr;
  padding-top:18px;border-top:1px solid var(--line-soft);
}
.neuro-pair--compact .neuro-plate{padding:0;align-items:flex-start}
/* these two renders are pre-keyed to real alpha (see neuro-*-compact.webp) —
   mix-blend-mode:screen is what caused the grey halo-box at this size, since
   downscaling smeared the black background toward mid-grey before the blend
   ever saw it; a plain alpha composite has no such failure mode. Sized up
   again per feedback so CR/SP read as a real pairing rather than a detail
   thumbnail, while staying at or below the source renders' native pixels
   (336/372px tall) so they stay sharp on standard and retina displays. */
.neuro-pair--compact .neuro-plate img{max-height:150px;mix-blend-mode:normal}
.neuro-pair--compact .neuro-plate--spine img{max-width:82px;max-height:165px}
.neuro-pair--compact .neuro-plate figcaption{font-size:10px;margin-top:10px;padding-top:0}
.neuro-pair--compact .neuro-plate::after{content:none}
@media (max-width:860px){ .neuro-pair--compact{max-width:340px} }

/* ============================================================
   The five-stage sequence, rebuilt as one continuous flow
   The old version drew a single rail behind the icon plates, and the
   plates' halos punched holes in it, so the line read as broken
   fragments. Here the numbers ARE the nodes, and each step owns the
   length of rail beneath it — so the line fills 01 → 05 in order as
   the section is read, and can never come apart.
   ============================================================ */
.flow{list-style:none;margin:0;padding:0;position:relative;counter-reset:none}

/* the unlit path, so the route is implied before anything fills */
.flow::before{
  content:"";position:absolute;left:31px;top:48px;bottom:48px;width:2px;border-radius:2px;
  background:var(--line);opacity:.75;
}

.flow-step{
  position:relative;display:grid;
  grid-template-columns:64px minmax(0,1fr);
  gap:clamp(18px,3vw,36px);
  padding:22px 0 30px;
}

/* each step lights its own segment, from its node down to the next one */
.flow-step::before{
  content:"";position:absolute;left:31px;top:60px;bottom:-8px;width:2px;border-radius:2px;z-index:0;
  background:linear-gradient(180deg,var(--c),var(--c-next));
  transform:scaleY(0);transform-origin:top center;
  transition:transform .85s var(--ease-emphasis);
}
.flow-step.seen::before{transform:scaleY(1)}
.flow-step--last::before{display:none}
@media (prefers-reduced-motion:reduce){ .flow-step::before{transform:scaleY(1);transition:none} }

/* the node: the stage number, sitting on the line rather than beside it */
.flow-node{
  position:relative;z-index:2;width:64px;height:64px;border-radius:50%;
  display:grid;place-items:center;
  background:var(--layer-1);
  border:1px solid color-mix(in srgb,var(--c) 42%,transparent);
  box-shadow:0 0 0 7px var(--base), 0 0 22px -10px color-mix(in srgb,var(--c) 90%,transparent);
  transition:background var(--motion-base) var(--ease-standard),
             border-color var(--motion-base) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard);
}
.flow-num{
  font-family:var(--mono);font-size:15px;letter-spacing:.06em;font-variant-numeric:tabular-nums;
  color:var(--c);transition:color var(--motion-base) var(--ease-standard);
}

/* body: title and copy stacked, so there is no dead gap between them */
.flow-body{padding-top:6px;min-width:0}
.flow-body h3{
  display:flex;align-items:center;gap:11px;margin:0 0 9px;
  font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-weight:600;font-size:20px;letter-spacing:-.012em;
  transition:color var(--motion-fast) var(--ease-standard);
}
.flow-icon{display:inline-grid;place-items:center;width:22px;height:22px;flex:none}
.flow-icon svg{
  width:22px;height:22px;fill:none;stroke:var(--c);stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;
  transition:stroke var(--motion-base) var(--ease-standard);
}
.flow-body p{margin:0;color:var(--ink-2);font-size:15.5px;max-width:62ch}

/* ---- hover lives in the dot only: no block highlight behind the step ---- */
.flow-step:focus-within .flow-node{
  background:color-mix(in srgb,var(--c) 26%,var(--layer-1));
  border-color:var(--c);
  box-shadow:0 0 0 7px var(--base), 0 0 30px -6px color-mix(in srgb,var(--c) 95%,transparent);
}
.flow-step:focus-within .flow-num{color:#fff}


/* the icon completes its stroke as the step arrives, and again on hover */
.flow-icon .draw{stroke-dasharray:44;stroke-dashoffset:44;transition:stroke-dashoffset 1s var(--ease-emphasis)}
.flow-step.seen .flow-icon .draw{stroke-dashoffset:0}
.flow-icon .pulse{opacity:.5;transition:opacity var(--motion-base) var(--ease-standard)}


@media (max-width:620px){
  .flow{--node:52px}
  .flow::before,.flow-step::before{left:25px}
  .flow-step{grid-template-columns:52px minmax(0,1fr);gap:16px;padding:18px 0 26px}
  .flow-node{width:52px;height:52px;box-shadow:0 0 0 6px var(--base)}
  .flow-num{font-size:13px}
  .flow-body h3{font-size:18px}
  .flow-step::after{inset:6px -14px 10px -14px}
}

/* ---- rail geometry: the line must meet its nodes, not stop short ----
   The node is 32px from the step's top padding edge and is opaque with its own
   halo, so a segment can safely run underneath it. Ending the segment before
   the next node left a visible gap at every junction. */
.flow::before{top:54px;bottom:62px}          /* first node centre → last node centre */
.flow-step::before{top:54px;bottom:-32px}    /* from behind this node into the next */
@media (max-width:620px){
  .flow::before{top:44px;bottom:52px}
  .flow-step::before{top:44px;bottom:-28px}
}

/* ============================================================
   Objects zoom free — no frame, no clipping
   The register marks drew a box tight around each render, and the
   field clipped its own overflow, so scaling on hover cut the object
   off at the frame. The marks are withdrawn and the clipping with
   them: an object now simply grows on its ground.
   ============================================================ */
figure.field::after,
.prodcard .pc-stage::after,
.neuro-plate::after{content:none}

figure.field,
.prodcard .pc-stage,
.neuro-plate{overflow:visible}

.sweep{display:none}

/* with the frame gone, the object can lift a little further */

/* neuro plates keep the smaller, non-directional hover set below —
   translateY(-3px) scale(1.018), no cursor tracking, no diagonal motion —
   so this selector must not re-widen it; kept empty deliberately. */
/* the component strip follows the same rule: the render grows, nothing clips */
.detail-strip figure{overflow:visible}
.detail-strip .ds-stage{overflow:visible}

/* ============================================================
   Chain of responsibility — four self-contained cards, read left
   to right. Earlier versions wired the cards together with an
   absolutely-positioned rail and negative-margin bleed on the
   highlighted card; across several rounds that geometry kept
   breaking (rails misaligned, cards overlapping the copy above
   them, colliding with their neighbour). Removed for good: each
   card now only has to lay itself out, and the sequence reads
   through colour and left-to-right order instead, the same way
   the standard-cards and tenets do.
   ============================================================ */
.handoff{
  list-style:none;margin:0;padding:0;
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));
  /* wider than the other card grids on purpose: the connecting-arrow
     token sits astride this gap (see .handoff-link:not(.is-last)::after)
     and needs real clearance either side of it, not just enough room for
     its own diameter, or its glow crowds straight into both cards */
  gap:30px;
}
.handoff-link{
  position:relative;min-width:0;padding:24px 22px 22px;
  border:1px solid var(--line);border-radius:var(--r-lg);
  /* the top bar used to be a separate absolutely-positioned pseudo with its
     own border-radius, nudged to line up with the card's own border curve.
     At integer device-pixel ratios (the ordinary case on a non-Retina
     monitor) the two independently-rounded corners snap to different
     pixels and a visible notch opens between them ("top line sits outside
     the box") — no amount of arithmetic on the inset/radius fixes that,
     because it is fundamentally two shapes trying to coincide. Painting
     the bar as a background layer on the card itself sidesteps the
     problem entirely: a background always clips to its own box's actual
     rendered border-radius, so there is only ever one curve, and it can
     never disagree with itself at any zoom or pixel ratio. */
  background-color:var(--layer-2);
  background-image:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff),var(--c));
  background-repeat:no-repeat;
  background-position:0% top;
  background-size:220% 3px;
  animation:cardBarFlowBg 7s linear infinite;
  transition:transform var(--motion-base) var(--ease-standard),
             border-color var(--motion-fast) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard),
             background-size var(--motion-base) var(--ease-standard);
}

/* a small static arrow marks the handover point between each pair of
   cards, so the sequence still reads left-to-right — without the
   absolutely-positioned rail that kept breaking across earlier rounds:
   this is one glyph, sized to the gap, with nothing to misalign */
/* was a flat dark circle with a barely-visible faint arrow — easy to miss
   against the card background. Now a small filled brand-gradient token
   with its own soft glow and a slow breathing pulse, so the handover
   between cards reads as a deliberate beat in the sequence rather than
   a stray dot. */
.handoff-link:not(.is-last)::after{
  content:"\2192";position:absolute;top:50%;left:100%;z-index:2;
  width:24px;height:24px;transform:translate(-50%,-50%) scale(1);
  border-radius:50%;background:linear-gradient(135deg,var(--g1),var(--g2),var(--g3));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:12.5px;line-height:1;font-family:var(--mono);
  /* the ring glow is now a static box-shadow, not part of the keyframes —
     animating scale and a multi-stop box-shadow together on a two-stop
     ease-in-out cycle was the "not smooth" part: the shadow's blur/spread
     interpolate at a visibly different rate than the transform, so the two
     read as slightly out of step with each other. Breathing on transform
     alone, with a gentle sine-like custom easing and a smaller amplitude,
     reads as one continuous motion instead. */
  box-shadow:0 0 0 4px var(--base),0 6px 18px -8px var(--g2);
  animation:arrowPulse 4.8s cubic-bezier(.45,0,.55,1) infinite;
  will-change:transform;
}
@keyframes arrowPulse{
  0%,100%{transform:translate(-50%,-50%) scale(1)}
  50%{transform:translate(-50%,-50%) scale(1.09)}
}
@media (prefers-reduced-motion:reduce){
  .handoff-link:not(.is-last)::after{animation:none}
}
@media (max-width:1040px){
  .handoff-link:not(.is-last)::after{display:none}
}

.handoff-num{
  position:absolute;right:20px;top:18px;font-family:var(--display);font-weight:600;
  font-size:26px;line-height:1;letter-spacing:-.01em;
  background:linear-gradient(160deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  opacity:.45;transition:opacity var(--motion-base) var(--ease-standard);
}

.handoff-mark{
  display:block;width:20px;height:17px;margin-bottom:14px;
  background:linear-gradient(120deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
/* the three parties that are not Vertevance get their own small icon
   (factory / shield / clinical cross) instead of all four cards
   repeating the same brand mark, so each role reads as distinct at a
   glance while staying inside the same card shell */
.handoff-icon{display:block;width:21px;height:18px;margin-bottom:14px;color:var(--c)}
.handoff-icon svg{width:100%;height:100%;display:block}
.handoff-role{
  display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--c);margin-bottom:12px;
}
.handoff-link h3{
  font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-weight:600;font-size:19px;letter-spacing:-.012em;margin:0 0 10px;
  transition:color var(--motion-fast) var(--ease-standard);
}

.handoff-link p{margin:0 0 16px;font-size:14.5px;color:var(--ink-2)}

.handoff-for{
  padding-top:13px;border-top:1px solid var(--line-soft);
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;line-height:1.7;
}
.handoff-for b{display:block;font-weight:400;color:var(--faint);text-transform:uppercase;letter-spacing:.14em;margin-bottom:4px}
.handoff-for span{color:var(--muted)}

/* Vertevance's own link is the one a visitor is dealing with — lifted out
   of the sequence with the full brand gradient (the same blue-to-violet
   as the logo mark) rather than the single accent colour every other
   card gets, a standing glow instead of only a hover one, and a hairline
   scale-up so it visibly leads the row without breaking the grid. */
.handoff-link.is-us{
  /* background-color only — background-image stays the inherited animated
     top-bar strip (a solid "background:" shorthand here would silently
     wipe that bar for this one card, since both live on the same element) */
  background-color:color-mix(in srgb,var(--g2) 10%,var(--layer-2));
  background-image:linear-gradient(165deg,color-mix(in srgb,var(--g1) 20%,transparent),color-mix(in srgb,var(--g3) 16%,transparent) 75%),
                    linear-gradient(90deg,var(--g1),var(--g2),var(--g3),var(--g2),var(--g1));
  background-repeat:no-repeat,no-repeat;
  background-position:0 0,0% top;
  background-size:100% 100%,220% 3px;
  border-color:color-mix(in srgb,var(--g2) 55%,var(--line));
  /* a permanent transform:scale(1.03) used to sit here — it visibly grew
     the card past its own grid cell on both sides, and at the narrow gap
     between cards that overshoot landed directly on top of the connecting
     arrow beside it (worst on the card's own left edge, where the previous
     card's arrow lives). A wider glow reads as "this one is lit up" just
     as clearly without moving the box at all, so the arrows stay clear. */
  box-shadow:0 0 0 1px color-mix(in srgb,var(--g2) 35%,transparent),0 34px 64px -30px var(--g2);
  z-index:1;
}
.handoff-link.is-us h3{color:#fff}
/* every other card's hover/press/scroll-in-view state swaps in a single
   accent colour (border, glow, heading) — the right move when a card's
   colour is only ever the resting one it interrupts. This card's colour
   IS the interruption: the full brand gradient and a standing glow are
   its whole identity, not a resting state to warm up from. The generic
   rule's single background-size value also lands on both of this card's
   background layers at once (CSS applies a shorter background-size list
   across every background-image layer), so the layer meant to stay a
   fixed full-card tint would briefly resize into the flowing bar's own
   thin shape — an inner colour flicker on interaction. Pinning every
   colour-bearing property back to its resting value here removes that;
   only the shared lift still applies, same as every other card. */
@media (hover:hover) and (pointer:fine){
  .handoff-link.is-us:hover{
    border-color:color-mix(in srgb,var(--g2) 55%,var(--line));
    box-shadow:0 0 0 1px color-mix(in srgb,var(--g2) 35%,transparent),0 34px 64px -30px var(--g2);
    background-size:100% 100%,220% 3px;
  }
  .handoff-link.is-us:hover h3{color:#fff}
}
@media (hover:none){
  .handoff-link.is-us.in-view,.handoff-link.is-us:active{
    border-color:color-mix(in srgb,var(--g2) 55%,var(--line));
    box-shadow:0 0 0 1px color-mix(in srgb,var(--g2) 35%,transparent),0 34px 64px -30px var(--g2);
    background-size:100% 100%,220% 3px;
  }
  .handoff-link.is-us.in-view h3,.handoff-link.is-us:active h3{color:#fff}
}
.handoff-us-tag{
  display:inline-flex;align-items:center;gap:6px;margin-bottom:14px;font-family:var(--mono);
  font-size:9.5px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;
  padding:4px 10px 4px 8px;border-radius:999px;
  color:#fff;
  background:linear-gradient(100deg,var(--g1),var(--g2),var(--g3),var(--g2),var(--g1));
  background-size:240% 100%;
  animation:cardBarFlow 6s linear infinite;
  box-shadow:0 4px 16px -6px var(--g2);
}
.handoff-us-tag::before{
  content:"";width:5px;height:5px;flex:none;border-radius:50%;background:#fff;
  animation:usTagPulse 2.2s ease-out infinite;
}
@keyframes usTagPulse{
  0%{box-shadow:0 0 0 0 rgba(255,255,255,.6)}
  70%{box-shadow:0 0 0 6px rgba(255,255,255,0)}
  100%{box-shadow:0 0 0 0 rgba(255,255,255,0)}
}
@media (prefers-reduced-motion:reduce){
  .handoff-us-tag{animation:none}
  .handoff-us-tag::before{animation:none}
}
@media (max-width:1040px){
  .handoff{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .handoff{grid-template-columns:minmax(0,1fr)}
}

/* ============================================================
   Generic colour-accented card grid — the same visual language as
   the chain-of-responsibility cards above, used wherever a page
   still had a bare "four things" .grid (About's model summary and
   chain-of-responsibility recap, Quality & Traceability's traced-
   unit stages). Colour comes from --c per item via card_grid().
   ============================================================ */
.card-grid{
  display:grid;margin:26px 0 0;
  grid-template-columns:repeat(var(--cg-cols,4),minmax(0,1fr));
  gap:16px;
}
/* a grid marked is-sequence (a real step-by-step process, e.g. the
   about page's sourced→held→supported→answerable model) gets the same
   small connecting arrow between cards as the chain-of-responsibility
   cards, so the reader sees it as a flow rather than four unrelated facts */
/* same brand-gradient token and breathing pulse as the home page's
   chain-of-responsibility arrows (.handoff-link above) — the about page's
   sequence cards used the old flat dark-circle style and looked
   inconsistent next to it. */
.card-grid.is-sequence .card-grid-item:not(:last-child)::after{
  content:"\2192";position:absolute;top:50%;left:100%;z-index:2;
  width:24px;height:24px;transform:translate(-50%,-50%) scale(1);
  border-radius:50%;background:linear-gradient(135deg,var(--g1),var(--g2),var(--g3));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:12.5px;line-height:1;font-family:var(--mono);
  box-shadow:0 0 0 4px var(--base),0 6px 18px -8px var(--g2);
  animation:arrowPulse 4.8s cubic-bezier(.45,0,.55,1) infinite;
  will-change:transform;
}
@media (prefers-reduced-motion:reduce){
  .card-grid.is-sequence .card-grid-item:not(:last-child)::after{animation:none}
}
@media (max-width:1040px){
  .card-grid.is-sequence .card-grid-item:not(:last-child)::after{display:none}
}
.card-grid-item{
  position:relative;min-width:0;padding:24px 22px 22px;
  border:1px solid var(--line);border-radius:var(--r-lg);
  /* see the long comment on .handoff-link above: this used to be a separate
     pseudo-element with its own border-radius trying to nest against the
     card's border, which visibly disagreed with it at integer device-pixel
     ratios. Painting the bar as the card's own background instead means
     there is only ever one rounded-corner curve to render, so it can never
     mismatch itself. */
  background-color:var(--layer-2);
  background-image:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff),var(--c));
  background-repeat:no-repeat;
  background-position:0% top;
  background-size:220% 3px;
  animation:cardBarFlowBg 7s linear infinite;
  transition:transform var(--motion-base) var(--ease-standard),
             border-color var(--motion-fast) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard),
             background-size var(--motion-base) var(--ease-standard);
}

.cg-num{
  position:absolute;right:20px;top:18px;font-family:var(--display);font-weight:600;
  font-size:26px;line-height:1;letter-spacing:-.01em;
  background:linear-gradient(160deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  opacity:.45;transition:opacity var(--motion-base) var(--ease-standard);
}

.cg-mark{
  display:block;width:20px;height:17px;margin-bottom:14px;
  background:linear-gradient(120deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
.card-grid-item h3{margin:0 0 10px;padding-right:34px;font-size:15.5px}

.card-grid-item p{margin:0;font-size:14px;color:var(--ink-2)}
.card-grid-item p + p{margin-top:10px}
@media (max-width:1040px){
  .card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .card-grid{grid-template-columns:minmax(0,1fr)}
}

/* ============================================================
   Ambient life behind the technical grid
   Wherever the plotted grid appears — the home hero and every
   interior page header — the light behind it now drifts slowly and
   the grid breathes faintly against it. The grid itself never moves:
   a creeping grid reads as a rendering fault, whereas light moving
   behind a fixed structure reads as depth.

   Every period is a different prime-ish length, so no two layers ever
   fall back into step and the motion never looks like a loop. Only
   transform and opacity are animated, so these stay on the compositor
   and cost no layout or paint. The global reduced-motion rule already
   stops all of it.
   ============================================================ */
@keyframes ambientDriftA{
  0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.92}
  27%    {transform:translate3d(-3.5%,2.5%,0) scale(1.08);opacity:1}
  54%    {transform:translate3d(2.5%,-2%,0)  scale(.95);opacity:.84}
  79%    {transform:translate3d(-1.5%,-3%,0) scale(1.04);opacity:.96}
}
@keyframes ambientDriftB{
  0%,100%{transform:translate3d(0,0,0) scale(1);opacity:.88}
  31%    {transform:translate3d(3%,-2.5%,0)  scale(.94);opacity:1}
  58%    {transform:translate3d(-2.5%,2%,0)  scale(1.1);opacity:.82}
  83%    {transform:translate3d(1.5%,3%,0)   scale(1.02);opacity:.94}
}
/* every card family's colour top-bar slowly flows left, so "the colours
   move" instead of sitting static — one shared keyframe, applied to
   standard-card, tenet, handoff-link and card-grid-item alike, which is
   also what keeps their colour language visibly the same family. */
@keyframes cardBarFlow{
  0%  {background-position:0% 50%}
  100%{background-position:100% 50%}
}
/* same flow, but for .handoff-link/.card-grid-item, where the bar is now a
   background layer on the card itself (see the comments on those rules)
   rather than a separate pseudo — the vertical anchor stays pinned to
   "top" instead of the "50%" used above, which would otherwise centre the
   bar in the whole card's height instead of keeping it a thin strip along
   the top edge. */
@keyframes cardBarFlowBg{
  0%  {background-position:0% top}
  100%{background-position:100% top}
}
@media (prefers-reduced-motion:reduce){
  .standard-card::before,.tenet::before,.card-grid-item,.handoff-link{animation:none}
}

/* used by the interior .phero bands only now (see below) — a grid of
   lines sliding a few pixels reads as a technical backdrop shifting,
   not as a shape moving, which is why it still suits those bands. */
@keyframes gridDrift{
  0%,100%{opacity:.34;background-position:0 0,0 0,0 0}
  50%    {opacity:.62;background-position:0 0,13px 9px,9px 13px}
}

/* home hero background: held fully still, corner light and grid alike.
   Both used to breathe and drift — the corner blooms swelling and
   sliding, the grid's own soft radial glow riding along with it — and
   at the scale either needs to read as atmosphere behind the render
   rather than a shape in front of it, any motion at all reads as
   something wandering diagonally across the image, which is the exact
   complaint this settles for good. The render itself already carries
   the hero's "alive" quality on its own (the dial turning, its own
   field breathing, the grain drifting across it — see "the hero render
   only" below); the background stays completely inert so nothing else
   in the hero ever competes with it or reads as an object of its own. */
.hero-grid{animation:none}

/* every interior page header — a horizontal breathing motion rather than
   the diagonal, multi-directional drift used on the home hero. That
   drift moved the two blooms across both axes, which — being large,
   saturated radial gradients — read as the band's own background colour
   shifting as it played. A single side-to-side sway plus a gentle
   scale/opacity pulse keeps the "breathing, alive" quality without ever
   moving enough of either bloom's colour across the fixed base fill for
   the background to look like it is changing tone. */
.phero::before{animation:pheroBreathe 11s ease-in-out infinite}
.phero::after {animation:gridDrift    37s ease-in-out infinite}
@keyframes pheroBreathe{
  0%,100%{transform:translate3d(0,0,0)     scale(1);opacity:.92}
  50%    {transform:translate3d(1.4%,0,0)  scale(1.035);opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .phero::before{animation:none}
}

/* the same ambient treatment on the other blooming bands, so the page
   does not switch between living and inert as you scroll */
.feature::before{animation:ambientDriftB 59s var(--ease-soft) infinite}
.band::before   {animation:ambientDriftA 67s var(--ease-soft) infinite}

@media (prefers-reduced-motion:reduce){
  .hero-grid,
  .phero::before,.phero::after,
  .feature::before,.band::before{animation:none}
}

/* ============================================================
   The manufacturer group, drawn as a structure
   Two named entities sit under one group head, connected by the
   same rail language the rest of the site uses. Every fact shown
   comes from the manufacturer's own product documentation.
   ============================================================ */
.grouptree{margin-top:clamp(38px,5vw,58px);position:relative}

.grouptree-head{
  position:relative;display:flex;align-items:baseline;flex-wrap:wrap;gap:6px 14px;
  padding:16px 22px;border:1px solid var(--line);border-radius:var(--r-md) var(--r-md) var(--r-md) 0;
  background:linear-gradient(120deg,rgba(184,132,255,.09),rgba(255,255,255,.012) 70%);
}
.grouptree-head::before{
  content:"";position:absolute;inset:0 0 auto 0;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3));
}
.gt-mark{
  width:16px;height:14px;flex:none;align-self:center;
  background:linear-gradient(110deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
.grouptree-head b{
  font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-weight:600;font-size:17px;letter-spacing:-.01em;
}
.gt-sub{font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* the group head and its two entities: no connecting rail — each card
   carries its own identity (a coloured top edge, like every other card
   family on the site) rather than being wired together with lines */
.grouptree-kids{
  position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(16px,2.4vw,26px);margin-top:34px;
}
.gt-node{
  --c1:var(--g1);--c2:var(--g3);
  position:relative;overflow:hidden;padding:26px 24px 22px;background:var(--layer-2);
  border:1px solid var(--line);border-radius:var(--r-lg);
  transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard);
}
.gt-node::before{
  content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,var(--c1),var(--c2));
  transition:height var(--motion-base) var(--ease-standard);
}
.gt-node.is-neuro{--c1:#c93cff;--c2:#f0795f}



.gt-tag{
  display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--accent);margin-bottom:11px;
  padding:4px 10px;border:1px solid var(--line);border-radius:999px;
}
.gt-node.is-neuro .gt-tag{color:#ffb3f2;border-color:rgba(201,60,255,.32)}
.gt-node h3{
  font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-weight:600;font-size:18px;letter-spacing:-.012em;margin:0 0 10px;text-wrap:balance;
  transition:color var(--motion-fast) var(--ease-standard);
}

.gt-node p{margin:0 0 16px;font-size:14.5px;color:var(--ink-2)}
.gt-meta{
  font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--faint);padding-top:12px;border-top:1px solid var(--line-soft);
}
.gt-foot{margin-top:20px;max-width:88ch}

@media (max-width:760px){
  .grouptree-kids{grid-template-columns:minmax(0,1fr);gap:20px}
}

/* ============================================================
   Style pass VII — The Vertevance Standard
   New section directly under the hero, plus the three-tenet
   band that replaces the old single culture statement.
   ============================================================ */

/* ---------- masthead utility bar: a dash of warmth ---------- */
.util{position:relative;overflow:hidden}
.util::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(120% 260% at 10% 50%,rgba(255,138,76,.22),transparent 62%),
    radial-gradient(90% 220% at 92% 50%,rgba(255,95,122,.12),transparent 65%),
    linear-gradient(90deg,rgba(255,138,76,.05),transparent 40%);
}
.util::after{
  content:"";position:absolute;left:0;right:0;bottom:-1px;height:1.5px;
  background:linear-gradient(90deg,var(--warm-1),#f0795f 30%,var(--g3) 62%,transparent 92%);
  opacity:.75;
}
.util .wrap{position:relative;z-index:1}

/* ---------- the standard section ---------- */
.standard{
  position:relative;overflow:hidden;isolation:isolate;
  background:linear-gradient(180deg,var(--base) 0%,#0d0730 55%,var(--layer-1) 100%);
  padding-block:clamp(56px,8vw,96px) clamp(64px,9vw,112px);
  border-bottom:1px solid var(--line-soft);
}
/* an abstract field rather than a photo — a photo bled and masked into this
   spot kept coming out stretched or stranded at three different sizes, so
   the section now carries its atmosphere the same way the hero and every
   interior page do: light and a plotted grid, no image to go wrong */
.standard-field{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;
}
.standard-field::before{
  content:"";position:absolute;left:-10%;top:-30%;width:60%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(90,123,255,.22),transparent 68%);
}
.standard-field::after{
  content:"";position:absolute;right:-14%;bottom:-40%;width:56%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(255,138,76,.16),transparent 65%);
}
.standard-grid{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.4;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask:radial-gradient(120% 90% at 50% 20%,rgba(0,0,0,.8),transparent 78%);
  mask:radial-gradient(120% 90% at 50% 20%,rgba(0,0,0,.8),transparent 78%);
}
.standard-wrap{position:relative;z-index:1;max-width:1180px}
.standard .eyebrow{margin-bottom:14px}
.standard h2{
  font-size:clamp(28px,3.8vw,44px);max-width:20ch;margin:0 0 18px;text-wrap:balance;
}
.standard .sec-lede{font-size:17px;line-height:1.64;color:var(--ink-2);max-width:62ch;margin:0 0 clamp(34px,4.6vw,52px)}

.standard-cards{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;
  margin-bottom:clamp(30px,4vw,44px);
}
.standard-card{
  --c1:#4f5bff;--c2:#6b4dfb;
  position:relative;overflow:hidden;padding:24px 22px 22px;
  background:color-mix(in srgb,var(--layer-2) 78%,transparent);
  border:1px solid var(--line);border-radius:var(--r-lg);
  backdrop-filter:blur(6px);
  transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t) var(--ease);
}
/* three stages, warming as the case moves from prep to record — the same
   blue-to-warm system used everywhere a sequence appears on the site */
.standard-card:nth-child(2){--c1:#6b4dfb;--c2:#c93cff}
.standard-card:nth-child(3){--c1:#c93cff;--c2:#e8a94e}
.standard-card::before{
  content:"";position:absolute;inset:-1px -1px auto -1px;height:3px;
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  background:linear-gradient(90deg,var(--c1),var(--c2),var(--c1));
  background-size:220% 100%;animation:cardBarFlow 7s linear infinite;
  transition:height var(--t) var(--ease),filter var(--t) var(--ease);
}


.sc-num{
  position:absolute;right:20px;top:18px;font-family:var(--display);font-weight:600;
  font-size:28px;line-height:1;pointer-events:none;letter-spacing:-.01em;
  background:linear-gradient(160deg,var(--c1),var(--c2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  opacity:.5;transition:opacity var(--t) var(--ease);
}

.sc-mark{
  display:block;width:20px;height:17px;margin-bottom:14px;position:relative;z-index:1;
  background:linear-gradient(120deg,var(--c1),var(--c2));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
/* each stage now carries its own icon (clipboard / theatre light / signed
   record) instead of repeating the Vertevance wing three times, so the
   three cards read as three different moments rather than three copies
   of one mark */
.sc-mark--icon{
  width:22px;height:22px;background:none;-webkit-mask:none;mask:none;color:var(--c1);
}
.sc-mark--icon svg{width:100%;height:100%;display:block}
.sc-stage{
  display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:color-mix(in srgb,var(--c1) 65%,#fff);margin-bottom:12px;position:relative;z-index:1;
}
.standard-card h3{
  position:relative;z-index:1;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-weight:600;font-size:19px;letter-spacing:-.012em;margin:0 0 10px;text-wrap:balance;
  transition:color var(--t-fast) var(--ease);
}

.standard-card p{position:relative;z-index:1;margin:0;font-size:14.5px;color:var(--ink-2)}

.standard-actions{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:clamp(24px,3.4vw,34px)}
.standard-proof{
  font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--faint);
  border-top:1px solid var(--line-soft);padding-top:18px;max-width:80ch;
}

@media (max-width:760px){
  .standard-wrap{text-align:left}
}

/* ---------- the three tenets ---------- */
.tenets{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.tenet{
  --c1:#4f5bff;--c2:#6b4dfb;
  position:relative;overflow:hidden;padding:24px 22px 22px;
  background:linear-gradient(165deg,color-mix(in srgb,var(--c1) 7%,var(--layer-2)),var(--layer-2) 60%);
  border:1px solid var(--line);border-radius:var(--r-lg);
  transition:transform var(--t) var(--ease),border-color var(--t-fast) var(--ease),box-shadow var(--t) var(--ease);
}
.tenet:nth-child(2){--c1:#c93cff;--c2:#f0795f}
.tenet:nth-child(3){--c1:#f0795f;--c2:#e8a94e}
.tenet::before{
  content:"";position:absolute;inset:-1px -1px auto -1px;height:3px;z-index:1;
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  background:linear-gradient(90deg,var(--c1),var(--c2),var(--c1));
  background-size:220% 100%;animation:cardBarFlow 7s linear infinite;
  transition:height var(--t) var(--ease),filter var(--t) var(--ease);
}

.tenet::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(140% 100% at 108% 118%,var(--c2),transparent 60%);
  opacity:.1;transition:opacity var(--t) var(--ease);
}


.tenet-num{
  position:absolute;right:20px;top:18px;font-family:var(--display);font-weight:600;
  font-size:26px;line-height:1;letter-spacing:-.01em;z-index:1;
  background:linear-gradient(160deg,var(--c1),var(--c2));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  opacity:.45;transition:opacity var(--t) var(--ease);
}

.tenet-mark{
  display:block;width:20px;height:17px;margin-bottom:14px;position:relative;z-index:1;
  background:linear-gradient(120deg,var(--c1),var(--c2));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
.tenet .tag{
  display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.16em;
  text-transform:uppercase;color:color-mix(in srgb,var(--c1) 60%,var(--muted));margin-bottom:12px;
  position:relative;z-index:1;
}
.tenet h3{position:relative;z-index:1;margin:0 0 10px;font-size:19px;transition:color var(--t-fast) var(--ease)}

.tenet p{position:relative;z-index:1;margin:0;font-size:14.5px;color:var(--ink-2)}

/* ============================================================
   Style pass VIII — interaction-system consolidation, HCP button
   parity, chain/manufacturer/audience refinements, the shared
   theatre-boundary + SAHPRA status components, director card,
   traceability rail, CSSD two-lane diagram, accessibility basics.
   ============================================================ */

/* ---------- skip link ---------- */
.skip-link{
  position:absolute;left:12px;top:-48px;z-index:100;background:var(--layer-3);color:var(--ink);
  padding:10px 16px;border-radius:var(--r-sm);border:1px solid var(--line-bright);
  text-decoration:none;font-size:13.5px;transition:top var(--motion-fast) var(--ease-standard);
}
.skip-link:focus{top:12px}

/* ---------- shared focus-visible ring ---------- */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{
  outline:none;box-shadow:var(--focus-ring);border-radius:var(--r-sm);
}
.btn:focus-visible{box-shadow:var(--focus-ring),0 10px 30px -14px rgba(201,60,255,.6)}

/* ---------- HCP access: its own identity in the header ----------
   this used to share the exact same outline-button styling as every
   other nav link, including the plain "Healthcare professionals" button
   in the home hero — .btn--compact was a deliberate no-op kept only for
   that size match. It first got its own gradient-outlined pill with a
   small lock mark, on the header's old dark-glass background. Now that
   the header itself is a solid brand-blue field, that same blue-violet
   gradient border and icon would sit almost invisibly on top of a
   near-identical blue — so the button's accents revert to white here,
   which is what actually contrasts against the new background. The
   hero's plain-outline button is untouched, since it never carried this
   class. */
.btn--compact{
  position:relative;gap:7px;
  border:1.5px solid rgba(255,255,255,.55);
  background:rgba(255,255,255,.08);
  color:#fff;
  transition:background var(--motion-base) var(--ease-standard),
             border-color var(--motion-base) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard),
             transform var(--motion-base) var(--ease-standard);
}

.btn--compact .btn-ico{display:inline-flex;flex:none;color:#fff}
.btn--compact .btn-ico svg{width:13px;height:13px;display:block}


/* ---------- culture/neuro/etc already covered above; path-hub asymmetry --- */
@media (min-width:900px){
  .path-hub{grid-template-columns:5fr 4fr 3fr}
  /* the 5/4/3 split above is tuned for the home page's three-card audience
     hub; the HCP gateway's seven equal-weight routes just want even
     columns, same as the default .path-hub rule gives at any other width */
  #hcp-hub{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
}

/* ---------- three-up card grids at tablet width ----------
   .standard-cards, .tenets and the home page's #audiences .path-hub each
   hold exactly three items on an auto-fit(minmax(...)) track. That track
   is what collapses them to one column on a phone and gives them three
   even columns on desktop, but across the tablet band the content area
   is wide enough for two of those columns and not quite a third — the
   third item drops alone onto a second row with a wide empty gap beside
   it. Below, that band gets an explicit two-column grid instead, with
   the third card spanning both columns so it reads as a deliberate
   full-width closer rather than an orphan. */
@media (min-width:700px) and (max-width:899px){
  .standard-cards,.tenets,#audiences .path-hub,.grid{
    grid-template-columns:repeat(2,1fr);
  }
  .standard-cards>:last-child,.tenets>:last-child,#audiences .path-hub>:last-child,.grid>:last-child{
    grid-column:1/-1;
    max-width:calc(50% - 8px);
    margin-inline:auto;
  }
  /* the patient-specific pathway page's component strip carries exactly
     four renders — at other widths that either collapses to one column
     or fits all four across, but in this band three fit and the fourth
     is left alone; :has() picks out only the four-item case (the strips
     with three, five, or more items already lay out cleanly here) and
     gives it an even 2x2 instead. */
  .detail-strip:has(> :nth-child(4):last-child){
    grid-template-columns:repeat(2,1fr);
  }
}
.path-hub .ph-tag{
  display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin-bottom:10px;
}
.path-hub a:focus-visible .ph-tag{color:var(--accent)}
.path-hub .go .arw{display:inline-block;transition:transform var(--motion-base) var(--ease-standard);margin-left:4px}
.path-hub a:focus-visible .go .arw{transform:translateX(3px)}

/* ---------- #audiences: three named routes, each its own colour ----------
   The hub previously read as three identical grey boxes; each route now
   carries the colour of who it is for, warming left to right the way any
   other sequence on the site does, and the primary route (HCP) is visually
   the anchor of the row rather than competing evenly with the other two. */
#audiences .path-hub{align-items:stretch}
#audiences .path-hub a{
  --c1:#4f5bff;--c2:#6b4dfb;
  position:relative;overflow:hidden;display:flex;flex-direction:column;
  border-top:1px solid var(--line);
}
#audiences .path-hub a::after{
  content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,var(--c1),var(--c2));
  transition:height var(--motion-base) var(--ease-standard);
}

#audiences .path-hub .ph-proc{--c1:#c93cff;--c2:#f0795f}
#audiences .path-hub .ph-gen{--c1:#f0795f;--c2:#e8a94e}
#audiences .path-hub a::before{background:linear-gradient(110deg,var(--c1),var(--c2))}


#audiences .path-hub .go{margin-top:auto;padding-top:14px}
#audiences .path-hub .ph-hcp{background:linear-gradient(165deg,color-mix(in srgb,var(--c1) 8%,var(--layer-2)),var(--layer-2) 65%)}
/* the top colour bar already carries the identity for this card family —
   the small chevron mark and the bar were competing for the same 4px of
   space at the top edge, so the mark is dropped here rather than nudged */
#audiences .path-hub a::before{content:none}
#audiences .path-hub a{padding-top:26px}
#audiences .path-hub h3{margin-top:0}

/* ---------- about-preview proof rows (7/5 split) ---------- */
@media (min-width:860px){
  .about.about--proof{grid-template-columns:7fr 5fr}
}
.proof-rows{
  margin:0;display:flex;flex-direction:column;gap:0;
  background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:6px clamp(20px,2.6vw,28px);overflow:hidden;position:relative;
}
.proof-rows::before{
  content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,#4f5bff,#6b4dfb,#c93cff,#e8a94e,#4f5bff);
  background-size:220% 100%;animation:cardBarFlow 9s linear infinite;
}
.proof-rows>div{
  position:relative;padding:20px 6px 20px 34px;margin:0 -6px;border-top:1px solid var(--line-soft);
  display:flex;justify-content:space-between;gap:18px;align-items:baseline;
  border-radius:10px;
  transition:background var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard);
}
.proof-rows>div:first-child{border-top:none}
/* the row itself never had its own hover state — only its icon and text
   picked up a colour shift (added when the earlier full-width underline
   was dropped for feeling like an unrelated effect). Next to every other
   card on the page lifting or glowing on interaction, a text-only change
   read as no feedback at all. A soft per-row tint (the same accent colour
   already driving its icon) plus a small shift right, using the
   border-radius already sitting unused on this element, brings it in
   line with the rest of the page. */
@media (hover:hover) and (pointer:fine){
  .proof-rows>div:hover{
    background:color-mix(in srgb,var(--c1,#4f5bff) 10%,transparent);
    transform:translateX(4px);
  }
}
@media (hover:none){
  .proof-rows>div.in-view,.proof-rows>div:active{
    background:color-mix(in srgb,var(--c1,#4f5bff) 10%,transparent);
    transform:translateX(4px);
  }
}
.proof-rows>div::before{
  content:"";position:absolute;left:6px;top:24px;width:20px;height:17px;
  background:linear-gradient(120deg,var(--c1,#4f5bff),var(--c2,#6b4dfb));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
  transition:transform var(--motion-fast) var(--ease-standard);
}

.proof-rows>div:nth-child(2){--c1:#6b4dfb;--c2:#c93cff}
.proof-rows>div:nth-child(3){--c1:#c93cff;--c2:#e8a94e}
.proof-rows dt{font-weight:600;color:var(--ink);white-space:nowrap;font-size:14.5px;transition:color var(--motion-fast) var(--ease-standard)}

.proof-rows dd{margin:0;color:var(--ink-2);font-size:13.5px;text-align:right;max-width:32ch;transition:color var(--motion-fast) var(--ease-standard)}

@media (max-width:560px){ .proof-rows>div{flex-direction:column;gap:4px;padding-left:30px} .proof-rows dd{text-align:left} }
@media (prefers-reduced-motion:reduce){ .proof-rows::before{animation:none} }
.about--proof .actions{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:22px}

/* ---------- director card (About page) ---------- */
.director-card{
  position:relative;background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(28px,4vw,40px);overflow:hidden;align-self:start;
  transition:transform var(--motion-base) var(--ease-standard),
             border-color var(--motion-fast) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard);
}


.director-card__mark{
  position:absolute;right:-10px;top:-10px;width:150px;height:130px;opacity:.06;pointer-events:none;
  background:linear-gradient(120deg,var(--g1),var(--g3));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
  transform-origin:70% 30%;
  animation:markDrift 9s ease-in-out infinite;
  transition:opacity var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}
@keyframes markDrift{
  0%,100%{transform:scale(1) rotate(0deg)}
  50%    {transform:scale(1.03) rotate(-3deg)}
}
.director-card::before{content:"";position:absolute;inset:-1px -1px auto -1px;height:3px;border-radius:var(--r-lg) var(--r-lg) 0 0;background:linear-gradient(90deg,var(--g1),var(--g2) 55%,var(--g3))}
.director-card .eyebrow{margin:0 0 16px;position:relative;z-index:1}
.director-card blockquote{
  position:relative;z-index:1;margin:0 0 24px;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-style:italic;font-size:19px;line-height:1.55;color:var(--ink);max-width:56ch;
}
.director-card blockquote::before{
  content:"\201C";position:absolute;left:-6px;top:-30px;z-index:-1;
  font-family:var(--display);font-style:normal;font-size:100px;line-height:1;
  background:linear-gradient(160deg,var(--g1),var(--g3));-webkit-background-clip:text;
  background-clip:text;color:transparent;opacity:.16;
  transition:opacity var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}

.director-card__identity{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding-top:20px;border-top:1px solid var(--line)}
.director-card__identity strong{display:block;font-size:15.5px;font-weight:600}
.director-card__identity span{display:block;font-size:13px;color:var(--muted);margin-top:2px}
.director-card__facts{position:relative;z-index:1;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:24px 0 0;padding-top:22px;border-top:1px solid var(--line-soft)}
.director-card__facts div{padding:8px 10px 8px 0;border-radius:10px;transition:background var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}

.director-card__facts dt{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-size:20px;margin-bottom:2px;transition:color var(--motion-fast) var(--ease-standard)}

.director-card__facts dd{margin:0;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media (prefers-reduced-motion:reduce){
  .director-card__mark{animation:none}
}
@media (max-width:420px){ .director-card__facts{grid-template-columns:1fr} }
@media (min-width:760px) and (max-width:1023px){ .about > div{min-width:340px} }

/* ---------- manufacturer heading: typography, not a tab ---------- */
.manufacturer-heading{margin-bottom:22px;padding-top:8px;border-top:1px solid var(--line-soft)}
.manufacturer-heading .eyebrow{margin:18px 0 6px}
.manufacturer-heading h3{margin:0 0 8px;font-size:22px}
.manufacturer-meta{margin:0;font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--faint)}

/* ---------- SAHPRA status panel (compact + full) ---------- */
.sahpra-panel{
  position:relative;overflow:hidden;isolation:isolate;
  display:grid;gap:clamp(24px,4vw,40px);margin-top:clamp(28px,4vw,40px);
  padding:clamp(26px,3.8vw,38px);background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);
  transition:transform var(--motion-base) var(--ease-standard),
             border-color var(--motion-base) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard);
}
/* every other card on the page lifts and glows on interaction; this panel
   never had the treatment at all, which on a page of cards that do reads
   as unfinished rather than deliberately calm. Same lift, same violet
   glow as its neighbours (.mfg-panel, .director-card) — on mouse hover,
   and mirrored for touch (scroll-into-view / press) the same way every
   other card's hover was. */
@media (hover:hover) and (pointer:fine){
  .sahpra-panel:hover{
    transform:translateY(-4px);
    border-color:color-mix(in srgb,var(--g2) 35%,var(--line));
    box-shadow:0 24px 48px -30px rgba(142,51,251,.35);
  }
}
@media (hover:none){
  .sahpra-panel.in-view,.sahpra-panel:active{
    transform:translateY(-4px);
    border-color:color-mix(in srgb,var(--g2) 35%,var(--line));
    box-shadow:0 24px 48px -30px rgba(142,51,251,.35);
  }
}
.sahpra-panel::before{
  content:"";position:absolute;inset:0 0 auto 0;height:3px;z-index:1;
  background:linear-gradient(90deg,var(--g1),var(--g3) 55%,var(--warm-1));
}
.sahpra-panel::after{
  content:"";position:absolute;z-index:-1;right:-18%;top:-40%;width:52%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(201,60,255,.14),transparent 65%);
}
@media (min-width:760px){ .sahpra-panel{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)} }
.sahpra-copy h3{margin:0 0 12px;font-size:clamp(19px,2.2vw,23px)}
.sahpra-copy p{margin:0 0 16px;color:var(--ink-2);font-size:14.5px;line-height:1.6}
.sahpra-meta{display:grid;gap:8px;margin:0 0 6px;padding-top:14px;border-top:1px solid var(--line-soft)}
.sahpra-meta div{display:flex;justify-content:space-between;gap:14px;font-size:13px}
.sahpra-meta dt{color:var(--muted)}
.sahpra-meta dd{margin:0;color:var(--ink);text-align:right}
.sahpra-track{
  display:flex;flex-direction:column;justify-content:center;gap:14px;padding:18px 0 18px 20px;
  border-left:1px solid var(--line-soft);
}
@media (max-width:759px){ .sahpra-track{border-left:none;border-top:1px solid var(--line-soft);padding:18px 0 0} }
.sahpra-track-label{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.sahpra-steps{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sahpra-step{
  font-size:12.5px;padding:7px 12px;border-radius:999px;border:1px solid var(--line);color:var(--muted);
  transition:color var(--motion-base) var(--ease-standard),border-color var(--motion-base) var(--ease-standard),background var(--motion-base) var(--ease-standard);
}
/* the three steps warm in sequence — the same blue-to-warm system used
   wherever the site shows a succession of points */
.sahpra-step:nth-child(1){border-color:rgba(90,123,255,.4);color:#c7cfff}
.sahpra-step:nth-child(3){border-color:rgba(201,60,255,.4)}
.sahpra-step.is-current{
  color:#fff;border-color:transparent;
  background:linear-gradient(120deg,var(--g3),var(--warm-2));
  box-shadow:0 8px 20px -10px rgba(255,95,122,.55);
}
.sahpra-arw{color:var(--faint);font-size:12px}
.sahpra-panel--full{margin-top:0}

/* ---------- regulatory follow-through cards (complaints / doc request) ----------
   previously two plain .grid divs sharing the same generic cool-toned
   mark, with a lot of dead vertical space below the link. Two distinct
   actions get two colour-identified cards instead — the whole card is
   now the click target, matching the .path-hub / #hcp-hub treatment. */
.reg-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:28px}
.reg-card{
  display:block;position:relative;padding:24px 24px 22px;
  background:var(--layer-2);border:1px solid var(--line);border-radius:var(--r-lg);
  text-decoration:none;color:var(--ink);overflow:hidden;isolation:isolate;
  transition:transform var(--motion-base) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-base) var(--ease-standard);
}
.reg-card::after{
  content:"";position:absolute;inset:0 0 auto 0;height:3px;z-index:1;
  background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 45%,#fff));
  transform:scaleX(0);transform-origin:0 50%;
  transition:transform var(--motion-base) var(--ease-standard);
}


.reg-icon{
  display:flex;align-items:center;justify-content:center;
  width:38px;height:38px;margin-bottom:16px;border-radius:10px;
  background:color-mix(in srgb,var(--c) 14%,var(--layer-1));color:var(--c);
  transition:background var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard);
}
.reg-icon svg{width:20px;height:20px}

.reg-card h3{margin:0 0 8px;font-size:16.5px}
.reg-card p{margin:0 0 16px;font-size:14.5px;color:var(--ink-2)}
.reg-card .reg-go{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:var(--accent);transition:color var(--motion-base) var(--ease-standard)}

.reg-card .arw{display:inline-block;transition:transform var(--motion-base) var(--ease-standard)}


/* ---------- traceability evidence rail ---------- */
.trace-stages{list-style:none;margin:26px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:18px;position:relative}
.trace-stages::before{content:"";position:absolute;left:0;right:0;top:13px;height:2px;background:linear-gradient(90deg,var(--g1),var(--g2),var(--g3));opacity:.4}
.trace-stages li{position:relative;padding-top:30px}
.ts-num{
  position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;
  display:grid;place-items:center;font-family:var(--mono);font-size:11px;color:#fff;
  background:linear-gradient(120deg,var(--g1),var(--g3));z-index:1;
}
/* each stage warms a step further than the last, starting from brand blue
   and ending on the same warm accent used across the rest of the site */
.trace-stages li:nth-child(1) .ts-num{background:linear-gradient(120deg,#4f5bff,#6b4dfb)}
.trace-stages li:nth-child(2) .ts-num{background:linear-gradient(120deg,#6b4dfb,#c93cff)}
.trace-stages li:nth-child(3) .ts-num{background:linear-gradient(120deg,#c93cff,#f0795f)}
.trace-stages li:nth-child(4) .ts-num{background:linear-gradient(120deg,#f0795f,#e8a94e)}
.trace-stages h3{margin:0 0 6px;font-size:15.5px}
.trace-stages p{margin:0;font-size:13.5px;color:var(--ink-2)}
@media (max-width:760px){
  .trace-stages{grid-template-columns:1fr;gap:22px}
  .trace-stages::before{left:13px;top:0;bottom:0;right:auto;width:2px;height:auto;background:linear-gradient(180deg,var(--g1),var(--g2),var(--g3))}
  .trace-stages li{padding-left:44px;padding-top:0}
  .ts-num{left:0;top:0}
}

/* ---------- CSSD two-lane handoff diagram ---------- */
.handoff-lanes{display:grid;gap:20px;margin-top:22px}
@media (min-width:700px){ .handoff-lanes{grid-template-columns:1fr 1fr} }
/* each lane is its own card — top-bar accent and a small icon, the same
   shell language as the rest of the site, rather than a plain bordered
   box of list rows */
.lane{
  position:relative;overflow:hidden;background:var(--layer-2);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:26px 24px 24px;
  transition:transform var(--motion-base) var(--ease-standard),
             border-color var(--motion-fast) var(--ease-standard),
             box-shadow var(--motion-base) var(--ease-standard);
}
.lane::before{
  content:"";position:absolute;inset:-1px -1px auto -1px;height:3px;
  border-radius:var(--r-lg) var(--r-lg) 0 0;
  background:linear-gradient(90deg,var(--lc),color-mix(in srgb,var(--lc) 55%,#fff),var(--lc));
  background-size:220% 100%;animation:cardBarFlow 7s linear infinite;
}
.lane--vt{--lc:var(--accent)}
.lane--cssd{--lc:var(--coral)}

.lane-icon{display:block;width:20px;height:18px;margin-bottom:14px;color:var(--lc)}
.lane-icon svg{width:100%;height:100%;display:block}
.lane-icon--mark{
  width:20px;height:17px;
  background:linear-gradient(120deg,var(--lc),color-mix(in srgb,var(--lc) 55%,#fff));
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;
  mask:url("/assets/mark-mask.png") center/contain no-repeat;
}
.lane-tag{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}
.lane--vt .lane-tag{color:var(--accent)}
.lane--cssd .lane-tag{color:var(--coral)}
/* the steps read as one connected sequence within their lane — a short
   fixed vertical line behind the numbers, contained entirely inside one
   card so it can never misalign across a responsive reflow the way a
   page-spanning rail used to */
.lane ol{margin:0;padding:0;list-style:none;position:relative;counter-reset:lstep}
.lane ol::before{
  content:"";position:absolute;left:20px;top:16px;bottom:16px;width:1px;
  background:linear-gradient(180deg,var(--lc),transparent);opacity:.35;
}
.lane li{
  position:relative;counter-increment:lstep;padding:10px 14px 10px 46px;margin-bottom:6px;
  border-radius:var(--r-sm);font-size:14px;color:var(--ink-2);
  transition:background-color var(--motion-fast) var(--ease-standard),
             transform var(--motion-fast) var(--ease-standard);
}
.lane li:last-child{margin-bottom:0}

.lane li::before{
  content:counter(lstep,decimal-leading-zero);position:absolute;left:10px;top:50%;
  transform:translateY(-50%);width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;z-index:1;
  background:var(--layer-2);border:1px solid color-mix(in srgb,var(--lc) 45%,var(--line-soft));
  font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--lc);
  transition:background-color var(--motion-fast) var(--ease-standard),
             border-color var(--motion-fast) var(--ease-standard),
             color var(--motion-fast) var(--ease-standard);
}

/* the lane card and each of its steps arrive with a short stagger, rather
   than the whole block appearing at once, so the sequence still reads as
   a sequence even before anyone hovers it */
.lane li:nth-child(1){--d:.05s}
.lane li:nth-child(2){--d:.12s}
.lane li:nth-child(3){--d:.19s}
.lane li:nth-child(4){--d:.26s}
.lane li:nth-child(5){--d:.33s}

.lane-icon{transition:transform var(--motion-base) var(--ease-standard)}


/* ---------- footer: bottom row + back-to-top ---------- */
.footer-top{border-top:1px solid var(--line-soft)}
.footer-bottom{
  display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;
  padding-block:22px;border-top:1px solid var(--line-soft);
}
.footer-legal{max-width:78ch;display:flex;flex-direction:column;gap:8px}
.footer-status{font-size:12.5px;color:var(--ink-2)}
.footer-legal p{margin:0;font-size:12px;color:var(--faint);line-height:1.6}
.back-to-top{
  display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);text-decoration:none;
  white-space:nowrap;transition:color var(--motion-fast) var(--ease-standard);
}
.back-to-top:focus-visible{color:#fff}
.back-to-top .arw{transition:transform var(--motion-base) var(--ease-standard)}
.back-to-top:focus-visible .arw{transform:translateY(-3px)}

@media (prefers-reduced-motion:reduce){
  .dial-feature .shot:focus-within .stage,.neuro-plate:focus-within img,.back-to-top:focus-visible .arw,.path-hub a:focus-visible .go .arw{transition:none}
}@media (prefers-reduced-motion:reduce) and (hover:hover) and (pointer:fine){.dial-feature .shot:hover .stage,
  .neuro-plate:hover img,
  .back-to-top:hover .arw,
  .path-hub a:hover .go .arw{transition:none}}

/* ---------- legal-page verified-data placeholders ---------- */
.legal-doc h2{margin:34px 0 12px;font-size:19px}
.legal-doc h2:first-child{margin-top:0}
.legal-doc p,.legal-doc li{color:var(--ink-2);font-size:15px;line-height:1.65}
.legal-doc ul,.legal-doc ol{padding-left:1.2em;margin:0 0 16px}
.verify{
  display:inline;color:var(--warm-1);border-bottom:1px dashed rgba(255,138,76,.55);
  font-style:italic;
}
.legal-banner{
  background:rgba(255,138,76,.08);border:1px solid rgba(255,138,76,.3);border-radius:var(--r-md);
  padding:14px 18px;font-size:13.5px;color:var(--ink-2);margin-bottom:28px;
}


/* ==========================================================
   Touch/coarse-pointer gate — auto-generated.
   Every :hover-only effect above this point is real interaction
   feedback on a device with a real pointer. On touch, the browser
   has no hover to report, so it either fakes :hover on tap (and
   then leaves it "stuck" until something else is tapped or the
   page scrolls) or fires it transiently on scroll. Gating the whole
   set behind (hover:hover) and (pointer:fine) means none of it can
   ever be triggered by a tap or a scroll on a touch/coarse-pointer
   device — mouse and trackpad users see no change at all.
   ========================================================== */
@media (hover:hover) and (pointer:fine){.logo:hover .mark{
    filter:drop-shadow(0 0 18px rgba(201,60,255,.95)) saturate(1.3) brightness(1.15);
    transform:scale(1.08);
    animation:markSweep 1.1s cubic-bezier(.35,.1,.25,1);
  }.logo:hover::after{opacity:1;transform:translateY(-50%) scale(1)}.logo--lockup:hover img{transform:scale(1.045);filter:drop-shadow(0 0 16px rgba(255,255,255,.45))}.shot:hover .stage>img,.shot:hover>img{
    transform:scale(1);
    filter:drop-shadow(0 38px 70px rgba(0,0,0,.72)) brightness(1.06);
  }.shot:hover .stage::before{border-color:rgba(201,60,255,.45);box-shadow:0 0 44px -6px rgba(201,60,255,.45) inset}.util a:hover{color:#fff}.util a:hover span{transform:translateX(3px)}nav a:hover{color:var(--ink)}.masthead nav a:hover{color:#fff}.btn:hover .arw{transform:translateX(4px)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 18px 38px -16px rgba(201,60,255,1),inset 0 1px 0 rgba(255,255,255,.4)}.btn-line:hover{border-color:rgba(201,60,255,.7);background:rgba(201,60,255,.1);transform:translateY(-2px)}.pillar:hover::before{height:5px;filter:brightness(1.25) saturate(1.1)}.pillar:hover{
    transform:translateY(-4px);
    border-color:color-mix(in srgb,var(--c1) 50%,transparent);
    box-shadow:0 26px 52px -30px color-mix(in srgb,var(--c1) 85%,transparent),
               inset 0 44px 64px -54px var(--c1);
  }.pillar:hover::after{opacity:.22;transform:translate(-8px,-6px) rotate(-6deg)}.pillar:hover h3{color:color-mix(in srgb,var(--c1) 45%,#ffffff)}.step:hover .stepicon{
    border-color:var(--c);transform:translateY(-3px) scale(1.06);
    background:color-mix(in srgb,var(--c) 22%,var(--layer-1));
    box-shadow:0 0 0 5px var(--layer-1),0 0 30px -4px color-mix(in srgb,var(--c) 85%,transparent);
  }.step:hover .stepicon svg{stroke:#ffffff;transform:scale(1.08)}.step:hover .stepicon .steam,.step:hover .stepicon .rays,.step:hover .stepicon .bars{animation-duration:1.4s}.step:hover .stepicon .ink{animation-duration:1.8s}.step:hover .stepicon b{color:var(--c)}.step:hover h3{color:color-mix(in srgb,var(--c) 55%,#ffffff)}.step:hover::before{opacity:1}.range article:hover .path-cta span{transform:translateX(4px)}.psi-stages li:hover{transform:translateY(-3px);border-color:rgba(184,132,255,.4);background:var(--layer-3)}.vow:hover{transform:translateY(-2px);border-color:rgba(184,132,255,.7);
             box-shadow:0 18px 40px -24px rgba(142,51,251,.9)}.vow:hover::after{opacity:1}.vow:hover::before{filter:drop-shadow(0 0 11px rgba(201,60,255,.95));transform:scale(1.14)}.note-flip:hover .note{
    transform:translateY(-5px) rotate(-.35deg);
    border-color:rgba(184,132,255,.42);
    box-shadow:0 26px 54px -30px rgba(0,0,0,.85);
  }.scene:hover{border-color:rgba(255,160,110,.5);transform:translateY(-3px) scale(1.006);
               box-shadow:0 22px 52px -30px rgba(255,95,158,.55),0 0 0 1px rgba(255,160,110,.18)}.scene:hover svg{filter:saturate(1.22) brightness(1.10) contrast(1.02);transform:scale(1.022)}.range article:hover,.grid div:hover,.parts figure:hover,
  .sidecard:hover,.kits:hover{
    transform:translateY(-3px);border-color:rgba(184,132,255,.4);
  }.bounds div:hover,.growth:hover,.about .close:hover{
    transform:translateY(-3px);
    border-color:rgba(184,132,255,.42);
    box-shadow:0 22px 46px -30px rgba(142,51,251,.65),
               inset 26px 0 48px -46px var(--g3);
  }.bounds div:hover::before,.growth:hover::before,.about .close:hover::before{
    width:5px;filter:brightness(1.35) saturate(1.1);
  }.parts figure:hover img{transform:scale(1.06)}.chain li:hover::before{box-shadow:0 0 0 5px var(--layer-1),0 0 18px 2px rgba(201,60,255,.55)}.hcp-gate summary:hover span{transform:translateX(4px)}.hcp-gate[open] summary:hover span{transform:rotate(90deg)}.band dd a:hover{color:#fff}.path-route:hover{transform:translateX(4px);border-color:rgba(184,132,255,.5);background:rgba(255,255,255,.06)}.path-route:hover span{transform:translateX(4px)}.foot-nav a:not(.logo):hover{color:var(--ink)}nav a:not(.btn):hover::after,
  .band dd a:hover::after{transform:scaleX(1)}.range article:hover h3,.grid div:hover h3,
  .bounds div:hover h3,.parts figure:hover figcaption,.chain li:hover h3{color:var(--accent)}.step:hover .stepicon::after{height:26px;opacity:.85}.feature .shot:hover .stage>img{animation:none;translate:0 0;
    transition:translate var(--t-slow) var(--ease),
               transform var(--t-slow) var(--ease),filter var(--t-slow) var(--ease)}.vow:hover h3,.vow:hover p{transform:translateX(3px)}.crumbs a:hover{color:#fff}.pw-tabs a:hover{color:var(--ink);background:rgba(255,255,255,.07)}.pw-tabs a.is-active:hover{color:#fff}
.bounds div:hover ~ .tb-stage{ }.bounds div[data-mark]:hover{border-color:rgba(255,138,99,.55)}.bounds div[data-mark]:hover::before{background:linear-gradient(180deg,var(--coral),var(--coral-2))}.res-row:hover{border-color:rgba(184,132,255,.42);transform:translateX(3px)}.path-hub a:hover{transform:translateY(-4px);border-color:rgba(184,132,255,.45)}#hcp-hub a:hover .ph-icon{background:color-mix(in srgb,var(--c) 26%,var(--layer-1));transform:translateY(-2px)}#hcp-hub a:hover{border-color:color-mix(in srgb,var(--c) 45%,var(--line));box-shadow:0 22px 44px -32px var(--c)}#hcp-hub a:hover .ph-tag{color:color-mix(in srgb,var(--c) 55%,#fff)}#hcp-hub a:hover .go{color:color-mix(in srgb,var(--c) 55%,#fff)}.related a:hover{border-color:rgba(184,132,255,.42);transform:translateX(3px)}.fnav-col a:not(.logo):hover{color:#fff}.fnav-col a:not(.logo):hover::after{transform:scaleX(1)}.mfg-panel:hover{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--g2) 35%,var(--line));
  box-shadow:0 24px 48px -30px rgba(142,51,251,.3);
}.mfg-evidence span:hover{
  border-color:color-mix(in srgb,var(--accent) 45%,var(--line));
  background:rgba(255,255,255,.08);color:#fff;
}.psi-flow li:hover{transform:translateY(-3px)}.grid div:hover::before{transform:translateX(3px) scale(1.08)}.step:hover .stepicon .pulse{animation-duration:1.6s}figure.field:hover img{transform:translateY(-4px) scale(1.02);filter:drop-shadow(0 40px 56px rgba(0,0,0,.72)) drop-shadow(0 0 34px rgba(184,132,255,.3))}.limits li:hover::before{
  background-color:var(--coral-2);transform:scale(1.15);
  box-shadow:0 0 0 6px var(--layer-1),0 0 20px 1px rgba(255,138,99,.6);
}.limits li:hover h3{color:#ffd8c6}.photo:hover{transform:translateY(-3px);border-color:rgba(184,132,255,.4);box-shadow:0 26px 54px -32px rgba(0,0,0,.85)}.photo:hover img{filter:grayscale(0) saturate(1.18) contrast(1.05);transform:scale(1.09)}.path-hub a:hover::before{transform:translateX(4px) scale(1.06)}.boundary figure.field:hover img{filter:drop-shadow(0 0 40px rgba(184,132,255,.36))}.grid div:hover::after,.path-hub a:hover::after,
.range article:hover::after,.res-row:hover::after{transform:scaleX(1)}.prodcard:hover{transform:translateY(-5px);border-color:rgba(184,132,255,.45);box-shadow:0 30px 60px -36px rgba(0,0,0,.9)}.prodcard:hover .pc-stage::before{transform:translate(-50%,-50%) scale(1.1)}.prodcard:hover .pc-stage img{transform:scale(1.06) translateY(-3px);filter:drop-shadow(0 26px 40px rgba(0,0,0,.7)) drop-shadow(0 0 22px rgba(184,132,255,.22))}.prodcard:hover .pc-go span{transform:translateX(4px)}.detail-strip figure:hover{transform:translateY(-4px);border-color:rgba(184,132,255,.42)}.detail-strip figure:hover img{transform:scale(1.07)}.proof-nums div:hover{border-top-color:var(--accent)}figure.field:hover::after,.prodcard:hover .pc-stage::after{opacity:1}.prodcard:hover .pc-code{color:var(--accent)}.facts span:hover{color:#fff}.facts span:hover::before{transform:translateX(3px)}.neuro-plate:hover img{transform:translateY(-3px) scale(1.018);filter:brightness(1.12) saturate(1.1)}.neuro-plate:hover::after{opacity:.85}.flow-step:hover .flow-node{
  background:color-mix(in srgb,var(--c) 26%,var(--layer-1));
  border-color:var(--c);
  box-shadow:0 0 0 7px var(--base), 0 0 30px -6px color-mix(in srgb,var(--c) 95%,transparent);
}.flow-step:hover .flow-num{color:#fff}.flow-step:hover .flow-body h3{color:color-mix(in srgb,var(--c) 45%,#ffffff)}.flow-step:hover .flow-icon svg{stroke:#fff}.flow-step:hover .flow-icon .pulse{opacity:1}figure.field:hover img{transform:translateY(-6px) scale(1.045)}.handoff-link:hover{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 45%,transparent);
  box-shadow:0 20px 40px -30px var(--c);background-size:220% 5px;
}.handoff-link:hover .handoff-num{opacity:.8}.handoff-link:hover h3{color:color-mix(in srgb,var(--c) 42%,#ffffff)}.card-grid-item:hover{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 45%,transparent);
  box-shadow:0 20px 40px -30px var(--c);background-size:220% 5px;
}.card-grid-item:hover .cg-num{opacity:.8}.card-grid-item:hover h3{color:color-mix(in srgb,var(--c) 42%,#ffffff)}.gt-node:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c1) 45%,transparent);box-shadow:0 20px 40px -30px var(--c1)}.gt-node:hover::before{height:5px}.gt-node:hover h3{color:color-mix(in srgb,var(--c1) 45%,#ffffff)}.standard-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c1) 45%,transparent);box-shadow:0 20px 40px -30px var(--c1)}.standard-card:hover::before{height:5px;filter:brightness(1.2)}.standard-card:hover .sc-num{opacity:.85}.standard-card:hover h3{color:color-mix(in srgb,var(--c1) 40%,#ffffff)}.tenet:hover::before{height:5px;filter:brightness(1.2)}.tenet:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c1) 45%,transparent);box-shadow:0 20px 40px -30px var(--c1)}.tenet:hover::after{opacity:.2}.tenet:hover .tenet-num{opacity:.8}.tenet:hover h3{color:color-mix(in srgb,var(--c1) 40%,#ffffff)}.btn--compact:hover{
  background:rgba(255,255,255,.18);
  border-color:#fff;
  box-shadow:0 12px 28px -16px rgba(0,0,0,.4);
  transform:translateY(-2px);
}.btn--compact:hover .btn-ico{color:#fff}.path-hub a:hover .ph-tag{color:var(--accent)}.path-hub a:hover .go .arw{transform:translateX(3px)}#audiences .path-hub a:hover::after{height:5px}#audiences .path-hub a:hover{box-shadow:0 20px 40px -30px var(--c1)}#audiences .path-hub a:hover .ph-tag{color:color-mix(in srgb,var(--c1) 60%,#fff)}.proof-rows>div:hover::before{transform:scale(1.15)}.proof-rows>div:hover dt{color:color-mix(in srgb,var(--c1,#4f5bff) 55%,#fff)}.proof-rows>div:hover dd{color:var(--ink)}.director-card:hover{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--g2) 40%,var(--line));
  box-shadow:0 24px 48px -30px rgba(201,60,255,.35);
}.director-card:hover .director-card__mark{opacity:.13;transform:scale(1.06) rotate(4deg)}.director-card:hover blockquote::before{opacity:.3;transform:translateY(-3px)}.director-card__facts div:hover{background:color-mix(in srgb,var(--g2) 8%,transparent);transform:translateX(2px)}.director-card__facts div:hover dt{color:var(--g2)}.reg-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 45%,var(--line));box-shadow:0 22px 44px -32px var(--c)}.reg-card:hover::after{transform:scaleX(1)}.reg-card:hover .reg-icon{background:color-mix(in srgb,var(--c) 26%,var(--layer-1));transform:translateY(-2px)}.reg-card:hover .reg-go{color:color-mix(in srgb,var(--c) 55%,#fff)}.reg-card:hover .arw{transform:translateX(3px)}.lane:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--lc) 40%,var(--line));box-shadow:0 20px 40px -30px var(--lc)}.lane li:hover{background:rgba(255,255,255,.045);transform:translateX(3px)}.lane li:hover::before{background:var(--lc);border-color:var(--lc);color:#0c0818}.lane:hover .lane-icon{transform:scale(1.12) rotate(-4deg)}.back-to-top:hover{color:#fff}.back-to-top:hover .arw{transform:translateY(-3px)}}

/* ==========================================================
   Touch equivalent — auto-generated, mirrors the block above.
   A device with no real pointer gets no :hover at all (see the
   gate above), but the interaction it stood for still needs a
   way to happen: scrolling a card into view and pressing it both
   trigger the same effect here. .in-view is toggled by an
   IntersectionObserver (initHoverMirror in main.js) on every
   selector this file turns up below; :active covers the press
   itself and needs no script. Persistent chrome (nav, the logo,
   buttons) only gets :active — it does not scroll into view in
   any meaningful sense, so only a press applies there. */
@media (hover:none){
.shot.in-view .stage>img,.shot.in-view>img,.shot:active .stage>img,.shot:active>img{
    transform:scale(1);
    filter:drop-shadow(0 38px 70px rgba(0,0,0,.72)) brightness(1.06);
  }
.shot.in-view .stage::before,.shot:active .stage::before{border-color:rgba(201,60,255,.45);box-shadow:0 0 44px -6px rgba(201,60,255,.45) inset}
.pillar.in-view::before,.pillar:active::before{height:5px;filter:brightness(1.25) saturate(1.1)}
.pillar.in-view,.pillar:active{
    transform:translateY(-4px);
    border-color:color-mix(in srgb,var(--c1) 50%,transparent);
    box-shadow:0 26px 52px -30px color-mix(in srgb,var(--c1) 85%,transparent),
               inset 0 44px 64px -54px var(--c1);
  }
.pillar.in-view::after,.pillar:active::after{opacity:.22;transform:translate(-8px,-6px) rotate(-6deg)}
.pillar.in-view h3,.pillar:active h3{color:color-mix(in srgb,var(--c1) 45%,#ffffff)}
.step.in-view .stepicon,.step:active .stepicon{
    border-color:var(--c);transform:translateY(-3px) scale(1.06);
    background:color-mix(in srgb,var(--c) 22%,var(--layer-1));
    box-shadow:0 0 0 5px var(--layer-1),0 0 30px -4px color-mix(in srgb,var(--c) 85%,transparent);
  }
.step.in-view .stepicon svg,.step:active .stepicon svg{stroke:#ffffff;transform:scale(1.08)}
.step.in-view .stepicon .steam,.step.in-view .stepicon .rays,.step.in-view .stepicon .bars,.step:active .stepicon .steam,.step:active .stepicon .rays,.step:active .stepicon .bars{animation-duration:1.4s}
.step.in-view .stepicon .ink,.step:active .stepicon .ink{animation-duration:1.8s}
.step.in-view .stepicon b,.step:active .stepicon b{color:var(--c)}
.step.in-view h3,.step:active h3{color:color-mix(in srgb,var(--c) 55%,#ffffff)}
.step.in-view::before,.step:active::before{opacity:1}
.range article.in-view .path-cta span,.range article:active .path-cta span{transform:translateX(4px)}
.psi-stages li.in-view,.psi-stages li:active{transform:translateY(-3px);border-color:rgba(184,132,255,.4);background:var(--layer-3)}
.vow.in-view,.vow:active{transform:translateY(-2px);border-color:rgba(184,132,255,.7);
             box-shadow:0 18px 40px -24px rgba(142,51,251,.9)}
.vow.in-view::after,.vow:active::after{opacity:1}
.vow.in-view::before,.vow:active::before{filter:drop-shadow(0 0 11px rgba(201,60,255,.95));transform:scale(1.14)}
.note-flip.in-view .note,.note-flip:active .note{
    transform:translateY(-5px) rotate(-.35deg);
    border-color:rgba(184,132,255,.42);
    box-shadow:0 26px 54px -30px rgba(0,0,0,.85);
  }
.scene.in-view,.scene:active{border-color:rgba(255,160,110,.5);transform:translateY(-3px) scale(1.006);
               box-shadow:0 22px 52px -30px rgba(255,95,158,.55),0 0 0 1px rgba(255,160,110,.18)}
.scene.in-view svg,.scene:active svg{filter:saturate(1.22) brightness(1.10) contrast(1.02);transform:scale(1.022)}
.range article.in-view,.grid div.in-view,.parts figure.in-view,
  .sidecard.in-view,.kits.in-view,.range article:active,.grid div:active,.parts figure:active,
  .sidecard:active,.kits:active{
    transform:translateY(-3px);border-color:rgba(184,132,255,.4);
  }
.bounds div.in-view,.growth.in-view,.about .close.in-view,.bounds div:active,.growth:active,.about .close:active{
    transform:translateY(-3px);
    border-color:rgba(184,132,255,.42);
    box-shadow:0 22px 46px -30px rgba(142,51,251,.65),
               inset 26px 0 48px -46px var(--g3);
  }
.bounds div.in-view::before,.growth.in-view::before,.about .close.in-view::before,.bounds div:active::before,.growth:active::before,.about .close:active::before{
    width:5px;filter:brightness(1.35) saturate(1.1);
  }
.parts figure.in-view img,.parts figure:active img{transform:scale(1.06)}
.chain li.in-view::before,.chain li:active::before{box-shadow:0 0 0 5px var(--layer-1),0 0 18px 2px rgba(201,60,255,.55)}
.hcp-gate summary.in-view span,.hcp-gate summary:active span{transform:translateX(4px)}
.hcp-gate[open] summary.in-view span,.hcp-gate[open] summary:active span{transform:rotate(90deg)}
.path-route.in-view,.path-route:active{transform:translateX(4px);border-color:rgba(184,132,255,.5);background:rgba(255,255,255,.06)}
.path-route.in-view span,.path-route:active span{transform:translateX(4px)}
.range article.in-view h3,.grid div.in-view h3,
  .bounds div.in-view h3,.parts figure.in-view figcaption,.chain li.in-view h3,.range article:active h3,.grid div:active h3,
  .bounds div:active h3,.parts figure:active figcaption,.chain li:active h3{color:var(--accent)}
.step.in-view .stepicon::after,.step:active .stepicon::after{height:26px;opacity:.85}
.feature .shot.in-view .stage>img,.feature .shot:active .stage>img{animation:none;translate:0 0;
    transition:translate var(--t-slow) var(--ease),
               transform var(--t-slow) var(--ease),filter var(--t-slow) var(--ease)}
.vow.in-view h3,.vow.in-view p,.vow:active h3,.vow:active p{transform:translateX(3px)}
.bounds div.in-view ~ .tb-stage,.bounds div:active ~ .tb-stage{ }
.bounds div[data-mark].in-view,.bounds div[data-mark]:active{border-color:rgba(255,138,99,.55)}
.bounds div[data-mark].in-view::before,.bounds div[data-mark]:active::before{background:linear-gradient(180deg,var(--coral),var(--coral-2))}
.res-row.in-view,.res-row:active{border-color:rgba(184,132,255,.42);transform:translateX(3px)}
.path-hub a.in-view,.path-hub a:active{transform:translateY(-4px);border-color:rgba(184,132,255,.45)}
#hcp-hub a.in-view .ph-icon,#hcp-hub a:active .ph-icon{background:color-mix(in srgb,var(--c) 26%,var(--layer-1));transform:translateY(-2px)}
#hcp-hub a.in-view,#hcp-hub a:active{border-color:color-mix(in srgb,var(--c) 45%,var(--line));box-shadow:0 22px 44px -32px var(--c)}
#hcp-hub a.in-view .ph-tag,#hcp-hub a:active .ph-tag{color:color-mix(in srgb,var(--c) 55%,#fff)}
#hcp-hub a.in-view .go,#hcp-hub a:active .go{color:color-mix(in srgb,var(--c) 55%,#fff)}
.related a.in-view,.related a:active{border-color:rgba(184,132,255,.42);transform:translateX(3px)}
.mfg-panel.in-view,.mfg-panel:active{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--g2) 35%,var(--line));
  box-shadow:0 24px 48px -30px rgba(142,51,251,.3);
}
.mfg-evidence span.in-view,.mfg-evidence span:active{
  border-color:color-mix(in srgb,var(--accent) 45%,var(--line));
  background:rgba(255,255,255,.08);color:#fff;
}
.psi-flow li.in-view,.psi-flow li:active{transform:translateY(-3px)}
.grid div.in-view::before,.grid div:active::before{transform:translateX(3px) scale(1.08)}
.step.in-view .stepicon .pulse,.step:active .stepicon .pulse{animation-duration:1.6s}
figure.field.in-view img,figure.field:active img{transform:translateY(-4px) scale(1.02);filter:drop-shadow(0 40px 56px rgba(0,0,0,.72)) drop-shadow(0 0 34px rgba(184,132,255,.3))}
.limits li.in-view::before,.limits li:active::before{
  background-color:var(--coral-2);transform:scale(1.15);
  box-shadow:0 0 0 6px var(--layer-1),0 0 20px 1px rgba(255,138,99,.6);
}
.limits li.in-view h3,.limits li:active h3{color:#ffd8c6}
.photo.in-view,.photo:active{transform:translateY(-3px);border-color:rgba(184,132,255,.4);box-shadow:0 26px 54px -32px rgba(0,0,0,.85)}
.photo.in-view img,.photo:active img{filter:grayscale(0) saturate(1.18) contrast(1.05);transform:scale(1.09)}
.path-hub a.in-view::before,.path-hub a:active::before{transform:translateX(4px) scale(1.06)}
.boundary figure.field.in-view img,.boundary figure.field:active img{filter:drop-shadow(0 0 40px rgba(184,132,255,.36))}
.grid div.in-view::after,.path-hub a.in-view::after,
.range article.in-view::after,.res-row.in-view::after,.grid div:active::after,.path-hub a:active::after,
.range article:active::after,.res-row:active::after{transform:scaleX(1)}
.prodcard.in-view,.prodcard:active{transform:translateY(-5px);border-color:rgba(184,132,255,.45);box-shadow:0 30px 60px -36px rgba(0,0,0,.9)}
.prodcard.in-view .pc-stage::before,.prodcard:active .pc-stage::before{transform:translate(-50%,-50%) scale(1.1)}
.prodcard.in-view .pc-stage img,.prodcard:active .pc-stage img{transform:scale(1.06) translateY(-3px);filter:drop-shadow(0 26px 40px rgba(0,0,0,.7)) drop-shadow(0 0 22px rgba(184,132,255,.22))}
.prodcard.in-view .pc-go span,.prodcard:active .pc-go span{transform:translateX(4px)}
.detail-strip figure.in-view,.detail-strip figure:active{transform:translateY(-4px);border-color:rgba(184,132,255,.42)}
.detail-strip figure.in-view img,.detail-strip figure:active img{transform:scale(1.07)}
.proof-nums div.in-view,.proof-nums div:active{border-top-color:var(--accent)}
figure.field.in-view::after,.prodcard.in-view .pc-stage::after,figure.field:active::after,.prodcard:active .pc-stage::after{opacity:1}
.prodcard.in-view .pc-code,.prodcard:active .pc-code{color:var(--accent)}
.facts span.in-view,.facts span:active{color:#fff}
.facts span.in-view::before,.facts span:active::before{transform:translateX(3px)}
.neuro-plate.in-view img,.neuro-plate:active img{transform:translateY(-3px) scale(1.018);filter:brightness(1.12) saturate(1.1)}
.neuro-plate.in-view::after,.neuro-plate:active::after{opacity:.85}
.flow-step.in-view .flow-node,.flow-step:active .flow-node{
  background:color-mix(in srgb,var(--c) 26%,var(--layer-1));
  border-color:var(--c);
  box-shadow:0 0 0 7px var(--base), 0 0 30px -6px color-mix(in srgb,var(--c) 95%,transparent);
}
.flow-step.in-view .flow-num,.flow-step:active .flow-num{color:#fff}
.flow-step.in-view .flow-body h3,.flow-step:active .flow-body h3{color:color-mix(in srgb,var(--c) 45%,#ffffff)}
.flow-step.in-view .flow-icon svg,.flow-step:active .flow-icon svg{stroke:#fff}
.flow-step.in-view .flow-icon .pulse,.flow-step:active .flow-icon .pulse{opacity:1}
figure.field.in-view img,figure.field:active img{transform:translateY(-6px) scale(1.045)}
.handoff-link.in-view,.handoff-link:active{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 45%,transparent);
  box-shadow:0 20px 40px -30px var(--c);background-size:220% 5px;
}
.handoff-link.in-view .handoff-num,.handoff-link:active .handoff-num{opacity:.8}
.handoff-link.in-view h3,.handoff-link:active h3{color:color-mix(in srgb,var(--c) 42%,#ffffff)}
.card-grid-item.in-view,.card-grid-item:active{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 45%,transparent);
  box-shadow:0 20px 40px -30px var(--c);background-size:220% 5px;
}
.card-grid-item.in-view .cg-num,.card-grid-item:active .cg-num{opacity:.8}
.card-grid-item.in-view h3,.card-grid-item:active h3{color:color-mix(in srgb,var(--c) 42%,#ffffff)}
.gt-node.in-view,.gt-node:active{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c1) 45%,transparent);box-shadow:0 20px 40px -30px var(--c1)}
.gt-node.in-view::before,.gt-node:active::before{height:5px}
.gt-node.in-view h3,.gt-node:active h3{color:color-mix(in srgb,var(--c1) 45%,#ffffff)}
.standard-card.in-view,.standard-card:active{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c1) 45%,transparent);box-shadow:0 20px 40px -30px var(--c1)}
.standard-card.in-view::before,.standard-card:active::before{height:5px;filter:brightness(1.2)}
.standard-card.in-view .sc-num,.standard-card:active .sc-num{opacity:.85}
.standard-card.in-view h3,.standard-card:active h3{color:color-mix(in srgb,var(--c1) 40%,#ffffff)}
.tenet.in-view::before,.tenet:active::before{height:5px;filter:brightness(1.2)}
.tenet.in-view,.tenet:active{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c1) 45%,transparent);box-shadow:0 20px 40px -30px var(--c1)}
.tenet.in-view::after,.tenet:active::after{opacity:.2}
.tenet.in-view .tenet-num,.tenet:active .tenet-num{opacity:.8}
.tenet.in-view h3,.tenet:active h3{color:color-mix(in srgb,var(--c1) 40%,#ffffff)}
.path-hub a.in-view .ph-tag,.path-hub a:active .ph-tag{color:var(--accent)}
.path-hub a.in-view .go .arw,.path-hub a:active .go .arw{transform:translateX(3px)}
#audiences .path-hub a.in-view::after,#audiences .path-hub a:active::after{height:5px}
#audiences .path-hub a.in-view,#audiences .path-hub a:active{box-shadow:0 20px 40px -30px var(--c1)}
#audiences .path-hub a.in-view .ph-tag,#audiences .path-hub a:active .ph-tag{color:color-mix(in srgb,var(--c1) 60%,#fff)}
.proof-rows>div.in-view::before,.proof-rows>div:active::before{transform:scale(1.15)}
.proof-rows>div.in-view dt,.proof-rows>div:active dt{color:color-mix(in srgb,var(--c1,#4f5bff) 55%,#fff)}
.proof-rows>div.in-view dd,.proof-rows>div:active dd{color:var(--ink)}
.director-card.in-view,.director-card:active{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--g2) 40%,var(--line));
  box-shadow:0 24px 48px -30px rgba(201,60,255,.35);
}
.director-card.in-view .director-card__mark,.director-card:active .director-card__mark{opacity:.13;transform:scale(1.06) rotate(4deg)}
.director-card.in-view blockquote::before,.director-card:active blockquote::before{opacity:.3;transform:translateY(-3px)}
.director-card__facts div.in-view,.director-card__facts div:active{background:color-mix(in srgb,var(--g2) 8%,transparent);transform:translateX(2px)}
.director-card__facts div.in-view dt,.director-card__facts div:active dt{color:var(--g2)}
.reg-card.in-view,.reg-card:active{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 45%,var(--line));box-shadow:0 22px 44px -32px var(--c)}
.reg-card.in-view::after,.reg-card:active::after{transform:scaleX(1)}
.reg-card.in-view .reg-icon,.reg-card:active .reg-icon{background:color-mix(in srgb,var(--c) 26%,var(--layer-1));transform:translateY(-2px)}
.reg-card.in-view .reg-go,.reg-card:active .reg-go{color:color-mix(in srgb,var(--c) 55%,#fff)}
.reg-card.in-view .arw,.reg-card:active .arw{transform:translateX(3px)}
.lane.in-view,.lane:active{transform:translateY(-4px);border-color:color-mix(in srgb,var(--lc) 40%,var(--line));box-shadow:0 20px 40px -30px var(--lc)}
.lane li.in-view,.lane li:active{background:rgba(255,255,255,.045);transform:translateX(3px)}
.lane li.in-view::before,.lane li:active::before{background:var(--lc);border-color:var(--lc);color:#0c0818}
.lane.in-view .lane-icon,.lane:active .lane-icon{transform:scale(1.12) rotate(-4deg)}
.logo:active .mark{
    filter:drop-shadow(0 0 18px rgba(201,60,255,.95)) saturate(1.3) brightness(1.15);
    transform:scale(1.08);
    animation:markSweep 1.1s cubic-bezier(.35,.1,.25,1);
  }
.logo:active::after{opacity:1;transform:translateY(-50%) scale(1)}
.logo--lockup:active img{transform:scale(1.045);filter:drop-shadow(0 0 16px rgba(255,255,255,.45))}
.util a:active{color:#fff}
.util a:active span{transform:translateX(3px)}
nav a:active{color:var(--ink)}
.masthead nav a:active{color:#fff}
.btn:active .arw{transform:translateX(4px)}
.btn-primary:active{transform:translateY(-2px);box-shadow:0 18px 38px -16px rgba(201,60,255,1),inset 0 1px 0 rgba(255,255,255,.4)}
.btn-line:active{border-color:rgba(201,60,255,.7);background:rgba(201,60,255,.1);transform:translateY(-2px)}
.band dd a:active{color:#fff}
.foot-nav a:not(.logo):active{color:var(--ink)}
nav a:not(.btn):active::after,
  .band dd a:active::after{transform:scaleX(1)}
.crumbs a:active{color:#fff}
.pw-tabs a:active{color:var(--ink);background:rgba(255,255,255,.07)}
.pw-tabs a.is-active:active{color:#fff}
.fnav-col a:not(.logo):active{color:#fff}
.fnav-col a:not(.logo):active::after{transform:scaleX(1)}
.btn--compact:active{
  background:rgba(255,255,255,.18);
  border-color:#fff;
  box-shadow:0 12px 28px -16px rgba(0,0,0,.4);
  transform:translateY(-2px);
}
.btn--compact:active .btn-ico{color:#fff}
.back-to-top:active{color:#fff}
.back-to-top:active .arw{transform:translateY(-3px)}
}

/* ---------- v50: static hero dial ----------
   The hero background kept reading as a circle appearing and wandering.
   Causes, all removed here: the corner blooms on .top, the breathing violet
   field and turning tick ring on the dial, the scan-grain layer being
   translated ~180px across the render, and the hover glow on the ring.
   The pointer parallax is removed in main.js. The dial is now fully still;
   only the one-time load-in remains. */
.top::before,.top::after{content:none}
.dial-feature .stage,.dial-feature .stage::before,.dial-feature .stage::after{animation:none;transform:none;transition:none}
.dial-feature .shot{will-change:auto}
.hero-grain{animation:none;transform:none}
.dial-feature .shot:hover .stage::before{border-color:rgba(255,255,255,.13);box-shadow:none}

/* ---------- v51: colour field + glass card + grain ----------
   Four large, static colour washes from the corners (violet top, coral
   top-right, rose bottom, indigo bottom-left) replace the flat hero ground.
   The copy sits on a frosted glass card. A fixed film grain covers the
   whole hero so the gradients read as printed colour rather than smooth
   screen light. Nothing here animates. */
.hero{
  background:
    radial-gradient(50% 60% at 95% 10%,rgba(255,138,90,.45),transparent 70%),
    radial-gradient(45% 55% at 70% 100%,rgba(226,85,106,.40),transparent 70%),
    radial-gradient(60% 70% at 0% 100%,rgba(59,70,245,.40),transparent 70%),
    radial-gradient(50% 60% at 40% 0%,rgba(201,60,255,.35),transparent 70%),
    #140a2a;
}
.hero-grid{opacity:.2}
/* grain: a static noise tile over the hero ground, under the content */
.hero::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  width:auto;height:auto;aspect-ratio:auto;border-radius:0;
  left:0;right:0;top:0;bottom:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='1.6' intercept='-0.3'/%3E%3CfeFuncG type='linear' slope='1.6' intercept='-0.3'/%3E%3CfeFuncB type='linear' slope='1.6' intercept='-0.3'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px 220px;
  opacity:1;mix-blend-mode:overlay;
}
.hero .wrap{position:relative;z-index:1}
.hero .wrap>div:first-child{
  position:relative;
  background:rgba(255,255,255,.06);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid rgba(255,255,255,.14);border-radius:22px;
  padding:40px 44px;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.18);
}
.hero .wrap>div:first-child>*{position:relative}
.hero h1 em{background-image:linear-gradient(100deg,#ffb0e0,#ffc59a)}
/* stronger scan grain on the render itself (still static) */
.hero-grain{opacity:.2}
@media (max-width:880px){
  .hero .wrap>div:first-child{padding:28px 24px;border-radius:18px}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .hero .wrap>div:first-child{background:rgba(30,18,60,.82)}
}
@media (max-width:880px){
  .hero{
    background:
      radial-gradient(420px 420px at 100% 0%,rgba(255,138,90,.40),transparent 70%),
      radial-gradient(460px 460px at 0% 30%,rgba(201,60,255,.30),transparent 70%),
      radial-gradient(460px 460px at 100% 75%,rgba(226,85,106,.34),transparent 70%),
      radial-gradient(480px 480px at 0% 100%,rgba(59,70,245,.38),transparent 70%),
      #140a2a;
  }
}

/* ---------- v53: glass surfaces ----------
   Every card and panel on the site becomes a sheet of tinted glass rather
   than a flat violet block: a translucent fill, a backdrop blur that
   picks up whatever colour sits behind it, a bright hairline along the
   top edge where light catches it, a soft gloss inside the top, a faint
   violet under-glow along the bottom edge, and a deep shadow beneath.
   Only background-color, border-color and box-shadow are changed, so the
   cards keep their own gradient bars, numbers and ::before/::after
   details. */
body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
  .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
  .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
  .director-card,.sahpra-panel,.reg-card,.lane,.card-grid-item,.escalate){
  background-color:rgba(32,20,70,.42);
  -webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);
  border-color:rgba(255,255,255,.1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 30px 44px -38px rgba(255,255,255,.18),
    inset 0 -22px 34px -34px rgba(201,60,255,.32),
    0 24px 50px -34px rgba(0,0,0,.85);
  transition:transform var(--t,.5s) var(--ease,ease),border-color var(--t-fast,.3s) var(--ease,ease),box-shadow var(--t,.5s) var(--ease,ease);
}
/* cards whose fill was a solid gradient: same glass, keeping a trace of their tint */
body .tenet{background:linear-gradient(165deg,color-mix(in srgb,var(--c1) 14%,transparent),rgba(32,20,70,.42) 60%)}
body .prodcard{background:linear-gradient(180deg,rgba(40,26,84,.46),rgba(20,12,44,.5))}
body :is(.tenet,.prodcard,.plate,.vow){
  -webkit-backdrop-filter:blur(14px) saturate(1.5);backdrop-filter:blur(14px) saturate(1.5);
  border-color:rgba(255,255,255,.1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 30px 44px -38px rgba(255,255,255,.18),
    inset 0 -22px 34px -34px rgba(201,60,255,.32),
    0 24px 50px -34px rgba(0,0,0,.85);
}
body .escalate{border-color:rgba(255,138,99,.3)}
/* hover: the pane lifts and the top edge catches more light */
@media (hover:hover) and (pointer:fine){
  body :is(.pillar,.range article,.grid>div,.res-row,.path-hub a,.related a,.psi-stages li,.psi-flow li,
    .detail-strip figure,.gt-node,.standard-card,.director-card,.reg-card,.lane,.card-grid-item,
    .tenet,.prodcard,.plate,.vow,.sidecard,.note):hover{
    border-color:rgba(255,255,255,.2);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.28),
      inset 0 34px 48px -38px rgba(255,255,255,.24),
      inset 0 -22px 34px -30px rgba(201,60,255,.45),
      0 34px 60px -34px rgba(0,0,0,.9),
      0 0 40px -18px rgba(201,60,255,.35);
  }
  body :is(.pillar,.grid>div,.gt-node,.standard-card,.director-card,.reg-card,.lane,.card-grid-item,
    .tenet,.plate,.sidecard,.note):hover{transform:translateY(-4px)}
}

/* ---------- v53: the hero card — the expensive glass ----------
   Thicker, clearer and more reflective than the cards below it: a deeper
   blur with boosted saturation, a gradient rim (bright at the top-left
   where the light comes from, a warm catch at the bottom-right), a
   diagonal specular sheen, a second inner edge so the pane reads as
   thick bevelled glass, faint chromatic fringing on the sides, and a
   tinted shadow. It lifts on hover and the sheen slides across it. */
.hero .wrap>div:first-child{
  background:
    linear-gradient(115deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.04) 22%,rgba(255,255,255,0) 40%,rgba(255,255,255,0) 70%,rgba(255,190,160,.06) 100%),
    linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
  background-size:200% 100%,100% 100%;
  background-position:100% 0,0 0;
  -webkit-backdrop-filter:blur(30px) saturate(1.8) brightness(1.06);
  backdrop-filter:blur(30px) saturate(1.8) brightness(1.06);
  border:1px solid transparent;
  outline:1px solid rgba(255,255,255,.06);outline-offset:-8px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(0,0,0,.28),
    inset 3px 0 8px -6px rgba(255,120,160,.55),
    inset -3px 0 8px -6px rgba(90,130,255,.55),
    inset 0 40px 60px -50px rgba(255,255,255,.28),
    0 50px 110px -40px rgba(8,0,28,.95),
    0 0 80px -30px rgba(201,60,255,.45);
  transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s cubic-bezier(.2,.7,.2,1),background-position 1.2s cubic-bezier(.2,.7,.2,1);
}
/* gradient rim, painted as a masked border so it can fade around the corners */
.hero .wrap>div:first-child::after{
  content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(255,255,255,.14) 28%,rgba(255,255,255,.05) 55%,rgba(255,176,140,.22) 80%,rgba(255,210,180,.55));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
}
@media (hover:hover) and (pointer:fine){
  .hero .wrap>div:first-child:hover{
    transform:translateY(-6px);
    background-position:0% 0,0 0;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.55),
      inset 0 -1px 0 rgba(0,0,0,.28),
      inset 3px 0 8px -6px rgba(255,120,160,.7),
      inset -3px 0 8px -6px rgba(90,130,255,.7),
      inset 0 40px 60px -50px rgba(255,255,255,.34),
      0 70px 120px -40px rgba(8,0,28,1),
      0 0 100px -30px rgba(201,60,255,.6);
  }
}
@media (prefers-reduced-motion:reduce){
  .hero .wrap>div:first-child,.hero .wrap>div:first-child:hover{transition:none;transform:none}
}

/* ---------- v53: colour behind the glass ----------
   Glass only reads as glass when there is colour behind it to blur and
   pick up. Every section that holds cards gets two or three large,
   static washes in the hero's palette, sitting low where the cards are.
   Alternating sections mirror the placement so the page doesn't repeat. */
main section:not(.standard):not(.hero):has(:is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,.psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,.director-card,.sahpra-panel,.reg-card,.lane,.card-grid-item,.escalate,.tenet,.prodcard,.plate,.vow)){
  --glow:
    radial-gradient(38% 55% at 12% 78%,rgba(201,60,255,.20),transparent 70%),
    radial-gradient(34% 50% at 88% 88%,rgba(255,138,90,.15),transparent 70%),
    radial-gradient(30% 45% at 55% 70%,rgba(59,70,245,.14),transparent 70%);
}
main section.alt:not(.hero):has(:is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,.psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,.director-card,.sahpra-panel,.reg-card,.lane,.card-grid-item,.escalate,.tenet,.prodcard,.plate,.vow)){
  --glow:
    radial-gradient(38% 55% at 88% 75%,rgba(201,60,255,.20),transparent 70%),
    radial-gradient(34% 50% at 10% 90%,rgba(226,85,106,.15),transparent 70%),
    radial-gradient(30% 45% at 45% 65%,rgba(59,70,245,.14),transparent 70%);
}

/* ---------- v54: one glass for every card ----------
   Clear rather than tinted: almost no fill of its own, so the violet,
   coral and indigo washes behind each section come straight through and
   colour the card. Built from two background layers and the border so it needs no
   pseudo-elements (every card keeps its own ::before/::after):
     1. a diagonal specular reflection across the top-left
     2. a barely-there fill, faintly violet at the bottom
     3. a rim drawn with a different colour on each edge — bright where
        the light hits the top and left, a warm catch on the bottom and right
   plus a heavy saturated blur, a lit top edge, faint pink/blue fringing
   on the sides, and a deep tinted shadow. */
body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
  .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
  .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
  .director-card,.sahpra-panel,.reg-card,.lane,.escalate,.tenet,.prodcard,.plate,.vow,
  .card-grid-item,.handoff-link){
  --g-spec:linear-gradient(115deg,rgba(236,226,255,.075) 0%,rgba(236,226,255,.02) 16%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 78%,rgba(255,220,200,.035) 100%);
  --g-fill:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.018) 55%,rgba(201,60,255,.07));
  background:var(--g-spec),var(--g-fill);
  background-color:rgba(14,8,34,.16);
  border:1px solid;
  border-color:rgba(255,255,255,.34) rgba(255,196,170,.16) rgba(255,176,146,.24) rgba(255,255,255,.2);
  -webkit-backdrop-filter:blur(22px) saturate(1.8) brightness(1.05);
  backdrop-filter:blur(22px) saturate(1.8) brightness(1.05);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 3px 0 8px -7px rgba(255,120,160,.55),
    inset -3px 0 8px -7px rgba(90,130,255,.55),
    inset 0 -24px 36px -34px rgba(201,60,255,.4),
    0 30px 60px -36px rgba(8,0,28,.95);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s cubic-bezier(.2,.7,.2,1);
}
/* the three-stage cards keep a trace of their own colour in the glass */
body .tenet{
  background:var(--g-spec) padding-box,
    linear-gradient(165deg,color-mix(in srgb,var(--c1) 20%,transparent),transparent 60%) padding-box,
    var(--g-fill) padding-box;
}
body .escalate{
  border-color:rgba(255,190,160,.45) rgba(255,138,99,.2) rgba(255,138,99,.32) rgba(255,190,160,.3);
}
/* cards whose colour bar is painted as a background layer: keep the bar on top */
body :is(.card-grid-item,.handoff-link){
  background:linear-gradient(90deg,var(--c),color-mix(in srgb,var(--c) 55%,#fff),var(--c)) padding-box,
    var(--g-spec) padding-box,var(--g-fill) padding-box;
  background-repeat:no-repeat;
  background-size:220% 3px,100% 100%,100% 100%;
  background-position:0% top;
}
/* one hover for every card: the whole pane lifts, its lit edge brightens
   and it throws a soft coloured glow. No card moves sideways, and no row
   inside a card reacts on its own. */
@media (hover:hover) and (pointer:fine){
  body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
    .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
    .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
    .director-card,.sahpra-panel,.reg-card,.lane,.escalate,.tenet,.prodcard,.plate,.vow,
    .card-grid-item,.handoff-link):hover{
    transform:translateY(-5px);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.42),
      inset 3px 0 8px -6px rgba(255,120,160,.7),
      inset -3px 0 8px -6px rgba(90,130,255,.7),
      inset 0 -24px 36px -30px rgba(201,60,255,.55),
      0 44px 80px -36px rgba(8,0,28,1),
      0 0 60px -22px rgba(201,60,255,.45);
  }
  body :is(.card-grid-item,.handoff-link):hover{background-size:220% 5px,100% 100%,100% 100%}
}
body :is(.card-grid-item,.handoff-link):is(.in-view,:active){background-size:220% 5px,100% 100%,100% 100%}

/* rows inside a card stay still — the card is the thing that responds */
body .proof-rows>div:is(:hover,.in-view,:active),
body .lane li:is(:hover,.in-view,:active){background:transparent;transform:none}
body .proof-rows>div:is(:hover,.in-view,:active)::before{transform:none}
body .proof-rows>div:is(:hover,.in-view,:active) dt{color:var(--ink)}
body .proof-rows>div:is(:hover,.in-view,:active) dd{color:var(--ink-2)}
body .lane li:is(:hover,.in-view,:active)::before{
  background:var(--layer-2);border-color:color-mix(in srgb,var(--lc) 45%,var(--line-soft));color:var(--lc)}

/* ---------- v54: light in the sections ----------
   Three quiet, static lighting set-ups, rotated down the page so no two
   neighbouring sections are lit the same way. Each has a glowing seam on
   the section's top edge (a very flat ellipse of light) with a different
   key light: an overhead wash, a warm diagonal beam, or a cool light
   from the top-left corner. They sit on top of the colour washes. */
main section:not(.hero):not(.standard):not(.band):not(.phero){
  --light:
    radial-gradient(42% 2px at 50% 0,rgba(255,206,176,.6),transparent),
    radial-gradient(38% 150px at 50% 0,rgba(201,60,255,.16),transparent);
  background-image:var(--light),var(--glow,linear-gradient(transparent,transparent));
}
main section:not(.hero):not(.standard):not(.band):not(.phero):nth-of-type(3n+2){
  --light:
    radial-gradient(34% 2px at 70% 0,rgba(255,214,184,.55),transparent),
    linear-gradient(118deg,transparent 50%,rgba(255,214,180,.04) 58%,rgba(255,214,180,.075) 63%,rgba(255,214,180,.04) 68%,transparent 76%),
    radial-gradient(30% 120px at 70% 0,rgba(255,138,90,.12),transparent);
}
main section:not(.hero):not(.standard):not(.band):not(.phero):nth-of-type(3n){
  --light:
    radial-gradient(34% 2px at 28% 0,rgba(190,200,255,.55),transparent),
    radial-gradient(38% 75% at 0% 0%,rgba(110,130,255,.13),transparent 70%),
    linear-gradient(62deg,transparent 58%,rgba(170,180,255,.035) 64%,rgba(170,180,255,.06) 68%,transparent 76%);
}
@media (hover:hover) and (pointer:fine){
  body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
    .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
    .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
    .director-card,.sahpra-panel,.reg-card,.lane,.tenet,.prodcard,.plate,.vow,
    .card-grid-item,.handoff-link):hover{
    border-color:rgba(255,255,255,.5) rgba(255,196,170,.24) rgba(255,176,146,.36) rgba(255,255,255,.3);
  }
}

/* ---------- v55: smoked glass for legibility ----------
   The clear glass let bright patches of the section colour sit directly
   behind body copy. The cards are now smoked: a dark violet tint that is
   still translucent (the colour behind reads as a glow through the pane,
   not as a background to the text), a slightly lighter blur so the
   colour arrives soft and even, and the small secondary text inside
   cards (labels, meta, captions) is lifted a step so it holds up on it. */
body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
  .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
  .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
  .director-card,.sahpra-panel,.reg-card,.lane,.escalate,.tenet,.prodcard,.plate,.vow,
  .card-grid-item,.handoff-link){
  --g-fill:linear-gradient(180deg,rgba(14,8,34,.62),rgba(14,8,34,.7) 60%,rgba(24,10,48,.66));
  background-color:transparent;
  -webkit-backdrop-filter:blur(26px) saturate(1.6);
  backdrop-filter:blur(26px) saturate(1.6);
  --muted:#b3a6d6;
  --faint:#9a8cc0;
  --ink-2:#dcd2f4;
}
/* coloured labels on the smoked glass: lifted toward white so the darker
   stage colours (#6b4dfb, #4f5bff) still clear 4.5:1 */
body :is(.handoff-role,.cg-label,.gt-tag){color:color-mix(in srgb,var(--c,var(--accent)) 62%,#fff)}
/* hero card: a touch more smoke behind the copy, and the eyebrow lifted */
.hero .wrap>div:first-child{background-color:rgba(14,8,34,.34)}
.hero .wrap>div:first-child .eyebrow{color:#d6cbf2}

/* ---------- v56: dropdowns ----------
   The option list inherited the page's near-white text while Windows
   draws the native list on white, so the options were invisible. The
   list now gets its own dark surface and light text, the control gets a
   custom chevron in place of the OS arrow, and it shows a pointer (the
   text caret was being applied to it along with inputs). */
.field select{
  -webkit-appearance:none;appearance:none;
  padding-right:42px;
  background-color:rgba(255,255,255,.03);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23c9bde8' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:12px 8px;
  cursor:pointer;color-scheme:dark;
}
.field select:focus{background-color:rgba(255,255,255,.05)}
.field select:hover{border-color:rgba(184,132,255,.45)}
.field select option{background-color:#1a1040;color:#f4f0fd}
.field select option:checked{background-color:#3b2a86;color:#fff}
.field select option[value=""]{color:#b3a6d6}
.field select:invalid,.field select:has(option[value=""]:checked){color:var(--muted)}
@media (hover:hover) and (pointer:fine){ .field select{cursor:pointer} }

/* ---------- v56: top strip + breadcrumb bar ----------
   Both bars now sit in the same family as the brand header between
   them: the strip above is its deepest shade (near-black violet, the
   warm amber wash removed), and the breadcrumb bar below is the header's
   own blue-to-violet run taken down to a dark shade, so the three read
   as one stepped band — dark, bright, dark — instead of a brown strip,
   a blue bar and a grey one. */
.util{background:linear-gradient(90deg,#0f0726 0%,#170a36 50%,#1a0a3a 100%);border-bottom:1px solid rgba(142,51,251,.18)}
.util::before{background:radial-gradient(60% 260% at 88% 50%,rgba(142,51,251,.16),transparent 70%)}
.util::after{background:linear-gradient(90deg,transparent 4%,rgba(91,100,255,.5) 30%,rgba(201,60,255,.55) 65%,transparent 96%);opacity:.6;height:1px}
.crumbs{
  background:linear-gradient(90deg,#15154a 0%,#1d1356 45%,#260f55 100%);
  border-bottom:1px solid rgba(142,51,251,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.crumbs .wrap{color:#b8aee0}
.crumbs a{color:#d9d1f5}
.crumbs span.here{color:#fff}

/* ================= v56: organic, circular, still =================
   One background language for the whole site: soft round glows that
   overlap like light pooling (sized in px so they stay circles at any
   width, never stretched ellipses), the fine film grain, and nothing
   else. Removed: the diagonal light beams, the big wing-mark watermarks,
   the square grids and the dashed wave lines. Nothing in the background
   moves — every drift/breathe animation on a background layer is off. */
.hero-grid,.hero-wave,.standard-grid,.phero-motif,.phero-echo,.phero-glow{display:none!important}
.band::after{content:none}
.phero::before,.phero::after,.feature::before,.band::before{animation:none!important}

/* section light: three arrangements of overlapping round glows, rotated */
main section:not(.hero):not(.standard):not(.band):not(.phero){
  --light:
    radial-gradient(circle 380px at 16% 0%,rgba(201,60,255,.15),transparent 70%),
    radial-gradient(circle 230px at 28% 10%,rgba(255,150,110,.08),transparent 70%);
}
main section:not(.hero):not(.standard):not(.band):not(.phero):nth-of-type(3n+2){
  --light:
    radial-gradient(circle 420px at 84% 2%,rgba(255,138,90,.11),transparent 70%),
    radial-gradient(circle 260px at 70% 0%,rgba(201,60,255,.12),transparent 70%);
}
main section:not(.hero):not(.standard):not(.band):not(.phero):nth-of-type(3n){
  --light:
    radial-gradient(circle 460px at 50% -8%,rgba(110,130,255,.13),transparent 70%),
    radial-gradient(circle 220px at 62% 4%,rgba(201,60,255,.10),transparent 70%);
}
/* colour behind the cards, now as circles */
main section:not(.standard):not(.hero):has(:is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,.psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,.director-card,.sahpra-panel,.reg-card,.lane,.card-grid-item,.escalate,.tenet,.prodcard,.plate,.vow)){
  --glow:
    radial-gradient(circle 540px at 8% 82%,rgba(201,60,255,.20),transparent 70%),
    radial-gradient(circle 300px at 22% 96%,rgba(255,130,120,.10),transparent 70%),
    radial-gradient(circle 460px at 92% 90%,rgba(255,138,90,.14),transparent 70%),
    radial-gradient(circle 380px at 56% 72%,rgba(59,70,245,.13),transparent 70%);
}
main section.alt:not(.hero):has(:is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,.psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,.director-card,.sahpra-panel,.reg-card,.lane,.card-grid-item,.escalate,.tenet,.prodcard,.plate,.vow)){
  --glow:
    radial-gradient(circle 540px at 92% 78%,rgba(201,60,255,.20),transparent 70%),
    radial-gradient(circle 300px at 78% 96%,rgba(120,110,255,.10),transparent 70%),
    radial-gradient(circle 460px at 6% 92%,rgba(226,85,106,.14),transparent 70%),
    radial-gradient(circle 380px at 44% 66%,rgba(59,70,245,.13),transparent 70%);
}

/* home hero: the same colour field, rebuilt from circles */
@media (min-width:881px){
  .hero{
    background:
      radial-gradient(circle 560px at 96% 6%,rgba(255,138,90,.42),transparent 70%),
      radial-gradient(circle 300px at 82% 30%,rgba(255,110,140,.12),transparent 70%),
      radial-gradient(circle 520px at 70% 104%,rgba(226,85,106,.36),transparent 70%),
      radial-gradient(circle 620px at 0% 104%,rgba(59,70,245,.40),transparent 70%),
      radial-gradient(circle 540px at 38% -6%,rgba(201,60,255,.34),transparent 70%),
      radial-gradient(circle 260px at 74% 48%,rgba(201,60,255,.12),transparent 70%),
      #140a2a;
  }
}

/* ---------- v56: page title sections ----------
   Every interior page now opens the way the home page does: a field of
   round glows (the page's own accent colour, --c, leads where a page sets
   one) under the same film grain, with the eyebrow, title and
   description on a sheet of the same premium glass as the home hero
   card. The HCP section tabs sit above the card. */
.phero{
  --c:#c93cff;
  background:
    radial-gradient(circle 480px at 90% 8%,color-mix(in srgb,var(--c) 42%,transparent),transparent 70%),
    radial-gradient(circle 300px at 74% 72%,rgba(255,138,90,.20),transparent 70%),
    radial-gradient(circle 220px at 97% 84%,rgba(226,85,106,.22),transparent 70%),
    radial-gradient(circle 560px at -2% 112%,rgba(59,70,245,.30),transparent 70%),
    radial-gradient(circle 340px at 30% -20%,rgba(201,60,255,.16),transparent 70%),
    #120a28;
  border-bottom:1px solid rgba(142,51,251,.2);
}
.phero::before{content:none}
.phero::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:1;
  -webkit-mask:none;mask:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncR type='linear' slope='1.6' intercept='-0.3'/%3E%3CfeFuncG type='linear' slope='1.6' intercept='-0.3'/%3E%3CfeFuncB type='linear' slope='1.6' intercept='-0.3'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:220px 220px;mix-blend-mode:overlay;
}
.phero .wrap{position:relative;z-index:1;padding-block:clamp(40px,6vw,76px) clamp(40px,6vw,72px)}
.phero .pw-tabs{margin-bottom:22px}

/* the premium glass, shared by the home hero card and every title card */
:is(.hero .wrap>div:first-child,.phero-card){
  position:relative;
  background:
    linear-gradient(115deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.04) 22%,rgba(255,255,255,0) 40%,rgba(255,255,255,0) 70%,rgba(255,190,160,.06) 100%),
    linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
  background-color:rgba(14,8,34,.34);
  background-size:200% 100%,100% 100%;
  background-position:100% 0,0 0;
  -webkit-backdrop-filter:blur(30px) saturate(1.8) brightness(1.06);
  backdrop-filter:blur(30px) saturate(1.8) brightness(1.06);
  border:1px solid transparent;border-radius:22px;
  outline:1px solid rgba(255,255,255,.06);outline-offset:-8px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(0,0,0,.28),
    inset 3px 0 8px -6px rgba(255,120,160,.55),
    inset -3px 0 8px -6px rgba(90,130,255,.55),
    inset 0 40px 60px -50px rgba(255,255,255,.28),
    0 50px 110px -40px rgba(8,0,28,.95),
    0 0 80px -30px rgba(201,60,255,.45);
  transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s cubic-bezier(.2,.7,.2,1),background-position 1.2s cubic-bezier(.2,.7,.2,1);
}
.phero-card{max-width:800px;padding:clamp(28px,3.4vw,42px) clamp(24px,3.6vw,46px)}
.phero-card::after{
  content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(255,255,255,.14) 28%,rgba(255,255,255,.05) 55%,rgba(255,176,140,.22) 80%,rgba(255,210,180,.55));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
}
.phero-card>*{position:relative}
.phero-card .eyebrow{color:#d6cbf2}
.phero-card .lede{color:#e2d9f7}
.phero-card .notice{margin-top:20px}
@media (hover:hover) and (pointer:fine){
  :is(.hero .wrap>div:first-child,.phero-card):hover{
    transform:translateY(-6px);
    background-position:0% 0,0 0;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.55),
      inset 0 -1px 0 rgba(0,0,0,.28),
      inset 3px 0 8px -6px rgba(255,120,160,.7),
      inset -3px 0 8px -6px rgba(90,130,255,.7),
      inset 0 40px 60px -50px rgba(255,255,255,.34),
      0 70px 120px -40px rgba(8,0,28,1),
      0 0 100px -30px rgba(201,60,255,.6);
  }
}
@media (max-width:880px){
  .phero{
    background:
      radial-gradient(circle 320px at 100% 0%,color-mix(in srgb,var(--c) 40%,transparent),transparent 70%),
      radial-gradient(circle 260px at 90% 100%,rgba(255,138,90,.20),transparent 70%),
      radial-gradient(circle 340px at 0% 100%,rgba(59,70,245,.30),transparent 70%),
      #120a28;
  }
  .phero-card{border-radius:18px}
}
@media (prefers-reduced-motion:reduce){
  .phero-card,.phero-card:hover{transition:none;transform:none}
}

/* footer: the large drifting wing watermark goes with the rest of the
   diagonal marks; the footer gets one soft round glow instead */
.footer-motif{display:none!important}
footer{position:relative;isolation:isolate;
  background:
    radial-gradient(circle 420px at 8% 110%,rgba(142,51,251,.14),transparent 70%),
    radial-gradient(circle 360px at 96% 0%,rgba(59,70,245,.10),transparent 70%),
    var(--base)}

/* the remaining plain boxes join the smoked glass: route links and notes */
body :is(.path-route,main section .notice:not(.phero-notice)){
  background:linear-gradient(115deg,rgba(236,226,255,.075) 0%,rgba(236,226,255,.02) 16%,rgba(255,255,255,0) 30%),
    linear-gradient(180deg,rgba(14,8,34,.62),rgba(14,8,34,.7) 60%,rgba(24,10,48,.66));
  -webkit-backdrop-filter:blur(26px) saturate(1.6);backdrop-filter:blur(26px) saturate(1.6);
  border:1px solid;
  border-color:rgba(255,255,255,.3) rgba(255,196,170,.14) rgba(255,176,146,.2) rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 24px 50px -36px rgba(8,0,28,.95);
  transition:transform .5s cubic-bezier(.2,.7,.2,1),box-shadow .5s cubic-bezier(.2,.7,.2,1),border-color .3s;
}
main section .notice:not(.phero-notice){color:#c9bde8}
@media (hover:hover) and (pointer:fine){
  body .path-route:hover{
    transform:translateY(-4px);
    border-color:rgba(255,255,255,.46) rgba(255,196,170,.22) rgba(255,176,146,.32) rgba(255,255,255,.28);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 36px 60px -34px rgba(8,0,28,1),0 0 50px -22px rgba(201,60,255,.45);
  }
  body .path-route:hover span{transform:none}
}
/* the last three large wing watermarks behind content (pillar cards,
   the warm section motif, the director card) go too — the brand mark
   stays where it is an icon, not a background texture */
.pillar::after,.section-motif,.director-card__mark{display:none!important}
.phero-card .notice{color:#cfc4ee}

/* ================= v57: the mark, back as a quiet watermark =================
   Drawn from a vector trace of the logo (assets/mark.svg) so it stays
   crisp at any size. Always static, always upright, never cropped into
   stray diagonal stripes: a faint etched-glass version of the mark —
   a pale top-left edge running into the brand blue-violet — that fades
   out toward its point, with a soft round glow of its own behind it.
   It appears in four places only: behind the home hero's glass card
   (where the glass blurs it into a presence rather than a shape), to the
   right of every page's title card, in the closing call-to-action band,
   and in the footer. */
.hero::before,.phero::before,.band::after,footer::after{
  content:"";position:absolute;pointer-events:none;
  aspect-ratio:256/222;height:auto;
  background:linear-gradient(140deg,rgba(255,255,255,.55) 0%,rgba(190,170,255,.35) 22%,rgba(91,100,255,.45) 50%,rgba(170,70,255,.5) 78%,rgba(255,170,150,.3) 100%);
  -webkit-mask:url("/assets/mark.svg") center/contain no-repeat,linear-gradient(180deg,#000 30%,rgba(0,0,0,.18) 100%);
  -webkit-mask-composite:source-in;
  mask:url("/assets/mark.svg") center/contain no-repeat,linear-gradient(180deg,#000 30%,rgba(0,0,0,.18) 100%);
  mask-composite:intersect;
  border-radius:0;transform:none;animation:none;
}
/* home hero: large, behind the glass card */
.hero::before{
  z-index:0;left:clamp(40px,6vw,120px);top:50%;translate:0 -46%;
  width:clamp(420px,40vw,600px);opacity:.3;
}
/* page titles: to the right of the card, with its own glow */
.phero::before{
  z-index:0;right:clamp(32px,8vw,150px);top:50%;translate:0 -50%;
  width:clamp(260px,26vw,400px);opacity:.34;
}
.phero{
  background:
    radial-gradient(circle 300px at 80% 52%,color-mix(in srgb,var(--c) 20%,transparent),transparent 70%),
    radial-gradient(circle 480px at 90% 8%,color-mix(in srgb,var(--c) 42%,transparent),transparent 70%),
    radial-gradient(circle 300px at 74% 72%,rgba(255,138,90,.20),transparent 70%),
    radial-gradient(circle 220px at 97% 84%,rgba(226,85,106,.22),transparent 70%),
    radial-gradient(circle 560px at -2% 112%,rgba(59,70,245,.30),transparent 70%),
    radial-gradient(circle 340px at 30% -20%,rgba(201,60,255,.16),transparent 70%),
    #120a28;
}
/* closing band */
.band{isolation:isolate}
.band::after{
  z-index:-1;right:clamp(24px,7vw,140px);top:50%;bottom:auto;translate:0 -50%;
  width:clamp(220px,22vw,330px);opacity:.26;
}
/* footer */
footer::after{
  z-index:-1;right:clamp(16px,5vw,90px);bottom:clamp(24px,4vw,56px);
  width:clamp(160px,16vw,240px);opacity:.14;
}
@media (max-width:880px){
  .hero::before{display:none}
  .phero::before{right:-36px;top:auto;bottom:-26px;translate:none;width:210px;opacity:.22}
  .band::after{right:-30px;top:auto;bottom:-30px;translate:none;width:180px;opacity:.18}
  footer::after{width:140px;opacity:.1}
}
/* placement fixes: the old full-bleed inset on .phero::before was still
   pinning the mark to the left edge; the hero mark is etched into the
   glass card itself (whole, never cropped); the footer already carries
   the full logo, so it keeps no watermark */
.phero::before{left:auto;bottom:auto;inset:auto}
.phero::before{right:clamp(32px,8vw,150px);top:50%}
.band::after{left:auto}
footer::after{content:none}
.hero::before{content:none}
.hero .wrap>div:first-child::before{
  content:"";position:absolute;pointer-events:none;z-index:0;
  right:26px;bottom:24px;width:150px;aspect-ratio:256/222;
  background:linear-gradient(140deg,rgba(255,255,255,.9),rgba(190,170,255,.6) 40%,rgba(170,90,255,.6));
  -webkit-mask:url("/assets/mark.svg") center/contain no-repeat;mask:url("/assets/mark.svg") center/contain no-repeat;
  opacity:.07;
}
@media (max-width:880px){
  .phero::before{right:18px;top:auto;bottom:18px;translate:none;width:150px;opacity:.2}
  .hero .wrap>div:first-child::before{width:110px;right:18px;bottom:18px}
}
.phero::before{right:clamp(32px,6vw,110px);width:clamp(240px,22vw,340px);opacity:.26}
.hero .wrap>div:first-child::before{width:100px;right:22px;bottom:22px}
@media (max-width:880px){ .phero::before{display:none} }

/* ================= v58 ================= */

/* home hero card: no logo inside the glass */
.hero .wrap>div:first-child::before{content:none}

/* ---------- hero + title cards: warm hover ----------
   The hover used to slide a pale specular sheen in from the top-left,
   which read as a cream smudge. The sheen now stays put, and the card
   answers the pointer with the brand's complementary warmth instead:
   a coral-amber pool rising inside the lower edge, a warm catch on the
   right-hand rim, and a soft coral-rose halo around the pane. */
@media (hover:hover) and (pointer:fine){
  :is(.hero .wrap>div:first-child,.phero-card):hover{
    background-position:100% 0,0 0;
    box-shadow:
      inset 0 1px 0 rgba(255,226,208,.5),
      inset 0 -1px 0 rgba(0,0,0,.28),
      inset 3px 0 8px -6px rgba(255,120,160,.6),
      inset -3px 0 10px -6px rgba(255,160,110,.75),
      inset 0 -70px 90px -70px rgba(255,138,90,.42),
      inset -80px -30px 110px -80px rgba(255,120,140,.28),
      0 70px 120px -40px rgba(8,0,28,1),
      0 0 90px -26px rgba(255,138,90,.5),
      0 0 150px -46px rgba(226,85,106,.4);
  }
}

/* ---------- title cards: typography ----------
   The eyebrow becomes a small tracked label led by a short accent line
   (instead of a pale italic that read as a caption), the heading is
   larger and tighter with a faint top-lit gradient and a soft glow for
   depth, a short accent rule separates it from the description, and the
   description is set brighter and a touch larger on an easier measure. */
.phero .wrap{padding-block:clamp(36px,5vw,64px)}
.phero-card{padding:clamp(30px,3.6vw,46px) clamp(26px,3.8vw,50px)}
.phero-card .eyebrow{
  display:flex;align-items:center;gap:12px;margin:0 0 20px;
  font-family:var(--mono);font-style:normal;font-weight:500;font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase;
  color:color-mix(in srgb,var(--c,#c93cff) 38%,#fff);
}
.phero-card .eyebrow::before{
  content:"";flex:none;width:28px;height:1.5px;border-radius:2px;
  background:linear-gradient(90deg,var(--c,#c93cff),#f0795f);
}
.phero-card h1{
  font-size:clamp(32px,4.2vw,54px);line-height:1.06;letter-spacing:-.022em;margin:0 0 22px;
  background:linear-gradient(180deg,#ffffff 35%,#ddd2ff);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 22px rgba(201,60,255,.28));
  text-wrap:balance;
}
.phero-card h1::after{
  content:"";display:block;width:64px;height:2px;margin-top:22px;border-radius:2px;
  background:linear-gradient(90deg,var(--c,#c93cff),#f0795f);
}
.phero-card .lede{
  font-size:clamp(16.5px,1.45vw,19px);line-height:1.62;color:#ece6fb;max-width:60ch;margin:0;
}

/* ---------- home hero dial: purple glass disc + hover halo ----------
   The richer violet field under the implant comes back, now as a disc of
   glass: a blurred, saturated pane with a lit top edge, a violet core
   and a deep under-shadow. Hovering the render lights a vibrant radial
   glow inside the disc — magenta at the heart, violet, then indigo —
   that swells gently into place and fades out when the pointer leaves.
   It only ever grows and fades on the spot; nothing travels. */
.dial-feature .stage::before{
  inset:4%;
  background:
    radial-gradient(closest-side,rgba(201,60,255,.42),rgba(142,51,251,.22) 48%,rgba(91,70,245,.10) 72%,rgba(255,255,255,.02) 100%),
    linear-gradient(150deg,rgba(255,255,255,.10),rgba(255,255,255,0) 40%);
  -webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 -40px 70px -30px rgba(201,60,255,.32),
    inset 0 0 0 1px rgba(255,255,255,.03),
    0 40px 90px -40px rgba(8,0,28,.9);
}
.hero-halo{
  position:absolute;inset:4%;border-radius:50%;z-index:0;pointer-events:none;
  background:radial-gradient(closest-side,rgba(255,120,220,.62),rgba(201,60,255,.5) 32%,rgba(120,80,255,.28) 58%,rgba(59,70,245,.10) 78%,transparent 100%);
  opacity:0;transform:scale(.86);
  transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1);
}
.dial-feature .stage>img{position:relative;z-index:1}
@media (hover:hover) and (pointer:fine){
  .dial-feature .shot:hover .hero-halo{opacity:1;transform:scale(1)}
  .dial-feature .shot:hover .stage::before{
    border-color:rgba(255,255,255,.26);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.45),
      inset 0 -40px 70px -30px rgba(255,90,200,.4),
      inset 0 0 0 1px rgba(255,255,255,.05),
      0 40px 90px -40px rgba(8,0,28,.9),
      0 0 70px -20px rgba(201,60,255,.55);
  }
}
@media (prefers-reduced-motion:reduce){ .hero-halo{transition:opacity .2s} }

/* ---------- brand header: more vibrant, still brand blue ----------
   The same blue-to-violet run, saturated a step, with a lit top edge,
   a cool bright bloom on the left behind the logo and a violet bloom on
   the right, so the bar has depth instead of a flat two-stop fill. */
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,0) 55%),
    radial-gradient(38% 190% at 10% 0%,rgba(120,160,255,.55),transparent 70%),
    radial-gradient(34% 170% at 90% 100%,rgba(214,70,255,.42),transparent 70%),
    linear-gradient(90deg,#3441ff 0%,#4a46ff 34%,#6b3dff 66%,#9633ff 100%);
  border-bottom:1px solid rgba(255,255,255,.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22);
}

/* ---------- breadcrumb bar: a subtle gradient, not a flat fill ----------
   A dark shade of the header's own blue-to-violet run, with a faint lit
   top edge, a soft bloom behind the trail on the left, and a gradient
   hairline along the bottom. */
.crumbs{
  background:
    linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0) 70%),
    radial-gradient(30% 220% at 14% 50%,rgba(110,120,255,.20),transparent 70%),
    radial-gradient(28% 220% at 92% 50%,rgba(201,60,255,.16),transparent 70%),
    linear-gradient(90deg,#191a5c 0%,#1f1860 38%,#28145f 68%,#1c0f48 100%);
  border-bottom:0;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),inset 0 -1px 0 rgba(142,51,251,.32);
}
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,0) 55%),
    radial-gradient(34% 190% at 12% 0%,rgba(96,130,255,.32),transparent 70%),
    radial-gradient(34% 170% at 90% 100%,rgba(214,70,255,.38),transparent 70%),
    linear-gradient(90deg,#3340ff 0%,#4744ff 34%,#6a3cff 66%,#9533ff 100%);
}

/* ================= v59 ================= */

/* ---------- hero + title cards: warm hover balanced with cool ----------
   Warmth still leads (coral-amber pooling up the lower right), now met by
   a cool counterpart: an ice-blue catch on the left rim, a faint cool
   light in the upper left, and the outer halo split between a coral
   glow offset down-right and a blue glow offset up-left. */
@media (hover:hover) and (pointer:fine){
  :is(.hero .wrap>div:first-child,.phero-card):hover{
    box-shadow:
      inset 0 1px 0 rgba(236,236,255,.5),
      inset 0 -1px 0 rgba(0,0,0,.28),
      inset 3px 0 12px -6px rgba(120,176,255,.75),
      inset -3px 0 12px -6px rgba(255,160,110,.75),
      inset 90px 60px 120px -90px rgba(96,150,255,.26),
      inset 0 -70px 90px -70px rgba(255,138,90,.4),
      inset -80px -30px 110px -80px rgba(255,120,140,.24),
      0 70px 120px -40px rgba(8,0,28,1),
      26px 22px 90px -30px rgba(255,138,90,.46),
      -26px -18px 90px -34px rgba(80,140,255,.42),
      0 0 150px -50px rgba(201,60,255,.35);
  }
}

/* ---------- breadcrumb bar: the whole palette, sliding right to left ----------
   A dark-tuned run through every colour the site uses — brand blue,
   violet, magenta, rose, coral, and the cool ice-blue — that loops
   seamlessly from right to left (the pattern is two identical runs
   laid side by side, and it moves by exactly one run). A static lit
   top edge and bottom hairline sit above it on their own layer. */
.crumbs{
  position:relative;isolation:isolate;
  background-image:linear-gradient(90deg,
    #1c2270 0%,#28208a 9%,#361a86 18%,#46177a 27%,#521a64 35%,#5a2150 43%,
    #4a1f58 50%,#2a2a78 58%,#183a74 66%,#1a2f7e 74%,#222486 83%,#1c2270 100%);
  background-size:200vw 100%;background-repeat:repeat-x;
  animation:crumbsFlow 26s linear infinite;
  box-shadow:none;border-bottom:0;
}
.crumbs::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,0) 65%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),inset 0 -1px 0 rgba(201,60,255,.38);
}
.crumbs .wrap{position:relative;z-index:1}
@keyframes crumbsFlow{from{background-position:0 0}to{background-position:-200vw 0}}
@media (prefers-reduced-motion:reduce){ .crumbs{animation:none} }

/* ---------- closing band: the mark, and it comes alive on hover ----------
   The watermark is now a real element so it can be hovered on its own.
   At rest it is the same faint etched mark; hovering it lifts it into
   view and sets a warm-and-cool gradient flowing through the logo's
   chevrons — brand blue, ice blue, violet, coral, rose — inside the
   shape only. */
.band::after{content:none}
.band .wrap{position:relative;z-index:1;pointer-events:none}
.band .wrap *{pointer-events:auto}
.band-mark{
  position:absolute;z-index:0;
  right:clamp(24px,7vw,140px);top:50%;translate:0 -50%;
  width:clamp(220px,22vw,330px);aspect-ratio:256/222;
  background:linear-gradient(140deg,rgba(255,255,255,.55) 0%,rgba(190,170,255,.35) 22%,rgba(91,100,255,.45) 50%,rgba(170,70,255,.5) 78%,rgba(255,170,150,.3) 100%);
  -webkit-mask:url("/assets/mark.svg") center/contain no-repeat;mask:url("/assets/mark.svg") center/contain no-repeat;
  opacity:.26;cursor:default;
  transition:opacity .6s cubic-bezier(.2,.7,.2,1),scale .6s cubic-bezier(.2,.7,.2,1),filter .6s;
}
@keyframes markFlow{from{background-position:0% 50%}to{background-position:-300% 50%}}
@media (hover:hover) and (pointer:fine){
  .band-mark:hover{
    opacity:.95;scale:1.04;
    background:linear-gradient(115deg,#3b46f5 0%,#38bdf8 12%,#8e33fb 25%,#f0795f 38%,#e2556a 50%,#3b46f5 62%,#38bdf8 75%,#c93cff 88%,#3b46f5 100%);
    background-size:300% 100%;
    animation:markFlow 7s linear infinite;
    filter:drop-shadow(0 0 0 transparent);
  }
}
@media (max-width:880px){ .band-mark{right:-30px;top:auto;bottom:-30px;translate:none;width:180px;opacity:.18} }

/* the footer logo on every page responds the same way */
@media (hover:hover) and (pointer:fine){
  footer .logo:hover .mark{
    background:linear-gradient(115deg,#3b46f5 0%,#38bdf8 12%,#8e33fb 25%,#f0795f 38%,#e2556a 50%,#3b46f5 62%,#38bdf8 75%,#c93cff 88%,#3b46f5 100%);
    background-size:300% 100%;
    animation:markFlow 5s linear infinite;
  }
}
@media (prefers-reduced-motion:reduce){ .band-mark:hover,footer .logo:hover .mark{animation:none} }

/* ---------- header logo: a step larger, header unchanged ----------
   The bar's height is set by the HCP button, so the lockup can grow
   without moving it. */
.logo--lockup img{height:40px}
@media (max-width:880px){ .logo--lockup img{height:33px} }
/* the mark sits above the band's text layer so it can be hovered */
.band-mark{z-index:2}
.band-mark{right:clamp(24px,3vw,60px);width:clamp(200px,18vw,270px)}

/* ================= v60 ================= */

/* ---------- brand header: a whisper of the mark as wallpaper ----------
   A half-drop tile of tiny white marks laid over the blue-violet at 5%,
   faded out behind the logo and toward the edges, so it reads as a
   woven texture in the bar rather than a pattern. Static, and always
   under the logo, nav and button. */
.masthead{position:sticky;isolation:isolate}
.masthead::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url("/assets/mark-tile.svg") 0 0/96px 72px repeat;
  opacity:.055;
  -webkit-mask:linear-gradient(90deg,transparent 0%,#000 18%,#000 55%,rgba(0,0,0,.5) 80%,transparent 100%);
  mask:linear-gradient(90deg,transparent 0%,#000 18%,#000 55%,rgba(0,0,0,.5) 80%,transparent 100%);
}
.masthead .wrap{position:relative;z-index:1}

/* ---------- section 10 mark: never over the words ----------
   The mark now sits beneath the band's text layer. Only the links and
   buttons in that layer catch the pointer, so the empty space around
   the words passes hover through to the mark — it still lights up, but
   every word is painted above it and stays fully readable. */
.band-mark{z-index:0}
.band .wrap,.band .wrap *{pointer-events:none}
.band .wrap :is(a,button,input,select,textarea,label,summary){pointer-events:auto}
.band .wrap :is(h2,p,dd,dt,.sec-note){position:relative;z-index:1;text-shadow:0 1px 14px rgba(10,5,32,.65)}

/* ---------- the moving bar: a fuller spectrum ----------
   Brand blue, indigo, violet, magenta, rose, coral, amber, teal and
   ice blue, all taken down to the same dark value so the bar stays a
   quiet band and the breadcrumb text reads the same over every hue. */
.crumbs{
  background-image:linear-gradient(90deg,
    #1c2270 0%,#24208a 7%,#321b8a 14%,#431784 21%,#521a70 28%,#5c1c5e 34%,
    #5e2248 40%,#5a2c38 46%,#4e3230 51%,#3b3140 56%,#1f3a52 62%,#17405e 67%,
    #183a74 73%,#1c3182 80%,#20288a 87%,#1c2270 100%);
}
/* header wallpaper: three rows of marks, each row a step larger, scaled
   to the bar's own height so exactly three lines fit on every screen */
.masthead::before{background:url("/assets/mark-tile.svg") 0 0/auto 100% repeat-x;opacity:.06}

/* ================= v62: brand header ================= */
/* wallpaper removed */
.masthead::before{content:none}
/* A richer run of hues, still anchored in the brand blue and violet:
   deep brand blue at the logo, through electric blue, indigo and violet,
   to purple and magenta on the right. Soft blooms add depth — a cool
   azure light behind the logo, a violet swell under the centre of the
   nav, a magenta-rose glow at the far right — with a lit top edge and a
   faint shade along the bottom so the bar has body. Everything stays
   dark enough behind the white text to keep it crisp. */
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,.03) 40%,rgba(255,255,255,0) 60%,rgba(20,0,60,.16) 100%),
    radial-gradient(26% 170% at 8% 0%,rgba(70,170,255,.42),transparent 70%),
    radial-gradient(22% 150% at 30% 110%,rgba(40,90,255,.35),transparent 70%),
    radial-gradient(26% 160% at 58% 0%,rgba(150,90,255,.30),transparent 70%),
    radial-gradient(24% 170% at 82% 110%,rgba(220,60,240,.42),transparent 70%),
    radial-gradient(18% 150% at 99% 20%,rgba(255,90,170,.36),transparent 70%),
    linear-gradient(90deg,#2a3cff 0%,#3448ff 16%,#4442ff 32%,#5a3cff 48%,#7536ff 64%,#8f31fb 80%,#a82ff0 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.26),inset 0 -1px 0 rgba(255,255,255,.12);
}

/* ================= v62: brand header ================= */
/* wallpaper removed */
.masthead::before{content:none}
/* More hues and more light, all on brand: a bright electric brand blue
   at the logo, through royal indigo and brand violet, into a luminous
   magenta-violet at the button end. Layered over it: a lit top edge, a
   bright cool-blue bloom behind the logo, a violet bloom mid-bar and a
   magenta bloom at the right, with a fine luminous hairline along the
   bottom edge. */
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.04) 45%,rgba(0,0,0,.06) 100%),
    radial-gradient(30% 170% at 8% 0%,rgba(110,160,255,.55),transparent 70%),
    radial-gradient(26% 150% at 48% 110%,rgba(150,90,255,.40),transparent 70%),
    radial-gradient(30% 180% at 94% 20%,rgba(236,90,255,.50),transparent 70%),
    linear-gradient(90deg,#3a4dff 0%,#4b52ff 18%,#5b48ff 36%,#7443ff 54%,#8f3cff 72%,#a93aff 88%,#bb44ff 100%);
  border-bottom:1px solid rgba(255,255,255,.26);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 1px 0 rgba(201,60,255,.35),0 10px 30px -18px rgba(120,70,255,.7);
}
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.03) 45%,rgba(0,0,0,.08) 100%),
    radial-gradient(28% 160% at 8% 0%,rgba(70,120,255,.55),transparent 70%),
    radial-gradient(26% 150% at 50% 110%,rgba(120,60,255,.45),transparent 70%),
    radial-gradient(26% 170% at 95% 10%,rgba(214,60,255,.45),transparent 70%),
    linear-gradient(90deg,#3342ff 0%,#4148ff 18%,#5440ff 36%,#6b38ff 54%,#8433fb 72%,#9d33f6 88%,#ae38f2 100%);
}

/* ================= v63: scroll = hover on touch screens =================
   Phones and tablets have no pointer, so every hover effect added from
   v53 on is mirrored here: main.js marks an element .in-view while it
   crosses the middle band of the screen (the middle 40%), and it takes
   the same state it would under a mouse — cards lift and catch light,
   the hero and title cards glow warm-and-cool, the dial behind the
   implant lights up, and the closing-band and footer marks run their
   colour. Scrolling on releases it again. */
@media (hover:none),(pointer:coarse){
  body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
    .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
    .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
    .director-card,.sahpra-panel,.reg-card,.lane,.escalate,.tenet,.prodcard,.plate,.vow,
    .card-grid-item,.handoff-link).in-view{
    transform:translateY(-5px);
    border-color:rgba(255,255,255,.5) rgba(255,196,170,.24) rgba(255,176,146,.36) rgba(255,255,255,.3);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.42),
      inset 3px 0 8px -6px rgba(255,120,160,.7),
      inset -3px 0 8px -6px rgba(90,130,255,.7),
      inset 0 -24px 36px -30px rgba(201,60,255,.55),
      0 44px 80px -36px rgba(8,0,28,1),
      0 0 60px -22px rgba(201,60,255,.45);
  }
  body .escalate.in-view{border-color:rgba(255,190,160,.6) rgba(255,138,99,.3) rgba(255,138,99,.45) rgba(255,190,160,.4)}
  body :is(.card-grid-item,.handoff-link).in-view{background-size:220% 5px,100% 100%,100% 100%}
  body .path-route.in-view{
    transform:translateY(-4px);
    border-color:rgba(255,255,255,.46) rgba(255,196,170,.22) rgba(255,176,146,.32) rgba(255,255,255,.28);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.36),0 36px 60px -34px rgba(8,0,28,1),0 0 50px -22px rgba(201,60,255,.45);
  }

  /* hero card + page title cards: the warm-and-cool glow */
  :is(.hero .wrap>div:first-child,.phero-card).in-view{
    transform:translateY(-6px);
    box-shadow:
      inset 0 1px 0 rgba(236,236,255,.5),
      inset 0 -1px 0 rgba(0,0,0,.28),
      inset 3px 0 12px -6px rgba(120,176,255,.75),
      inset -3px 0 12px -6px rgba(255,160,110,.75),
      inset 90px 60px 120px -90px rgba(96,150,255,.26),
      inset 0 -70px 90px -70px rgba(255,138,90,.4),
      inset -80px -30px 110px -80px rgba(255,120,140,.24),
      0 70px 120px -40px rgba(8,0,28,1),
      26px 22px 90px -30px rgba(255,138,90,.46),
      -26px -18px 90px -34px rgba(80,140,255,.42),
      0 0 150px -50px rgba(201,60,255,.35);
  }

  /* the dial behind the implant lights up */
  .dial-feature .shot.in-view .hero-halo{opacity:1;transform:scale(1)}
  .dial-feature .shot.in-view .stage::before{
    border-color:rgba(255,255,255,.26);
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.45),
      inset 0 -40px 70px -30px rgba(255,90,200,.4),
      inset 0 0 0 1px rgba(255,255,255,.05),
      0 40px 90px -40px rgba(8,0,28,.9),
      0 0 70px -20px rgba(201,60,255,.55);
  }

  /* the marks run their colour */
  .band-mark.in-view{
    opacity:.9;
    background:linear-gradient(115deg,#3b46f5 0%,#38bdf8 12%,#8e33fb 25%,#f0795f 38%,#e2556a 50%,#3b46f5 62%,#38bdf8 75%,#c93cff 88%,#3b46f5 100%);
    background-size:300% 100%;
    animation:markFlow 7s linear infinite;
  }
  footer .logo.in-view .mark{
    background:linear-gradient(115deg,#3b46f5 0%,#38bdf8 12%,#8e33fb 25%,#f0795f 38%,#e2556a 50%,#3b46f5 62%,#38bdf8 75%,#c93cff 88%,#3b46f5 100%);
    background-size:300% 100%;
    animation:markFlow 5s linear infinite;
  }
}
@media (prefers-reduced-motion:reduce){
  .band-mark.in-view,footer .logo.in-view .mark{animation:none}
  :is(.hero .wrap>div:first-child,.phero-card).in-view,body .in-view{transform:none}
}
.band .wrap{position:relative;z-index:2}
.band-mark{z-index:0}
@media (max-width:880px){
  .band-mark{right:16px;left:auto;top:18px;bottom:auto;translate:none;width:110px}
}
@media (max-width:880px){ .band-mark{top:auto;bottom:34px;right:18px;width:100px} }

/* ================= v64: smoother logo colour flow =================
   Fewer, wider colour stops blended in the OKLCH colour space (which
   mixes hues through their natural midpoints instead of greying out
   between them), laid across a much wider field, and drifted slowly
   back and forth with an ease-in-out rather than jumping round a loop —
   so the colour glides through the mark instead of banding across it. */
:root{
  --mark-flow:linear-gradient(120deg,#3b46f5 0%,#4f8dfa 18%,#8e5cff 36%,#c75cf0 52%,#ff8f7a 68%,#b45cf5 84%,#4a5cf7 100%);
}
@supports (background:linear-gradient(in oklch 90deg,red,blue)){
  :root{
    --mark-flow:linear-gradient(in oklch 120deg,#3b46f5 0%,#4f8dfa 18%,#8e5cff 36%,#c75cf0 52%,#ff8f7a 68%,#b45cf5 84%,#4a5cf7 100%);
  }
}
@keyframes markGlide{
  0%  {background-position:0% 50%}
  100%{background-position:100% 50%}
}
@media (hover:hover) and (pointer:fine){
  .band-mark:hover{
    background:var(--mark-flow);background-size:360% 360%;
    animation:markGlide 9s cubic-bezier(.45,.05,.55,.95) infinite alternate;
  }
  footer .logo:hover .mark{
    background:var(--mark-flow);background-size:360% 360%;
    animation:markGlide 7s cubic-bezier(.45,.05,.55,.95) infinite alternate;
  }
}
@media (hover:none),(pointer:coarse){
  .band-mark.in-view{
    background:var(--mark-flow);background-size:360% 360%;
    animation:markGlide 9s cubic-bezier(.45,.05,.55,.95) infinite alternate;
  }
  footer .logo.in-view .mark{
    background:var(--mark-flow);background-size:360% 360%;
    animation:markGlide 7s cubic-bezier(.45,.05,.55,.95) infinite alternate;
  }
}
/* the colour fades in rather than switching on */
.band-mark,footer .logo .mark{transition:opacity .6s cubic-bezier(.2,.7,.2,1),scale .6s cubic-bezier(.2,.7,.2,1),background-color .6s,filter .6s}

/* ================= v65: brand header, one shade deeper =================
   Same hues and layout as v62, every colour taken down a step: deeper
   brand blue, indigo, violet and magenta, softer highlights, and a
   touch more shade along the bottom edge. */
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.02) 45%,rgba(0,0,0,.12) 100%),
    radial-gradient(28% 160% at 8% 0%,rgba(60,105,240,.45),transparent 70%),
    radial-gradient(26% 150% at 50% 110%,rgba(105,50,230,.40),transparent 70%),
    radial-gradient(26% 170% at 95% 10%,rgba(190,50,235,.38),transparent 70%),
    linear-gradient(90deg,#2b38e6 0%,#373de8 18%,#4736e6 36%,#5c30e6 54%,#722ce0 72%,#882cdb 88%,#962fd6 100%);
  border-bottom:1px solid rgba(255,255,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 1px 0 rgba(180,55,235,.3),0 10px 30px -18px rgba(100,60,230,.65);
}
/* v66: remove the grey tap flash on phones, so a press shows only the
   site's own pressed state */
@media (hover:none),(pointer:coarse){ body *{-webkit-tap-highlight-color:transparent} }

/* ================= v67: home hero — clean, saturated, high-tech =================
   No grain anywhere in the hero: the film grain over the background and
   the scan-grain over the implant render are both gone, so every edge
   and gradient is optically clean. The colour field is rebuilt with
   richer, more saturated light (electric brand blue, violet, magenta,
   coral) over a deeper ink, finished with a soft vignette so the light
   reads as lit glass rather than paint. The dial gets instrument detail:
   a crisp outer hairline ring, brighter precision ticks with a quiet
   cyan accent, and a luminous rim on the glass disc. */
.hero::after{content:none}
.hero-grain{display:none!important}
@media (min-width:881px){
  .hero{
    background:
      radial-gradient(120% 90% at 50% 40%,transparent 55%,rgba(4,0,18,.55) 100%),
      radial-gradient(circle 520px at 97% 4%,rgba(255,120,80,.46),transparent 70%),
      radial-gradient(circle 300px at 84% 28%,rgba(255,80,170,.20),transparent 70%),
      radial-gradient(circle 560px at 72% 108%,rgba(236,60,140,.40),transparent 70%),
      radial-gradient(circle 660px at -4% 106%,rgba(40,70,255,.55),transparent 70%),
      radial-gradient(circle 580px at 36% -10%,rgba(176,60,255,.48),transparent 70%),
      radial-gradient(circle 420px at 78% 50%,rgba(150,60,255,.26),transparent 70%),
      radial-gradient(circle 360px at 16% 44%,rgba(80,110,255,.16),transparent 70%),
      linear-gradient(160deg,#150a36,#0d0626 60%,#12072c);
  }
}
@media (max-width:880px){
  .hero{
    background:
      radial-gradient(circle 420px at 100% 0%,rgba(255,120,80,.42),transparent 70%),
      radial-gradient(circle 460px at 0% 30%,rgba(176,60,255,.40),transparent 70%),
      radial-gradient(circle 460px at 100% 75%,rgba(236,60,140,.36),transparent 70%),
      radial-gradient(circle 480px at 0% 100%,rgba(40,70,255,.50),transparent 70%),
      linear-gradient(160deg,#150a36,#0d0626 60%,#12072c);
  }
}
/* dial: instrument finish */
.dial-feature .stage{border-radius:50%;box-shadow:0 0 0 1px rgba(160,190,255,.12),0 0 0 7px rgba(120,90,255,.035),0 0 0 8px rgba(160,190,255,.07)}
.dial-feature .stage::after{
  background:
    repeating-conic-gradient(from 0deg,rgba(210,225,255,.62) 0deg .35deg,transparent .35deg 7.5deg),
    repeating-conic-gradient(from 0deg,rgba(120,220,255,.9) 0deg .6deg,transparent .6deg 45deg);
}
.dial-feature .stage::before{
  border-color:rgba(190,205,255,.22);
  background:
    radial-gradient(closest-side,rgba(206,70,255,.50),rgba(150,55,255,.26) 48%,rgba(80,80,255,.12) 72%,rgba(255,255,255,.02) 100%),
    conic-gradient(from 210deg,rgba(255,255,255,0),rgba(255,255,255,.09) 40deg,rgba(255,255,255,0) 90deg,rgba(255,255,255,0) 360deg);
}
.hero-readout b{color:#bfe9ff;letter-spacing:.24em}
.hero-readout span{color:#a79bd6}
@media (min-width:881px){
  .hero{
    background:
      radial-gradient(120% 90% at 50% 40%,transparent 58%,rgba(4,0,18,.45) 100%),
      radial-gradient(circle 520px at 97% 4%,rgba(255,96,130,.46),transparent 70%),
      radial-gradient(circle 300px at 88% 16%,rgba(255,150,100,.22),transparent 70%),
      radial-gradient(circle 560px at 72% 108%,rgba(236,60,160,.42),transparent 70%),
      radial-gradient(circle 660px at -4% 106%,rgba(40,70,255,.58),transparent 70%),
      radial-gradient(circle 580px at 36% -10%,rgba(176,60,255,.52),transparent 70%),
      radial-gradient(circle 420px at 78% 50%,rgba(150,60,255,.28),transparent 70%),
      radial-gradient(circle 360px at 16% 44%,rgba(80,110,255,.18),transparent 70%),
      linear-gradient(160deg,#170a3a,#0e0628 60%,#14072e);
  }
}

/* ================= v68: photography =================
   Real theatre photography, treated one way everywhere: a brand-graded
   image (shadows pulled toward the site's ink-violet), a deep ink scrim
   wherever text sits on it, a faint blue-to-magenta tint so every photo
   belongs to the palette, and the same glass rim the cards use. */

/* ---------- home hero: the surgical team, under the lights ---------- */
.hero.hero--photo{
  background:#0b0520;min-height:clamp(600px,84vh,860px);
  display:flex;align-items:center;
}
.hero--photo .wrap{width:100%}
.hero-photo{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:68% 42%;display:block}
.hero--photo::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    linear-gradient(90deg,rgba(9,4,28,.94) 0%,rgba(9,4,28,.82) 30%,rgba(9,4,28,.38) 56%,rgba(9,4,28,.05) 78%,rgba(9,4,28,.2) 100%),
    linear-gradient(0deg,#0b0520 0%,rgba(11,5,32,0) 22%),
    linear-gradient(180deg,rgba(11,5,32,.55) 0%,rgba(11,5,32,0) 18%);
}
.hero--photo::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:1;
  background:
    radial-gradient(circle 520px at 72% 30%,rgba(120,120,255,.22),transparent 70%),
    radial-gradient(circle 460px at 96% 96%,rgba(226,70,160,.22),transparent 70%),
    radial-gradient(circle 520px at 0% 100%,rgba(59,70,245,.30),transparent 70%);
  mix-blend-mode:screen;
}
.hero--photo .wrap{position:relative;z-index:1}
.hero--photo .wrap>div:first-child{max-width:640px}
.hero--photo h1{font-size:clamp(36px,4.6vw,60px);line-height:1.04;letter-spacing:-.022em}
@media (max-width:880px){
  .hero.hero--photo{min-height:auto;padding-top:220px}
  .hero-photo img{object-position:74% 30%;height:62%}
  .hero--photo::before{
    background:linear-gradient(180deg,rgba(11,5,32,.2) 0%,rgba(11,5,32,.35) 25%,#0b0520 58%);
  }
}

/* ---------- the implant dial, now a product showcase ---------- */
.dial-feature{
  display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);gap:clamp(30px,6vw,80px);
  align-items:center;margin:8px 0 clamp(48px,6vw,72px);
}
.dial-feature .shot{margin:0;max-width:440px}
.dial-copy{max-width:52ch}
.df-eyebrow{font-family:var(--mono);font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:#bfe9ff;margin:0 0 14px;display:flex;gap:12px;align-items:center}
.df-eyebrow::before{content:"";width:28px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,#4f5bff,#c93cff)}
.dial-copy h3{font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:clamp(24px,2.6vw,34px);line-height:1.12;letter-spacing:-.018em;margin:0 0 16px}
.dial-copy p{color:var(--ink-2);font-size:16.5px;line-height:1.65;margin:0 0 22px}
@media (max-width:880px){
  .dial-feature{grid-template-columns:1fr}
  .dial-feature .shot{max-width:340px;margin-inline:auto}
}

/* ---------- photo bands and panels ---------- */
:is(.photo-band,.photo-panel){
  position:relative;margin:0;overflow:hidden;isolation:isolate;border-radius:22px;
  border:1px solid;border-color:rgba(255,255,255,.3) rgba(255,196,170,.14) rgba(255,176,146,.2) rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 40px 80px -40px rgba(8,0,28,.95),0 0 70px -40px rgba(201,60,255,.45);
  background:#0b0520;
  transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s cubic-bezier(.2,.7,.2,1);
}
:is(.photo-band,.photo-panel) picture,:is(.photo-band,.photo-panel) img{display:block;width:100%;height:100%}
:is(.photo-band,.photo-panel) img{object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter .8s}
:is(.photo-band,.photo-panel)::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(0deg,rgba(9,4,28,.9) 0%,rgba(9,4,28,.45) 32%,rgba(9,4,28,0) 60%),
    linear-gradient(120deg,rgba(59,70,245,.22),rgba(201,60,255,.10) 50%,rgba(255,138,90,.10));
}
:is(.photo-band,.photo-panel) figcaption{
  position:absolute;z-index:2;left:clamp(20px,3vw,40px);right:clamp(20px,3vw,40px);bottom:clamp(18px,2.6vw,34px);
  margin:0;text-align:left;font-style:normal;
}
:is(.photo-band,.photo-panel) figcaption span{
  display:flex;align-items:center;gap:12px;margin-bottom:10px;
  font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#d8ceff;
}
:is(.photo-band,.photo-panel) figcaption span::before{content:"";width:26px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,#4f5bff,#f0795f)}
:is(.photo-band,.photo-panel) figcaption b{
  display:block;max-width:34ch;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;
  font-weight:600;font-size:clamp(19px,2.1vw,28px);line-height:1.2;letter-spacing:-.012em;color:#fff;
  text-shadow:0 2px 24px rgba(9,4,28,.7);
}
.photo-band{aspect-ratio:21/8;margin:clamp(26px,4vw,44px) 0 clamp(30px,4vw,48px)}
.photo-band--standard img{object-position:50% 40%}
.photo-band--team{margin-top:0}
.photo-band--team img{object-position:50% 28%}
.photo-panel{aspect-ratio:4/5;width:100%;max-width:460px}
.photo-panel--wide{aspect-ratio:16/10;max-width:none;margin-top:26px}
.photo-panel figcaption b{font-size:clamp(18px,1.7vw,22px)}
@media (hover:hover) and (pointer:fine){
  :is(.photo-band,.photo-panel):hover{transform:translateY(-5px);box-shadow:inset 0 1px 0 rgba(236,236,255,.4),0 60px 100px -40px rgba(8,0,28,1),26px 22px 90px -40px rgba(255,138,90,.4),-26px -18px 90px -44px rgba(80,140,255,.4)}
  :is(.photo-band,.photo-panel):hover img{transform:scale(1.035)}
}
@media (hover:none),(pointer:coarse){
  :is(.photo-band,.photo-panel).in-view{transform:translateY(-5px)}
  :is(.photo-band,.photo-panel).in-view img{transform:scale(1.035)}
}
@media (max-width:880px){
  .photo-band{aspect-ratio:4/3}
  .photo-band--team img{object-position:44% 30%}
}
/* the boundary layout: photo panel sits where the instrument was */
.boundary .photo-panel{align-self:stretch;aspect-ratio:auto;min-height:420px}
@media (max-width:880px){ .boundary .photo-panel{min-height:0;aspect-ratio:4/5} }

/* ---------- closing band on a photograph ---------- */
.band.band--photo{background:#0b0520}
.band-photo{position:absolute;inset:0;z-index:-2;overflow:hidden}
.band-photo img{width:100%;height:100%;object-fit:cover;object-position:62% 40%;display:block}
.band--photo::before{
  content:"";position:absolute;inset:0;z-index:-1;left:0;top:0;width:auto;aspect-ratio:auto;border-radius:0;animation:none;
  background:
    linear-gradient(90deg,rgba(11,5,32,.95) 0%,rgba(11,5,32,.86) 40%,rgba(20,10,56,.55) 70%,rgba(20,10,56,.35) 100%),
    radial-gradient(circle 520px at 90% 20%,rgba(201,60,255,.25),transparent 70%);
}
.band--photo .band-mark{display:none}

/* ---------- page title sections: a photograph beside the card ---------- */
.phero-photo{
  position:absolute;z-index:0;top:0;right:0;bottom:0;width:min(56%,860px);margin:0;pointer-events:none;
  -webkit-mask:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 18%,#000 42%);mask:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.5) 18%,#000 42%);
}
.phero-photo picture,.phero-photo img{display:block;width:100%;height:100%}
.phero-photo img{object-fit:cover;object-position:60% 35%}
.phero-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(0deg,rgba(18,10,40,.85),rgba(18,10,40,0) 40%),linear-gradient(120deg,rgba(59,70,245,.25),rgba(201,60,255,.14) 60%,rgba(255,138,90,.1));
}
.phero:has(.phero-photo)::before{content:none}
.phero-photo--xray{width:min(46%,640px);-webkit-mask:none;mask:none}
.phero-photo--xray img{object-fit:contain;object-position:right center;opacity:.9;mix-blend-mode:screen;filter:hue-rotate(18deg) saturate(1.3)}
.phero-photo--xray::after{content:none}
@media (max-width:880px){
  .phero-photo{width:100%;bottom:auto;height:62%;
    -webkit-mask:linear-gradient(180deg,#000 30%,transparent 100%);mask:linear-gradient(180deg,#000 30%,transparent 100%);opacity:.55}
  .phero-photo--xray{height:70%;opacity:.4}
}
:is(.photo-band,.photo-panel) img{filter:brightness(.8) contrast(1.06) saturate(1.05)}
:is(.photo-band,.photo-panel)::after{
  background:
    linear-gradient(0deg,rgba(9,4,28,.92) 0%,rgba(9,4,28,.5) 34%,rgba(9,4,28,0) 62%),
    linear-gradient(90deg,rgba(9,4,28,.55) 0%,rgba(9,4,28,0) 55%),
    linear-gradient(120deg,rgba(59,70,245,.26),rgba(201,60,255,.14) 50%,rgba(255,138,90,.10));
}
.band--photo::before{
  background:
    linear-gradient(90deg,rgba(11,5,32,.95) 0%,rgba(11,5,32,.9) 45%,rgba(16,8,46,.78) 72%,rgba(20,10,56,.6) 100%),
    radial-gradient(circle 520px at 90% 20%,rgba(201,60,255,.22),transparent 70%);
}
/* photos sit above the grain layer; the grain stays on the colour field only */
.phero-photo{z-index:1}
.phero .wrap{z-index:2}
.phero-photo:not(.phero-photo--xray) img{filter:brightness(.78) contrast(1.05)}
/* the hero label matches the page-title cards */
.hero .wrap>div:first-child .eyebrow{
  display:flex;align-items:center;gap:12px;margin:0 0 20px;
  font-family:var(--mono);font-style:normal;font-weight:500;font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase;color:#d8ceff;
}
.hero .wrap>div:first-child .eyebrow::before{content:"";flex:none;width:28px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,#4f5bff,#f0795f)}
@media (max-width:880px){
  .hero-photo img{height:100%;object-position:74% 0}
  .hero--photo::before{background:linear-gradient(180deg,rgba(11,5,32,.15) 0%,rgba(11,5,32,.4) 22%,rgba(11,5,32,.92) 42%,#0b0520 55%)}
  .hero .wrap>div:first-child .eyebrow{font-size:10.5px;letter-spacing:.16em;line-height:1.5}
}
.phero:has(.phero-photo) .phero-card{background-color:rgba(14,8,34,.5)}
.phero:has(.phero-photo) .phero-card .eyebrow{color:#efe6ff}
.photo-band--about{margin-top:0}
.photo-band--about img{object-position:50% 34%}
/* photos whose subject stands left of centre: pull the subject clear of the card */
.phero-photo--left-subject img{object-position:8% 30%}
.photo-band--about img{filter:brightness(.72) contrast(1.06)}
.phero-photo--mirror img{transform:scaleX(-1);object-position:40% 30%}

/* ================= v70: finish ================= */
/* hero photo settles in once on load — a slow, slight pull-back, then still */
@keyframes heroSettle{from{transform:scale(1.07);filter:brightness(.7)}to{transform:scale(1);filter:brightness(1)}}
.hero-photo img{animation:heroSettle 2.6s cubic-bezier(.2,.7,.2,1) both}
@media (prefers-reduced-motion:reduce){ .hero-photo img{animation:none} }

/* clinical focus: the x-ray stands on the section's bottom edge */
.phero-photo--xray{top:auto;bottom:0;height:112%;width:min(48%,700px)}
.phero-photo--xray img{object-fit:contain;object-position:right bottom;height:100%}
/* one label style everywhere: spaced capitals led by a short accent rule */
.eyebrow{
  display:flex;align-items:center;gap:12px;
  font-family:var(--mono);font-style:normal;font-weight:500;font-size:11.5px;
  letter-spacing:.2em;text-transform:uppercase;color:#cfc4f2;
}
.eyebrow::before{content:"";flex:none;width:28px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,#4f5bff,#f0795f)}
@media (max-width:560px){ .eyebrow{font-size:10.5px;letter-spacing:.16em} }
@media (max-width:880px){
  .phero-photo--xray{width:100%;height:78%;top:auto;bottom:0;opacity:.38;-webkit-mask:none;mask:none}
  .phero-photo--xray img{object-position:right bottom}
}
@media (max-width:880px){ .phero-photo--xray{height:100%;opacity:.42} .phero-photo--xray img{object-position:70% bottom} }
@media (max-width:880px){ .phero-photo--xray img{object-fit:cover;object-position:62% bottom} .phero-photo--xray{opacity:.5} }

/* ================= v71: cinematic neuro tiles ================= */
.neuro-cine{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px;max-width:520px}
.cine-tile{
  position:relative;margin:0;aspect-ratio:9/10;overflow:hidden;isolation:isolate;border-radius:18px;background:#0b0520;
  border:1px solid;border-color:rgba(255,255,255,.3) rgba(255,196,170,.14) rgba(255,176,146,.2) rgba(255,255,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 30px 60px -34px rgba(8,0,28,.95);
  transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s cubic-bezier(.2,.7,.2,1);
}
.cine-tile picture,.cine-tile img{display:block;width:100%;height:100%}
.cine-tile img{object-fit:cover;object-position:50% 45%;filter:brightness(.9) saturate(.95) contrast(1.02);
  transition:transform 1.4s cubic-bezier(.2,.7,.2,1),filter .9s cubic-bezier(.2,.7,.2,1)}
.cine-tile--spine img{object-position:60% 30%}
/* cinematic finish: letterbox shade top and bottom, a whisper of brand light */
.cine-tile::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(9,4,28,.55) 0%,rgba(9,4,28,0) 18%,rgba(9,4,28,0) 62%,rgba(9,4,28,.88) 100%),
    linear-gradient(125deg,rgba(59,70,245,.10),rgba(201,60,255,.06) 55%,rgba(255,138,90,.06));
  transition:opacity .9s;
}
.cine-tile figcaption{
  position:absolute;z-index:2;left:16px;bottom:14px;margin:0;display:flex;gap:10px;align-items:center;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#d8ceff;
}
.cine-tile figcaption b{color:#fff;font-weight:600;padding-right:10px;border-right:1px solid rgba(255,255,255,.3)}
/* zoom: the image moves in and comes up to full clarity and colour */
@media (hover:hover) and (pointer:fine){
  .cine-tile:hover{transform:translateY(-5px);box-shadow:inset 0 1px 0 rgba(236,236,255,.4),0 44px 80px -36px rgba(8,0,28,1),22px 18px 70px -34px rgba(255,138,90,.4),-22px -14px 70px -38px rgba(80,140,255,.42)}
  .cine-tile:hover img{transform:scale(1.09);filter:brightness(1.1) saturate(1.2) contrast(1.08)}
  .cine-tile:hover::after{opacity:.55}
}
@media (hover:none),(pointer:coarse){
  .cine-tile.in-view{transform:translateY(-5px)}
  .cine-tile.in-view img{transform:scale(1.09);filter:brightness(1.1) saturate(1.2) contrast(1.08)}
  .cine-tile.in-view::after{opacity:.55}
}
@media (prefers-reduced-motion:reduce){ .cine-tile img{transition:filter .3s} .cine-tile:hover img,.cine-tile.in-view img{transform:none} }
@media (max-width:880px){ .neuro-cine{max-width:none} }

/* the scrub-in band: same cinematic finish and zoom */
.photo-band--standard img{filter:brightness(.92) contrast(1.04);object-position:50% 30%}
@media (hover:hover) and (pointer:fine){ .photo-band--standard:hover img{transform:scale(1.06);filter:brightness(1.05) saturate(1.15) contrast(1.08)} }
@media (hover:none),(pointer:coarse){ .photo-band--standard.in-view img{transform:scale(1.06);filter:brightness(1.05) saturate(1.15) contrast(1.08)} }
/* v71b: the pair runs full width under the heading, wide and cinematic */
.neuro-cine{max-width:none;margin:clamp(26px,4vw,40px) 0 clamp(28px,4vw,44px);gap:clamp(14px,2vw,22px)}
.cine-tile{aspect-ratio:16/10;border-radius:22px}
.cine-tile img{object-position:50% 50%}
.cine-tile--spine img{object-position:50% 30%}
.cine-tile figcaption{left:clamp(18px,2.4vw,30px);bottom:clamp(16px,2vw,24px);font-style:normal;font-size:11.5px}
.cine-tile figcaption *{font-style:normal}
@media (max-width:640px){ .neuro-cine{grid-template-columns:1fr} }
.photo-band--standard img{filter:none}
@media (hover:hover) and (pointer:fine){ .photo-band--standard:hover img{filter:brightness(1.12) saturate(1.15) contrast(1.06)} }
@media (hover:none),(pointer:coarse){ .photo-band--standard.in-view img{filter:brightness(1.12) saturate(1.15) contrast(1.06)} }
.photo-band--standard::after{
  background:
    linear-gradient(0deg,rgba(9,4,28,.9) 0%,rgba(9,4,28,.4) 30%,rgba(9,4,28,0) 58%),
    linear-gradient(90deg,rgba(9,4,28,.5) 0%,rgba(9,4,28,0) 50%),
    linear-gradient(120deg,rgba(59,70,245,.07),rgba(201,60,255,.04) 50%,rgba(255,138,90,.04));
}
.photo-band--standard img{object-position:50% 22%}

/* ================= v72 ================= */
/* ---------- header: deep navy into brand blue, violet just arriving ----------
   Dark navy on the left so the blue mark and white lettering pop, the
   pure brand blue across the middle, and violet only beginning to show
   at the far right edge. A lit top line and a fine luminous hairline
   under the bar finish it. */
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,0) 50%,rgba(0,0,0,.14) 100%),
    radial-gradient(22% 170% at 12% 50%,rgba(74,96,255,.22),transparent 70%),
    radial-gradient(26% 170% at 55% 120%,rgba(90,110,255,.35),transparent 70%),
    linear-gradient(90deg,#070b2e 0%,#0d1450 16%,#1f2bb0 36%,#3b46f5 54%,#3d44f3 72%,#5a3cf0 90%,#7a36ec 100%);
  border-bottom:1px solid rgba(140,160,255,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 1px 0 rgba(90,110,255,.4),0 12px 34px -18px rgba(59,70,245,.75);
}
.logo--lockup img{filter:drop-shadow(0 0 14px rgba(74,96,255,.35))}
@media (hover:hover) and (pointer:fine){ .logo--lockup:hover img{filter:drop-shadow(0 0 18px rgba(110,140,255,.7))} }

/* ---------- every photo: clearer on hover, and the frame catches light ---------- */
:is(.photo-band,.photo-panel,.cine-tile){transition:transform .6s cubic-bezier(.2,.7,.2,1),box-shadow .6s cubic-bezier(.2,.7,.2,1),border-color .5s}
:is(.photo-band,.photo-panel,.cine-tile)::after{transition:opacity .8s cubic-bezier(.2,.7,.2,1)}
@media (hover:hover) and (pointer:fine){
  :is(.photo-band,.photo-panel,.cine-tile):hover{
    border-color:rgba(255,255,255,.75) rgba(200,210,255,.5) rgba(255,190,160,.55) rgba(200,210,255,.55);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 0 0 1px rgba(140,160,255,.35),0 50px 90px -40px rgba(8,0,28,1),0 0 60px -18px rgba(110,130,255,.55),24px 20px 80px -36px rgba(255,138,90,.4);
  }
  :is(.photo-band,.photo-panel,.cine-tile):hover img{filter:brightness(1.12) saturate(1.18) contrast(1.1)}
  :is(.photo-band,.photo-panel,.cine-tile):hover::after{opacity:.45}
}
@media (hover:none),(pointer:coarse){
  :is(.photo-band,.photo-panel,.cine-tile).in-view{
    border-color:rgba(255,255,255,.75) rgba(200,210,255,.5) rgba(255,190,160,.55) rgba(200,210,255,.55);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 0 0 1px rgba(140,160,255,.35),0 50px 90px -40px rgba(8,0,28,1),0 0 60px -18px rgba(110,130,255,.55);
  }
  :is(.photo-band,.photo-panel,.cine-tile).in-view img{filter:brightness(1.12) saturate(1.18) contrast(1.1)}
  :is(.photo-band,.photo-panel,.cine-tile).in-view::after{opacity:.45}
}
/* captions keep their own shade so they stay readable while the photo clears */
:is(.photo-band,.photo-panel) figcaption{text-shadow:0 2px 18px rgba(9,4,28,.85)}
.masthead{
  background:
    linear-gradient(180deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,0) 50%,rgba(0,0,0,.14) 100%),
    radial-gradient(22% 170% at 12% 50%,rgba(74,96,255,.22),transparent 70%),
    radial-gradient(26% 170% at 55% 120%,rgba(90,110,255,.35),transparent 70%),
    linear-gradient(90deg,#070b2e 0%,#0d1450 16%,#1f2bb0 36%,#3b46f5 54%,#3b46f5 80%,#4a40f2 92%,#5f3aee 100%);
}
/* on hover the colour tint lifts but the shade behind the caption stays */
@media (hover:hover) and (pointer:fine){
  :is(.photo-band,.photo-panel):hover::after{opacity:1;
    background:linear-gradient(0deg,rgba(9,4,28,.85) 0%,rgba(9,4,28,.35) 30%,rgba(9,4,28,0) 55%),linear-gradient(90deg,rgba(9,4,28,.45) 0%,rgba(9,4,28,0) 45%)}
}
@media (hover:none),(pointer:coarse){
  :is(.photo-band,.photo-panel).in-view::after{opacity:1;
    background:linear-gradient(0deg,rgba(9,4,28,.85) 0%,rgba(9,4,28,.35) 30%,rgba(9,4,28,0) 55%),linear-gradient(90deg,rgba(9,4,28,.45) 0%,rgba(9,4,28,0) 45%)}
}
@media (hover:hover) and (pointer:fine){
  :is(.photo-band,.photo-panel):hover::after{
    background:linear-gradient(0deg,rgba(9,4,28,.9) 0%,rgba(9,4,28,.6) 34%,rgba(9,4,28,0) 66%),linear-gradient(90deg,rgba(9,4,28,.55) 0%,rgba(9,4,28,0) 48%)}
}
@media (hover:none),(pointer:coarse){
  :is(.photo-band,.photo-panel).in-view::after{
    background:linear-gradient(0deg,rgba(9,4,28,.9) 0%,rgba(9,4,28,.6) 34%,rgba(9,4,28,0) 66%),linear-gradient(90deg,rgba(9,4,28,.55) 0%,rgba(9,4,28,0) 48%)}
}

/* ================= v73 ================= */
/* ---------- hero: let the regraded photograph carry it ----------
   The image now carries its own cinematic grade (ink shadows, a cool
   bloom off the theatre lamps, warmth kept in the gloved hands), so the
   page's scrim only needs to darken the copy side; the right half stays
   clear. A soft brand-blue light spills from the lamps and a violet
   rim rises from the bottom edge. */
.hero--photo::before{
  background:
    linear-gradient(90deg,rgba(9,4,28,.92) 0%,rgba(9,4,28,.72) 28%,rgba(9,4,28,.25) 52%,rgba(9,4,28,0) 70%),
    linear-gradient(0deg,#0b0520 0%,rgba(11,5,32,0) 20%),
    linear-gradient(180deg,rgba(11,5,32,.5) 0%,rgba(11,5,32,0) 14%);
}
.hero--photo::after{
  background:
    radial-gradient(circle 420px at 71% 30%,rgba(90,120,255,.18),transparent 70%),
    radial-gradient(ellipse 60% 40% at 70% 110%,rgba(170,60,255,.22),transparent 70%),
    radial-gradient(circle 520px at 0% 100%,rgba(59,70,245,.26),transparent 70%);
}
.hero-photo img{object-position:70% 38%}
@keyframes heroSettle{from{transform:scale(1.06);filter:brightness(.55) saturate(.8)}to{transform:scale(1);filter:brightness(1) saturate(1)}}
.hero-photo img{animation:heroSettle 3.2s cubic-bezier(.16,.8,.2,1) both}

/* ---------- glass cards: a whisper of brand colour in the glass ----------
   A diagonal wash through the brand run — brand blue at the top-left,
   violet through the middle, a warm coral breath at the bottom-right —
   laid inside the smoked glass, plus a matching tint on the lit edges. */
body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
  .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
  .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
  .director-card,.sahpra-panel,.reg-card,.lane,.escalate,.plate,.vow,.prodcard,.path-route){
  --g-fill:
    linear-gradient(135deg,rgba(59,70,245,.16) 0%,rgba(142,51,251,.10) 45%,rgba(201,60,255,.07) 70%,rgba(255,138,90,.07) 100%),
    linear-gradient(180deg,rgba(14,8,34,.6),rgba(14,8,34,.68) 60%,rgba(24,10,48,.64));
  border-color:rgba(170,185,255,.36) rgba(220,170,255,.16) rgba(255,176,146,.22) rgba(140,160,255,.22);
}
body .tenet,body :is(.card-grid-item,.handoff-link){
  border-color:rgba(170,185,255,.36) rgba(220,170,255,.16) rgba(255,176,146,.22) rgba(140,160,255,.22);
}
body .tenet{background:var(--g-spec) padding-box,linear-gradient(165deg,color-mix(in srgb,var(--c1) 22%,transparent),transparent 60%) padding-box,linear-gradient(135deg,rgba(59,70,245,.14),rgba(201,60,255,.06) 60%,rgba(255,138,90,.06)) padding-box,var(--g-fill) padding-box}
.phero-card,.hero .wrap>div:first-child{background-color:rgba(18,12,58,.42)}

/* ---------- images: one smooth, unhurried change between states ----------
   Every property moves on the same long ease-out curve, and the tint
   now fades on its own layer instead of being swapped out, so there is
   no jump when the pointer arrives or leaves. */
:is(.photo-band,.photo-panel,.cine-tile){
  transition:transform 1s cubic-bezier(.22,.61,.24,1),box-shadow 1s cubic-bezier(.22,.61,.24,1),border-color 1s cubic-bezier(.22,.61,.24,1);
}
:is(.photo-band,.photo-panel,.cine-tile) img{
  transition:transform 1.6s cubic-bezier(.22,.61,.24,1),filter 1.2s cubic-bezier(.22,.61,.24,1);
  will-change:transform;
}
:is(.photo-band,.photo-panel)::after{
  background:linear-gradient(0deg,rgba(9,4,28,.9) 0%,rgba(9,4,28,.55) 34%,rgba(9,4,28,0) 64%),linear-gradient(90deg,rgba(9,4,28,.55) 0%,rgba(9,4,28,0) 50%)!important;
  opacity:1!important;
}
:is(.photo-band,.photo-panel)::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(120deg,rgba(59,70,245,.24),rgba(201,60,255,.12) 50%,rgba(255,138,90,.10));
  opacity:1;transition:opacity 1.2s cubic-bezier(.22,.61,.24,1);
}
.photo-band--standard::before{opacity:.35}
@media (hover:hover) and (pointer:fine){
  :is(.photo-band,.photo-panel):hover::before{opacity:0}
}
@media (hover:none),(pointer:coarse){
  :is(.photo-band,.photo-panel).in-view::before{opacity:0}
}
@media (prefers-reduced-motion:reduce){
  :is(.photo-band,.photo-panel,.cine-tile) img{transition:filter .4s}
}
.hero--photo::after{mix-blend-mode:normal;
  background:
    radial-gradient(ellipse 60% 40% at 70% 112%,rgba(170,60,255,.18),transparent 70%),
    radial-gradient(circle 520px at 0% 100%,rgba(59,70,245,.22),transparent 70%)}
@media (max-width:880px){ .hero-photo img{object-position:66% 60%} }
body :is(.pillar,.bounds>div,.range article,.kits,.parts figure,.growth,.grid>div,.hcp-sec .grid>div,
  .note,.sidecard,.hcp-gate,.acc-panel,.res-row,.path-hub a,.related a,.diagram,.mfg-panel,
  .psi-flow li,.psi-stages li,.detail-strip figure,.gt-node,.standard-card,.proof-rows,
  .director-card,.sahpra-panel,.reg-card,.lane,.escalate,.plate,.vow,.prodcard,.path-route){
  --g-fill:
    linear-gradient(135deg,rgba(59,70,245,.22) 0%,rgba(142,51,251,.13) 45%,rgba(201,60,255,.08) 70%,rgba(255,138,90,.09) 100%),
    linear-gradient(180deg,rgba(14,8,34,.6),rgba(14,8,34,.68) 60%,rgba(24,10,48,.64));
}
@media (max-width:880px){
  .hero-photo{bottom:auto;height:560px}
  .hero-photo img{height:100%;object-position:74% 78%}
  .hero.hero--photo{padding-top:330px}
  .hero--photo::before{background:linear-gradient(180deg,rgba(11,5,32,.35) 0%,rgba(11,5,32,0) 18%,rgba(11,5,32,0) 42%,rgba(11,5,32,.85) 62%,#0b0520 72%)}
}

/* ================= v74: one photographic finish ================= */
/* the cinematic grade is baked into every photo, so the page no longer
   darkens or tints them at rest — one clean resting state everywhere,
   one clearer, brighter state on hover/scroll */
:is(.photo-band,.photo-panel,.cine-tile,.phero-photo:not(.phero-photo--xray)) img{filter:none}
.photo-band--about img,.photo-band--standard img,.phero-photo:not(.phero-photo--xray) img{filter:none}
:is(.photo-band,.photo-panel)::before{background:linear-gradient(120deg,rgba(59,70,245,.12),rgba(201,60,255,.06) 50%,rgba(255,138,90,.06))}
.cine-tile::after{background:linear-gradient(180deg,rgba(9,4,28,.4) 0%,rgba(9,4,28,0) 16%,rgba(9,4,28,0) 64%,rgba(9,4,28,.85) 100%)}
@media (hover:hover) and (pointer:fine){
  :is(.photo-band,.photo-panel,.cine-tile):hover img{filter:brightness(1.1) saturate(1.14) contrast(1.06)}
}
@media (hover:none),(pointer:coarse){
  :is(.photo-band,.photo-panel,.cine-tile).in-view img{filter:brightness(1.1) saturate(1.14) contrast(1.06)}
}

/* ---------- v74: responsive rhythm ----------
   Three-card rows never break into two-plus-an-orphan: one column on
   phones, three even columns from 700px up. Card padding, heading sizes
   and section spacing step down smoothly on tablet so three columns
   still breathe at 768px. */
@media (min-width:700px){
  .standard-cards,.tenets,#clinical-focus-preview .pillars,#audiences .path-hub{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:699px){
  .standard-cards,.tenets,#clinical-focus-preview .pillars,#audiences .path-hub{grid-template-columns:1fr}
}
@media (min-width:700px) and (max-width:1023px){
  :is(.standard-card,.tenet,.pillar,#audiences .path-hub a){padding:20px 18px 20px}
  :is(.standard-card,.tenet,.pillar,#audiences .path-hub a) h3{font-size:17px}
  :is(.standard-card,.tenet,.pillar,#audiences .path-hub a) p{font-size:14px;line-height:1.55}
  .photo-band{aspect-ratio:16/8}
  .dial-feature{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:36px}
  .hero.hero--photo{min-height:auto;padding-block:120px 80px}
}
/* very wide screens: the hero keeps its photograph framed, not stretched */
@media (min-width:1600px){
  .hero.hero--photo{min-height:min(88vh,980px)}
  .hero-photo img{object-position:66% 40%}
}
@media (min-width:700px) and (max-width:899px){
  .standard-cards>:last-child,.tenets>:last-child,#audiences .path-hub>:last-child{grid-column:auto;max-width:none;margin-inline:0}
}
.phero:has(.phero-photo) .phero-card{background-color:rgba(14,8,34,.58)}

/* ================= v76: phone framing =================
   Below 600px every photograph is served as its own phone crop, framed
   on its subject and a step tighter than desktop, and every container
   takes exactly that crop's shape so nothing is cropped a second time. */
@media (max-width:600px){
  .photo-band,.photo-panel,.photo-panel--wide,.boundary .photo-panel{aspect-ratio:4/5;min-height:0}
  .cine-tile{aspect-ratio:4/3}
  :is(.photo-band,.photo-panel,.cine-tile) img,
  .photo-band--standard img,.photo-band--team img,.photo-band--about img,
  .cine-tile--spine img{object-position:50% 50%}
  .phero-photo:not(.phero-photo--xray) img,
  .phero-photo--left-subject img,.phero-photo--mirror img{object-position:50% 40%}
  .phero-photo:not(.phero-photo--xray){height:min(100vw,62%)}
  .hero-photo img{object-position:50% 50%}
  .band-photo img{object-position:50% 40%}
  :is(.photo-band,.photo-panel) figcaption b{font-size:21px;max-width:none}
}

/* ================= v77: mobile UX ================= */

/* ---------- menu button + sheet (≤940px) ---------- */
.mnav-btn{display:none}
@media (max-width:940px){
  nav{overflow:visible;max-width:none;-webkit-mask:none;mask:none;gap:10px}
  nav a:not(.btn){display:none!important}
  .mnav-btn{
    display:grid;place-items:center;flex:none;width:44px;height:44px;padding:0;border-radius:14px;cursor:pointer;
    background:linear-gradient(160deg,rgba(255,255,255,.16),rgba(255,255,255,.05));
    border:1px solid rgba(190,205,255,.38);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 8px 22px -12px rgba(8,0,40,.8);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  }
  .mnav-bars{position:relative;width:18px;height:12px;display:block}
  .mnav-bars i{position:absolute;left:0;height:1.8px;border-radius:2px;background:#fff;transition:transform .45s cubic-bezier(.2,.7,.2,1),opacity .3s,width .3s}
  .mnav-bars i:nth-child(1){top:0;width:18px}
  .mnav-bars i:nth-child(2){top:5px;width:12px}
  .mnav-bars i:nth-child(3){top:10px;width:18px}
  .mnav-btn[aria-expanded="true"] .mnav-bars i:nth-child(1){transform:translateY(5px) rotate(45deg)}
  .mnav-btn[aria-expanded="true"] .mnav-bars i:nth-child(2){opacity:0}
  .mnav-btn[aria-expanded="true"] .mnav-bars i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
  .masthead .btn--compact{padding:10px 14px;min-height:44px}
}
html.mnav-lock,html.mnav-lock body{overflow:hidden}
.mnav{position:fixed;inset:0;z-index:200}
.mnav[hidden]{display:none}
.mnav-backdrop{position:absolute;inset:0;background:rgba(6,2,20,.55);opacity:0;transition:opacity .4s}
.mnav-panel{
  position:absolute;inset:0;overflow-y:auto;overscroll-behavior:contain;
  padding:calc(env(safe-area-inset-top,0px) + 18px) 22px calc(env(safe-area-inset-bottom,0px) + 28px);
  display:flex;flex-direction:column;
  background:
    radial-gradient(circle 420px at 100% 0%,rgba(59,70,245,.45),transparent 70%),
    radial-gradient(circle 380px at 0% 100%,rgba(201,60,255,.32),transparent 70%),
    radial-gradient(circle 260px at 90% 85%,rgba(255,138,90,.16),transparent 70%),
    rgba(10,6,34,.9);
  -webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);
  opacity:0;transform:translateY(-12px);transition:opacity .4s cubic-bezier(.2,.7,.2,1),transform .5s cubic-bezier(.2,.7,.2,1);
}
.mnav.is-open .mnav-backdrop{opacity:1}
.mnav.is-open .mnav-panel{opacity:1;transform:none}
.mnav-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}
.mnav-kicker{display:flex;align-items:center;gap:12px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#cfc4f2}
.mnav-kicker::before{content:"";width:26px;height:1.5px;border-radius:2px;background:linear-gradient(90deg,#4f5bff,#f0795f)}
.mnav-close{position:relative;width:44px;height:44px;border-radius:14px;cursor:pointer;
  background:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.04));border:1px solid rgba(190,205,255,.34)}
.mnav-close i{position:absolute;left:13px;top:21px;width:18px;height:1.8px;border-radius:2px;background:#fff}
.mnav-close i:first-child{transform:rotate(45deg)}.mnav-close i:last-child{transform:rotate(-45deg)}
.mnav-list{list-style:none;margin:0 0 28px;padding:0;border-top:1px solid rgba(255,255,255,.08)}
.mnav-list li{border-bottom:1px solid rgba(255,255,255,.08);opacity:0;transform:translateY(10px);
  transition:opacity .45s cubic-bezier(.2,.7,.2,1) calc(.06s * var(--i) + .08s),transform .5s cubic-bezier(.2,.7,.2,1) calc(.06s * var(--i) + .08s)}
.mnav.is-open .mnav-list li{opacity:1;transform:none}
.mnav-list a{display:flex;align-items:center;gap:16px;padding:18px 4px;min-height:44px;text-decoration:none;color:#fff}
.mnav-num{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:#8f86c4;width:22px}
.mnav-label{flex:1;font-family:var(--display);font-variation-settings:"SOFT" 0,"WONK" 0;font-weight:600;font-size:clamp(24px,6.6vw,30px);letter-spacing:-.015em;line-height:1.1}
.mnav-arw{color:#9aa6ff;transition:transform .3s}
.mnav-list a.is-active .mnav-label{background:linear-gradient(100deg,#9fb0ff,#e59bff 55%,#ffb896);-webkit-background-clip:text;background-clip:text;color:transparent}
.mnav-list a.is-active .mnav-num{color:#ffb896}
.mnav-list a:active .mnav-arw{transform:translateX(4px)}
.mnav-actions{display:grid;gap:12px;margin-top:auto}
.mnav-actions .btn{justify-content:center;min-height:52px;font-size:15.5px}
.mnav-foot{margin:18px 0 0;text-align:center;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#8f86c4}
@media (prefers-reduced-motion:reduce){.mnav-panel,.mnav-list li,.mnav-backdrop{transition:none}}

/* ---------- professional strip on phones ----------
   One slim line instead of three: a lock badge and a short label on the
   left, an "Enter" pill on the right. The full wording stays in the
   markup, so screen readers still read the complete sentence. */
@media (max-width:940px){
  .util{background:linear-gradient(90deg,#0b0d34 0%,#141249 55%,#221052 100%);border-bottom:1px solid rgba(120,140,255,.22)}
  .util::before{background:radial-gradient(40% 220% at 0% 50%,rgba(74,96,255,.28),transparent 70%)}
  .util .wrap{flex-wrap:nowrap;gap:12px;padding-block:8px;justify-content:space-between}
  .util .wrap>span{display:flex;align-items:center;gap:10px;min-width:0;font-size:0;letter-spacing:0}
  .util .wrap>span::before{
    content:"";flex:none;width:22px;height:22px;border-radius:7px;
    background:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='10.5' width='14' height='9.5' rx='2.2'/%3E%3Cpath d='M8 10.5V7a4 4 0 0 1 8 0v3.5'/%3E%3C/svg%3E") center/12px no-repeat,
      linear-gradient(140deg,#4a60ff,#9a3cf5);
    box-shadow:0 0 12px -2px rgba(90,110,255,.8);
  }
  .util .wrap>span::after{
    content:"Professional use";font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#d8d2ff;white-space:nowrap;
  }
  .util a{font-size:0;gap:6px;padding:7px 12px;min-height:32px;border-radius:999px;
    background:linear-gradient(160deg,rgba(255,255,255,.14),rgba(255,255,255,.04));
    border:1px solid rgba(170,185,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
  .util a::before{content:"Enter";font-family:var(--body);font-size:12.5px;font-weight:600;letter-spacing:.01em;color:#fff}
  .util a span{font-size:13px;color:#b9c4ff}
}

/* ---------- thumb-friendly controls on phones ---------- */
@media (max-width:600px){
  .hero .actions,.standard-wrap .actions,.band .actions{display:grid;grid-template-columns:1fr;gap:12px}
  .hero .actions .btn,.band .btn,.standard-wrap .actions .btn{justify-content:center;min-height:52px;width:100%}
  .fnav-col{gap:4px}
  .fnav-col a:not(.logo){display:block;padding-block:9px}
  .path-cta{display:inline-flex;align-items:center;min-height:44px}
  .crumbs .wrap{padding-block:10px}
  .back-to-top{min-height:44px;display:inline-flex;align-items:center}
}
@media (min-width:641px) and (max-width:940px){ .util .wrap>span::after{content:"Professional use · specifications & documentation"} }

/* ================= v78 ================= */
/* ---------- page-header photos, desktop: one long, soft fade ----------
   A many-stop ease-out so bright photographs dissolve into the colour
   field without a visible seam, plus a darkening layer on the photo's
   left edge. */
@media (min-width:601px){
  .phero-photo:not(.phero-photo--xray){
    -webkit-mask:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.04) 10%,rgba(0,0,0,.14) 20%,rgba(0,0,0,.32) 30%,rgba(0,0,0,.56) 40%,rgba(0,0,0,.8) 50%,rgba(0,0,0,.95) 60%,#000 68%);
    mask:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.04) 10%,rgba(0,0,0,.14) 20%,rgba(0,0,0,.32) 30%,rgba(0,0,0,.56) 40%,rgba(0,0,0,.8) 50%,rgba(0,0,0,.95) 60%,#000 68%);
  }
  .phero-photo:not(.phero-photo--xray)::after{
    background:
      linear-gradient(90deg,rgba(18,10,40,.75) 0%,rgba(18,10,40,.35) 30%,rgba(18,10,40,0) 55%),
      linear-gradient(0deg,rgba(18,10,40,.85),rgba(18,10,40,0) 40%),
      linear-gradient(120deg,rgba(59,70,245,.2),rgba(201,60,255,.1) 60%,rgba(255,138,90,.08));
  }
}

/* ---------- page-header photos, phones: the photo leads, the card follows ----------
   The photo sits at the top of the header at full strength, framed on
   the person, then fades into the colour field; the glass card rises
   over only its lowest edge, so no face is ever hidden behind it. */
@media (max-width:600px){
  .phero:has(.phero-photo:not(.phero-photo--xray)) .phero-photo{
    position:absolute;top:0;left:0;right:0;bottom:auto;width:100%;
    height:clamp(260px,82vw,360px);opacity:1;
    -webkit-mask:linear-gradient(180deg,#000 0%,#000 62%,rgba(0,0,0,.6) 80%,transparent 100%);
    mask:linear-gradient(180deg,#000 0%,#000 62%,rgba(0,0,0,.6) 80%,transparent 100%);
  }
  .phero:has(.phero-photo:not(.phero-photo--xray)) .phero-photo img{object-position:50% 36%}
  .phero:has(.phero-photo:not(.phero-photo--xray)) .phero-photo::after{
    background:linear-gradient(0deg,rgba(18,10,40,.9) 0%,rgba(18,10,40,0) 45%),linear-gradient(180deg,rgba(18,10,40,.35),rgba(18,10,40,0) 25%);
  }
  .phero:has(.phero-photo:not(.phero-photo--xray)) .wrap{padding-top:calc(clamp(260px,82vw,360px) - 64px)}
  .phero:has(.phero-photo:not(.phero-photo--xray)) .pw-tabs{margin-bottom:16px}
}

/* ---------- "Before the incision": taller on desktop, the surgeon in focus ---------- */
@media (min-width:601px){
  .photo-band--standard{aspect-ratio:16/9}
  .photo-band--standard img{object-position:50% 26%}
}
@media (min-width:601px) and (max-width:1023px){ .photo-band--standard{aspect-ratio:4/3} }
/* the phone-menu rules are for the header only: the HCP section tabs keep
   their links, as one swipeable row of pills */
@media (max-width:940px){
  nav.pw-tabs{overflow-x:auto;max-width:100%;gap:6px;flex-wrap:nowrap;scrollbar-width:none;
    -webkit-mask:linear-gradient(90deg,#000 88%,transparent);mask:linear-gradient(90deg,#000 88%,transparent)}
  nav.pw-tabs::-webkit-scrollbar{display:none}
  nav.pw-tabs a:not(.btn){display:inline-flex!important;align-items:center;flex:none;min-height:40px;white-space:nowrap}
}

/* ======================= v79 ======================= */

/* ---------- type system ----------
   Three voices, each with one job:
   · Fraunces (display serif) for headings and captions — optical sizing on,
     tight tracking at large sizes, balanced line breaks.
   · Creato Display (sans) for reading — 1.65 leading, 60–66ch measure,
     "pretty" wrapping so paragraphs don't end on a single word.
   · IBM Plex Mono for labels, numbers and metadata — loaded from Google
     Fonts so it renders identically on iOS, Android and Windows (the old
     system-mono stack fell back to three different faces).
   Numbers use lining, tabular figures so stats and step counts align. */
:root{--mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-kerning:normal}
h1,h2,h3,.dial-copy h3{font-optical-sizing:auto;text-wrap:balance}
h1{letter-spacing:-.024em}
h2{letter-spacing:-.018em;line-height:1.1}
h3{letter-spacing:-.008em;line-height:1.25}
p,li,dd{text-wrap:pretty;hyphens:manual}
main p{line-height:1.65}
.sec-note{max-width:44ch}
.sec-lede,.lede{max-width:60ch}
.proof-nums b,.sc-num,.tenet-num,.cg-num,.handoff-num,.flow-num,.mnav-num,.psi-flow b,.pc-code,.gt-meta{font-variant-numeric:lining-nums tabular-nums}
.eyebrow,.tag,.pc-tag,.sc-stage,.ph-tag,.handoff-role,.gt-tag,.lnum{font-family:var(--mono);font-weight:500}
/* small-screen scale: headings step down so a two-word line never breaks
   mid-phrase, body stays at 16px so iOS never zooms form fields */
@media (max-width:600px){
  h1{font-size:clamp(30px,8.4vw,38px);line-height:1.08}
  h2{font-size:clamp(24px,7vw,30px)}
  main p{font-size:16px}
  .sec-note{font-size:15.5px}
  .sec-head{margin-bottom:22px}
  main section:not(.hero):not(.phero){padding-block:clamp(56px,14vw,76px)}
  input,select,textarea{font-size:16px!important}
}

/* ---------- scrollbar (desktop) ---------- */
@media (hover:hover) and (pointer:fine){
  html{scrollbar-width:thin;scrollbar-color:#5b4bd6 #0b0520}
  ::-webkit-scrollbar{width:12px;height:12px}
  ::-webkit-scrollbar-track{background:#0b0520}
  ::-webkit-scrollbar-thumb{border-radius:999px;border:3px solid #0b0520;
    background:linear-gradient(180deg,#3b46f5,#8e33fb 60%,#c93cff)}
  ::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#5a67ff,#a24dff 60%,#e05cff)}
  ::-webkit-scrollbar-corner{background:#0b0520}
}

/* ---------- pointer-lit borders ----------
   Every card and photo frame gets a light that follows the pointer along
   its edge: a bright arc of blue-to-coral traced on the border, with a
   faint pool of the same light inside the glass. It sits under the
   content, fades in on hover and out when the pointer leaves. On touch
   screens the arc rests at the top-left corner when a card is pressed
   or scrolls into focus. Painted by a small <i class="edge-light"> that
   main.js adds to each card. */
.edge-light{
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:3;
  opacity:0;transition:opacity .7s cubic-bezier(.22,.61,.24,1);
  --mx:20%;--my:0%;
}
.edge-light::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;
  background:radial-gradient(260px circle at var(--mx) var(--my),#ffffff 0%,#9fb0ff 18%,#c93cff 38%,#f0795f 52%,transparent 70%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);
}
.edge-light::after{
  content:"";position:absolute;inset:0;border-radius:inherit;
  background:radial-gradient(340px circle at var(--mx) var(--my),rgba(140,160,255,.13),rgba(201,60,255,.06) 40%,transparent 70%);
}
@media (hover:hover) and (pointer:fine){ :hover>.edge-light{opacity:1} }
@media (hover:none),(pointer:coarse){ .in-view>.edge-light,.is-pressed>.edge-light{opacity:1} }
@media (prefers-reduced-motion:reduce){ .edge-light{transition:none} }

/* ---------- section helpers ---------- */
.link-row{display:flex;flex-wrap:wrap;gap:10px 28px}

/* ---------- home: case portal ---------- */
.portal{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(28px,5vw,64px);align-items:center}
.portal-visual{position:relative}
.portal-photo{aspect-ratio:4/5;max-width:none}
.portal-photo img{object-position:62% 30%}
.portal-chip{
  position:absolute;right:-18px;top:14%;z-index:4;display:grid;gap:8px;min-width:220px;padding:16px 18px;border-radius:16px;
  background:linear-gradient(160deg,rgba(40,30,110,.72),rgba(18,10,48,.8));
  -webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);
  border:1px solid;border-color:rgba(200,210,255,.5) rgba(220,170,255,.2) rgba(255,176,146,.3) rgba(160,180,255,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 30px 60px -24px rgba(8,0,28,.9),0 0 40px -12px rgba(110,130,255,.5);
}
.portal-chip .pc-row{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#c9c2f5}
.pc-dot{width:7px;height:7px;border-radius:50%;background:#37e0a8;box-shadow:0 0 10px #37e0a8}
.portal-chip b{font-family:var(--display);font-size:19px;font-weight:600;color:#fff}
.pc-steps{display:flex;flex-wrap:wrap;gap:6px}
.pc-steps em{font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.06em;padding:4px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.16);color:#bdb6e6}
.pc-steps em.done{color:#dff9ee;border-color:rgba(55,224,168,.45);background:rgba(55,224,168,.12)}
.pc-steps em.now{color:#fff;border-color:rgba(201,60,255,.6);background:linear-gradient(100deg,rgba(90,110,255,.35),rgba(201,60,255,.35))}
.portal-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.portal-list li{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;align-items:start;padding:18px 20px;border-radius:18px;
  background:linear-gradient(135deg,rgba(59,70,245,.14),rgba(142,51,251,.08) 55%,rgba(255,138,90,.06)),rgba(14,8,34,.55);
  border:1px solid;border-color:rgba(170,185,255,.3) rgba(220,170,255,.12) rgba(255,176,146,.18) rgba(140,160,255,.18);
  transition:transform .6s cubic-bezier(.22,.61,.24,1),box-shadow .6s}
.portal-list h3{font-family:var(--display);font-size:18px;font-weight:600;margin:2px 0 4px}
.portal-list p{margin:0;font-size:15px;color:var(--ink-2);line-height:1.55}
.pl-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;
  background:linear-gradient(140deg,rgba(90,110,255,.35),rgba(201,60,255,.25));border:1px solid rgba(190,200,255,.35);box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
.pl-ico svg{width:21px;height:21px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover) and (pointer:fine){ .portal-list li:hover{transform:translateX(4px)} }
.portal-actions{margin-top:clamp(26px,4vw,40px)}
@media (max-width:880px){
  .portal{grid-template-columns:1fr}
  .portal-chip{right:12px;top:auto;bottom:88px;min-width:0}
}
@media (max-width:600px){ .portal-photo{aspect-ratio:4/5} .portal-list li{padding:16px;grid-template-columns:40px minmax(0,1fr);gap:14px} .pl-ico{width:40px;height:40px} }

/* ---------- home: made (compact) ---------- */
.made{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.made-photo{aspect-ratio:4/3;max-width:none}
.made-copy .proof-nums{margin:22px 0}
.made-note{color:var(--ink-2);font-size:15.5px;margin:0 0 18px;max-width:52ch}
@media (max-width:880px){ .made{grid-template-columns:1fr} }

/* ---------- ISO: home strip and quality section ---------- */
.iso-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px}
.iso-card{position:relative;display:block;padding:24px 24px 22px;border-radius:18px;text-decoration:none;color:var(--ink);
  background:linear-gradient(135deg,rgba(59,70,245,.2),rgba(142,51,251,.1) 50%,rgba(255,138,90,.08)),rgba(14,8,34,.6);
  -webkit-backdrop-filter:blur(22px) saturate(1.6);backdrop-filter:blur(22px) saturate(1.6);
  border:1px solid;border-color:rgba(170,185,255,.36) rgba(220,170,255,.16) rgba(255,176,146,.22) rgba(140,160,255,.22);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 30px 60px -36px rgba(8,0,28,.95);
  transition:transform .6s cubic-bezier(.22,.61,.24,1),box-shadow .6s}
.iso-card h3{font-family:var(--display);font-size:19px;font-weight:600;margin:14px 0 8px}
.iso-card p{margin:0 0 12px;color:var(--ink-2);font-size:15px}
.iso-status{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  padding:5px 11px;border-radius:999px;color:#ffe2cf;border:1px solid rgba(255,160,110,.5);background:rgba(255,138,90,.14)}
.iso-status::before{content:"";width:7px;height:7px;border-radius:50%;background:#f0795f;box-shadow:0 0 10px #f0795f;animation:isoPulse 2.4s ease-in-out infinite}
.iso-status.is-soon{color:#d9e4ff;border-color:rgba(120,160,255,.5);background:rgba(90,120,255,.14)}
.iso-status.is-soon::before{background:#7aa2ff;box-shadow:0 0 10px #7aa2ff}
@keyframes isoPulse{0%,100%{opacity:1}50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){ .iso-status::before{animation:none} }
@media (hover:hover) and (pointer:fine){ a.iso-card:hover{transform:translateY(-5px)} }
.iso-block{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(24px,4vw,48px);align-items:stretch}
.iso-photo{aspect-ratio:auto;min-height:100%;max-width:none}
.iso-cards{display:grid;gap:16px}
.iso-points{margin:6px 0 14px;padding:0;list-style:none;display:grid;gap:8px}
.iso-points li{position:relative;padding-left:22px;color:var(--ink-2);font-size:15px}
.iso-points li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:1.5px;background:linear-gradient(90deg,#4f5bff,#f0795f)}
@media (max-width:880px){ .iso-block,.iso-strip{grid-template-columns:1fr} .iso-photo{aspect-ratio:4/3;min-height:0} }
@media (max-width:600px){ .iso-photo{aspect-ratio:4/5} }

/* ---------- manufacturing & supply page ---------- */
.mosaic{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;margin-bottom:clamp(26px,4vw,40px)}
.mosaic .photo-panel{aspect-ratio:auto;max-width:none;min-height:clamp(260px,34vw,440px)}
.mosaic-side img{filter:grayscale(.2) contrast(1.05)}
.supply-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.photo-band--supply img{object-position:60% 55%}
@media (max-width:1023px){ .supply-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important} }
@media (max-width:640px){ .mosaic{grid-template-columns:1fr} .mosaic .photo-panel{min-height:0;aspect-ratio:4/5} .mosaic-side{aspect-ratio:4/3!important} .supply-grid{grid-template-columns:1fr!important} }

/* ---------- anatomy renders in page headers ---------- */
.phero-photo--render{-webkit-mask:none!important;mask:none!important;width:min(48%,680px);top:0;bottom:0}
.phero-photo--render img{width:100%;height:100%;object-fit:contain;object-position:right center;mix-blend-mode:screen;filter:saturate(1.1) drop-shadow(0 0 40px rgba(80,160,255,.25))}
.phero-photo--render::after{content:none}
@media (max-width:600px){
  .phero:has(.phero-photo--render) .phero-photo{position:absolute;inset:0 0 auto 0;height:clamp(240px,70vw,320px);width:100%;opacity:1;
    -webkit-mask:linear-gradient(180deg,#000 55%,transparent 100%)!important;mask:linear-gradient(180deg,#000 55%,transparent 100%)!important}
  .phero:has(.phero-photo--render) .phero-photo img{object-position:center 30%}
  .phero:has(.phero-photo--render) .wrap{padding-top:calc(clamp(240px,70vw,320px) - 70px)}
}

/* ---------- eight-stage workflow ----------
   Colour now carries meaning: every stage is marked by who owns it
   (blue surgeon & hospital, violet Vertevance, coral manufacturer), and
   arrows show the direction of travel. On phones it becomes a vertical
   timeline — one compact row per stage on a coloured rail — instead of
   eight tall boxes. */
.psi-flow{counter-reset:none;gap:14px}
.psi-flow li.owner-surgeon{--c:#4f5bff}
.psi-flow li.owner-vertevance{--c:#9b45fb}
.psi-flow li.owner-manufacturer{--c:#f0795f}
.psi-legend i.owner-surgeon{background:#4f5bff}.psi-legend i.owner-vertevance{background:#9b45fb}.psi-legend i.owner-manufacturer{background:#f0795f}
.psi-flow li{position:relative;padding:20px 18px 18px!important;border-top:2px solid var(--c)!important}
.psi-flow b{display:inline-grid!important;place-items:center;width:30px;height:30px;border-radius:50%;margin-bottom:12px!important;
  font-family:var(--mono)!important;font-size:12.5px!important;font-weight:600;color:#fff!important;
  background:color-mix(in srgb,var(--c) 30%,transparent);border:1px solid color-mix(in srgb,var(--c) 70%,transparent);box-shadow:0 0 16px -4px var(--c)}
.psi-flow .psi-name{font-family:var(--display);font-size:17px!important;font-weight:600}
.psi-flow .psi-owner{color:color-mix(in srgb,var(--c) 45%,#fff)!important;border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 14%,transparent)!important}
@media (min-width:761px){
  .psi-flow li:not(:nth-child(4n))::after{content:"";position:absolute;right:-12px;top:34px;width:10px;height:10px;z-index:4;
    border-top:1.5px solid rgba(200,205,255,.5);border-right:1.5px solid rgba(200,205,255,.5);transform:rotate(45deg)}
}
@media (max-width:760px){
  .psi-flow{display:block!important;position:relative;padding-left:4px!important}
  .psi-flow::before{content:"";position:absolute;left:19px;top:14px;bottom:14px;width:2px;border-radius:2px;
    background:linear-gradient(180deg,#4f5bff,#9b45fb 22%,#9b45fb 45%,#4f5bff 50%,#f0795f 60%,#9b45fb 72%,#9b45fb)}
  .psi-flow li{display:grid!important;grid-template-columns:32px minmax(0,1fr);column-gap:16px;align-items:center;
    padding:10px 0 !important;margin:0!important;border:0!important;background:none!important;box-shadow:none!important;
    -webkit-backdrop-filter:none!important;backdrop-filter:none!important;transform:none!important}
  .psi-flow li>.edge-light{display:none}
  .psi-flow b{grid-row:span 2;margin:0!important;position:relative;z-index:1;background:#140a30;border-width:1.5px}
  .psi-flow .psi-name{margin:0!important;font-size:17px!important}
  .psi-flow .psi-owner{justify-self:start;margin-top:4px;font-size:10.5px!important;padding:2px 9px!important}
  .psi-legend{gap:10px 16px}
}

/* ---------- professional area: its own colour ----------
   The HCP pages keep the site's structure but shift the palette toward
   clinical teal and cyan, so a surgeon always knows they're in the
   professional area: a teal-to-violet ribbon under the breadcrumb, teal
   light in the header field, teal accents on labels, tabs and rules. */
body.area-pro{--pro:#2fd4c4;--pro-2:#38bdf8}
body.area-pro .crumbs{box-shadow:inset 0 -2px 0 0 transparent}
body.area-pro .crumbs::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;z-index:2;
  background:linear-gradient(90deg,#2fd4c4,#38bdf8 35%,#8e33fb 70%,#c93cff)}
body.area-pro .crumbs .wrap::after{content:"Professional area";margin-left:auto;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:#bff5ee;padding:3px 10px;border-radius:999px;border:1px solid rgba(47,212,196,.45);background:rgba(47,212,196,.12)}
body.area-pro .phero{
  background:
    radial-gradient(circle 480px at 90% 8%,rgba(47,212,196,.30),transparent 70%),
    radial-gradient(circle 420px at 72% 80%,rgba(56,189,248,.20),transparent 70%),
    radial-gradient(circle 300px at 96% 90%,rgba(142,51,251,.26),transparent 70%),
    radial-gradient(circle 560px at -2% 112%,rgba(59,70,245,.34),transparent 70%),
    radial-gradient(circle 340px at 30% -20%,rgba(47,212,196,.12),transparent 70%),
    #0b1030;
}
body.area-pro .phero-card .eyebrow,body.area-pro .eyebrow{color:#bff5ee}
body.area-pro .eyebrow::before,body.area-pro .phero-card .eyebrow::before{background:linear-gradient(90deg,#2fd4c4,#38bdf8)}
body.area-pro .phero-card h1::after{background:linear-gradient(90deg,#2fd4c4,#38bdf8 50%,#8e33fb)}
body.area-pro .pw-tabs a.is-active{background:linear-gradient(100deg,#14b8a6,#3b82f6 60%,#8e33fb)!important;color:#fff}
body.area-pro main section:not(.phero):not(.band){--light:radial-gradient(circle 420px at 12% 0%,rgba(47,212,196,.10),transparent 70%),radial-gradient(circle 300px at 88% 4%,rgba(56,189,248,.08),transparent 70%)}
body.area-pro .path-cta,body.area-pro .path-cta span{color:#7ee8dc}
body.area-pro .sec-head h2::before,body.area-pro .sec-head::before{color:#7ee8dc}
@media (max-width:600px){ body.area-pro .crumbs .wrap::after{display:none} }
.portal-chip{top:auto;bottom:24%;right:-22px}
@media (max-width:880px){ .portal-chip{right:12px;bottom:96px} }
@media (hover:none),(pointer:coarse){
  .portal-list li.in-view,.portal-list li.is-pressed{transform:translateX(4px);border-color:rgba(200,210,255,.5) rgba(220,170,255,.2) rgba(255,176,146,.3) rgba(160,180,255,.3)}
  .iso-card.in-view,.iso-card.is-pressed{transform:translateY(-5px)}
}

/* ================= v80: legibility guarantees =================
   Every rule here exists because a measured text/background pair fell
   below WCAG AA (4.5:1 body, 3:1 large). The design stays; the text
   gets what it needs to read over any image, glow or gradient. */

/* 1 · secondary text tokens lifted one step (labels, notes, footer) */
:root{--muted:#b7acdc;--faint:#a598cf}
footer,footer p,footer span,.footer-status,.footer-legal p,.fnav-brand p{color:#b3a8d8}
.small-note,.consent-note,.manufacturer-meta,.standard-proof,.gt-meta,.sahpra-track-label,.flow-num,.pc-code,.sc-stage,.lane-tag{color:#bdb2e2}
.notice,main .notice{color:#d2c8f0}

/* 2 · header: full-white links with a soft shadow so the bright centre
       of the brand gradient never thins them out */
.masthead nav a,.masthead .btn,.masthead .btn span{color:#fff}
.masthead nav a:not(.is-active){color:rgba(255,255,255,.94)}
.masthead nav a,.masthead .btn{text-shadow:0 1px 10px rgba(10,6,50,.55)}
.masthead .btn-line{background:rgba(8,10,50,.28);border-color:rgba(255,255,255,.55)}

/* 3 · HCP section tabs: a dark glass rail of their own, so a render or
       photo behind them can't bleed through the labels */
.pw-tabs{background:rgba(10,8,34,.72)!important;-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid rgba(170,185,255,.22)!important;border-radius:999px;padding:5px!important;position:relative;z-index:3}
.pw-tabs a{color:#e4ddfa!important}
body.area-pro .pw-tabs a.is-active{background:linear-gradient(100deg,#0f766e,#1d4ed8 60%,#6d28d9)!important;color:#fff!important}
.pw-tabs a.is-active{background:linear-gradient(100deg,#2f3bd6,#7b2ad6)!important;color:#fff!important}
.phero-photo--render{z-index:1}

/* 4 · gradient fills behind white text: the light ends deepened */
.btn-primary{background:linear-gradient(100deg,#2f3de0,#7a2ee0 60%,#a52fd8)!important;text-shadow:0 1px 8px rgba(20,0,60,.35)}
.sahpra-step.is-current,.sahpra-step.is-curr,.sahpra-steps .is-current{background:linear-gradient(100deg,#8b1fb8,#c0267a)!important;color:#fff!important}
.handoff-us-tag{background:linear-gradient(100deg,#5b21b6,#8b1fb8)!important;color:#fff!important}
.pc-go,.reg-go,.go,.path-cta{color:#cdb8ff}
body.area-pro .path-cta,body.area-pro .path-cta span{color:#8ff0e4}

/* 5 · hero card over the photograph on tablet and phone: more smoke in
       the glass and a solid label colour, so the theatre lamp can't glare
       through the eyebrow or the italic "partner" */
@media (max-width:1023px){
  .hero .wrap>div:first-child{background-color:rgba(12,7,32,.74)!important}
  .hero .wrap>div:first-child .eyebrow{color:#f1ecff}
  .hero h1 em{background-image:linear-gradient(100deg,#f3a8ff,#ffc9a8)!important;filter:drop-shadow(0 1px 6px rgba(10,5,30,.8))}
  .phero-card{background-color:rgba(12,7,32,.66)!important}
}
.hero .wrap>div:first-child .eyebrow{text-shadow:0 1px 10px rgba(10,5,30,.7)}

/* 6 · any caption laid over a photograph gets its own shade */
figure.photo{position:relative}
figure.photo figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:28px 18px 14px;text-align:left;
  background:linear-gradient(0deg,rgba(9,4,28,.92),rgba(9,4,28,.6) 55%,transparent);color:#e6e0fa}
/* v80 · round two */
@media (min-width:1024px){ .hero .wrap>div:first-child{background-color:rgba(14,8,34,.5)} }
/* tabs: no fade mask over the labels; the rail scrolls and cuts cleanly */
nav.pw-tabs{-webkit-mask:none!important;mask:none!important;scroll-snap-type:x proximity;scroll-padding-inline:8px}
nav.pw-tabs a{scroll-snap-align:start}
.pc-code{color:#e6e0fb!important;background:rgba(10,6,30,.55);padding:3px 8px;border-radius:6px}
:is(.photo-band,.photo-panel) figcaption span{color:#ece6ff}
figure.field figcaption,.detail-strip figcaption,.parts figcaption{color:#d8d0f4}
.sahpra-step.is-current{background:linear-gradient(100deg,#7a1aa6,#a81f6b)!important}
.reg-go,.go,.pc-go,.path-cta,.lane-tag{color:#d6c6ff}
.res-filters button.is-on,button.is-on{background:linear-gradient(100deg,#2f3bd6,#6d28d9)!important;color:#fff!important}
.res-row span,.res-type{color:#cfc4f0}
/* v80 · round three: card numerals and link labels */
.sc-num,.cg-num,.handoff-num,.tenet-num{opacity:.9!important;
  background-image:linear-gradient(160deg,color-mix(in srgb,var(--c,var(--c1,#8b7bff)) 55%,#fff),color-mix(in srgb,var(--c,var(--c1,#8b7bff)) 30%,#fff))!important;
  -webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
body .lane-tag,body .reg-go,body .go,body .pc-go,body .path-cta,body .pc-go span,body .reg-go span{color:#ddd0ff!important}
body.area-pro .path-cta,body.area-pro .path-cta span{color:#9ff3e8!important}
.pw-tabs a{color:#f0ebff!important}
.portal-photo::after{background:linear-gradient(0deg,rgba(9,4,28,.95) 0%,rgba(9,4,28,.7) 30%,rgba(9,4,28,0) 58%)!important}
@media (min-width:1024px){
  .hero .wrap>div:first-child{background-color:rgba(14,8,34,.58)}
  .hero .wrap>div:first-child .eyebrow{color:#fff}
}
@media (max-width:600px){
  .portal-chip{position:relative;right:auto;bottom:auto;top:auto;margin:12px 0 0;width:100%}
}
@media (min-width:601px) and (max-width:1023px){
  nav.pw-tabs{flex-wrap:wrap!important;overflow:visible!important;border-radius:22px;justify-content:flex-start}
}

/* ---------- v80 · tablets (601–1023px) get the stacked composition ---------- */
@media (min-width:601px) and (max-width:1023px){
  .hero.hero--photo{min-height:auto;padding:430px 0 72px;display:block}
  .hero-photo{bottom:auto;height:560px}
  .hero-photo img{height:100%;object-position:62% 42%}
  .hero--photo::before{background:linear-gradient(180deg,rgba(11,5,32,.3) 0%,rgba(11,5,32,0) 20%,rgba(11,5,32,0) 50%,rgba(11,5,32,.9) 78%,#0b0520 92%)}
  .hero--photo .wrap>div:first-child{max-width:none}

  .phero:has(.phero-photo:not(.phero-photo--xray)) .phero-photo,
  .phero:has(.phero-photo--render) .phero-photo{
    position:absolute;top:0;left:0;right:0;bottom:auto;width:100%;height:420px;opacity:1;
    -webkit-mask:linear-gradient(180deg,#000 0%,#000 60%,rgba(0,0,0,.55) 80%,transparent 100%)!important;
    mask:linear-gradient(180deg,#000 0%,#000 60%,rgba(0,0,0,.55) 80%,transparent 100%)!important}
  .phero:has(.phero-photo:not(.phero-photo--xray)) .phero-photo img{object-position:50% 35%}
  .phero:has(.phero-photo--render) .phero-photo img{object-fit:contain;object-position:center 20%}
  .phero:has(.phero-photo:not(.phero-photo--xray)) .phero-photo::after{background:linear-gradient(0deg,rgba(18,10,40,.9) 0%,rgba(18,10,40,0) 45%),linear-gradient(180deg,rgba(18,10,40,.35),rgba(18,10,40,0) 25%)}
  .phero:has(.phero-photo:not(.phero-photo--xray)) .wrap,
  .phero:has(.phero-photo--render) .wrap{padding-top:340px}
  .phero-photo--mirror img{object-position:50% 30%}
}

/* ======================= v81 ======================= */

/* ---------- one timeline for every process ----------
   Used for the five case stages (home, support model, clinical focus)
   and the four-step supply journey (about). Desktop: stages sit side by
   side on a glowing rail, each node carrying its icon and number, with
   the phase of the case (before / in theatre / after) marked above.
   Phones and small tablets: a vertical rail, one stage per row. */
.tl-wrap{position:relative;margin-top:8px}
.tl-phases{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin-bottom:18px}
.tl-phases span{grid-column:span var(--span);position:relative;padding-top:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#cfc4f2}
.tl-phases span::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(140,150,255,.55),rgba(201,60,255,.25))}
.tl-phases span:nth-child(2)::before{background:linear-gradient(90deg,#9b45fb,rgba(208,79,214,.3))}
.tl-phases span:nth-child(3)::before{background:linear-gradient(90deg,#f0795f,rgba(255,122,107,.3))}
.timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;position:relative}
.tl-wrap--4 .timeline{grid-template-columns:repeat(4,minmax(0,1fr))}
.timeline::before{content:"";position:absolute;left:28px;right:28px;top:27px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,#4f5bff,#6b4dfb 25%,#9b45fb 50%,#9b45fb 75%,#f0795f);opacity:.55;box-shadow:0 0 14px rgba(140,110,255,.5)}
.tl-step{position:relative;padding:0 4px 0 0}
.tl-node{position:relative;z-index:1;display:flex;align-items:center;gap:10px;margin-bottom:18px}
.tl-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:18px;flex:none;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 42%,#140a30),#140a30 75%);
  border:1px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:0 0 0 6px #0f0826,0 10px 30px -10px var(--c),inset 0 1px 0 rgba(255,255,255,.25)}
.tl-ico svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tl-num{font-family:var(--mono);font-size:12px;font-weight:600;color:color-mix(in srgb,var(--c) 45%,#fff);background:#0f0826;padding:2px 6px;border-radius:6px}
.tl-when{display:inline-block;margin-bottom:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:4px 10px;border-radius:999px;color:color-mix(in srgb,var(--c) 35%,#fff);border:1px solid color-mix(in srgb,var(--c) 45%,transparent);background:color-mix(in srgb,var(--c) 14%,transparent)}
.tl-step h3{font-family:var(--display);font-size:20px;font-weight:600;margin:0 0 8px;color:#fff}
.tl-step p{margin:0;font-size:15px;line-height:1.6;color:var(--ink-2)}
@media (hover:hover) and (pointer:fine){
  .tl-step .tl-ico{transition:transform .6s cubic-bezier(.22,.61,.24,1),box-shadow .6s}
  .tl-step:hover .tl-ico{transform:translateY(-4px);box-shadow:0 0 0 6px #0f0826,0 16px 40px -8px var(--c),inset 0 1px 0 rgba(255,255,255,.35)}
}
@media (max-width:1023px){
  .tl-phases{display:none}
  .timeline,.tl-wrap--4 .timeline{grid-template-columns:1fr;gap:0}
  .timeline::before{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto;
    background:linear-gradient(180deg,#4f5bff,#6b4dfb 25%,#9b45fb 50%,#9b45fb 75%,#f0795f)}
  .tl-step{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:18px;padding:0 0 26px}
  .tl-node{grid-row:span 3;flex-direction:column;align-items:center;gap:6px;margin:0}
  .tl-when{justify-self:start;margin-top:4px}
  .tl-step h3{font-size:19px}
}

/* ---------- home 05: patient-specific ---------- */
.psi-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px);align-items:center}
.psi-visual{aspect-ratio:1/1}
.psi-visual img{object-fit:contain!important;padding:8%;background:radial-gradient(circle at 50% 45%,rgba(201,60,255,.22),transparent 65%)}
.psi-phases{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.psi-phases li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:16px 18px;border-radius:16px;
  background:linear-gradient(135deg,color-mix(in srgb,var(--c) 16%,transparent),rgba(14,8,34,.6) 60%);
  border:1px solid color-mix(in srgb,var(--c) 38%,transparent);border-top:2px solid var(--c)}
.pp-n{font-family:var(--mono);font-size:11px;font-weight:600;color:#fff;padding:4px 8px;border-radius:8px;height:max-content;
  background:color-mix(in srgb,var(--c) 35%,transparent);border:1px solid color-mix(in srgb,var(--c) 70%,transparent)}
.psi-phases h3{font-family:var(--display);font-size:17px;font-weight:600;margin:0 0 4px}
.psi-phases p{margin:0;font-size:14.5px;color:var(--ink-2);line-height:1.55}
@media (max-width:880px){ .psi-split{grid-template-columns:1fr} .psi-visual{max-width:420px;margin-inline:auto;width:100%} }
@media (max-width:600px){ .psi-phases{grid-template-columns:1fr} }

/* ---------- home: after SAHPRA — facility image, no links ---------- */
.iso-strip--img{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:auto auto;align-items:stretch}
.iso-strip--img .iso-strip-photo{grid-row:span 2;aspect-ratio:auto;min-height:320px;max-width:none}
@media (max-width:880px){ .iso-strip--img{grid-template-columns:1fr} .iso-strip--img .iso-strip-photo{grid-row:auto;min-height:0;aspect-ratio:16/10} }
@media (max-width:600px){ .iso-strip--img .iso-strip-photo{aspect-ratio:4/5} }

/* ---------- home: manufacturer ---------- */
.made-link{display:block;text-decoration:none;color:inherit;border-radius:22px}
.made-link:focus-visible{outline:2px solid #9fb0ff;outline-offset:4px}
.made-photo img{object-position:50% 50%}

/* ---------- home 09: about ---------- */
.about-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(28px,5vw,64px);align-items:center}
.about-split-photo{aspect-ratio:4/5;max-width:none}
.about-split-photo img{object-position:50% 30%}
.about-split-copy .lead{font-size:clamp(17px,1.6vw,19px);line-height:1.6;color:var(--ink);margin:0 0 22px;max-width:52ch}
.about-split-copy .proof-rows{margin-bottom:22px}
@media (max-width:880px){ .about-split{grid-template-columns:1fr} .about-split-photo{aspect-ratio:16/11} }
@media (max-width:600px){ .about-split-photo{aspect-ratio:4/5} }

/* ---------- manufacturing page ---------- */
.photo-band--campus{aspect-ratio:21/9}
.photo-band--campus img{filter:none;object-position:50% 55%}
.logistics{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,5vw,56px);align-items:center;margin-bottom:clamp(30px,4vw,48px)}
.logistics-photo{aspect-ratio:4/3;max-width:none}
.logistics-copy h3{font-family:var(--display);font-size:clamp(22px,2.4vw,30px);font-weight:600;margin:6px 0 12px}
.logistics-copy p{color:var(--ink-2);margin:0 0 14px}
.photo-band--roles img{object-position:40% 25%}
@media (max-width:880px){ .logistics{grid-template-columns:1fr} }
@media (max-width:600px){ .photo-band--campus{aspect-ratio:4/5} .logistics-photo{aspect-ratio:4/5} }

/* ---------- clinical focus pathways ---------- */
.cf-row{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(28px,5vw,64px);align-items:center}
section:nth-of-type(odd) .cf-row .cf-visual{order:2}
.cf-visual{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;align-items:end}
.cf-stage{position:relative;margin:0;aspect-ratio:1/1;display:grid;place-items:center;border-radius:22px;overflow:hidden;
  background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--c) 30%,transparent),transparent 62%),linear-gradient(160deg,rgba(40,28,90,.6),rgba(14,8,34,.8));
  border:1px solid;border-color:rgba(200,210,255,.34) rgba(220,170,255,.14) rgba(255,176,146,.2) rgba(160,180,255,.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 30px 60px -34px rgba(8,0,28,.95)}
.cf-stage img{width:78%;height:78%;object-fit:contain;filter:drop-shadow(0 24px 30px rgba(0,0,0,.55));transition:transform 1.2s cubic-bezier(.22,.61,.24,1)}
.cf-stage--sm{aspect-ratio:3/4}
.cf-stage .pc-code{position:absolute;left:16px;top:14px;font-family:var(--mono);font-size:11px;letter-spacing:.14em}
@media (hover:hover) and (pointer:fine){ .cf-stage:hover img{transform:scale(1.06) translateY(-4px)} }
.cf-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:22px 0 14px}
.cf-h{font-family:var(--mono)!important;font-size:11px!important;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 40%,#fff);margin:0 0 12px}
.feat-list--ind li::before{background:var(--c)!important}
@media (max-width:880px){ .cf-row{grid-template-columns:1fr} section:nth-of-type(odd) .cf-row .cf-visual{order:0} }
@media (max-width:600px){ .cf-cols{grid-template-columns:1fr;gap:14px} }

/* ---------- professional-area heroes: renders blended, same footprint ----------
   The renders now fill the same right-hand area as the photographs on
   other pages and dissolve into the colour field on every side — soft
   fade on the left and bottom, a gentle vignette top and right — so no
   edge of the source image is ever visible. */
@media (min-width:1024px){
  .phero-photo--render{width:min(56%,860px)!important;top:0!important;bottom:0!important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 18%,#000 45%,#000 88%,transparent 100%),linear-gradient(0deg,transparent 0%,#000 26%,#000 88%,transparent 100%)!important;
    -webkit-mask-composite:source-in!important;
    mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.35) 18%,#000 45%,#000 88%,transparent 100%),linear-gradient(0deg,transparent 0%,#000 26%,#000 88%,transparent 100%)!important;
    mask-composite:intersect!important}
  .phero-photo--render img{object-fit:cover!important;object-position:60% 30%!important;opacity:.95}
}
@media (max-width:1023px){
  .phero:has(.phero-photo--render) .phero-photo{
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 55%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 14%,#000 86%,transparent 100%)!important;
    -webkit-mask-composite:source-in!important;
    mask-image:linear-gradient(180deg,transparent 0%,#000 12%,#000 55%,transparent 100%),linear-gradient(90deg,transparent 0%,#000 14%,#000 86%,transparent 100%)!important;
    mask-composite:intersect!important}
  .phero:has(.phero-photo--render) .phero-photo img{object-fit:cover!important;object-position:center 28%!important}
}

/* ---------- border light: gentler orb, everywhere ---------- */
.edge-light::before{background:radial-gradient(220px circle at var(--mx) var(--my),#ffffff 0%,#9fb0ff 20%,#c93cff 42%,#f0795f 58%,transparent 72%)}
.edge-light::after{background:radial-gradient(200px circle at var(--mx) var(--my),rgba(140,160,255,.07),rgba(201,60,255,.03) 45%,transparent 70%)}
.btn{position:relative}
/* about: manufacturer panel gives the campus photo room */
.mfg-panel{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)!important;gap:clamp(22px,4vw,44px)!important;align-items:center}
.mfg-panel figure.photo{margin:0;aspect-ratio:4/3;border-radius:16px;overflow:hidden;width:100%;max-width:none!important}
.mfg-panel figure.photo img{width:100%;height:100%;object-fit:cover}
@media (max-width:880px){ .mfg-panel{grid-template-columns:1fr!important} }
@media (min-width:1024px){ .phero-photo--render img{object-position:80% 30%!important} }
.phero-card .notice{background:rgba(8,5,26,.72)!important;color:#e4ddf8!important}

/* ======================= v82 ======================= */

/* ---------- section transitions: one continuous surface ----------
   No hard edges between sections. Alternate sections fade their tone in
   and out over 160px instead of switching colour at a line, the page
   header dissolves into the first section, the closing band rises out
   of the section above it, and each section opens with a quiet "flow
   point" — a short glowing thread with a node — that carries the eye
   from one block into the next. */
main section:not(.hero):not(.standard):not(.band):not(.phero){
  background-color:transparent!important;border:0!important;
  background-image:var(--light),var(--glow,linear-gradient(transparent,transparent)),var(--tone,linear-gradient(transparent,transparent))}
main section.alt:not(.band):not(.phero){
  --tone:linear-gradient(180deg,rgba(16,9,39,0) 0,#100927 160px,#100927 calc(100% - 160px),rgba(16,9,39,0) 100%)}
.alt{border-block:0!important}
.phero{border-bottom:0!important;box-shadow:inset 0 -140px 120px -110px #0a0520}
.band{box-shadow:inset 0 160px 140px -120px #0a0520}
footer{box-shadow:inset 0 120px 100px -100px #0a0520;border-top:0!important}
.facts{border-block:0!important;background:linear-gradient(90deg,transparent,rgba(59,70,245,.08) 20%,rgba(201,60,255,.08) 80%,transparent)!important}
main section+section:not(.band)::before{
  content:"";position:absolute;left:50%;top:0;width:1px;height:56px;transform:translateX(-50%);pointer-events:none;z-index:1;
  background:linear-gradient(180deg,rgba(160,150,255,0),rgba(160,150,255,.55) 70%,rgba(201,60,255,.9))}
main section+section:not(.band)::after{
  content:"";position:absolute;left:50%;top:56px;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1;
  background:#e7d9ff;box-shadow:0 0 0 4px rgba(201,60,255,.16),0 0 16px 2px rgba(201,60,255,.7)}
main section{position:relative}
main section+section:not(.band){padding-top:clamp(92px,11vw,132px)!important}
@media (max-width:600px){
  main section+section:not(.band)::before{height:40px}
  main section+section:not(.band)::after{top:40px}
  main section+section:not(.band){padding-top:84px!important}
}

/* ---------- home hero heading ---------- */
.hero--photo h1{font-size:clamp(40px,5.2vw,70px);line-height:1.02;letter-spacing:-.03em;font-weight:600;margin-bottom:24px;
  text-shadow:0 2px 30px rgba(8,4,28,.55)}
.h1-kicker{display:block;margin-bottom:.12em;font-size:.56em;font-style:italic;font-weight:400;letter-spacing:-.01em;
  background:linear-gradient(95deg,#b9c6ff,#e2b8ff 60%,#ffc3a8);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero--photo h1 em{font-weight:500;background-image:linear-gradient(100deg,#ff9fe8,#f6b49c 60%,#ffd9a8)!important;
  filter:drop-shadow(0 2px 18px rgba(255,120,160,.35))}
.hero--photo .lede{font-size:clamp(16.5px,1.35vw,18.5px);line-height:1.62;color:#ece6fb}
.hero--photo .wrap>div:first-child{padding:clamp(30px,3.4vw,48px)}
@media (max-width:600px){ .hero--photo h1{font-size:clamp(34px,9.6vw,42px)} }

/* ---------- shared icon tile (timeline, standard cards, supply, pro) ---------- */
.sg-ico,.he-ico{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;flex:none;
  background:linear-gradient(145deg,rgba(110,120,255,.4),rgba(201,60,255,.2) 70%);border:1px solid rgba(190,200,255,.38);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 10px 24px -12px rgba(120,100,255,.8)}
.sg-ico svg,.he-ico svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ---------- process timelines sit in one glass panel ---------- */
.tl-wrap{padding:clamp(24px,3vw,40px) clamp(20px,3vw,40px) clamp(18px,2.4vw,28px);border-radius:26px;
  background:linear-gradient(135deg,rgba(59,70,245,.12),rgba(142,51,251,.06) 55%,rgba(255,138,90,.05)),rgba(12,7,30,.55);
  border:1px solid;border-color:rgba(170,185,255,.28) rgba(220,170,255,.12) rgba(255,176,146,.16) rgba(140,160,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 80px -50px rgba(8,0,28,.95)}
.timeline::before{top:28px}
@media (max-width:600px){ .tl-wrap{padding:22px 16px 6px;border-radius:20px} }

/* ---------- home: the Vertevance standard cards ---------- */
.standard-cards{gap:18px!important}
body .standard-card{padding:26px 24px 24px!important;display:flex;flex-direction:column}
.standard-card .sc-mark--icon{width:48px!important;height:48px!important;padding:12px;border-radius:15px;margin-bottom:18px;color:#fff!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c1) 55%,transparent),rgba(20,10,48,.6));border:1px solid color-mix(in srgb,var(--c1) 70%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 24px -12px var(--c1)}
.standard-card .sc-num{font-family:var(--mono)!important;font-size:12px!important;font-weight:600;top:26px!important;right:24px!important;opacity:1!important;
  background:none!important;-webkit-text-fill-color:currentColor!important;color:color-mix(in srgb,var(--c1) 45%,#fff)!important;
  padding:3px 8px;border-radius:7px;border:1px solid color-mix(in srgb,var(--c1) 45%,transparent)}
.standard-card .sc-stage{display:inline-block;align-self:flex-start;margin-bottom:10px;padding:4px 10px;border-radius:999px;font-size:10.5px!important;
  color:color-mix(in srgb,var(--c1) 35%,#fff)!important;border:1px solid color-mix(in srgb,var(--c1) 45%,transparent);background:color-mix(in srgb,var(--c1) 14%,transparent)}
.standard-card h3{font-size:20px!important;margin:0 0 8px!important}

/* ---------- chain of responsibility: arrows stay on top, cards align ---------- */
.handoff>li:nth-child(1){z-index:4}.handoff>li:nth-child(2){z-index:3}.handoff>li:nth-child(3){z-index:2}.handoff>li:nth-child(4){z-index:1}
.handoff-link:not(.is-last)::after{z-index:8}
.handoff{align-items:stretch}
.handoff-link{display:flex;flex-direction:column}
.handoff-for{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.handoff-for span{color:#d9d0f5}

/* ---------- supply cards ---------- */
.supply-grid>div{display:flex;flex-direction:column;gap:4px;padding:24px 22px!important}
.supply-grid .sg-ico{margin-bottom:14px}
.supply-grid h3{font-family:var(--display);font-size:18px;margin:0 0 6px}

/* ---------- clickable text lights up ---------- */
:is(.path-cta,.pc-go,.go,.reg-go,.link-row a,.crumbs a,.fnav-col a:not(.logo),.util a,.lane-tag a,main p a:not(.btn)){
  background-image:linear-gradient(90deg,#9fb0ff,#e59bff 60%,#f6b49c);background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;
  transition:color .35s,text-shadow .35s,background-size .45s cubic-bezier(.22,.61,.24,1)}
@media (hover:hover) and (pointer:fine){
  :is(.path-cta,.pc-go,.go,.reg-go,.link-row a,.crumbs a,.fnav-col a:not(.logo),.util a,main p a:not(.btn)):hover,
  :is(a.prodcard,.path-hub a,.reg-card,.related a,.iso-card):hover :is(.pc-go,.go,.reg-go){
    background-size:100% 1px;text-shadow:none!important}
  :is(.path-cta,.pc-go,.go,.reg-go):hover span,:is(a.prodcard,.path-hub a,.reg-card,.related a):hover :is(.pc-go,.go,.reg-go) span{transform:translateX(4px)}
}
:is(.path-cta,.pc-go,.go,.reg-go):focus-visible{background-size:100% 1px;outline:none}

/* ---------- footer logo = header lockup, larger ---------- */
.fnav-brand .logo{transform:none!important;margin:0 0 6px!important}
.logo--foot img{display:block;height:54px;width:auto;filter:drop-shadow(0 0 18px rgba(74,96,255,.35));transition:filter .5s}
@media (hover:hover) and (pointer:fine){ .logo--foot:hover img{filter:drop-shadow(0 0 24px rgba(110,140,255,.75))} }
@media (max-width:600px){ .logo--foot img{height:46px} }

/* ---------- patient-specific skull: wireframe lights up under the pointer ---------- */
.phero-photo--render .skull-glow{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:inherit;pointer-events:none;
  filter:hue-rotate(-95deg) saturate(2.4) brightness(2);mix-blend-mode:screen;opacity:0;transition:opacity .6s;
  -webkit-mask:radial-gradient(170px circle at var(--gx,50%) var(--gy,50%),#000 0%,rgba(0,0,0,.6) 45%,transparent 75%);
  mask:radial-gradient(170px circle at var(--gx,50%) var(--gy,50%),#000 0%,rgba(0,0,0,.6) 45%,transparent 75%)}
@media (min-width:1024px){ .phero-photo--render .skull-glow{object-position:80% 30%} }
@media (max-width:1023px){ .phero-photo--render .skull-glow{object-position:center 28%} }
.phero-photo--render.is-lit .skull-glow{opacity:1}

/* ---------- professional area: hero card + cards ---------- */
.phero-card .notice{background:none!important;border:0!important;border-top:1px solid rgba(255,255,255,.1)!important;border-radius:0!important;
  margin:22px 0 0!important;padding:16px 0 0 30px!important;position:relative;font-size:13.5px;color:#d9d1f3!important;max-width:62ch}
.phero-card .notice::before{content:""!important;position:absolute;left:0;top:17px;width:18px;height:18px;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.3-8 9-4.6-.7-8-4.5-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.3-8 9-4.6-.7-8-4.5-8-9V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E") center/contain no-repeat;
  background:linear-gradient(135deg,#2fd4c4,#38bdf8)!important}
body.area-pro .phero-card{background-color:rgba(10,12,40,.62)!important;border-top:2px solid rgba(47,212,196,.5)}
body.area-pro .kits{border-top:2px solid rgba(47,212,196,.55)!important}
body.area-pro .kits thead th,body.area-pro .kits th{color:#9ff3e8!important}
body.area-pro .kits tbody tr{transition:background .35s}
@media (hover:hover){ body.area-pro .kits tbody tr:hover{background:rgba(47,212,196,.07)} }
body.area-pro ul.range{counter-reset:prep}
body.area-pro ul.range li{counter-increment:prep;padding:16px 18px 16px 58px!important;border-radius:14px;font-size:15px!important;color:var(--ink-2)!important;
  background:linear-gradient(135deg,rgba(47,212,196,.1),rgba(14,8,34,.55) 60%);border:1px solid rgba(120,220,210,.22)}
body.area-pro ul.range li::before{content:counter(prep,decimal-leading-zero)!important;left:16px!important;top:50%!important;transform:translateY(-50%);width:auto!important;height:auto!important;
  background:none!important;-webkit-mask:none!important;mask:none!important;font-family:var(--mono);font-size:12px;font-weight:600;color:#9ff3e8;padding:3px 7px;border-radius:7px;border:1px solid rgba(47,212,196,.5)}
body.area-pro .detail-strip figure{border-top:2px solid rgba(47,212,196,.45)!important}
body.area-pro .related a{border-left:2px solid rgba(47,212,196,.6)!important}
body.area-pro #hcp-hub,body.area-pro .path-hub{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media (max-width:1023px){ body.area-pro .path-hub{grid-template-columns:repeat(2,minmax(0,1fr))!important} }
@media (max-width:600px){ body.area-pro .path-hub{grid-template-columns:1fr!important} }

/* ---------- professional entry ---------- */
.hcp-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:center}
.hcp-entry-info h2{margin:10px 0 14px}
.hcp-entry-info>p{color:var(--ink-2);max-width:52ch;margin:0 0 22px}
.hcp-entry-list{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.hcp-entry-list li{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;align-items:center}
.hcp-entry-list b{display:block;font-family:var(--display);font-size:17px;color:#fff}
.hcp-entry-list span:not(.he-ico){display:block;font-size:14.5px;color:var(--ink-2)}
.he-ico{background:linear-gradient(145deg,rgba(47,212,196,.35),rgba(56,120,248,.2) 70%);border-color:rgba(120,230,220,.4)}
.hcp-entry-card{position:relative;padding:clamp(26px,3vw,38px);border-radius:24px;
  background:linear-gradient(150deg,rgba(47,212,196,.14),rgba(59,70,245,.12) 45%,rgba(142,51,251,.1)),rgba(10,10,34,.7);
  -webkit-backdrop-filter:blur(24px) saturate(1.5);backdrop-filter:blur(24px) saturate(1.5);
  border:1px solid;border-color:rgba(150,240,230,.45) rgba(170,185,255,.18) rgba(220,170,255,.2) rgba(120,220,210,.25);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 50px 100px -50px rgba(8,0,28,1),0 0 70px -30px rgba(47,212,196,.45)}
.hec-badge{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#bff5ee;
  padding:6px 12px;border-radius:999px;border:1px solid rgba(47,212,196,.45);background:rgba(47,212,196,.12);margin-bottom:20px}
.hec-badge svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2}
.hec-check{display:grid;grid-template-columns:30px minmax(0,1fr);gap:14px;align-items:start;padding:18px;border-radius:16px;cursor:pointer;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.14);transition:border-color .35s,background .35s,box-shadow .35s}
.hec-check input{position:absolute;opacity:0;width:1px;height:1px}
.hec-box{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;border:1.5px solid rgba(190,230,230,.6);background:rgba(8,8,30,.6);transition:all .35s}
.hec-box svg{width:18px;height:18px;fill:none;stroke:#fff;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:24;stroke-dashoffset:24;transition:stroke-dashoffset .4s .05s}
.hec-text{font-size:15px;line-height:1.55;color:#ece6fb}
.hec-check:has(input:checked){border-color:rgba(47,212,196,.7);background:rgba(47,212,196,.1);box-shadow:0 0 30px -12px rgba(47,212,196,.8)}
.hec-check:has(input:checked) .hec-box{background:linear-gradient(135deg,#14b8a6,#3b82f6);border-color:transparent}
.hec-check:has(input:checked) .hec-box svg{stroke-dashoffset:0}
.hec-check:has(input:focus-visible){outline:2px solid #9ff3e8;outline-offset:3px}
@media (hover:hover){ .hec-check:hover{border-color:rgba(150,240,230,.5)} }
.hec-indemnity{margin:16px 0 20px;font-size:13.5px;line-height:1.6;color:#cfc6ef}
.hec-go{width:100%;justify-content:center;min-height:54px;font-size:16px;opacity:.55;transition:opacity .35s,transform .35s,box-shadow .35s}
.hcp-entry-card:has(input:checked) .hec-go{opacity:1;box-shadow:0 18px 40px -14px rgba(90,80,255,.9)}
.hec-foot{margin:14px 0 0;font-size:12.5px;line-height:1.55;color:#b9aede}
@media (max-width:880px){ .hcp-entry{grid-template-columns:1fr} }

/* ---------- support model: stage by stage ---------- */
.sd-title{font-family:var(--display);font-size:clamp(22px,2.4vw,28px);font-weight:600;margin:clamp(40px,5vw,60px) 0 18px}
.stage-detail{display:grid;gap:10px}
.sd-head{display:grid;grid-template-columns:180px repeat(3,minmax(0,1fr));gap:18px;padding:0 22px;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#bdb2e2}
.sd-row{position:relative;display:grid;grid-template-columns:180px repeat(3,minmax(0,1fr));gap:18px;align-items:start;padding:20px 22px;border-radius:18px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--c) 16%,transparent),rgba(14,8,34,.6) 45%);
  border:1px solid color-mix(in srgb,var(--c) 30%,rgba(255,255,255,.08));border-left:3px solid var(--c);transition:transform .5s cubic-bezier(.22,.61,.24,1)}
@media (hover:hover){ .sd-row:hover{transform:translateX(4px)} }
.sd-stage{display:flex;align-items:center;gap:12px}
.sd-n{font-family:var(--mono);font-size:12px;font-weight:600;color:#fff;padding:3px 8px;border-radius:7px;background:color-mix(in srgb,var(--c) 40%,transparent)}
.sd-stage b{font-family:var(--display);font-size:19px;color:#fff}
.sd-cell{font-size:15px;line-height:1.55;color:var(--ink-2)}
.sd-cell em{display:none}
.sd-out{color:#fff;font-weight:500}
@media (max-width:880px){
  .sd-head{display:none}
  .sd-row{grid-template-columns:1fr;gap:10px}
  .sd-cell em{display:block;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#bdb2e2;margin-bottom:3px}
}
/* support page: roles + documentation cards get a coloured top edge */
.support-model-page .grid>div,section .grid>div{border-top-width:2px!important}
.hec-go{opacity:1!important;background:rgba(255,255,255,.07)!important;color:#ece6fb!important;border:1px solid rgba(200,210,255,.3)!important;box-shadow:none!important;text-shadow:none!important}
.hcp-entry-card:has(input:checked) .hec-go{background:linear-gradient(100deg,#0f766e,#1d4ed8 55%,#6d28d9)!important;color:#fff!important;border-color:transparent!important;box-shadow:0 18px 40px -14px rgba(60,110,255,.9)!important}
.sahpra-meta dt{color:#cfc4f0!important}
.phero-photo--render .skull-glow{mix-blend-mode:normal!important;filter:hue-rotate(115deg) saturate(2.6) brightness(1.7) drop-shadow(0 0 6px rgba(230,90,255,.8))!important}

/* ======================= v83 ======================= */

/* ---------- section transitions: a horizon of light ----------
   The v82 thread-and-node is gone. Each section now opens under a soft
   horizon: a hairline of light across the content width, brightest at the
   centre and dissolving at both ends, with a faint wash of light spilling
   down from it. It reads as one surface catching light, not a divider. */
main section+section:not(.band)::before{
  content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:min(1180px,92%);height:1px;pointer-events:none;z-index:1;
  background:linear-gradient(90deg,rgba(120,130,255,0),rgba(120,130,255,.38) 22%,rgba(215,190,255,.62) 50%,rgba(255,150,190,.34) 78%,rgba(255,150,190,0));
  box-shadow:none;border-radius:0}
main section+section:not(.band)::after{
  content:"";position:absolute;left:50%;top:0;transform:translateX(-50%);width:min(1000px,86%);height:clamp(90px,10vw,150px);pointer-events:none;z-index:0;
  background:radial-gradient(50% 100% at 50% 0,rgba(125,110,255,.16),rgba(170,90,255,.06) 55%,transparent 100%);
  border-radius:0;box-shadow:none}
main section+section:not(.band){padding-top:clamp(76px,8.5vw,112px)!important}
main section[id]{scroll-margin-top:96px}
@media (max-width:600px){
  main section+section:not(.band)::before{top:0;height:1px;width:88%}
  main section+section:not(.band)::after{top:0;height:80px}
  main section+section:not(.band){padding-top:68px!important}
}
/* the header card never sits on a seam */
main section.phero+section::before,main section.hero+section::before{opacity:.7}

/* ---------- section notes: plain, readable text ---------- */
.sec-note{font-family:var(--body,inherit)!important;font-style:normal!important;font-size:16px!important;line-height:1.6!important;color:#cfc6ef!important;letter-spacing:0!important}

/* ---------- home hero: one voice, one size ---------- */
.hero--photo h1.hero-h1{font-size:clamp(40px,5vw,68px);line-height:1.04;letter-spacing:-.032em;font-weight:600;font-style:normal;margin:0 0 22px;color:#fff}
.hero-h1 .hl{display:block}
.hero-h1 .hl-accent{font-style:normal!important;font-weight:inherit;
  background:linear-gradient(100deg,#a9b8ff 0%,#e3a6ff 45%,#f6b49c 100%);-webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 2px 20px rgba(200,130,255,.35))}
.hero-h1 .hl-quiet{color:#b8aee0}
@media (max-width:600px){ .hero--photo h1.hero-h1{font-size:clamp(34px,9.4vw,42px)} .hero-h1 .hl{display:inline} .hero-h1 .hl-quiet{display:block} }
.hero--photo .lede{margin-bottom:18px!important;font-size:clamp(17px,1.4vw,19px)!important;color:#f1ecff!important}
.hero-points{list-style:none;margin:0 0 30px;padding:0;display:grid;gap:12px}
.hero-points li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:center;font-size:14.5px;line-height:1.5;color:#d7cff2}
.hero-points b{display:block;font-size:15.5px;font-weight:600;color:#fff;margin-bottom:1px}
.hp-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  background:linear-gradient(145deg,rgba(110,120,255,.42),rgba(201,60,255,.2) 70%);border:1px solid rgba(190,200,255,.36);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 8px 20px -10px rgba(120,100,255,.9)}
.hp-ico svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.hero-points li:nth-child(2) .hp-ico{background:linear-gradient(145deg,rgba(160,90,255,.45),rgba(255,120,200,.18) 70%)}
.hero-points li:nth-child(3) .hp-ico{background:linear-gradient(145deg,rgba(255,130,120,.4),rgba(201,60,255,.2) 70%);border-color:rgba(255,200,180,.36)}
@media (max-width:600px){ .hero-points li{font-size:14px} .hero-points{margin-bottom:24px} }

/* ---------- page headers: "On this page" guide ---------- */
.phero-jump{margin-top:26px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1)}
.pj-label{display:block;margin-bottom:12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#c9bff0}
.phero-jump ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.phero-jump a{display:inline-flex;align-items:center;gap:9px;padding:7px 14px 7px 7px;border-radius:999px;text-decoration:none;
  font-size:14px;font-weight:500;color:#ece6fb;background:rgba(255,255,255,.05);border:1px solid rgba(200,205,255,.2);
  transition:background .35s,border-color .35s,color .35s,box-shadow .35s,transform .35s cubic-bezier(.22,.61,.24,1)}
.pj-ico{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;flex:none;
  background:linear-gradient(145deg,rgba(110,120,255,.45),rgba(201,60,255,.25));transition:box-shadow .35s}
.pj-ico svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pj-t{display:inline-flex;align-items:baseline;gap:7px}
.pj-n{font-family:var(--mono);font-size:10.5px;font-weight:600;color:#b9b0e6}
@media (hover:hover) and (pointer:fine){
  .phero-jump a:hover{color:#fff;background:rgba(120,110,255,.18);border-color:rgba(200,190,255,.55);transform:translateY(-2px);
    box-shadow:0 10px 26px -12px rgba(140,110,255,.9),inset 0 1px 0 rgba(255,255,255,.18)}
  .phero-jump a:hover .pj-ico{box-shadow:0 0 16px rgba(190,140,255,.8)}
}
.phero-jump a:focus-visible{outline:2px solid #c9b8ff;outline-offset:2px}
.phero-jump a.is-pressed,.phero-jump a.in-view{color:#fff}
body.area-pro .phero-jump a{border-color:rgba(120,230,220,.26)}
body.area-pro .pj-ico{background:linear-gradient(145deg,rgba(47,212,196,.5),rgba(56,120,248,.3))}
@media (hover:hover) and (pointer:fine){ body.area-pro .phero-jump a:hover{background:rgba(47,212,196,.14);border-color:rgba(150,240,230,.6);box-shadow:0 10px 26px -12px rgba(47,212,196,.8)} }
@media (max-width:600px){
  .phero-jump{margin-top:20px;padding-top:16px}
  .phero-jump ol{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .phero-jump a{font-size:13px;padding:6px 10px 6px 6px;gap:8px;min-height:40px}
  .pj-n{display:none}
}

/* ---------- about: director card ---------- */
body .director-card.dc{padding:clamp(26px,3vw,38px)!important;border-radius:26px!important;display:flex;flex-direction:column;gap:22px;overflow:hidden;
  background:radial-gradient(120% 80% at 100% 0,rgba(201,60,255,.2),transparent 55%),radial-gradient(90% 70% at 0 100%,rgba(59,70,245,.22),transparent 60%),rgba(14,8,36,.72)!important;
  border:1px solid!important;border-color:rgba(190,195,255,.34) rgba(220,170,255,.18) rgba(255,176,146,.2) rgba(150,165,255,.2)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 50px 90px -50px rgba(8,0,28,1)!important}
.dc .director-card__mark,.dc>.eyebrow{display:none}
.dc-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 9px;border-radius:999px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:#efe6ff;background:rgba(201,60,255,.14);border:1px solid rgba(220,160,255,.4)}
.dc-badge svg{width:15px;height:15px;fill:none;stroke:#e9c9ff;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.dc-quote{position:relative;margin:0!important;padding:0 0 0 22px!important;border:0!important;background:none!important}
.dc-quote::before{content:"";position:absolute;left:0;top:4px;bottom:4px;width:3px;border-radius:3px;background:linear-gradient(180deg,#8fa0ff,#d77bff 55%,#f6a58e)}
.dc-quote p{margin:0;font-family:var(--display);font-style:normal;font-weight:500;font-size:clamp(19px,1.7vw,22px);line-height:1.42;letter-spacing:-.01em;color:#fff}
.dc-person{display:flex;align-items:center;gap:14px}
.dc-avatar{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;flex:none;font-family:var(--display);font-weight:600;font-size:18px;color:#fff;
  background:linear-gradient(140deg,#3b46f5,#8e33fb 60%,#f0795f);box-shadow:0 0 0 3px rgba(14,8,36,.9),0 0 0 4px rgba(210,180,255,.45),0 12px 26px -10px rgba(140,80,255,.9)}
.dc-person strong{display:block;font-size:17px;color:#fff}
.dc-person span:not(.dc-avatar){display:block;font-size:13.5px;color:#cfc6ef}
.dc-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0!important;padding:0!important;border:0!important}
.dc-facts>div{padding:14px 12px;border-radius:14px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);text-align:left}
.dc-facts dt{font-family:var(--display);font-size:26px;font-weight:600;line-height:1;margin-bottom:6px;
  background:linear-gradient(100deg,#b9c4ff,#e7b0ff 60%,#ffc2a8);-webkit-background-clip:text;background-clip:text;color:transparent}
.dc-facts dd{margin:0;font-size:12.5px;line-height:1.35;color:#d8d0f3;text-transform:none;letter-spacing:0;font-family:inherit}
.dc-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.dc-act{position:relative;display:flex;align-items:center;gap:11px;padding:12px;border-radius:15px;text-decoration:none;color:#fff;min-width:0;
  background:rgba(255,255,255,.05);border:1px solid rgba(200,205,255,.22);transition:background .35s,border-color .35s,box-shadow .35s,transform .35s cubic-bezier(.22,.61,.24,1)}
.dc-ai{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;flex:none;background:linear-gradient(145deg,rgba(110,120,255,.5),rgba(201,60,255,.28))}
.dc-ai svg{width:17px;height:17px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.dc-act b{display:block;font-size:14px;font-weight:600}
.dc-act small{display:block;font-size:12px;color:#cfc6ef;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dc-act>span:last-child{min-width:0}
@media (hover:hover) and (pointer:fine){ .dc-act:hover{transform:translateY(-2px);background:rgba(120,110,255,.16);border-color:rgba(210,195,255,.55);box-shadow:0 12px 28px -14px rgba(140,110,255,.9)} }
.dc-act.is-pressed,.dc-act.in-view{border-color:rgba(210,195,255,.55);background:rgba(120,110,255,.14)}
@media (max-width:420px){ .dc-actions{grid-template-columns:1fr} .dc-facts dt{font-size:22px} }

/* ---------- support model 04: the instrument-set relay ---------- */
.relay{display:grid;gap:0;margin-top:8px}
.relay-phase{position:relative;display:grid;grid-template-columns:210px minmax(0,1fr);gap:clamp(18px,2.4vw,32px);align-items:start;
  padding:clamp(20px,2.4vw,28px);border-radius:24px;
  background:linear-gradient(100deg,color-mix(in srgb,var(--c) 16%,transparent),rgba(14,8,34,.62) 40%),rgba(12,7,30,.4);
  border:1px solid color-mix(in srgb,var(--c) 34%,rgba(255,255,255,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 34px 70px -46px rgba(8,0,28,.95)}
.relay-phase header{display:flex;flex-direction:column;gap:12px;padding-top:4px}
.relay-when{font-family:var(--display);font-size:clamp(20px,1.9vw,24px);font-weight:600;line-height:1.15;color:#fff}
.relay-who{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:5px 11px 5px 8px;border-radius:999px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;
  background:color-mix(in srgb,var(--c) 24%,transparent);border:1px solid color-mix(in srgb,var(--c) 60%,transparent)}
.relay-who i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c)}
.relay-phase ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.relay-phase li{position:relative;display:flex;flex-direction:column;gap:12px;padding:18px 16px 18px;border-radius:17px;
  background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1);transition:transform .45s cubic-bezier(.22,.61,.24,1),border-color .4s,background .4s,box-shadow .4s}
.rl-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 60%,transparent),rgba(20,10,48,.6));border:1px solid color-mix(in srgb,var(--c) 65%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 20px -10px var(--c)}
.rl-ico svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.rl-n{position:absolute;top:16px;right:16px;font-family:var(--mono);font-size:11px;font-weight:600;color:color-mix(in srgb,var(--c) 40%,#fff)}
.relay-phase h3{margin:0 0 5px;font-family:var(--display);font-size:17px;line-height:1.25;color:#fff}
.relay-phase li p{margin:0;font-size:14px;line-height:1.5;color:#d6cef1}
@media (hover:hover) and (pointer:fine){
  .relay-phase li:hover{transform:translateY(-3px);background:color-mix(in srgb,var(--c) 12%,rgba(255,255,255,.04));border-color:color-mix(in srgb,var(--c) 55%,transparent);
    box-shadow:0 18px 36px -20px var(--c)}
}
.relay-phase li.in-view,.relay-phase li.is-pressed{background:color-mix(in srgb,var(--c) 12%,rgba(255,255,255,.04));border-color:color-mix(in srgb,var(--c) 55%,transparent)}
.relay-hand{position:relative;display:flex;align-items:center;justify-content:center;gap:12px;height:74px}
.relay-hand::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;transform:translateX(-50%);
  background:linear-gradient(180deg,rgba(150,150,255,.1),rgba(210,170,255,.7) 50%,rgba(255,150,120,.1))}
.relay-hand span,.relay-hand small{position:relative;z-index:1}
.relay-hand span{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:#fff;
  background:linear-gradient(100deg,#3b46f5,#8e33fb 55%,#f0795f);box-shadow:0 0 0 5px rgba(12,7,30,.9),0 10px 26px -8px rgba(160,80,255,.9)}
.relay-hand span::after{content:"";width:9px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:translateY(-2px) rotate(45deg)}
.relay-hand small{padding:5px 11px;border-radius:999px;font-size:13px;color:#e6defa;background:rgba(12,7,30,.92);border:1px solid rgba(210,190,255,.25)}
@media (max-width:1023px){
  .relay-phase{grid-template-columns:1fr}
  .relay-phase header{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap}
}
@media (max-width:600px){
  .relay-phase{padding:18px 14px;border-radius:20px}
  .relay-phase ol{grid-template-columns:1fr;gap:10px}
  .relay-phase li{flex-direction:row;align-items:flex-start;gap:14px;padding:14px}
  .rl-ico{flex:none}
  .rl-n{top:14px;right:14px}
  .relay-hand{flex-direction:column;gap:6px;height:auto;padding:16px 0}
}

/* ---------- chain of responsibility cards (quality 01, home, about) ---------- */
body .handoff-link{padding:24px 22px 22px!important;border-radius:22px!important}
.handoff-link .handoff-icon,.handoff-link .handoff-mark{display:grid!important;place-items:center;width:48px!important;height:48px!important;margin:0 0 20px!important;padding:0;border-radius:15px;color:#fff!important;
  -webkit-mask:none!important;mask:none!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 58%,transparent),rgba(20,10,48,.6))!important;border:1px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 24px -12px var(--c)}
.handoff-link .handoff-icon svg{width:22px!important;height:22px!important}
.handoff-link .handoff-mark::after{content:"";width:24px;height:20px;background:#fff;
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;mask:url("/assets/mark-mask.png") center/contain no-repeat}
.handoff-link .handoff-num{font-family:var(--mono)!important;font-size:12px!important;font-weight:600;top:24px!important;right:22px!important;opacity:1!important;
  background:none!important;-webkit-text-fill-color:currentColor!important;color:color-mix(in srgb,var(--c) 40%,#fff)!important;
  padding:3px 8px;border-radius:7px;border:1px solid color-mix(in srgb,var(--c) 45%,transparent)}
.handoff-link.is-us .handoff-us-tag{position:absolute;top:36px;left:82px;margin:0!important;font-size:9.5px}
.handoff-link .handoff-role{margin-bottom:8px!important;font-size:10.5px}
.handoff-link h3{font-size:20px!important;margin:0 0 10px!important;line-height:1.2}
.handoff-link p{font-size:15px!important;line-height:1.55!important;color:#d9d1f3!important}
.handoff-for{margin-top:auto!important;padding-top:16px!important;border-top:1px solid rgba(255,255,255,.1)!important;font-family:inherit!important;letter-spacing:0!important}
.handoff-for b{font-family:var(--mono);font-size:10px!important;letter-spacing:.18em!important;color:#c3b9e8!important;margin-bottom:10px!important}
.handoff-for ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.handoff-for li{padding:4px 10px;border-radius:999px;font-size:12.5px;line-height:1.4;color:#f1ecff;
  background:color-mix(in srgb,var(--c) 16%,rgba(255,255,255,.03));border:1px solid color-mix(in srgb,var(--c) 38%,transparent)}
.handoff-link.is-us .handoff-for li{background:rgba(201,60,255,.2);border-color:rgba(230,170,255,.5)}
@media (max-width:620px){ .handoff-link.is-us .handoff-us-tag{top:36px;left:84px} }

/* ---------- professional pathways: product family overview ---------- */
.pfo{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.35fr);gap:clamp(18px,2.4vw,28px);align-items:stretch}
.pfo-stage{position:relative;margin:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;min-height:340px;
  padding:clamp(24px,3vw,40px);border-radius:26px;overflow:hidden;
  background:radial-gradient(60% 55% at 50% 46%,rgba(47,212,196,.2),rgba(59,70,245,.12) 55%,transparent 80%),
    radial-gradient(80% 60% at 50% 110%,rgba(142,51,251,.25),transparent 70%),rgba(10,10,32,.6);
  border:1px solid;border-color:rgba(150,240,230,.35) rgba(170,185,255,.14) rgba(220,170,255,.16) rgba(120,220,210,.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 80px -50px rgba(8,0,28,1)}
.pfo-stage::before{content:"";position:absolute;left:50%;bottom:16%;width:62%;height:26px;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent);filter:blur(6px);pointer-events:none}
.pfo-stage img{position:relative;display:block;width:auto;max-width:100%;max-height:280px;object-fit:contain;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.5)) drop-shadow(0 0 30px rgba(47,212,196,.18));transition:transform 1s cubic-bezier(.22,.61,.24,1),filter 1s}
.pfo-stage figcaption{position:relative;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#c9c0ee;text-align:center}
@media (hover:hover) and (pointer:fine){ .pfo-stage:hover img{transform:scale(1.05) translateY(-4px);filter:drop-shadow(0 24px 34px rgba(0,0,0,.55)) drop-shadow(0 0 40px rgba(47,212,196,.35)) brightness(1.08)} }
.pfo-body{display:flex;flex-direction:column;gap:14px}
.pfo-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;flex:1}
.pfo-item{position:relative;display:flex;flex-direction:column;gap:14px;padding:22px 20px;border-radius:20px;
  background:linear-gradient(150deg,color-mix(in srgb,var(--c) 14%,transparent),rgba(14,8,34,.62) 55%),rgba(10,8,30,.4);
  border:1px solid color-mix(in srgb,var(--c) 32%,rgba(255,255,255,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 26px 50px -34px rgba(8,0,28,.95);
  transition:transform .5s cubic-bezier(.22,.61,.24,1),border-color .4s,box-shadow .4s}
.pfo-ico{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 55%,transparent),rgba(14,10,40,.6));border:1px solid color-mix(in srgb,var(--c) 65%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 22px -12px var(--c)}
.pfo-ico svg{width:22px;height:22px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pfo-k{display:block;margin-bottom:6px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 45%,#fff)}
.pfo-item p{margin:0;font-family:var(--display);font-size:17px;font-weight:500;line-height:1.4;color:#fff}
@media (hover:hover) and (pointer:fine){ .pfo-item:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c) 60%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 22px 44px -22px var(--c)} }
.pfo-item.in-view,.pfo-item.is-pressed{border-color:color-mix(in srgb,var(--c) 60%,transparent)}
.pfo-confirm{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:start;padding:18px 20px;border-radius:18px;
  background:rgba(47,212,196,.08);border:1px solid rgba(47,212,196,.3)}
.pfo-ci{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,#0f766e,#1d4ed8)}
.pfo-ci svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.pfo-confirm p{margin:0;font-size:14.5px;line-height:1.6;color:#ddd6f5}
.pfo-confirm b{color:#fff}
.pfo-confirm .path-cta{display:inline-block;margin-top:4px;color:#9ff3e8}
@media (max-width:1023px){ .pfo{grid-template-columns:1fr} .pfo-stage{min-height:0} .pfo-stage img{max-height:220px} }
@media (max-width:600px){ .pfo-grid{grid-template-columns:1fr;gap:10px} .pfo-item{flex-direction:row;align-items:flex-start;padding:16px} .pfo-ico{flex:none;width:42px;height:42px} .pfo-item p{font-size:16px} .pfo-stage{padding:22px 16px} }

/* ---------- forms: guided, two-step, with a "what happens next" panel ---------- */
.xf-shell{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.8fr);gap:clamp(18px,2.4vw,28px);align-items:start}
.xform{position:relative;padding:clamp(24px,3.2vw,44px);border-radius:28px;
  background:radial-gradient(90% 60% at 0 0,rgba(59,70,245,.16),transparent 60%),radial-gradient(70% 50% at 100% 100%,rgba(201,60,255,.12),transparent 60%),rgba(12,7,30,.72);
  -webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);
  border:1px solid;border-color:rgba(180,190,255,.3) rgba(220,170,255,.14) rgba(255,176,146,.16) rgba(150,165,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 50px 100px -56px rgba(8,0,28,1)}
body.area-pro .xform{border-top:2px solid rgba(47,212,196,.55)}
.xf-head{display:flex;align-items:center;gap:16px;margin-bottom:clamp(22px,2.6vw,32px)}
.xf-ico{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;flex:none;
  background:linear-gradient(145deg,rgba(110,120,255,.5),rgba(201,60,255,.25) 70%);border:1px solid rgba(190,200,255,.4);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 12px 26px -12px rgba(120,100,255,.9)}
body.area-pro .xf-ico{background:linear-gradient(145deg,rgba(47,212,196,.5),rgba(56,120,248,.3) 70%);border-color:rgba(120,230,220,.45)}
.xf-ico svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.xf-title{margin:0 0 4px!important;font-size:clamp(22px,2.2vw,28px)!important;line-height:1.15}
.xf-head p{margin:0;font-size:14px;color:#cfc6ef}
.xf-step{margin:0 0 24px;padding:0;border:0;min-width:0}
.xf-step+.xf-step{padding-top:24px;border-top:1px solid rgba(255,255,255,.09)}
.xf-step legend{display:flex;align-items:center;gap:12px;padding:0;margin-bottom:18px;font-family:var(--display);font-size:19px;font-weight:600;color:#fff}
.xf-n{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;font-family:var(--mono);font-size:12px;font-weight:600;color:#fff;
  background:linear-gradient(135deg,#3b46f5,#8e33fb);box-shadow:0 0 0 4px rgba(120,100,255,.14)}
body.area-pro .xf-n{background:linear-gradient(135deg,#0f766e,#1d4ed8);box-shadow:0 0 0 4px rgba(47,212,196,.14)}
.xform .form-grid{gap:16px 18px!important}
.xform .field{margin:0}
.xform .field+.field.full,.xform .field.full+.form-grid,.xform .field.full+.field.full{margin-top:18px}
.xform label,.xform .flabel{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#ece6fb}
.xform .req{color:#f6a58e}
.xform .opt{margin-left:6px;font-size:12px;font-weight:400;color:#b3a9dc}
.xform :is(input:not([type=radio]):not([type=checkbox]),select,textarea){width:100%;min-height:52px;padding:14px 16px;border-radius:14px;font:inherit;font-size:15.5px;color:#fff;
  background-color:rgba(255,255,255,.05)!important;border:1px solid rgba(200,205,255,.22)!important;box-shadow:inset 0 1px 2px rgba(0,0,0,.25);
  transition:border-color .3s,background .3s,box-shadow .3s}
.xform textarea{min-height:130px;resize:vertical;line-height:1.55}
.xform ::placeholder{color:#a79dcf;opacity:1}
.xform :is(input,select,textarea):hover{border-color:rgba(210,205,255,.4)!important}
.xform :is(input:not([type=radio]):not([type=checkbox]),select,textarea):focus{outline:none;border-color:rgba(190,170,255,.85)!important;background-color:rgba(120,110,255,.1)!important;
  box-shadow:0 0 0 4px rgba(140,110,255,.2),inset 0 1px 2px rgba(0,0,0,.2)}
body.area-pro .xform :is(input:not([type=radio]):not([type=checkbox]),select,textarea):focus{border-color:rgba(120,230,220,.85)!important;background-color:rgba(47,212,196,.08)!important;box-shadow:0 0 0 4px rgba(47,212,196,.18)}
.xform .has-error :is(input,select,textarea){border-color:#ff8a7a!important;box-shadow:0 0 0 4px rgba(255,120,110,.14)}
.xform .has-error .chip span{border-color:rgba(255,138,122,.7)}
.xform .has-error .flabel,.xform .has-error>label{color:#ffc0b5}
/* choice chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative;display:inline-block!important;margin:0!important;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.chip span{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 16px;border-radius:999px;font-size:14.5px;font-weight:500;color:#e8e1fb;
  background:rgba(255,255,255,.05);border:1px solid rgba(200,205,255,.24);transition:background .3s,border-color .3s,color .3s,box-shadow .3s,transform .3s}
.chip span::before{content:"";width:14px;height:14px;border-radius:50%;border:1.5px solid rgba(210,205,255,.6);flex:none;transition:all .3s}
.chip:hover span{border-color:rgba(210,200,255,.55);background:rgba(120,110,255,.1)}
.chip input:checked+span{color:#fff;background:linear-gradient(100deg,rgba(59,70,245,.55),rgba(142,51,251,.45));border-color:rgba(200,180,255,.8);box-shadow:0 8px 22px -10px rgba(140,100,255,.9)}
.chip input:checked+span::before{border-color:#fff;background:#fff;box-shadow:inset 0 0 0 3px #6a4df5}
.chip input:focus-visible+span{outline:2px solid #c9b8ff;outline-offset:3px}
body.area-pro .chip input:checked+span{background:linear-gradient(100deg,rgba(15,118,110,.7),rgba(29,78,216,.55));border-color:rgba(150,240,230,.8);box-shadow:0 8px 22px -10px rgba(47,212,196,.8)}
body.area-pro .chip input:checked+span::before{box-shadow:inset 0 0 0 3px #0f766e}
.xform .chips+*{margin-top:0}
.xform .field.full:has(.chips){margin-bottom:18px}
/* consent checkbox */
.xf-check{display:grid!important;grid-template-columns:26px minmax(0,1fr);gap:12px;align-items:start;padding:14px 16px;border-radius:14px;cursor:pointer;
  font-weight:400!important;font-size:14px!important;line-height:1.55;color:#d9d1f3!important;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.1)}
.xf-check input{position:absolute;opacity:0;width:1px;height:1px}
.xc-box{display:grid;place-items:center;width:26px;height:26px;border-radius:8px;border:1.5px solid rgba(210,205,255,.55);transition:all .3s}
.xc-box svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:22;stroke-dashoffset:22;transition:stroke-dashoffset .35s}
.xf-check:has(input:checked){border-color:rgba(190,170,255,.55);background:rgba(120,110,255,.08)}
.xf-check:has(input:checked) .xc-box{background:linear-gradient(135deg,#3b46f5,#8e33fb);border-color:transparent}
.xf-check:has(input:checked) .xc-box svg{stroke-dashoffset:0}
.xf-check:has(input:focus-visible){outline:2px solid #c9b8ff;outline-offset:3px}
.xf-warn{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;margin:16px 0 0;padding:12px 14px;border-radius:12px;font-size:13.5px;line-height:1.55;color:#f3dcd4;
  background:rgba(255,138,99,.08);border:1px solid rgba(255,160,130,.28)}
.xf-warn svg{width:20px;height:20px;fill:none;stroke:#ffb49c;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.xf-warn a{color:#ffd2c4}
.xform .form-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin-top:8px;padding-top:24px;border-top:1px solid rgba(255,255,255,.09)}
.xform .form-actions .btn{min-height:54px;padding-inline:28px;font-size:16px}
.xform .consent-note{margin:0!important;max-width:40ch;font-size:13px!important;line-height:1.5;color:#c3b9e6!important}
.xform .form-status:not(:empty){margin-top:16px;padding:12px 14px;border-radius:12px;font-size:14px}
.xform .form-status.is-err{background:rgba(255,120,110,.1);border:1px solid rgba(255,138,122,.4);color:#ffd0c7}
.xform .form-status.is-ok{background:rgba(47,212,196,.1);border:1px solid rgba(47,212,196,.4);color:#c9fbf3}
/* next-steps panel */
.xf-aside{position:sticky;top:110px;padding:clamp(22px,2.4vw,30px);border-radius:24px;
  background:linear-gradient(160deg,rgba(59,70,245,.12),rgba(14,8,34,.6) 60%);border:1px solid rgba(190,195,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
body.area-pro .xf-aside{background:linear-gradient(160deg,rgba(47,212,196,.1),rgba(14,8,34,.6) 60%);border-color:rgba(120,230,220,.24)}
.xa-label{margin:0 0 16px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#c9bff0}
.xa-steps{list-style:none;margin:0;padding:0;display:grid;gap:0;position:relative}
.xa-steps li{position:relative;display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding-bottom:20px}
.xa-steps li:not(:last-child)::after{content:"";position:absolute;left:19.5px;top:44px;bottom:4px;width:1px;background:linear-gradient(180deg,rgba(190,180,255,.5),rgba(190,180,255,.08))}
.xa-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(200,205,255,.28)}
.xa-ico svg{width:18px;height:18px;fill:none;stroke:#e6ddff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.xa-steps b{display:block;margin:2px 0 3px;font-size:15px;color:#fff}
.xa-steps p{margin:0;font-size:13.5px;line-height:1.5;color:#d2c9ee}
.xa-direct{margin-top:6px;padding-top:18px;border-top:1px solid rgba(255,255,255,.09)}
.xa-link{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:12px;align-items:center;margin-top:10px;padding:10px 12px 10px 10px;border-radius:14px;text-decoration:none;color:#d2c9ee;font-size:12.5px;
  background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);transition:background .3s,border-color .3s,transform .3s}
.xa-link b{display:block;font-size:14px;color:#fff;overflow-wrap:anywhere}
.xa-link i{font-style:normal;color:#c9bff0;transition:transform .3s}
@media (hover:hover) and (pointer:fine){ .xa-link:hover{background:rgba(120,110,255,.14);border-color:rgba(200,190,255,.5);transform:translateY(-2px)} .xa-link:hover i{transform:translateX(3px);color:#fff} }
@media (max-width:1023px){ .xf-shell{grid-template-columns:1fr} .xf-aside{position:static} }
@media (max-width:600px){
  .xform{padding:22px 16px;border-radius:22px}
  .xf-head{gap:12px} .xf-ico{width:44px;height:44px;border-radius:13px}
  .chip span{font-size:14px;padding:8px 13px;min-height:40px}
  .xform .form-actions .btn{width:100%;justify-content:center}
}

/* ---------- contact routes ---------- */
.route-label{margin:0 0 14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#c9bff0}
.route-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:clamp(28px,3.4vw,44px)}
.route-card{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 14px 14px 12px;border-radius:18px;text-decoration:none;
  background:rgba(255,255,255,.045);border:1px solid rgba(200,205,255,.2);transition:background .35s,border-color .35s,transform .35s cubic-bezier(.22,.61,.24,1),box-shadow .35s}
.rc-ico{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:linear-gradient(145deg,rgba(110,120,255,.45),rgba(201,60,255,.22));border:1px solid rgba(190,200,255,.34)}
.route-card:nth-child(3) .rc-ico{background:linear-gradient(145deg,rgba(255,130,110,.45),rgba(201,60,255,.2));border-color:rgba(255,190,170,.4)}
.rc-ico svg{width:20px;height:20px;fill:none;stroke:#fff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.route-card b{display:block;font-size:14.5px;line-height:1.3;color:#fff}
.route-card small{display:block;margin-top:2px;font-size:12.5px;color:#cfc6ef}
.route-card i{font-style:normal;color:#c9bff0;transition:transform .3s,color .3s}
@media (hover:hover) and (pointer:fine){ .route-card:hover{transform:translateY(-3px);background:rgba(120,110,255,.14);border-color:rgba(210,195,255,.55);box-shadow:0 16px 34px -18px rgba(140,110,255,.9)} .route-card:hover i{transform:translateX(3px);color:#fff} }
@media (max-width:1100px){ .route-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:600px){ .route-grid{grid-template-columns:1fr;gap:8px} }

/* ---------- training: session cards ---------- */
.sessions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.session-card{position:relative;display:flex;flex-direction:column;padding:26px 24px 24px;border-radius:24px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 15%,transparent),rgba(14,8,34,.64) 50%),rgba(10,8,30,.45);
  border:1px solid color-mix(in srgb,var(--c) 32%,rgba(255,255,255,.08));border-top:2px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 34px 70px -44px rgba(8,0,28,1);transition:transform .5s cubic-bezier(.22,.61,.24,1),box-shadow .45s,border-color .45s}
.ss-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}
.ss-ico{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;flex:none;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 58%,transparent),rgba(14,10,40,.6));border:1px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 24px -12px var(--c)}
.ss-ico svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ss-for{padding:5px 11px;border-radius:999px;font-size:12px;font-weight:500;text-align:right;color:#fff;
  background:color-mix(in srgb,var(--c) 16%,transparent);border:1px solid color-mix(in srgb,var(--c) 45%,transparent)}
.session-card h3{margin:0 0 10px;font-size:22px;line-height:1.2}
.session-card>p{margin:0 0 18px;font-size:15px;line-height:1.55;color:#d9d1f3}
.session-card .ss-label{margin:0 0 10px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:#c3b9e8}
.ss-list{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:9px}
.ss-list li{position:relative;padding-left:26px;font-size:14.5px;line-height:1.5;color:#ece6fb}
.ss-list li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;
  background:color-mix(in srgb,var(--c) 30%,transparent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12 4 4 8-8'/%3E%3C/svg%3E") center/10px no-repeat;
  border:1px solid color-mix(in srgb,var(--c) 60%,transparent)}
.ss-go{margin-top:auto;display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-radius:14px;text-decoration:none;font-size:14.5px;font-weight:600;color:#fff;
  background:color-mix(in srgb,var(--c) 14%,rgba(255,255,255,.04));border:1px solid color-mix(in srgb,var(--c) 45%,transparent);transition:background .35s,box-shadow .35s}
.ss-go span{transition:transform .35s}
@media (hover:hover) and (pointer:fine){
  .session-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 60%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 30px 60px -30px var(--c)}
  .ss-go:hover{background:color-mix(in srgb,var(--c) 30%,transparent);box-shadow:0 10px 24px -12px var(--c)} .ss-go:hover span{transform:translateX(4px)}
}
.session-card.in-view,.session-card.is-pressed{border-color:color-mix(in srgb,var(--c) 60%,transparent)}
@media (max-width:1023px){ .sessions{grid-template-columns:1fr} .session-card{padding:22px 20px} }

/* ---------- patient-specific skull: neural firing canvas ---------- */
.phero-photo--render .skull-glow{display:none!important}
.phero-photo--render .skull-net{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;mix-blend-mode:screen;
  filter:drop-shadow(0 0 3px rgba(210,150,255,.95)) drop-shadow(0 0 10px rgba(150,110,255,.6))}
/* page header photo dissolves into the page instead of ending on an edge:
   the section below reaches up over the header's last few pixels */
main section.phero+section::after{top:calc(-1 * clamp(70px,9vw,150px))!important;left:0!important;width:100%!important;transform:none!important;
  height:clamp(70px,9vw,150px)!important;background:linear-gradient(180deg,rgba(10,5,32,0),rgba(10,5,32,.8) 65%,#0a0520)!important;z-index:0}
.phero>.wrap{position:relative;z-index:2}
main section.phero+section::before{opacity:0}
.phero-jump{display:block!important}
.phero-jump .pj-label{width:auto!important}
.dc-actions{grid-template-columns:1fr!important}
.dc-act>span:last-child{display:block;flex:1;min-width:0}
.relay-hand{flex-direction:column;gap:6px;height:auto;padding:14px 0}
@media (max-width:600px){ .relay-phase li>div{padding-right:24px} }
.pfo-stage figcaption{font-style:normal!important}
.session-card h3{font-family:var(--display)!important;font-weight:600}
.relay-hand span{background:linear-gradient(100deg,#2c35c9,#6424c9 55%,#9a2a5c)}
.pj-n{color:#dcd5f7}
@media (min-width:601px) and (max-width:1023px){
  .relay-phase ol{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
  .relay-phase li{padding:16px 13px}
  .relay-phase li p{font-size:13.5px}
}
.dc-quote{border-left:3px solid transparent!important;border-image:linear-gradient(180deg,#8fa0ff,#d77bff 55%,#f6a58e) 1!important;padding-left:20px!important}.dc-quote::before{content:none!important}

/* ======================= v84 ======================= */

/* ---------- hero cards sit high enough to read in full on arrival ---------- */
@media (min-width:1024px){
  .phero .wrap,.phero>.wrap{padding-block:clamp(28px,3.4vw,44px) clamp(56px,6vw,84px)!important}
  body.area-pro .phero nav.pw-tabs{margin-bottom:18px!important}
  .hero.hero--photo{min-height:0!important;align-items:flex-start!important;padding-block:clamp(30px,3.6vw,52px) clamp(70px,8vw,110px)!important}
  .hero--photo .wrap>div:first-child{max-width:760px!important;padding:clamp(28px,2.8vw,40px) clamp(30px,3vw,44px)!important}
  .hero--photo h1.hero-h1{font-size:clamp(38px,4.1vw,60px);margin-bottom:16px}
  .hero--photo .lede{margin-bottom:20px!important}
  .hero-points{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:26px}
  .hero-points li{grid-template-columns:1fr;gap:10px;align-content:start;padding:14px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.09);font-size:13.5px}
  .hero-points b{font-size:14.5px;margin-bottom:3px}
  .phero-card .lede{margin-bottom:0}
}
@media (min-width:1024px) and (max-height:820px){
  .hero--photo h1.hero-h1{font-size:clamp(36px,3.7vw,52px)}
  .hero-points li{font-size:13px;padding:12px}
}
/* the "On this page" guide now sits just under the card */
.phero-jump{margin-top:16px!important;padding:0!important;border:0!important;display:flex!important;flex-wrap:wrap;align-items:center;gap:10px 14px}
.phero-jump .pj-label{margin:0!important}
.phero-jump a{background:rgba(12,7,30,.6);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
@media (max-width:600px){ .phero-jump{display:block!important} .phero-jump .pj-label{margin-bottom:10px!important} }

/* tablets: a shorter photo above the card */
@media (min-width:601px) and (max-width:1023px){
  .phero:has(.phero-photo:not(.phero-photo--xray)) .phero-photo,.phero:has(.phero-photo--render) .phero-photo{height:320px!important}
  .phero:has(.phero-photo:not(.phero-photo--xray)) .wrap,.phero:has(.phero-photo--render) .wrap{padding-top:220px!important}
  body.area-pro .phero:has(.phero-photo) .wrap{padding-top:28px!important}
  body.area-pro .phero:has(.phero-photo) .phero-card{margin-top:170px}
  .hero.hero--photo{padding:250px 0 64px!important}
  .hero-photo{height:400px!important}
}
/* phones: the photo becomes a short banner so the heading and intro are on screen */
@media (max-width:600px){
  .phero:has(.phero-photo) .phero-photo{height:200px!important}
  .phero:has(.phero-photo) .wrap{padding-top:140px!important;padding-bottom:48px!important}
  body.area-pro .phero:has(.phero-photo) .wrap{padding-top:18px!important}
  body.area-pro .phero:has(.phero-photo) .phero-card{margin-top:110px}
  .phero-card{padding:22px 20px!important}
  .phero-card h1{font-size:clamp(28px,8.2vw,34px)!important;margin-bottom:12px!important}
  .phero-card .lede{font-size:16px!important;line-height:1.55!important}
  .hero.hero--photo{padding:180px 0 56px!important}
  .hero-photo{height:300px!important;-webkit-mask:linear-gradient(180deg,#000 50%,transparent 100%);mask:linear-gradient(180deg,#000 50%,transparent 100%)}
  .hero--photo .wrap>div:first-child{padding:22px 20px!important}
  .hero-points li span:not(.hp-ico){font-size:0;line-height:0}
  .hero-points li b{font-size:15px;line-height:1.35;margin:0}
  .hero-points{gap:10px;margin-bottom:22px}
  .hero--photo .actions{gap:10px}
}
@media (min-width:1024px){
  main section.phero{padding-top:0!important;padding-bottom:0!important}
  .hero.hero--photo>.wrap{padding-top:0!important;padding-bottom:0!important}
}
@media (max-width:1023px){ main section.phero{padding-top:0!important;padding-bottom:0!important} .hero.hero--photo>.wrap{padding-top:0!important} }
@media (min-width:1024px) and (max-height:820px){
  .hero.hero--photo{padding-top:22px!important}
  .hero--photo .wrap>div:first-child{padding:24px 34px 26px!important}
  .hero-points li span:not(.hp-ico){font-size:0;line-height:0}
  .hero-points li b{font-size:14px;line-height:1.35;margin:0}
  .hero-points li{grid-template-columns:34px minmax(0,1fr);align-items:center;padding:10px 12px}
  .hero-points .hp-ico{width:34px;height:34px}
  .hero-points{margin-bottom:20px}
  .hero--photo .lede{margin-bottom:16px!important}
  .hero--photo .eyebrow{margin-bottom:12px}
}
@media (max-width:600px){ .hero.hero--photo{padding-top:130px!important} .hero-photo{height:260px!important} }

/* ---------- support model: role cards ---------- */
.role-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:22px}
.role-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:24px 22px 22px;border-radius:22px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 15%,transparent),rgba(14,8,34,.64) 52%),rgba(10,8,30,.45);
  border:1px solid color-mix(in srgb,var(--c) 30%,rgba(255,255,255,.08));border-top:2px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 34px 70px -46px rgba(8,0,28,1);transition:transform .5s cubic-bezier(.22,.61,.24,1),border-color .45s,box-shadow .45s}
.rc-head{display:flex;align-items:center;gap:14px}
.rc-ico{display:grid;place-items:center;width:50px;height:50px;border-radius:15px;flex:none;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 58%,transparent),rgba(14,10,40,.6));border:1px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 24px -12px var(--c)}
.rc-ico svg{width:23px;height:23px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.rc-who{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 45%,#fff);margin-bottom:3px}
.role-card h3{margin:0;font-family:var(--display);font-size:21px;line-height:1.2;color:#fff}
.role-card>p{margin:0;font-size:15px;line-height:1.55;color:#ddd6f5}
.rc-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.09)}
.rc-label{display:block;margin-bottom:9px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#c3b9e8}
.rc-stages{display:flex;flex-wrap:wrap;gap:6px}
.rc-stage{display:inline-flex;align-items:center;gap:7px;padding:4px 11px 4px 5px;border-radius:999px;font-size:13px;font-weight:500;color:#fff;
  background:color-mix(in srgb,var(--s) 18%,transparent);border:1px solid color-mix(in srgb,var(--s) 55%,transparent)}
.rc-stage i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-style:normal;font-family:var(--mono);font-size:10px;font-weight:600;background:color-mix(in srgb,var(--s) 60%,rgba(0,0,0,.3))}
.rc-owns{margin:0!important;padding:10px 12px;border-radius:12px;font-size:13.5px!important;line-height:1.5;color:#e6dffa!important;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.rc-owns b{color:#fff}
@media (hover:hover) and (pointer:fine){ .role-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--c) 55%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 30px 60px -30px var(--c)} }
.role-card.in-view,.role-card.is-pressed{border-color:color-mix(in srgb,var(--c) 55%,transparent)}
@media (max-width:1023px){ .role-cards{grid-template-columns:1fr;gap:12px} }
@media (min-width:700px) and (max-width:1023px){ .role-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:22px} .rc-head,.role-card>p:not(.rc-owns){grid-column:1} .rc-foot,.rc-owns{grid-column:2} .rc-foot{grid-row:1;margin:0;padding:0;border:0} .rc-owns{grid-row:2} }

/* ---------- regulatory status panel ---------- */
body .sahpra-panel{display:grid!important;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr)!important;gap:clamp(24px,4vw,56px)!important;align-items:stretch!important;padding:clamp(26px,3.2vw,44px)!important;border-radius:26px!important}
.sahpra-track{display:flex!important;flex-direction:column;justify-content:center;padding:clamp(20px,2.4vw,28px)!important;border-radius:20px;border:1px solid rgba(255,255,255,.1)!important;
  background:linear-gradient(160deg,rgba(59,70,245,.14),rgba(12,7,30,.5) 60%)!important;margin:0!important}
.sahpra-track::before{display:none!important}
.sahpra-track-label{display:block;margin-bottom:18px;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#cfc4f0}
.st-steps{list-style:none;margin:0;padding:0;display:grid}
.st-steps li{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr);gap:14px;padding-bottom:20px}
.st-steps li:last-child{padding-bottom:0}
.st-steps li:not(:last-child)::after{content:"";position:absolute;left:14.5px;top:32px;bottom:2px;width:2px;border-radius:2px;background:rgba(255,255,255,.12)}
.st-steps li.is-done::after{background:linear-gradient(180deg,#4f5bff,#c93cff)}
.st-dot{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1.5px solid rgba(210,205,255,.35);background:rgba(12,7,30,.8)}
.is-done .st-dot{background:linear-gradient(135deg,#3b46f5,#6b4dfb);border-color:transparent}
.st-dot svg{width:15px;height:15px;fill:none;stroke:#fff;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.is-current .st-dot{border-color:#e08cff;background:rgba(201,60,255,.2);box-shadow:0 0 0 5px rgba(201,60,255,.12)}
.is-current .st-dot i{width:10px;height:10px;border-radius:50%;background:#f0c6ff;box-shadow:0 0 12px #d77bff;animation:stPulse 2.4s ease-in-out infinite}
@keyframes stPulse{50%{transform:scale(.7);opacity:.7}}
@media (prefers-reduced-motion:reduce){ .is-current .st-dot i{animation:none} }
.st-steps b{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:4px 0 3px;font-size:16px;color:#fff}
.st-steps em{font-style:normal;padding:2px 8px;border-radius:999px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:linear-gradient(100deg,#6424c9,#9a2a8c)}
.st-steps p{margin:0;font-size:13.5px;line-height:1.5;color:#d2c9ee}
.st-steps li:not(.is-done):not(.is-current) b{color:#d8d0f3}
@media (max-width:880px){ body .sahpra-panel{grid-template-columns:1fr!important} }

/* ---------- regulatory link cards ---------- */
.reg-cards{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px!important}
body a.reg-card{display:grid!important;grid-template-columns:52px minmax(0,1fr);column-gap:18px;row-gap:4px;align-items:start;padding:24px 24px 22px!important;border-radius:22px!important;text-decoration:none}
a.reg-card .reg-icon{grid-row:span 3;display:grid!important;place-items:center;width:52px!important;height:52px!important;margin:0!important;border-radius:16px!important;color:#fff!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c) 58%,transparent),rgba(14,10,40,.6))!important;border:1px solid color-mix(in srgb,var(--c) 70%,transparent)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 24px -12px var(--c)}
a.reg-card .reg-icon svg{width:24px;height:24px}
a.reg-card h3{margin:2px 0 4px!important;font-family:var(--display);font-size:19px!important;line-height:1.25}
a.reg-card p{margin:0 0 12px!important;font-size:14.5px;line-height:1.55;color:#d9d1f3}
a.reg-card .reg-go{justify-self:start;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;font-size:13.5px;font-weight:600;color:#fff;
  background:color-mix(in srgb,var(--c) 16%,rgba(255,255,255,.04))!important;border:1px solid color-mix(in srgb,var(--c) 50%,transparent)}
@media (hover:hover) and (pointer:fine){ a.reg-card:hover .reg-go{background:color-mix(in srgb,var(--c) 32%,transparent)!important;background-size:auto!important} }
@media (max-width:700px){ .reg-cards{grid-template-columns:1fr!important} body a.reg-card{grid-template-columns:44px minmax(0,1fr);padding:20px 18px!important} a.reg-card .reg-icon{width:44px!important;height:44px!important} }

/* ---------- patient-specific workflow: connectors between stages ---------- */
@media (min-width:761px){
  .psi-flow{gap:18px 30px!important}
  .psi-flow li:nth-child(1){z-index:8}.psi-flow li:nth-child(2){z-index:7}.psi-flow li:nth-child(3){z-index:6}.psi-flow li:nth-child(4){z-index:5}
  .psi-flow li:nth-child(5){z-index:4}.psi-flow li:nth-child(6){z-index:3}.psi-flow li:nth-child(7){z-index:2}.psi-flow li:nth-child(8){z-index:1}
  .psi-flow li:not(:nth-child(4n))::after{content:""!important;right:-28px!important;top:28px!important;width:26px!important;height:26px!important;border:0!important;transform:none!important;border-radius:50%;z-index:9!important;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m10 7 5 5-5 5'/%3E%3C/svg%3E") center/14px no-repeat,
      linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 40%,#1a0b3a));
    box-shadow:0 0 0 4px #0f0826,0 6px 16px -4px var(--c)}
  .psi-flow li:nth-child(4)::before{content:"";position:absolute;right:-18px;top:28px;width:12px;height:calc(100% + 18px + 8px);z-index:0;pointer-events:none;
    border:1.5px dashed rgba(200,190,255,.28);border-left:0;border-radius:0 14px 14px 0}
}
.psi-flow li:nth-child(4)::before{content:none!important}
@media (min-width:1024px){ .rc-owns{min-height:64px} }

/* ---------- manufacturing & supply ---------- */
.mfg-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(18px,2.4vw,28px);align-items:stretch}
.mfg-campus{margin:0;min-height:420px;border-radius:26px!important}
.mfg-campus img{width:100%;height:100%;object-fit:cover}
.mfg-profile{display:flex;flex-direction:column;gap:14px;padding:clamp(24px,3vw,38px);border-radius:26px;
  background:radial-gradient(90% 60% at 100% 0,rgba(59,70,245,.2),transparent 60%),rgba(12,7,30,.66);
  border:1px solid;border-color:rgba(180,190,255,.3) rgba(220,170,255,.14) rgba(255,176,146,.16) rgba(150,165,255,.18);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 40px 80px -50px rgba(8,0,28,1),0 0 90px -40px rgba(59,70,245,.55)}
.mp-label{margin:0;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#aebbff}
.mfg-profile h3{margin:0;font-family:var(--display);font-size:clamp(24px,2.4vw,30px);line-height:1.15;color:#fff}
.mp-meta{display:flex;flex-wrap:wrap;gap:6px;margin:0}
.mp-meta span{padding:4px 10px;border-radius:999px;font-size:12.5px;color:#e6dffa;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12)}
.mfg-profile>p:not([class]){margin:0;font-size:15.5px;line-height:1.6;color:#ddd6f5}
.mp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:6px 0 0}
.mp-stats>div{padding:16px 14px;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1)}
.mp-stats dt{font-family:var(--display);font-size:clamp(22px,2.2vw,28px);font-weight:600;line-height:1;margin-bottom:8px;
  background:linear-gradient(100deg,#a9b8ff,#e3a6ff 60%,#f6b49c);-webkit-background-clip:text;background-clip:text;color:transparent}
.mp-stats dd{margin:0;font-size:12.5px;line-height:1.4;color:#d4cbef}
.mp-credit{margin:auto 0 0!important;font-size:12px;color:#b3a9dc}
.mfg-map{margin-top:clamp(28px,3.4vw,44px)}
.mm-title{margin:0 0 14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#c9bff0}
.mm-row{display:grid;grid-template-columns:minmax(0,2fr) 90px minmax(0,1fr);align-items:stretch}
.mm-group{position:relative;padding:16px;border-radius:24px;border:1.5px dashed rgba(170,185,255,.3);background:rgba(59,70,245,.05)}
.mm-glabel{position:absolute;top:-10px;left:20px;padding:0 8px;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#bfcaff;background:#0e0726}
.mm-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;height:100%}
.mm-node{position:relative;display:flex;flex-direction:column;gap:8px;padding:20px 18px;border-radius:18px;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 15%,transparent),rgba(14,8,34,.66) 55%);border:1px solid color-mix(in srgb,var(--c) 34%,rgba(255,255,255,.08));border-top:2px solid color-mix(in srgb,var(--c) 70%,transparent)}
.mm-tag{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 45%,#fff)}
.mm-node h3{margin:0;font-family:var(--display);font-size:17.5px;line-height:1.3;color:#fff}
.mm-node p{margin:0;font-size:14px;line-height:1.55;color:#d9d1f3}
.mm-loc{margin-top:auto;padding-top:8px;font-family:var(--mono);font-size:11px;color:#c3b9e8}
.mm-node--us{box-shadow:0 0 0 1px rgba(201,60,255,.25),0 30px 70px -36px rgba(201,60,255,.7)}
.mm-link{position:relative;display:grid;place-items:center}
.mm-link::before{content:"";position:absolute;left:8px;right:8px;top:50%;height:2px;background:linear-gradient(90deg,#4f5bff,#c93cff)}
.mm-link::after{content:"";position:absolute;right:6px;top:50%;width:10px;height:10px;border-top:2px solid #c93cff;border-right:2px solid #c93cff;transform:translateY(-50%) rotate(45deg)}
.mm-link span{position:relative;z-index:1;padding:4px 9px;border-radius:999px;font-family:var(--mono);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:#fff;background:#1a0d3c;border:1px solid rgba(200,180,255,.4)}
.mfg-map .small-note{margin-top:16px}
@media (max-width:1023px){
  .mfg-intro{grid-template-columns:1fr} .mfg-campus{min-height:0;aspect-ratio:16/9}
  .mm-row{grid-template-columns:1fr;gap:0} .mm-link{height:64px} .mm-link::before{left:50%;right:auto;top:6px;bottom:6px;width:2px;height:auto;transform:translateX(-50%);background:linear-gradient(180deg,#4f5bff,#c93cff)}
  .mm-link::after{right:auto;left:50%;top:auto;bottom:6px;transform:translateX(-50%) rotate(135deg)}
}
@media (max-width:600px){ .mm-nodes{grid-template-columns:1fr} .mp-stats{grid-template-columns:1fr 1fr 1fr;gap:6px} .mp-stats>div{padding:12px 10px} .mp-stats dd{font-size:11.5px} }

/* supply journey */
.journey{list-style:none;margin:0 0 clamp(26px,3vw,40px);padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;position:relative}
.journey::before{content:"";position:absolute;left:10%;right:10%;top:27px;height:2px;border-radius:2px;background:linear-gradient(90deg,#4f5bff,#6b4dfb 40%,#c93cff 70%,#f0795f);opacity:.7}
.journey li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px}
.jy-ico{position:relative;z-index:1;display:grid;place-items:center;width:56px;height:56px;border-radius:50%;margin-bottom:8px;
  background:radial-gradient(circle at 30% 25%,color-mix(in srgb,var(--c) 70%,#fff 10%),color-mix(in srgb,var(--c) 35%,#0e0726) 70%);border:1px solid color-mix(in srgb,var(--c) 70%,transparent);
  box-shadow:0 0 0 6px #0f0826,0 12px 28px -10px var(--c)}
.jy-ico svg{width:24px;height:24px;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.journey b{font-family:var(--display);font-size:18px;color:#fff}
.journey li>span:last-child{font-size:13.5px;line-height:1.45;color:#d2c9ee;max-width:18ch}
@media (max-width:760px){
  .journey{grid-template-columns:1fr;gap:0}
  .journey::before{left:27px;right:auto;top:28px;bottom:28px;width:2px;height:auto;background:linear-gradient(180deg,#4f5bff,#6b4dfb 40%,#c93cff 70%,#f0795f)}
  .journey li{display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:16px;text-align:left;align-items:center;padding:8px 0}
  .jy-ico{grid-row:span 2;margin:0}
  .journey b{align-self:end}.journey li>span:last-child{max-width:none;align-self:start}
}
/* supply cards: same card language as the rest of the site */
.supply-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}
body .supply-grid>div{border-radius:22px!important;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 15%,transparent),rgba(14,8,34,.64) 52%),rgba(10,8,30,.45)!important;
  border:1px solid color-mix(in srgb,var(--c) 30%,rgba(255,255,255,.08))!important;border-top:2px solid color-mix(in srgb,var(--c) 70%,transparent)!important}
.supply-grid .sg-ico{background:linear-gradient(145deg,color-mix(in srgb,var(--c) 58%,transparent),rgba(14,10,40,.6))!important;border-color:color-mix(in srgb,var(--c) 70%,transparent)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 24px -12px var(--c)!important}
.supply-grid p{font-size:14.5px;line-height:1.55;color:#d9d1f3}
@media (max-width:1023px){ .supply-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important} }
@media (max-width:600px){ .supply-grid{grid-template-columns:1fr!important} }

/* ---------- legal pages: editorial layout ---------- */
.legal-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(28px,4vw,64px);align-items:start}
.legal-toc{position:sticky;top:110px;display:grid;gap:14px}
.lt-box{border-radius:22px;padding:18px 14px 12px;background:rgba(12,7,30,.62);border:1px solid rgba(190,195,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 0 80px -40px rgba(59,70,245,.6)}
.lt-box summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:0 8px 12px;border-bottom:1px solid rgba(255,255,255,.08)}
.lt-box summary::-webkit-details-marker{display:none}
.lt-box summary span{font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#aebbff}
.lt-box summary small{font-size:12.5px;color:#c9c0ee}
.lt-box ol{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px;max-height:calc(100vh - 290px);overflow:auto}
.lt-box a{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;padding:8px 10px;border-radius:11px;font-size:14px;line-height:1.35;color:#d9d1f3;text-decoration:none;transition:background .3s,color .3s}
.lt-box a span{font-family:var(--mono);font-size:11px;color:#9fa6e6;padding-top:2px}
.lt-box a:hover{background:rgba(59,70,245,.14);color:#fff}
.lt-box a.is-active{background:linear-gradient(90deg,rgba(59,70,245,.3),rgba(59,70,245,.06));color:#fff;box-shadow:inset 2px 0 0 #4a5cff}
.lt-box a.is-active span{color:#c7cfff}
.lt-help{padding:16px 18px;border-radius:18px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
.lt-help p{margin:0 0 6px;font-size:13.5px;color:#d2c9ee}
.legal-doc2{min-width:0;max-width:760px}
.ld-meta{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.ld-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:12.5px;color:#e6dffa;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.12);text-decoration:none}
.ld-chip svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
a.ld-print:hover{border-color:rgba(170,185,255,.5);color:#fff}
.ld-banner{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;margin-bottom:26px;padding:14px 16px;border-radius:14px;background:rgba(255,176,90,.08);border:1px solid rgba(255,190,130,.3)}
.ld-banner svg{width:20px;height:20px;fill:none;stroke:#ffc38e;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ld-banner p{margin:0;font-size:14px;line-height:1.55;color:#f5e2cf}
.ld-intro{margin:0 0 28px;font-size:14px;color:#c9c0ee}
.ld-sec{scroll-margin-top:110px;padding:clamp(22px,2.6vw,30px) 0;border-top:1px solid rgba(255,255,255,.08)}
.ld-sec:first-of-type{border-top:0;padding-top:0}
.ld-sec h2{display:flex;align-items:baseline;gap:14px;margin:0 0 14px!important;font-family:var(--display);font-size:clamp(21px,2vw,25px)!important;line-height:1.25;color:#fff}
.ld-n{flex:none;display:inline-grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border-radius:8px;font-family:var(--mono);font-size:11.5px;font-weight:600;color:#dfe3ff;
  background:rgba(59,70,245,.22);border:1px solid rgba(110,125,255,.45);transform:translateY(-3px)}
.ld-sec p,.ld-sec li{font-size:16px;line-height:1.72;color:#e2dbf7;max-width:68ch}
.ld-sec p{margin:0 0 14px}
.ld-sec ul{margin:0 0 14px;padding:0;list-style:none;display:grid;gap:8px}
.ld-sec li{position:relative;padding-left:22px}
.ld-sec li::before{content:"";position:absolute;left:4px;top:.72em;width:7px;height:7px;border-radius:50%;background:linear-gradient(135deg,#4a5cff,#c93cff)}
.ld-sec strong{color:#fff}
.ld-sec a:not(.btn){color:#c7cfff}
.legal-doc2 .verify{padding:1px 6px;border-radius:6px;background:rgba(255,176,90,.12);color:#ffcf9e!important;font-style:normal}
.ld-end{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;margin-top:20px;padding:22px 24px;border-radius:20px;
  background:linear-gradient(120deg,rgba(59,70,245,.18),rgba(142,51,251,.1));border:1px solid rgba(170,185,255,.28)}
.ld-end b{display:block;font-size:17px;color:#fff}.ld-end p{margin:2px 0 0;font-size:14px;color:#d2c9ee}
@media (max-width:1023px){
  .legal-layout{grid-template-columns:1fr;gap:18px}
  .legal-toc{position:static}
  .lt-box summary{flex-direction:row;align-items:center;justify-content:space-between;padding-bottom:0;border:0}
  .lt-box[open] summary{padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}
  .lt-box summary::after{content:"";width:9px;height:9px;border-right:2px solid #c9c0ee;border-bottom:2px solid #c9c0ee;transform:rotate(45deg);transition:transform .3s;margin-left:auto}
  .lt-box[open] summary::after{transform:rotate(-135deg)}
  .lt-box summary small{margin-left:12px;margin-right:12px}
  .lt-box ol{max-height:none}
  .lt-help{display:none}
  .legal-doc2{max-width:none}
}
@media (max-width:600px){ .ld-sec p,.ld-sec li{font-size:15.5px} .ld-end{padding:18px} .ld-end .btn{width:100%;justify-content:center} }
@media print{ .masthead,.util,.crumbs,footer,.legal-toc,.ld-meta,.ld-end,.phero-photo{display:none!important} body{background:#fff!important} .ld-sec p,.ld-sec li,.ld-sec h2{color:#000!important} }

/* ---------- about: the story hero ---------- */
.phero-card--story{max-width:880px!important}
.phero-card--story h1{font-size:clamp(32px,3.6vw,50px)!important;line-height:1.08!important;margin-bottom:22px!important}
.story-accent{background:linear-gradient(100deg,#a9b8ff 0%,#e3a6ff 50%,#f6b49c 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.story-beats{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;counter-reset:none}
.story-beats li{position:relative;padding:16px 16px 16px;border-radius:16px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.1)}
.story-beats li:not(:last-child)::after{content:"";position:absolute;right:-10px;top:24px;width:8px;height:8px;border-top:1.5px solid rgba(200,190,255,.6);border-right:1.5px solid rgba(200,190,255,.6);transform:rotate(45deg);z-index:1}
.sb-n{display:inline-block;margin-bottom:8px;font-family:var(--mono);font-size:11px;font-weight:600;color:#c7cfff;padding:2px 7px;border-radius:7px;background:rgba(59,70,245,.25);border:1px solid rgba(110,125,255,.45)}
.story-beats li:nth-child(2) .sb-n{background:rgba(142,51,251,.25);border-color:rgba(190,130,255,.5);color:#e6d0ff}
.story-beats li:nth-child(3) .sb-n{background:rgba(255,122,107,.2);border-color:rgba(255,160,140,.5);color:#ffd6cc}
.story-beats b{display:block;margin-bottom:4px;font-size:15.5px;color:#fff}
.story-beats p{margin:0;font-size:14px;line-height:1.5;color:#dcd4f5}
.story-sign{display:flex;align-items:center;gap:12px;margin:0;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}
.story-sign .dc-avatar{width:42px;height:42px;font-size:15px}
.story-sign b{display:block;font-size:15px;color:#fff}
.story-sign span:last-child{font-size:13px;color:#cfc6ef}
@media (max-width:760px){
  .story-beats{grid-template-columns:1fr;gap:8px}
  .story-beats li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;padding:12px 14px}
  .story-beats li .sb-n{grid-row:span 2;align-self:start;margin:0}
  .story-beats li:not(:last-child)::after{right:auto;left:26px;top:auto;bottom:-6px;transform:rotate(135deg)}
}

/* ---------- cursors in the brand ---------- */
@media (hover:hover) and (pointer:fine){
  a,button,summary,select,label,[role=button],.chip,.xf-check,.hec-check,input[type=checkbox],input[type=radio],input[type=submit],.mnav-btn{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2228%22%20height%3D%2228%22%20viewBox%3D%220%200%2028%2028%22%3E%3Cdefs%3E%3ClinearGradient%20id%3D%22g%22%20x1%3D%220%22%20y1%3D%220%22%20x2%3D%221%22%20y2%3D%221%22%3E%3Cstop%20offset%3D%220%22%20stop-color%3D%22%236f7dff%22/%3E%3Cstop%20offset%3D%22.6%22%20stop-color%3D%22%233b46f5%22/%3E%3Cstop%20offset%3D%221%22%20stop-color%3D%22%238e33fb%22/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath%20d%3D%22M4%203l17%208.6-7.2%201.9L10.6%2021z%22%20fill%3D%22url%28%23g%29%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%223.2%22%20fill%3D%22%23fff%22%20fill-opacity%3D%22.92%22/%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2220%22%20r%3D%221.6%22%20fill%3D%22%233b46f5%22/%3E%3C/svg%3E") 4 3,pointer!important}
  input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),textarea,[contenteditable=true]{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2228%22%20viewBox%3D%220%200%2024%2028%22%3E%3Cpath%20d%3D%22M8%203.5c2.2%200%203.4.6%204%201.6.6-1%201.8-1.6%204-1.6M8%2024.5c2.2%200%203.4-.6%204-1.6.6%201%201.8%201.6%204%201.6M12%205v18M9.5%2014h5%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%223.6%22%20stroke-linecap%3D%22round%22/%3E%3Cpath%20d%3D%22M8%203.5c2.2%200%203.4.6%204%201.6.6-1%201.8-1.6%204-1.6M8%2024.5c2.2%200%203.4-.6%204-1.6.6%201%201.8%201.6%204%201.6M12%205v18M9.5%2014h5%22%20fill%3D%22none%22%20stroke%3D%22%233b46f5%22%20stroke-width%3D%221.8%22%20stroke-linecap%3D%22round%22/%3E%3C/svg%3E") 12 14,text!important}
  input:disabled,button:disabled{cursor:not-allowed!important}
}

/* ---------- the pointer light on card edges: barely there ---------- */
.edge-light::before{background:radial-gradient(200px circle at var(--mx) var(--my),rgba(255,255,255,.55) 0%,rgba(160,175,255,.4) 22%,rgba(201,60,255,.22) 45%,transparent 70%)!important}
.edge-light::after{background:radial-gradient(220px circle at var(--mx) var(--my),rgba(140,160,255,.035),transparent 70%)!important}
@media (hover:hover) and (pointer:fine){ :hover>.edge-light{opacity:.55!important} }
@media (hover:none),(pointer:coarse){ .in-view>.edge-light,.is-pressed>.edge-light{opacity:.5!important} }

/* ---------- the header's brand blue, carried through the site ---------- */
:root{--brand-blue:#3b46f5;--brand-blue-lt:#8e97ff}
::selection{background:rgba(59,70,245,.55);color:#fff}
.eyebrow::before{background:linear-gradient(90deg,#3b46f5,#8e33fb)!important}
.sec-head .sec-num,.sec-head>.eyebrow,.sec-kicker{color:var(--brand-blue-lt)!important}
.sec-note{border-left-color:#3b46f5!important}
.sec-note::before{background:linear-gradient(180deg,#3b46f5,#8e33fb)!important}
.btn-primary{background-image:linear-gradient(100deg,#3b46f5 0%,#5b3df2 45%,#8e33fb 100%)!important}
:focus-visible{outline-color:#6f7dff}
main section+section:not(.band)::before{background:linear-gradient(90deg,rgba(59,70,245,0),rgba(59,70,245,.55) 22%,rgba(170,175,255,.7) 50%,rgba(201,60,255,.38) 78%,rgba(201,60,255,0))!important}
.pj-ico,.xa-ico,.rc-stage i{box-shadow:inset 0 0 0 1px rgba(59,70,245,.35)}
footer{box-shadow:inset 0 1px 0 rgba(59,70,245,.55),inset 0 120px 100px -100px #0a0520!important}
.phero-card,.hero .wrap>div:first-child{border-top-color:rgba(110,125,255,.55)!important}
.crumbs a:hover{color:#c7cfff}

/* ---------- soft light behind a few key cards ---------- */
body .director-card.dc{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 50px 90px -50px rgba(8,0,28,1),0 0 120px -30px rgba(59,70,245,.55),60px 40px 140px -60px rgba(201,60,255,.4)!important}
body .sahpra-panel{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 80px -50px rgba(8,0,28,1),0 0 140px -50px rgba(59,70,245,.6)!important}
.pfo-stage{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 80px -50px rgba(8,0,28,1),0 0 120px -40px rgba(47,212,196,.5)}
.xform{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 50px 100px -56px rgba(8,0,28,1),-40px 30px 140px -60px rgba(59,70,245,.6),60px 60px 160px -70px rgba(201,60,255,.35)}
.tl-wrap{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 40px 80px -50px rgba(8,0,28,.95),0 0 140px -60px rgba(59,70,245,.6)}
.relay-phase--h{box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 34px 70px -46px rgba(8,0,28,.95),0 0 110px -40px rgba(255,138,99,.45)}
.handoff-link.is-us{box-shadow:0 0 0 1px rgba(201,60,255,.3),0 34px 64px -30px rgba(142,51,251,.9),0 0 120px -30px rgba(59,70,245,.5)!important}
main .sec-head::before{color:#9aa3ff!important;opacity:1!important}
main .sec-head::after{background:linear-gradient(90deg,#3b46f5,#8e33fb 60%,transparent)!important;box-shadow:0 0 8px 0 rgba(59,70,245,.6)!important}
body.area-pro main .sec-head::before{color:#7fe3d8!important}
body.area-pro main .sec-head::after{background:linear-gradient(90deg,#2fd4c4,#3b46f5 60%,transparent)!important}

/* ---------- one card language: icon tile, coloured top rim, same rhythm ---------- */
body .path-hub a,body .grid--icons>div{border-radius:22px!important;padding:24px 22px 22px!important;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c,#4f5bff) 14%,transparent),rgba(14,8,34,.64) 52%),rgba(10,8,30,.45)!important;
  border:1px solid color-mix(in srgb,var(--c,#4f5bff) 28%,rgba(255,255,255,.08))!important;border-top:2px solid color-mix(in srgb,var(--c,#4f5bff) 70%,transparent)!important}
body .path-hub a{display:flex!important;flex-direction:column;gap:6px}
body .path-hub .ph-icon,.gi-ico{display:grid!important;place-items:center;width:46px!important;height:46px!important;margin:0 0 14px!important;border-radius:14px;color:#fff!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--c,#4f5bff) 58%,transparent),rgba(14,10,40,.6))!important;border:1px solid color-mix(in srgb,var(--c,#4f5bff) 70%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 10px 24px -12px var(--c,#4f5bff)}
body .path-hub .ph-icon svg,.gi-ico svg{width:22px!important;height:22px!important;fill:none;stroke:#fff;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
body .path-hub .ph-tag{color:color-mix(in srgb,var(--c,#4f5bff) 45%,#fff)!important}
body .path-hub h3{font-size:20px!important;margin:2px 0 4px!important}
body .path-hub .go{margin-top:auto;padding-top:12px}
.grid--icons>div::before{content:none!important}
.grid--icons h3{font-size:19px!important;margin:0 0 6px!important}
@media (hover:hover) and (pointer:fine){ body .path-hub a:hover,body .grid--icons>div:hover{border-color:color-mix(in srgb,var(--c,#4f5bff) 55%,transparent)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 30px 60px -30px var(--c,#4f5bff)!important} }
/* the professional hub: seven cards, the last row centred */
body.area-pro #hcp-hub{display:flex!important;flex-wrap:wrap;justify-content:center;gap:16px!important}
body.area-pro #hcp-hub>a{flex:0 1 calc(25% - 12px);min-width:0}
@media (max-width:1023px){ body.area-pro #hcp-hub>a{flex-basis:calc(50% - 8px)} }
@media (max-width:600px){ body.area-pro #hcp-hub>a{flex-basis:100%} }
body .path-hub h3{font-family:var(--display)!important;font-weight:600}
.phero-jump .pj-label{padding:6px 11px;border-radius:999px;background:rgba(12,7,30,.72);color:#ece6fb!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.mfg-campus figcaption{text-shadow:0 1px 12px rgba(0,0,0,.8)}
.mfg-campus::after{background:linear-gradient(0deg,rgba(9,4,28,.92) 0%,rgba(9,4,28,.55) 32%,rgba(9,4,28,0) 62%)!important;opacity:1!important}
.mfg-campus figcaption span{background:rgba(9,4,28,.72);padding:4px 9px;border-radius:7px;color:#fff!important}
@media (min-width:1024px) and (max-height:760px){ .story-sign{display:none} .phero-card--story h1{font-size:clamp(30px,3.2vw,42px)!important} }
@media (max-width:600px){ .story-sign{display:none} .story-beats p{font-size:13.5px} .story-beats li{padding:10px 12px} .phero-card--story h1{font-size:clamp(26px,7.6vw,32px)!important} }


/* ======================= v85 · one arrow, everywhere ======================= */
/* Link arrows: a single drawn arrow icon (not a font glyph), so it has the
   same weight and shape in every typeface, inherits the link colour, and
   moves the same 4px on hover everywhere. */
.ar{display:inline-block;width:1.05em;height:1.05em;vertical-align:-.18em;flex:none;background:currentColor;font-style:normal;
  -webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2012h15M13.5%206l6%206-6%206%22/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%222.2%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4.5%2012h15M13.5%206l6%206-6%206%22/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .4s cubic-bezier(.22,.61,.24,1)}
.ar--back{transform:scaleX(-1)}
.ar--up{transform:rotate(-90deg)}
/* wrappers no longer move on their own: the icon does the moving */
:is(a,button,summary):hover :is(span,i):has(>.ar),:is(a,button):focus-visible :is(span,i):has(>.ar){transform:none!important}
@media (hover:hover) and (pointer:fine){
  :is(a,button):hover .ar:not(.ar--back):not(.ar--up){transform:translateX(4px)}
  :is(a,button):hover .ar--back{transform:scaleX(-1) translateX(4px)}
  :is(a,button):hover .ar--up{transform:rotate(-90deg) translateX(3px)}
}
:is(a,button):focus-visible .ar:not(.ar--back):not(.ar--up){transform:translateX(4px)}
:is(a,button).is-pressed .ar:not(.ar--back):not(.ar--up){transform:translateX(4px)}
/* arrow chips that sit on their own (route cards, contact links) share one tone */
:is(.route-card,.xa-link)>i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:rgba(59,70,245,.18);border:1px solid rgba(120,135,255,.4);color:#dfe3ff}
:is(.route-card,.xa-link)>i .ar{width:15px;height:15px;vertical-align:0}
@media (hover:hover) and (pointer:fine){ :is(.route-card,.xa-link):hover>i{background:linear-gradient(135deg,#3b46f5,#8e33fb);border-color:transparent;color:#fff;transform:none!important} }

/* Connectors between cards: one disc — brand blue into violet, a white arrow,
   a ring in the page colour so it reads as sitting between the cards. */
.handoff-link:not(.is-last)::after,
.psi-flow li:not(:nth-child(4n))::after,
.story-beats li:not(:last-child)::after{
  content:""!important;width:26px!important;height:26px!important;border-radius:50%!important;border:0!important;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2012h12M13%207l5%205-5%205%22/%3E%3C/svg%3E") center/14px no-repeat,linear-gradient(135deg,#3b46f5,#8e33fb)!important;
  box-shadow:0 0 0 4px #0f0826,0 6px 16px -4px rgba(90,70,255,.85)!important;
  animation:none!important;font-size:0!important;color:transparent!important;opacity:1!important}
.handoff-link:not(.is-last)::after{transform:translate(-50%,-50%)!important}
.psi-flow li:not(:nth-child(4n))::after{transform:none!important}
.story-beats li:not(:last-child)::after{right:-19px!important;top:18px!important;transform:none!important;z-index:2!important}
@media (max-width:760px){
  .story-beats li:not(:last-child)::after{right:auto!important;left:50%!important;top:auto!important;bottom:-17px!important;transform:translateX(-50%) rotate(90deg)!important}
  .story-beats{gap:12px!important}
}
/* the relay's handover pill uses the same arrow, pointing down */
.relay-hand span::after{content:""!important;width:14px!important;height:14px!important;border:0!important;transform:rotate(90deg)!important;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2012h12M13%207l5%205-5%205%22/%3E%3C/svg%3E") center/contain no-repeat!important}
/* "supplies" link on the manufacturing page ends in the same disc */
.mm-link::after{content:""!important;width:26px!important;height:26px!important;border:0!important;border-radius:50%;right:-2px!important;transform:translateY(-50%)!important;
  background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2012h12M13%207l5%205-5%205%22/%3E%3C/svg%3E") center/14px no-repeat,linear-gradient(135deg,#3b46f5,#8e33fb)!important;box-shadow:0 0 0 4px #0f0826,0 6px 16px -4px rgba(90,70,255,.85)}
@media (max-width:1023px){ .mm-link::after{right:auto!important;left:50%!important;top:auto!important;bottom:-4px!important;transform:translateX(-50%) rotate(90deg)!important} }
/* the supply journey gets the same discs between its stops */
@media (min-width:761px){
  .journey li:not(:last-child)::after{content:"";position:absolute;top:15px;right:-7px;transform:translateX(50%);width:26px;height:26px;border-radius:50%;z-index:1;
    background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2012h12M13%207l5%205-5%205%22/%3E%3C/svg%3E") center/14px no-repeat,linear-gradient(135deg,#3b46f5,#8e33fb);box-shadow:0 0 0 4px #0f0826,0 6px 16px -4px rgba(90,70,255,.85)}
}
@media (min-width:1024px){ .mm-row{grid-template-columns:minmax(0,2fr) 140px minmax(0,1fr)!important} .mm-link span{transform:translateX(-12px)} }

/* ======================= v85 · refinement ======================= */
/* Quieter, more editorial finish: tonal icon tiles instead of glowing
   gradient blobs, one radius scale, calmer hover motion, one label style. */
:root{--tile:#8c95ff;--r-card:18px;--r-panel:24px;--r-tile:12px}
body.area-pro{--tile:#5fe0d2}

/* icon tiles: tinted glass with a hairline, no coloured glow underneath */
:is(.sg-ico,.he-ico,.hp-ico,.rl-ico,.pfo-ico,.rc-ico,.ss-ico,.gi-ico,.xf-ico,.xa-ico,.dc-ai,.pfo-ci,.rc-ico,.ss-ico),
body .path-hub .ph-icon,.handoff-link .handoff-icon,.handoff-link .handoff-mark,a.reg-card .reg-icon,.standard-card .sc-mark--icon{
  background:linear-gradient(160deg,color-mix(in srgb,var(--c,var(--tile)) 22%,rgba(255,255,255,.03)),color-mix(in srgb,var(--c,var(--tile)) 8%,rgba(10,6,28,.4)))!important;
  border:1px solid color-mix(in srgb,var(--c,var(--tile)) 42%,rgba(255,255,255,.08))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12)!important;border-radius:var(--r-tile)!important}
:is(.sg-ico,.he-ico,.hp-ico,.rl-ico,.pfo-ico,.rc-ico,.ss-ico,.gi-ico,.xf-ico,.xa-ico,.dc-ai,.pfo-ci) svg,
body .path-hub .ph-icon svg,.handoff-link .handoff-icon svg,a.reg-card .reg-icon svg,.standard-card .sc-mark--icon svg{
  stroke:color-mix(in srgb,var(--c,var(--tile)) 35%,#fff)!important;stroke-width:1.5!important}
.handoff-link .handoff-mark::after{background:color-mix(in srgb,var(--c,var(--tile)) 35%,#fff)!important}
.standard-card .sc-mark--icon{color:color-mix(in srgb,var(--c1,var(--tile)) 35%,#fff)!important}

/* one radius scale */
:is(.role-card,.session-card,.pfo-item,.mm-node,.relay-phase li,.handoff-link,a.reg-card,.standard-card,.card-grid-item,.iso-card,.prodcard,.gt-node,.dc-facts>div,.mp-stats>div,.story-beats li,.route-card,.xa-link,.dc-act,.hero-points li),
body .path-hub a,body .grid--icons>div,body .supply-grid>div,body .grid>div{border-radius:var(--r-card)!important}
:is(.xform,.xf-aside,.relay-phase,.pfo-stage,.mfg-profile,.mfg-campus,.tl-wrap,.lt-box,.ld-end,.phero-card,.director-card,.hcp-entry-card),body .sahpra-panel,.hero .wrap>div:first-child{border-radius:var(--r-panel)!important}

/* coloured top rims become a fine hairline */
:is(.role-card,.session-card,.mm-node),body .path-hub a,body .grid--icons>div,body .supply-grid>div{border-top-width:1px!important}
:is(.role-card,.session-card,.mm-node,.pfo-item),body .path-hub a,body .grid--icons>div,body .supply-grid>div{
  background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--c,var(--tile)) 75%,transparent) 30%,color-mix(in srgb,var(--c,var(--tile)) 75%,transparent) 70%,transparent),
    linear-gradient(170deg,color-mix(in srgb,var(--c,var(--tile)) 10%,transparent),rgba(14,8,34,.62) 55%)!important;
  background-size:100% 1px,100% 100%!important;background-repeat:no-repeat!important;background-position:0 0,0 0!important;
  background-color:rgba(10,8,30,.45)!important}

/* calmer motion: small lifts, soft shadows */
@media (hover:hover) and (pointer:fine){
  :is(.role-card,.session-card,.pfo-item,.relay-phase li,.route-card,.dc-act,.phero-jump a,.xa-link,.standard-card,.handoff-link,a.reg-card,.prodcard,.iso-card,.card-grid-item):hover,
  body .path-hub a:hover,body .grid--icons>div:hover,body .supply-grid>div:hover{transform:translateY(-2px)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 24px 48px -30px rgba(4,0,20,.95),0 0 0 1px color-mix(in srgb,var(--c,var(--tile)) 30%,transparent)!important}
}
.btn{transition:transform .45s cubic-bezier(.22,.61,.24,1),box-shadow .45s,background-color .45s,border-color .45s!important}
.btn-primary{box-shadow:0 10px 28px -14px rgba(70,60,245,.85),inset 0 1px 0 rgba(255,255,255,.22)!important}
@media (hover:hover) and (pointer:fine){ .btn-primary:hover{transform:translateY(-1px)!important;box-shadow:0 14px 32px -14px rgba(90,70,255,.95),inset 0 1px 0 rgba(255,255,255,.28)!important} .btn-line:hover{transform:translateY(-1px)!important} }

/* one label voice: small mono caps, tinted, never shouting */
:is(.rc-who,.pfo-k,.mm-tag,.handoff-role,.ph-tag,.ss-label,.rc-label,.relay-when+.relay-who,.mp-label,.mm-title,.route-label,.xa-label,.pj-label,.sahpra-track-label,.lt-box summary span,.cg-label,.gt-tag){
  font-family:var(--mono)!important;font-size:10.5px!important;letter-spacing:.18em!important;font-weight:500!important}
:is(.rc-who,.pfo-k,.mm-tag,.handoff-role),body .path-hub .ph-tag{color:color-mix(in srgb,var(--c,var(--tile)) 32%,#e4defa)!important}

/* number badges: squared, quiet */
:is(.sd-n,.rl-n,.sb-n,.ld-n,.handoff-link .handoff-num,.standard-card .sc-num,.rc-stage i){border-radius:6px!important}
.rc-stage{border-radius:8px!important;padding:3px 10px 3px 4px!important}
.rc-stage i{width:20px!important;height:20px!important}

/* headings: tighter and more deliberate */
main h2{letter-spacing:-.022em}
:is(.role-card,.session-card,.pfo-item,.mm-node,.relay-phase,.handoff-link,a.reg-card) h3{letter-spacing:-.012em}
.jy-ico{background:linear-gradient(160deg,color-mix(in srgb,var(--c) 26%,#140a32),#0f0826)!important;border:1px solid color-mix(in srgb,var(--c) 55%,transparent)!important;
  box-shadow:0 0 0 6px #0f0826,inset 0 1px 0 rgba(255,255,255,.12)!important}
.jy-ico svg{stroke:color-mix(in srgb,var(--c) 30%,#fff)!important;stroke-width:1.5!important}
.handoff-link:not(.is-last)::after,.psi-flow li:not(:nth-child(4n))::after,.story-beats li:not(:last-child)::after,.mm-link::after,.journey li:not(:last-child)::after{
  box-shadow:0 0 0 4px #0f0826,0 4px 12px -5px rgba(90,70,255,.7)!important}
.standard-card .sc-mark--icon{--c:var(--c1)}
.hcp-entry-card:not(:has(input:checked)) .hec-go{background-image:none!important;background-color:rgba(255,255,255,.06)!important;color:#fff!important;box-shadow:none!important}

/* ---------- professional pathways: preparation steps ---------- */
.prep-steps{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;position:relative}
.prep-steps::before{content:"";position:absolute;left:24px;right:24px;top:23px;height:1px;background:linear-gradient(90deg,rgba(47,212,196,.7),rgba(59,70,245,.6) 55%,rgba(142,51,251,.5))}
.prep-steps li{position:relative;display:flex;flex-direction:column;gap:18px}
.pr-node{position:relative;z-index:1;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-family:var(--mono);font-size:13px;font-weight:600;color:#dffbf7;
  background:linear-gradient(160deg,rgba(47,212,196,.28),#0e0a2a 80%);border:1px solid rgba(95,224,210,.6);box-shadow:0 0 0 6px #0e0826}
.pr-body{flex:1;padding:22px 22px 22px;border-radius:var(--r-card,18px);background:linear-gradient(170deg,rgba(47,212,196,.08),rgba(14,8,34,.5) 55%),rgba(10,8,30,.35);
  border:1px solid rgba(120,220,210,.2);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);transition:box-shadow .5s,transform .5s cubic-bezier(.22,.61,.24,1)}
.pr-stage{display:inline-block;margin-bottom:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#8ff0e4}
.pr-body h3{margin:0 0 8px;font-family:var(--display);font-size:19px;line-height:1.25;color:#fff}
.pr-body p{margin:0;font-size:15px;line-height:1.6;color:#dcd5f4}
.pr-body a{color:#9ff3e8}
@media (hover:hover) and (pointer:fine){ .prep-steps li:hover .pr-body{transform:translateY(-2px);box-shadow:inset 0 0 0 1px rgba(95,224,210,.45),inset 0 0 50px -14px rgba(47,212,196,.45),inset 0 0 0 999px rgba(47,212,196,.04)} }
@media (max-width:900px){
  .prep-steps{grid-template-columns:1fr;gap:14px}
  .prep-steps::before{left:22.5px;right:auto;top:24px;bottom:24px;width:1px;height:auto;background:linear-gradient(180deg,rgba(47,212,196,.7),rgba(142,51,251,.5))}
  .prep-steps li{flex-direction:row;align-items:flex-start;gap:14px}
  .pr-node{flex:none}
  .pr-body{padding:18px}
}

/* ---------- about: who we are ---------- */
.wrap.about{align-items:start}
.ab-kicker{margin:0 0 12px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#9aa3ff}
.ab-lead{margin:0 0 26px;font-family:var(--display);font-size:clamp(22px,2.1vw,28px);font-weight:500;line-height:1.35;letter-spacing:-.012em;color:#fff;max-width:30ch}
.ab-lead span{color:#bdb3e6}
.ab-points{list-style:none;margin:0 0 24px;padding:0;display:grid;gap:10px}
.ab-points li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:16px;align-items:start;padding:16px 18px;border-radius:var(--r-card,18px);
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08)}
.ab-points .gi-ico{margin:0!important}
.ab-points h3{margin:2px 0 4px;font-family:var(--display);font-size:18px;color:#fff}
.ab-points p{margin:0;font-size:15px;line-height:1.55;color:#d9d1f3}
.ab-grow{margin:0 0 22px;font-size:15.5px;line-height:1.65;color:#d2c9ee;max-width:56ch}
.ab-quote{margin:0;padding:4px 0 4px 20px;border-left:2px solid transparent;border-image:linear-gradient(180deg,#3b46f5,#8e33fb) 1}
.ab-quote p{margin:0;font-family:var(--display);font-style:normal;font-size:20px;line-height:1.4;color:#fff}
.wrap.about>div>.about.close{display:none}

/* ======================= v86 ======================= */

/* ---------- Vertevance standard cards: a calm hairline, no jumping bar ---------- */
body .standard-card::before{inset:0 0 auto 0!important;height:1px!important;border-radius:0!important;animation:none!important;filter:none!important;
  background:linear-gradient(90deg,transparent,var(--c1) 25%,var(--c2) 75%,transparent)!important;background-size:100% 100%!important;opacity:.85;transition:opacity .5s!important}
body .standard-card:hover::before{height:1px!important;filter:none!important;opacity:1}
body .standard-card{overflow:hidden;transition:transform .5s cubic-bezier(.22,.61,.24,1),box-shadow .5s,background-color .5s,border-color .5s!important}

/* ---------- hover language: the glow moves inside the card and the fill warms ----------
   Used by the chain of responsibility and every card set that follows it: at rest a
   soft outer light, on hover that light is drawn in and the glass takes the card's colour. */
@media (hover:hover) and (pointer:fine){
  body :is(.handoff-link,.standard-card,.role-card,.session-card,.pfo-item,a.reg-card,.relay-phase li,.iso-card,.card-grid-item),
  body .path-hub a,body .grid--icons>div,body .supply-grid>div{transition:transform .55s cubic-bezier(.22,.61,.24,1),box-shadow .55s,background-color .55s,border-color .55s!important}
  body :is(.handoff-link,.standard-card,.role-card,.session-card,.pfo-item,a.reg-card,.relay-phase li,.iso-card,.card-grid-item):hover,
  body .path-hub a:hover,body .grid--icons>div:hover,body .supply-grid>div:hover{
    transform:translateY(-2px)!important;
    background-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 13%,rgba(10,8,30,.5))!important;
    border-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 55%,transparent)!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 30%,transparent),
      inset 0 0 60px -12px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 42%,transparent),
      inset 0 1px 0 rgba(255,255,255,.14),0 18px 40px -30px rgba(4,0,20,.9)!important}
  body .handoff-link.is-us:hover{
    background-color:rgba(142,51,251,.2)!important;
    box-shadow:inset 0 0 0 1px rgba(210,150,255,.45),inset 0 0 70px -10px rgba(170,70,255,.55),inset 0 1px 0 rgba(255,255,255,.18),0 18px 40px -30px rgba(4,0,20,.9)!important}
}
.handoff-link.is-us.in-view,.handoff-link.is-us.is-pressed{box-shadow:inset 0 0 0 1px rgba(210,150,255,.45),inset 0 0 70px -10px rgba(170,70,255,.5)!important}

/* ---------- buttons: brand blue into purple fills on hover ---------- */
.btn{position:relative;isolation:isolate;overflow:hidden}
.btn-line{background-color:rgba(255,255,255,.03)!important}
.btn-line::before,.btn-primary::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;opacity:0;transition:opacity .5s cubic-bezier(.22,.61,.24,1);
  background:linear-gradient(100deg,#3b46f5 0%,#5b3df2 45%,#8e33fb 100%)}
.btn-primary::before{background:linear-gradient(100deg,#4a55ff 0%,#6a45ff 45%,#a03dff 100%)}
@media (hover:hover) and (pointer:fine){
  .btn-line:hover{border-color:transparent!important;color:#fff!important;background-color:transparent!important}
  :is(.btn-line,.btn-primary):hover::before{opacity:1}
}
:is(.btn-line,.btn-primary).is-pressed::before{opacity:1}

/* ---------- photographs: a touch clearer at rest, lively on hover ---------- */
:is(.photo-band,.photo-panel,.cine-tile,.hero-photo,.phero-photo:not(.phero-photo--render):not(.phero-photo--xray),.portal-photo,.about-split-photo,.made-link) img{
  filter:brightness(1.04) contrast(1.03) saturate(1.05)!important;transition:filter .9s cubic-bezier(.22,.61,.24,1),transform 1.2s cubic-bezier(.22,.61,.24,1)!important}
@media (hover:hover) and (pointer:fine){
  :is(.photo-band,.photo-panel,.cine-tile,.portal-photo,.about-split-photo,.made-link):hover img{filter:brightness(1.14) contrast(1.06) saturate(1.2)!important}
}
@media (hover:none),(pointer:coarse){
  :is(.photo-band,.photo-panel,.cine-tile).in-view img{filter:brightness(1.12) contrast(1.05) saturate(1.16)!important}
}

/* ---------- component strips: the render never touches the frame ---------- */
.detail-strip figure{padding-top:16px!important}
.detail-strip .ds-stage{height:118px!important}
.detail-strip img{max-height:96px!important;max-width:86%!important}
body .handoff-link:not(.is-us):not(:hover){box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 22%,transparent),0 30px 60px -36px color-mix(in srgb,var(--c) 75%,transparent),0 0 80px -40px color-mix(in srgb,var(--c) 45%,transparent)!important}

/* ---------- page headers: more room, and the guide sits clear of the fade ---------- */
@media (min-width:1024px){
  main section.phero{min-height:clamp(540px,64vh,660px)}
  .phero .wrap,.phero>.wrap{padding-bottom:clamp(150px,13vw,200px)!important}
}
@media (min-width:601px) and (max-width:1023px){ .phero .wrap,.phero>.wrap{padding-bottom:130px!important} }
@media (max-width:600px){ .phero:has(.phero-photo) .wrap,.phero .wrap{padding-bottom:100px!important} }
@media (max-width:600px){ main section.phero+section::after{height:70px!important;top:-70px!important} }
.phero-jump{position:relative;z-index:3}
@media (min-width:1024px){
  .phero .phero-photo:not(.phero-photo--render)::before{content:"";position:absolute;left:0;right:0;bottom:0;height:48%;z-index:2;pointer-events:none;
    background:linear-gradient(180deg,rgba(10,5,32,0) 0%,rgba(10,5,32,.55) 45%,rgba(10,5,32,.9) 80%,#0a0520 100%)}
}
main section.phero+section{--light:linear-gradient(transparent,transparent)!important}
.ab-lead{color:#fff!important}.ab-lead span{color:#c8bff0!important}

/* ---------- about: values ---------- */
.values-sec .sec-head h2{font-size:clamp(28px,3.4vw,44px)!important;line-height:1.12}
.v-w{white-space:nowrap}
.v-w1{background:linear-gradient(100deg,#9aa6ff,#6f7dff);-webkit-background-clip:text;background-clip:text;color:transparent}
.v-w2{background:linear-gradient(100deg,#c9a2ff,#9b4dff);-webkit-background-clip:text;background-clip:text;color:transparent}
.v-w3{background:linear-gradient(100deg,#ffb3a3,#f0795f 70%,#e8a94e);-webkit-background-clip:text;background-clip:text;color:transparent}
.values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.value{position:relative;overflow:hidden;padding:30px 26px 28px;border-radius:var(--r-card,18px);
  background:radial-gradient(120% 90% at 0 0,color-mix(in srgb,var(--c) 22%,transparent),transparent 60%),rgba(12,8,32,.4);
  -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid color-mix(in srgb,var(--c) 32%,rgba(255,255,255,.08));box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 70px -44px color-mix(in srgb,var(--c) 80%,transparent);
  transition:transform .55s cubic-bezier(.22,.61,.24,1),box-shadow .55s,background-color .55s}
.value::after{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--c) 30%,var(--c) 70%,transparent)}
.val-n{position:absolute;right:22px;top:14px;font-family:var(--display);font-size:64px;font-weight:600;line-height:1;letter-spacing:-.04em;
  background:linear-gradient(180deg,color-mix(in srgb,var(--c) 55%,transparent),transparent 85%);-webkit-background-clip:text;background-clip:text;color:transparent;pointer-events:none}
.value .gi-ico{margin:0 0 22px!important}
.value h3{margin:0 0 10px;font-family:var(--display);font-size:24px;letter-spacing:-.015em;color:#fff}
.value p{margin:0;font-size:15.5px;line-height:1.6;color:#ddd6f5}
@media (hover:hover) and (pointer:fine){ .value:hover{transform:translateY(-2px);background-color:color-mix(in srgb,var(--c) 12%,rgba(10,8,30,.4));
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 35%,transparent),inset 0 0 70px -14px color-mix(in srgb,var(--c) 45%,transparent),0 18px 40px -30px rgba(4,0,20,.9)} }
@media (max-width:900px){ .values{grid-template-columns:1fr;gap:12px} .v-w{white-space:normal} }

/* ---------- support 04: the relay as three columns on wide screens ---------- */
@media (min-width:1100px){
  .relay{grid-template-columns:minmax(0,1fr) 104px minmax(0,1.12fr) 104px minmax(0,1fr);align-items:stretch;gap:0;margin-top:18px}
  .relay-phase{grid-template-columns:1fr!important;align-content:start;gap:22px!important;padding:28px 24px 26px!important;border-radius:var(--r-panel,24px)!important;
    background:linear-gradient(180deg,color-mix(in srgb,var(--c) 18%,transparent),rgba(12,8,32,.42) 38%),rgba(10,8,30,.3)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.3);backdrop-filter:blur(18px) saturate(1.3)}
  .relay-phase::before{content:"";position:absolute;left:24px;right:24px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--c) 30%,var(--c) 70%,transparent)}
  .relay-phase header{flex-direction:column!important;align-items:flex-start!important;gap:12px!important;padding:0 0 20px!important;border-bottom:1px solid rgba(255,255,255,.08)}
  .relay-when{font-size:26px!important}
  .relay-phase ol{grid-template-columns:1fr!important;gap:10px!important}
  .relay-phase li{display:grid!important;grid-template-columns:40px minmax(0,1fr);column-gap:14px;align-items:start;padding:16px 16px!important}
  .relay-phase li .rl-ico{grid-row:span 2}
  .relay-phase li>div{padding-right:22px}
  .relay-phase li .rl-n{top:16px!important;right:14px!important}
  .relay-phase h3{font-size:16.5px!important}
  .relay-hand{height:auto!important;padding:0!important;flex-direction:column;justify-content:center;gap:12px!important;text-align:center}
  .relay-hand::before{left:10px!important;right:10px!important;top:50%!important;bottom:auto!important;width:auto!important;height:1px!important;transform:none!important;
    background:linear-gradient(90deg,rgba(150,150,255,.15),rgba(210,170,255,.7),rgba(255,150,120,.15))!important}
  .relay-hand span{font-size:0!important;width:34px;height:34px;padding:0!important;justify-content:center;border-radius:50%!important;
    background:linear-gradient(135deg,#3b46f5,#8e33fb)!important;box-shadow:0 0 0 5px #0f0826,0 6px 16px -5px rgba(90,70,255,.8)!important}
  .relay-hand span::after{transform:none!important;width:16px!important;height:16px!important}
  .relay-hand small{position:absolute;top:calc(50% + 28px);left:6px;right:6px;padding:6px 8px!important;font-size:11.5px!important;line-height:1.35;border-radius:10px!important}
  .relay-hand{position:relative}
  .relay-hand::after{content:"Handover";position:absolute;bottom:calc(50% + 28px);left:0;right:0;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#c9bff0}
}
@media (min-width:1100px){ .relay{grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr) 88px minmax(0,1fr)!important} }

/* ---------- complaints: urgent card ---------- */
.urgent-card{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:22px;align-items:center;margin-bottom:clamp(24px,3vw,36px);padding:clamp(22px,2.6vw,30px);border-radius:var(--r-panel,24px);
  background:linear-gradient(110deg,rgba(255,122,107,.16),rgba(201,60,255,.08) 55%,rgba(12,8,32,.4)),rgba(12,8,32,.4);border:1px solid rgba(255,160,140,.35);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 110px -44px rgba(255,122,107,.55)}
.uc-ico{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:rgba(255,122,107,.16);border:1px solid rgba(255,160,140,.5)}
.uc-ico svg{width:26px;height:26px;fill:none;stroke:#ffc2b5;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.uc-label{margin:0 0 4px;font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#ffc2b5}
.uc-copy h2{margin:0 0 4px!important;font-size:clamp(21px,2.1vw,26px)!important;line-height:1.2}
.uc-copy p:last-child{margin:0;font-size:14.5px;color:#e6dcf5}
.uc-call{display:flex;align-items:center;gap:12px;padding:12px 18px 12px 12px;border-radius:16px;text-decoration:none;color:#fff;
  background:linear-gradient(100deg,#e2576a,#b33ad0);box-shadow:0 12px 30px -14px rgba(226,87,106,.9);transition:transform .45s cubic-bezier(.22,.61,.24,1),box-shadow .45s}
.uc-ci{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.16)}
.uc-ci svg{width:19px;height:19px;fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.uc-call b{display:block;font-size:17px}.uc-call span:last-child{font-size:12.5px;color:#ffe9f0}
@media (hover:hover) and (pointer:fine){ .uc-call:hover{transform:translateY(-1px);box-shadow:0 16px 36px -14px rgba(226,87,106,1)} }
.xa-note{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;margin:10px 0 0;font-size:13.5px;line-height:1.5;color:#d2c9ee}
.xa-note svg{width:18px;height:18px;fill:none;stroke:#aeb6ff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:800px){ .urgent-card{grid-template-columns:48px minmax(0,1fr)} .uc-ico{width:48px;height:48px} .uc-call{grid-column:1/-1;justify-content:flex-start} }

/* ---------- glass: more see-through, same hue ---------- */
:is(.role-card,.session-card,.pfo-item,.mm-node),body .path-hub a,body .grid--icons>div,body .supply-grid>div{
  background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--c,var(--tile)) 75%,transparent) 30%,color-mix(in srgb,var(--c,var(--tile)) 75%,transparent) 70%,transparent),
    linear-gradient(170deg,color-mix(in srgb,var(--c,var(--tile)) 12%,transparent),rgba(14,8,34,.34) 60%)!important;
  background-color:rgba(12,8,32,.26)!important}
:is(.role-card,.session-card,.pfo-item,.mm-node,.handoff-link,.standard-card,a.reg-card,.iso-card,.card-grid-item,.relay-phase li,.prodcard,.value,.xf-aside,.mfg-profile,.story-beats li,.hero-points li,.dc-facts>div,.mp-stats>div),
body .path-hub a,body .grid--icons>div,body .supply-grid>div{
  -webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35)}
body .handoff-link:not(.is-us),body .standard-card,body a.reg-card,body .iso-card,body .card-grid-item{background-color:rgba(14,9,36,.34)!important}
.xform{background:radial-gradient(90% 60% at 0 0,rgba(59,70,245,.16),transparent 60%),radial-gradient(70% 50% at 100% 100%,rgba(201,60,255,.12),transparent 60%),rgba(12,7,30,.5)!important}
.relay-phase li{background:rgba(255,255,255,.035)!important}
.relay-phase li:hover{background:color-mix(in srgb,var(--c) 12%,rgba(255,255,255,.03))!important}
.phero-photo--render .skull-net{opacity:.8;filter:drop-shadow(0 0 2px rgba(210,150,255,.6))!important}
body :is(.standard-card,.handoff-link,.card-grid-item,.gt-node,.tenet):hover h3{color:#fff!important}

/* ---------- arrows: colour change only, no movement ---------- */
.ar,.arw,.mnav-arw,:is(.path-cta,.pc-go,.go,.reg-go) span,:is(.route-card,.xa-link,.ss-go)>i,.ss-go span{transition:color .35s,background-color .35s,border-color .35s!important}
:is(a,button,summary,.is-pressed) .ar,:is(a,button):hover .ar,:is(a,button):focus-visible .ar,
:is(a,button):hover :is(.arw,.mnav-arw,span,i),:is(a,button):focus-visible :is(.arw,.mnav-arw,span,i){transform:none!important}
.ar--back{transform:scaleX(-1)!important}.ar--up{transform:rotate(-90deg)!important}
@media (hover:hover) and (pointer:fine){
  :is(.path-cta,.pc-go,.go,.reg-go,.link-row a,.fnav-col a,.util a,main p a:not(.btn)):hover .ar,
  :is(a.prodcard,.path-hub a,.reg-card,.related a,.iso-card,.ss-go,.dc-act,.phero-jump a):hover .ar{color:#aab4ff}
  body.area-pro :is(.path-cta,.pc-go,.go,.path-hub a,.related a):hover .ar{color:#7fe3d8}
  :is(.route-card,.xa-link):hover>i{background:rgba(59,70,245,.3)!important;border-color:rgba(150,160,255,.7)!important;color:#fff!important}
}

/* contrast */
.val-n{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;color:color-mix(in srgb,var(--c) 55%,#fff 5%)!important;opacity:.9;font-size:52px}
.uc-call{background:linear-gradient(100deg,#b0283f,#7e1f9e)!important}
.uc-call span:last-child{color:#fff!important}
.val-n{color:color-mix(in srgb,var(--c) 45%,#fff)!important;opacity:1!important;font-size:34px!important;top:22px!important}


/* ======================= v87 · the final system ======================= */

/* ---------- 1. palette: five colours, used with intent ----------
   Blue   — the brand; primary actions, links, first steps
   Violet — the brand's second voice; the middle of a sequence, Vertevance itself
   Coral  — warm accent; the hospital's side, people, urgency
   Amber  — warm accent, used sparingly; status, "in progress", quality marks
   Teal   — the professional area only
   Ink and lilac-white are neutrals, not colours. */
:root{--blue:#3b46f5;--blue-l:#8e97ff;--violet:#8e33fb;--violet-l:#c3a1ff;--coral:#f0795f;--coral-l:#f6b49c;--amber:#e8a94e;--amber-l:#f3d19a;--teal:#2fd4c4;--teal-l:#9ff3e8;
  --v-ink:#0a0520;--text:#ece6fb;--text-2:#d6cef1;--text-3:#b9aee0;
  --accent-grad:linear-gradient(100deg,#a9b4ff 0%,#c7a2ff 48%,#f6b49c 100%)}

/* ---------- 2. type: one editorial voice ---------- */
main .sec-head h2{font-size:clamp(30px,3.3vw,46px)!important;line-height:1.08!important;letter-spacing:-.028em!important;font-weight:600}
.ha{font-style:normal!important;background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
body.area-pro .ha{background:linear-gradient(100deg,#9ff3e8,#a9b4ff 60%,#c7a2ff)}
.phero-card h1{letter-spacing:-.03em!important;line-height:1.05!important}
.phero-card h1 .ha{display:inline}
main h3{letter-spacing:-.012em}
.lede,.sec-note,main p{font-feature-settings:"kern" 1,"liga" 1}
.eyebrow{letter-spacing:.2em!important}

/* ---------- 3. cursor: the familiar arrow, in brand blue ---------- */
@media (hover:hover) and (pointer:fine){
  a,button,summary,select,label,[role=button],.chip,.xf-check,.hec-check,input[type=checkbox],input[type=radio],input[type=submit],.mnav-btn{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M4.5%202.5v16.2l4.1-3.9%202.7%206.2%202.9-1.3-2.7-6.1%205.8-.2z%22%20fill%3D%22%233b46f5%22%20stroke%3D%22%23fff%22%20stroke-width%3D%221.5%22%20stroke-linejoin%3D%22round%22/%3E%3C/svg%3E") 4 2,pointer!important}
  input:not([type=checkbox]):not([type=radio]):not([type=submit]):not([type=button]),textarea,[contenteditable=true]{cursor:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2220%22%20height%3D%2224%22%20viewBox%3D%220%200%2020%2024%22%3E%3Cpath%20d%3D%22M6.5%202.5c1.9%200%202.9.5%203.5%201.3.6-.8%201.6-1.3%203.5-1.3M6.5%2021.5c1.9%200%202.9-.5%203.5-1.3.6.8%201.6%201.3%203.5%201.3M10%204v16M8%2012h4%22%20fill%3D%22none%22%20stroke%3D%22%23fff%22%20stroke-width%3D%223.2%22%20stroke-linecap%3D%22round%22/%3E%3Cpath%20d%3D%22M6.5%202.5c1.9%200%202.9.5%203.5%201.3.6-.8%201.6-1.3%203.5-1.3M6.5%2021.5c1.9%200%202.9-.5%203.5-1.3.6.8%201.6%201.3%203.5%201.3M10%204v16M8%2012h4%22%20fill%3D%22none%22%20stroke%3D%22%23141a6e%22%20stroke-width%3D%221.4%22%20stroke-linecap%3D%22round%22/%3E%3C/svg%3E") 10 12,text!important}
}

/* ---------- 4. page headers dissolve into the page ---------- */
.phero-fade{position:absolute;left:0;right:0;bottom:0;height:min(58%,380px);z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(10,5,32,0) 0%,rgba(10,5,32,.45) 35%,rgba(10,5,32,.85) 70%,#0a0520 100%)}
.phero{box-shadow:none!important}
.phero>.wrap{position:relative;z-index:2}
main section.phero+section::after{content:none!important}
main section.phero+section::before{content:none!important}
main section.phero+section{padding-top:clamp(48px,6vw,80px)!important}
.phero .phero-photo:not(.phero-photo--render)::before{content:none!important}
/* clinical focus: the x-ray floats free of its frame */
.phero-photo--xray{-webkit-mask-image:radial-gradient(ellipse 50% 54% at 60% 44%,#000 52%,rgba(0,0,0,.6) 70%,transparent 100%)!important;
  mask-image:radial-gradient(ellipse 50% 54% at 60% 44%,#000 52%,rgba(0,0,0,.6) 70%,transparent 100%)!important}
.phero-photo--xray img{mix-blend-mode:screen!important}

/* ---------- 5. navigation sequence: section tabs vs. page index ----------
   Tabs (professional area) = where you are in the area: a solid rail.
   "On this page" = an index of this page: plain, numbered text links. */
nav.pw-tabs{display:flex!important;align-items:center;gap:2px!important;padding:5px!important;border-radius:14px!important;
  background:rgba(8,20,32,.72)!important;border:1px solid rgba(95,224,210,.28)!important;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08)!important;margin-bottom:20px!important;width:max-content;max-width:100%}
nav.pw-tabs a{border-radius:10px!important;padding:9px 14px!important;font-size:14px!important;font-weight:500!important;color:#d5eeee!important;background:none!important;box-shadow:none!important;border:0!important}
nav.pw-tabs a:hover{background:rgba(47,212,196,.12)!important;color:#fff!important}
nav.pw-tabs a.is-active{background:linear-gradient(135deg,rgba(47,212,196,.9),rgba(59,70,245,.85))!important;color:#fff!important;box-shadow:0 6px 18px -8px rgba(47,212,196,.8)!important}
.phero-jump{display:flex!important;flex-wrap:wrap;align-items:center;gap:6px 22px!important;margin-top:22px!important;padding:14px 0 0!important;border-top:1px solid rgba(255,255,255,.12)!important;max-width:980px}
.phero-jump .pj-label{padding:0!important;background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;color:#c9bff0!important;margin-right:4px!important}
.phero-jump ol{display:contents!important}
.phero-jump a{display:inline-flex!important;align-items:center;gap:8px;padding:6px 0!important;border:0!important;border-radius:0!important;background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:none!important;
  font-size:14px!important;color:#e6e0fa!important;transform:none!important;
  background-image:linear-gradient(90deg,#8e97ff,#c3a1ff)!important;background-repeat:no-repeat!important;background-position:0 100%!important;background-size:0 1px!important;transition:background-size .45s cubic-bezier(.22,.61,.24,1),color .3s!important}
.phero-jump a:hover{background-size:100% 1px!important;color:#fff!important}
.phero-jump .pj-ico{width:22px!important;height:22px!important;background:none!important;box-shadow:none!important;border:0!important}
.phero-jump .pj-ico svg{width:16px!important;height:16px!important;stroke:#9aa3ff!important}
body.area-pro .phero-jump .pj-ico svg{stroke:#7fe3d8!important}
.phero-jump .pj-n{display:inline!important;color:#9aa3ff!important;font-size:11px!important}
body.area-pro .phero-jump .pj-n{color:#7fe3d8!important}
@media (max-width:600px){
  nav.pw-tabs{width:100%;overflow-x:auto;flex-wrap:nowrap!important;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 28px),transparent)}
  nav.pw-tabs::-webkit-scrollbar{display:none}
  nav.pw-tabs a{white-space:nowrap;flex:none}
  .phero-jump{display:grid!important;grid-template-columns:1fr 1fr;gap:2px 14px!important}
  .phero-jump .pj-label{grid-column:1/-1;margin-bottom:4px!important}
  .phero-jump a{font-size:13.5px!important;min-height:40px}
}
@media (min-width:601px) and (max-width:1023px){ nav.pw-tabs{flex-wrap:wrap!important;width:auto} }

/* ---------- 6. about: the story header ---------- */
.phero-card--story{max-width:720px!important}
.phero-card--story h1{font-size:clamp(32px,3.5vw,50px)!important;margin-bottom:26px!important}
.story-lines{margin:0 0 24px;padding:0;display:grid;gap:0}
.story-lines>div{display:grid;grid-template-columns:170px minmax(0,1fr);gap:18px;padding:13px 0;border-top:1px solid rgba(255,255,255,.1)}
.story-lines>div:last-child{border-bottom:1px solid rgba(255,255,255,.1)}
.story-lines dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:#aeb6ff;padding-top:4px}
.story-lines>div:nth-child(2) dt{color:var(--violet-l)}
.story-lines>div:nth-child(3) dt{color:var(--coral-l)}
.story-lines dd{margin:0;font-size:16px;line-height:1.55;color:#ece6fb}
.story-sign{border-top:0!important;padding-top:0!important;display:flex!important}
@media (max-width:600px){ .story-lines>div{grid-template-columns:1fr;gap:4px;padding:11px 0} .story-lines dd{font-size:15px} .story-sign{display:none!important} }

/* ---------- 7. card families ----------
   A · feature card  — icon tile, label, title, text   (hover: glow drawn inside, fill takes the colour)
   B · link row      — icon, title + line, arrow disc (hover: tint, disc fills)
   C · panel         — large glass surface, no hover */
.ab-points li{position:relative;transition:transform .55s cubic-bezier(.22,.61,.24,1),box-shadow .55s,background-color .55s,border-color .55s;
  background:linear-gradient(170deg,color-mix(in srgb,var(--c) 12%,transparent),rgba(14,8,34,.3) 60%),rgba(12,8,32,.26)!important;
  border:1px solid color-mix(in srgb,var(--c) 26%,rgba(255,255,255,.08))!important;-webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35)}
.ab-points h3{font-size:19px!important;letter-spacing:-.012em}
@media (hover:hover) and (pointer:fine){
  .ab-points li:hover,.dtype:hover,.fmt-strip li:hover{transform:translateY(-2px);background-color:color-mix(in srgb,var(--c) 13%,rgba(10,8,30,.5))!important;border-color:color-mix(in srgb,var(--c) 55%,transparent)!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent),inset 0 0 60px -12px color-mix(in srgb,var(--c) 42%,transparent),0 18px 40px -30px rgba(4,0,20,.9)}
}
.ab-points li.in-view,.ab-points li.is-pressed{border-color:color-mix(in srgb,var(--c) 55%,transparent)!important}
/* B · link rows share one shape */
.res-act,.route-card,.xa-link,.dc-act{display:grid!important;grid-template-columns:46px minmax(0,1fr) 32px!important;gap:14px!important;align-items:center;padding:16px 16px 16px 14px!important;border-radius:var(--r-card)!important;text-decoration:none;
  background:linear-gradient(170deg,color-mix(in srgb,var(--c,#4f5bff) 10%,transparent),rgba(14,8,34,.3) 60%),rgba(12,8,32,.28)!important;border:1px solid color-mix(in srgb,var(--c,#4f5bff) 26%,rgba(255,255,255,.08))!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35);transition:background-color .45s,border-color .45s,box-shadow .45s!important;transform:none!important}
.dc-act{grid-template-columns:40px minmax(0,1fr)!important}
.res-act b,.route-card b{display:block;font-size:15.5px;color:#fff;line-height:1.3}
.res-act small,.route-card small{display:block;margin-top:3px;font-size:13px;line-height:1.45;color:var(--text-3)}
.res-act>i,.route-card>i,.xa-link>i{display:grid!important;place-items:center;width:32px!important;height:32px!important;border-radius:50%!important;font-style:normal;color:#dfe3ff;
  background:rgba(59,70,245,.16)!important;border:1px solid rgba(130,140,255,.4)!important;transform:none!important}
.res-act>i .ar,.route-card>i .ar,.xa-link>i .ar{width:15px;height:15px;vertical-align:0}
@media (hover:hover) and (pointer:fine){
  .res-act:hover,.route-card:hover,.xa-link:hover,.dc-act:hover{background-color:color-mix(in srgb,var(--c,#4f5bff) 12%,rgba(10,8,30,.5))!important;border-color:color-mix(in srgb,var(--c,#4f5bff) 55%,transparent)!important;
    box-shadow:inset 0 0 50px -16px color-mix(in srgb,var(--c,#4f5bff) 45%,transparent)!important}
  :is(.res-act,.route-card,.xa-link):hover>i{background:linear-gradient(135deg,#3b46f5,#8e33fb)!important;border-color:transparent!important;color:#fff!important}
}
.route-card:nth-child(1){--c:#4f5bff}.route-card:nth-child(2){--c:#2fd4c4}.route-card:nth-child(3){--c:#f0795f}.route-card:nth-child(4){--c:#9b45fb}
.route-card .rc-ico{background:linear-gradient(160deg,color-mix(in srgb,var(--c) 22%,rgba(255,255,255,.03)),color-mix(in srgb,var(--c) 8%,rgba(10,6,28,.4)))!important;border:1px solid color-mix(in srgb,var(--c) 42%,rgba(255,255,255,.08))!important;box-shadow:none!important;border-radius:var(--r-tile)!important}
.route-card .rc-ico svg{stroke:color-mix(in srgb,var(--c) 35%,#fff)!important;stroke-width:1.5!important}

/* professional resources: photo + two actions */
.res-split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(18px,2.4vw,28px);align-items:stretch}
.res-photo{margin:0;min-height:300px}
.res-photo img{width:100%;height:100%;object-fit:cover}
.res-actions{display:grid;gap:14px;align-content:center}
@media (max-width:900px){ .res-split{grid-template-columns:1fr} .res-photo{min-height:0;aspect-ratio:16/9} }

/* direct request: document types */
.dtype-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:clamp(28px,3.4vw,44px)}
.dtype{position:relative;display:flex;flex-direction:column;gap:6px;padding:20px 18px 18px;border-radius:var(--r-card);text-decoration:none;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--c) 75%,transparent) 30%,color-mix(in srgb,var(--c) 75%,transparent) 70%,transparent) 0 0/100% 1px no-repeat,
    linear-gradient(170deg,color-mix(in srgb,var(--c) 12%,transparent),rgba(14,8,34,.34) 60%),rgba(12,8,32,.26);
  border:1px solid color-mix(in srgb,var(--c) 26%,rgba(255,255,255,.08));-webkit-backdrop-filter:blur(18px) saturate(1.35);backdrop-filter:blur(18px) saturate(1.35);
  transition:transform .55s cubic-bezier(.22,.61,.24,1),box-shadow .55s,background-color .55s,border-color .55s}
.dtype .gi-ico{margin:0 0 10px!important}
.dtype b{font-family:var(--display);font-size:18px;color:#fff;letter-spacing:-.01em}
.dtype small{font-size:13.5px;line-height:1.5;color:var(--text-2)}
.dt-go{margin-top:auto;padding-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:600;color:color-mix(in srgb,var(--c) 35%,#fff)}
@media (max-width:1023px){ .dtype-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:480px){ .dtype-grid{grid-template-columns:1fr} }

/* training: format strip */
.fmt-strip{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.fmt-strip li{display:grid;grid-template-columns:46px minmax(0,1fr);gap:14px;align-items:center;padding:16px 18px;border-radius:var(--r-card);--c:#4f5bff;
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.09);transition:transform .55s cubic-bezier(.22,.61,.24,1),box-shadow .55s,background-color .55s,border-color .55s}
.fmt-strip li:nth-child(1){--c:#2fd4c4}.fmt-strip li:nth-child(3){--c:#9b45fb}
.fmt-strip .gi-ico{margin:0!important}
.fmt-strip b{display:block;font-size:15px;color:#fff;margin-bottom:2px}
.fmt-strip li>span:last-child{font-size:13.5px;line-height:1.45;color:var(--text-2)}
@media (max-width:900px){ .fmt-strip{grid-template-columns:1fr;gap:10px} }

/* ---------- 8. preparation steps: the line runs between the nodes, never behind them ---------- */
.prep-steps::before{content:none!important}
.prep-steps li:not(:last-child)::after{content:"";position:absolute;top:23px;left:56px;right:-8px;height:1px;
  background:linear-gradient(90deg,rgba(95,224,210,.55),rgba(110,125,255,.35))}
.pr-node{box-shadow:none!important;background:linear-gradient(160deg,rgba(47,212,196,.22),rgba(12,10,40,.9))!important}
@media (max-width:900px){
  .prep-steps li:not(:last-child)::after{top:56px;bottom:-6px;left:22.5px;right:auto;width:1px;height:auto;background:linear-gradient(180deg,rgba(95,224,210,.55),rgba(110,125,255,.3))}
}

/* ---------- 9. support 04: one ownership track, three clean columns ---------- */
.relay-track{display:none}
@media (min-width:1100px){
  .relay-track{position:relative;display:grid;grid-template-columns:1fr 1fr 1fr;gap:56px;margin:14px 0 22px}
  .rt-seg{position:relative;display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 12px;border-bottom:2px solid var(--c)}
  .rt-seg b{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 35%,#fff)}
  .rt-seg span{font-size:12.5px;color:var(--text-3)}
  .rt-node{position:absolute;bottom:-17px;width:34px;height:34px;border-radius:50%;transform:translateX(-50%);font-style:normal;
    background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2012h12M13%207l5%205-5%205%22/%3E%3C/svg%3E") center/16px no-repeat,linear-gradient(135deg,#3b46f5,#8e33fb);
    box-shadow:0 0 0 5px #0d0724}
  .rt-node--1{left:calc(33.333% - 18.67px)}
  .rt-node--2{left:calc(66.666% + 18.67px)}
  .rt-node span{position:absolute;top:44px;left:50%;transform:translateX(-50%);white-space:nowrap;padding:4px 10px;border-radius:999px;font-size:12px;color:#ece6fb;background:rgba(12,7,30,.9);border:1px solid rgba(200,190,255,.28)}
  .relay{grid-template-columns:1fr 1fr 1fr!important;gap:56px!important;margin-top:44px!important}
  .relay-hand{display:none!important}
  .relay-phase{padding:0!important;background:none!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-radius:0!important}
  .relay-phase::before{content:none!important}
  .relay-phase header{padding:0 0 14px!important;border-bottom:0!important}
  .relay-phase .relay-who{display:none!important}
  .relay-when{font-size:clamp(24px,2vw,30px)!important;letter-spacing:-.02em}
  .relay-phase ol{gap:0!important}
  .relay-phase li{background:none!important;border:0!important;border-top:1px solid rgba(255,255,255,.1)!important;border-radius:0!important;padding:18px 8px 18px 0!important;box-shadow:none!important;transform:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  .relay-phase li:last-child{border-bottom:1px solid rgba(255,255,255,.1)!important}
  .relay-phase li>.edge-light{display:none}
  .relay-phase li .rl-n{top:20px!important;right:0!important}
  .relay-phase li:hover{background:linear-gradient(90deg,color-mix(in srgb,var(--c) 10%,transparent),transparent)!important}
  .relay-phase--h{box-shadow:none!important}
}

/* ---------- 10. manufacturing cards: no hidden marks ---------- */
body .supply-grid>div::before,body .supply-grid>div::after,body .grid--icons>div::after{content:none!important}

/* ---------- 11. connectors sit in the gap, never on a card ---------- */
@media (min-width:1041px){ .handoff-link:not(.is-last)::after{left:calc(100% + 15px)!important} }

/* ---------- 12. photo band in support 01 ---------- */
.photo-band--stage{margin:clamp(32px,4vw,52px) 0 0}
.photo-band--stage img{object-position:65% 30%}
@media (min-width:1024px){ .photo-band--stage{aspect-ratio:21/8} }
@media (min-width:1100px){
  .rt-node--1{left:calc(33.333% - 9.33px)!important}
  .rt-node--2{left:calc(66.666% + 9.33px)!important}
  .relay{margin-top:72px!important}
}
@media (min-width:1024px){
  main section.phero{min-height:0!important}
  .phero .wrap,.phero>.wrap{padding-bottom:clamp(72px,7vw,104px)!important}
}
main section.phero+section{padding-top:clamp(40px,4.5vw,64px)!important}
:is(.res-photo,.photo-band--stage) figcaption span{background:rgba(9,4,28,.72);padding:4px 9px;border-radius:7px;color:#fff!important}
.res-photo::after{background:linear-gradient(0deg,rgba(9,4,28,.92) 0%,rgba(9,4,28,.5) 34%,rgba(9,4,28,0) 62%)!important;opacity:1!important}
@media (max-width:600px){ nav.pw-tabs{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)!important;mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)!important} }
nav.pw-tabs{background:rgba(6,14,26,.86)!important}
@media (min-width:1024px) and (max-height:820px){
  .phero-card--story .story-sign{display:none!important}
  .story-lines>div{padding:10px 0}
  .phero-card--story h1{margin-bottom:18px!important}
}

/* ---------- v87 · review fixes ---------- */
/* 1 · professional accent text keeps its clip */
body.area-pro .ha{background:none!important;background-image:linear-gradient(100deg,#9ff3e8,#a9b4ff 60%,#c7a2ff)!important;-webkit-background-clip:text!important;background-clip:text!important;color:transparent!important}
/* 2–3 · patient-specific workflow: connectors only on the four-across layout */
@media (max-width:1023px){ .psi-flow li::after{content:none!important;display:none!important} }
@media (min-width:761px) and (max-width:1023px){ .psi-flow{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important} }
/* 4 · supply cards: two by two on tablets */
@media (min-width:601px) and (max-width:1023px){ body .supply-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important} body .supply-grid>div{grid-column:auto!important;max-width:none!important;margin:0!important} }
/* 5 · photo captions: one style everywhere — no chip behind the label */
:is(.res-photo,.photo-band--stage,.mfg-campus) figcaption span{background:none!important;padding:0!important;border-radius:0!important}
:is(.res-photo,.photo-band--stage,.mfg-campus)::after{background:linear-gradient(0deg,rgba(9,4,28,.94) 0%,rgba(9,4,28,.6) 30%,rgba(9,4,28,0) 60%)!important;opacity:1!important}
/* 6 · long email addresses never split mid-word */
.xa-link b{overflow-wrap:normal!important;word-break:normal!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px!important}
.xa-link>span:not(.xa-ico){min-width:0}
/* 7 · "supplies" connector on phones sits between the nodes */
@media (max-width:1023px){ .mm-link{height:72px!important} .mm-link::after{bottom:auto!important;top:50%!important;transform:translate(-50%,-50%) rotate(90deg)!important} .mm-link span{display:none} }
/* 8 · component strip: even rows on tablets */
@media (min-width:601px) and (max-width:1023px){ .detail-strip{display:flex!important;flex-wrap:wrap;justify-content:center;gap:12px!important} .detail-strip figure{flex:0 1 calc(33.333% - 8px)} }
/* 9 · photo + content pairs stack full-width on tablets; resources align to the photo */
@media (min-width:601px) and (max-width:1023px){ .res-photo,.photo-panel.iso-photo,.boundary figure,.mfg-campus{width:100%!important;max-width:none!important;justify-self:stretch} :is(.res-split,.iso-block,.boundary-grid,.mfg-intro)>figure{grid-column:1/-1} }
@media (min-width:901px){ .res-actions{align-content:stretch} .res-act{height:100%} .res-photo{min-height:260px} }
.mfg-profile .mp-credit{margin-top:4px!important}
.mfg-profile{justify-content:center}
/* 10 · the timeline line stops at the last node */
.timeline::before{right:calc(20% - 4px)!important}
.tl-wrap--4 .timeline::before{right:calc(25% - 4px)!important}
@media (max-width:1023px){ .timeline::before,.tl-wrap--4 .timeline::before{right:auto!important} }
/* 11 · chain cards: titles share a two-line box so everything below aligns */
@media (min-width:1041px){ .handoff-link h3{min-height:2.4em} }
/* 12 · every card corner is rounded */
.detail-strip figure,.psi-flow li,.res-row{border-radius:var(--r-card)!important}
/* 13 · pathway tabs on tablets scroll in one line */
@media (min-width:601px) and (max-width:1023px){ nav.pw-tabs{flex-wrap:nowrap!important;overflow-x:auto;width:100%!important;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)} nav.pw-tabs a{flex:none;white-space:nowrap} nav.pw-tabs::-webkit-scrollbar{display:none} }
/* 14 · home manufacturer figures in three columns on phones too */
@media (max-width:600px){ .proof-nums{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important} .proof-nums b{font-size:22px!important} .proof-nums span{font-size:11.5px!important} }
/* 15 · clinical focus: the x-ray sits clear of the breadcrumb, edges fully dissolved */
@media (min-width:1024px){ .phero-photo--xray{top:36px!important}
  .phero-photo--xray{-webkit-mask-image:radial-gradient(ellipse 46% 50% at 58% 46%,#000 45%,rgba(0,0,0,.5) 68%,transparent 92%)!important;mask-image:radial-gradient(ellipse 46% 50% at 58% 46%,#000 45%,rgba(0,0,0,.5) 68%,transparent 92%)!important} }
:is(.res-photo,.photo-band--stage,.mfg-campus)::after{background:linear-gradient(0deg,rgba(9,4,28,.97) 0%,rgba(9,4,28,.82) 34%,rgba(9,4,28,0) 66%)!important}
:is(.res-photo,.photo-band--stage,.mfg-campus) figcaption span{color:#fff!important;text-shadow:0 1px 10px rgba(0,0,0,.9)}
@media (max-width:1023px){ nav.pw-tabs:not(.is-overflow){-webkit-mask-image:none!important;mask-image:none!important} nav.pw-tabs.is-scrolled-end{-webkit-mask-image:none!important;mask-image:none!important} }
@media (max-width:1023px){ nav.pw-tabs.is-overflow:not(.is-scrolled-end){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 22px),rgba(0,0,0,.55))!important;mask-image:linear-gradient(90deg,#000 calc(100% - 22px),rgba(0,0,0,.55))!important} }
.res-photo figcaption{padding-bottom:22px}
.res-photo::after{background:linear-gradient(0deg,rgba(9,4,28,.98) 0%,rgba(9,4,28,.88) 40%,rgba(9,4,28,0) 72%)!important}
nav.pw-tabs{background:rgba(6,12,24,.94)!important}
@media (max-width:1023px){ nav.pw-tabs{-webkit-mask-image:none!important;mask-image:none!important} }
.res-photo figcaption span{font-weight:600}
.res-photo figcaption{background:linear-gradient(0deg,rgba(9,4,28,.9),rgba(9,4,28,.6) 70%,transparent);margin:0!important;left:0!important;right:0!important;bottom:0!important;padding:40px 22px 22px!important}
@media (min-width:601px) and (max-width:1023px){ nav.pw-tabs{justify-content:space-between} nav.pw-tabs a{padding:9px 10px!important;font-size:13.5px!important} }
@media (max-width:600px){
  nav.pw-tabs.is-scrolled:not(.is-scrolled-end){-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30px,#000 calc(100% - 30px),transparent)!important;mask-image:linear-gradient(90deg,transparent 0,#000 30px,#000 calc(100% - 30px),transparent)!important}
  nav.pw-tabs.is-scrolled.is-scrolled-end{-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30px)!important;mask-image:linear-gradient(90deg,transparent 0,#000 30px)!important}
  nav.pw-tabs.is-overflow:not(.is-scrolled){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent)!important;mask-image:linear-gradient(90deg,#000 calc(100% - 30px),transparent)!important}
}

/* ======================= v88 · one system ======================= */

/* ---------- rounding: four values, nothing else ----------
   24px  panels and photographs (the big surfaces)
   18px  cards, and anything that sits on its own in a section
   12px  anything inside a card or panel: buttons, fields, tiles, tabs, inner boxes
   pill  tags and chips */
:root{--r-panel:24px;--r-card:18px;--r-inner:12px;--r-tile:12px}
:is(.phero-card,.hero .wrap>div:first-child,.director-card,.sahpra-panel,.xform,.xf-aside,.tl-wrap,.mfg-profile,.lt-box,.ld-end,.hcp-entry-card,.urgent-card,
  .photo-band,.photo-panel,.cine-tile,.made-link,.mfg-panel,.pfo-stage,.kits,.acc-panel,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo,.res-photo,.mfg-campus,.band--photo .band-photo){border-radius:var(--r-panel)!important}
body :is(.photo-band,.photo-panel,.cine-tile,.made-link) img{border-radius:inherit}
:is(.standard-card,.handoff-link,.role-card,.session-card,.pfo-item,.reg-card,.iso-card,.card-grid-item,.value,.ab-points li,.dtype,.fmt-strip li,.prodcard,.mm-node,.gt-node,
  .relay-phase li,.res-act,.route-card,.xa-link,.dc-act,.related a,.res-row,.sd-row,.psi-flow li,.psi-phases li,.portal-list li,.detail-strip figure,.cf-stage,.proof-rows,.portal-chip,
  .tenet,.pillar,.bounds>div,.escalate,.growth,.note,.sidecard),body .path-hub a,body .grid>div,body .supply-grid>div{border-radius:var(--r-card)!important}
:is(.btn,.ss-go,.uc-call,.hec-check,.xf-check,.xf-warn,.ld-banner,.rc-owns,nav.pw-tabs a,.hero-points li,.dc-facts>div,.mp-stats>div,.story-beats li,.phero-jump a,
  .xform input:not([type=radio]):not([type=checkbox]),.xform select,.xform textarea,input:not([type=radio]):not([type=checkbox]),select,textarea,.form-status,.hec-go,.dt-go,
  .sg-ico,.he-ico,.hp-ico,.rl-ico,.pfo-ico,.rc-ico,.ss-ico,.gi-ico,.xf-ico,.xa-ico,.dc-ai,.pfo-ci,.uc-ico,.uc-ci,.rc-ico,.ph-icon,.handoff-icon,.handoff-mark,.reg-icon,.sc-mark--icon,.tl-ico){border-radius:var(--r-inner)!important}
nav.pw-tabs{border-radius:var(--r-card)!important}
:is(.rc-stage,.sc-stage,.handoff-for li,.chip span,.relay-who,.hec-badge,.dc-badge,.iso-status,.ph-tag.is-pill,.ld-chip,.st-steps em,.handoff-us-tag){border-radius:999px!important}
.rc-stage{padding:3px 11px 3px 4px!important}.rc-stage i{border-radius:50%!important}

/* ---------- one hover language ----------
   Every card: it lifts 2px, the fill takes its colour, the border brightens and the
   light is drawn inside. No coloured outer shadows anywhere. Panels stay still.
   Photographs brighten. Touch devices get the same state as a card passes the
   middle of the screen or is tapped. */
:is(.standard-card,.handoff-link,.role-card,.session-card,.pfo-item,a.reg-card,.iso-card,.card-grid-item,.value,.ab-points li,.dtype,.fmt-strip li,.prodcard,.mm-node,.gt-node,
  .res-act,.route-card,.xa-link,.dc-act,.related a,.res-row,.sd-row,.psi-flow li,.psi-phases li,.portal-list li,.detail-strip figure,.proof-rows,.tenet,.pillar,.bounds>div,
  .hero-points li,.dc-facts>div,.mp-stats>div,.story-beats li,.relay-phase li),body .path-hub a,body .grid>div,body .supply-grid>div{
  transition:transform .55s cubic-bezier(.22,.61,.24,1),box-shadow .55s,background-color .55s,border-color .55s!important}
@media (hover:hover) and (pointer:fine){
  :is(.standard-card,.handoff-link,.role-card,.session-card,.pfo-item,a.reg-card,.iso-card,.card-grid-item,.value,.ab-points li,.dtype,.fmt-strip li,.prodcard,.mm-node,.gt-node,
    .res-act,.route-card,.xa-link,.dc-act,.related a,.res-row,.sd-row,.psi-flow li,.psi-phases li,.portal-list li,.detail-strip figure,.proof-rows,.tenet,.pillar,.bounds>div,
    .hero-points li,.dc-facts>div,.mp-stats>div,.story-beats li,.relay-phase li):hover,
  body .path-hub a:hover,body .grid>div:hover,body .supply-grid>div:hover{
    transform:translateY(-2px)!important;
    background-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 13%,rgba(10,8,30,.5))!important;
    border-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 55%,transparent)!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 26%,transparent),
      inset 0 0 60px -14px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 42%,transparent),
      inset 0 1px 0 rgba(255,255,255,.14)!important}
  body .handoff-link.is-us:hover{background-color:rgba(142,51,251,.2)!important;box-shadow:inset 0 0 0 1px rgba(210,150,255,.45),inset 0 0 70px -10px rgba(170,70,255,.55),inset 0 1px 0 rgba(255,255,255,.18)!important}
  :is(.photo-band,.photo-panel,.cine-tile,.made-link,.about-split-photo,.portal-photo,.res-photo,.mfg-campus):hover{transform:translateY(-2px)!important;box-shadow:inset 0 0 0 1px rgba(190,180,255,.4)!important}
}
:is(.standard-card,.handoff-link,.role-card,.session-card,.pfo-item,a.reg-card,.iso-card,.card-grid-item,.value,.ab-points li,.dtype,.fmt-strip li,.prodcard,.mm-node,.gt-node,
  .res-act,.route-card,.xa-link,.dc-act,.related a,.res-row,.sd-row,.psi-flow li,.psi-phases li,.portal-list li,.detail-strip figure,.proof-rows,.tenet,.pillar,.bounds>div,
  .hero-points li,.dc-facts>div,.mp-stats>div,.relay-phase li):is(.in-view,.is-pressed),body .path-hub a:is(.in-view,.is-pressed),body .grid>div:is(.in-view,.is-pressed),body .supply-grid>div:is(.in-view,.is-pressed){
  background-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 12%,rgba(10,8,30,.5))!important;
  border-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 50%,transparent)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 24%,transparent),inset 0 0 56px -14px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 40%,transparent)!important}
/* panels never move */
:is(.phero-card,.hero .wrap>div:first-child,.director-card,.sahpra-panel,.xform,.xf-aside,.tl-wrap,.mfg-profile,.lt-box,.hcp-entry-card,.urgent-card,.pfo-stage):hover{transform:none!important}
.sahpra-panel:hover{border-color:inherit}
/* headings inside cards stay white on hover */
body :is(.standard-card,.handoff-link,.card-grid-item,.gt-node,.tenet,.pillar,.prodcard,.iso-card,.reg-card):hover h3{color:#fff!important}

/* ---------- buttons: one shape, and a line that runs around the edge on hover ---------- */
@property --snake{syntax:'<angle>';inherits:false;initial-value:0deg}
.btn{border-radius:var(--r-inner)!important}
.btn::after{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:0;transition:opacity .45s;
  background:conic-gradient(from var(--snake),transparent 0deg,transparent 220deg,rgba(185,194,255,.25) 260deg,#dfe3ff 318deg,#fff 340deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0)}
@keyframes snake{to{--snake:360deg}}
@media (hover:hover) and (pointer:fine){ .btn:hover::after{opacity:1;animation:snake 2.2s linear infinite} }
.btn:focus-visible::after{opacity:1;animation:snake 2.2s linear infinite}
@media (prefers-reduced-motion:reduce){ .btn:hover::after,.btn:focus-visible::after{animation:none;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(185,194,255,.3))} }
.btn>.edge-light{display:none!important}

/* ---------- home hero card: deeper colour, stronger contrast ---------- */
@media (min-width:601px){
  .hero .wrap>div:first-child{
    background:radial-gradient(120% 80% at 0% 0%,rgba(59,70,245,.34),transparent 55%),
      radial-gradient(90% 70% at 100% 100%,rgba(142,51,251,.3),transparent 60%),
      linear-gradient(160deg,rgba(18,12,64,.86),rgba(12,6,34,.9))!important;
    border:1px solid!important;border-color:rgba(150,160,255,.55) rgba(190,150,255,.28) rgba(240,121,95,.24) rgba(120,130,255,.34)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 90px -40px rgba(90,100,255,.6),0 60px 120px -60px rgba(4,0,20,1),0 0 140px -50px rgba(59,70,245,.7)!important}
}
@media (max-width:600px){ .hero .wrap>div:first-child{background:linear-gradient(160deg,rgba(24,16,78,.92),rgba(12,6,34,.94))!important} }
.hero-h1 .hl-quiet{color:#d0c8f4!important}
.hero-points li{background:rgba(10,6,34,.55)!important;border:1px solid rgba(160,165,255,.2)!important}
.hero-points li span:not(.hp-ico){color:#e3dcf8}

/* ---------- page headers: more room, the image fades lower ---------- */
@media (min-width:1024px){
  main section.phero{min-height:clamp(600px,70vh,720px)!important}
  .phero .wrap,.phero>.wrap{padding-top:clamp(52px,5vw,72px)!important;padding-bottom:clamp(96px,9vw,130px)!important}
  body.area-pro .phero .wrap{padding-top:clamp(36px,3.4vw,48px)!important}
  .phero-fade{height:min(34%,240px)!important;background:linear-gradient(180deg,rgba(10,5,32,0) 0%,rgba(10,5,32,.6) 55%,#0a0520 100%)!important}
  .phero .phero-photo:not(.phero-photo--xray){width:min(64%,960px)!important}
}
@media (min-width:1024px) and (max-height:820px){ main section.phero{min-height:0!important} .phero .wrap,.phero>.wrap{padding-top:36px!important} }

/* the page index under the card: small glass tabs, filled in the brand gradient on hover */
.phero-jump{border-top:0!important;padding:0!important;margin-top:clamp(24px,2.6vw,32px)!important;gap:8px!important}
.phero-jump .pj-label{margin-right:8px!important}
.phero-jump a{position:relative;isolation:isolate;overflow:hidden;padding:8px 14px 8px 10px!important;
  background:rgba(12,8,36,.62)!important;background-image:none!important;border:1px solid rgba(190,195,255,.22)!important;-webkit-backdrop-filter:blur(14px)!important;backdrop-filter:blur(14px)!important;
  transition:color .4s,border-color .4s!important}
.phero-jump a::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;opacity:0;transition:opacity .45s;background:linear-gradient(100deg,#3b46f5,#5b3df2 45%,#8e33fb)}
body.area-pro .phero-jump a{border-color:rgba(120,230,220,.26)!important}
body.area-pro .phero-jump a::before{background:linear-gradient(100deg,#0f766e,#1d4ed8 60%,#5b3df2)}
@media (hover:hover) and (pointer:fine){ .phero-jump a:hover{border-color:transparent!important;color:#fff!important} .phero-jump a:hover::before{opacity:1} .phero-jump a:hover :is(.pj-n,.pj-ico svg){color:#fff!important;stroke:#fff!important} }
.phero-jump a.is-pressed::before{opacity:1}
@media (max-width:600px){ .phero-jump{gap:8px!important} .phero-jump a{min-height:42px} }

/* ---------- about: story lines in sentence case ---------- */
.story-lines dt{font-family:var(--display)!important;font-size:17px!important;letter-spacing:-.01em!important;text-transform:none!important;font-weight:600!important;padding-top:1px!important;color:#b8c0ff!important}
.story-lines>div:nth-child(2) dt{color:#cdb2ff!important}.story-lines>div:nth-child(3) dt{color:#f6b49c!important}
.story-lines>div{grid-template-columns:190px minmax(0,1fr)!important;align-items:baseline}

/* ---------- professional pathways: preparation uses the standard card ---------- */
.prep-cards{margin-top:8px}
body.area-pro .prep-card .sc-stage{color:#dffbf7!important}

/* ---------- controlled resources: a photo and two compact links ---------- */
.res-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;align-items:center!important}
.res-photo{min-height:0!important;aspect-ratio:16/10}
.res-photo::after{background:none!important}
.res-actions{align-content:center!important;gap:12px!important}
.res-act{height:auto!important;padding:14px 14px 14px 12px!important;grid-template-columns:44px minmax(0,1fr) 32px!important}
.res-act .gi-ico{width:44px!important;height:44px!important;margin:0!important}
@media (max-width:900px){ .res-photo{aspect-ratio:16/9} }

/* ---------- manufacturing: who does what ---------- */
.mfg-map{margin-top:clamp(36px,4vw,56px)!important}
.mm-row{grid-template-columns:minmax(0,2fr) 116px minmax(0,1fr)!important;align-items:stretch!important;margin-top:34px}
.mm-group{position:relative;padding:0!important;border:0!important;background:none!important;border-radius:0!important}
.mm-group::before{content:"";position:absolute;left:2px;right:2px;top:-16px;height:10px;border:1px solid rgba(160,170,255,.4);border-bottom:0;border-radius:10px 10px 0 0}
.mm-glabel{top:-26px!important;left:50%!important;transform:translateX(-50%);padding:0 12px!important;background:#0e0726!important;color:#bfc6ff!important;white-space:nowrap}
.mm-nodes{gap:16px!important}
.mm-node{padding:24px 22px 20px!important}
.mm-node h3{font-size:19px!important;min-height:2.6em}
.mm-node--us{box-shadow:none!important}
.mm-link{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.mm-link::before{left:10px!important;right:10px!important;top:50%!important;height:1px!important;background:linear-gradient(90deg,rgba(110,125,255,.5),rgba(190,140,255,.8))!important}
.mm-link::after{left:50%!important;right:auto!important;top:50%!important;transform:translate(-50%,-50%)!important}
.mm-link span{display:block!important;position:absolute;top:calc(50% - 38px);left:0;right:0;text-align:center;transform:none!important;padding:0!important;border:0!important;background:none!important;
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:#c9bff0}
@media (max-width:1023px){
  .mm-row{grid-template-columns:1fr!important;margin-top:30px}
  .mm-link{height:84px!important}
  .mm-link::before{left:50%!important;right:auto!important;top:8px!important;bottom:8px!important;width:1px!important;height:auto!important;transform:translateX(-50%)!important;background:linear-gradient(180deg,rgba(110,125,255,.5),rgba(190,140,255,.8))!important}
  .mm-link::after{transform:translate(-50%,-50%) rotate(90deg)!important}
  .mm-link span{top:50%;left:calc(50% + 26px);right:auto;transform:translateY(-50%)!important;text-align:left}
  .mm-node h3{min-height:0}
}
@media (max-width:600px){ .mm-group::before{display:none} .mm-glabel{position:static!important;transform:none!important;display:block;margin-bottom:12px;background:none!important;padding:0!important} .mm-row{margin-top:10px} }

/* ---------- manufacturing 02: the route responds too ---------- */
.journey li{transition:transform .55s cubic-bezier(.22,.61,.24,1)}
.jy-ico{transition:background .5s,border-color .5s,box-shadow .5s}
@media (hover:hover) and (pointer:fine){
  .journey li:hover{transform:translateY(-2px)}
  .journey li:hover .jy-ico{background:linear-gradient(160deg,color-mix(in srgb,var(--c) 45%,#140a32),#120830)!important;border-color:color-mix(in srgb,var(--c) 80%,#fff)!important;
    box-shadow:0 0 0 6px #0f0826,inset 0 0 18px -4px var(--c)!important}
  .journey li:hover b{color:color-mix(in srgb,var(--c) 30%,#fff)}
}
.journey li.in-view .jy-ico{border-color:color-mix(in srgb,var(--c) 80%,#fff)!important}
:is(.res-photo,.mfg-campus){max-width:none!important;width:100%!important}
.mfg-campus{aspect-ratio:auto!important;min-height:420px}
@media (max-width:1023px){ .mfg-campus{min-height:0;aspect-ratio:16/9!important} }
.mm-node h3{min-height:0!important}
.mm-node p{margin-bottom:8px!important}
body :is(.supply-grid>div,.grid>div,.path-hub a,.role-card,.session-card,.pfo-item,.mm-node,.value,.dtype,.fmt-strip li,.ab-points li):hover :is(h3,b){color:#fff!important}
@media (max-width:600px){ .story-lines>div{grid-template-columns:1fr!important;gap:2px!important} .story-lines dt{font-size:15.5px!important} }
:is(.mfg-campus,.made-link)::after{background:linear-gradient(0deg,rgba(9,4,28,.95) 0%,rgba(9,4,28,.72) 30%,rgba(9,4,28,0) 58%)!important;opacity:1!important}
:is(.mfg-campus,.made-link) figcaption span{color:#fff!important;text-shadow:0 1px 10px rgba(0,0,0,.9)}
@media (max-width:600px){
  .mfg-campus{aspect-ratio:4/3.4!important}
  :is(.mfg-campus,.made-link)::after{background:linear-gradient(0deg,rgba(9,4,28,.96) 0%,rgba(9,4,28,.8) 42%,rgba(9,4,28,0) 78%)!important}
}
.made-link figcaption span{color:#fff!important;font-weight:600}.made-link::after{background:linear-gradient(0deg,rgba(9,4,28,.97) 0%,rgba(9,4,28,.82) 40%,rgba(9,4,28,0) 70%)!important}

/* ---------- v88 · review fixes ---------- */
/* resources collapse on tablets and phones */
@media (max-width:900px){ .res-split{grid-template-columns:1fr!important} .res-actions{width:100%} }
/* the about manufacturing panel is a panel: it stays still */
body .mfg-panel,body .mfg-panel:hover{transform:none!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 40px 80px -50px rgba(8,0,28,1)!important}
.mfg-panel>.edge-light{display:none!important}
/* clinical focus header on tablets and phones: the x-ray sits above the card like every other page */
@media (max-width:1023px){
  .phero:has(.phero-photo--xray) .phero-photo{position:absolute!important;top:0!important;left:0!important;right:0!important;bottom:auto!important;width:100%!important;height:340px!important;opacity:1!important;
    -webkit-mask-image:radial-gradient(ellipse 60% 62% at 50% 46%,#000 50%,transparent 100%)!important;mask-image:radial-gradient(ellipse 60% 62% at 50% 46%,#000 50%,transparent 100%)!important}
  .phero:has(.phero-photo--xray) .phero-photo img{object-fit:contain!important;object-position:center 30%!important;width:100%;height:100%}
  .phero:has(.phero-photo--xray)>.wrap{padding-top:250px!important}
}
@media (max-width:600px){ .phero:has(.phero-photo--xray) .phero-photo{height:240px!important} .phero:has(.phero-photo--xray)>.wrap{padding-top:160px!important} }
/* component strip on tablets: 2 × 2 for four, 3 + 2 centred for five */
@media (min-width:601px) and (max-width:1023px){ .detail-strip:has(>figure:nth-child(4):last-child)>figure{flex-basis:calc(50% - 6px)!important} }
/* rounding stragglers */
body a.reg-card,body .reg-card{border-radius:var(--r-card)!important}
a.reg-card .reg-go,.ss-go,.dt-go{border-radius:var(--r-inner)!important}
body .sahpra-track,.mfg-panel img,.mfg-panel figure,.mfg-panel .photo-panel{border-radius:var(--r-inner)!important}
.proof-rows>*,.pf-ico,.dial-feature .shot,.mnav-btn{border-radius:var(--r-inner)!important}
:is(.sd-n,.rl-n,.sb-n,.ld-n,.sc-num,.handoff-num,.cg-num,.pc-code,.tl-num,.val-n,.verify,.mnav-num){border-radius:999px!important}
.sc-num,.handoff-link .handoff-num{padding:3px 9px!important}
:is(.xf-aside,.director-card,.lt-box,.mfg-profile) :is(.xa-link,.dc-act){border-radius:var(--r-inner)!important}
/* hover stragglers: clinical product stages, confirmation note, portal chip */
:is(.cf-stage,.pfo-confirm,.portal-chip){transition:transform .55s cubic-bezier(.22,.61,.24,1),box-shadow .55s,background-color .55s,border-color .55s!important}
@media (hover:hover) and (pointer:fine){
  :is(.cf-stage,.pfo-confirm,.portal-chip):hover{transform:translateY(-2px)!important;border-color:rgba(170,175,255,.5)!important;
    box-shadow:inset 0 0 0 1px rgba(150,160,255,.24),inset 0 0 60px -14px rgba(110,120,255,.42),inset 0 1px 0 rgba(255,255,255,.14)!important}
  .pfo-confirm:hover{border-color:rgba(95,224,210,.55)!important;box-shadow:inset 0 0 60px -14px rgba(47,212,196,.4)!important}
  .cf-stage:hover img{filter:brightness(1.08) drop-shadow(0 18px 28px rgba(0,0,0,.5))}
}
/* chain cards: "answerable for" starts at the same height in every card */
@media (min-width:1041px){ .handoff-for{min-height:140px} }
/* photographs always fill their frame */
.photo-panel>img,.photo-panel picture,.photo-panel picture img{display:block;width:100%;height:100%;object-fit:cover}
.made-photo{height:100%;margin:0}
.made-photo::after{background:linear-gradient(0deg,rgba(9,4,28,.96) 0%,rgba(9,4,28,.78) 34%,rgba(9,4,28,0) 64%)!important;opacity:1!important}
/* page index on phones: natural-width chips that wrap */
@media (max-width:600px){ .phero-jump{display:flex!important;flex-wrap:wrap} .phero-jump .pj-label{flex-basis:100%} .phero-jump a{white-space:nowrap;min-height:40px;font-size:13px!important} }

/* the unified hover, restated last so no older rule can add to it */
@media (hover:hover) and (pointer:fine){
  html body :is(.standard-card,.handoff-link,.role-card,.session-card,.pfo-item,a.reg-card,.iso-card,.card-grid-item,.value,.ab-points li,.dtype,.fmt-strip li,.prodcard,.mm-node,.gt-node,
    .res-act,.route-card,.xa-link,.dc-act,.related a,.res-row,.sd-row,.psi-flow li,.psi-phases li,.portal-list li,.detail-strip figure,.proof-rows,.tenet,.pillar,.bounds>div,
    .hero-points li,.dc-facts>div,.mp-stats>div,.story-beats li,.relay-phase li):hover,
  html body .path-hub a:hover,html body .grid>div:hover,html body .supply-grid>div:hover{
    transform:translateY(-2px)!important;
    background-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 13%,rgba(10,8,30,.5))!important;
    border-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 55%,transparent)!important;
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 26%,transparent),
      inset 0 0 60px -14px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 42%,transparent),
      inset 0 1px 0 rgba(255,255,255,.14)!important}
  html body .handoff-link.is-us:hover{background-color:rgba(142,51,251,.2)!important;box-shadow:inset 0 0 0 1px rgba(210,150,255,.45),inset 0 0 70px -10px rgba(170,70,255,.55),inset 0 1px 0 rgba(255,255,255,.18)!important}
  :is(.photo-band,.photo-panel,.cine-tile,.made-link,.about-split-photo,.portal-photo,.res-photo,.mfg-campus):hover{transform:translateY(-2px)!important;box-shadow:inset 0 0 0 1px rgba(190,180,255,.4)!important}
}
:is(.standard-card,.handoff-link,.role-card,.session-card,.pfo-item,a.reg-card,.iso-card,.card-grid-item,.value,.ab-points li,.dtype,.fmt-strip li,.prodcard,.mm-node,.gt-node,
  .res-act,.route-card,.xa-link,.dc-act,.related a,.res-row,.sd-row,.psi-flow li,.psi-phases li,.portal-list li,.detail-strip figure,.proof-rows,.tenet,.pillar,.bounds>div,
  .hero-points li,.dc-facts>div,.mp-stats>div,.relay-phase li):is(.in-view,.is-pressed),body .path-hub a:is(.in-view,.is-pressed),body .grid>div:is(.in-view,.is-pressed),body .supply-grid>div:is(.in-view,.is-pressed){
  background-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 12%,rgba(10,8,30,.5))!important;
  border-color:color-mix(in srgb,var(--c,var(--c1,var(--tile))) 50%,transparent)!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 24%,transparent),inset 0 0 56px -14px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 40%,transparent)!important}
@media (hover:hover) and (pointer:fine){
  html body :is(#audiences,#hcp-hub,main) .path-hub a:hover,html body #hcp-hub>a:hover{
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 26%,transparent),inset 0 0 60px -14px color-mix(in srgb,var(--c,var(--c1,var(--tile))) 42%,transparent),inset 0 1px 0 rgba(255,255,255,.14)!important}
}

/* ======================= v89 · the brand in the hero card ======================= */
.hero-card{position:relative;overflow:hidden}
.hero-card>*:not(.hero-watermark):not(.edge-light){position:relative;z-index:1}
/* the mark leads the card, with the company name beside it */
.hero-brand{display:flex;align-items:center;gap:14px;margin:0 0 26px;padding-bottom:20px;border-bottom:1px solid rgba(170,180,255,.16)}
.hero-mark{display:grid;place-items:center;width:48px;height:48px;flex:none;border-radius:var(--r-inner);
  background:linear-gradient(150deg,rgba(59,70,245,.34),rgba(142,51,251,.22));border:1px solid rgba(150,160,255,.45);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 10px 26px -12px rgba(59,70,245,.9)}
.hero-mark::before{content:"";width:28px;height:24px;
  background:linear-gradient(120deg,#9aa6ff 0%,#6f7dff 40%,#b47cff 100%);
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;mask:url("/assets/mark-mask.png") center/contain no-repeat}
.hb-text b{display:block;font-size:16px;font-weight:600;letter-spacing:-.005em;color:#fff;line-height:1.2}
.hb-text span{display:block;margin-top:3px;font-family:var(--mono);font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#c9c3f2}
/* a large mark etched into the glass, top right, clear of the text */
.hero-watermark{position:absolute;right:-70px;top:-40px;width:380px;height:330px;pointer-events:none;z-index:0;opacity:.11;
  background:linear-gradient(200deg,#8e97ff 0%,#6b4dfb 45%,rgba(142,51,251,0) 85%);
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;mask:url("/assets/mark-mask.png") center/contain no-repeat;
  transform:rotate(-8deg);transition:opacity .8s,transform 1.2s cubic-bezier(.22,.61,.24,1)}
@media (hover:hover) and (pointer:fine){ .hero-card:hover .hero-watermark{opacity:.16;transform:rotate(-6deg) translateY(4px)} }
@media (max-width:600px){
  .hero-brand{margin-bottom:20px;padding-bottom:16px;gap:12px}
  .hero-mark{width:42px;height:42px}.hero-mark::before{width:24px;height:21px}
  .hero-watermark{width:260px;height:226px;right:-60px;top:-30px;opacity:.09}
}
@media (min-width:1024px) and (max-height:820px){ .hero-brand{margin-bottom:18px;padding-bottom:14px} .hero-mark{width:42px;height:42px} }
.hero-watermark{display:block!important;position:absolute!important;opacity:.14}
@media (hover:hover) and (pointer:fine){ .hero-card:hover .hero-watermark{opacity:.2} }
/* keep the card within the first screen now it carries the brand row */
@media (min-width:1024px){
  .hero--photo h1.hero-h1{font-size:clamp(38px,3.8vw,56px)!important;margin-bottom:14px!important}
  .hero-brand{margin-bottom:22px;padding-bottom:18px}
  .hero-points li{padding:12px 14px!important}
  .hero-points li span:not(.hp-ico){font-size:13px;line-height:1.45}
  .hero-points{margin-bottom:22px!important}
}
@media (max-width:600px){ .hb-text span{font-size:9.5px;letter-spacing:.14em} }

/* ---------- hero card: the logo on the right, clear and prominent ---------- */
.hero-brand{justify-content:space-between;align-items:center;gap:20px}
.hero-mark{width:auto!important;height:auto!important;background:none!important;border:0!important;box-shadow:none!important;border-radius:0!important}
.hero-mark::before{width:84px!important;height:73px!important;display:block;
  background:linear-gradient(135deg,#aab4ff 0%,#5b68ff 38%,#3b46f5 60%,#8e33fb 100%)!important;
  filter:drop-shadow(0 6px 18px rgba(59,70,245,.55))}
.hb-text b{font-size:18px!important}
@media (min-width:1024px){
  .hero--photo h1.hero-h1{font-size:clamp(38px,3.8vw,56px)!important;margin-bottom:14px!important}
  .hero-brand{margin-bottom:22px!important;padding-bottom:18px!important}
  .hero-points{margin-bottom:22px!important}
}
@media (min-width:1024px) and (max-height:820px){ .hero-mark::before{width:64px!important;height:56px!important} }
@media (max-width:600px){ .hero-mark::before{width:58px!important;height:50px!important} .hb-text b{font-size:16px!important} .hb-text span{font-size:9.5px;letter-spacing:.14em} }
@media (min-width:1024px) and (max-height:820px){
  .hero-brand{margin-bottom:14px!important;padding-bottom:12px!important}
  .hero-mark::before{width:56px!important;height:49px!important}
  .hero--photo h1.hero-h1{font-size:clamp(34px,3.4vw,48px)!important}
}
@media (min-width:1024px) and (max-width:1100px){ .hero--photo h1.hero-h1{font-size:40px!important} .hero-points li span:not(.hp-ico){font-size:0;line-height:0} .hero-points li b{margin:0} }
@media (max-width:600px){ .hb-text span{white-space:nowrap;letter-spacing:.1em;font-size:9px} .hero-brand{gap:12px} }
@media (min-width:1024px) and (max-height:820px){
  html body .hero-points li{grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;padding:10px 12px!important}
  html body .hero-points li span:not(.hp-ico){font-size:0!important;line-height:0!important}
  html body .hero-points li b{font-size:13.5px!important;line-height:1.35!important;margin:0!important}
  html body .hero-points .hp-ico{width:34px!important;height:34px!important}
}

/* ---------- hero card: the brand lockup, top right ---------- */
.hero-brand{display:flex;justify-content:space-between;align-items:center;gap:20px}
.hero-lockup{display:block;height:46px;width:auto;flex:none;filter:drop-shadow(0 6px 20px rgba(59,70,245,.5))}
.hb-line{display:flex;align-items:center;gap:10px;margin:0;font-size:15px;line-height:1.4;color:#d9d3f6;letter-spacing:0;text-transform:none}
.hb-line b{font-weight:600;color:#fff}
.hb-dot{width:8px;height:8px;border-radius:50%;flex:none;background:linear-gradient(135deg,#6f7dff,#8e33fb);box-shadow:0 0 0 4px rgba(90,100,255,.18)}
@media (min-width:1024px) and (max-height:820px){
  .hero-lockup{height:38px}
  .hero-brand{margin-bottom:14px!important;padding-bottom:12px!important}
  html body .hero-points li{grid-template-columns:34px minmax(0,1fr)!important;align-items:center!important;padding:10px 12px!important}
  html body .hero-points li span:not(.hp-ico){font-size:0!important;line-height:0!important}
  html body .hero-points li b{font-size:13.5px!important;line-height:1.35!important;margin:0!important}
  html body .hero-points .hp-ico{width:34px!important;height:34px!important}
}
@media (max-width:600px){
  .hero-brand{flex-direction:column-reverse;align-items:flex-start;gap:12px}
  .hero-lockup{height:38px}
  .hb-line{font-size:14px}
}

/* ---------- header HCP button: fills white on hover ---------- */
@media (hover:hover) and (pointer:fine){
  html body .masthead .btn:hover{background:#fff!important;background-color:#fff!important;border-color:#fff!important;color:#1b2190!important;text-shadow:none!important;
    box-shadow:0 10px 30px -10px rgba(255,255,255,.55)!important}
  html body .masthead .btn:hover::before{opacity:0!important}
  html body .masthead .btn:hover :is(.btn-ico,.arw,.ar,svg){color:#1b2190!important;stroke:#1b2190!important}
  html body .masthead .btn:hover .ar{background:#1b2190!important}
  html body .masthead .btn:hover::after{background:conic-gradient(from var(--snake),transparent 0deg,transparent 220deg,rgba(59,70,245,.3) 260deg,#3b46f5 330deg,#8e33fb 350deg,transparent 360deg)!important}
}
.hb-line{display:block!important;position:relative;padding-left:18px;max-width:34ch}
.hb-dot{position:absolute;left:0;top:.5em}
.hb-line b{white-space:nowrap}
@media (hover:hover) and (pointer:fine){ html body .masthead .btn:hover,html body .masthead .btn:hover *{color:#1b2190!important;-webkit-text-fill-color:#1b2190!important;text-shadow:none!important} }

/* ---------- hero card v2: the mark as the card's anchor ---------- */
.hero-brand{border-bottom:0!important;padding-bottom:0!important;margin-bottom:18px!important}
.hb-line{font-size:14.5px!important;color:#cfc9f2!important}
/* the motif: a large brand mark on the right, beside the heading */
.hero-motif{position:absolute!important;z-index:0!important;right:clamp(28px,3vw,44px);top:clamp(30px,3vw,44px);width:150px;height:150px;display:grid;place-items:center;pointer-events:none}
.hero-motif::before{content:"";position:absolute;inset:-18px;border-radius:50%;
  background:radial-gradient(circle,rgba(79,91,255,.38) 0%,rgba(142,51,251,.16) 45%,transparent 70%)}
.hero-motif::after{content:"";position:absolute;inset:6px;border-radius:50%;border:1px solid rgba(160,170,255,.22);
  box-shadow:inset 0 0 40px -10px rgba(110,120,255,.5)}
.hero-motif i{position:relative;width:96px;height:83px;display:block;
  background:linear-gradient(140deg,#c3caff 0%,#7c88ff 30%,#3b46f5 58%,#8e33fb 100%);
  -webkit-mask:url("/assets/mark-mask.png") center/contain no-repeat;mask:url("/assets/mark-mask.png") center/contain no-repeat;
  filter:drop-shadow(0 8px 22px rgba(59,70,245,.6));transition:transform 1s cubic-bezier(.22,.61,.24,1)}
@media (hover:hover) and (pointer:fine){ .hero-card:hover .hero-motif i{transform:translateY(-3px) scale(1.03)} }
/* a heading with more presence */
.hero--photo h1.hero-h1{font-size:clamp(44px,4.5vw,66px)!important;line-height:1!important;letter-spacing:-.036em!important;font-weight:700!important;margin-bottom:20px!important}
.hero-h1 .hl-accent{background:linear-gradient(100deg,#9fb0ff 0%,#c79bff 45%,#f6a58e 100%)!important;-webkit-background-clip:text!important;background-clip:text!important}
.hero-h1 .hl-quiet{color:#b9b0e6!important;font-weight:600}
.hero-h1 .hl:first-child{padding-right:170px}
@media (min-width:1024px){ .hero--photo .wrap>div:first-child{max-width:720px!important} }
@media (min-width:1024px) and (max-height:820px){
  .hero-motif{width:118px;height:118px;top:26px}.hero-motif i{width:74px;height:64px}
  .hero--photo h1.hero-h1{font-size:clamp(38px,3.8vw,54px)!important;margin-bottom:14px!important}
  .hero-h1 .hl:first-child{padding-right:130px}
}
@media (max-width:600px){
  .hero-motif{width:84px;height:84px;right:16px;top:16px}.hero-motif i{width:52px;height:45px}
  .hero-motif::before{inset:-10px}
  .hero-brand{padding-right:84px}
  .hero--photo h1.hero-h1{font-size:clamp(36px,10vw,44px)!important}
  .hero-h1 .hl:first-child{padding-right:0}
}
.hero-h1 .hl:first-child{padding-right:0!important}
.hero--photo h1.hero-h1{font-size:clamp(42px,4vw,58px)!important}
.hero-motif{width:132px;height:132px}.hero-motif i{width:84px;height:73px}
@media (min-width:1024px) and (max-height:820px){ .hero--photo h1.hero-h1{font-size:clamp(38px,3.7vw,52px)!important} }
@media (max-width:600px){ .hero-motif{width:66px!important;height:66px!important;top:14px!important;right:14px!important} .hero-motif i{width:40px!important;height:35px!important} .hero-motif::before{inset:-6px} .hero-brand{padding-right:70px} .hero--photo h1.hero-h1{font-size:clamp(34px,9.6vw,42px)!important} }

/* ---------- hero motif, refined: optically centred mark in a glass disc ---------- */
.hero-motif{width:140px!important;height:140px!important;border-radius:50%}
.hero-motif::before{inset:-26px!important;background:radial-gradient(circle,rgba(79,91,255,.34) 0%,rgba(142,51,251,.14) 48%,transparent 72%)!important}
.hero-motif::after{inset:0!important;border:0!important;border-radius:50%;padding:1.5px;
  background:conic-gradient(from 210deg,rgba(170,180,255,.85),rgba(59,70,245,.5) 25%,rgba(142,51,251,.7) 55%,rgba(240,121,95,.45) 75%,rgba(170,180,255,.85))!important;
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);box-shadow:none!important}
.hero-motif i{position:absolute!important;inset:0;width:auto!important;height:auto!important;border-radius:50%;
  background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.1),transparent 55%),linear-gradient(160deg,rgba(40,44,140,.55),rgba(20,10,52,.75))!important;
  -webkit-mask:none!important;mask:none!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -20px 40px -20px rgba(142,51,251,.45);filter:none!important}
.hero-motif i::after{content:"";position:absolute;inset:0;
  background:linear-gradient(150deg,#d4d9ff 0%,#8e97ff 28%,#4a55ff 55%,#9b45fb 100%);
  -webkit-mask:url("/assets/mark-centred.png") center/78% no-repeat;mask:url("/assets/mark-centred.png") center/78% no-repeat;
  filter:drop-shadow(0 6px 16px rgba(59,70,245,.55))}
@media (min-width:1024px) and (max-height:820px){ .hero-motif{width:112px!important;height:112px!important} }
@media (max-width:600px){ .hero-motif{width:66px!important;height:66px!important} .hero-motif::before{inset:-10px!important} }
@media (min-width:1024px){ .hero-motif{width:124px!important;height:124px!important;top:32px!important;right:36px!important} }
@media (min-width:1024px) and (max-height:820px){ .hero-motif{width:108px!important;height:108px!important;top:26px!important} }

/* ======================= v91 ======================= */
/* ---------- support 04: rows get real inner padding, so the hover shape breathes ---------- */
@media (min-width:1100px){
  html body .relay-phase li{padding:20px 44px 20px 18px!important;column-gap:16px!important;border-radius:var(--r-card)!important;margin:0 -18px!important}
  html body .relay-phase li .rl-n{top:22px!important;right:18px!important}
  .relay-phase header{padding-left:0!important}
}

/* ---------- home hero card: more air ---------- */
@media (min-width:1024px){
  html body .hero--photo .wrap>div:first-child{padding:clamp(40px,3.4vw,52px) clamp(40px,3.4vw,52px) clamp(36px,3vw,46px)!important}
  .hero-brand{margin-bottom:26px!important}
  html body .hero--photo h1.hero-h1{margin-bottom:22px!important}
  html body .hero--photo .lede{margin-bottom:26px!important;max-width:30ch}
  html body .hero-points{gap:14px!important;margin-bottom:30px!important}
  html body .hero-points li{padding:16px 16px 18px!important}
  .hero--photo .actions{gap:14px}
  .hero-motif{top:40px!important;right:44px!important}
}
@media (min-width:1024px) and (max-height:820px){
  html body .hero--photo .wrap>div:first-child{padding:30px 38px 30px!important}
  .hero-brand{margin-bottom:16px!important}
  html body .hero--photo .lede{margin-bottom:18px!important;max-width:none}
  html body .hero-points{margin-bottom:22px!important;gap:12px!important}
  html body .hero-points li{padding:10px 12px!important}
  .hero-motif{top:30px!important;right:36px!important}
}
@media (max-width:600px){ html body .hero--photo .wrap>div:first-child{padding:26px 22px!important} .hero-brand{margin-bottom:20px!important} }

/* ---------- hero motif hover: the disc stays put; the ring turns, the glow blooms, the mark rises ---------- */
@property --ring{syntax:'<angle>';inherits:false;initial-value:210deg}
.hero-card:hover .hero-motif i{transform:none!important}
.hero-motif::after{background:conic-gradient(from var(--ring),rgba(170,180,255,.85),rgba(59,70,245,.5) 25%,rgba(142,51,251,.7) 55%,rgba(240,121,95,.45) 75%,rgba(170,180,255,.85))!important;transition:--ring 1.6s cubic-bezier(.22,.61,.24,1),opacity .6s}
.hero-motif::before{transition:opacity .7s,transform .9s cubic-bezier(.22,.61,.24,1)}
.hero-motif i{transition:box-shadow .7s!important}
.hero-motif i::after{transition:transform .9s cubic-bezier(.22,.61,.24,1),filter .7s}
@media (hover:hover) and (pointer:fine){
  .hero-card:hover .hero-motif::after{--ring:390deg}
  .hero-card:hover .hero-motif::before{transform:scale(1.12);opacity:1}
  .hero-card:hover .hero-motif i{box-shadow:inset 0 1px 0 rgba(255,255,255,.24),inset 0 -24px 44px -18px rgba(142,51,251,.65),inset 0 0 30px -8px rgba(110,125,255,.55)!important}
  .hero-card:hover .hero-motif i::after{transform:translateY(-3px) scale(1.05);filter:drop-shadow(0 10px 22px rgba(90,100,255,.8)) brightness(1.12)}
}
@media (prefers-reduced-motion:reduce){ .hero-motif::after,.hero-motif i::after,.hero-motif::before{transition:none!important} }
@media (min-width:1100px){
  html body .relay-phase li{border:1px solid transparent!important}
  html body .relay-phase li:last-child{border-bottom-color:transparent!important}
  .relay-phase li:not(:first-child)::before{content:"";position:absolute;left:18px;right:18px;top:-1px;height:1px;background:rgba(255,255,255,.09);pointer-events:none;transition:opacity .4s}
  .relay-phase li:hover::before,.relay-phase li:hover+li::before{opacity:0}
  html body .relay-phase li:hover{border-color:color-mix(in srgb,var(--c) 50%,transparent)!important}
}
@media (min-width:1024px){ html body .hero--photo .lede{max-width:none!important} html body .hero-points li{padding:14px 14px 16px!important} html body .hero-points{margin-bottom:26px!important} }

/* ---------- hero badge: always gently alive ---------- */
@keyframes ringTurn{from{--ring:210deg}to{--ring:570deg}}
@keyframes glowBreathe{0%,100%{opacity:.75;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}}
@keyframes markFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
@keyframes markShine{0%,100%{filter:drop-shadow(0 6px 16px rgba(59,70,245,.5)) brightness(1)}50%{filter:drop-shadow(0 10px 24px rgba(110,100,255,.85)) brightness(1.14)}}
.hero-motif::after{animation:ringTurn 14s linear infinite}
.hero-motif::before{animation:glowBreathe 5.5s ease-in-out infinite}
.hero-motif i::after{animation:markFloat 5.5s ease-in-out infinite,markShine 5.5s ease-in-out infinite}
@media (hover:hover) and (pointer:fine){
  .hero-card:hover .hero-motif::after{animation-duration:5s}
  .hero-card:hover .hero-motif i::after{transform:none}
}
@media (prefers-reduced-motion:reduce){ .hero-motif::after,.hero-motif::before,.hero-motif i::after{animation:none!important} }

/* ---------- hero inner tiles: softer corners ---------- */
html body .hero .hero-points li{border-radius:var(--r-card)!important}
html body .hero .hero-points .hp-ico{border-radius:14px!important}
@media (max-width:600px){ html body .hero .hero-points li{border-radius:16px!important} }

/* ---------- hero card: solid behind the words, clearer toward the photo ---------- */
@media (min-width:1024px){
  html body .hero--photo .wrap>div:first-child{
    background:
      radial-gradient(120% 80% at 0% 0%,rgba(59,70,245,.30),transparent 55%),
      radial-gradient(70% 60% at 100% 100%,rgba(142,51,251,.18),transparent 65%),
      linear-gradient(90deg,rgba(16,10,56,.9) 0%,rgba(14,8,46,.86) 48%,rgba(14,8,46,.58) 78%,rgba(14,8,46,.34) 100%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.35)!important;backdrop-filter:blur(18px) saturate(1.35)!important}
  html body .hero .hero-points li{background:rgba(10,6,34,.62)!important;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
}

/* ---------- breathing room between the header and the hero card ---------- */
@media (min-width:1024px){ html body .hero.hero--photo{padding-top:clamp(48px,4.4vw,64px)!important} }
@media (min-width:1024px) and (max-height:820px){
  html body .hero.hero--photo{padding-top:46px!important}
  html body .hero--photo .wrap>div:first-child{padding:26px 36px 26px!important}
  html body .hero--photo h1.hero-h1{font-size:clamp(34px,3.3vw,46px)!important;margin-bottom:12px!important}
  html body .hero--photo .lede{margin-bottom:14px!important}
  html body .hero-points{margin-bottom:18px!important}
  .hero-motif{width:100px!important;height:100px!important;top:24px!important}
}
@media (min-width:601px) and (max-width:1023px){ html body .hero.hero--photo{padding-top:290px!important} }
@media (min-width:1024px) and (min-height:821px){ html body .hero.hero--photo{padding-top:clamp(48px,3.5vw,56px)!important} }

/* ---------- page header cards: the same graduated glass as the home hero ---------- */
@media (min-width:1024px){
  html body .phero-card{
    background:
      radial-gradient(120% 90% at 0% 0%,rgba(59,70,245,.26),transparent 55%),
      radial-gradient(70% 60% at 100% 100%,rgba(142,51,251,.14),transparent 65%),
      linear-gradient(90deg,rgba(16,10,56,.88) 0%,rgba(14,8,46,.84) 55%,rgba(14,8,46,.62) 82%,rgba(14,8,46,.44) 100%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.35)!important;backdrop-filter:blur(18px) saturate(1.35)!important}
  html body.area-pro .phero-card{
    background:
      radial-gradient(120% 90% at 0% 0%,rgba(47,212,196,.16),transparent 55%),
      radial-gradient(70% 60% at 100% 100%,rgba(59,70,245,.16),transparent 65%),
      linear-gradient(90deg,rgba(10,14,48,.9) 0%,rgba(10,12,42,.85) 55%,rgba(10,12,42,.62) 82%,rgba(10,12,42,.44) 100%)!important}
}

/* ---------- graduated glass on every card that sits over a photograph ----------
   Solid behind the words on the left, clearer toward the right where the photo
   shows through, frosted throughout so text always holds. */
@media (min-width:1024px){
  html body .phero-card{
    background:
      radial-gradient(110% 80% at 0% 0%,rgba(59,70,245,.24),transparent 55%),
      linear-gradient(90deg,rgba(16,10,48,.86) 0%,rgba(14,8,42,.8) 50%,rgba(14,8,42,.52) 80%,rgba(14,8,42,.3) 100%)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.35)!important;backdrop-filter:blur(18px) saturate(1.35)!important}
  html body.area-pro .phero-card{
    background:
      radial-gradient(110% 80% at 0% 0%,rgba(47,212,196,.14),transparent 55%),
      linear-gradient(90deg,rgba(10,14,44,.88) 0%,rgba(10,12,40,.8) 50%,rgba(10,12,40,.52) 80%,rgba(10,12,40,.3) 100%)!important}
}
@media (max-width:1023px){
  html body .phero-card{
    background:linear-gradient(90deg,rgba(16,10,48,.88) 0%,rgba(14,8,42,.8) 60%,rgba(14,8,42,.6) 100%)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.3)!important;backdrop-filter:blur(16px) saturate(1.3)!important}
  html body .hero .wrap>div:first-child{
    background:linear-gradient(90deg,rgba(18,12,60,.9) 0%,rgba(14,8,44,.82) 60%,rgba(14,8,44,.62) 100%)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.3)!important;backdrop-filter:blur(16px) saturate(1.3)!important}
}
html body .portal-chip{
  background:linear-gradient(90deg,rgba(14,8,42,.88) 0%,rgba(14,8,42,.74) 55%,rgba(14,8,42,.45) 100%)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.35)!important;backdrop-filter:blur(16px) saturate(1.35)!important}

/* ---------- breadcrumb bar: the same graduated glass — full colour on the left, clearer to the right ---------- */
html body .crumbs{background:rgba(12,7,34,.35)!important;background-image:none!important;animation:none!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.35);backdrop-filter:blur(16px) saturate(1.35)}
html body .crumbs::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(90deg,#1c2270 0%,#24208a 7%,#321b8a 14%,#431784 21%,#521a70 28%,#5c1c5e 34%,#5e2248 40%,#5a2c38 46%,#4e3230 51%,#3b3140 56%,#1f3a52 62%,#17405e 67%,#183a74 73%,#1c3182 80%,#20288a 87%,#1c2270 100%);
  background-size:200vw 100%;background-repeat:repeat-x;animation:crumbsFlow 26s linear infinite;
  -webkit-mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.9) 45%,rgba(0,0,0,.55) 78%,rgba(0,0,0,.35) 100%);
  mask-image:linear-gradient(90deg,#000 0%,rgba(0,0,0,.9) 45%,rgba(0,0,0,.55) 78%,rgba(0,0,0,.35) 100%)}
@media (prefers-reduced-motion:reduce){ html body .crumbs::after{animation:none} }
html body.area-pro .crumbs::after{top:0!important;bottom:0!important;height:auto!important;z-index:-1!important}
html body.area-pro .crumbs{border-bottom:2px solid transparent!important;border-image:linear-gradient(90deg,#2fd4c4,#3b46f5 55%,#8e33fb) 1!important}
html body.area-pro .crumbs::after{
  background:linear-gradient(90deg,#0f3a4a 0%,#123f5a 10%,#1c2f7a 22%,#2a2090 34%,#3a1a86 46%,#1f3a6e 58%,#124a5e 70%,#1a3380 84%,#0f3a4a 100%)!important;
  background-size:200vw 100%!important;background-repeat:repeat-x!important;animation:crumbsFlow 26s linear infinite!important}

/* ======================= v93 ======================= */
/* ---------- chain of responsibility: resting shadows a touch softer ---------- */
html body .handoff-link:not(.is-us):not(:hover){box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 18%,transparent),0 26px 52px -38px color-mix(in srgb,var(--c) 55%,transparent),0 0 70px -44px color-mix(in srgb,var(--c) 32%,transparent)!important}
html body .handoff-link.is-us:not(:hover){box-shadow:0 0 0 1px rgba(201,60,255,.26),0 30px 56px -34px rgba(142,51,251,.7),0 0 100px -40px rgba(59,70,245,.36)!important}

/* ---------- hero badge: no movement, a slow breath of brand colour inside the disc ---------- */
@keyframes badgeBreathe{
  0%,100%{background-position:30% 30%;box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 0 26px -10px rgba(59,70,245,.55)}
  50%{background-position:70% 70%;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 44px -6px rgba(142,51,251,.75)}}
@keyframes markGlow{0%,100%{filter:drop-shadow(0 4px 12px rgba(59,70,245,.45))}50%{filter:drop-shadow(0 4px 18px rgba(142,51,251,.7))}}
html body .hero-motif::after{animation:none!important}
html body .hero-motif::before{animation:none!important;transform:none!important;opacity:.85!important}
html body .hero-motif i{
  background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.1),transparent 50%),
    radial-gradient(circle,rgba(59,70,245,.55) 0%,rgba(142,51,251,.45) 38%,rgba(20,10,52,.85) 75%)!important;
  background-size:100% 100%,180% 180%!important;background-repeat:no-repeat!important;
  animation:badgeBreathe 6s ease-in-out infinite!important;transition:none!important}
html body .hero-motif i::after{animation:markGlow 6s ease-in-out infinite!important;transform:none!important;transition:none!important}
@media (hover:hover) and (pointer:fine){
  html body .hero-card:hover .hero-motif::before{transform:none!important}
  html body .hero-card:hover .hero-motif i::after{transform:none!important}
  html body .hero-card:hover .hero-motif::after{--ring:210deg}
}
@media (prefers-reduced-motion:reduce){ html body .hero-motif i,html body .hero-motif i::after{animation:none!important} }
/* main-site header cards: a clearer, softer right edge */
@media (min-width:1024px){
  html body:not(.area-pro) .phero-card{
    background:
      radial-gradient(110% 80% at 0% 0%,rgba(59,70,245,.22),transparent 55%),
      linear-gradient(90deg,rgba(16,10,48,.86) 0%,rgba(14,8,42,.8) 42%,rgba(14,8,42,.6) 62%,rgba(14,8,42,.34) 82%,rgba(14,8,42,.16) 100%)!important;
    border-right-color:rgba(190,195,255,.12)!important}
}

/* ---------- page-header cards: clearer on the right, blended into the photo ---------- */
@media (min-width:1024px){
  html body .phero-card{
    background:
      radial-gradient(110% 80% at 0% 0%,rgba(59,70,245,.2),transparent 55%),
      linear-gradient(90deg,rgba(16,10,48,.84) 0%,rgba(14,8,42,.74) 42%,rgba(14,8,42,.4) 72%,rgba(14,8,42,.14) 100%)!important;
    -webkit-backdrop-filter:blur(12px) saturate(1.4)!important;backdrop-filter:blur(12px) saturate(1.4)!important}
  html body.area-pro .phero-card{
    background:
      radial-gradient(110% 80% at 0% 0%,rgba(47,212,196,.12),transparent 55%),
      linear-gradient(90deg,rgba(10,14,44,.86) 0%,rgba(10,12,40,.74) 42%,rgba(10,12,40,.4) 72%,rgba(10,12,40,.14) 100%)!important}
  html body .phero-card>*{text-shadow:0 1px 14px rgba(8,4,28,.55)}
}

/* ======================= v95 ======================= */
/* ---------- about: the logo mark replaces the initials ---------- */
.dc-avatar--mark{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.12),transparent 55%),linear-gradient(160deg,rgba(40,44,140,.7),rgba(20,10,52,.9))!important;
  box-shadow:0 0 0 1.5px rgba(150,160,255,.5),0 8px 22px -10px rgba(59,70,245,.8)!important;font-size:0!important}
.dc-avatar--mark i{display:block;width:62%;height:62%;
  background:linear-gradient(150deg,#d4d9ff 0%,#8e97ff 30%,#4a55ff 58%,#9b45fb 100%);
  -webkit-mask:url("/assets/mark-centred.png") center/100% no-repeat;mask:url("/assets/mark-centred.png") center/100% no-repeat}

/* ---------- about 01: the team stands behind our values ---------- */
.values-intro{position:relative;min-height:clamp(300px,30vw,420px);display:flex;align-items:flex-end;margin-bottom:clamp(-60px,-4vw,-30px)}
.values-intro .sec-head{position:relative;z-index:1;max-width:620px;margin-bottom:clamp(60px,6vw,90px)}
.values-team{position:absolute;right:-2%;bottom:-40px;width:min(52%,640px);margin:0;pointer-events:none;z-index:0}
.values-team img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,#000 22%,#000 90%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,#000 22%,#000 90%,transparent 100%);
  filter:saturate(1.05) drop-shadow(0 0 60px rgba(59,70,245,.25))}
.values-team::before{content:"";position:absolute;inset:10% 5% 20% 15%;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,rgba(79,91,255,.28),rgba(142,51,251,.12) 55%,transparent)}
.values{position:relative;z-index:2}
@media (max-width:900px){
  .values-intro{display:block;min-height:0;margin-bottom:0}
  .values-team{position:relative;right:auto;bottom:auto;width:100%;max-width:520px;margin:0 auto -60px}
  .values-intro .sec-head{margin-bottom:28px}
}

/* ---------- softer glows where they were strongest ---------- */
body .director-card.dc{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 44px 80px -52px rgba(8,0,28,.9),0 0 100px -40px rgba(59,70,245,.4),50px 36px 120px -70px rgba(201,60,255,.28)!important}
body .sahpra-panel{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 36px 70px -52px rgba(8,0,28,.9),0 0 120px -60px rgba(59,70,245,.45)!important}
.pfo-stage{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 36px 70px -52px rgba(8,0,28,.9),0 0 100px -50px rgba(47,212,196,.36)!important}
.xform{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 44px 90px -60px rgba(8,0,28,.9),-40px 30px 120px -70px rgba(59,70,245,.42),60px 60px 140px -80px rgba(201,60,255,.24)!important}
.tl-wrap{box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 36px 70px -52px rgba(8,0,28,.85),0 0 120px -70px rgba(59,70,245,.45)!important}
.mfg-profile{box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 36px 70px -52px rgba(8,0,28,.9),0 0 80px -46px rgba(59,70,245,.4)!important}
.urgent-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 90px -50px rgba(255,122,107,.4)!important}
.value{box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 26px 60px -48px color-mix(in srgb,var(--c) 60%,transparent)!important}
.hcp-entry-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 44px 90px -54px rgba(8,0,28,.95),0 0 60px -34px rgba(47,212,196,.32)!important}
@media (min-width:601px){ html body .hero .wrap>div:first-child{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),inset 0 0 80px -44px rgba(90,100,255,.5),0 54px 110px -64px rgba(4,0,20,.95),0 0 110px -54px rgba(59,70,245,.5)!important} }
/* the mark next to Dewald's name: larger in its badge */
.dc-avatar--mark i{width:78%!important;height:78%!important}

/* ======================= v97 · crisp, readable logo badges ======================= */
/* vector mark (not the bitmap), bright white-to-lilac on a deep disc, with a fine dark edge so it reads at any size */
html body .hero-motif i::after,html body .dc-avatar--mark i{
  background:linear-gradient(160deg,#ffffff 0%,#e8ebff 38%,#b9c1ff 72%,#d3b8ff 100%)!important;
  -webkit-mask:url("/assets/mark-centred.svg") center/100% no-repeat!important;mask:url("/assets/mark-centred.svg") center/100% no-repeat!important;
  filter:drop-shadow(0 0 1px rgba(12,8,50,.9)) drop-shadow(0 3px 10px rgba(59,70,245,.65))!important}
html body .hero-motif i::after{-webkit-mask-size:74%!important;mask-size:74%!important}
@keyframes markGlow{0%,100%{filter:drop-shadow(0 0 1px rgba(12,8,50,.9)) drop-shadow(0 3px 10px rgba(59,70,245,.55))}50%{filter:drop-shadow(0 0 1px rgba(12,8,50,.9)) drop-shadow(0 4px 16px rgba(142,51,251,.75))}}
html body .hero-motif i{background:
    radial-gradient(circle at 35% 28%,rgba(255,255,255,.08),transparent 50%),
    radial-gradient(circle,rgba(24,20,90,.95) 0%,rgba(59,70,245,.5) 55%,rgba(142,51,251,.45) 80%,rgba(20,10,52,.9) 100%)!important;
  background-size:100% 100%,160% 160%!important}
.dc-avatar--mark{background:radial-gradient(circle,#1a1760 0%,#2a2a9a 60%,#4a2a9a 100%)!important}
html body .dc-avatar--mark i{width:74%!important;height:74%!important}

/* ======================= v98 · badge refinement + inverse on hover ======================= */
/* refined resting state: a crisp inner hairline and a soft top highlight */
.hero-motif{pointer-events:auto!important;cursor:default}
html body .hero-motif i,.dc-avatar--mark{transition:background .6s cubic-bezier(.22,.61,.24,1),box-shadow .6s!important}
html body .hero-motif i{box-shadow:inset 0 0 0 1px rgba(200,205,255,.22),inset 0 1px 0 rgba(255,255,255,.2),inset 0 -18px 36px -18px rgba(142,51,251,.55)!important}
.dc-avatar--mark{box-shadow:0 0 0 1.5px rgba(160,170,255,.55),inset 0 0 0 1px rgba(255,255,255,.12),0 6px 18px -8px rgba(59,70,245,.8)!important}
html body .hero-motif i::after,html body .dc-avatar--mark i{transition:background .6s,filter .6s!important}
/* inverse: the disc turns white and the mark takes the brand blue */
@media (hover:hover) and (pointer:fine){
  html body :is(.hero-motif:hover,.hero-card:hover .hero-motif) i{animation:none!important;
    background:radial-gradient(circle at 35% 28%,#ffffff 0%,#f1f2ff 55%,#dfe2ff 100%)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.9),0 0 34px -4px rgba(120,130,255,.75)!important}
  html body :is(.hero-motif:hover,.hero-card:hover .hero-motif) i::after{animation:none!important;
    background:linear-gradient(150deg,#5b68ff 0%,#3b46f5 45%,#2a2fd0 75%,#6b3cf0 100%)!important;
    filter:drop-shadow(0 2px 6px rgba(59,70,245,.35))!important}
  html body :is(.dc-avatar--mark:hover,.story-sign:hover .dc-avatar--mark,.dc-person:hover .dc-avatar--mark){
    background:radial-gradient(circle at 35% 28%,#ffffff 0%,#f1f2ff 55%,#dfe2ff 100%)!important;
    box-shadow:0 0 0 1.5px rgba(255,255,255,.9),0 0 22px -2px rgba(120,130,255,.8)!important}
  html body :is(.dc-avatar--mark:hover,.story-sign:hover .dc-avatar--mark,.dc-person:hover .dc-avatar--mark) i{
    background:linear-gradient(150deg,#5b68ff 0%,#3b46f5 45%,#2a2fd0 75%,#6b3cf0 100%)!important;filter:none!important}
}
.dc-avatar--mark.is-pressed,.hero-motif.is-pressed i{background:#f1f2ff!important}

/* ======================= v99 · home hero card, redesigned ======================= */
/* the badge is gone; the mark lives in the glass itself, large and quiet */
.hero-bgmark{position:absolute;z-index:0;pointer-events:none;right:-7%;bottom:-12%;width:min(78%,560px);aspect-ratio:1/1;
  background:linear-gradient(155deg,rgba(142,151,255,.9) 0%,rgba(59,70,245,.85) 45%,rgba(142,51,251,.8) 100%);
  -webkit-mask:url("/assets/mark-centred.svg") center/contain no-repeat;mask:url("/assets/mark-centred.svg") center/contain no-repeat;
  opacity:.075;transform:rotate(-6deg);transition:opacity 1s,transform 1.4s cubic-bezier(.22,.61,.24,1)}
.hero-bgmark::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(255,255,255,.35))}
@media (hover:hover) and (pointer:fine){ .hero-card:hover .hero-bgmark{opacity:.11;transform:rotate(-4deg) scale(1.02)} }
@media (max-width:600px){ .hero-bgmark{width:88%;right:-22%;bottom:-6%;opacity:.07} }
/* opening line becomes a quiet glass tag */
.hero-brand{margin-bottom:24px!important;padding:0!important;border:0!important}
.hb-line{display:inline-flex!important;align-items:center;gap:10px;padding:8px 16px 8px 12px!important;max-width:none!important;border-radius:999px;
  background:rgba(255,255,255,.05);border:1px solid rgba(170,180,255,.22);font-size:14px!important;line-height:1.3!important;color:#dcd6f7!important}
.hb-line .hb-dot{position:static!important;flex:none}
.hb-line b{margin-left:-4px}
/* heading spans the full card now there is no badge */
html body .hero--photo h1.hero-h1{font-size:clamp(44px,4.4vw,64px)!important;max-width:14ch}
@media (min-width:1024px) and (max-height:820px){ html body .hero--photo h1.hero-h1{font-size:clamp(36px,3.5vw,50px)!important} .hero-brand{margin-bottom:16px!important} }
@media (max-width:600px){ html body .hero--photo h1.hero-h1{font-size:clamp(34px,9.6vw,42px)!important} .hb-line{font-size:13px!important;padding:7px 12px 7px 10px!important} .hero-brand{padding-right:0!important} }
html body .hero-card>.hero-bgmark{position:absolute!important;z-index:0!important;opacity:.12}
@media (hover:hover) and (pointer:fine){ html body .hero-card:hover>.hero-bgmark{opacity:.17} }
html body .hero--photo h1.hero-h1{max-width:none!important}
.hb-line{display:inline-block!important;padding-left:30px!important;position:relative}
.hb-line .hb-dot{position:absolute!important;left:13px;top:50%;transform:translateY(-50%)}
.hb-line b{margin-left:0}
html body .hero-card>.hero-bgmark{top:14%;bottom:auto;right:-14%;width:min(72%,520px);opacity:.14}
@media (max-width:600px){ html body .hero-card>.hero-bgmark{top:auto;bottom:-4%;right:-26%;width:90%;opacity:.1} }

/* ---------- hero background mark: fine linework over a whisper of fill ---------- */
html body .hero-card>svg.hero-bgmark{background:none!important;-webkit-mask:none!important;mask:none!important;opacity:1!important;
  position:absolute!important;z-index:0!important;top:8%;right:-16%;bottom:auto;width:min(76%,540px);height:auto;aspect-ratio:1/1;transform:rotate(-8deg);overflow:visible;
  transition:transform 1.4s cubic-bezier(.22,.61,.24,1)}
html body .hero-card>svg.hero-bgmark::after{content:none}
.hbm-fill{fill:url(#hbmFill);opacity:.07;transition:opacity 1s}
.hbm-line{fill:none;stroke:url(#hbmLine);stroke-width:.9;vector-effect:non-scaling-stroke;opacity:.38;stroke-dasharray:1400;stroke-dashoffset:0;transition:opacity 1s}
@keyframes hbmTrace{0%{stroke-dashoffset:1400;opacity:0}12%{opacity:.38}100%{stroke-dashoffset:0;opacity:.38}}
.hbm-line{animation:hbmTrace 3.2s cubic-bezier(.4,0,.2,1) .4s both}
@media (hover:hover) and (pointer:fine){
  html body .hero-card:hover>svg.hero-bgmark{transform:rotate(-6deg) scale(1.02)}
  .hero-card:hover .hbm-fill{opacity:.11}.hero-card:hover .hbm-line{opacity:.6}
}
@media (prefers-reduced-motion:reduce){ .hbm-line{animation:none} }
@media (max-width:600px){ html body .hero-card>svg.hero-bgmark{top:auto;bottom:-6%;right:-28%;width:92%} .hbm-line{opacity:.3} }
html body .hero-card>svg.hero-bgmark{right:-24%;top:10%}

/* ---------- hero background mark v2: whole, lit from within, with a slow travelling light ---------- */
html body .hero-card>svg.hero-bgmark{top:4%!important;right:-9%!important;width:min(62%,420px)!important;transform:rotate(-6deg)!important;
  -webkit-mask-image:linear-gradient(100deg,transparent 0%,rgba(0,0,0,.25) 22%,#000 55%);mask-image:linear-gradient(100deg,transparent 0%,rgba(0,0,0,.25) 22%,#000 55%)}
.hbm-glow{opacity:.55;transform-origin:135.7px 98.6px;animation:hbmBreathe 7s ease-in-out infinite}
@keyframes hbmBreathe{0%,100%{opacity:.45;transform:scale(.96)}50%{opacity:.7;transform:scale(1.04)}}
.hbm-echo{fill:none;stroke:#8e97ff;stroke-width:.6;vector-effect:non-scaling-stroke;opacity:.14}
.hbm-fill{opacity:.12!important}
.hbm-line{stroke-width:1.1!important;opacity:.55!important}
@keyframes hbmTrace{0%{stroke-dashoffset:1400;opacity:0}12%{opacity:.55}100%{stroke-dashoffset:0;opacity:.55}}
.hbm-sheen{fill:none;stroke:#fff;stroke-width:1.6;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-dasharray:60 940;opacity:.85;
  filter:drop-shadow(0 0 3px rgba(190,200,255,.9));animation:hbmSheen 9s linear 3.4s infinite both}
@keyframes hbmSheen{from{stroke-dashoffset:1000}to{stroke-dashoffset:0}}
@media (hover:hover) and (pointer:fine){ .hero-card:hover .hbm-line{opacity:.8!important} .hero-card:hover .hbm-fill{opacity:.18!important} }
@media (prefers-reduced-motion:reduce){ .hbm-glow,.hbm-sheen{animation:none} .hbm-sheen{display:none} }
@media (min-width:1024px) and (max-height:820px){ html body .hero-card>svg.hero-bgmark{width:min(50%,330px)!important;top:3%!important} }
@media (max-width:600px){ html body .hero-card>svg.hero-bgmark{top:auto!important;bottom:-4%;right:-14%!important;width:70%!important} }
@media (min-width:1300px) and (min-height:821px){ html body .hero-card>svg.hero-bgmark{right:-15%!important;top:2%!important;width:min(60%,400px)!important} }
@media (max-width:600px){ html body .hero-card>svg.hero-bgmark{top:-2%!important;bottom:auto!important;right:-30%!important;width:66%!important;opacity:.55!important} }

/* ---------- motif never competes with the words ---------- */
html body .hero-card>svg.hero-bgmark{
  -webkit-mask-image:linear-gradient(100deg,transparent 0%,transparent 26%,rgba(0,0,0,.2) 42%,rgba(0,0,0,.7) 60%,#000 78%)!important;
  mask-image:linear-gradient(100deg,transparent 0%,transparent 26%,rgba(0,0,0,.2) 42%,rgba(0,0,0,.7) 60%,#000 78%)!important}
html body .hero-card h1.hero-h1,html body .hero-card .lede{text-shadow:0 2px 18px rgba(10,5,40,.85),0 0 2px rgba(10,5,40,.6)}
html body .hero-card .hl-accent{filter:drop-shadow(0 2px 10px rgba(10,5,40,.9))!important}
html body .hero-card .hl-accent{text-shadow:none!important;filter:drop-shadow(0 2px 12px rgba(10,5,40,.95))!important}

/* ---------- v103 new photo bands ---------- */
:is(.photo-band--cssd-steriliser,.photo-band--theatre-room,.photo-band--team-culture,.photo-band--rep-in-action,.photo-band--nervous-system,.photo-band--cervical-compression){margin:0 0 clamp(26px,3vw,40px)}
.photo-band--team-culture{margin:clamp(28px,3.4vw,44px) 0 0}
.photo-band--team-culture img{object-position:50% 38%}
.photo-band--rep-in-action img{object-position:45% 32%}
.photo-band--cervical-compression img{object-position:40% 30%}
.photo-band--nervous-system img{object-position:50% 30%}
@media (min-width:1024px){ :is(.photo-band--cssd-steriliser,.photo-band--theatre-room,.photo-band--team-culture,.photo-band--rep-in-action,.photo-band--nervous-system,.photo-band--cervical-compression){aspect-ratio:21/8} }
.photo-band--team-culture figcaption b{font-size:clamp(17px,1.5vw,21px)!important;line-height:1.3!important;font-weight:600!important;max-width:34ch}
.photo-band--team-culture figcaption span{font-size:10px!important}

/* ======================= v104 · photo sweep ======================= */
/* anatomy bands keep the key subject in frame */
.photo-band--nervous-system img{object-position:50% 4%!important}
.photo-band--cervical-compression img{object-position:38% 8%!important}
/* team on phones: the whole team, less ceiling */
@media (max-width:600px){ .photo-band--team-culture{aspect-ratio:4/3!important} .photo-band--team-culture img{object-position:50% 60%!important} }
/* professional headers on tablets/phones: tabs and card sit below the faces */
@media (max-width:600px){
  html body.area-pro .phero:has(.phero-photo) .wrap{padding-top:176px!important}
  html body.area-pro .phero:has(.phero-photo) .phero-card{margin-top:0!important}
}
@media (min-width:601px) and (max-width:1023px){
  html body.area-pro .phero:has(.phero-photo) .wrap{padding-top:286px!important}
  html body.area-pro .phero:has(.phero-photo) .phero-card{margin-top:0!important}
}
/* resources photo on phones: taller frame, heads kept */
@media (max-width:900px){ .res-photo{aspect-ratio:4/3!important} .res-photo img{object-position:50% 22%!important} }
/* two port photos on manufacturing: more breathing room */
.photo-band--supply{margin-top:clamp(40px,5vw,72px)!important}
/* tall portrait panels on tablets stay in proportion */
@media (min-width:601px) and (max-width:1023px){ .photo-panel:not(.res-photo):not(.mfg-campus){max-height:560px;aspect-ratio:16/11!important} }

/* ======================= v105 · footer + mobile home ======================= */
/* ---------- footer links: clearer, calmer, with a line that draws in ---------- */
.foot-nav{gap:clamp(24px,4vw,56px)!important}
.fnav-col b{font-family:var(--mono);font-size:10.5px!important;letter-spacing:.2em!important;color:#aeb6ff!important;margin-bottom:14px!important;display:block}
.fnav-col a:not(.logo):not(.btn):not(.fc-line):not(.fc-alert){position:relative;display:inline-block;width:max-content;max-width:100%;padding:5px 0!important;font-size:14.5px!important;color:#d8d1f3!important;text-decoration:none;
  background-image:linear-gradient(90deg,#8e97ff,#c3a1ff)!important;background-repeat:no-repeat!important;background-position:0 100%!important;background-size:0 1px!important;
  transition:color .35s,background-size .45s cubic-bezier(.22,.61,.24,1)!important}
@media (hover:hover) and (pointer:fine){ .fnav-col a:not(.logo):not(.btn):not(.fc-line):not(.fc-alert):hover{color:#fff!important;background-size:100% 1px!important} }
.fnav-col{display:flex;flex-direction:column;align-items:flex-start}
.fc-line{display:grid!important;grid-template-columns:36px minmax(0,1fr);gap:12px;align-items:center;padding:8px 0!important;text-decoration:none;color:#fff!important;font-size:14.5px!important;background:none!important}
.fc-line small{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:#b3aade}
.fc-ico{display:grid;place-items:center;width:36px;height:36px;border-radius:var(--r-inner);background:rgba(59,70,245,.14);border:1px solid rgba(130,140,255,.35);transition:background .35s,border-color .35s}
.fc-ico svg{width:16px;height:16px;fill:none;stroke:#c7cdff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover) and (pointer:fine){ .fc-line:hover .fc-ico{background:linear-gradient(135deg,#3b46f5,#8e33fb);border-color:transparent} .fc-line:hover .fc-ico svg{stroke:#fff} }
.fc-btn{margin-top:12px;min-height:46px;font-size:14.5px!important}
.fc-alert{margin-top:12px;font-size:13px!important;color:#f6b49c!important;text-decoration:none;padding:4px 0!important}
.fc-alert:hover{color:#ffd6c8!important;text-decoration:underline}
.foot-legal{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0 0 18px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.07)}
.foot-legal a{font-size:13px;color:#bdb4e2;text-decoration:none;transition:color .3s}
.foot-legal a:hover{color:#fff}
.footer-bottom{flex-wrap:wrap}
.footer-legal{flex:1 1 520px}
.footer-legal p{font-size:12.5px!important;line-height:1.6!important;color:#a99fd4!important}
@media (max-width:900px){
  .foot-nav{display:grid!important;grid-template-columns:1fr 1fr!important;gap:30px 20px!important}
  .fnav-brand,.fnav-contact{grid-column:1/-1}
  .fnav-brand p{max-width:40ch}
}
@media (max-width:600px){
  footer .fnav-col a:not(.logo):not(.btn):not(.fc-line):not(.fc-alert){font-size:14px!important;padding:7px 0!important}
  .fnav-contact{padding:18px;border-radius:var(--r-card);background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08)}
  .fc-btn{width:100%;justify-content:center}
  .foot-legal{gap:8px 16px}
  .back-to-top{margin-top:8px}
}

/* ---------- mobile home: only what matters ---------- */
.m-only{display:none}
@media (max-width:600px){
  .m-only{display:block}
  body:has(#explore) :is(.facts,#pathways-band,#portal,#patient-specific-preview,#quality-preview,#made,#about-preview){display:none!important}
  .explore-list{display:grid;gap:10px}
  .explore-list .route-card{grid-template-columns:44px minmax(0,1fr) 30px!important}
  /* tighter rhythm between the sections that remain */
  body:has(#explore) main section+section:not(.band){padding-top:56px!important;padding-bottom:56px!important}
  #standard .photo-band{margin-bottom:22px}
}
html body .footer-bottom{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px 40px}
html body .foot-legal{grid-column:1/-1;margin:0!important;display:flex!important}
html body .foot-legal a{display:inline-block!important}
@media (max-width:600px){ html body .footer-bottom{grid-template-columns:1fr} html body .foot-legal{padding-bottom:16px} }
footer .fnav-col a.fc-btn,footer .fnav-col a.fc-btn .arw{color:#fff!important;opacity:1!important}

/* ======================= v106 ======================= */
/* ---------- home hero card: wider, so the whole card is on screen on arrival ---------- */
@media (min-width:1024px){
  html body .hero--photo .wrap>div:first-child{max-width:min(880px,70vw)!important}
  html body .hero--photo .lede{max-width:48ch!important}
  html body .hero.hero--photo{padding-top:clamp(36px,3vw,48px)!important}
}

/* ---------- support 04: three phase panels joined by the ownership track ---------- */
@media (min-width:1100px){
  html body .relay{gap:28px!important;margin-top:48px!important}
  html body .relay-track{gap:28px!important}
  html body .rt-node--1{left:calc(33.333% - 4.67px)!important}
  html body .rt-node--2{left:calc(66.666% + 4.67px)!important}
  html body .relay-phase{padding:26px 22px 14px!important;border-radius:var(--r-panel)!important;
    background:linear-gradient(180deg,color-mix(in srgb,var(--c) 16%,transparent),rgba(12,8,32,.34) 42%),rgba(10,8,30,.3)!important;
    border:1px solid color-mix(in srgb,var(--c) 30%,rgba(255,255,255,.08))!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.3)!important;backdrop-filter:blur(18px) saturate(1.3)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 60px -44px rgba(8,0,28,.9)!important}
  html body .relay-phase::before{content:""!important;position:absolute;left:24px;right:24px;top:0;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--c),transparent)}
  html body .relay-phase header{padding-bottom:10px!important}
  html body .relay-phase li{margin:0 -8px!important;padding:16px 40px 16px 10px!important;border-top:1px solid rgba(255,255,255,.08)!important;border-radius:var(--r-inner)!important}
  html body .relay-phase li:last-child{border-bottom:0!important}
  html body .relay-phase li .rl-n{right:12px!important}
}
.relay-note{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;align-items:start;margin-top:26px;padding:16px 18px;border-radius:var(--r-card);
  background:rgba(240,121,95,.07);border:1px solid rgba(246,180,156,.28);max-width:760px}
.rn-ico{display:grid;place-items:center;width:40px;height:40px;border-radius:var(--r-inner);background:rgba(240,121,95,.14);border:1px solid rgba(246,180,156,.4)}
.rn-ico svg{width:19px;height:19px;fill:none;stroke:#f6b49c;stroke-width:1.8;stroke-linecap:round}
.relay-note p{margin:0;font-size:14.5px;line-height:1.6;color:#e2dbf5}.relay-note b{color:#fff}

/* ---------- one photographic finish everywhere: same filter, same fade, lights up on hover ---------- */
html body :is(.photo-band,.photo-panel,.cine-tile,.made-photo,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo) img{
  filter:brightness(.9) contrast(1.07) saturate(1.06)!important;transition:filter .8s cubic-bezier(.22,.61,.24,1),transform 1.2s cubic-bezier(.22,.61,.24,1)!important}
html body :is(.photo-band,.photo-panel,.cine-tile,.made-photo,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo)::after{
  content:""!important;position:absolute;inset:0;z-index:1;pointer-events:none;opacity:1!important;border-radius:inherit;
  background:linear-gradient(0deg,rgba(9,4,28,.92) 0%,rgba(9,4,28,.6) 26%,rgba(9,4,28,.14) 56%,rgba(20,14,70,.18) 100%)!important;
  transition:background .8s,opacity .8s!important}
html body :is(.photo-band,.photo-panel,.cine-tile,.made-photo,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo) figcaption{z-index:2!important}
@media (hover:hover) and (pointer:fine){
  html body :is(.photo-band,.photo-panel,.cine-tile,.made-link,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo):hover img{
    filter:brightness(1.1) contrast(1.06) saturate(1.2)!important;transform:scale(1.02)}
  html body :is(.photo-band,.photo-panel,.cine-tile,.made-link .made-photo,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo):is(:hover)::after,
  html body .made-link:hover .made-photo::after{
    background:linear-gradient(0deg,rgba(9,4,28,.88) 0%,rgba(9,4,28,.5) 24%,rgba(9,4,28,0) 52%,rgba(20,14,70,0) 100%)!important}
}
@media (hover:none),(pointer:coarse){
  html body :is(.photo-band,.photo-panel,.cine-tile,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo).in-view img{filter:brightness(1.06) contrast(1.06) saturate(1.16)!important}
}
html body :is(.photo-band,.photo-panel,.cine-tile,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo){overflow:hidden}
@media (min-width:1024px){ html body .hero--photo>.wrap{grid-template-columns:minmax(0,880px) minmax(0,1fr)!important} }
@media (min-width:1024px) and (max-width:1279px){ html body .hero--photo>.wrap{grid-template-columns:minmax(0,1fr) 120px!important} }
@media (min-width:1100px){ html body .relay{margin-top:64px!important} }
@media (min-width:1024px){ html body .hero--photo>.wrap{grid-template-columns:minmax(0,780px) minmax(0,1fr)!important} html body .hero--photo .wrap>div:first-child{max-width:780px!important} }
@media (min-width:1024px) and (max-width:1279px){ html body .hero--photo>.wrap{grid-template-columns:minmax(0,1fr) 140px!important} }
html body :is(.photo-band,.photo-panel,.cine-tile,.made-photo,.res-photo,.mfg-campus,.about-split-photo,.portal-photo,.logistics-photo,.iso-photo) figcaption span{color:#fff!important;text-shadow:0 1px 10px rgba(0,0,0,.85)}

/* ======================= v107 · support 04 refined ======================= */
.relay-intro{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(18px,2.4vw,28px);align-items:stretch;margin-bottom:clamp(36px,4vw,56px)}
html body .relay-photo{margin:0!important;aspect-ratio:auto!important;min-height:340px;max-width:none!important;width:100%!important}
.relay-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.relay-side{display:flex;flex-direction:column;gap:14px}
.relay-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;flex:1}
.relay-stats>div{display:flex;flex-direction:column;justify-content:flex-end;padding:20px 18px;border-radius:var(--r-card);
  background:linear-gradient(170deg,rgba(59,70,245,.14),rgba(12,8,32,.3) 60%);border:1px solid rgba(150,160,255,.2)}
.relay-stats>div:nth-child(2){background:linear-gradient(170deg,rgba(240,121,95,.13),rgba(12,8,32,.3) 60%);border-color:rgba(246,180,156,.22)}
.relay-stats>div:nth-child(3){background:linear-gradient(170deg,rgba(142,51,251,.15),rgba(12,8,32,.3) 60%);border-color:rgba(195,161,255,.22)}
.relay-stats dt{font-family:var(--display);font-size:clamp(40px,4vw,56px);font-weight:600;line-height:1;margin-bottom:10px;
  background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.relay-stats dd{margin:0;font-size:13.5px;line-height:1.4;color:#d9d1f3}
html body .relay-side .relay-note{margin:0!important;max-width:none!important}

/* phases: equal columns, header with owner + range, footer with the handover */
@media (min-width:1100px){
  html body .relay{margin-top:0!important;gap:22px!important;align-items:stretch}
  html body .relay-phase{display:flex!important;flex-direction:column;padding:24px 22px 18px!important}
  html body .relay-phase header{display:flex!important;flex-direction:row!important;align-items:baseline!important;justify-content:space-between;flex-wrap:wrap;gap:6px 12px!important;padding:0 0 14px!important}
  html body .relay-phase .relay-who{display:none!important}
  html body .relay-when{font-size:24px!important}
  html body .relay-phase li{padding:14px 10px 14px 10px!important}
  html body .relay-phase li>div{padding-right:0!important}
  html body .relay-phase li .rl-n{position:static!important;display:inline-block;margin-bottom:2px;font-size:10.5px!important;order:-1}
  html body .relay-phase li{grid-template-columns:40px minmax(0,1fr)!important}
  html body .relay-phase ol{flex:1}
  /* connectors in the gaps */
  html body .relay-phase:not(:last-child)::after{content:"";position:absolute;right:-24px;top:30px;width:26px;height:26px;border-radius:50%;z-index:3;
    background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.4%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2012h12M13%207l5%205-5%205%22/%3E%3C/svg%3E") center/14px no-repeat,linear-gradient(135deg,#3b46f5,#8e33fb);
    box-shadow:0 0 0 4px #0d0724}
}
.relay-range{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 40%,#fff)}
.relay-phase li .rl-n{color:color-mix(in srgb,var(--c) 45%,#fff)!important}
.relay-foot{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:center;margin-top:14px;padding:12px 14px;border-radius:var(--r-inner);
  background:color-mix(in srgb,var(--c) 12%,rgba(255,255,255,.02));border:1px solid color-mix(in srgb,var(--c) 38%,transparent)}
.rf-ico{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:color-mix(in srgb,var(--c) 45%,#140a32)}
.rf-ico svg{width:16px;height:16px;fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.relay-foot small{display:block;font-family:var(--mono);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 40%,#fff)}
.relay-foot>span:last-child{font-size:14px;font-weight:500;color:#fff;line-height:1.35}
@media (max-width:1099px){ html body .relay-hand{display:none!important} .relay{gap:16px!important;display:grid!important} .relay-phase header{flex-direction:row!important;align-items:baseline!important;justify-content:space-between} }
@media (max-width:900px){ .relay-intro{grid-template-columns:1fr} html body .relay-photo{min-height:0;aspect-ratio:16/9!important} }
@media (max-width:600px){ .relay-stats{gap:8px} .relay-stats>div{padding:14px 12px} .relay-stats dt{font-size:34px} .relay-stats dd{font-size:12px} html body .relay-photo{aspect-ratio:4/3!important} }
@media (min-width:1100px){
  html body .relay-phase{align-items:stretch!important}
  html body .relay-phase ol{display:grid!important;grid-template-columns:1fr!important;width:100%;align-content:start}
  html body .relay-phase li{display:grid!important;width:auto!important;grid-template-columns:40px minmax(0,1fr)!important;grid-template-areas:"ico num" "ico body";column-gap:14px!important;row-gap:2px;align-items:start}
  html body .relay-phase li .rl-ico{grid-area:ico}
  html body .relay-phase li .rl-n{grid-area:num;order:0!important;margin:0!important}
  html body .relay-phase li>div{grid-area:body}
  html body .relay-foot{align-self:stretch}
}
.relay-stats{flex:0 0 auto!important}
.relay-side{justify-content:space-between}
.relay-stats>div{min-height:150px}
@media (min-width:901px){
  html body .relay-photo{min-height:0!important;aspect-ratio:16/10!important}
  .relay-side{display:grid!important;grid-template-rows:1fr auto;gap:14px}
  .relay-stats{height:100%}
  .relay-stats>div{min-height:0!important;justify-content:space-between!important}
  .relay-stats dd{min-height:2.8em}
}
@media (max-width:900px){ html body .relay-photo::after{background:linear-gradient(0deg,rgba(9,4,28,.96) 0%,rgba(9,4,28,.78) 38%,rgba(9,4,28,.2) 70%,rgba(20,14,70,.18) 100%)!important} }

/* ======================= v108 · support 04, further ======================= */
@media (min-width:1100px){
  /* owner shown on every panel */
  html body .relay-phase header{display:grid!important;grid-template-columns:1fr auto;grid-template-areas:"when range" "who who";row-gap:10px!important}
  html body .relay-phase .relay-when{grid-area:when}
  html body .relay-phase .relay-range{grid-area:range;align-self:center}
  html body .relay-phase .relay-who{display:inline-flex!important;grid-area:who;justify-self:start}
  /* steps read as a sequence: a rail joins the icons */
  html body .relay-phase ol{position:relative}
  html body .relay-phase ol::before{content:"";position:absolute;left:29px;top:36px;bottom:36px;width:2px;border-radius:2px;z-index:0;
    background:linear-gradient(180deg,color-mix(in srgb,var(--c) 70%,transparent),color-mix(in srgb,var(--c) 20%,transparent))}
  html body .relay-phase li .rl-ico{position:relative;z-index:1;background:linear-gradient(160deg,color-mix(in srgb,var(--c) 30%,#140a32),#120830)!important}
  /* full-width, even dividers */
  html body .relay-phase li{margin:0!important;border-top:0!important}
  html body .relay-phase li+li{box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
}
/* the record the hospital receives */
.relay-record{margin-top:auto;padding:16px;border-radius:var(--r-inner);background:rgba(255,255,255,.03);border:1px dashed color-mix(in srgb,var(--c) 45%,transparent)}
.rr-label{margin:0 0 10px;font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:color-mix(in srgb,var(--c) 40%,#fff)}
.relay-record ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.relay-record li{padding:9px 11px!important;border-radius:10px;background:color-mix(in srgb,var(--c) 12%,rgba(255,255,255,.02));border:1px solid color-mix(in srgb,var(--c) 30%,transparent)!important;box-shadow:none!important;transform:none!important;display:block!important}
.relay-record li b{display:block;font-size:13.5px;color:#fff}
.relay-record li span{display:block;font-size:12px;color:#cfc6ef}
.relay-record li::before,.relay-record li::after{content:none!important}
.relay-record li>.edge-light{display:none}
.relay-record+.relay-foot{margin-top:12px}
/* stat tiles: numbers and labels aligned */
@media (min-width:901px){ html body .relay-stats>div{justify-content:flex-start!important;gap:14px} html body .relay-stats dt{margin:0!important} html body .relay-stats dd{margin-top:auto!important;min-height:0!important} }
html body .relay-phase .relay-record li{display:block!important;grid-template-columns:none!important;grid-template-areas:none!important;margin:0!important;padding:10px 12px!important;border-radius:10px!important;
  background:color-mix(in srgb,var(--c) 14%,rgba(255,255,255,.03))!important;border:1px solid color-mix(in srgb,var(--c) 32%,transparent)!important;box-shadow:none!important}
html body .relay-phase .relay-record li:hover{transform:none!important}
html body .relay-phase .relay-record ul::before{content:none!important}
html body .relay-phase .relay-record li b{display:block;margin-bottom:2px}

/* ======================= v109 · support 04 stage panels ======================= */
@media (min-width:1100px){
  html body .relay-phase{padding:0!important;overflow:hidden;
    background:linear-gradient(180deg,rgba(12,8,32,.55),rgba(10,8,30,.4))!important;border:1px solid color-mix(in srgb,var(--c) 34%,rgba(255,255,255,.08))!important}
  html body .relay-phase::before{content:none!important}
  /* a coloured header band gives every stage its own identity */
  html body .relay-phase header{position:relative;padding:24px 24px 22px!important;margin:0!important;
    background:radial-gradient(120% 140% at 0% 0%,color-mix(in srgb,var(--c) 45%,transparent),transparent 60%),linear-gradient(135deg,color-mix(in srgb,var(--c) 26%,#120a32),#0f0828 80%);
    border-bottom:1px solid color-mix(in srgb,var(--c) 40%,transparent)}
  html body .relay-when{font-size:26px!important;position:relative;z-index:1}
  html body .relay-phase .relay-range,html body .relay-phase .relay-who{position:relative;z-index:1}
  html body .relay-phase .relay-who{background:rgba(10,6,30,.45)!important}
  .relay-idx{position:absolute;right:18px;bottom:-14px;font-family:var(--display);font-size:108px;font-weight:700;line-height:1;letter-spacing:-.05em;pointer-events:none;z-index:0;
    color:color-mix(in srgb,var(--c) 28%,transparent);-webkit-text-stroke:1px color-mix(in srgb,var(--c) 55%,transparent)}
  html body .relay-phase header{overflow:hidden}
  /* steps spread evenly down the panel */
  html body .relay-phase ol{display:flex!important;flex-direction:column;justify-content:space-around;flex:1;padding:10px 16px 6px!important;gap:0!important}
  html body .relay-phase ol::before{left:45px!important;top:44px!important;bottom:44px!important}
  html body .relay-phase li{padding:14px 12px!important;border-radius:var(--r-inner)!important;transition:background .4s,box-shadow .4s!important}
  html body .relay-phase li+li{box-shadow:none!important}
  html body .relay-phase li:hover{background:color-mix(in srgb,var(--c) 12%,rgba(255,255,255,.02))!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 35%,transparent)!important;transform:none!important}
  html body .relay-phase h3{font-size:17px!important}
  html body .relay-phase li p{font-size:14px!important;line-height:1.5!important}
  html body .relay-record{margin:4px 22px 0!important}
  html body .relay-foot{margin:14px 22px 22px!important}
  html body .relay-phase:not(:last-child)::after{top:44px!important}
}
/* the handover footer: a solid, confident strip */
.relay-foot{background:linear-gradient(100deg,color-mix(in srgb,var(--c) 30%,#140a32),color-mix(in srgb,var(--c) 12%,#0f0828))!important;border-color:color-mix(in srgb,var(--c) 55%,transparent)!important}
.rf-ico{background:var(--c)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--c) 22%,transparent)}
@media (max-width:1099px){ .relay-idx{display:none} }
@media (min-width:1100px){
  html body .relay-phase{overflow:visible!important}
  html body .relay-phase header{border-radius:var(--r-panel) var(--r-panel) 0 0}
  html body .relay-phase>.relay-idx{top:-6px!important;bottom:auto!important;right:20px!important;font-size:92px!important;z-index:0;opacity:.9}
  html body .relay-phase header>*{position:relative;z-index:1}
  html body .relay-phase .relay-range{margin-right:0}
  html body .relay-phase li{border-top:0!important}
  html body .relay-phase li+li::before{content:"";position:absolute;left:62px;right:12px;top:0;height:1px;background:rgba(255,255,255,.07)}
}
.relay-idx{display:none!important}
/* support 04 connectors: identical to the site's standard connector disc */
@media (min-width:1100px){
  html body .relay-phase:not(:last-child)::after{top:50%!important;transform:translateY(-50%)!important;
    background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2012h12M13%207l5%205-5%205%22/%3E%3C/svg%3E") center/14px no-repeat,linear-gradient(135deg,#3b46f5,#8e33fb)!important;
    box-shadow:0 0 0 4px #0f0826,0 4px 12px -5px rgba(90,70,255,.7)!important}
}

/* ===== v111 · Support model 04: connectors on top, inner step tiles ===== */
/* Connectors: wider gap, sit centred in it, painted above both panels */
@media (min-width:1100px){
  html body .relay{gap:44px!important}
  html body .relay>.relay-phase{position:relative}
  html body .relay>.relay-phase:nth-child(1){z-index:3}
  html body .relay>.relay-phase:nth-child(3){z-index:2}
  html body .relay>.relay-phase:nth-child(5){z-index:1}
  html body .relay-phase:not(:last-child)::after{right:-35px!important;z-index:10!important}
}
/* Steps: rail and dividers out, each step a quiet inner tile */
html body .relay-phase ol::before,
html body .relay-phase li+li::before{content:none!important;display:none!important}
html body .relay-phase ol{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;gap:10px!important}
html body .relay-phase li:not(.relay-record li){position:relative;padding:14px 16px!important;border-radius:var(--r-inner)!important;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,rgba(255,255,255,.03)),rgba(255,255,255,.012))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 20%,rgba(255,255,255,.05)),inset 0 1px 0 rgba(255,255,255,.05)!important;
  transition:background .35s ease,box-shadow .35s ease!important}
html body .relay-phase li:not(.relay-record li):hover{transform:none!important;
  background:color-mix(in srgb,var(--c) 13%,rgba(255,255,255,.02))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 55%,transparent),inset 0 0 40px -14px color-mix(in srgb,var(--c) 45%,transparent),inset 0 1px 0 rgba(255,255,255,.1)!important}
html body .relay-phase li .rl-ico{width:40px;height:40px;background:color-mix(in srgb,var(--c) 18%,#120a30)!important;
  border:1px solid color-mix(in srgb,var(--c) 38%,transparent)!important;box-shadow:none!important;transition:background .35s,border-color .35s}
html body .relay-phase li:not(.relay-record li):hover .rl-ico{background:color-mix(in srgb,var(--c) 32%,#120a30)!important;border-color:color-mix(in srgb,var(--c) 70%,transparent)!important}
/* Record: same tile language, solid hairline instead of dashed */
html body .relay-phase .relay-record{border:0!important;padding:16px!important;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c) 9%,rgba(255,255,255,.03)),rgba(255,255,255,.012))!important;
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 20%,rgba(255,255,255,.05)),inset 0 1px 0 rgba(255,255,255,.05)!important}
html body .relay-phase .relay-record li{background:rgba(10,6,30,.4)!important;border:1px solid color-mix(in srgb,var(--c) 22%,rgba(255,255,255,.04))!important;border-radius:10px!important;transition:border-color .35s,background .35s!important}
html body .relay-phase .relay-record li:hover{background:color-mix(in srgb,var(--c) 13%,rgba(10,6,30,.4))!important;border-color:color-mix(in srgb,var(--c) 55%,transparent)!important}
/* Foot sits at the bottom of every panel so the three line up */
html body .relay-phase .relay-foot{margin-top:auto!important}
html body .relay-phase .relay-record+.relay-foot{margin-top:14px!important}
@media (min-width:1100px){
  html body .relay-phase ol{flex:0 0 auto!important;padding:20px 20px 0!important}
  html body .relay-phase .relay-record{margin:10px 20px 0!important}
  html body .relay-phase .relay-foot{margin-left:20px!important;margin-right:20px!important;margin-bottom:20px!important}
  html body .relay-phase:not(:last-child) .relay-foot{margin-top:auto!important}
  html body .relay-phase ol+.relay-foot{margin-top:auto!important}
  html body .relay-phase>ol{margin-bottom:20px!important}
}
@media (min-width:1100px){
  html body .relay-phase ol{padding-top:0!important}
  html body .relay-phase>ol{margin-bottom:0!important}
  html body .relay-phase .relay-record{margin-top:0!important}
}
html body .relay-phase li p{text-wrap:pretty}
html body .relay-phase li p{text-wrap:wrap!important}
html body .relay-phase li:not(.relay-record li){display:grid!important;grid-template-columns:40px minmax(0,1fr)!important;grid-template-areas:"ico num" "ico body"!important;column-gap:14px!important;row-gap:2px!important;align-items:start!important}
html body .relay-phase li:not(.relay-record li) .rl-ico{grid-area:ico!important;margin:0!important}
html body .relay-phase li:not(.relay-record li) .rl-n{grid-area:num!important;position:static!important;margin:0!important;justify-self:start}
html body .relay-phase li:not(.relay-record li)>div{grid-area:body!important;padding:0!important}


/* ==========================================================================
   v112 · neuro, patient-specific and dural sealant pages
   Material cards, specification tables and a brochure-sheet stage.
   Built on the same glass card language as .pfo-item / .pfo-stage.
   ========================================================================== */
.mat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.mat-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.mat-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:clamp(20px,2.4vw,28px);border-radius:var(--r-panel,24px);
  background:linear-gradient(150deg,color-mix(in srgb,var(--c,#4f5bff) 16%,transparent),rgba(14,8,34,.66) 55%),rgba(10,8,30,.45);
  border:1px solid color-mix(in srgb,var(--c,#4f5bff) 32%,rgba(255,255,255,.08));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 30px 60px -40px rgba(8,0,28,.95);
  transition:transform .5s cubic-bezier(.22,.61,.24,1),border-color .4s,box-shadow .4s}
.mat-stage{position:relative;margin:0 0 4px;height:230px;display:grid;place-items:center;border-radius:18px;overflow:hidden;
  background:radial-gradient(60% 60% at 50% 46%,color-mix(in srgb,var(--c,#4f5bff) 26%,transparent),transparent 75%),rgba(8,6,26,.55);
  border:1px solid rgba(255,255,255,.07)}
.mat-stage img{display:block;max-height:206px;max-width:88%;width:auto;height:auto;object-fit:contain;
  filter:drop-shadow(0 18px 28px rgba(0,0,0,.55));transition:transform 1s cubic-bezier(.22,.61,.24,1),filter 1s}
.mat-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.mat-tag{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--c,#4f5bff) 45%,#fff)}
.mat-flag{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:999px;color:#fff;
  background:color-mix(in srgb,var(--c,#4f5bff) 38%,transparent);border:1px solid color-mix(in srgb,var(--c,#4f5bff) 70%,transparent)}
.mat-card h3{margin:0;font-family:var(--display);font-size:clamp(20px,1.8vw,24px);font-weight:600;line-height:1.2;color:#fff}
.mat-card>p{margin:0;font-size:16px;line-height:1.6;color:#d8d0f3}
.mat-list{list-style:none;margin:2px 0 0;padding:0;display:grid;gap:9px}
.mat-list li{position:relative;padding-left:18px;font-size:15.5px;line-height:1.5;color:#e6e0fa}
.mat-list li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--c,#4f5bff);box-shadow:0 0 10px var(--c,#4f5bff)}
.mat-list b{color:#fff;font-weight:600}
.mat-card .path-cta{margin-top:auto;padding-top:6px}
@media (hover:hover) and (pointer:fine){
  .mat-card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c,#4f5bff) 60%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 24px 48px -26px var(--c,#4f5bff)}
  .mat-card:hover .mat-stage img{transform:scale(1.04);filter:drop-shadow(0 22px 32px rgba(0,0,0,.55)) brightness(1.08)}
}
.mat-card.in-view,.mat-card:active{border-color:color-mix(in srgb,var(--c,#4f5bff) 60%,transparent)}
.mat-card.in-view .mat-stage img{filter:drop-shadow(0 22px 32px rgba(0,0,0,.55)) brightness(1.08)}
@media (max-width:1023px){ .mat-grid--3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:700px){ .mat-grid,.mat-grid--3{grid-template-columns:1fr} .mat-stage{height:200px} .mat-stage img{max-height:178px} }

/* specification tables */
.spec{margin-top:18px;border-radius:var(--r-panel,24px);overflow:hidden;border:1px solid rgba(170,185,255,.16);
  background:linear-gradient(160deg,rgba(59,70,245,.08),rgba(10,8,30,.55) 60%);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}
.spec table{width:100%;border-collapse:collapse;font-size:15.5px}
.spec caption{caption-side:top;text-align:left;padding:16px 20px;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#c9c0ee;border-bottom:1px solid rgba(255,255,255,.08)}
.spec th,.spec td{padding:13px 20px;text-align:left;vertical-align:top;border-bottom:1px solid rgba(255,255,255,.07);line-height:1.5}
.spec thead th{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#b3a9e0;background:rgba(255,255,255,.03)}
.spec tbody th{width:30%;font-weight:600;color:#fff}
.spec td{color:#ddd5f5}
.spec tr:last-child th,.spec tr:last-child td{border-bottom:0}
.spec-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.spec-pair .spec{margin-top:0}
@media (max-width:900px){ .spec-pair{grid-template-columns:1fr} }
@media (max-width:600px){
  .spec table,.spec tbody,.spec tr,.spec th,.spec td{display:block;width:100%}
  .spec thead{display:none}
  .spec tbody th{padding:14px 16px 2px;border-bottom:0}
  .spec td{padding:2px 16px 14px}
  .spec td+td{padding-top:0}
  .spec td[data-k]::before{content:attr(data-k) " \00B7  ";color:#b3a9e0;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase}
}

/* brochure sheet in a product stage (supplier artwork shown whole) */
.pfo-stage--sheet{padding:0;min-height:0;justify-content:flex-start;background:#eaf3f9}
.pfo-stage--sheet::before{content:none}
.pfo-stage--sheet img{width:100%;max-height:none;height:auto;filter:none}
.pfo-stage--sheet figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 16px 14px;background:linear-gradient(transparent,rgba(10,8,30,.88));color:#fff}
@media (hover:hover) and (pointer:fine){ .pfo-stage--sheet:hover img{transform:scale(1.02);filter:brightness(1.03)} }
@media (max-width:1023px){ .pfo-stage--sheet img{max-height:none} }

/* a wide product render (kit trays) needs a shorter, wider stage */
.pfo-stage--wide img{max-height:220px}
.sec-sub{margin:clamp(36px,5vw,56px) 0 18px;font-family:var(--display);font-size:clamp(22px,2.2vw,28px);font-weight:600;color:#fff}
/* v112 fixes: brochure caption sits below the artwork; step cards clear the block above; tables stack cleanly on phones */
.pfo-stage--sheet{gap:0}
.pfo-stage--sheet figcaption{position:relative;left:auto;right:auto;bottom:auto;width:100%;padding:14px 16px;background:rgba(10,8,30,.94)}
.pfo + .standard-cards{margin-top:clamp(20px,2.4vw,28px)!important}
@media (max-width:600px){
  .spec caption{display:block;width:100%;box-sizing:border-box}
  .spec tbody th{width:100%;box-sizing:border-box}
  .spec td{box-sizing:border-box}
}
@media (max-width:600px){ .spec td:not(:last-child){border-bottom:0} }

/* ==========================================================================
   v113 · product range gallery, gradient sheen on renders, glass section tabs
   ========================================================================== */

/* --- glass section tabs (replaces the near-black bar) --- */
nav.pw-tabs{
  background:linear-gradient(135deg,rgba(255,255,255,.13),rgba(255,255,255,.05) 55%,rgba(142,51,251,.08))!important;
  -webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);
  border:1px solid rgba(255,255,255,.18)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 0 rgba(255,255,255,.04),0 20px 44px -26px rgba(8,0,28,.85)!important}
nav.pw-tabs a{color:#f6f3ff!important;text-shadow:0 1px 2px rgba(10,4,30,.45)}
nav.pw-tabs a:hover{background:rgba(255,255,255,.12)!important;color:#fff!important}
nav.pw-tabs a.is-active{text-shadow:none}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  nav.pw-tabs{background:rgba(40,30,92,.86)!important}
}

/* --- product range gallery --- */
.range-group{margin-top:clamp(28px,4vw,48px)}
.range-group:first-of-type{margin-top:8px}
.rg-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:8px 32px;align-items:end;margin-bottom:18px}
.rg-tag{display:inline-block;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--c,#4f5bff) 45%,#fff);margin-bottom:6px}
.rg-head h3{margin:0;font-family:var(--display);font-size:clamp(22px,2.2vw,28px);font-weight:600;line-height:1.15;color:#fff}
.rg-head p{margin:0;font-size:15.5px;line-height:1.6;color:#d4cbef}
.range-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-auto-flow:dense;gap:14px}
.rtile{position:relative;display:flex;flex-direction:column;border-radius:var(--r-card,18px);overflow:hidden;
  background:linear-gradient(160deg,color-mix(in srgb,var(--c,#4f5bff) 12%,transparent),rgba(12,8,32,.7) 60%),rgba(10,8,30,.45);
  border:1px solid color-mix(in srgb,var(--c,#4f5bff) 26%,rgba(255,255,255,.07));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 24px 44px -34px rgba(8,0,28,.95);
  transition:transform .5s cubic-bezier(.22,.61,.24,1),border-color .4s,box-shadow .4s}
.rtile--wide{grid-column:span 2}
.rtile--hero{grid-column:span 2;grid-row:span 2}
.rt-stage{position:relative;margin:0;aspect-ratio:4/3;--pad:9%;
  background:
    radial-gradient(70% 62% at 50% 46%,color-mix(in srgb,var(--c,#4f5bff) 30%,transparent),transparent 72%),
    radial-gradient(90% 50% at 50% 112%,color-mix(in srgb,var(--c2,#8e33fb) 26%,transparent),transparent 70%)}
.rtile--hero .rt-stage{aspect-ratio:auto;flex:1;min-height:300px}
.rtile--wide .rt-stage{aspect-ratio:8/3}
.rt-stage img{position:absolute;inset:var(--pad);width:calc(100% - 2*var(--pad));height:calc(100% - 2*var(--pad));object-fit:contain;
  filter:drop-shadow(0 16px 22px rgba(4,0,20,.5)) drop-shadow(0 0 26px color-mix(in srgb,var(--c,#4f5bff) 22%,transparent));
  transition:transform .9s cubic-bezier(.22,.61,.24,1),filter .6s}
/* brand-colour gradient sheen, masked to the product's own silhouette */
.rt-stage::after{content:"";position:absolute;inset:var(--pad);pointer-events:none;
  background:linear-gradient(140deg,color-mix(in srgb,var(--c,#4f5bff) 85%,#fff) 0%,transparent 46%,transparent 62%,color-mix(in srgb,var(--c2,#8e33fb) 80%,#fff) 100%);
  -webkit-mask:var(--img) center/contain no-repeat;mask:var(--img) center/contain no-repeat;
  mix-blend-mode:soft-light;opacity:.5;transition:opacity .6s,transform .9s cubic-bezier(.22,.61,.24,1)}
.rt-cap{position:relative;padding:12px 16px 15px;border-top:1px solid rgba(255,255,255,.07);background:rgba(8,5,26,.35)}
.rt-cap b{display:block;font-size:14.5px;font-weight:600;line-height:1.35;color:#fff}
.rt-cap span{display:block;margin-top:3px;font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#b9aee3}
.rtile--hero .rt-cap b{font-size:16.5px}
@media (hover:hover) and (pointer:fine){
  .rtile:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--c,#4f5bff) 62%,transparent);box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 24px 48px -26px var(--c,#4f5bff)}
  .rtile:hover .rt-stage img{transform:scale(1.045);filter:drop-shadow(0 18px 26px rgba(4,0,20,.5)) drop-shadow(0 0 34px color-mix(in srgb,var(--c,#4f5bff) 40%,transparent)) brightness(1.07)}
  .rtile:hover .rt-stage::after{opacity:.78;transform:scale(1.045)}
}
.rtile.in-view,.rtile:active{border-color:color-mix(in srgb,var(--c,#4f5bff) 60%,transparent)}
.rtile.in-view .rt-stage::after{opacity:.72}
.rtile.in-view .rt-stage img{filter:drop-shadow(0 16px 22px rgba(4,0,20,.5)) drop-shadow(0 0 32px color-mix(in srgb,var(--c,#4f5bff) 36%,transparent)) brightness(1.06)}
@media (max-width:900px){ .rg-head{grid-template-columns:1fr} }
@media (max-width:600px){
  .range-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .rtile--hero,.rtile--wide{grid-column:1/-1;grid-row:auto}
  .rtile--hero .rt-stage{min-height:0;aspect-ratio:4/3}
  .rtile--wide .rt-stage{aspect-ratio:2/1}
  .rt-cap{padding:10px 12px 12px}.rt-cap b{font-size:13.5px}.rt-cap span{font-size:9.5px}
}

/* sheen + glow on the existing product stages too (renders only, not photos) */
.pfo-stage img,.cf-stage img,.mat-stage img,.prodcard .pc-stage img{
  filter:drop-shadow(0 18px 28px rgba(4,0,20,.5)) drop-shadow(0 0 30px color-mix(in srgb,var(--c,#2fd4c4) 22%,transparent))}
.pfo-stage--sheet img{filter:none}
.mat-stage{background:
  radial-gradient(60% 60% at 50% 46%,color-mix(in srgb,var(--c,#4f5bff) 30%,transparent),transparent 75%),
  radial-gradient(90% 50% at 50% 115%,rgba(142,51,251,.22),transparent 70%),rgba(8,6,26,.55)!important}

/* v114 · quieter glass section tabs */
nav.pw-tabs{
  background:rgba(255,255,255,.055)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.3);backdrop-filter:blur(14px) saturate(1.3);
  border:1px solid rgba(255,255,255,.11)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 14px 32px -26px rgba(8,0,28,.7)!important;
  padding:4px!important;gap:2px!important}
nav.pw-tabs a{color:rgba(242,238,255,.84)!important;font-weight:500!important;text-shadow:0 1px 1px rgba(10,4,30,.35);
  transition:background-color .3s,color .3s,background-size .35s cubic-bezier(.22,.61,.24,1)!important}
nav.pw-tabs a:hover{background-color:rgba(255,255,255,.07)!important;color:#fff!important}
nav.pw-tabs a.is-active,body.area-pro nav.pw-tabs a.is-active{
  color:#fff!important;text-shadow:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)!important;
  background:linear-gradient(90deg,#2fd4c4,#8e33fb) center bottom 5px/46% 2px no-repeat,rgba(255,255,255,.11)!important}
nav.pw-tabs a.is-active:hover{background-size:58% 2px,auto!important}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  nav.pw-tabs{background:rgba(36,28,84,.82)!important}
}

/* v115 · active tab: soft glass pill only, no underline */
nav.pw-tabs a.is-active,body.area-pro nav.pw-tabs a.is-active{
  background:rgba(255,255,255,.13)!important;background-image:none!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.16),0 6px 16px -10px rgba(8,0,28,.6)!important;color:#fff!important}
nav.pw-tabs a.is-active:hover{background:rgba(255,255,255,.16)!important;background-image:none!important}

/* v118 · products sit naturally: soft layered contact + ambient shadow, faint brand bounce light, floor pool */
.rt-stage{background:
    radial-gradient(46% 9% at 50% 88%,rgba(4,0,20,.34),transparent 72%),
    radial-gradient(70% 62% at 50% 46%,color-mix(in srgb,var(--c,#4f5bff) 24%,transparent),transparent 74%),
    radial-gradient(90% 50% at 50% 112%,color-mix(in srgb,var(--c2,#8e33fb) 22%,transparent),transparent 72%)!important}
.rt-stage img,.pfo-stage img,.cf-stage img,.mat-stage img,.prodcard .pc-stage img{
  filter:drop-shadow(0 3px 4px rgba(4,0,20,.22)) drop-shadow(0 22px 34px rgba(4,0,20,.30)) drop-shadow(0 0 22px color-mix(in srgb,var(--c,#4f5bff) 14%,transparent))!important}
.rtile.in-view .rt-stage img{filter:drop-shadow(0 3px 4px rgba(4,0,20,.22)) drop-shadow(0 22px 34px rgba(4,0,20,.30)) drop-shadow(0 0 26px color-mix(in srgb,var(--c,#4f5bff) 24%,transparent)) brightness(1.04)!important}
.mat-card.in-view .mat-stage img,.prodcard.in-view .pc-stage img{filter:drop-shadow(0 3px 4px rgba(4,0,20,.22)) drop-shadow(0 24px 36px rgba(4,0,20,.32)) brightness(1.05)!important}
@media (hover:hover) and (pointer:fine){
  .rtile:hover .rt-stage img{filter:drop-shadow(0 4px 6px rgba(4,0,20,.2)) drop-shadow(0 28px 40px rgba(4,0,20,.30)) drop-shadow(0 0 30px color-mix(in srgb,var(--c,#4f5bff) 30%,transparent)) brightness(1.06)!important}
  .pfo-stage:hover img,.cf-stage:hover img,.mat-card:hover .mat-stage img{filter:drop-shadow(0 4px 6px rgba(4,0,20,.2)) drop-shadow(0 28px 40px rgba(4,0,20,.32)) brightness(1.06)!important}
}
.pfo-stage--sheet img{filter:none!important}
.rt-stage::after{opacity:.42}
.rtile.in-view .rt-stage::after{opacity:.6}

/* v121 · product images: soft edge glow that melts traced edges into the background, then the grounding shadows */
.rt-stage img,.pfo-stage img,.cf-stage img,.mat-stage img,.prodcard .pc-stage img{
  filter:
    drop-shadow(0 0 1.2px rgba(226,230,255,.38))
    drop-shadow(0 0 7px color-mix(in srgb,var(--c,#7d86ff) 34%,transparent))
    drop-shadow(0 20px 30px rgba(4,0,20,.34))!important}
.rtile.in-view .rt-stage img,.mat-card.in-view .mat-stage img,.prodcard.in-view .pc-stage img{
  filter:
    drop-shadow(0 0 1.2px rgba(226,230,255,.42))
    drop-shadow(0 0 9px color-mix(in srgb,var(--c,#7d86ff) 42%,transparent))
    drop-shadow(0 20px 30px rgba(4,0,20,.34)) brightness(1.04)!important}
@media (hover:hover) and (pointer:fine){
  .rtile:hover .rt-stage img,.pfo-stage:hover img,.cf-stage:hover img,.mat-card:hover .mat-stage img{
    filter:
      drop-shadow(0 0 1.4px rgba(232,235,255,.5))
      drop-shadow(0 0 14px color-mix(in srgb,var(--c,#7d86ff) 50%,transparent))
      drop-shadow(0 26px 36px rgba(4,0,20,.34)) brightness(1.06)!important}
}
.pfo-stage--sheet img{filter:none!important}
/* stage light: a soft key light behind the product and a faint lit floor, so every item sits in a studio, not on a page */
.rt-stage::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(38% 30% at 50% 44%,rgba(255,255,255,.06),transparent 70%),
    radial-gradient(60% 14% at 50% 92%,color-mix(in srgb,var(--c,#4f5bff) 16%,transparent),transparent 75%)}
.rt-stage img{z-index:1}.rt-stage::after{z-index:2}

/* v121 · overview stage images fill their card */
.pfo-stage img{max-height:360px!important;width:100%!important;max-width:100%!important;height:auto}
@media (max-width:1023px){ .pfo-stage img{max-height:260px!important} }

/* v121 · footer links: one clean underline that draws in from the left, sitting close to the text */
.fnav-col a:not(.logo)::after{display:none!important}
.fnav-col a:not(.logo):not(.btn):not(.fc-line):not(.fc-alert){
  background-image:linear-gradient(90deg,#8e97ff,#2fd4c4)!important;background-position:0 calc(100% - 3px)!important;
  background-size:0 1px!important;background-repeat:no-repeat!important;
  transition:color .3s ease,background-size .4s cubic-bezier(.22,.61,.24,1)!important}
@media (hover:hover) and (pointer:fine){
  .fnav-col a:not(.logo):not(.btn):not(.fc-line):not(.fc-alert):hover{color:#fff!important;background-size:100% 1px!important}
}
.fnav-col a:not(.logo):not(.btn):not(.fc-line):not(.fc-alert):focus-visible{background-size:100% 1px!important;outline:none}

/* v121 · footer "Start a requirement": same glass language as the rest of the site's link cards */
footer .fnav-col a.fc-btn{
  width:100%;max-width:260px;justify-content:space-between;min-height:48px;padding:12px 18px!important;border-radius:14px!important;
  font-size:14.5px!important;font-weight:500;color:#fff!important;
  background:linear-gradient(135deg,rgba(79,91,255,.30),rgba(142,51,251,.22))!important;
  border:1px solid rgba(160,170,255,.32)!important;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 12px 26px -18px rgba(70,60,245,.9)!important;
  transition:border-color .35s,box-shadow .35s,background .35s,transform .35s cubic-bezier(.22,.61,.24,1)!important}
footer .fnav-col a.fc-btn::before,footer .fnav-col a.fc-btn::after{display:none!important}
@media (hover:hover) and (pointer:fine){
  footer .fnav-col a.fc-btn:hover{transform:translateY(-1px)!important;border-color:rgba(190,198,255,.6)!important;
    background:linear-gradient(135deg,rgba(79,91,255,.42),rgba(142,51,251,.32))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 16px 32px -18px rgba(90,70,255,1)!important}
  footer .fnav-col a.fc-btn:hover .arw{transform:translateX(3px)}
}
footer .fnav-col a.fc-btn .arw{transition:transform .35s cubic-bezier(.22,.61,.24,1)}
@media (max-width:600px){ footer .fnav-col a.fc-btn{max-width:none} }
.pfo-stage img{max-height:410px!important;width:auto!important}
.rtile--wide .rt-stage{--pad:5%}

/* v122 · fresher, crisper product images: subtler edge glow, light clarity lift, calm in-focus zoom */
.rt-stage img,.pfo-stage img,.cf-stage img,.mat-stage img,.prodcard .pc-stage img,
.rtile.in-view .rt-stage img,.mat-card.in-view .mat-stage img,.prodcard.in-view .pc-stage img,.prodcard:active .pc-stage img{
  filter:
    drop-shadow(0 0 .8px rgba(226,230,255,.26))
    drop-shadow(0 0 5px color-mix(in srgb,var(--c,#7d86ff) 20%,transparent))
    drop-shadow(0 18px 26px rgba(4,0,20,.32))
    brightness(1.03) contrast(1.04) saturate(1.05)!important;
  transform:none;
  transition:transform .8s cubic-bezier(.2,.7,.2,1)!important;
  image-rendering:auto;-webkit-backface-visibility:visible;backface-visibility:visible}
.pfo-stage--sheet img{filter:none!important}
.rt-stage::after{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)!important}
@media (hover:hover) and (pointer:fine){
  /* zoom only moves the image (no filter animation), so it stays smooth and re-sharpens when it settles */
  .rtile:hover .rt-stage img,.pfo-stage:hover img,.cf-stage:hover img,.mat-card:hover .mat-stage img,.prodcard:hover .pc-stage img{
    transform:scale(1.03)!important;
    filter:
      drop-shadow(0 0 .8px rgba(226,230,255,.26))
      drop-shadow(0 0 5px color-mix(in srgb,var(--c,#7d86ff) 20%,transparent))
      drop-shadow(0 18px 26px rgba(4,0,20,.32))
      brightness(1.03) contrast(1.04) saturate(1.05)!important}
  .rtile:hover .rt-stage::after{transform:scale(1.03)!important;opacity:.62!important}
}
@media (prefers-reduced-motion:reduce){
  .rt-stage img,.pfo-stage img,.cf-stage img,.mat-stage img,.prodcard .pc-stage img{transition:none!important;transform:none!important}
}

/* v124 · hover choreography: the card lifts, the key light warms up, the product rises a touch – one easing, no filter animation */
:root{--ease-glide:cubic-bezier(.16,1,.3,1)}
.rtile{transition:transform .7s var(--ease-glide),border-color .6s ease,box-shadow .7s var(--ease-glide)!important}
.rt-stage::before{opacity:.75;transition:opacity .7s ease}
.rt-stage img,.pfo-stage img,.cf-stage img,.mat-stage img,.prodcard .pc-stage img{
  transition:transform .9s var(--ease-glide)!important;transform-origin:50% 60%}
.rt-stage::after{transition:opacity .9s ease,transform .9s var(--ease-glide)!important;transform-origin:50% 60%}
.rt-cap b{transition:color .5s ease}.rt-cap span{transition:color .5s ease,letter-spacing .7s var(--ease-glide)}
@media (hover:hover) and (pointer:fine){
  .rtile:hover{transform:translateY(-4px)!important;
    border-color:color-mix(in srgb,var(--c,#4f5bff) 55%,rgba(255,255,255,.18))!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 26px 50px -30px color-mix(in srgb,var(--c,#4f5bff) 80%,transparent)!important}
  .rtile:hover .rt-stage::before{opacity:1}
  .rtile:hover .rt-stage img,.pfo-stage:hover img,.cf-stage:hover img,.mat-card:hover .mat-stage img,.prodcard:hover .pc-stage img{
    transform:translateY(-3px) scale(1.04)!important}
  .rtile:hover .rt-stage::after{transform:translateY(-3px) scale(1.04)!important;opacity:.62!important}
  .rtile:hover .rt-cap b{color:#fff}
  .rtile:hover .rt-cap span{color:#d6cdfa;letter-spacing:.14em}
}
@media (prefers-reduced-motion:reduce){
  .rtile,.rt-stage img,.rt-stage::after{transition:none!important}
  .rtile:hover,.rtile:hover .rt-stage img,.rtile:hover .rt-stage::after{transform:none!important}
}

/* v125 · titanium laminoplasty in situ: let the zoomed render fill its tile */
.rt-stage:has(img[src*="laminoplasty-titanium-plates-in-situ"]){--pad:1.5%}

/* =====================================================================
   v130 · real form submission: send now / open in email app
   ===================================================================== */
.vf-mode{margin:26px 0 18px}
.vf-k{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#a99de0;margin-bottom:10px;font-family:var(--mono,ui-monospace,monospace)}
.vf-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.vf-opts [role=radio]{display:flex;align-items:flex-start;gap:12px;text-align:left;padding:14px 16px;min-height:64px;border-radius:16px;cursor:pointer;
  font:inherit;color:#fff;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.12);
  transition:border-color .25s ease,background .25s ease,box-shadow .25s ease,transform .2s cubic-bezier(.16,1,.3,1)}
.vf-opts [role=radio]:hover{border-color:rgba(170,178,255,.35)}
.vf-opts [role=radio]:active{transform:scale(.98)}
.vf-opts [role=radio]:focus-visible{outline:2px solid #9fb0ff;outline-offset:2px}
.vf-opts [role=radio][aria-checked=true]{background:linear-gradient(120deg,rgba(59,70,245,.22),rgba(142,51,251,.16));border-color:rgba(170,178,255,.55);
  box-shadow:0 10px 26px -18px rgba(90,70,255,.9),inset 0 1px 0 rgba(255,255,255,.08)}
.vf-dot{flex:0 0 18px;width:18px;height:18px;margin-top:2px;border-radius:50%;border:1.6px solid rgba(200,205,255,.5);position:relative;transition:border-color .2s}
.vf-opts [aria-checked=true] .vf-dot{border-color:#aab4ff}
.vf-opts [aria-checked=true] .vf-dot::after{content:"";position:absolute;inset:3px;border-radius:50%;background:linear-gradient(135deg,#4f5bff,#8e33fb)}
.vf-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.vf-t b{font-size:15px;font-weight:600;line-height:1.3}
.vf-t small{font-size:13px;line-height:1.45;color:#b9aee3}
.vf-trap{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
form.is-sending button[type=submit]{opacity:.75;cursor:progress}
form.is-sending button[type=submit] .arw{animation:vfPulse 1s ease-in-out infinite}
@keyframes vfPulse{50%{opacity:.3}}
.form-status.vf-done{align-items:flex-start;gap:10px;line-height:1.5;outline:none}
.form-status.vf-done svg,.form-status.is-err svg{margin-top:2px}
.form-status a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.vf-retry,.vf-switch{background:none;border:0;padding:0;font:inherit;color:#fff;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:24px}
@media (max-width:600px){
  .vf-opts{grid-template-columns:1fr}
  .vf-opts [role=radio]{min-height:56px;padding:12px 14px}
}
@media (prefers-reduced-motion:reduce){ form.is-sending button[type=submit] .arw{animation:none} }
