/* ============================================================
   CUROTA · THE LIVING CANVAS — shared design system
   Mint (#03c39a) is a strict semantic: it only ever marks
   "annotation happening now" — never decoration.
   ============================================================ */
:root{
  --teal:#203e40; --teal-700:#1a3133; --teal-900:#142728;
  --mint:#03c39a; --mint-dim:#2a9d8f;
  --l1:#e8f4f3; --l2:#e5f5f3; --l3:#d8e9e7;
  --ink:#14201f; --ink-soft:#5d7574; --paper:#f4faf9; --white:#fff;
  --grid:rgba(3,195,154,.06); --hair:rgba(255,255,255,.14); --hair-ink:rgba(32,62,64,.12);
  --ease:cubic-bezier(.2,.9,.1,1); --ease-soft:cubic-bezier(.4,0,.2,1);
  --maxw:1240px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--teal);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
::selection{background:var(--mint);color:var(--teal-900)}
a{color:inherit}

/* HUD */
.hud{position:fixed;inset:0;pointer-events:none;z-index:90}
.hud .corner{position:absolute;width:26px;height:26px;border:1.5px solid var(--mint);opacity:.55}
.hud .tl{top:16px;left:16px;border-right:0;border-bottom:0}
.hud .tr{top:16px;right:16px;border-left:0;border-bottom:0}
.hud .bl{bottom:16px;left:16px;border-right:0;border-top:0}
.hud .br{bottom:16px;right:16px;border-left:0;border-top:0}
.hud .readout{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);
  font-family:'JetBrains Mono',monospace;font-size:10.5px;letter-spacing:.12em;color:rgba(255,255,255,.7);
  background:rgba(20,39,40,.55);border:1px solid var(--hair);padding:5px 12px;border-radius:2px;
  backdrop-filter:blur(6px);white-space:nowrap;text-transform:uppercase}
.hud .readout b{color:var(--mint);font-weight:500}
body.on-light .hud .corner{border-color:var(--mint-dim);opacity:.6}
body.on-light .hud .readout{color:var(--ink-soft);background:rgba(244,250,249,.7);border-color:var(--hair-ink)}
@media(max-width:760px){.hud .readout{display:none}}

/* nav */
nav{position:fixed;top:0;left:0;right:0;height:64px;z-index:100;display:flex;align-items:center;
  transition:background .4s var(--ease-soft),border-color .4s;border-bottom:1px solid transparent}
nav.scrolled{background:rgba(20,39,40,.72);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair)}
body.on-light nav.scrolled{background:rgba(244,250,249,.8);border-bottom:1px solid var(--hair-ink)}
.nav-in{max-width:var(--maxw);margin:0 auto;width:100%;padding:0 40px;display:flex;align-items:center;justify-content:space-between}
.logo{font-weight:800;font-size:1.2rem;letter-spacing:-.02em;color:var(--white);text-decoration:none;
  display:inline-flex;align-items:center}
.logo .mark{width:1.15em;height:1.15em;flex:none;margin-right:.45em;background:url(img/logo-mark-light.svg) center/contain no-repeat}
body.on-light nav .logo .mark{background-image:url(img/logo-mark.svg)}
.logo .dot{color:var(--mint)}
body.on-light .logo{color:var(--teal)}
.nav-links{display:flex;gap:30px;list-style:none;align-items:center}
.nav-links a{color:rgba(255,255,255,.72);text-decoration:none;font-size:.83rem;font-weight:500;transition:color .2s;position:relative}
.nav-links a:hover,.nav-links a.cur{color:var(--white)}
.nav-links a:not(.btn)::after{content:'';position:absolute;left:0;right:100%;bottom:-6px;height:1.5px;background:var(--mint);transition:right .3s var(--ease)}
.nav-links a:not(.btn):hover::after,.nav-links a.cur::after{right:0}
body.on-light .nav-links a{color:var(--ink-soft)}
body.on-light .nav-links a:hover,body.on-light .nav-links a.cur{color:var(--teal)}
.btn{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.84rem;text-decoration:none;cursor:pointer;
  border:1.5px solid transparent;padding:10px 20px;border-radius:2px;
  transition:transform .25s var(--ease),background .25s,color .25s,border-color .25s;will-change:transform}
.btn-mint{background:var(--mint);color:var(--teal-900)}
.btn-mint:hover{background:#04d9ab}
.btn-ghost{background:transparent;color:var(--white);border-color:var(--hair)}
.btn-ghost:hover{border-color:var(--mint);color:var(--mint)}
body.on-light .btn-ghost{color:var(--teal);border-color:var(--hair-ink)}

/* sections */
section{position:relative;padding:120px 40px}
.wrap{max-width:var(--maxw);margin:0 auto;position:relative}
.label{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mint);display:flex;align-items:center;gap:10px;margin-bottom:22px}
.label::before{content:'';width:26px;height:1px;background:var(--mint);opacity:.6}
h2.big{font-size:clamp(2rem,4.2vw,3.3rem);font-weight:800;line-height:1.04;letter-spacing:-.03em;color:var(--white)}
.lt h2.big,body.on-light h2.big{color:var(--teal)}
.sub{font-size:1.05rem;line-height:1.7;color:rgba(255,255,255,.66);max-width:600px;margin-top:18px}
.lt .sub,body.on-light .sub{color:var(--ink-soft)}
.lt{background:var(--paper);color:var(--ink)}

.crop{position:relative}
.crop::before,.crop::after{content:'';position:absolute;width:14px;height:14px;border:1.5px solid var(--mint);opacity:.5;pointer-events:none}
.crop::before{top:-7px;left:-7px;border-right:0;border-bottom:0}
.crop::after{bottom:-7px;right:-7px;border-left:0;border-top:0}

