/* Tottempudi Software Solutions — site stylesheet (v2.2 "pearl and deep ocean")
   Light theme: pearl with aurora. Dark theme: deep ocean navy — never black.
   Motion rule: every animated element has a visible resting state; reduced motion gets stills. */

@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-display:swap;
  src:url(/assets/fonts/instrument-sans-latin-wght-normal.woff2) format("woff2-variations"),
      url(/assets/fonts/instrument-sans-latin-wght-normal.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;
  src:url(/assets/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;
  src:url(/assets/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}
@property --beam{syntax:"<angle>";inherits:false;initial-value:0deg}

:root{
  color-scheme:light dark;
  --bg:#F3F7F7; --bg-2:#E9F1F2; --surface:#FFFFFF; --surface-2:#F7FAFA; --raised:#FFFFFF;
  --card-bg:rgba(255,255,255,.8); --card-solid:#FFFFFF; --glass:rgba(255,255,255,.62); --glass-edge:rgba(255,255,255,.95);
  --line:#D6E2E5; --line-2:#BCCED3; --line-soft:rgba(12,31,43,.08);
  --ink:#0C1F2B; --muted:#465B67; --faint:#6F8591;
  --accent:#12667A; --accent-2:#1B8292; --on-accent:#FFFFFF;
  --lime:#9DD373; --teal:#35908E; --navy:#15445F; --sky:#6FB7DA; --gold:#E3B23C; --cyan:#38BDD8;
  --gold-ink:#8A6508; --cyan-ink:#0A7690; --lime-ink:#3D7520; --teal-ink:#1D6E6C;
  --deep:#0C2536; --deep-2:#103148; --deep-3:#0A2030; --deep-line:#1D4259; --deep-line-2:#2C5B76;
  --on-deep:#EAF3F4; --on-deep-muted:#A6BEC8;
  --bad:#B42318; --bad-bg:#FDECEA; --good:#2E7D4F;
  --r:12px; --r-lg:18px; --r-xl:26px;
  --gut:max(16px,2.5vw); --measure:62ch;
  --band-y:clamp(64px,9vw,128px);
  --ease:cubic-bezier(.16,.9,.2,1);
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --grad:linear-gradient(90deg,var(--lime),var(--teal) 50%,var(--navy));
  --grad-ink:linear-gradient(100deg,#15445F 0%,#12667A 30%,#1F8178 55%,#4E9130 80%,#15445F 100%);
  --btn-grad:linear-gradient(135deg,#15445F 0%,#12667A 55%,#1F8A84 100%);
  --btn-glow:rgba(18,102,122,.55); --btn-ink:#FFFFFF;
  --shadow-1:0 1px 2px rgba(12,31,43,.05),0 12px 32px -20px rgba(21,68,95,.38);
  --shadow-2:0 2px 8px rgba(12,31,43,.06),0 34px 70px -36px rgba(21,68,95,.55);
  --glow-1:rgba(157,211,115,.5); --glow-2:rgba(53,144,142,.36); --glow-3:rgba(111,183,218,.46);
  --dot:rgba(21,68,95,.15); --ray:rgba(53,144,142,.10);
  --hero-1:rgba(157,211,115,.62); --hero-2:rgba(56,176,196,.42); --hero-3:rgba(111,183,218,.56); --hero-bg:linear-gradient(180deg,#E8F3F1 0%,#F3F7F7 70%);
  --band-alt:linear-gradient(180deg,rgba(255,255,255,.66),rgba(233,241,242,.55));
  --face-a:rgba(255,255,255,.94); --face-b:rgba(255,255,255,.58); --face-edge:rgba(255,255,255,.98); --face-shade:rgba(21,68,95,.08);
  --grain: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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grain-o:.045;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0D2231; --bg-2:#0F2738; --surface:#11293A; --surface-2:#132E41; --raised:#163549;
  --card-bg:rgba(20,50,70,.62); --card-solid:#132E41; --glass:rgba(17,44,61,.55); --glass-edge:rgba(255,255,255,.08);
  --line:#1F3E52; --line-2:#2B546D; --line-soft:rgba(255,255,255,.07);
  --ink:#E8F2F4; --muted:#A2B8C2; --faint:#7690A0;
  --accent:#9DD373; --accent-2:#B8E394; --on-accent:#0B1F2C;
  --gold-ink:#EBC45E; --cyan-ink:#62D2EA; --lime-ink:#B5E08F; --teal-ink:#7ED0C8;
  --deep:#0F3044; --deep-2:#133A52; --deep-3:#0C283A; --deep-line:#24506A; --deep-line-2:#336683;
  --bad:#F97066; --bad-bg:#3A1714; --good:#7FC35E;
  --grad-ink:linear-gradient(100deg,#E8F2F4 0%,#B8E394 30%,#7ED0C8 55%,#8EC8F0 78%,#E8F2F4 100%);
  --btn-grad:linear-gradient(135deg,#C4EAA2 0%,#9DD373 55%,#7FC35E 100%);
  --btn-glow:rgba(157,211,115,.5); --btn-ink:#0B1F2C;
  --shadow-1:0 1px 2px rgba(0,0,0,.2),0 12px 32px -20px rgba(0,0,0,.55);
  --shadow-2:0 2px 8px rgba(0,0,0,.22),0 34px 70px -34px rgba(0,0,0,.7);
  --glow-1:rgba(157,211,115,.20); --glow-2:rgba(53,144,142,.46); --glow-3:rgba(70,130,220,.30);
  --dot:rgba(157,211,115,.13); --ray:rgba(170,230,255,.07);
  --hero-1:rgba(157,211,115,.24); --hero-2:rgba(53,144,142,.52); --hero-3:rgba(70,130,220,.36); --hero-bg:linear-gradient(180deg,#0F2A3D 0%,#0D2231 75%);
  --band-alt:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));
  --face-a:rgba(58,120,150,.55); --face-b:rgba(16,46,66,.78); --face-edge:rgba(255,255,255,.16); --face-shade:rgba(255,255,255,.05);
  --grain: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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grain-o:.035;
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0D2231; --bg-2:#0F2738; --surface:#11293A; --surface-2:#132E41; --raised:#163549;
  --card-bg:rgba(20,50,70,.62); --card-solid:#132E41; --glass:rgba(17,44,61,.55); --glass-edge:rgba(255,255,255,.08);
  --line:#1F3E52; --line-2:#2B546D; --line-soft:rgba(255,255,255,.07);
  --ink:#E8F2F4; --muted:#A2B8C2; --faint:#7690A0;
  --accent:#9DD373; --accent-2:#B8E394; --on-accent:#0B1F2C;
  --gold-ink:#EBC45E; --cyan-ink:#62D2EA; --lime-ink:#B5E08F; --teal-ink:#7ED0C8;
  --deep:#0F3044; --deep-2:#133A52; --deep-3:#0C283A; --deep-line:#24506A; --deep-line-2:#336683;
  --bad:#F97066; --bad-bg:#3A1714; --good:#7FC35E;
  --grad-ink:linear-gradient(100deg,#E8F2F4 0%,#B8E394 30%,#7ED0C8 55%,#8EC8F0 78%,#E8F2F4 100%);
  --btn-grad:linear-gradient(135deg,#C4EAA2 0%,#9DD373 55%,#7FC35E 100%);
  --btn-glow:rgba(157,211,115,.5); --btn-ink:#0B1F2C;
  --shadow-1:0 1px 2px rgba(0,0,0,.2),0 12px 32px -20px rgba(0,0,0,.55);
  --shadow-2:0 2px 8px rgba(0,0,0,.22),0 34px 70px -34px rgba(0,0,0,.7);
  --glow-1:rgba(157,211,115,.20); --glow-2:rgba(53,144,142,.46); --glow-3:rgba(70,130,220,.30);
  --dot:rgba(157,211,115,.13); --ray:rgba(170,230,255,.07);
  --hero-1:rgba(157,211,115,.24); --hero-2:rgba(53,144,142,.52); --hero-3:rgba(70,130,220,.36); --hero-bg:linear-gradient(180deg,#0F2A3D 0%,#0D2231 75%);
  --band-alt:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));
  --face-a:rgba(58,120,150,.55); --face-b:rgba(16,46,66,.78); --face-edge:rgba(255,255,255,.16); --face-shade:rgba(255,255,255,.05);
  --grain: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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --grain-o:.035;
}
:root[data-theme="light"]{color-scheme:light}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:84px;background:var(--bg)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  min-height:100vh;display:flex;flex-direction:column;overflow-x:clip}
body::after{content:"";position:fixed;inset:0;z-index:95;pointer-events:none;background-image:var(--grain);background-size:180px 180px;opacity:var(--grain-o)}
main{flex:1 0 auto;display:block}
img,svg,canvas,video{max-width:100%}
img{height:auto}
.wrap{width:100%;margin:0 auto;padding-inline:var(--gut)}
.wrap.narrow>*{max-width:860px}
h1,h2,h3,h4{text-wrap:balance;margin:0;font-weight:650;letter-spacing:-.026em;line-height:1.08}
h1{font-size:clamp(2.35rem,6vw,4.6rem);letter-spacing:-.036em;line-height:1.02}
h2{font-size:clamp(1.75rem,3.7vw,2.9rem);line-height:1.08}
h3{font-size:1.1rem;letter-spacing:-.01em;line-height:1.3;font-weight:620}
h4{font-size:.98rem;letter-spacing:-.005em;line-height:1.35;font-weight:620}
p{margin:0;text-wrap:pretty}
a{color:inherit;text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
strong,b{font-weight:620}
ul,ol{margin:0;padding:0}
::selection{background:color-mix(in srgb,var(--lime) 55%,transparent);color:var(--ink)}
:focus-visible{outline:2.5px solid var(--accent);outline-offset:3px;border-radius:4px}
.sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--bg);padding:10px 16px;z-index:100;border-radius:0 0 8px 0;font-weight:600}
.skip:focus{left:0}
.eyebrow{font-family:var(--mono);font-size:.7rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0}
.eyebrow .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin-right:9px;vertical-align:.1em;box-shadow:0 0 0 4px color-mix(in srgb,var(--teal) 18%,transparent)}
.lede{font-size:clamp(1.06rem,1.5vw,1.24rem);line-height:1.58;color:var(--muted);max-width:var(--measure)}
.muted{color:var(--muted)}
.mono{font-family:var(--mono)}
.prose p+p{margin-top:1em}
.prose{max-width:var(--measure)}
.hl{background:var(--grad-ink);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
@media (forced-colors:active){.hl{background:none;color:CanvasText;-webkit-text-fill-color:CanvasText}}

/* ---------- ambient layers: aurora, dot grid, light rays ---------- */
.sky{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.sky i{position:absolute;border-radius:50%;will-change:transform}
.sky .a1{width:62vmax;height:62vmax;left:-14vmax;top:-24vmax;background:radial-gradient(closest-side,var(--glow-1),transparent 72%)}
.sky .a2{width:56vmax;height:56vmax;right:-16vmax;top:-18vmax;background:radial-gradient(closest-side,var(--glow-2),transparent 72%)}
.sky .a3{width:48vmax;height:48vmax;left:34%;top:28%;background:radial-gradient(closest-side,var(--glow-3),transparent 72%)}
@media (prefers-reduced-motion:no-preference){
  .sky .a1{animation:drift1 24s ease-in-out infinite alternate}
  .sky .a2{animation:drift2 28s ease-in-out infinite alternate}
  .sky .a3{animation:drift3 32s ease-in-out infinite alternate}
}
@keyframes drift1{to{transform:translate(9vmax,7vmax) scale(1.12)}}
@keyframes drift2{to{transform:translate(-8vmax,9vmax) scale(1.08)}}
@keyframes drift3{to{transform:translate(-10vmax,-6vmax) scale(1.18)}}
.dots{position:absolute;inset:0;z-index:0;pointer-events:none;background-image:radial-gradient(var(--dot) 1.1px,transparent 1.6px);background-size:24px 24px;
  -webkit-mask-image:radial-gradient(ellipse 70% 65% at 62% 35%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 65% at 62% 35%,#000 20%,transparent 75%)}
.rays{position:absolute;inset:-20% -10% 0 -10%;z-index:1;pointer-events:none;transform-origin:70% 0;
  background:conic-gradient(from 196deg at 70% -6%,transparent 0deg,var(--ray) 5deg,transparent 11deg,transparent 19deg,var(--ray) 23deg,transparent 29deg,transparent 36deg,var(--ray) 41deg,transparent 48deg,transparent 58deg,var(--ray) 62deg,transparent 68deg);
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 78%);mask-image:linear-gradient(180deg,#000 0%,transparent 78%)}
@media (prefers-reduced-motion:no-preference){.rays{animation:rays 16s ease-in-out infinite alternate}}
@keyframes rays{from{transform:rotate(-2.5deg)}to{transform:rotate(3deg)}}

/* ---------- scroll progress ---------- */
.progress{position:fixed;inset:0 0 auto 0;height:2px;z-index:70;background:var(--grad);transform-origin:0 50%;transform:scaleX(0);pointer-events:none}
@supports (animation-timeline:scroll()){
  @media (prefers-reduced-motion:no-preference){
    .progress{animation:grow-x linear both;animation-timeline:scroll(root block)}
  }
}
@keyframes grow-x{to{transform:scaleX(1)}}

/* ---------- header ---------- */
.head{position:sticky;top:0;z-index:50;
  background:color-mix(in srgb,var(--bg) 72%,transparent);
  -webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);
  border-bottom:1px solid var(--line-soft)}
.head::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--teal) 45%,transparent),color-mix(in srgb,var(--lime) 45%,transparent),transparent);opacity:.7}
.head-in{display:flex;align-items:center;gap:14px;min-height:66px;padding-block:10px}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;font-weight:620;font-size:.95rem;letter-spacing:-.01em;margin-right:auto;min-height:44px}
.brand:hover{text-decoration:none}
.brand img{width:30px;height:30px;display:block;transition:transform .5s var(--ease)}
.brand:hover img{transform:rotate(-8deg) scale(1.06)}
.brand span{white-space:nowrap}
.nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.nav a{position:relative;display:flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;font-size:.9rem;
  color:var(--muted);border-radius:10px;transition:color .18s,background-color .18s}
.nav a:hover{color:var(--ink);background:color-mix(in srgb,var(--line) 55%,transparent)}
.nav a[aria-current]{color:var(--ink);font-weight:600}
.nav a[aria-current]::after{content:"";position:absolute;left:12px;right:12px;bottom:6px;height:2px;border-radius:2px;background:var(--grad)}
.head-tools{display:flex;align-items:center;gap:8px}
.icon-btn{appearance:none;display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid transparent;
  background:transparent;color:var(--muted);cursor:pointer;transition:color .18s,background-color .18s,border-color .18s}
.icon-btn:hover{color:var(--ink);background:color-mix(in srgb,var(--line) 55%,transparent)}
.icon-btn svg{width:20px;height:20px;display:block}
.theme-btn [data-i]{display:none}
.theme-btn[data-mode="auto"] [data-i="auto"],.theme-btn[data-mode="light"] [data-i="light"],.theme-btn[data-mode="dark"] [data-i="dark"]{display:block}
.no-js .theme-btn{display:none}
.menu-btn{display:none}
.menu-btn .bars{position:relative;width:18px;height:12px}
.menu-btn .bars i{position:absolute;left:0;right:0;height:1.8px;border-radius:2px;background:currentColor;transition:transform .3s var(--ease),opacity .2s}
.menu-btn .bars i:nth-child(1){top:0}.menu-btn .bars i:nth-child(2){top:5px}.menu-btn .bars i:nth-child(3){top:10px}
.menu-btn[aria-expanded="true"] .bars i:nth-child(1){transform:translateY(5px) rotate(45deg)}
.menu-btn[aria-expanded="true"] .bars i:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] .bars i:nth-child(3){transform:translateY(-5px) rotate(-45deg)}
@media (max-width:1060px){
  .head-in{flex-wrap:wrap}
  .js .menu-btn{display:inline-grid}
  .js .nav{display:none;order:5;flex-basis:100%}
  .js .head.open .nav{display:block;animation:drop .32s var(--ease) both}
  .nav ul{flex-direction:column;padding:6px 0 14px}
  .no-js .nav ul{flex-direction:row;flex-wrap:wrap}
  .nav a{font-size:1.02rem;min-height:48px}
  .nav a[aria-current]::after{left:0;right:auto;top:14px;bottom:14px;width:3px;height:auto}
  .no-js .nav{order:5;flex-basis:100%}
}
@media (max-width:560px){.head-in{gap:6px}.brand{gap:9px}.brand span{font-size:.8rem}.head-tools{gap:2px}.head-tools .btn{display:none}}
@media (max-width:380px){.brand span{display:none}}
@keyframes drop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* ---------- buttons & links ---------- */
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.btn{position:relative;overflow:hidden;isolation:isolate;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;
  padding:0 22px;border-radius:999px;border:1px solid var(--line-2);background:var(--card-bg);
  color:var(--ink);text-decoration:none;font:inherit;font-weight:600;font-size:.94rem;letter-spacing:-.005em;cursor:pointer;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  transition:transform .2s var(--ease),border-color .2s,box-shadow .25s,background-color .2s}
.btn:hover{text-decoration:none;transform:translateY(-1.5px);border-color:var(--accent);box-shadow:0 10px 26px -14px color-mix(in srgb,var(--accent) 70%,transparent)}
.btn:active{transform:translateY(0)}
.btn.primary{background:var(--btn-grad);border-color:transparent;color:var(--btn-ink);box-shadow:0 12px 30px -14px var(--btn-glow),inset 0 1px 0 rgba(255,255,255,.28)}
.btn.primary:hover{box-shadow:0 16px 40px -14px var(--btn-glow),inset 0 1px 0 rgba(255,255,255,.35)}
.btn.sm{min-height:40px;padding:0 16px;font-size:.86rem}
.btn::after{content:"";position:absolute;z-index:-1;top:0;bottom:0;width:40%;left:-55%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.34),transparent);transform:skewX(-18deg)}
@media (prefers-reduced-motion:no-preference){.btn:hover::after{animation:sweep .7s var(--ease)}}
@keyframes sweep{to{left:125%}}
.btn svg{width:17px;height:17px;flex:none;transition:transform .25s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.more{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:.9rem;color:var(--accent);text-decoration:none}
.more svg{width:16px;height:16px;transition:transform .25s var(--ease)}
a.more:hover{text-decoration:underline}
a.more:hover svg,.card:hover .more svg,.pfeat:hover .more svg{transform:translateX(4px)}
.deep .btn:not(.primary),.instr .btn:not(.primary),.cta .btn:not(.primary){background:rgba(255,255,255,.06);color:var(--on-deep);border-color:rgba(255,255,255,.22)}
.deep .btn:not(.primary):hover,.instr .btn:not(.primary):hover,.cta .btn:not(.primary):hover{border-color:var(--lime)}
.deep .btn.primary,.instr .btn.primary,.cta .btn.primary{background:linear-gradient(135deg,#C4EAA2,#9DD373 55%,#7FC35E);color:#0B1F2C;box-shadow:0 12px 34px -14px rgba(157,211,115,.6),inset 0 1px 0 rgba(255,255,255,.4)}
.deep .more,.instr .more{color:var(--lime)}

/* ---------- signal field canvas ---------- */
.field{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:1;pointer-events:none}

/* ---------- home hero ---------- */
.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--hero-bg)}
.sky-hero .a1{background:radial-gradient(closest-side,var(--hero-1),transparent 72%)}
.sky-hero .a2{background:radial-gradient(closest-side,var(--hero-2),transparent 72%)}
.sky-hero .a3{background:radial-gradient(closest-side,var(--hero-3),transparent 72%)}
.hero .field{opacity:.5}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:120px;z-index:2;pointer-events:none;background:linear-gradient(180deg,transparent,var(--bg))}
.hero-grid{position:relative;z-index:3;display:grid;gap:clamp(20px,4vw,56px);align-items:center;
  grid-template-columns:minmax(0,1.12fr) minmax(0,.88fr);padding-block:clamp(40px,7vw,104px) clamp(56px,8vw,112px)}
.hero-copy{min-width:0}
.announce{display:inline-flex;align-items:center;gap:10px;max-width:100%;padding:5px 14px 5px 5px;border-radius:999px;background:var(--card-bg);border:1px solid var(--line);
  box-shadow:var(--shadow-1);text-decoration:none;font-size:.86rem;color:var(--ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:border-color .2s,transform .2s var(--ease)}
.announce:hover{text-decoration:none;border-color:var(--teal);transform:translateY(-1px)}
.announce .tag{flex:none;font-family:var(--mono);font-size:.62rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:linear-gradient(90deg,#B5E08F,#7FCDBB);color:#08202B}
.announce .an-t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.announce svg{width:15px;height:15px;flex:none;color:var(--accent);transition:transform .25s var(--ease)}
.announce:hover svg{transform:translateX(3px)}
.hero-h1{font-size:clamp(2.5rem,5.5vw,5.4rem);letter-spacing:-.045em;line-height:.99;font-weight:650;margin:26px 0 26px;max-width:15ch}
.hero-h1 .ln{display:block}
.hero-h1 .l2{padding-bottom:.08em}
.hero .lede{margin-bottom:32px;max-width:60ch}
.hero-org{display:flex;align-items:center;gap:10px;margin-top:30px;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.hero-org img{width:22px;height:22px}
@media (prefers-reduced-motion:no-preference){
  .hero-h1 .ln{animation:blur-in 1s var(--ease) .05s both}
  .hero-h1 .l2{animation:blur-in 1.1s var(--ease) .2s both,shimmer 10s ease-in-out 1.6s infinite}
}
@keyframes blur-in{from{opacity:0;filter:blur(14px);transform:translateY(16px)}to{opacity:1;filter:none;transform:none}}
@keyframes shimmer{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
@media (max-width:920px){.hero-grid{grid-template-columns:1fr}.hero-h1{max-width:16ch}.hero-art{order:-1;margin-bottom:-8px}}
@media (max-width:480px){.hero-h1{font-size:clamp(2.05rem,9.1vw,2.5rem);margin:20px 0 20px}.announce{border-radius:18px}.announce .an-t{white-space:normal}}

/* the glass cube */
.hero-art{position:relative;display:grid;place-items:center;min-width:0}
.cube-stage{--s:clamp(170px,19vw,300px);position:relative;width:min(100%,600px);aspect-ratio:1/1;display:grid;place-items:center;perspective:1600px;perspective-origin:50% 35%}
@media (max-width:920px){.cube-stage{--s:clamp(130px,34vw,210px);width:min(100%,420px);aspect-ratio:1.45/1}}
.cube-glow{position:absolute;inset:4%;border-radius:50%;background:radial-gradient(closest-side,var(--hero-3),transparent 72%),radial-gradient(closest-side at 36% 64%,var(--hero-1),transparent 70%)}
.cube-floor{position:absolute;left:50%;top:50%;width:calc(var(--s) * 1.9);height:calc(var(--s) * .5);transform:translate(-50%,calc(var(--s) * .62));border-radius:50%;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--navy) 26%,transparent),transparent 80%)}
.orbits{position:absolute;left:50%;top:50%;width:calc(var(--s) * 2.3);height:auto;transform:translate(-50%,calc(var(--s) * .38));overflow:visible}
.orbits path{fill:none;stroke-width:1.2}
.orbits .o1{stroke:color-mix(in srgb,var(--teal) 50%,transparent)}
.orbits .o2{stroke:color-mix(in srgb,var(--sky) 45%,transparent);stroke-dasharray:3 7}
.orbits .d1{fill:var(--lime);filter:drop-shadow(0 0 5px var(--lime))}
.orbits .d2{fill:var(--cyan);filter:drop-shadow(0 0 5px var(--cyan))}
@media (prefers-reduced-motion:reduce){.orbits circle{display:none}}
.cube-float{position:relative;transform-style:preserve-3d}
@media (prefers-reduced-motion:no-preference){.cube-float{animation:bob 7s ease-in-out infinite alternate}}
@keyframes bob{from{transform:translateY(-10px)}to{transform:translateY(8px)}}
.cube-tilt{transform-style:preserve-3d;transform:rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));transition:transform .8s var(--ease)}
.cube{position:relative;width:var(--s);height:var(--s);transform-style:preserve-3d;transform:rotateX(-20deg) rotateY(-38deg)}
@media (prefers-reduced-motion:no-preference){.cube{animation:cube-spin 32s linear infinite}.cube-stage:hover .cube{animation-play-state:paused}}
@keyframes cube-spin{from{transform:rotateX(-20deg) rotateY(-38deg)}to{transform:rotateX(-20deg) rotateY(-398deg)}}
.face{position:absolute;inset:0;border-radius:calc(var(--s) * .09);display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:calc(var(--s) * .08);
  -webkit-backface-visibility:hidden;backface-visibility:hidden;overflow:hidden;color:var(--ink);
  background:linear-gradient(150deg,var(--face-a),var(--face-b) 52%,var(--face-a));border:1px solid var(--face-edge);
  box-shadow:inset 0 0 0 1px var(--face-shade),inset 0 calc(var(--s) * -.16) calc(var(--s) * .3) calc(var(--s) * -.14) var(--tint,transparent)}
.face::before{content:"";position:absolute;inset:0;background:radial-gradient(110% 90% at 100% 0%,var(--tint-soft,transparent),transparent 62%)}
.face::after{content:"";position:absolute;inset:-50%;background:linear-gradient(115deg,transparent 44%,rgba(255,255,255,.55) 50%,transparent 56%);transform:translateX(-70%)}
@media (prefers-reduced-motion:no-preference){.face::after{animation:glint 8s ease-in-out infinite}}
@keyframes glint{0%,58%{transform:translateX(-70%)}80%,100%{transform:translateX(70%)}}
.face>*{position:relative;z-index:1}
.face .fg{width:calc(var(--s) * .24);height:calc(var(--s) * .24);border-radius:calc(var(--s) * .07);display:grid;place-items:center;margin-bottom:auto;
  background:var(--tint-soft);border:1px solid var(--tint-edge,var(--line));color:var(--tint-ink,var(--accent));box-shadow:0 12px 30px -14px var(--tint,transparent)}