.rv{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv[data-d="1"]{transition-delay:.08s}.rv[data-d="2"]{transition-delay:.16s}
.rv[data-d="3"]{transition-delay:.24s}.rv[data-d="4"]{transition-delay:.32s}

/* interior page hero */
.page-hero{padding:160px 40px 90px;background:radial-gradient(120% 120% at 70% -10%,var(--teal-700),var(--teal) 60%,var(--teal-900));position:relative;overflow:hidden}
.page-hero .hero-grid{position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:44px 44px;mask-image:radial-gradient(100% 100% at 70% 0%,#000,transparent 75%)}
.page-hero .wrap{z-index:2}
.page-hero h1{font-size:clamp(2.6rem,5.4vw,4.4rem);font-weight:800;letter-spacing:-.04em;color:var(--white);line-height:1.02}
.page-hero p{font-size:1.1rem;line-height:1.7;color:rgba(255,255,255,.68);max-width:600px;margin-top:20px}

/* footer */
footer{background:var(--teal-900);padding:70px 40px 40px;border-top:1px solid var(--hair)}
.f-grid{max-width:var(--maxw);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px}
.f-brand .logo{font-size:1.3rem}
.f-brand p{color:rgba(255,255,255,.45);font-size:.85rem;line-height:1.6;margin-top:14px;max-width:250px}
.f-brand a{color:var(--mint);text-decoration:none}
.f-col h4{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:16px}
.f-col a{display:block;color:rgba(255,255,255,.66);text-decoration:none;font-size:.88rem;margin-bottom:10px;transition:color .2s}
.f-col a:hover{color:var(--mint)}
.f-bottom{max-width:var(--maxw);margin:48px auto 0;padding-top:22px;border-top:1px solid var(--hair);
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
  font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.08em;color:rgba(255,255,255,.4);text-transform:uppercase}
.f-bottom .stat b{color:var(--mint);font-weight:500}

/* final cta band */
.final{background:radial-gradient(110% 120% at 50% 0%,var(--teal-700),var(--teal-900));text-align:center}
.final h2{font-size:clamp(2rem,4.6vw,3.2rem);font-weight:800;color:var(--white);letter-spacing:-.03em;line-height:1.08;max-width:780px;margin:0 auto}
.final h2 .acc{color:var(--mint)}
.final p{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);margin:22px 0 34px}

/* ===== HOME hero ===== */
.hero{min-height:100vh;display:flex;align-items:center;padding:64px 40px 0;background:radial-gradient(120% 90% at 70% 10%,var(--teal-700),var(--teal) 55%,var(--teal-900))}
.hero-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(100% 100% at 70% 20%,#000,transparent 80%)}
.hero-in{max-width:var(--maxw);margin:0 auto;width:100%;display:grid;grid-template-columns:1.05fr 1.15fr;gap:56px;align-items:center;position:relative;z-index:2}
.pill{display:inline-flex;align-items:center;gap:9px;font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mint);border:1px solid rgba(3,195,154,.32);background:rgba(3,195,154,.07);padding:7px 14px;border-radius:2px;margin-bottom:26px}
.pill .blip{width:6px;height:6px;border-radius:50%;background:var(--mint);animation:blip 2s infinite}
@keyframes blip{0%{box-shadow:0 0 0 0 rgba(3,195,154,.5)}70%{box-shadow:0 0 0 7px rgba(3,195,154,0)}100%{box-shadow:0 0 0 0 rgba(3,195,154,0)}}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.3rem);font-weight:800;line-height:1.02;letter-spacing:-.04em;color:var(--white)}
.hero h1 .acc{position:relative;white-space:nowrap}
.hero h1 .acc svg{position:absolute;left:0;right:0;bottom:-.12em;width:100%;height:.36em;overflow:visible}
.hero h1 .acc path{stroke:var(--mint);stroke-width:3;fill:none;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1s var(--ease) .7s}
.hero.lit h1 .acc path{stroke-dashoffset:0}
.hero p.lead{font-size:1.08rem;line-height:1.72;color:rgba(255,255,255,.7);max-width:480px;margin:26px 0 32px}
.hero-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.trust{font-family:'JetBrains Mono',monospace;font-size:.74rem;color:rgba(255,255,255,.5);margin-top:22px;display:flex;align-items:center;gap:9px}
.trust .tick{color:var(--mint)}
.canvas-wrap{position:relative}
.frame-head{display:flex;justify-content:space-between;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55);margin-bottom:8px;padding:0 2px}
.frame-head .st{color:var(--mint)}
.canvas{position:relative;width:100%;aspect-ratio:8/5.4;border:1px solid var(--hair);background:var(--teal-900);overflow:hidden}
.canvas svg{position:absolute;inset:0;width:100%;height:100%;display:block}
#hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;transition:opacity .6s var(--ease);z-index:1;filter:saturate(.92) contrast(1.04)}
#hero-svg{opacity:0;transition:opacity .6s var(--ease);z-index:2}
#hero-canvas.annotated #hero-video{opacity:0}
#hero-canvas.annotated #hero-svg{opacity:1}
.sweep{position:absolute;top:0;bottom:0;left:0;width:2px;background:var(--mint);box-shadow:0 0 16px 1px var(--mint);opacity:0;z-index:6;pointer-events:none}
.sweep.go{animation:sweep .75s var(--ease) forwards}
@keyframes sweep{0%{left:-1%;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:101%;opacity:0}}
.xhair{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;z-index:4}
.canvas:hover .xhair{opacity:1}
.xhair .vx,.xhair .hx{position:absolute;background:rgba(3,195,154,.45)}
.xhair .vx{top:0;bottom:0;width:1px}.xhair .hx{left:0;right:0;height:1px}
.xhair .coord{position:absolute;font-family:'JetBrains Mono',monospace;font-size:9px;color:var(--mint);background:rgba(20,39,40,.8);padding:2px 5px;transform:translate(8px,8px)}
.abox rect{fill:none;stroke:var(--mint);stroke-width:1.6;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset .5s var(--ease)}
.abox.draw rect{stroke-dashoffset:0}
.abox .tag{opacity:0;transition:opacity .3s .4s}.abox.draw .tag{opacity:1}
.abox .tag rect{fill:var(--mint);stroke:none;transition:none}
.abox .tag text{fill:var(--teal-900);font-family:'JetBrains Mono',monospace;font-size:8px;font-weight:700}
.abox .corner{stroke:var(--mint);stroke-width:2;opacity:0;transition:opacity .3s}.abox.draw .corner{opacity:1}
.scene-shape{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.12);stroke-width:1}
.scene-road{stroke:rgba(255,255,255,.07);stroke-width:1}

/* worklist (differentiators) */
.worklist{margin-top:54px;border-top:1px solid var(--hair-ink)}
.wrow{display:grid;grid-template-columns:64px 1fr 1.1fr;gap:28px;align-items:center;padding:34px 8px;border-bottom:1px solid var(--hair-ink);position:relative}
.wrow .idx{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--mint-dim);letter-spacing:.1em}
.wrow h3{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;color:var(--teal)}
.wrow p{font-size:.95rem;line-height:1.65;color:var(--ink-soft)}
.wrow .mini{justify-self:end}
.wrow::after{content:'';position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--mint);transition:width .9s var(--ease)}
.wrow.in::after{width:100%}
.mini svg{display:block;width:96px;height:64px;overflow:visible}
.mini .dash{stroke:var(--mint-dim);stroke-width:1.5;fill:none;stroke-dasharray:var(--l);stroke-dashoffset:var(--l);transition:stroke-dashoffset 1s var(--ease) .2s}
.wrow.in .mini .dash{stroke-dashoffset:0}
.mini .dot{fill:var(--mint);opacity:0;transition:opacity .3s .9s}.wrow.in .mini .dot{opacity:1}
.mini .sol{fill:rgba(3,195,154,.16);stroke:var(--mint-dim);stroke-width:1.2}

/* partner strip */
.partners{background:var(--teal-700);padding:46px 40px;border-top:1px solid var(--hair);border-bottom:1px solid var(--hair)}
.partners .wrap{display:flex;align-items:center;gap:40px;flex-wrap:wrap;justify-content:center}
.partners .plabel{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.partners img{height:26px;opacity:.7;filter:brightness(0) invert(1);transition:opacity .3s}
.partners img:hover{opacity:1}

/* poc band */
.poc{background:var(--teal-900);text-align:center}.poc .wrap{max-width:760px}
.poc h2{font-size:clamp(1.8rem,3.6vw,2.6rem);font-weight:800;color:var(--white);letter-spacing:-.02em}
.poc p{color:rgba(255,255,255,.66);font-size:1.05rem;line-height:1.7;margin:16px auto 30px;max-width:520px}
.poc .cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}

/* precision ladder */
.ladder{display:grid;grid-template-columns:1fr 1.15fr;gap:56px;margin-top:56px;align-items:start}
.step{padding:30px 0;border-top:1px solid var(--hair);opacity:.38;transition:opacity .4s}
.step:last-child{border-bottom:1px solid var(--hair)}
.step.active{opacity:1}
.step .sidx{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.14em;color:var(--mint);margin-bottom:10px}
.step h3{font-size:1.5rem;font-weight:700;color:var(--white);letter-spacing:-.02em;margin-bottom:8px}
.step p{font-size:.94rem;line-height:1.6;color:rgba(255,255,255,.6);max-width:440px}
.step a{color:var(--mint);font-family:'JetBrains Mono',monospace;font-size:.72rem;text-decoration:none;letter-spacing:.06em;display:inline-block;margin-top:12px}
.reel{position:sticky;top:120px}.reel .canvas{aspect-ratio:1/1}
.reel .ann{opacity:0;transition:opacity .5s var(--ease)}.reel .ann.show{opacity:1}
.draw-stroke{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1s var(--ease)}
.ann.show .draw-stroke{stroke-dashoffset:0}

/* industries */
.ind-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:24px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.filters button{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:transparent;border:1px solid var(--hair-ink);padding:8px 16px;border-radius:2px;cursor:pointer;transition:all .25s var(--ease)}
.filters button.active,.filters button:hover{background:var(--teal);color:var(--white);border-color:var(--teal)}
.ind-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair-ink);margin-top:40px;border:1px solid var(--hair-ink)}
.icard{background:var(--paper);padding:38px;position:relative;cursor:pointer;overflow:hidden;transition:background .3s;min-height:260px;display:flex;flex-direction:column}
.icard:hover{background:var(--white)}
.icard .ivis{position:absolute;top:0;right:0;width:170px;height:170px;opacity:.5;transition:opacity .4s}
.icard:hover .ivis{opacity:1}
.icard .ivis .draw-stroke{stroke-dashoffset:var(--len)}
.icard:hover .ivis .draw-stroke{stroke-dashoffset:0;transition:stroke-dashoffset .8s var(--ease)}
.icard .iconbox{width:48px;height:48px;border-radius:8px;background:var(--l1);display:flex;align-items:center;justify-content:center;margin-bottom:18px;color:var(--teal)}
.icard .itag{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mint-dim)}
.icard h3{font-size:1.4rem;font-weight:700;color:var(--teal);letter-spacing:-.02em;margin:auto 0 10px;max-width:64%}
.icard p{font-size:.9rem;line-height:1.6;color:var(--ink-soft);max-width:80%}
.icard .more{font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;color:var(--teal);margin-top:18px;text-transform:uppercase}
.icard .docs{margin-top:14px;font-size:.8rem;color:var(--mint-dim)}
.icard .docs a{color:var(--teal);font-weight:700;text-decoration:underline}
.icard.hide{display:none}

/* metrics */
.metrics{background:var(--teal-900)}
.met-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:48px}
.met{background:var(--teal);padding:40px 30px}
.met .v{font-family:'JetBrains Mono',monospace;font-size:clamp(1.9rem,3.4vw,2.7rem);font-weight:700;color:var(--white);line-height:1;letter-spacing:-.02em}
.met .v .u{font-size:.95rem;color:var(--mint);margin-left:4px}
.met .band{height:3px;background:rgba(255,255,255,.1);margin:18px 0 14px;position:relative;overflow:hidden}
.met .band i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--mint);transition:width 1.4s var(--ease)}
.met.in .band i{width:var(--w)}
.met .lab{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);line-height:1.5}
.met.tol .band{height:10px}.met.tol .band i{width:10px}