.face .fg svg{width:56%;height:56%}
.face b{font-size:calc(var(--s) * .088);letter-spacing:-.02em;font-weight:680;line-height:1.05}
.face small{font-family:var(--mono);font-size:max(.56rem,calc(var(--s) * .036));letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.f-front{transform:translateZ(calc(var(--s) / 2))}
.f-right{transform:rotateY(90deg) translateZ(calc(var(--s) / 2))}
.f-back{transform:rotateY(180deg) translateZ(calc(var(--s) / 2))}
.f-left{transform:rotateY(-90deg) translateZ(calc(var(--s) / 2))}
.f-top{transform:rotateX(90deg) translateZ(calc(var(--s) / 2));justify-content:center;align-items:center;--tint:rgba(53,144,142,.5);--tint-soft:rgba(157,211,115,.2)}
.f-bottom{transform:rotateX(-90deg) translateZ(calc(var(--s) / 2))}
.f-top img{width:44%;height:auto;filter:drop-shadow(0 10px 20px rgba(53,144,142,.45))}
.face.one{--tint:rgba(227,178,60,.55);--tint-soft:rgba(227,178,60,.18);--tint-edge:rgba(184,134,11,.32);--tint-ink:var(--gold-ink)}
.face.clin{--tint:rgba(56,189,216,.55);--tint-soft:rgba(56,189,216,.17);--tint-edge:rgba(10,118,144,.3);--tint-ink:var(--cyan-ink)}
.face.trace{--tint:rgba(157,211,115,.6);--tint-soft:rgba(157,211,115,.2);--tint-edge:rgba(61,117,32,.3);--tint-ink:var(--lime-ink)}
.face.plat{--tint:rgba(21,68,95,.45);--tint-soft:rgba(111,183,218,.18);--tint-edge:rgba(21,68,95,.28);--tint-ink:var(--teal-ink)}

/* ---------- inner page head ---------- */
.phead{position:relative;overflow:hidden;isolation:isolate}
.phead .field{opacity:.55}
.phead::after{content:"";position:absolute;left:0;right:0;bottom:0;height:90px;z-index:2;pointer-events:none;background:linear-gradient(180deg,transparent,var(--bg))}
.phead .wrap{position:relative;z-index:3;padding-block:clamp(40px,6.5vw,92px) clamp(48px,7vw,96px)}
.phead h1{max-width:18ch;margin:14px 0 22px}
.phead .lede+.lede{margin-top:12px}
.phead .actions{margin-top:30px}
.phead .lede strong{color:var(--ink);font-weight:620}
.phead.one h1,.phead.clin h1{font-size:clamp(2.5rem,6vw,5rem)}
.phead.one .sky .a1{background:radial-gradient(closest-side,rgba(227,178,60,.34),transparent 72%)}
.phead.one .sky .a3{background:radial-gradient(closest-side,rgba(111,183,218,.3),transparent 72%)}
.phead.clin .sky .a1{background:radial-gradient(closest-side,rgba(56,189,216,.36),transparent 72%)}
.phead.clin .sky .a3{background:radial-gradient(closest-side,rgba(157,211,115,.26),transparent 72%)}
.phead.deep,.instr{background:radial-gradient(120% 90% at 85% -10%,#15506A 0%,transparent 55%),radial-gradient(90% 80% at 0% 110%,#123F4E 0%,transparent 60%),linear-gradient(180deg,var(--deep),var(--deep-3));color:var(--on-deep)}
.phead.deep::after{background:linear-gradient(180deg,transparent,var(--deep-3));height:40px}
.phead.deep .eyebrow{color:var(--lime)}
.phead.deep .lede{color:var(--on-deep-muted)}
.phead.deep .lede strong{color:var(--on-deep)}
.phead.deep .crumbs a,.phead.deep .crumbs li{color:var(--on-deep-muted)}
.phead.deep .crumbs [aria-current]{color:var(--on-deep)}
.sky-deep .a1{background:radial-gradient(closest-side,rgba(157,211,115,.16),transparent 72%)}
.sky-deep .a2{background:radial-gradient(closest-side,rgba(53,144,142,.42),transparent 72%)}
.sky-deep .a3{background:radial-gradient(closest-side,rgba(70,130,220,.22),transparent 72%)}
.phead-grid{display:grid;gap:clamp(28px,5vw,64px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.phead-aside{min-width:0}
@media (max-width:920px){.phead-grid{grid-template-columns:1fr}}
.crumbs{margin-bottom:18px}
.crumbs ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0;font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}
.crumbs li{color:var(--muted);display:flex;align-items:center;gap:6px}
.crumbs li+li::before{content:"/";opacity:.5}
.crumbs a{color:var(--muted);text-decoration:none}
.crumbs a:hover{color:var(--ink);text-decoration:underline}
.crumbs [aria-current]{color:var(--ink)}

/* ---------- bands ---------- */
.band{position:relative;padding-block:var(--band-y)}
.band>.wrap{position:relative;z-index:2}
.band.alt{background:var(--band-alt);box-shadow:inset 0 1px 0 var(--line-soft),inset 0 -1px 0 var(--line-soft)}
.band:not(.instr):not(.cta)::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(34% 38% at 4% 50%,var(--glow-1),transparent 72%),radial-gradient(32% 38% at 97% 46%,var(--glow-3),transparent 72%);opacity:.34}
main>section.band:nth-of-type(even):not(.instr):not(.cta)::before{background:radial-gradient(34% 38% at 96% 52%,var(--glow-1),transparent 72%),radial-gradient(32% 38% at 3% 44%,var(--glow-2),transparent 72%)}
.band.alt:not(.instr):not(.cta)::before{background:radial-gradient(var(--dot) 1px,transparent 1.5px) 0 0/26px 26px,radial-gradient(34% 38% at 96% 50%,var(--glow-3),transparent 72%),radial-gradient(30% 36% at 4% 50%,var(--glow-1),transparent 72%);
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);opacity:.5}
.band.glow:not(.instr):not(.cta)::before{background:radial-gradient(38% 40% at 10% 48%,var(--glow-1),transparent 72%),radial-gradient(36% 40% at 92% 55%,var(--glow-3),transparent 72%);opacity:.6}
.tone-one.band::after,.tone-clin.band::after{content:"";position:absolute;z-index:0;pointer-events:none;width:46vmax;height:46vmax;right:-14vmax;top:-10vmax;border-radius:50%;opacity:.6}
.tone-one.band::after{background:radial-gradient(closest-side,rgba(227,178,60,.2),transparent 72%)}
.tone-clin.band::after{background:radial-gradient(closest-side,rgba(56,189,216,.2),transparent 72%)}
.band.tone-one,.band.tone-clin{overflow:hidden}
.band.tight{padding-block:clamp(48px,6vw,84px)}
.band-head{display:grid;gap:14px;margin-bottom:clamp(28px,4vw,48px);max-width:780px}
.band-head.split{max-width:none;grid-template-columns:minmax(0,1fr) auto;align-items:end;column-gap:32px}
.band-head.split>div{display:grid;gap:14px;max-width:780px}
@media (max-width:760px){.band-head.split{grid-template-columns:1fr}}
.band-head h2{max-width:22ch}
.band-head p:not(.eyebrow){color:var(--muted);max-width:var(--measure);font-size:1.05rem}
.kicker{display:flex;align-items:center;gap:12px}
.kicker .n{font-family:var(--mono);font-size:.7rem;color:var(--accent);letter-spacing:.1em}
.kicker .ln{flex:0 0 36px;height:1px;background:var(--line-2)}
.one,.tone-one{--tone:#E3B23C;--tone-ink:var(--gold-ink);--tone-soft:rgba(227,178,60,.15)}
.clin,.tone-clin{--tone:#38BDD8;--tone-ink:var(--cyan-ink);--tone-soft:rgba(56,189,216,.15)}
.trace{--tone:#9DD373;--tone-ink:var(--lime-ink);--tone-soft:rgba(157,211,115,.18)}
.tone-one .eyebrow .dot,.one .eyebrow .dot{background:#E3B23C;box-shadow:0 0 0 4px rgba(227,178,60,.2)}
.tone-clin .eyebrow .dot,.clin .eyebrow .dot{background:#38BDD8;box-shadow:0 0 0 4px rgba(56,189,216,.2)}

/* ---------- grids & cards ---------- */
.grid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:18px}
.grid.three{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.grid.four{grid-template-columns:repeat(auto-fit,minmax(min(100%,232px),1fr))}
.card{--mx:50%;--my:0%;position:relative;overflow:hidden;isolation:isolate;background:var(--card-bg);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:24px 22px 26px;display:flex;flex-direction:column;gap:9px;box-shadow:var(--shadow-1);
  transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}
.card::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;background:var(--grad);
  transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease);z-index:2}
.card::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(520px circle at var(--mx) var(--my),color-mix(in srgb,var(--teal) 14%,transparent),transparent 42%)}
.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--teal) 45%,var(--line));box-shadow:var(--shadow-2)}
.card:hover::before{transform:scaleX(1)}
.card:hover::after{opacity:1}
.card h3{margin-top:2px}
.card p{font-size:.94rem;color:var(--muted);line-height:1.55}
.card .more{margin-top:auto;padding-top:8px}
.glyph{flex:none;width:48px;height:48px;border-radius:14px;display:grid;place-items:center;margin-bottom:6px;
  background:linear-gradient(145deg,color-mix(in srgb,var(--teal) 16%,transparent),color-mix(in srgb,var(--lime) 10%,transparent));border:1px solid color-mix(in srgb,var(--teal) 26%,transparent);color:var(--accent)}
.glyph svg{width:26px;height:26px}
.one .glyph,.clin .glyph,.trace .glyph{background:linear-gradient(145deg,var(--tone-soft),transparent);border-color:color-mix(in srgb,var(--tone) 38%,transparent);color:var(--tone-ink)}
.stretch::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit}
.stretch{text-decoration:none}
.stretch:hover{text-decoration:underline}
.card:has(.stretch:focus-visible),.pfeat:has(.stretch:focus-visible){outline:2.5px solid var(--accent);outline-offset:3px}
.stretch:focus-visible{outline:none}
.card .tag,.tag{align-self:flex-start;font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:999px;padding:3px 9px}
.list-dots{list-style:none;display:grid;gap:9px;margin:4px 0 6px}
.list-dots li{position:relative;padding-left:18px;font-size:.94rem;color:var(--muted);line-height:1.5}
.list-dots li::before{content:"";position:absolute;left:1px;top:.6em;width:7px;height:7px;border-radius:50%;background:var(--tone,var(--teal))}
.chips{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0;padding:0}
.chips li{font-family:var(--mono);font-size:.7rem;letter-spacing:.04em;padding:6px 11px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted);background:var(--card-bg)}

/* product feature cards (home) with a travelling border beam */
.pfeats{display:grid;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1060px){.pfeats{grid-template-columns:1fr}}
.pfeat{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r-xl);padding:clamp(24px,2.4vw,36px);background:var(--card-bg);border:1px solid var(--line);
  display:flex;flex-direction:column;gap:12px;box-shadow:var(--shadow-1);transition:transform .35s var(--ease),box-shadow .35s}
.pfeat::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:2;
  background:conic-gradient(from var(--beam),transparent 0 60%,var(--tone) 72%,var(--teal) 82%,transparent 92%);
  -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 (prefers-reduced-motion:no-preference){.pfeat::before{animation:beam 7s linear infinite}.pfeat:nth-child(2)::before{animation-delay:-2.4s}.pfeat:nth-child(3)::before{animation-delay:-4.8s}}
@keyframes beam{to{--beam:360deg}}
.pfeat::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(80% 70% at 100% 0%,var(--tone-soft),transparent 62%)}
.pfeat:hover{transform:translateY(-4px);box-shadow:var(--shadow-2)}
.pf-top{display:flex;align-items:center;gap:14px}
.pf-top .glyph{margin:0;width:54px;height:54px}
.pfeat h3{font-size:clamp(1.55rem,2.3vw,2.05rem);letter-spacing:-.03em;margin-top:6px}
.pf-tag{font-weight:580;color:var(--ink);font-size:1.02rem;line-height:1.4}
.pf-list{list-style:none;display:grid;gap:9px;margin:6px 0 10px}
.pf-list li{display:flex;gap:10px;align-items:flex-start;font-size:.95rem;color:var(--muted);line-height:1.45}
.pf-list svg{width:18px;height:18px;flex:none;margin-top:2px;color:var(--tone-ink)}
.pfeat .more{margin-top:auto}
.pcard .glyph{margin-bottom:6px}

/* ---------- product visuals ---------- */
/* pipeline: steps lit in turn by a travelling dot */
.pipe{--dur:10s;--p1:var(--teal);--p2:var(--navy);list-style:none;margin:0;padding:0;position:relative;display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:0 12px}
.pipe.n6{--n:6}.pipe.n8{--n:8}.pipe.n9{--n:9}
.pipe.one{--p1:#E3B23C;--p2:#35908E}.pipe.clin{--p1:#38BDD8;--p2:#35908E}.pipe.ivf{--p1:#9DD373;--p2:#38BDD8}
.pipe::before{content:"";position:absolute;left:calc(50% / var(--n));right:calc(50% / var(--n));top:29px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--p1),var(--p2));opacity:.45}
.pipe::after{content:"";position:absolute;top:24px;left:calc(50% / var(--n));width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--p1);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--p1) 22%,transparent),0 0 24px 5px var(--p1);opacity:0}
.pipe li{position:relative;display:grid;justify-items:center;align-content:start;text-align:center;gap:6px;min-width:0}
.pipe li:nth-child(1){--k:0}.pipe li:nth-child(2){--k:1}.pipe li:nth-child(3){--k:2}.pipe li:nth-child(4){--k:3}.pipe li:nth-child(5){--k:4}
.pipe li:nth-child(6){--k:5}.pipe li:nth-child(7){--k:6}.pipe li:nth-child(8){--k:7}.pipe li:nth-child(9){--k:8}
.pipe .pn{position:relative;z-index:1;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--card-solid);border:1.5px solid var(--line-2);
  font-family:var(--mono);font-size:.76rem;color:var(--muted);box-shadow:var(--shadow-1)}
.pipe b{font-size:1rem;font-weight:630;margin-top:10px;letter-spacing:-.01em}
.pipe small{font-size:.86rem;color:var(--muted);line-height:1.45;max-width:24ch}
.pipe.n9 b{font-size:.93rem}
@media (prefers-reduced-motion:no-preference){
  .pipe::after{animation:pipe-x var(--dur) linear infinite}
  .pipe .pn{animation:pipe-lit var(--dur) linear infinite;animation-delay:calc(var(--dur) * var(--k) / (var(--n) - 1))}
}
@keyframes pipe-x{0%{left:calc(50% / var(--n));opacity:0}4%{opacity:1}94%{opacity:1}100%{left:calc(100% - 50% / var(--n));opacity:0}}
@keyframes pipe-lit{0%,3%{border-color:var(--p1);color:var(--ink);box-shadow:0 0 0 7px color-mix(in srgb,var(--p1) 20%,transparent),0 0 34px -6px var(--p1)}16%,100%{border-color:var(--line-2);color:var(--muted);box-shadow:var(--shadow-1)}}
@media (prefers-reduced-motion:reduce){.pipe .pn{border-color:color-mix(in srgb,var(--p1) 70%,var(--line-2))}}
.instr .pipe .pn{background:var(--deep-2);border-color:var(--deep-line-2);color:var(--on-deep-muted);box-shadow:none}
.instr .pipe b{color:var(--on-deep)}
.instr .pipe small{color:var(--on-deep-muted)}
@keyframes pipe-y{0%{top:24px;opacity:0}4%{opacity:1}94%{opacity:1}100%{top:calc(100% - 44px);opacity:0}}
@media (max-width:760px){
  .pipe.n6{grid-template-columns:1fr;gap:18px}
}
@media (max-width:1020px){
  .pipe.n8{grid-template-columns:1fr;gap:18px}
}
@media (max-width:1300px){
  .pipe.n9{grid-template-columns:1fr;gap:18px}
}
@media (max-width:760px){.pipe.n6::before,.pipe.n6::after{left:29px;right:auto}.pipe.n6 li{grid-template-columns:58px minmax(0,1fr);justify-items:start;text-align:left;column-gap:16px;align-items:center}}
@media (max-width:1020px){.pipe.n8::before,.pipe.n8::after{left:29px;right:auto}.pipe.n8 li{grid-template-columns:58px minmax(0,1fr);justify-items:start;text-align:left;column-gap:16px;align-items:center}}
@media (max-width:1300px){.pipe.n9::before,.pipe.n9::after{left:29px;right:auto}.pipe.n9 li{grid-template-columns:58px minmax(0,1fr);justify-items:start;text-align:left;column-gap:16px;align-items:center}}
@media (max-width:760px){.pipe.n6::before{top:29px;bottom:29px;width:2px;height:auto;background:linear-gradient(180deg,var(--p1),var(--p2))}.pipe.n6 .pn{grid-row:span 2}.pipe.n6 b{margin-top:0;align-self:end}.pipe.n6 small{max-width:none;align-self:start}}
@media (max-width:1020px){.pipe.n8::before{top:29px;bottom:29px;width:2px;height:auto;background:linear-gradient(180deg,var(--p1),var(--p2))}.pipe.n8 .pn{grid-row:span 2}.pipe.n8 b{margin-top:0;align-self:end}.pipe.n8 small{max-width:none;align-self:start}}
@media (max-width:1300px){.pipe.n9::before{top:29px;bottom:29px;width:2px;height:auto;background:linear-gradient(180deg,var(--p1),var(--p2))}.pipe.n9 .pn{grid-row:span 2}.pipe.n9 b{margin-top:0;align-self:end}.pipe.n9 small{max-width:none;align-self:start}}
@media (max-width:760px) and (prefers-reduced-motion:no-preference){.pipe.n6::after{animation-name:pipe-y;left:29px}}
@media (max-width:1020px) and (prefers-reduced-motion:no-preference){.pipe.n8::after{animation-name:pipe-y;left:29px}}
@media (max-width:1300px) and (prefers-reduced-motion:no-preference){.pipe.n9::after{animation-name:pipe-y;left:29px}}

/* module grid: the product in the middle, its modules around it */
.modgrid ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.modgrid .mcore{grid-column:3 / span 2;grid-row:1 / span 2;position:relative;overflow:hidden;isolation:isolate;border-radius:24px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:6px;padding:16px;
  color:#fff;background:linear-gradient(145deg,var(--c1,#15445F),var(--c2,#35908E));box-shadow:0 24px 50px -26px var(--c2,#35908E),inset 0 1px 0 rgba(255,255,255,.35)}
.modgrid.one .mcore{--c1:#15445F;--c2:#B8860B}
.modgrid.clin .mcore{--c1:#15445F;--c2:#0A8FAE}
.modgrid .mcore::before{content:"";position:absolute;inset:-40%;z-index:-1;background:conic-gradient(from var(--beam),transparent 0 70%,rgba(255,255,255,.35) 80%,transparent 90%)}
@media (prefers-reduced-motion:no-preference){.modgrid .mcore::before{animation:beam 6s linear infinite}}
.modgrid .mcore b{font-size:clamp(1rem,1.5vw,1.4rem);letter-spacing:-.02em;font-weight:690;line-height:1.1}
.modgrid .mcore small{font-family:var(--mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;opacity:.9}
.modgrid .mt{aspect-ratio:1/1;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:6px;text-align:center;
  background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow-1);font-size:.72rem;font-weight:600;line-height:1.2;color:var(--ink);min-width:0}
.modgrid .mt span{overflow-wrap:anywhere}
.modgrid .mt svg{width:24px;height:24px;flex:none;color:var(--tone-ink)}
.modgrid .mt:nth-child(2){--i:0}.modgrid .mt:nth-child(3){--i:1}.modgrid .mt:nth-child(4){--i:2}.modgrid .mt:nth-child(5){--i:3}.modgrid .mt:nth-child(6){--i:4}
.modgrid .mt:nth-child(7){--i:5}.modgrid .mt:nth-child(8){--i:6}.modgrid .mt:nth-child(9){--i:7}.modgrid .mt:nth-child(10){--i:8}.modgrid .mt:nth-child(11){--i:9}
.modgrid .mt:nth-child(12){--i:10}.modgrid .mt:nth-child(13){--i:11}.modgrid .mt:nth-child(14){--i:12}.modgrid .mt:nth-child(15){--i:13}
@media (prefers-reduced-motion:no-preference){.modgrid .mt{animation:tile 8.4s ease-in-out infinite;animation-delay:calc(var(--i) * .6s)}}
@keyframes tile{0%,100%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}4%{border-color:color-mix(in srgb,var(--tone) 70%,var(--line));transform:translateY(-3px);box-shadow:0 14px 30px -16px var(--tone)}12%{border-color:var(--line);transform:none;box-shadow:var(--shadow-1)}}
@media (max-width:1180px){.phead.one .phead-grid,.phead.clin .phead-grid,.sw-panel.one,.sw-panel.clin{grid-template-columns:minmax(0,1fr)}.modgrid .mt{aspect-ratio:auto;min-height:88px}}
@media (max-width:620px){.modgrid ul{grid-template-columns:repeat(3,minmax(0,1fr))}.modgrid .mcore{grid-column:1 / -1;grid-row:auto;min-height:110px}.modgrid .mt{aspect-ratio:auto;min-height:86px}}

/* message illustration */
.chat{margin:0;display:grid;justify-items:center;gap:12px;min-width:0}
.chat-phone{width:min(100%,380px);border-radius:34px;padding:14px 14px 18px;background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow-2);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.chat-top{display:flex;align-items:center;gap:11px;padding:6px 6px 12px;border-bottom:1px solid var(--line)}
.chat-top .av{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,var(--tone),var(--teal));color:#fff}
.chat-top .av svg{width:19px;height:19px}
.chat-top b{display:block;font-size:.94rem}
.chat-top small{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.chat-list{list-style:none;margin:0;padding:14px 4px 4px;display:grid;gap:10px;min-height:330px;align-content:start}
.chat-list li{justify-self:start;max-width:90%;background:var(--card-solid);border:1px solid var(--line);border-radius:4px 16px 16px 16px;padding:9px 12px 10px;box-shadow:var(--shadow-1);display:grid;gap:3px;font-size:.87rem;line-height:1.42}
.chat-list b{font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--tone-ink)}
.chat-list span{color:var(--ink)}
@media (prefers-reduced-motion:no-preference){
  .chat-list li{animation:bubble 12s var(--ease) infinite both}
  .chat-list li:nth-child(2){animation-delay:.8s}.chat-list li:nth-child(3){animation-delay:1.6s}.chat-list li:nth-child(4){animation-delay:2.4s}
}
@keyframes bubble{0%{opacity:0;transform:translateY(12px) scale(.97)}5%,82%{opacity:1;transform:none}90%,100%{opacity:0;transform:translateY(-4px)}}
.chat figcaption{font-family:var(--mono);font-size:.7rem;letter-spacing:.03em;color:var(--muted);text-align:center;max-width:44ch}

/* feature grid, platform list, strips, module list */
.fgrid{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}
.fcard h3{font-size:1.14rem;margin-top:4px}
.fcard .list-dots{margin-top:6px}
.plist{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1100px){.plist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:700px){.plist{grid-template-columns:1fr}}
.plist li{display:flex;gap:16px;align-items:flex-start;padding:22px;border-radius:var(--r-lg);background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.plist .glyph{margin:0}
.plist h3{font-size:1.04rem;margin:4px 0 6px}
.plist p{font-size:.93rem;color:var(--muted)}
.app-strip{display:flex;align-items:center;gap:16px;margin-top:16px;padding:18px 22px;border-radius:var(--r-lg);border:1px dashed color-mix(in srgb,var(--tone,var(--teal)) 50%,var(--line-2));background:linear-gradient(90deg,var(--tone-soft,transparent),transparent 70%)}
.app-strip .glyph{margin:0}
.app-strip p{color:var(--muted)}
.app-strip b{color:var(--ink)}
.ivf-strip{display:flex;align-items:center;gap:16px;margin-top:22px;padding:18px 22px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--card-bg);box-shadow:var(--shadow-1);text-decoration:none;color:var(--muted);transition:transform .3s var(--ease),border-color .3s}
.ivf-strip:hover{text-decoration:none;transform:translateY(-2px);border-color:color-mix(in srgb,var(--cyan) 50%,var(--line))}
.ivf-strip .glyph{margin:0;color:var(--cyan-ink);border-color:color-mix(in srgb,var(--cyan) 40%,transparent);background:linear-gradient(145deg,rgba(56,189,216,.16),transparent)}
.ivf-strip b{color:var(--ink)}
.ivf-strip>svg{width:18px;height:18px;flex:none;margin-left:auto;color:var(--accent)}
.modlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:10px}
.modlist li{display:flex;align-items:center;gap:11px;padding:13px 15px;border-radius:14px;background:var(--card-bg);border:1px solid var(--line);font-weight:600;font-size:.94rem;box-shadow:var(--shadow-1)}
.modlist svg{width:20px;height:20px;flex:none;color:var(--gold-ink)}
.ai-steps{align-self:center}

/* ---------- split layouts ---------- */
.split{display:grid;gap:clamp(28px,5vw,64px);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
.split.top{align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}
.split h2{margin:12px 0 16px;max-width:20ch}
.split .prose{color:var(--muted)}

/* ---------- marquee ---------- */
.marquee{position:relative;overflow:hidden;border-block:1px solid var(--line-soft);padding-block:14px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee ul{display:flex;gap:10px;list-style:none;margin:0;padding:0;width:max-content}
.marquee li{font-family:var(--mono);font-size:.78rem;letter-spacing:.05em;color:var(--muted);white-space:nowrap;display:flex;align-items:center;gap:10px}
.marquee li::after{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal);opacity:.7}
@media (prefers-reduced-motion:no-preference){
  .marquee ul{animation:marq 48s linear infinite}
  .marquee:hover ul{animation-play-state:paused}
}
@media (prefers-reduced-motion:reduce){.marquee{-webkit-mask-image:none;mask-image:none}.marquee ul{flex-wrap:wrap;width:auto;justify-content:center}.marquee [aria-hidden="true"]{display:none}}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- deep bands (TraceIT, IVF, TOTTECH AI) — deep ocean navy, never black ---------- */
.instr{overflow:hidden;isolation:isolate}
.instr .eyebrow{color:var(--lime)}
.instr h2,.instr h3{color:var(--on-deep)}
.instr .band-head p:not(.eyebrow),.instr .prose,.instr p.muted{color:var(--on-deep-muted)}
.instr .card{background:rgba(255,255,255,.04);border-color:var(--deep-line)}
.instr .card p{color:var(--on-deep-muted)}
.instr .card:hover{border-color:var(--deep-line-2)}
.instr .glyph{color:var(--lime);background:color-mix(in srgb,var(--lime) 10%,transparent);border-color:color-mix(in srgb,var(--lime) 22%,transparent)}
.instr + .instr{box-shadow:inset 0 1px 0 var(--deep-line)}
.rules{list-style:none;margin:0;padding:0;display:grid;gap:16px 26px;grid-template-columns:repeat(auto-fit,minmax(min(100%,232px),1fr))}
.rules li{padding-left:20px;position:relative;font-size:.95rem;color:var(--on-deep-muted);line-height:1.55}
.rules li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--lime)}
@media (prefers-reduced-motion:no-preference){.rules li::before{animation:beacon 3.2s ease-out infinite}.rules li:nth-child(2)::before{animation-delay:.8s}.rules li:nth-child(3)::before{animation-delay:1.6s}.rules li:nth-child(4)::before{animation-delay:2.4s}}
@keyframes beacon{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--lime) 55%,transparent)}70%,100%{box-shadow:0 0 0 9px transparent}}
.rules li strong{color:var(--on-deep);font-weight:620;display:block;margin-bottom:3px}
.band:not(.instr) .rules li{color:var(--muted)}
.band:not(.instr) .rules li strong{color:var(--ink)}
.band:not(.instr) .rules li::before{background:var(--teal)}
.pill{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px;
  background:color-mix(in srgb,var(--lime) 14%,transparent);color:var(--lime);border:1px solid color-mix(in srgb,var(--lime) 30%,transparent)}
.pill i{width:6px;height:6px;border-radius:50%;background:currentColor;display:block}
.pill.quiet{background:transparent;color:var(--on-deep-muted);border-color:var(--deep-line-2)}

/* ---------- walkthrough ---------- */
.walk{margin-top:clamp(30px,4vw,44px)}
.sectors{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.no-js .sectors,.no-js .stage-ctl,.no-js .rail{display:none}
.sectors button{appearance:none;cursor:pointer;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--deep-line-2);background:rgba(255,255,255,.03);color:var(--on-deep-muted);
  font:inherit;font-size:.9rem;font-weight:500;transition:background-color .2s,color .2s,border-color .2s}
.sectors button:hover{color:var(--on-deep);border-color:var(--lime)}
.sectors button[aria-selected="true"]{background:linear-gradient(135deg,#C4EAA2,#9DD373);border-color:var(--lime);color:#0B1F2C;font-weight:620}
.walk-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr) 250px;align-items:start}
.walk-grid>*{min-width:0}
@media (max-width:1000px){.walk-grid{grid-template-columns:minmax(0,1fr)}}
.stage{position:relative;border:1px solid var(--deep-line-2);border-radius:16px;overflow:hidden;background:var(--deep-2);box-shadow:0 40px 90px -40px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.03)}
.shots{list-style:none;margin:0;padding:0}
.js .walk.live .shot-item:not(.on){display:none}
.no-js .shot-item+.shot-item{border-top:1px solid var(--deep-line)}
.shot-item figure{margin:0}
.frame-bar{display:flex;align-items:center;gap:6px;min-height:46px;padding:0 6px 0 14px;background:var(--deep-3);border-bottom:1px solid var(--deep-line)}
.frame-bar i{width:9px;height:9px;border-radius:50%;background:var(--deep-line-2)}
.frame-bar span{margin-left:10px;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--on-deep-muted);text-transform:uppercase;opacity:.85}
.shot{position:relative;background:var(--deep-3);aspect-ratio:1400/914;overflow:hidden}
.shot img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}
.walk.live .shot-item.on .shot img{view-transition-name:wt-shot}
.walk.live .shot-item.on .cap-t{view-transition-name:wt-title}
.shot-item figcaption{padding:18px 20px 20px;border-top:1px solid var(--deep-line)}
.cap-n{font-family:var(--mono);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--lime);margin-bottom:7px}
.cap-t{font-size:1.15rem;color:var(--on-deep);margin-bottom:6px}
.cap-d{font-size:.94rem;color:var(--on-deep-muted);line-height:1.55;max-width:72ch}
.cap-s{margin:14px 0 0;padding-top:14px;border-top:1px dashed var(--deep-line)}
.cap-s>div+div{margin-top:12px}
.walk.live .cap-s>div{display:none}
.walk.live[data-sector="edu"] .cap-s>[data-sector="edu"],.walk.live[data-sector="clin"] .cap-s>[data-sector="clin"],.walk.live[data-sector="it"] .cap-s>[data-sector="it"]{display:block;animation:fade-up .45s var(--ease) both}
.cap-s dt{font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;text-transform:uppercase;color:var(--lime);margin-bottom:5px;font-weight:500}
.cap-s dd{margin:0;font-size:.95rem;color:var(--on-deep);line-height:1.55;max-width:72ch}
.stage-ctl{margin-left:auto;display:flex;gap:4px}
.stage-ctl button{appearance:none;cursor:pointer;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;
  border:1px solid var(--deep-line);background:transparent;color:var(--on-deep-muted);transition:background-color .2s,color .2s,border-color .2s}