/* blog */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair-ink);border:1px solid var(--hair-ink);margin-top:48px}
.bcard{background:var(--paper);padding:32px;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:background .3s}
.bcard:hover{background:var(--white)}
.bcard .bt{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mint-dim);margin-bottom:auto}
.bcard h3{font-size:1.15rem;font-weight:700;color:var(--teal);line-height:1.32;margin:40px 0 12px;letter-spacing:-.01em}
.bcard .meta{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--ink-soft);letter-spacing:.04em}

/* ===== SERVICES catalog ===== */
.svc-layout{display:grid;grid-template-columns:230px 1fr;gap:60px;align-items:start}
.toc{position:sticky;top:110px}
.toc h4{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mint-dim);margin-bottom:16px}
.toc a{display:block;font-size:.92rem;color:var(--ink-soft);text-decoration:none;padding:8px 0 8px 16px;border-left:2px solid var(--hair-ink);transition:all .2s}
.toc a:hover,.toc a.cur{color:var(--teal);border-left-color:var(--mint);font-weight:600}
.svc-group{margin-bottom:70px}
.svc-group-head{display:flex;align-items:center;gap:16px;padding:18px 22px;background:var(--l1);border-radius:4px;margin-bottom:36px}
.svc-group-head .gicon{width:44px;height:44px;background:rgba(32,62,64,.1);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--teal)}
.svc-group-head h2{font-size:1.8rem;font-weight:800;color:var(--teal);letter-spacing:-.02em}
.svc-group-head .gcount{margin-left:auto;font-family:'JetBrains Mono',monospace;font-size:.72rem;color:var(--ink-soft);letter-spacing:.08em}
.spec{display:grid;grid-template-columns:120px 1fr;gap:30px;padding:32px 0;border-top:1px solid var(--hair-ink)}
.spec:first-of-type{border-top:0}
.spec .spec-vis{position:relative}
.spec .spec-vis svg{width:96px;height:96px;color:var(--mint-dim)}
.spec .spec-no{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--mint-dim);letter-spacing:.1em;margin-top:10px}
.spec h3{font-size:1.4rem;font-weight:700;color:var(--teal);letter-spacing:-.02em;margin-bottom:6px}
.spec .deftext{font-size:.95rem;color:var(--teal);font-weight:500;margin-bottom:16px;line-height:1.55}
.spec .blk{margin-top:16px}
.spec .blk .bl{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mint-dim);margin-bottom:6px}
.spec .blk p{font-size:.92rem;line-height:1.7;color:var(--ink-soft)}

/* ===== ABOUT ===== */
.about-story{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:10px}
.story-card{background:var(--paper);border:1px solid var(--hair-ink);border-radius:6px;padding:42px}
.story-card h2{font-size:1.7rem;font-weight:800;color:var(--teal);letter-spacing:-.02em;margin-bottom:16px}
.story-card p{font-size:1rem;line-height:1.75;color:var(--ink-soft)}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair);margin-top:56px}
.stat-row .st{background:var(--teal);padding:34px}
.stat-row .st .v{font-family:'JetBrains Mono',monospace;font-size:2rem;font-weight:700;color:var(--white)}
.stat-row .st .v .u{font-size:.9rem;color:var(--mint)}
.stat-row .st .l{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);margin-top:8px}
.team-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:48px}
.tcard{background:var(--paper);border:1px solid var(--hair-ink);border-radius:6px;padding:30px;transition:transform .3s var(--ease),box-shadow .3s}
.tcard:hover{transform:translateY(-4px);box-shadow:0 14px 40px rgba(32,62,64,.1)}
.tcard .av{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--l3);margin-bottom:18px;background:var(--l1)}
.tcard .nm{font-size:1.15rem;font-weight:800;color:var(--teal);letter-spacing:-.01em}
.tcard .badge{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;background:var(--teal);color:var(--white);padding:4px 10px;border-radius:2px;margin:10px 0}
.tcard .bio{font-size:.86rem;line-height:1.65;color:var(--ink-soft)}
.tcard .loc{font-family:'JetBrains Mono',monospace;font-size:.68rem;color:var(--mint-dim);margin-top:14px;letter-spacing:.04em}

/* responsive */
@media(max-width:980px){
  .svc-layout{grid-template-columns:1fr;gap:30px}.toc{position:static;display:flex;gap:10px;flex-wrap:wrap}
  .toc a{border-left:0;border:1px solid var(--hair-ink);border-radius:2px;padding:6px 12px}
  .about-story{grid-template-columns:1fr}.team-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:900px){
  .hero-in,.ladder{grid-template-columns:1fr;gap:40px}.reel{position:static}
  .met-grid{grid-template-columns:1fr 1fr}.blog-grid,.ind-grid{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr 1fr}.nav-links{display:none}
  .wrow{grid-template-columns:40px 1fr;gap:16px}.wrow .mini{display:none}
  .stat-row{grid-template-columns:1fr}.team-grid{grid-template-columns:1fr}
  .spec{grid-template-columns:1fr;gap:14px}.spec .spec-vis svg{width:64px;height:64px}
  section{padding:84px 22px}.page-hero{padding:130px 22px 70px}
}
@media(prefers-reduced-motion:reduce){
  *{transition-duration:.001s!important;animation:none!important}
  .rv{opacity:1;transform:none}.abox rect,.draw-stroke{stroke-dashoffset:0!important}
  .hero h1 .acc path{stroke-dashoffset:0!important}
}

/* ============================================================
   V2 · GOD-TIER ELEVATION LAYER
   Brand type · real footage · live console · contact · polish
   (appended overrides — cascade intentionally wins)
   ============================================================ */

/* --- Brand display type: Poppins — rounded-geometric, matches the real
   Curota brand face (Allround Gothic) without the DEMO-font watermark --- */
:root{--font-display:'Poppins','Inter',system-ui,sans-serif}
.logo,h1,h2.big,.hero h1,.page-hero h1,.final h2,.poc h2,.svc-group-head h2,
.story-card h2,.wrow h3,.step h3,.icard h3,.spec h3,.tcard .nm{
  font-family:var(--font-display);letter-spacing:-.02em}
.hero h1,.page-hero h1{letter-spacing:-.028em}
.logo{letter-spacing:-.01em}

/* --- Filmic texture on dark: barely-there grain + vignette for depth --- */
body::after{content:'';position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.4;
  mix-blend-mode:soft-light;transition:opacity .5s;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E")}
body.on-light::after{opacity:.14}

/* ============ REAL-FOOTAGE MEDIA PRIMITIVES ============ */
.vid-fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.canvas .vid-fill{z-index:1;filter:saturate(1.02) contrast(1.03)}
/* scanline shimmer + live grade over any live canvas */
.canvas::after{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(rgba(3,195,154,.05),transparent 12%,transparent 88%,rgba(3,195,154,.05)),
             repeating-linear-gradient(0deg,rgba(0,0,0,0) 0 2px,rgba(0,0,0,.06) 2px 3px);
  mix-blend-mode:overlay;opacity:.6}
.canvas .grade{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:radial-gradient(120% 90% at 50% 0%,transparent 55%,rgba(11,26,27,.42))}

/* ============ HERO · LIVE ANNOTATION CONSOLE ============ */
.hero{padding-bottom:70px}
.canvas-wrap .frame-head b{color:var(--mint)}
.deck{display:flex;gap:6px;margin-top:9px;padding:0 2px}
.deck .cell{flex:1;height:3px;background:rgba(255,255,255,.14);position:relative;overflow:hidden;border-radius:2px}
.deck .cell i{position:absolute;inset:0;width:0;background:var(--mint);box-shadow:0 0 8px var(--mint)}
.deck .cell.on i{width:100%;transition:width var(--dwell,4s) linear}
.deck .cell.done i{width:100%}
.hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.hero-tag{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.55);border:1px solid var(--hair);padding:5px 9px;border-radius:2px;transition:.3s}
.hero-tag.on{color:var(--teal-900);background:var(--mint);border-color:var(--mint)}
/* fade/scale transitions between showcase clips */
.canvas .vid-fill{opacity:0;transform:scale(1.04);transition:opacity .7s var(--ease),transform 4.5s linear}
.canvas .vid-fill.live{opacity:1;transform:scale(1)}
.canvas .stamp{position:absolute;left:12px;bottom:12px;z-index:5;font-family:'JetBrains Mono',monospace;
  font-size:.62rem;letter-spacing:.1em;color:var(--mint);background:rgba(11,26,27,.6);
  border:1px solid rgba(3,195,154,.3);padding:4px 8px;backdrop-filter:blur(4px);text-transform:uppercase}