.stage-ctl button:hover{background:rgba(255,255,255,.06);color:var(--on-deep);border-color:var(--deep-line-2)}
.stage-ctl svg{width:18px;height:18px}
.rail{display:grid;gap:6px;counter-reset:rail}
@media (max-width:1000px){.rail{grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:thin}}
.rail button{appearance:none;cursor:pointer;text-align:left;padding:11px 14px;min-height:52px;border-radius:12px;border:1px solid var(--deep-line);background:rgba(255,255,255,.02);
  color:var(--on-deep-muted);font:inherit;font-size:.9rem;line-height:1.3;scroll-snap-align:start;position:relative;overflow:hidden;
  transition:background-color .2s,color .2s,border-color .2s}
.rail button:hover{color:var(--on-deep);border-color:var(--deep-line-2);background:rgba(255,255,255,.05)}
.rail button[aria-pressed="true"]{color:var(--on-deep);border-color:var(--teal);background:color-mix(in srgb,var(--teal) 20%,transparent);font-weight:600}
.rail button[aria-pressed="true"]::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--lime)}
.rail button span{display:block;font-family:var(--mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;opacity:.7;margin-bottom:3px;font-weight:500}
.walk-note{margin-top:16px;font-size:.78rem;color:var(--on-deep-muted);font-family:var(--mono);letter-spacing:.02em;line-height:1.65;max-width:90ch}
.walk-count{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;color:var(--on-deep-muted);margin:14px 2px 0}
@keyframes fade-up{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
::view-transition-old(wt-shot),::view-transition-new(wt-shot){animation-duration:.42s;animation-timing-function:cubic-bezier(.16,.9,.2,1)}

/* lightbox */
.lightbox{padding:0;border:0;background:transparent;max-width:min(1400px,96vw);max-height:94vh;width:100%;color:#E8F2F4}
.lightbox::backdrop{background:rgba(6,20,30,.86);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.lightbox[open]{animation:zoom-in .32s var(--ease) both}
@keyframes zoom-in{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:none}}
.lightbox img{display:block;width:100%;height:auto;max-height:84vh;object-fit:contain;border-radius:12px;background:#0A2030}
.lightbox .lb-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 2px}
.lightbox .lb-bar p{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:#C9D8DC}
.lightbox .icon-btn{color:#E8F2F4;border-color:rgba(255,255,255,.2)}
.lightbox .icon-btn:hover{background:rgba(255,255,255,.08)}

/* ---------- truth panels (TraceIT) ---------- */
.truth{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.panel{background:var(--deep-2);border:1px solid var(--deep-line);border-radius:16px;padding:18px 18px 16px;color:var(--on-deep);box-shadow:var(--shadow-2)}
.panel .top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}
.panel .ttl{font-family:var(--mono);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--on-deep-muted)}
.readings{display:grid;gap:10px;margin:0}
.readings>div{display:grid;grid-template-columns:120px 1fr;gap:4px 14px;align-items:baseline;padding:11px 0;border-top:1px solid var(--deep-line)}
.readings dt{font-family:var(--mono);font-size:.64rem;letter-spacing:.11em;text-transform:uppercase;color:var(--on-deep-muted)}
.readings dd{margin:0;font-size:1.3rem;font-weight:620;font-variant-numeric:tabular-nums;color:var(--on-deep);letter-spacing:-.01em}
.readings dd.absent{font-size:.95rem;font-weight:560;color:var(--on-deep)}
.readings .why{grid-column:2;margin:0;font-weight:400;font-size:.82rem;color:var(--on-deep-muted);line-height:1.45}
.panel.guess dd{color:#8FD0A0}
.panel.guess .top .pill{color:#8FD0A0;border-color:color-mix(in srgb,#8FD0A0 32%,transparent);background:color-mix(in srgb,#8FD0A0 12%,transparent)}
.panel.guess .verdict,.panel.honest .verdict{margin-top:12px;padding-top:12px;border-top:1px dashed var(--deep-line);font-size:.86rem;color:var(--on-deep-muted);line-height:1.5}
.panel.guess .verdict b{color:#F4A38F}
.panel.honest .verdict b{color:var(--lime)}
.panel.honest{border-color:color-mix(in srgb,var(--lime) 35%,var(--deep-line))}
@media (prefers-reduced-motion:no-preference){.panel.guess dd{animation:tick 3.6s steps(1) infinite}}
@keyframes tick{0%,100%{opacity:1}50%{opacity:.86}}
.truth-note{color:var(--muted);margin-top:14px}

/* ---------- delivery timeline / numbered steps ---------- */
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;position:relative;counter-reset:st}
.steps::before{content:"";position:absolute;left:12.5%;right:12.5%;top:21px;height:2px;background:var(--line-2)}
.instr .steps::before{background:var(--deep-line-2)}
.steps::after{content:"";position:absolute;left:12.5%;top:21px;height:2px;width:0;background:var(--grad)}
@media (prefers-reduced-motion:no-preference){.steps.in::after,.no-io .steps::after{animation:fill-line 3.4s var(--ease) .3s forwards}}
@media (prefers-reduced-motion:reduce){.steps::after{width:75%}}
@keyframes fill-line{to{width:75%}}
.steps li{position:relative;text-align:center;padding:0 10px}
.steps li .dot{display:grid;place-items:center;width:44px;height:44px;margin:0 auto 14px;border-radius:50%;background:var(--card-solid);border:2px solid var(--line-2);position:relative;z-index:1;
  font-family:var(--mono);font-size:.72rem;color:var(--muted);font-weight:500}
.instr .steps li .dot{background:var(--deep-2);border-color:var(--deep-line-2);color:var(--on-deep-muted)}
.steps li.proof .dot{border-color:var(--lime);color:var(--lime);box-shadow:0 0 0 6px color-mix(in srgb,var(--lime) 14%,transparent)}
.steps h3{font-size:.98rem;margin-bottom:6px}
.steps p{font-size:.86rem;color:var(--muted);line-height:1.5;max-width:26ch;margin-inline:auto}
.instr .steps p{color:var(--on-deep-muted)}
.steps .flag{display:inline-block;margin-top:10px;font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px dashed currentColor;color:var(--muted)}
.instr .steps .flag{color:var(--on-deep-muted)}
.steps li.proof .flag{border-style:solid;color:var(--lime)}
.band:not(.instr) .steps li.proof .dot{border-color:var(--teal);color:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--teal) 14%,transparent)}
.band:not(.instr) .steps li.proof .flag{color:var(--accent)}
@media (max-width:760px){
  .steps{grid-template-columns:1fr;gap:22px}
  .steps::before,.steps::after{left:21px;right:auto;top:22px;bottom:22px;width:2px;height:auto}
  .steps::after{height:0}
  @media (prefers-reduced-motion:no-preference){.steps.in::after,.no-io .steps::after{animation:fill-line-v 3.4s var(--ease) .3s forwards}}
  @media (prefers-reduced-motion:reduce){.steps::after{height:calc(100% - 44px)}}
  .steps li{text-align:left;padding:0 0 0 64px;min-height:44px}
  .steps li .dot{position:absolute;left:0;top:0;margin:0}
  .steps p{margin-inline:0;max-width:none}
}
@keyframes fill-line-v{to{height:calc(100% - 44px)}}
.steps.steps-v{grid-template-columns:1fr;gap:22px}
.steps.steps-v::before,.steps.steps-v::after{left:21px;right:auto;top:22px;bottom:22px;width:2px;height:auto}
.steps.steps-v::after{height:0}
@media (prefers-reduced-motion:no-preference){.steps.steps-v.in::after,.no-io .steps.steps-v::after{animation:fill-line-v 2.4s var(--ease) .3s forwards}}
@media (prefers-reduced-motion:reduce){.steps.steps-v::after{height:calc(100% - 44px)}}
.steps.steps-v li{text-align:left;padding:0 0 0 64px;min-height:44px}
.steps.steps-v li .dot{position:absolute;left:0;top:0;margin:0}
.steps.steps-v p{margin-inline:0;max-width:none}

/* ---------- diagrams ---------- */
.diagram{margin:0;position:relative}
.diagram svg{display:block;width:100%;height:auto;overflow:visible}
.diagram .d-tall{display:none}
@media (max-width:700px){.diagram .d-wide{display:none}.diagram .d-tall{display:block;max-width:420px;margin-inline:auto}}
.diagram figcaption{margin-top:14px;font-size:.88rem;color:var(--muted);text-align:center}
.instr .diagram figcaption{color:var(--on-deep-muted)}
.dg-link{fill:none;stroke:var(--line-2);stroke-width:1.5}
.dg-flow{fill:none;stroke:var(--teal);stroke-width:1.8;stroke-dasharray:5 9;stroke-linecap:round;opacity:.9}
@media (prefers-reduced-motion:no-preference){.dg-flow{animation:dash 1.6s linear infinite}}
@keyframes dash{to{stroke-dashoffset:-28}}
.dg-node rect{fill:var(--card-solid);stroke:var(--line-2);stroke-width:1.2}
.dg-node text{fill:var(--ink);font-family:var(--sans);font-size:15px;font-weight:560;letter-spacing:-.01em}
.dg-node.dim rect{fill:transparent;stroke-dasharray:4 4;stroke:var(--faint)}
.dg-node.dim text{fill:var(--muted);font-weight:500}
.dg-node.hub rect{fill:var(--accent);stroke:var(--accent)}
.dg-node.hub text{fill:var(--on-accent);font-weight:640}
.dg-node.out rect{stroke:var(--teal)}
.dg-label{fill:var(--muted);font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase}
.dg-pk{fill:var(--lime);stroke:var(--teal);stroke-width:1}
@media (prefers-reduced-motion:reduce){.dg-pk{display:none}}
.instr .dg-node rect{fill:var(--deep-2);stroke:var(--deep-line-2)}
.instr .dg-node text{fill:var(--on-deep)}
.instr .dg-node.hub rect{fill:var(--lime);stroke:var(--lime)}
.instr .dg-node.hub text{fill:#0B1F2C}
.instr .dg-link{stroke:var(--deep-line-2)}
.instr .dg-label{fill:var(--on-deep-muted)}
/* hub (Guest 360) */
.hub-dg .spoke{stroke:var(--line-2);stroke-width:1.4;fill:none}
.hub-dg .svc rect{fill:var(--card-solid);stroke:var(--line-2);stroke-width:1.4;transition:stroke .25s,fill .25s}
.hub-dg .svc text{fill:var(--ink);font-family:var(--sans);font-size:19px;font-weight:580;text-anchor:middle}
.hub-dg .svc:hover rect{stroke:var(--teal);fill:color-mix(in srgb,var(--teal) 12%,var(--card-solid))}
.hub-dg .core circle{fill:var(--accent)}
.hub-dg .core text{fill:var(--on-accent);font-family:var(--sans);font-weight:640;text-anchor:middle}
.hub-dg .orbit{fill:none;stroke:var(--teal);stroke-dasharray:3 7;opacity:.55}
@media (prefers-reduced-motion:no-preference){.hub-dg .orbit{animation:spin 60s linear infinite;transform-origin:center;transform-box:fill-box}}
@keyframes spin{to{transform:rotate(360deg)}}
.diagram .d-wide{max-width:1280px;margin-inline:auto}
.diagram .hub-dg.d-wide{max-width:720px}

/* ---------- services stack ---------- */
.stack{display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 120px}
.stack-layers{display:grid;gap:10px}
.layer{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:2px 14px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:var(--card-bg);
  text-decoration:none;color:var(--ink);box-shadow:var(--shadow-1);transition:transform .3s var(--ease),border-color .3s,box-shadow .3s}
.layer:hover,.layer:focus-visible{transform:translateX(6px);border-color:var(--teal);box-shadow:var(--shadow-2);text-decoration:none}
.layer .ix{font-family:var(--mono);font-size:.68rem;color:var(--accent);letter-spacing:.1em;grid-row:span 2}
.layer b{font-weight:620;font-size:1rem}
.layer small{grid-column:2;font-family:var(--mono);font-size:.68rem;color:var(--muted);letter-spacing:.04em}
.layer.l2{margin-inline:12px 0}.layer.l3{margin-inline:24px 0}.layer.l4{margin-inline:36px 0}
.stack-side{display:grid;gap:10px;grid-template-rows:1fr auto}
.watch{position:relative;overflow:hidden;border-radius:14px;background:linear-gradient(180deg,var(--deep-2),var(--deep));color:var(--on-deep);display:flex;flex-direction:column;justify-content:space-between;padding:14px 12px;text-decoration:none;min-height:180px}
.watch b{font-size:.92rem;font-weight:620}
.watch small{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lime)}
.watch::after{content:"";position:absolute;left:0;right:0;height:40%;top:-40%;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--lime) 26%,transparent),transparent)}
@media (prefers-reduced-motion:no-preference){.watch::after{animation:scan 3.8s ease-in-out infinite}}
@keyframes scan{to{top:100%}}
.watch:hover{text-decoration:none;box-shadow:var(--shadow-2)}
.crm{border-radius:14px;border:1px dashed var(--line-2);padding:12px;text-align:center;text-decoration:none;font-weight:600;font-size:.9rem;display:grid;gap:2px;background:var(--card-bg)}
.crm small{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500}
.crm:hover{border-style:solid;border-color:var(--teal);text-decoration:none}
@media (max-width:640px){.stack{grid-template-columns:1fr}.layer.l2,.layer.l3,.layer.l4{margin-inline:0}.stack-side{grid-template-columns:1fr 1fr;grid-template-rows:auto}.watch{min-height:96px}}
.svc-row{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,4vw,56px);padding-block:clamp(28px,4vw,44px);border-top:1px solid var(--line)}
.svc-row:first-child{border-top:0;padding-top:0}
.svc-row h3{font-size:clamp(1.3rem,2.4vw,1.75rem);letter-spacing:-.02em;margin:10px 0 0}
.svc-row .prose{color:var(--muted)}
.svc-row .chips{margin-top:16px}
.svc-row .kicker .glyph{width:40px;height:40px;margin:0 0 0 8px}
.svc-row .kicker .glyph svg{width:22px;height:22px}
@media (max-width:820px){.svc-row{grid-template-columns:1fr}}

/* ---------- Guest 360: journey, offline demo, languages ---------- */
.journey{position:relative;padding:34px 0 8px}
.journey .track{position:relative;height:2px;background:var(--line-2);border-radius:2px;margin:0 8px}
.journey .track::after{content:"";position:absolute;inset:0;background:var(--grad);transform-origin:left;transform:scaleX(1)}
.journey .ship{position:absolute;top:-15px;left:0;width:32px;height:32px;border-radius:50%;background:var(--btn-grad);color:var(--btn-ink);display:grid;place-items:center;box-shadow:0 0 0 6px color-mix(in srgb,var(--teal) 18%,transparent)}
.journey .ship svg{width:17px;height:17px}
@media (prefers-reduced-motion:no-preference){.journey .ship{animation:sail 9s ease-in-out infinite alternate}}
@keyframes sail{from{left:0}to{left:calc(100% - 32px)}}
.journey .ends{display:flex;justify-content:space-between;margin-top:18px;font-family:var(--mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.offline{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(20px,4vw,44px);align-items:center}
@media (max-width:640px){.offline{grid-template-columns:1fr}}
.offline .prose{color:var(--muted)}
.phone{width:210px;border-radius:30px;border:1.5px solid var(--line-2);background:var(--card-solid);padding:14px 12px 18px;box-shadow:var(--shadow-2);margin-inline:auto}
.phone .notch{width:64px;height:6px;border-radius:6px;background:var(--line-2);margin:2px auto 14px}
.phone .net{display:flex;align-items:center;justify-content:space-between;font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.phone .net i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--bad);margin-right:6px;vertical-align:-1px}
.offline[data-net="on"] .phone .net i{background:var(--good)}
.phone ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.phone li{border-radius:10px;border:1px solid var(--line);padding:9px 10px;display:grid;gap:6px;background:var(--bg)}
.phone li .ln{height:6px;border-radius:4px;background:var(--line-2);width:80%}
.phone li .ln.s{width:52%}
.phone li .st{font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);transition:color .3s}
.offline[data-net="on"] .phone li .st{color:var(--good)}
.offline .st .on,.offline[data-net="on"] .st .off{display:none}
.offline[data-net="on"] .st .on{display:inline}
@media (prefers-reduced-motion:no-preference){.offline[data-net="on"] .phone li{animation:sync .6s var(--ease) both}.offline[data-net="on"] .phone li:nth-child(2){animation-delay:.18s}.offline[data-net="on"] .phone li:nth-child(3){animation-delay:.36s}}
@keyframes sync{0%{transform:none}40%{transform:translateX(8px);border-color:var(--teal)}100%{transform:none}}
.langs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
@media (max-width:640px){.langs{grid-template-columns:repeat(2,minmax(0,1fr))}}
.langs li{list-style:none;border:1px solid var(--line);border-radius:14px;padding:18px 14px;background:var(--card-bg);display:grid;gap:4px;text-align:center;box-shadow:var(--shadow-1)}
.langs .w{font-size:1.5rem;font-weight:600;letter-spacing:-.01em}
.langs .en{font-family:var(--mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}

/* ---------- product switcher ---------- */
.switch-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border-radius:16px;border:1px solid var(--line);background:var(--card-bg);width:max-content;max-width:100%;margin-bottom:22px;box-shadow:var(--shadow-1)}
.no-js .switch-tabs{display:none}
.switch-tabs button{appearance:none;border:0;background:transparent;font:inherit;font-weight:580;font-size:.92rem;color:var(--muted);min-height:44px;padding:0 18px;border-radius:12px;cursor:pointer;transition:color .2s,background-color .2s}
.switch-tabs button:hover{color:var(--ink)}
.switch-tabs button[aria-selected="true"]{background:var(--btn-grad);color:var(--btn-ink);box-shadow:0 8px 20px -10px var(--btn-glow)}
.js .switch.live .sw-panel:not(.on){display:none}
.sw-panel{position:relative;overflow:hidden;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;padding:clamp(22px,3.5vw,44px);border:1px solid var(--line);border-radius:var(--r-xl);background:var(--card-bg);box-shadow:var(--shadow-2)}
.sw-panel::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(60% 70% at 100% 0%,var(--tone-soft,transparent),transparent 65%)}
.no-js .sw-panel+.sw-panel,.switch:not(.live) .sw-panel+.sw-panel{margin-top:16px}
.switch.live .sw-panel.on{animation:fade-up .5s var(--ease) both}
@media (max-width:860px){.sw-panel{grid-template-columns:1fr}}
.sw-panel h2{font-size:clamp(1.8rem,3.3vw,2.6rem);margin:10px 0 8px}
.sw-panel .blurb{font-size:1.1rem;color:var(--ink);font-weight:580;margin-bottom:12px}
.sw-panel .prose{color:var(--muted)}
.sw-panel dl{margin:18px 0 22px;display:grid;gap:12px}
.sw-panel dt{font-family:var(--mono);font-size:.64rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
.sw-panel dd{margin:0;font-weight:560}
.sw-visual{min-width:0}
.sw-visual.shot-v{border-radius:16px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-2)}
.sw-visual.shot-v img{display:block;width:100%;height:auto}

/* ---------- projects ---------- */
.proj{display:flex;flex-direction:column;gap:12px}
.proj .where{display:flex;flex-wrap:wrap;gap:8px}
.proj :is(h2,h3){font-size:clamp(1.2rem,2vw,1.45rem);letter-spacing:-.02em;line-height:1.2}
.proj .status{display:flex;align-items:flex-start;gap:10px;font-size:.9rem;color:var(--muted);padding:12px 14px;border-radius:12px;border:1px dashed var(--line-2);background:color-mix(in srgb,var(--bg) 60%,transparent)}
.proj .status i{flex:none;width:8px;height:8px;border-radius:50%;margin-top:.5em;background:var(--faint)}
.proj .art{height:132px;border-radius:14px;margin:-4px 0 6px;overflow:hidden;position:relative;background:linear-gradient(135deg,color-mix(in srgb,var(--teal) 18%,transparent),color-mix(in srgb,var(--sky) 14%,transparent))}
.proj .art svg{position:absolute;inset:0;width:100%;height:100%}
.proj .art .g{stroke:color-mix(in srgb,var(--accent) 30%,transparent);stroke-width:1;fill:none}
.proj .art .b{fill:color-mix(in srgb,var(--accent) 55%,transparent)}
.proj .art .b2{fill:color-mix(in srgb,var(--lime) 80%,transparent)}
.checklist{list-style:none;display:grid;gap:10px;margin:0;padding:0;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}
.checklist li{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--card-bg);font-size:.93rem;color:var(--muted);box-shadow:var(--shadow-1)}
.checklist li b{color:var(--ink)}
.checklist li svg{flex:none;width:18px;height:18px;color:var(--teal);margin-top:2px}

/* ---------- people ---------- */
.people{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.person{display:flex;align-items:center;gap:18px;padding:22px;border-radius:18px;border:1px solid var(--line);background:var(--card-bg);box-shadow:var(--shadow-1)}
.mono-av{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;position:relative;font-family:var(--mono);font-weight:500;font-size:1.02rem;color:var(--accent);background:var(--card-solid)}
.mono-av::before{content:"";position:absolute;inset:-2px;border-radius:50%;padding:2px;background:conic-gradient(from 200deg,var(--lime),var(--teal),var(--navy),var(--lime));
  -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)}
.person h3{font-size:1.08rem;margin-bottom:4px}
.person p{font-size:.9rem;color:var(--muted)}

/* ---------- address & map ---------- */
.addr{font-style:normal;line-height:1.7;font-size:1.02rem}
.addr strong{display:block;margin-bottom:4px}
.map{position:relative;width:100%;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--card-bg);aspect-ratio:4/3;max-height:560px;box-shadow:var(--shadow-2)}
@media (max-width:520px){.map{aspect-ratio:4/5}}
.map{background:radial-gradient(circle at 50% 46%,color-mix(in srgb,var(--teal) 20%,transparent),transparent 34%),
  repeating-linear-gradient(0deg,transparent 0 31px,color-mix(in srgb,var(--line-2) 55%,transparent) 31px 32px),
  repeating-linear-gradient(90deg,transparent 0 31px,color-mix(in srgb,var(--line-2) 55%,transparent) 31px 32px),var(--card-solid)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.map-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:12px;font-size:.9rem}
.map-links svg{width:18px;height:18px;color:var(--accent);flex:none}

/* ---------- forms ---------- */
.form-shell{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(24px,4vw,56px);align-items:start}
@media (max-width:900px){.form-shell{grid-template-columns:1fr}}
.form-card{border:1px solid var(--line);border-radius:22px;background:var(--card-bg);padding:clamp(20px,3.4vw,38px);box-shadow:var(--shadow-2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.form-grid{display:grid;gap:18px 16px;grid-template-columns:1fr 1fr}
.form-grid .full{grid-column:1/-1}
@media (max-width:620px){.form-grid{grid-template-columns:1fr}}
.field-row label,.field-row .lbl{display:block;font-weight:600;font-size:.92rem;margin-bottom:7px}
.field-row label .opt{font-weight:400;color:var(--muted);font-size:.84rem;margin-left:4px}
.field-row input,.field-row select,.field-row textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--card-solid);border:1px solid var(--line-2);border-radius:12px;
  padding:12px 14px;min-height:48px;transition:border-color .18s,box-shadow .18s,background-color .18s}
.field-row textarea{min-height:160px;resize:vertical;line-height:1.55}
.field-row select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);
  background-position:calc(100% - 20px) 21px,calc(100% - 15px) 21px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:40px}
.field-row input:hover,.field-row select:hover,.field-row textarea:hover{border-color:var(--faint)}
.field-row input:focus,.field-row select:focus,.field-row textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.field-row [aria-invalid="true"]{border-color:var(--bad);box-shadow:0 0 0 3px color-mix(in srgb,var(--bad) 16%,transparent)}
.field-row .hint{font-size:.82rem;color:var(--muted);margin-top:6px;display:flex;justify-content:space-between;gap:10px}
.field-row .err{font-size:.84rem;color:var(--bad);margin-top:6px;font-weight:560;display:flex;gap:6px;align-items:flex-start}
.field-row .err:empty{display:none}
.field-row .err::before{content:"!";flex:none;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--bad);color:var(--bg);font-size:.7rem;font-weight:700;margin-top:2px}
.check{display:flex;gap:12px;align-items:flex-start;font-size:.92rem;color:var(--muted);line-height:1.5}
.check input{flex:none;width:20px;height:20px;margin:2px 0 0;accent-color:var(--accent)}
.check label{font-weight:400;margin:0}
.hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.ts-box{min-height:0}
.form-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin-top:6px}
.form-foot p{font-size:.84rem;color:var(--muted);max-width:44ch}
.alert{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:14px;border:1px solid;font-size:.93rem;line-height:1.5;margin-bottom:18px}
.alert[hidden]{display:none}
.alert.err{border-color:color-mix(in srgb,var(--bad) 45%,transparent);background:var(--bad-bg);color:var(--ink)}
.alert.info{border-color:var(--line-2);background:var(--card-solid);color:var(--ink)}
.alert svg{flex:none;width:20px;height:20px;margin-top:1px}
.alert.err svg{color:var(--bad)}
.alert.info svg{color:var(--accent)}
.alert a{font-weight:600}
.spinner{width:18px;height:18px;border-radius:50%;border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;display:none}
.btn[aria-busy="true"] .spinner{display:block;animation:spin .8s linear infinite}
.btn[aria-busy="true"] .arrow{display:none}
.side-stack{display:grid;gap:14px}
.side-card{border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--card-bg);box-shadow:var(--shadow-1)}
.side-card h2,.side-card h3{font-size:1rem;margin-bottom:8px;letter-spacing:-.01em}
.side-card p{font-size:.92rem;color:var(--muted)}
.side-card .big-mail{font-size:1.12rem;font-weight:620;color:var(--accent);text-decoration:none;word-break:break-all}
.side-card .big-mail:hover{text-decoration:underline}
.ref{font-family:var(--mono);font-size:1.05rem;letter-spacing:.06em;padding:3px 10px;border-radius:8px;background:var(--card-solid);border:1px solid var(--line-2)}

/* ---------- CTA band ---------- */
.cta{position:relative;overflow:hidden;isolation:isolate;color:var(--on-deep);
  background:radial-gradient(70% 90% at 100% 0%,rgba(157,211,115,.30),transparent 60%),radial-gradient(60% 80% at 0% 100%,rgba(56,189,216,.28),transparent 60%),linear-gradient(120deg,#0E3348 0%,#0F4A5E 45%,#14605F 80%,#1D6A50 100%)}
.cta .field{opacity:.7}
.sky-cta .a1{background:radial-gradient(closest-side,rgba(157,211,115,.26),transparent 72%)}
.sky-cta .a2{background:radial-gradient(closest-side,rgba(56,189,216,.3),transparent 72%)}
.sky-cta .a3{background:radial-gradient(closest-side,rgba(255,255,255,.08),transparent 72%)}
.cta .dots{--dot:rgba(255,255,255,.14)}
.cta h2{color:var(--on-deep);max-width:18ch;margin:12px 0 16px}
.cta .eyebrow{color:var(--lime)}
.cta p:not(.eyebrow):not(.actions){color:#CFE2E6;max-width:56ch}
.cta .actions{margin-top:28px}
.cta a:not(.btn){color:var(--on-deep)}

/* ---------- footer ---------- */
.foot{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,var(--bg),var(--bg-2));box-shadow:inset 0 1px 0 var(--line-soft);padding-block:clamp(48px,6vw,80px) 28px;font-size:.9rem;color:var(--muted)}
.foot-glow{position:absolute;z-index:-1;left:50%;bottom:-40%;width:90vmax;height:50vmax;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,var(--glow-2),transparent 70%);opacity:.5;pointer-events:none}
.foot-grid{display:grid;gap:32px;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr))}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot h2{font-family:var(--mono);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink);font-weight:500;margin-bottom:14px}
.foot ul{list-style:none;display:grid;gap:8px}
.foot a{color:var(--muted);text-decoration:none}
.foot a:hover{color:var(--ink);text-decoration:underline}
.foot .brand-block{display:grid;gap:14px;align-content:start}
.foot .brand-block img{width:40px;height:40px}
.foot .brand-block strong{color:var(--ink);font-weight:620;font-size:1rem}
.foot-tag{font-size:1.05rem;font-weight:560;color:var(--ink);max-width:28ch;line-height:1.35}
.foot address{font-style:normal;line-height:1.65}
.foot-dir{margin-top:10px}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:40px;padding-top:20px;border-top:1px solid var(--line);font-size:.82rem}
.foot-base .sig{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;display:flex;align-items:center;gap:8px}
.foot-base .sig i{width:6px;height:6px;border-radius:50%;background:var(--lime);display:block;box-shadow:0 0 8px var(--lime)}