.canvas .rec{position:absolute;right:12px;top:12px;z-index:5;display:flex;align-items:center;gap:6px;
  font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.14em;color:#ff5a52;text-transform:uppercase}
.canvas .rec::before{content:'';width:7px;height:7px;border-radius:50%;background:#ff5a52;animation:blip 1.4s infinite}

/* ============ PRECISION LADDER · REAL VIDEO REEL ============ */
.reel .canvas{aspect-ratio:1/1;background:#0b1a1b}
.reel .clip{position:absolute;inset:0;opacity:0;transition:opacity .55s var(--ease)}
.reel .clip.show{opacity:1}
.reel .clip video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel .clip .badge{position:absolute;left:12px;top:12px;font-family:'JetBrains Mono',monospace;font-size:.62rem;
  letter-spacing:.12em;color:var(--teal-900);background:var(--mint);padding:4px 9px;text-transform:uppercase;font-weight:700;z-index:2}
.step{cursor:pointer}
.step h3{transition:color .3s}
.step.active h3{color:var(--mint)}

/* ============ INDUSTRIES · FOOTAGE ON DEMAND ============ */
.icard{min-height:300px}
.icard .ifeed{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity .5s var(--ease);background:#0b1a1b}
.icard .ifeed video,.icard .ifeed img{width:100%;height:100%;object-fit:cover;background:#0b1a1b}
.icard .ifeed::after{content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(20,39,40,.35),rgba(20,39,40,.86))}
.icard:hover .ifeed{opacity:1}
.icard.dark-feed>*:not(.ifeed){position:relative;z-index:1}
.icard:hover.dark-feed h3,.icard:hover.dark-feed p,.icard:hover.dark-feed .itag,.icard:hover.dark-feed .more{color:#fff}
.icard:hover.dark-feed .itag,.icard:hover.dark-feed .more{color:var(--mint)}
.icard:hover.dark-feed .ivis{opacity:0}
.icard:hover.dark-feed .docs{color:rgba(255,255,255,.8)}
.icard:hover.dark-feed .docs a{color:var(--mint)}

/* section eyebrow "live" dot on dark data sections */
.metrics .label::after,.reel-live::after{content:'';width:6px;height:6px;border-radius:50%;background:var(--mint);animation:blip 2s infinite;margin-left:2px}

/* ============ CONTACT FORM ============ */
.contact-wrap{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:start;margin-top:40px}
.contact-lead .big{margin-bottom:18px}
.contact-meta{margin-top:30px;display:flex;flex-direction:column;gap:14px}
.contact-meta .row{display:flex;align-items:center;gap:12px;font-size:.95rem;color:rgba(255,255,255,.72)}
.contact-meta .row .k{font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mint);min-width:74px}
.contact-meta a{color:#fff;text-decoration:none;border-bottom:1px solid var(--hair)}
.contact-meta a:hover{border-color:var(--mint);color:var(--mint)}
.cform{background:rgba(11,26,27,.55);border:1px solid var(--hair);border-radius:8px;padding:30px;backdrop-filter:blur(8px)}
.cform .fr{margin-bottom:16px}
.cform .fr.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cform label{display:block;font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.12em;
  text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:7px}
.cform input,.cform textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid var(--hair);
  border-radius:4px;padding:12px 14px;color:#fff;font-family:'Inter',sans-serif;font-size:.94rem;
  transition:border-color .2s,background .2s;outline:none}
.cform input:focus,.cform textarea:focus{border-color:var(--mint);background:rgba(3,195,154,.06)}
.cform input::placeholder,.cform textarea::placeholder{color:rgba(255,255,255,.3)}
.cform textarea{resize:vertical;min-height:110px}
.cform .consent{display:flex;align-items:flex-start;gap:10px;font-size:.82rem;color:rgba(255,255,255,.62);line-height:1.55;margin:4px 0 18px;
  text-transform:none;letter-spacing:normal;font-family:'Inter',sans-serif}
.cform .consent input{width:16px;height:16px;margin-top:2px;accent-color:var(--mint);flex:none}
.cform .consent a{color:var(--mint);text-decoration:none}
.cform button[type=submit]{width:100%;justify-content:center;padding:14px}
.cform button[disabled]{opacity:.5;cursor:not-allowed}
.cform .fstatus{margin-top:14px;font-family:'JetBrains Mono',monospace;font-size:.76rem;letter-spacing:.04em;min-height:1em}
.cform .fstatus.ok{color:var(--mint)}.cform .fstatus.err{color:#ff6b61}

/* ============ SERVICES · real annotation stills ============ */
.spec-shot{margin-top:18px;border:1px solid var(--hair-ink);border-radius:6px;overflow:hidden;position:relative;background:#0b1a1b;aspect-ratio:16/9}
.spec-shot img,.spec-shot video{width:100%;height:100%;object-fit:cover;display:block}
.spec-shot .cap{position:absolute;left:10px;bottom:10px;font-family:'JetBrains Mono',monospace;font-size:.6rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--mint);background:rgba(11,26,27,.72);padding:3px 8px;border-radius:2px}

/* section-wide showreel band for services hero */
.showreel{position:relative;height:260px;border:1px solid var(--hair);border-radius:8px;overflow:hidden;margin-top:34px}
.showreel video{width:100%;height:100%;object-fit:cover}
.showreel .ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,39,40,.85),rgba(20,39,40,.25) 60%,transparent);display:flex;align-items:center;padding:0 34px}
.showreel .ov .mono{color:var(--mint);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}

/* ============ RESPONSIVE (v2) ============ */
@media(max-width:900px){
  .contact-wrap{grid-template-columns:1fr;gap:30px}
  .cform .fr.two{grid-template-columns:1fr}
  .hero-tags{display:none}
}
@media(prefers-reduced-motion:reduce){
  .canvas .vid-fill{transform:none!important}
  body::after{display:none}
  .deck .cell.on i{transition:none;width:100%}
}

/* ---- mobile nav (hamburger) ---- */
.nav-toggle{display:none;background:none;border:0;cursor:pointer;width:42px;height:42px;padding:0;position:relative;z-index:120}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:5px auto;border-radius:2px;transition:transform .3s var(--ease),opacity .2s}
body.on-light .nav-toggle span{background:var(--teal)}
nav.scrolled .nav-toggle span,nav.nav-open .nav-toggle span{background:#fff}
@media(max-width:900px){
  .nav-toggle{display:block}
  .nav-links{position:fixed;left:0;right:0;top:0;flex-direction:column;align-items:stretch;gap:0;
    background:rgba(11,26,27,.98);backdrop-filter:blur(16px);padding:80px 26px 30px;height:auto;
    transform:translateY(-102%);transition:transform .42s var(--ease);box-shadow:0 24px 60px rgba(0,0,0,.5);
    display:flex!important;border-bottom:1px solid var(--hair)}
  nav.nav-open .nav-links{transform:translateY(0)}
  .nav-links li{width:100%;border-bottom:1px solid rgba(255,255,255,.08)}
  .nav-links li:last-child{border-bottom:0}
  .nav-links a{display:block;padding:17px 2px;font-size:1.06rem;color:#fff!important}
  .nav-links a::after{display:none}
  .nav-links a.btn{margin-top:18px;justify-content:center;padding:15px;color:var(--teal-900)!important;background:var(--mint)}
  nav.nav-open .nav-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  nav.nav-open .nav-toggle span:nth-child(2){opacity:0}
  nav.nav-open .nav-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
}


/* ============================================================
   V3 · REVIEW FIXES — a11y, contrast, focus, responsive, brand
   ============================================================ */
/* #14 brand display type on blog-card titles (was Inter) */
.bcard h3{font-family:var(--font-display);letter-spacing:-.01em}
/* #3 footer/partner label contrast → WCAG AA */
.f-col h4,.f-bottom{color:rgba(255,255,255,.62)}
.f-brand p{color:rgba(255,255,255,.62)}
.partners .plabel{color:rgba(255,255,255,.62)}
/* #2 skip-to-content link */
.skip{position:absolute;left:-999px;top:0;z-index:200;background:var(--mint);color:var(--teal-900);
  padding:11px 18px;font-weight:700;font-size:.85rem;border-radius:0 0 4px 0;text-decoration:none}
.skip:focus{left:0}
/* #5 visible keyboard focus */
.nav-links a:not(.btn):focus-visible::after{right:0}
.cform input:focus-visible,.cform textarea:focus-visible{outline:2px solid var(--mint);outline-offset:2px;border-color:var(--mint)}
a.btn:focus-visible,.filters button:focus-visible,.toc a:focus-visible,.nav-toggle:focus-visible,.step a:focus-visible,.bcard:focus-visible,.icard:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
/* #10 touch devices: reveal industry footage without hover */
@media(hover:none){.icard.dark-feed .ifeed{opacity:1}}
/* #11,#12,#13 mobile hero padding, headline wrap, sticky ladder reel */
@media(max-width:900px){
  .hero{padding:88px 22px 48px}
  .hero h1 .acc{white-space:normal}
  .ladder{display:flex;flex-direction:column}
  .reel{order:-1;position:sticky;top:58px;z-index:6;margin-bottom:18px}
  .reel .canvas{aspect-ratio:16/11}
}

/* ============================================================
   ANNOTATION TYPES GALLERY · real reference output (from PDF)
   ============================================================ */
#techniques{background:radial-gradient(120% 100% at 15% 0%,var(--teal-700),var(--teal) 60%,var(--teal-900))}
.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.tech{margin:0}
.tech .tframe{position:relative;overflow:hidden;border:1px solid var(--hair);background:var(--teal-900);aspect-ratio:16/10}
.tech .tframe img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.04) contrast(1.02);transition:transform .7s var(--ease),filter .5s}
.tech:hover .tframe img{transform:scale(1.055)}
.tech .tframe::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 -46px 60px -30px rgba(20,39,40,.9)}
.tech .tbadge{position:absolute;left:12px;top:12px;z-index:2;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;
  background:rgba(20,39,40,.66);backdrop-filter:blur(6px);color:var(--mint);border:1px solid rgba(3,195,154,.32);padding:5px 10px;border-radius:2px}