/* ---------- 404 ---------- */
.lost{min-height:62vh;display:grid;align-items:center}
.lost .code{font-family:var(--mono);font-size:.8rem;letter-spacing:.2em;color:var(--accent)}
.phead.lost .wrap{min-height:64vh;display:flex;flex-direction:column;justify-content:center}

/* ---------- misc ---------- */
.mt-1{margin-top:12px}.mt-2{margin-top:22px}.mt-3{margin-top:28px}.mt-4{margin-top:36px}
.nav .only-m{display:none}
@media (max-width:1060px){.nav .only-m{display:block}}
.sector-lines{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
.sl-link{display:grid;grid-template-columns:128px minmax(0,1fr);gap:16px;align-items:center;padding:10px 14px 10px 10px;border-radius:14px;border:1px solid var(--deep-line);background:rgba(255,255,255,.035);
  text-decoration:none;color:var(--on-deep);transition:border-color .25s,transform .25s var(--ease),background-color .25s}
.sl-link:hover{border-color:var(--teal);transform:translateY(-2px);text-decoration:none;background:rgba(255,255,255,.06)}
.sl-img{display:block;border-radius:9px;overflow:hidden;aspect-ratio:1400/914;background:var(--deep-3)}
.sl-img img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}
.sl-n{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--lime);margin-bottom:5px}
.sl-t{display:block;font-size:.9rem;line-height:1.45;color:var(--on-deep)}
@media (max-width:420px){.sl-link{grid-template-columns:92px minmax(0,1fr);gap:12px}}
/* the stacked screen on the TraceIT page head */
.deck{position:relative;perspective:1600px;min-width:0}
.deck .sheet{position:absolute;width:82%;border-radius:14px;overflow:hidden;background:var(--deep-2);border:1px solid var(--deep-line-2);box-shadow:0 40px 80px -40px rgba(0,0,0,.7);
  transform-origin:50% 50%;transition:transform .9s var(--ease)}
.deck .sheet img{display:block;width:100%;height:auto}
.deck .sheet .bar{display:flex;align-items:center;gap:5px;height:24px;padding:0 10px;border-bottom:1px solid var(--deep-line);background:var(--deep-3)}
.deck .sheet .bar i{width:7px;height:7px;border-radius:50%;background:var(--deep-line-2)}
.deck .sheet .bar span{margin-left:8px;font-family:var(--mono);font-size:.56rem;letter-spacing:.1em;color:var(--on-deep-muted);text-transform:uppercase}
.deck-one{aspect-ratio:1.45}
.deck-one .sheet.s3{left:3%;top:4%;width:94%;transform:rotateY(-14deg) rotateX(5deg)}
@media (hover:hover) and (prefers-reduced-motion:no-preference){.deck-one:hover .sheet.s3{transform:rotateY(-6deg) rotateX(2deg) scale(1.02)}}
@media (prefers-reduced-motion:no-preference){.deck-one{animation:float 9s ease-in-out infinite alternate}}
@keyframes float{from{transform:translateY(-6px)}to{transform:translateY(8px)}}
@media (min-width:921px){.phead .deck-one{width:100%;max-width:780px;justify-self:end}}
@media (max-width:920px){.deck-one{max-width:560px;width:100%;margin-inline:auto}}
@media (max-width:600px){.deck-one{aspect-ratio:auto;animation:none}.deck-one .sheet.s3{position:relative;left:0;top:0;width:100%;transform:none}}
.framed{display:block;width:100%;height:auto;border-radius:16px;border:1px solid var(--deep-line-2);box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.prose-doc{max-width:72ch}
.pv{padding-block:22px;border-top:1px solid var(--line)}
.pv:first-child{border-top:0;padding-top:0}
.pv h2{font-size:clamp(1.2rem,2.2vw,1.5rem);margin-bottom:12px;letter-spacing:-.015em}
.pv p{color:var(--muted);margin-top:10px}
.pv p:first-of-type{margin-top:0}
.pv .list-dots{margin:6px 0 10px}
.pv .list-dots li{font-size:1rem}
.pv b{color:var(--ink)}
.h-inline{font-size:1.02rem;letter-spacing:-.01em;margin-bottom:6px}
.no-js .js-only{display:none}
.tiles{list-style:none;margin:0;padding:0;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.tiles li{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:16px;border:1px solid var(--line);background:var(--card-bg);font-weight:600;font-size:.98rem;line-height:1.35;box-shadow:var(--shadow-1)}
.tiles .glyph{margin:0;width:42px;height:42px}
.tiles .glyph svg{width:22px;height:22px}
@media (max-width:640px){
  .sectors{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--gut) * -1);padding-inline:var(--gut);scroll-snap-type:x proximity}
  .sectors::-webkit-scrollbar{display:none}
  .sectors button{flex:none;scroll-snap-align:start}
}
@media (max-width:480px){.frame-bar>span{display:none}}

/* ---------- motion: reveal ---------- */
@keyframes reveal-in{from{opacity:0;transform:translateY(28px) scale(.985)}to{opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(18px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@media (prefers-reduced-motion:no-preference){
  .rise{animation:rise .85s var(--ease) both}
  .d1{animation-delay:.07s}.d2{animation-delay:.15s}.d3{animation-delay:.25s}.d4{animation-delay:.36s}
  @supports (animation-timeline:view()){
    .reveal{animation:reveal-in linear both;animation-timeline:view();animation-range:entry 2% cover 26%}
  }
  @supports not (animation-timeline:view()){
    .io .reveal{opacity:0;transform:translateY(20px);transition:opacity .6s ease,transform .75s var(--ease)}
    .io .reveal.in{opacity:1;transform:none}
  }
}
@media print{.reveal,.rise{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}.head,.progress,.field,.sky,.dots,.rays,.cta .actions,body::after{display:none!important}}

/* ---------- cross-document view transitions ---------- */
@media (prefers-reduced-motion:no-preference){
  @view-transition{navigation:auto}
  .head{view-transition-name:site-head}
  .progress{view-transition-name:site-progress}
  ::view-transition-group(root){animation-duration:.45s}
  ::view-transition-old(root){animation:.22s ease-in both vt-out}
  ::view-transition-new(root){animation:.5s var(--ease) both vt-in}
}
.vt-local::view-transition-old(root),.vt-local::view-transition-new(root){animation:none}
@keyframes vt-out{to{opacity:0;transform:translateY(-10px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(18px)}}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

/* ---------- wide screens: the page spans 95% of the window; components keep sensible proportions ---------- */
@media (min-width:1100px){
  .grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
  .grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}
  .tiles,.checklist{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sector-lines{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1280px){.fgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1500px){.sector-lines{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1400px){
  .walk-grid{grid-template-columns:minmax(0,1fr)}
  .rail-wrap{order:-1;display:flex;align-items:center;gap:16px}
  .rail{flex:1;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  .rail button[aria-pressed="true"]::after{left:0;right:0;top:auto;bottom:0;width:auto;height:3px}
  .walk-count{margin:0;flex:none}
  .shot-item figure{display:grid;grid-template-columns:minmax(0,1fr) clamp(320px,24vw,460px)}
  .shot-item figcaption{border-top:0;border-left:1px solid var(--deep-line);padding:28px 26px}
  .cap-t{font-size:1.3rem}
}

/* ---------- product showcase: the product's screens sliding in the middle, what it covers around them ---------- */
.showcase{--sc-gap:12px;position:relative;max-width:1180px;margin-inline:auto;display:grid;gap:var(--sc-gap);
  grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:auto 1fr 1fr 1fr auto;
  grid-template-areas:". a b c d ." "e s s s s f" "g s s s s h" "i s s s s j" ". k l m n ."}
.sc-stage{grid-area:s;position:relative;margin:0;min-width:0;border-radius:20px;overflow:hidden;isolation:isolate;
  background:var(--card-solid);border:1px solid color-mix(in srgb,var(--tone,var(--teal)) 34%,var(--line));
  box-shadow:0 2px 6px rgba(12,31,43,.06),0 40px 80px -40px color-mix(in srgb,var(--tone,var(--teal)) 70%,rgba(21,68,95,.6))}
.sc-stage::before{content:"";position:absolute;inset:-60%;z-index:-2;background:conic-gradient(from var(--beam),transparent 0 68%,var(--tone,var(--teal)) 78%,var(--teal) 86%,transparent 94%);opacity:.9}
.sc-stage::after{content:"";position:absolute;inset:1.5px;z-index:-1;border-radius:19px;background:var(--card-solid)}
@media (prefers-reduced-motion:no-preference){.sc-stage::before{animation:beam 9s linear infinite}}
.sc-bar{display:flex;align-items:center;gap:6px;padding:8px 8px 8px 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface-2),var(--card-solid))}
.sc-bar>i{width:9px;height:9px;border-radius:50%;background:var(--line-2);flex:none}
.sc-bar>i:nth-child(1){background:#F28B82}.sc-bar>i:nth-child(2){background:#F6C26B}.sc-bar>i:nth-child(3){background:#8BD17C}
.sc-addr{margin-left:8px;flex:1;min-width:0;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  padding:5px 10px;border-radius:999px;background:var(--bg);border:1px solid var(--line)}
.sc-ctl{display:flex;gap:4px;flex:none}
.sc-btn{appearance:none;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;border:1px solid var(--line);background:var(--card-solid);color:var(--ink);cursor:pointer;transition:border-color .2s,background-color .2s}
.sc-btn:hover{border-color:var(--tone,var(--teal))}
.sc-btn svg{width:16px;height:16px}
.sc-btn .i-play{display:none}.sc-btn[aria-pressed="true"] .i-play{display:block}.sc-btn[aria-pressed="true"] .i-pause{display:none}
.sc-view{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--bg-2)}
.sc-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left;opacity:0;transform:scale(1.02);transition:opacity .7s var(--ease),transform 4.2s linear}
.sc-img.on{opacity:1;transform:none;z-index:1}
.sc-prog{position:absolute;left:0;right:0;bottom:0;height:3px;z-index:2;background:rgba(12,31,43,.08)}
.sc-prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--tone,var(--teal)),var(--teal))}
.showcase.playing .sc-prog i{animation:sc-prog var(--sc-int,3800ms) linear forwards}
.showcase.held .sc-prog i{animation-play-state:paused}
@keyframes sc-prog{from{width:0}to{width:100%}}
.sc-cap{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-top:1px solid var(--line);font-size:.86rem}
.sc-now{min-width:0;display:flex;align-items:baseline;gap:10px;overflow:hidden}
.sc-now b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:640}
.sc-count{font-family:var(--mono);font-size:.68rem;color:var(--muted);flex:none}
.sc-try{flex:none;display:inline-flex;align-items:center;gap:6px;font-weight:600;color:var(--accent);text-decoration:none;font-size:.84rem}
.sc-try svg{width:15px;height:15px;transition:transform .2s}.sc-try:hover svg{transform:translateX(3px)}
.sc-feats{grid-column:1 / -1;grid-row:1 / -1;display:grid;grid-template-columns:subgrid;grid-template-rows:subgrid;list-style:none;margin:0;padding:0;pointer-events:none}
.sc-f{pointer-events:auto;min-width:0;display:flex}
.sc-f.fa{grid-area:a}.sc-f.fb{grid-area:b}.sc-f.fc{grid-area:c}.sc-f.fd{grid-area:d}.sc-f.fe{grid-area:e}.sc-f.ff{grid-area:f}.sc-f.fg{grid-area:g}
.sc-f.fh{grid-area:h}.sc-f.fi{grid-area:i}.sc-f.fj{grid-area:j}.sc-f.fk{grid-area:k}.sc-f.fl{grid-area:l}.sc-f.fm{grid-area:m}.sc-f.fn{grid-area:n}
.sc-fb{appearance:none;font:inherit;text-align:left;color:var(--ink);width:100%;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:14px 14px 13px;border-radius:16px;
  background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow-1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:border-color .25s,box-shadow .25s,transform .25s var(--ease),background-color .25s;position:relative;overflow:hidden}
button.sc-fb{cursor:pointer}
button.sc-fb:hover{border-color:color-mix(in srgb,var(--tone,var(--teal)) 60%,var(--line));transform:translateY(-2px)}
.sc-fb b{font-size:.9rem;font-weight:640;line-height:1.2;letter-spacing:-.01em}
.sc-fb small{font-size:.74rem;line-height:1.35;color:var(--muted)}
.sc-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;margin-bottom:4px;flex:none;color:var(--tone-ink,var(--accent));
  background:linear-gradient(145deg,var(--tone-soft,rgba(53,144,142,.15)),transparent);border:1px solid color-mix(in srgb,var(--tone,var(--teal)) 30%,transparent)}
.sc-ic svg{width:19px;height:19px}
.sc-fb[aria-current="true"]{border-color:var(--tone,var(--teal));box-shadow:0 18px 36px -18px var(--tone,var(--teal)),inset 0 0 0 1px var(--tone,var(--teal));transform:translateY(-2px)}
.sc-fb[aria-current="true"]::after{content:"";position:absolute;top:12px;right:12px;width:8px;height:8px;border-radius:50%;background:var(--tone,var(--teal));box-shadow:0 0 0 4px var(--tone-soft,rgba(53,144,142,.2))}
@media (prefers-reduced-motion:no-preference){.sc-fb[aria-current="true"]::after{animation:sc-dot 1.6s ease-in-out infinite}}
@keyframes sc-dot{50%{box-shadow:0 0 0 7px transparent}}
span.sc-fb{opacity:.92}
.sc-band{padding-block:clamp(10px,2vw,24px) var(--band-y)}
.sc-note{max-width:1180px;margin:18px auto 0;text-align:center;color:var(--muted);font-size:.9rem}
.sc-note a{font-weight:600}
@supports not (grid-template-rows:subgrid){
  .showcase{display:block}
  .sc-feats{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-top:12px;pointer-events:auto}
  .sc-f[class]{grid-area:auto}
}
@media (max-width:1100px){.sc-fb small{display:none}.sc-fb{padding:12px 12px 11px}.sc-fb b{font-size:.84rem}}
@media (max-width:760px){
  .showcase{display:block}
  .sc-feats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px;pointer-events:auto}
  .sc-f[class]{grid-area:auto}
  .sc-fb{flex-direction:row;align-items:center;gap:10px;padding:10px 12px;border-radius:14px}
  .sc-ic{margin:0;width:30px;height:30px}
  .sc-addr{display:none}
}
@media (max-width:380px){.sc-feats{grid-template-columns:minmax(0,1fr)}}
.js .sc-img:not(.on){visibility:hidden}.js .sc-img.on,.js .sc-img.leaving{visibility:visible}