.tech figcaption{margin-top:14px;font-size:.88rem;line-height:1.5;color:rgba(255,255,255,.6)}
.tech figcaption b{display:block;font-family:var(--font-display);font-weight:700;font-size:1.02rem;color:#fff;letter-spacing:-.01em;margin-bottom:3px}
@media(max-width:900px){.tech-grid{grid-template-columns:1fr 1fr;gap:14px}}
@media(max-width:560px){.tech-grid{grid-template-columns:1fr}}

/* ============================================================
   HEALTHCARE DIVISION · scoped components (hc-*)
   ============================================================ */
.hc-hero-meta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:30px;font-size:.74rem;letter-spacing:.06em;color:rgba(255,255,255,.55)}
.hc-hero-meta b{color:var(--mint);font-weight:600}
.hc-hero-meta .hc-dot{color:rgba(255,255,255,.3)}
.page-hero p em{color:#fff;font-style:italic}

/* disclaimer note */
.hc-note{margin-top:44px;padding:16px 20px;border:1px solid var(--hair-ink);border-left:2px solid var(--mint-dim);
  border-radius:2px;background:rgba(3,195,154,.05);font-size:.74rem;line-height:1.7;letter-spacing:.02em;color:var(--ink-soft);max-width:920px}

/* ---- org / two-pillar diagram ---- */
.hc-org{margin-top:52px}
.hc-pres{max-width:460px;margin:0 auto;text-align:center;border:1px solid rgba(3,195,154,.4);background:rgba(3,195,154,.07);
  border-radius:6px;padding:20px 24px}
.hc-pres .hc-role{font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mint)}
.hc-pres .hc-name{font-family:var(--font-display);font-weight:700;font-size:1.3rem;color:#fff;margin:6px 0 8px;letter-spacing:-.01em}
.hc-pres .hc-note-inline{font-size:.86rem;line-height:1.55;color:rgba(255,255,255,.6)}
.hc-pres .hc-note-inline b{color:var(--mint)}
.hc-stem{width:1px;height:34px;margin:0 auto;background:linear-gradient(rgba(3,195,154,.5),rgba(3,195,154,.1))}
.hc-pillars{display:grid;grid-template-columns:1fr 60px 1fr;gap:0;align-items:stretch}
.hc-pillar{background:rgba(255,255,255,.03);border:1px solid var(--hair);border-radius:6px;padding:30px 30px 34px}
.hc-pillar.clinical{border-color:rgba(3,195,154,.3);background:rgba(3,195,154,.05)}
.hc-pillar .hc-ptag{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mint)}
.hc-pillar.commercial .hc-ptag{color:rgba(255,255,255,.5)}
.hc-pillar h3{font-family:var(--font-display);font-size:1.16rem;font-weight:700;color:#fff;margin:12px 0 18px;letter-spacing:-.01em;line-height:1.25}
.hc-pillar ul{list-style:none;display:flex;flex-direction:column;gap:12px}
.hc-pillar li{position:relative;padding-left:20px;font-size:.9rem;line-height:1.5;color:rgba(255,255,255,.72)}
.hc-pillar li::before{content:'';position:absolute;left:0;top:9px;width:8px;height:8px;border:1.5px solid var(--mint);border-radius:50%}
.hc-pillar.commercial li::before{border-color:rgba(255,255,255,.35)}
.hc-pillar li b{color:#fff;font-weight:600}
.hc-pillar li.hc-muted{color:rgba(255,255,255,.48);font-style:italic}
.hc-pillar li.hc-muted::before{display:none}
.hc-firewall{position:relative;display:flex;align-items:center;justify-content:center}
.hc-firewall::before{content:'';position:absolute;top:8%;bottom:8%;left:50%;border-left:1px dashed rgba(3,195,154,.5)}
.hc-firewall span{position:relative;writing-mode:vertical-rl;transform:rotate(180deg);font-size:.58rem;letter-spacing:.24em;
  color:var(--mint);background:var(--teal);padding:10px 2px;border:1px solid rgba(3,195,154,.3);border-radius:2px}

/* ---- insulation mechanisms ---- */
.hc-mech{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:32px}
.hc-m{border:1px solid var(--hair);border-radius:6px;padding:22px 22px 24px;background:rgba(255,255,255,.02)}
.hc-m .hc-mn{font-size:.9rem;color:var(--mint);font-weight:700;margin-bottom:12px}
.hc-m h4{font-size:1rem;font-weight:700;color:#fff;margin-bottom:8px;letter-spacing:-.01em}
.hc-m p{font-size:.86rem;line-height:1.6;color:rgba(255,255,255,.6)}
.hc-m-accent{background:rgba(3,195,154,.08);border-color:rgba(3,195,154,.35)}
.hc-m-accent .hc-mn{font-size:1.2rem}

/* ---- healthcare IT cards (light) ---- */
.hc-it{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:8px}
.hc-itc{background:var(--paper);border:1px solid var(--hair-ink);border-radius:6px;padding:26px}
.hc-itc .hc-itt{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mint-dim);margin-bottom:12px}
.hc-itc p{font-size:.88rem;line-height:1.65;color:var(--ink-soft)}
.hc-itc p b{color:var(--teal);font-weight:700}

/* ---- specialties grid (dark) ---- */
.hc-spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:48px}
.hc-sp{position:relative;border:1px solid var(--hair);border-radius:6px;padding:20px;background:rgba(255,255,255,.02);
  display:flex;flex-direction:column;gap:5px;transition:border-color .3s,background .3s}
.hc-sp:hover{border-color:rgba(3,195,154,.4);background:rgba(3,195,154,.05)}
.hc-sp .hc-spn{font-size:.7rem;color:var(--mint);letter-spacing:.1em}
.hc-sp b{font-size:1.02rem;color:#fff;font-weight:600;letter-spacing:-.01em}
.hc-sp .hc-spd{font-size:.8rem;line-height:1.45;color:rgba(255,255,255,.55)}
.hc-sp .hc-splead{margin-top:6px;font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--teal-900);
  background:var(--mint);align-self:flex-start;padding:3px 8px;border-radius:2px}
.hc-sp-lead{border-color:rgba(3,195,154,.45);background:rgba(3,195,154,.07)}
.hc-sp-exp{border-style:dashed;opacity:.85}

/* ---- overnight loop table (light) ---- */
.hc-loop{margin-top:48px;border:1px solid var(--hair-ink);border-radius:6px;overflow:hidden;background:var(--paper)}
.hc-loop-head,.hc-lr{display:grid;grid-template-columns:150px 150px 1fr;gap:18px;padding:14px 22px;align-items:start}
.hc-loop-head{background:var(--teal);color:rgba(255,255,255,.7);font-family:'JetBrains Mono',monospace;font-size:.64rem;
  letter-spacing:.14em;text-transform:uppercase}
.hc-lr{border-top:1px solid var(--hair-ink);font-size:.9rem;line-height:1.5;color:var(--ink-soft)}
.hc-lr .mono{font-size:.78rem;color:var(--teal);white-space:nowrap}
.hc-lr-key{background:rgba(3,195,154,.08)}
.hc-lr-key span:last-child{color:var(--ink);font-weight:600}
.hc-lr-key .mono{color:var(--mint-dim);font-weight:700}

/* ---- verdict delivery ---- */
.hc-deliver{margin-top:40px;border:1px solid var(--hair-ink);border-radius:6px;padding:34px;background:var(--l2)}
.hc-deliver h3{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--teal);letter-spacing:-.01em}
.hc-verdicts{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0 22px}
.hc-v{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:8px 14px;border-radius:2px;border:1px solid}
.hc-v-ok{color:#0a7d5f;border-color:rgba(3,195,154,.5);background:rgba(3,195,154,.12)}
.hc-v-cond{color:#8a6d00;border-color:rgba(200,160,0,.4);background:rgba(200,160,0,.1)}
.hc-v-no{color:#a8324a;border-color:rgba(168,50,74,.35);background:rgba(168,50,74,.08)}
.hc-v-ins{color:var(--ink-soft);border-color:var(--hair-ink);background:rgba(32,62,64,.05)}
.hc-deliver p{font-size:.92rem;line-height:1.7;color:var(--ink-soft)}

/* ---- governance cards + badges (dark) ---- */
.hc-gov{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:48px}
.hc-gc{border:1px solid var(--hair);border-radius:6px;padding:26px;background:rgba(255,255,255,.02)}
.hc-gc h4{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:10px;letter-spacing:-.01em}
.hc-gc p{font-size:.86rem;line-height:1.65;color:rgba(255,255,255,.62)}
.hc-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}
.hc-badge{font-size:.68rem;letter-spacing:.1em;padding:8px 14px;border-radius:2px;border:1px solid rgba(3,195,154,.35);
  color:var(--mint);background:rgba(3,195,154,.06)}
.hc-badge-road{border-color:var(--hair);color:rgba(255,255,255,.5);background:transparent}

/* ---- founding-partner value exchange (dark) ---- */
.hc-exchange{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:48px}
.hc-ex{border:1px solid var(--hair);border-radius:6px;padding:28px 30px;background:rgba(255,255,255,.03)}
.hc-ex-alt{background:rgba(3,195,154,.06);border-color:rgba(3,195,154,.3)}
.hc-ex .hc-ext{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mint);margin-bottom:16px}
.hc-ex ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.hc-ex li{position:relative;padding-left:22px;font-size:.92rem;line-height:1.5;color:rgba(255,255,255,.75)}
.hc-ex li::before{content:'→';position:absolute;left:0;color:var(--mint)}
.hc-guard{margin-top:20px;font-size:.76rem;letter-spacing:.02em;color:rgba(255,255,255,.55)}
.hc-guard b{color:var(--mint)}
.hc-who{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:30px}
.hc-who .hc-wt{font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.hc-w{flex:1;min-width:260px;border:1px solid var(--hair);border-left:2px solid var(--mint);border-radius:2px;
  padding:12px 16px;font-size:.88rem;line-height:1.5;color:rgba(255,255,255,.72);background:rgba(255,255,255,.02)}

/* ---- healthcare responsive ---- */
@media(max-width:900px){
  .hc-pillars{grid-template-columns:1fr}
  .hc-firewall{height:40px}
  .hc-firewall::before{top:50%;bottom:auto;left:8%;right:8%;border-left:0;border-top:1px dashed rgba(3,195,154,.5)}
  .hc-firewall span{writing-mode:horizontal-tb;transform:none}
  .hc-mech,.hc-it,.hc-gov{grid-template-columns:1fr}
  .hc-spec-grid{grid-template-columns:1fr 1fr}
  .hc-loop-head{display:none}
  .hc-lr{grid-template-columns:1fr 1fr;gap:6px 14px}
  .hc-lr span:last-child{grid-column:1/-1;margin-top:4px}
  .hc-exchange{grid-template-columns:1fr}
}
@media(max-width:560px){.hc-spec-grid{grid-template-columns:1fr}}

/* ============================================================
   HEALTHCARE · LIVE READ CONSOLE + interactive proofs
   ============================================================ */
/* dual-reviewer crosshairs */
.hc-cross{position:absolute;inset:0;pointer-events:none;z-index:4}
.hc-cross .vx,.hc-cross .hx{position:absolute;background:var(--c);opacity:.7;box-shadow:0 0 6px var(--c)}
.hc-cross .vx{top:0;bottom:0;width:1px;left:var(--cx,50%);transition:left .8s var(--ease)}
.hc-cross .hx{left:0;right:0;height:1px;top:var(--cy,50%);transition:top .8s var(--ease)}
.hc-cross.a{--c:var(--mint)} .hc-cross.b{--c:#fff}

/* contour draw toggles — reuse the real .draw-stroke idiom */
#hc-scan .draw-stroke{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.1s var(--ease)}
.hc-roi{opacity:0;transition:opacity .4s}
#hc-canvas.roi .hc-roi{opacity:1}
#hc-canvas.roi .hc-roi.draw-stroke{stroke-dashoffset:0}
#hc-rdrA,#hc-rdrB{opacity:0;transition:opacity .35s}
#hc-canvas.drawA #hc-rdrA{opacity:1}
#hc-canvas.drawB #hc-rdrB{opacity:1}
#hc-canvas.drawA #hc-rdrA .draw-stroke{stroke-dashoffset:0}
#hc-canvas.drawB #hc-rdrB .draw-stroke{stroke-dashoffset:0}
.hc-consensus{opacity:0;transition:opacity .6s var(--ease)}
#hc-canvas.consensus .hc-consensus{opacity:1}
.canvas .rec.hc-blind{color:var(--mint)} .canvas .rec.hc-blind::before{background:var(--mint)}

/* verdict stamp */
.hc-stamp-verdict{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) scale(1.3) rotate(-6deg);opacity:0;z-index:7;
  font-family:'JetBrains Mono',monospace;font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  padding:10px 16px;border:1.6px solid;border-radius:3px;transition:transform .5s var(--ease),opacity .3s;pointer-events:none;white-space:nowrap}
#hc-canvas.signed .hc-stamp-verdict{transform:translate(-50%,-50%) scale(1) rotate(-3deg);opacity:1}
.hc-stamp-verdict.ok{color:#0ae0a8;border-color:var(--mint);background:rgba(3,195,154,.16)}
.hc-stamp-verdict.cond{color:#ffce54;border-color:rgba(255,200,60,.6);background:rgba(255,200,60,.14)}
.hc-stamp-verdict.no{color:#ff7a8a;border-color:rgba(255,90,110,.6);background:rgba(255,90,110,.14)}
.hc-stamp-verdict.ins{color:rgba(255,255,255,.85);border-color:var(--hair);background:rgba(255,255,255,.09)}

/* firewall pressure-test */
.hc-pillars{position:relative}
.hc-press-btn{margin-top:22px;font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:#ffb020;background:rgba(255,176,32,.08);border:1px solid rgba(255,176,32,.42);border-radius:2px;padding:9px 14px;cursor:pointer;transition:background .25s,transform .15s}
.hc-press-btn:hover{background:rgba(255,176,32,.16)} .hc-press-btn:active{transform:scale(.97)}
.hc-pulse{position:absolute;top:50%;left:74%;width:12px;height:12px;border-radius:50%;background:#ffb020;box-shadow:0 0 14px 2px #ffb020;transform:translateY(-50%);z-index:6;pointer-events:none}
.hc-pulse.go{animation:hc-press .7s var(--ease) forwards}
@keyframes hc-press{0%{left:74%;opacity:1;transform:translateY(-50%) scale(1)}60%{left:50.5%;opacity:1;transform:translateY(-50%) scale(1)}72%{left:52.5%;transform:translateY(-50%) scale(.5);opacity:.7}100%{left:52.5%;transform:translateY(-50%) scale(0);opacity:0}}
.hc-firewall.hit::before{border-left-color:var(--mint);box-shadow:0 0 16px rgba(3,195,154,.7)}
.hc-firewall.hit span{color:#0ae0a8;border-color:var(--mint);box-shadow:0 0 12px rgba(3,195,154,.5)}
.hc-blocklog{margin-top:24px;border:1px solid var(--hair);border-radius:4px;overflow:hidden;background:rgba(255,255,255,.02)}
.hc-blhead{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 14px;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5);background:rgba(255,255,255,.03);border-bottom:1px solid var(--hair)}
.hc-blhead b{color:var(--mint)}
.hc-bl-empty{padding:12px 14px;font-size:.7rem;color:rgba(255,255,255,.4)}
.hc-bl-row{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:9px 14px;border-top:1px solid var(--hair);font-size:.68rem;color:rgba(255,255,255,.62)}
.hc-bl-row .t{color:var(--mint-dim)} .hc-bl-row .d{color:#0ae0a8;text-align:right;white-space:nowrap}

/* overnight playhead */
.hc-lr{transition:background .35s,box-shadow .35s}
.hc-lr.active{background:rgba(3,195,154,.12);box-shadow:inset 3px 0 0 var(--mint)}

/* verdict chips as buttons + signed line */
.hc-v{cursor:pointer;font-family:'JetBrains Mono',monospace;line-height:1;transition:transform .15s,box-shadow .2s}
.hc-v:hover{transform:translateY(-1px)} .hc-v.sel{outline:2px solid currentColor;outline-offset:2px;font-weight:700}
.hc-signed-line{margin:18px 0 6px;font-size:.82rem;letter-spacing:.03em;color:var(--ink-soft);padding:11px 15px;border:1px dashed var(--hair-ink);border-radius:3px;background:rgba(3,195,154,.04)}
.hc-signed-line.on{color:var(--teal);border-style:solid;border-color:rgba(3,195,154,.4)} .hc-signed-line b{color:var(--mint-dim)}

/* specialty cells drive the console */
.hc-sp{cursor:pointer} .hc-sp:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.hc-sp.sel{border-color:var(--mint);background:rgba(3,195,154,.10)}
.hc-spk{margin-top:8px;font-size:.62rem;letter-spacing:.05em;color:var(--mint);opacity:.5;transition:opacity .3s}
.hc-sp:hover .hc-spk,.hc-sp:focus-visible .hc-spk,.hc-sp.sel .hc-spk{opacity:1}
.hc-driver-hint{font-size:.72rem;letter-spacing:.08em;color:var(--mint);margin:0 0 10px;opacity:.85}

/* roadmap-badge shimmer */
@keyframes hc-shimmer{0%,100%{opacity:.55}50%{opacity:.9}}
.hc-badge-road{animation:hc-shimmer 3s ease-in-out infinite}

@media(prefers-reduced-motion:reduce){
  #hc-scan .draw-stroke{transition:none}
  .hc-cross .vx,.hc-cross .hx{transition:none}
  .hc-stamp-verdict{transition:none}
  .hc-badge-road{animation:none}
  .hc-pulse{display:none}
}
@media(max-width:900px){ .hc-pulse{display:none} .hc-blhead{font-size:.56rem} }

/* ============================================================
   V4 · MOBILE RESPONSIVE PASS
   Phone-first corrections layered over the desktop system.
   Breakpoints: 900 (tablet / large phone) · 640 (phone) · 400 (small phone).
   Nothing here changes desktop rendering — every rule is inside a query.
   ============================================================ */

/* ---- global guards ---- */
@media(max-width:900px){
  :root{--maxw:100%}
  html{-webkit-text-size-adjust:100%}
  h1,h2,h3,h4,p,li,a,figcaption,span{overflow-wrap:break-word}
  img,svg,video{max-width:100%}
  a,button{-webkit-tap-highlight-color:rgba(3,195,154,.18)}
}

/* ---- fluid type scale (the desktop clamp minimums are too large for 360px) ---- */
@media(max-width:900px){
  .hero h1,.page-hero h1{font-size:clamp(1.95rem,9vw,3.3rem);line-height:1.06}
  h2.big{font-size:clamp(1.6rem,6.6vw,2.6rem);line-height:1.12}
  .final h2{font-size:clamp(1.6rem,6.6vw,2.4rem)}
  .poc h2{font-size:clamp(1.5rem,6.2vw,2.2rem)}
  .sub,.hero p.lead,.page-hero p,.poc p{font-size:1rem;line-height:1.72}
  .label{font-size:.66rem;letter-spacing:.16em;margin-bottom:18px}
}

/* ---- section rhythm ---- */
@media(max-width:640px){
  section{padding:64px 18px}
  .page-hero{padding:112px 18px 56px}
  footer{padding:52px 18px 32px}
  .partners{padding:32px 18px}
  .partners .wrap{gap:20px 26px}
  .partners img{height:20px}
}

/* ---- touch targets: everything tappable clears ~44px ---- */
@media(max-width:900px){
  .btn{padding:13px 22px;min-height:48px;font-size:.88rem}
  .nav-toggle{width:48px;height:48px}
  .filters{gap:8px}
  .filters button{padding:12px 16px;min-height:44px}
  .toc a{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;font-size:.85rem}
  .logo{display:inline-flex;padding:8px 0}
  .f-col a{display:flex;align-items:center;min-height:44px;margin-bottom:0}
  .step a{display:inline-flex;align-items:center;min-height:44px}
  .bcard{padding:26px 22px}
  .hc-v{min-height:42px;display:inline-flex;align-items:center}
  .hc-press-btn{min-height:44px}
}

/* ---- fixed chrome: nav panel + HUD ---- */
@media(max-width:900px){
  .nav-links{max-height:100vh;max-height:100dvh;overflow-y:auto;
    -webkit-overflow-scrolling:touch;padding:76px 22px 26px}
  body.nav-locked{overflow:hidden}
}
/* the corner brackets sit on top of the logo and the footer text once the
   viewport is this narrow — drop them rather than letting them collide */
@media(max-width:640px){.hud .corner{display:none}}

/* ---- home hero ---- */
@media(max-width:900px){
  .hero{min-height:auto}
  .hero-in{gap:34px}
  .hero p.lead{margin:20px 0 26px}
  .pill{font-size:.62rem;letter-spacing:.12em;padding:7px 11px;margin-bottom:20px}
  .hero-cta{gap:10px}
  .hero-cta .btn{flex:1 1 auto;justify-content:center}
  .trust{align-items:flex-start;font-size:.68rem;line-height:1.5}
  .poc .cta .btn{flex:1 1 auto;justify-content:center}
}
@media(max-width:640px){
  .hero{padding:84px 18px 44px}
  .final p{font-size:.68rem;margin:18px 0 26px}
}

/* ---- instrument frame heads: stack instead of colliding ---- */
@media(max-width:900px){.frame-head{gap:4px 12px;flex-wrap:wrap}}
@media(max-width:640px){
  .frame-head{flex-direction:column;align-items:flex-start;font-size:.58rem;letter-spacing:.1em}
  .canvas .stamp,.canvas .rec{font-size:.55rem}
}

/* ---- worklist: the description used to land in the 40px index column ---- */
@media(max-width:900px){
  .wrow{grid-template-columns:auto 1fr;gap:2px 14px;align-items:start;padding:26px 4px}
  .wrow .idx{padding-top:5px}
  .wrow h3{font-size:1.25rem}
  .wrow p{grid-column:1/-1;margin-top:8px}
}

/* ---- precision ladder: the reel is sticky, so it needs its own backdrop ---- */
@media(max-width:900px){
  /* .ladder keeps align-items:start from its grid form; once it becomes a flex
     column that shrink-wraps the reel to its (intrinsically zero) canvas width */
  .ladder{align-items:stretch}
  .reel{top:64px;margin:0 -22px 20px;padding:10px 22px 12px;
    background:var(--teal);border-bottom:1px solid var(--hair)}
  .reel .canvas{aspect-ratio:16/10}
  .step{padding:24px 0}
  .step h3{font-size:1.3rem}
}
@media(max-width:640px){.reel{margin:0 -18px 18px;padding:8px 18px 10px}}

/* ---- industries ---- */
@media(max-width:900px){
  .icard{min-height:0;padding:26px 20px 24px}
  .icard h3{max-width:100%;font-size:1.25rem;margin:18px 0 10px}
  .icard p{max-width:100%;font-size:.92rem}
  .icard .ivis{width:120px;height:120px;opacity:.35}
  .ind-head{gap:18px}
}
/* on touch the footage is always revealed (see @media(hover:none) above), so the
   card copy has to read as light-on-dark without ever getting a :hover event */
@media(hover:none){
  .icard.dark-feed h3{color:#fff}
  .icard.dark-feed p{color:rgba(255,255,255,.78)}
  .icard.dark-feed .docs{color:rgba(255,255,255,.8)}
  .icard.dark-feed .itag,.icard.dark-feed .more,.icard.dark-feed .docs a{color:var(--mint)}
  .icard.dark-feed .ivis{opacity:0}
}

/* ---- metrics · blog ---- */
@media(max-width:640px){
  .met{padding:26px 18px}
  .met .v{font-size:1.75rem}
  .met .lab{font-size:.62rem}
  .bcard h3{font-size:1.08rem;margin:26px 0 12px}
}

/* ---- contact ---- */
@media(max-width:900px){
  .cform{padding:24px 20px}
  /* 16px keeps iOS Safari from zooming the viewport on focus */
  .cform input,.cform textarea{font-size:16px}
  .cform input:not([type=checkbox]),.cform textarea{padding:13px 14px;min-height:50px}
  .cform textarea{min-height:120px}
  .cform .consent input{width:20px;height:20px;min-height:0}
  .cform button[type=submit]{min-height:52px}
}
@media(max-width:640px){
  .contact-meta .row{flex-wrap:wrap;gap:4px 10px;font-size:.9rem}
  .contact-meta .row .k{flex:1 1 100%;min-width:0}
}

/* ---- footer: the brand column was collapsing to two words per line ---- */
@media(max-width:640px){
  .f-grid{grid-template-columns:1fr 1fr;gap:28px 20px}
  .f-brand{grid-column:1/-1}
  .f-brand p{max-width:none}
  .f-bottom{margin-top:34px;font-size:.62rem;line-height:1.8}
}

/* ---- services catalog ---- */
@media(max-width:900px){
  /* the head is a nowrap flex row: it forced the whole page 360px wide and
     stacked the count on top of the title */
  .svc-group-head{flex-wrap:wrap;gap:10px 14px;padding:16px 18px}
  .svc-group-head .gicon{width:38px;height:38px;flex:none}
  .svc-group-head h2{font-size:1.3rem;flex:1 1 auto;min-width:0}
  .svc-group-head .gcount{margin-left:0;order:3;flex:1 1 100%}
  .svc-group{margin-bottom:52px}
  .spec{padding:26px 0}
  .spec .spec-vis{display:flex;align-items:center;gap:12px}
  .spec .spec-vis svg{width:44px;height:44px;flex:none}
  .spec .spec-no{margin-top:0}
  .spec h3{font-size:1.2rem}
  .showreel{height:190px;margin-top:26px}
  .showreel .ov{padding:0 20px;background:linear-gradient(90deg,rgba(20,39,40,.9),rgba(20,39,40,.55))}
}
@media(max-width:640px){
  .showreel{height:160px}
  .showreel .ov .mono{font-size:.6rem;line-height:1.6}
}

/* ---- about ---- */
@media(max-width:640px){
  .story-card{padding:28px 22px}
  .story-card h2{font-size:1.4rem}
  .stat-row .st{padding:26px 22px}
}

/* ---- healthcare division ---- */
@media(max-width:640px){
  .hc-pres{padding:18px 20px}
  .hc-pillar{padding:24px 22px 26px}
  .hc-m,.hc-gc,.hc-itc,.hc-ex{padding:22px 20px}
  .hc-deliver{padding:26px 20px}
  .hc-note{padding:14px 16px;font-size:.72rem}
  .hc-w{min-width:0;flex:1 1 100%}
  .hc-bl-row{grid-template-columns:auto 1fr;gap:2px 12px}
  .hc-bl-row .d{grid-column:1/-1;text-align:left}
  .hc-lr .mono{white-space:normal}
  .hc-stamp-verdict{font-size:.7rem;padding:8px 12px}
}

/* ---- small phones (≤400px) ---- */
@media(max-width:400px){
  section{padding:56px 16px}
  .hero{padding:80px 16px 40px}
  .page-hero{padding:104px 16px 50px}
  footer{padding:46px 16px 30px}
  .reel{margin:0 -16px 16px;padding:8px 16px 10px}
  .icard{padding:22px 18px}
  .met{padding:22px 15px}
  .met .v{font-size:1.55rem}
  .cform{padding:20px 16px}
}

/* ---- landscape phones: a sticky reel would swallow the whole screen ---- */
@media(max-width:900px) and (max-height:520px) and (orientation:landscape){
  .hero{min-height:auto;padding-top:76px}
  .nav-links{padding-top:64px}
  .reel{position:static;margin:0 0 18px;padding:0;background:none;border:0}
  .reel .canvas{aspect-ratio:16/7}
}

/* ============================================================
   CUROTA HEALTH · sub-brand band on the main site (ch-*)
   Hints health.curota.ai's navy without leaving the Curota palette.
   ============================================================ */
#curota-health{background:radial-gradient(120% 120% at 12% 0%,var(--teal-700),var(--teal) 52%,var(--teal-900))}
.ch-band{position:relative;border:1px solid rgba(3,195,154,.22);border-radius:8px;overflow:hidden;
  background:linear-gradient(155deg,rgba(10,17,40,.58),rgba(10,17,40,.14));padding:48px 48px 40px}
.ch-band::before{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--grid) 1px,transparent 1px),linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:38px 38px;mask-image:radial-gradient(90% 90% at 100% 0%,#000,transparent 72%)}
.ch-band>*{position:relative;z-index:1}
.ch-lockup{display:inline-flex;align-items:center;gap:11px;margin-bottom:24px}
.ch-lockup img{width:34px;height:34px;display:block}
.ch-word{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#fff;font-weight:500}
.ch-word b{color:var(--mint);font-weight:600}
.ch-band .sub{max-width:680px}
.ch-caps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:44px;
  background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1)}
.ch-cap{background:rgba(10,17,40,.45);padding:28px 26px 30px;transition:background .3s}
.ch-cap:hover{background:rgba(3,195,154,.07)}
.ch-no{display:block;font-size:.72rem;letter-spacing:.14em;color:var(--mint);margin-bottom:14px}
.ch-cap h3{font-family:var(--font-display);font-size:1.12rem;font-weight:700;color:#fff;letter-spacing:-.01em;line-height:1.3;margin-bottom:10px}
.ch-cap p{font-size:.88rem;line-height:1.65;color:rgba(255,255,255,.62)}
.ch-cta{display:flex;gap:14px;flex-wrap:wrap;margin-top:36px}
.ch-meta{margin-top:24px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.ch-meta b{color:var(--mint);font-weight:500}
.ch-meta .ch-dot{color:rgba(255,255,255,.25)}
.ch-note{margin-top:26px;font-size:.68rem;line-height:1.7;letter-spacing:.03em;color:rgba(255,255,255,.45);max-width:780px}
@media(max-width:900px){
  .ch-band{padding:32px 24px 30px;border-radius:6px}
  .ch-lockup{margin-bottom:20px}
  .ch-lockup img{width:30px;height:30px}
  .ch-word{font-size:.72rem;letter-spacing:.17em}
  .ch-caps{grid-template-columns:1fr;margin-top:32px}
  .ch-cap{padding:24px 22px 26px}
  .ch-cta{gap:10px;margin-top:30px}
  .ch-cta .btn{flex:1 1 auto;justify-content:center}
  .ch-meta{gap:6px 10px;font-size:.62rem}
  .ch-meta .ch-dot{display:none}
}
@media(max-width:400px){.ch-band{padding:26px 18px 24px}}

/* ============================================================
   LEADERSHIP · full-bleed portrait cards (.team-grid.portraits)
   Ports the curota-health .tcard treatment onto the main palette.
   Scoped to .portraits so healthcare.html's photo-less .tcard is untouched.
   ============================================================ */
/* 3-up matches the curota-health .team-3 bench: ~390px square portraits */
.team-grid.portraits{grid-template-columns:repeat(3,1fr);gap:24px}
.portraits .tcard{padding:0;overflow:hidden;display:flex;flex-direction:column;
  background:rgba(255,255,255,.03);border-color:var(--hair)}
.portraits .tcard:hover{box-shadow:0 18px 44px rgba(0,0,0,.34);border-color:rgba(3,195,154,.32)}
.portraits .photo{position:relative;aspect-ratio:1/1;overflow:hidden;background:var(--teal-900)}
.portraits .photo img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;
  filter:grayscale(1) contrast(1.03) brightness(.96);transition:filter .5s var(--ease),transform .7s var(--ease)}
.portraits .tcard:hover .photo img{filter:none;transform:scale(1.03)}
.portraits .photo::after{content:'';position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 58%,rgba(20,39,40,.55))}
.portraits .tbody{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.portraits .nm{font-size:1.18rem;color:#fff}
.portraits .badge{align-self:flex-start;background:rgba(3,195,154,.12);color:var(--mint);
  border:1px solid rgba(3,195,154,.3);margin:9px 0 0}
.portraits .bio{font-size:.85rem;color:rgba(255,255,255,.62);margin-top:13px}
.portraits .loc{margin-top:auto;padding-top:16px;color:var(--mint-dim)}
@media(max-width:1000px){.team-grid.portraits{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){
  .team-grid.portraits{gap:16px}
  .portraits .tbody{padding:20px 20px 22px}
  .portraits .nm{font-size:1.1rem}
  .portraits .bio{font-size:.82rem;margin-top:12px}
}
@media(max-width:640px){
  .team-grid.portraits{grid-template-columns:1fr;gap:20px}
  .portraits .photo{aspect-ratio:4/3}
  .portraits .photo img{object-position:center 22%}
  .portraits .tbody{padding:22px 22px 24px}
  .portraits .nm{font-size:1.2rem}
  .portraits .bio{font-size:.88rem}
}

/* ============================================================
   PARTNER STRIP · continuous logo marquee
   Four identical .pset copies; the keyframe shifts the track by
   exactly one set (25% of its width) so the loop is seamless.
   ============================================================ */
.partners .wrap{flex-wrap:nowrap;justify-content:flex-start;gap:30px}
.partners .plabel{flex:none}
.pmarquee{position:relative;flex:1;min-width:0;overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.ptrack{display:flex;width:max-content;animation:pscroll 34s linear infinite;will-change:transform}
.pmarquee:hover .ptrack,.pmarquee:focus-within .ptrack{animation-play-state:paused}
.pset{display:flex;align-items:center;gap:56px;padding-right:56px;list-style:none;margin:0}
.pset img{height:26px;width:auto;display:block;opacity:.7;filter:brightness(0) invert(1);transition:opacity .3s}
.pset img:hover{opacity:1}
@keyframes pscroll{from{transform:translateX(0)}to{transform:translateX(-25%)}}

@media(max-width:640px){
  .partners .wrap{flex-direction:column;align-items:stretch;gap:16px}
  .partners .plabel{text-align:center}
  .pset{gap:40px;padding-right:40px}
  .pset img{height:21px}
  .ptrack{animation-duration:24s}
}
/* the global reduce rule already kills the animation — also drop the duplicate
   sets so a stopped marquee doesn't read as four repeated logo rows */
@media(prefers-reduced-motion:reduce){
  .pmarquee{-webkit-mask-image:none;mask-image:none;overflow-x:auto}
  .ptrack{width:auto}
  .ptrack .pset[aria-hidden="true"]{display:none}
  .pset{padding-right:0}
}