/* products hub panels: copy on top, the showcase below */
.sw-panel.has-sc{display:block}
.sw-top{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(20px,4vw,56px);align-items:center;margin-bottom:clamp(20px,3vw,34px)}
.sw-top .actions{margin:0}
@media (max-width:900px){.sw-top{grid-template-columns:minmax(0,1fr)}}

/* every screen, as thumbnails */
.gallery{display:grid;gap:30px}
.gal-group h3{display:flex;align-items:center;gap:10px;font-size:1.05rem;margin:0 0 12px}
.gal-n{font-family:var(--mono);font-size:.66rem;font-weight:500;color:var(--muted);padding:2px 8px;border-radius:999px;border:1px solid var(--line)}
.gal-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:14px}
.gal-card{display:flex;flex-direction:column;gap:6px;height:100%;padding:8px 8px 12px;border-radius:16px;text-decoration:none;color:var(--ink);background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow-1);transition:border-color .2s,transform .25s var(--ease),box-shadow .25s}
.gal-card:hover{border-color:color-mix(in srgb,var(--tone,var(--teal)) 60%,var(--line));transform:translateY(-3px);box-shadow:var(--shadow-2)}
.gal-img{display:block;border-radius:10px;overflow:hidden;border:1px solid var(--line);aspect-ratio:16/10;background:var(--bg-2)}
.gal-img img{display:block;width:100%;height:100%;object-fit:cover;object-position:top left}
.gal-t{font-weight:640;font-size:.92rem;padding:4px 4px 0}
.gal-d{font-size:.8rem;color:var(--muted);line-height:1.45;padding:0 4px}
@media (max-width:700px){
  .gallery{gap:22px}
  .gal-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(64%,240px);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:2px 2px 10px;margin-inline:-2px}
  .gal-grid>li{scroll-snap-align:start}
  .gal-d{display:none}
}

/* ---------- Try it: the click-through walk-through ---------- */
.sim-band{padding-top:clamp(20px,3vw,36px)}
.sim{display:none}
.js .sim{display:block}
.js .sim-fallback{display:none}
.sim-fallback{padding:22px;border-radius:var(--r-lg);border:1px dashed var(--line-2)}
.sim-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.sim-tabs button{appearance:none;font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 18px;min-height:56px;border-radius:16px;
  background:var(--card-bg);border:1px solid var(--line);color:var(--ink);text-align:left;box-shadow:var(--shadow-1);transition:border-color .2s,box-shadow .2s,background-color .2s}
.sim-tabs button b{font-weight:640;font-size:.98rem}
.sim-tabs button small{font-size:.74rem;color:var(--muted)}
.sim-tabs button:hover{border-color:var(--line-2)}
.sim-tabs button[aria-selected="true"]{background:var(--btn-grad);color:var(--btn-ink);border-color:transparent;box-shadow:0 14px 30px -14px var(--btn-glow)}
.sim-tabs button[aria-selected="true"] small{color:inherit;opacity:.85}
.sim-grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px;align-items:start}
.sim-nav{position:sticky;top:88px;max-height:calc(100vh - 110px);display:flex;flex-direction:column;gap:10px;min-width:0}
.sim-find{display:flex;align-items:center;gap:8px;padding:0 12px;height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card-solid)}
.sim-find svg{width:17px;height:17px;color:var(--muted);flex:none}
.sim-find input{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-size:.92rem;color:var(--ink);outline:none;height:100%;padding:0;margin:0;box-shadow:none;border-radius:0;-webkit-appearance:none;appearance:none}
.sim-find:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}
.sim-pick{display:none}
.sim-pick select{width:100%;height:46px;border-radius:12px;border:1px solid var(--line);background:var(--card-solid);color:var(--ink);font:inherit;padding:0 12px}
.sim-list{overflow:auto;padding:4px 4px 12px 0;border-radius:14px;overscroll-behavior:contain}
.sim-g{margin-bottom:12px}
.sim-gt{font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 6px 10px}
.sim-g ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.sim-g a{display:block;padding:8px 10px;border-radius:10px;font-size:.88rem;color:var(--ink);text-decoration:none;line-height:1.3;border:1px solid transparent}
.sim-g a:hover{background:var(--card-bg);border-color:var(--line)}
.sim-g a[aria-current="page"]{background:color-mix(in srgb,var(--accent) 12%,var(--card-solid));border-color:color-mix(in srgb,var(--accent) 40%,var(--line));font-weight:640}
.sim-main{min-width:0;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--card-solid);box-shadow:var(--shadow-2)}
.sim-bar{display:flex;align-items:center;gap:6px;padding:8px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--surface-2),var(--card-solid))}
.sim-btn{appearance:none;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--card-solid);color:var(--ink);cursor:pointer;flex:none}
.sim-btn svg{width:17px;height:17px}
.sim-btn:disabled{opacity:.4;cursor:default}
.sim-btn:not(:disabled):hover{border-color:var(--accent)}
.sim-btn[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 14%,var(--card-solid));border-color:var(--accent);color:var(--accent)}
.sim-url{flex:1;min-width:0;margin:0 4px;display:flex;align-items:center;gap:2px;height:36px;padding:0 14px;border-radius:999px;border:1px solid var(--line);background:var(--bg);
  font-family:var(--mono);font-size:.74rem;color:var(--muted);white-space:nowrap;overflow:hidden}
.sim-host{color:var(--ink)}
.sim-url span:last-child{overflow:hidden;text-overflow:ellipsis}
.sim-screen{position:relative;background:var(--bg-2)}
.sim-canvas{position:relative;cursor:pointer}
.sim-img{display:block;width:100%;height:auto}
.sim-canvas.busy .sim-img{opacity:.55;transition:opacity .2s}
@media (prefers-reduced-motion:no-preference){.sim-canvas.enter .sim-img{animation:sim-in .35s var(--ease)}}
@keyframes sim-in{from{opacity:.35;transform:scale(.995)}to{opacity:1;transform:none}}
.sim-hs{position:absolute;inset:0}
.sim-hs .hs{position:absolute;appearance:none;padding:0;margin:0;border:0;background:transparent;cursor:pointer;border-radius:8px}
.sim-hs .hs:hover,.sim-hs .hs:focus-visible,.sim-hs.show .hs,.sim-hs.flash .hs{background:color-mix(in srgb,#35908E 16%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,#12667A 75%,transparent)}
.sim-hs .hs.off:hover,.sim-hs.show .hs.off,.sim-hs.flash .hs.off{background:rgba(120,120,120,.10);box-shadow:inset 0 0 0 2px rgba(120,120,120,.45)}
.sim-hs .hs:focus-visible{outline:3px solid #12667A;outline-offset:1px}
@media (prefers-reduced-motion:no-preference){.sim-hs.flash .hs{animation:hs-flash 1.1s ease-out}}
@keyframes hs-flash{0%{opacity:0}25%{opacity:1}100%{opacity:.85}}
.sim-toast{position:absolute;left:50%;bottom:16px;transform:translate(-50%,8px);margin:0;max-width:min(92%,560px);padding:10px 16px;border-radius:12px;font-size:.86rem;
  background:#0C2536;color:#EAF3F4;box-shadow:0 18px 40px -16px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:3}
.sim-toast.on{opacity:1;transform:translate(-50%,0)}
.sim-info{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px 18px;border-top:1px solid var(--line)}
.sim-group{margin:0 0 2px;font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}
.sim-copy h3{font-size:1.2rem;margin:0 0 4px}
.sim-copy p:last-child{margin:0;color:var(--muted);font-size:.92rem}
.sim-next{text-align:right}
.sim-next>p{margin:0 0 6px;font-family:var(--mono);font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
.sim-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.sim-chip{appearance:none;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;padding:7px 12px;border-radius:999px;border:1px solid var(--line);background:var(--card-bg);color:var(--ink)}
.sim-chip:hover{border-color:var(--accent);color:var(--accent)}
.sim-note{display:flex;gap:10px;align-items:flex-start;margin:14px 0 0;color:var(--muted);font-size:.84rem}
.sim-note svg{width:17px;height:17px;flex:none;margin-top:2px}
.sim.full{position:fixed;inset:0;z-index:80;margin:0;padding:10px;background:var(--bg);overflow:auto}
.sim.full .sim-tabs,.sim.full .sim-nav,.sim.full .sim-note{display:none}
.sim.full .sim-grid{grid-template-columns:minmax(0,1fr)}
.sim.full .sim-main{max-width:min(100%,calc((100vh - 170px) * 1.6));margin-inline:auto}
html.sim-open{overflow:hidden}
@media (max-width:1100px){
  .sim-grid{grid-template-columns:minmax(0,1fr)}
  .sim-nav{position:static;max-height:none}
  .sim-list,.sim-find{display:none}
  .sim-pick{display:block}
  .sim-info{grid-template-columns:minmax(0,1fr)}
  .sim-next{text-align:left}.sim-chips{justify-content:flex-start}
}
@media (max-width:700px){
  .sim-screen{overflow-x:auto;overscroll-behavior-x:contain}
  .sim-canvas{width:880px;max-width:none}
  .sim-toast{position:sticky;left:12px;bottom:12px;display:block;transform:none;margin:0 12px 12px;max-width:none}
  .sim-toast:not(.on){display:none}
  .sim-tabs button{flex:1 1 100%}
}
.sim-swipe{display:none;align-items:center;gap:8px;margin:0;padding:8px 12px;font-size:.8rem;color:var(--muted);border-bottom:1px solid var(--line)}
.sim-swipe svg{width:16px;height:16px;flex:none}
@media (max-width:700px){.sim-swipe{display:flex}}
.trial-steps{align-self:center}

/* ---------- pricing ---------- */
.pgrid{display:grid;gap:18px}
.pgrid.three{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.pgrid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));max-width:980px}
.pcard{position:relative;overflow:hidden;isolation:isolate;display:flex;flex-direction:column;gap:12px;padding:clamp(22px,3vw,30px);border-radius:var(--r-xl);
  background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow-2)}
.pcard::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(80% 60% at 100% 0%,var(--tone-soft),transparent 60%)}
.pc-top{display:flex;align-items:center;gap:12px}
.pc-top .eyebrow{margin:0}
.pcard h3{font-size:1.35rem;margin:0}
.price{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;margin:4px 0 2px}
.price .cur{font-size:1.6rem;font-weight:600;color:var(--tone-ink)}
.price .amt{font-size:clamp(2.6rem,5vw,3.4rem);font-weight:700;letter-spacing:-.04em;line-height:1;background:var(--grad-ink);-webkit-background-clip:text;background-clip:text;color:transparent}
.price .per{font-size:.95rem;color:var(--muted);font-weight:560}
.price.ask .amt-t{font-size:1.6rem;font-weight:650;letter-spacing:-.02em}
.pcard .pf-list{flex:1}
.pcard .actions{margin:6px 0 0}
.pc-note{font-size:.84rem;color:var(--muted);margin:0}
.plans{margin-top:18px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:22px 24px;border-radius:var(--r-xl);
  border:1px dashed color-mix(in srgb,var(--teal) 55%,var(--line-2));background:linear-gradient(90deg,color-mix(in srgb,var(--teal) 10%,transparent),transparent 70%)}
.plans h3{margin:0 0 4px;font-size:1.15rem}
.plans p{margin:0}
.plans .actions{margin:0}
@media (max-width:760px){.plans{grid-template-columns:minmax(0,1fr)}}
.faq{border:1px solid var(--line);border-radius:14px;background:var(--card-bg);margin-bottom:10px;padding:0 18px}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:56px;font-weight:620}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-size:1.3rem;color:var(--accent);transition:transform .2s}
.faq[open] summary::after{transform:rotate(45deg)}
.faq p{margin:0 0 16px;color:var(--muted)}

/* home: quick links under the products */
.quick{list-style:none;margin:22px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}
.quick a{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:18px;text-decoration:none;color:var(--ink);background:var(--card-bg);border:1px solid var(--line);box-shadow:var(--shadow-1);transition:border-color .2s,transform .25s var(--ease)}
.quick a:hover{border-color:var(--line-2);transform:translateY(-2px)}
.quick span:not(.glyph){flex:1;display:flex;flex-direction:column;line-height:1.3}
.quick small{color:var(--muted);font-size:.84rem}
.quick a>svg{width:18px;height:18px;color:var(--accent);flex:none}

/* ---- v2.4: questions and answers, analytics choice, the Google Analytics question */
.faq .faq-more{margin:-6px 0 16px}
.faq .faq-more .more{font-size:.92rem}
.faq-all{margin:18px 0 0}
.a-choice{margin:14px 0 6px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--card-bg)}
.a-choice fieldset{border:0;margin:0;padding:0;min-width:0}
.a-choice legend{font-weight:650;margin-bottom:8px;padding:0}
.a-choice .choice{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--line-soft);cursor:pointer;line-height:1.45}
.a-choice .choice:first-of-type{border-top:0}
.a-choice input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--accent)}
.a-choice .a-status{margin:8px 0 0;min-height:1.4em;color:var(--muted);font-size:.92rem}
.a-nojs{color:var(--muted);font-size:.92rem}
.consent{position:fixed;z-index:60;left:16px;right:16px;bottom:max(16px,env(safe-area-inset-bottom));max-width:560px;padding:16px 18px;
  border:1px solid var(--line-2);border-radius:var(--r-lg);background:var(--card-solid);color:var(--ink);box-shadow:var(--shadow-2);font-size:.92rem;line-height:1.5}
.consent p{margin:0}
.consent .consent-actions{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}
@media (min-width:760px){.consent{left:24px;right:auto;bottom:24px}}
@media print{.consent{display:none}}
.faq-split{display:grid;grid-template-columns:minmax(200px,1fr) minmax(0,2.2fr);gap:clamp(24px,5vw,80px);align-items:start}
.faq-split .band-head{position:sticky;top:96px;margin:0}
@media (max-width:860px){.faq-split{grid-template-columns:minmax(0,1fr);gap:0}.faq-split .band-head{position:static;margin-bottom:20px}}
