/* ============================================================
   growwithba.in — digital marketing agency, India
   Palette: the logo, and nothing else.
     navy  #223A87   deep brand
     azure #1A78B8   mid brand
     teal  #4FBCC6   the accent that carries everything
   Depth comes from value, not from extra hues: a navy-black
   canvas, four steps of blue, and teal used only where the eye
   should land. No third-party colour enters this file.
   ============================================================ */

:root{
  /* logo */
  --navy:#223A87;
  --azure:#1A78B8;
  --teal:#4FBCC6;

  /* the same three, extended by value only */
  --abyss:#070C1B;          /* navy driven almost to black */
  --deep:#0E1730;           /* section canvas */
  --deep-2:#16224A;         /* raised surface on dark */
  --line-d:#25325C;         /* hairline on dark */
  --mist:#EEF3F9;           /* azure at 6% over white */
  --line-l:#D4E0EE;         /* hairline on light */
  --paper:#FFFFFF;

  /* text */
  --on-dark:#FFFFFF;
  --on-dark-2:#A9B8D4;
  --on-dark-3:#6E7FA6;
  --on-light:#0E1730;
  --on-light-2:#4A5A7C;
  --on-light-3:#8494B4;

  --display:'Archivo',system-ui,sans-serif;
  --body:'Public Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;

  --wrap:1280px;
  --gap:clamp(1.1rem,3.5vw,2.4rem);
  --r:18px;
  --r-sm:12px;
  --glow:0 0 0 1px rgba(79,188,198,.28),0 24px 70px -30px rgba(79,188,198,.55);
  --lift:0 24px 60px -34px rgba(7,12,27,.55);

  /* fine grain, keeps large flat fields from banding */
  --grain: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='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--on-light);
  font:400 16.5px/1.62 var(--body);-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}img{height:auto;display:block}
a{color:var(--navy)}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gap)}
.skip{position:absolute;left:-9999px}
.skip:focus{left:1rem;top:1rem;background:var(--navy);color:#fff;padding:.6rem 1rem;z-index:99;border-radius:8px}
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:6px}

/* ---------------- type ---------------- */
h1,h2,h3,h4{margin:0 0 .5em;font-family:var(--display);font-weight:800;
  font-variation-settings:'wdth' 100;letter-spacing:-.035em;line-height:1.02;text-wrap:balance}
h1{font-size:clamp(2.3rem,5.6vw,4.3rem);letter-spacing:-.045em}
h2{font-size:clamp(1.85rem,4.2vw,3.2rem);max-width:20ch}
h3{font-size:1.1rem;font-weight:700;letter-spacing:-.02em;line-height:1.22;max-width:none}
h4{font-size:.95rem;font-weight:700;max-width:none}
p{margin:0 0 1rem}
.lede{font-size:clamp(1.05rem,1.7vw,1.28rem);line-height:1.55;color:var(--on-light-2);max-width:56ch;text-wrap:pretty}
.fine{font:400 .84rem/1.55 var(--body);color:var(--on-light-3)}
.kicker{font:500 clamp(1rem,1.5vw,1.12rem)/1.55 var(--body);color:var(--on-light-2);max-width:52ch;margin:0 0 1.1rem}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font:600 .68rem/1 var(--mono);
  text-transform:uppercase;letter-spacing:.18em;color:var(--azure);margin:0 0 1.2rem}
.eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal);flex:none;
  box-shadow:0 0 0 4px rgba(79,188,198,.2)}
.scorecard__num,.bigstat,.metric__n,.table td,.vs td,.calc input,.calc__big{font-variant-numeric:tabular-nums}

/* accent word: teal underline that draws itself in */
.hl{color:var(--teal);position:relative;white-space:nowrap}
.hl::after{content:"";position:absolute;left:0;bottom:.02em;height:.09em;width:100%;background:var(--teal);
  transform-origin:left;animation:draw .9s .35s cubic-bezier(.2,.7,.2,1) both}
@keyframes draw{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------------- surfaces ---------------- */
.dark{background:var(--deep);color:var(--on-dark);position:relative;isolation:isolate}
.dark::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.16;
  mix-blend-mode:overlay;pointer-events:none;z-index:-1}
.dark h1,.dark h2,.dark h3,.dark h4{color:var(--on-dark)}
.dark .lede,.dark p,.dark .kicker{color:var(--on-dark-2)}
.dark .fine{color:var(--on-dark-3)}
.dark .eyebrow{color:var(--teal)}

/* ---------------- header ---------------- */
.nav{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.86);
  backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line-l)}
.nav__in{display:flex;align-items:center;gap:1.5rem;max-width:var(--wrap);margin-inline:auto;padding:.7rem var(--gap)}
.nav__logo{margin-right:auto;line-height:0}
.nav__logo img{height:34px;width:auto}
.nav__links{display:flex;gap:1.6rem;font-size:.9rem;font-weight:600}
.nav__links a{text-decoration:none;color:var(--on-light-2);position:relative;padding:.2rem 0}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;
  background:var(--teal);transition:right .28s cubic-bezier(.2,.7,.2,1)}
.nav__links a:hover{color:var(--navy)}
.nav__links a:hover::after{right:0}
@media(max-width:980px){.nav__links{display:none}}

/* ---------------- buttons ---------------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;background:var(--navy);color:#fff;
  text-decoration:none;padding:.92rem 1.6rem;border:1px solid var(--navy);border-radius:999px;
  font:600 .92rem var(--body);cursor:pointer;position:relative;overflow:hidden;
  transition:color .25s,border-color .25s,transform .2s,box-shadow .25s}
.btn::before{content:"";position:absolute;inset:0;background:var(--teal);border-radius:999px;
  transform:translateY(101%);transition:transform .32s cubic-bezier(.2,.7,.2,1);z-index:-1}
.btn>*{position:relative}
.btn:hover{color:var(--abyss);border-color:var(--teal);transform:translateY(-2px);box-shadow:var(--glow)}
.btn:hover::before{transform:translateY(0)}
.btn--ghost{background:transparent;color:var(--navy);border-color:var(--line-l)}
.btn--ghost:hover{color:var(--abyss)}
.btn--sm{padding:.58rem 1.15rem;font-size:.85rem}
.btn svg{width:16px;height:16px;position:relative;transition:transform .25s}
.btn:hover svg{transform:translateX(3px)}
.dark .btn--ghost{color:#fff;border-color:var(--line-d)}
.dark .btn--ghost:hover{color:var(--abyss)}

/* ---------------- hero ---------------- */
.hero{position:relative;overflow:hidden;padding:clamp(3rem,8vw,6.5rem) 0 clamp(2.4rem,5vw,4rem)}
.hero--dark{background:radial-gradient(120% 90% at 82% -10%,rgba(79,188,198,.18),transparent 58%),
  radial-gradient(90% 80% at 4% 108%,rgba(34,58,135,.55),transparent 62%),var(--abyss)}
.hero--tint{background:linear-gradient(180deg,var(--mist),var(--paper))}
.hero__grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.6rem,4vw,3.6rem);align-items:center}
@media(max-width:960px){.hero__grid{grid-template-columns:1fr}}
.hero__cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}
.hero--sub{padding-block:clamp(2.2rem,5vw,3.8rem) clamp(1.6rem,3vw,2.4rem)}
.hero--sub h1{font-size:clamp(2.1rem,5vw,3.6rem)}

.pill{display:inline-flex;align-items:center;gap:.55rem;border:1px solid rgba(79,188,198,.4);
  background:rgba(79,188,198,.1);color:var(--teal);border-radius:999px;padding:.4rem .95rem;
  font:600 .72rem var(--mono);text-transform:uppercase;letter-spacing:.14em;margin-bottom:1.4rem}
.pill .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);
  box-shadow:0 0 0 0 rgba(79,188,198,.6);animation:ping 2.4s ease-out infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(79,188,198,.55)}70%,100%{box-shadow:0 0 0 9px rgba(79,188,198,0)}}
.hero--tint .pill{background:rgba(26,120,184,.08);border-color:rgba(26,120,184,.25);color:var(--azure)}
.hero--tint .pill .dot{background:var(--azure)}

/* ---------------- metric slabs ---------------- */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;
  background:var(--line-l);border:1px solid var(--line-l);border-radius:var(--r);overflow:hidden;margin-top:2.6rem}
.metrics .metric{background:var(--paper)}
.metrics .metric__n{color:var(--navy)}
.metrics .metric__k{color:var(--on-light-3)}
.dark .metrics,.band--ink .metrics,.band--art .metrics,.hero--dark .metrics{background:var(--line-d);border-color:var(--line-d)}
.dark .metric,.band--ink .metric,.band--art .metric,.hero--dark .metric{background:var(--abyss)}
.dark .metric__n,.band--ink .metric__n,.band--art .metric__n,.hero--dark .metric__n{color:#fff}
.dark .metric__k,.band--ink .metric__k,.band--art .metric__k,.hero--dark .metric__k{color:var(--on-dark-3)}
.metric{padding:1.3rem 1.4rem}
.metric__n{display:block;font:800 clamp(1.9rem,3.4vw,2.7rem)/1 var(--display);letter-spacing:-.05em;color:#fff}
.metric__n em{font-style:normal;color:var(--teal)}
.metric__k{display:block;font:500 .68rem var(--mono);text-transform:uppercase;letter-spacing:.15em;
  color:var(--on-dark-3);margin-top:.55rem}
.metrics--light{background:var(--line-l);border-color:var(--line-l)}
.metrics--light .metric{background:var(--paper)}
.metrics--light .metric__n{color:var(--navy)}
.metrics--light .metric__k{color:var(--on-light-3)}

/* keep old markup working */
.scorecard{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1px;
  background:var(--line-l);border:1px solid var(--line-l);border-radius:var(--r);overflow:hidden;margin-top:2.2rem}
.scorecard__cell{background:var(--paper);padding:1.2rem 1.3rem}
.scorecard__label{display:block;font:500 .66rem var(--mono);text-transform:uppercase;letter-spacing:.15em;
  color:var(--on-light-3);margin-bottom:.5rem}
.scorecard__num{display:block;font:800 1.9rem/1 var(--display);letter-spacing:-.05em;color:var(--navy)}
.scorecard__num small{font-size:.45em}
.scorecard__num--sm{font:400 .87rem/1.45 var(--body);color:var(--on-light-2);letter-spacing:0}
.scorecard__num.up{color:var(--teal)}
.scorecard__num.down{color:var(--azure)}
.dark .scorecard,.hero--dark .scorecard{background:var(--line-d);border-color:var(--line-d)}
.dark .scorecard__cell,.hero--dark .scorecard__cell{background:var(--abyss)}
.dark .scorecard__num,.hero--dark .scorecard__num{color:#fff}
.dark .scorecard__num.up,.hero--dark .scorecard__num.up{color:var(--teal)}
.dark .scorecard__num--sm,.hero--dark .scorecard__num--sm{color:var(--on-dark-2)}
.dark .scorecard__label,.hero--dark .scorecard__label{color:var(--on-dark-3)}

/* ---------------- SIGNATURE: the service index ---------------- */
.index{border-top:1px solid var(--line-d)}
.index__row{display:grid;grid-template-columns:4.5rem 1fr auto;gap:1.5rem;align-items:center;
  padding:clamp(1.3rem,2.6vw,2rem) 0;border-bottom:1px solid var(--line-d);
  text-decoration:none;color:inherit;position:relative;transition:padding-left .35s cubic-bezier(.2,.7,.2,1)}
.index__row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:
  linear-gradient(90deg,rgba(79,188,198,.14),transparent);transition:width .45s cubic-bezier(.2,.7,.2,1)}
.index__row:hover{padding-left:1.4rem}
.index__row:hover::before{width:100%}
.index__no{font:500 .8rem var(--mono);letter-spacing:.16em;color:var(--on-dark-3);transition:color .3s}
.index__row:hover .index__no{color:var(--teal)}
.index__ttl{font:800 clamp(1.35rem,3.2vw,2.3rem)/1.05 var(--display);letter-spacing:-.04em;color:#fff;
  transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.index__row:hover .index__ttl{transform:translateX(6px)}
.index__sub{display:block;font:400 .92rem/1.5 var(--body);color:var(--on-dark-2);margin-top:.4rem;max-width:52ch}
.index__go{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-d);display:grid;place-items:center;
  color:var(--on-dark-2);flex:none;transition:background .3s,color .3s,border-color .3s,transform .3s}
.index__row:hover .index__go{background:var(--teal);border-color:var(--teal);color:var(--abyss);transform:rotate(-45deg)}
.index__go svg{width:16px;height:16px}
@media(max-width:680px){.index__row{grid-template-columns:2.6rem 1fr;gap:.9rem}.index__go{display:none}}

/* ---------------- ticker ---------------- */
.marquee{overflow:hidden;padding:1.1rem 0;border-block:1px solid var(--line-d);background:var(--abyss);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.marquee__row{display:flex;gap:2.6rem;width:max-content;animation:slide 46s linear infinite}
.marquee span{display:flex;align-items:center;gap:.7rem;white-space:nowrap;
  font:600 .78rem var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--on-dark-3)}
.marquee span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal);flex:none}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------------- bands ---------------- */
.band{padding-block:clamp(3rem,6.5vw,5.2rem)}
.band--mist{background:var(--mist)}
.band--rule{border-top:1px solid var(--line-l)}
.band--ink,.band--art{background:var(--deep);color:var(--on-dark);position:relative;isolation:isolate}
.band--ink::before,.band--art::before{content:"";position:absolute;inset:0;background-image:var(--grain);
  opacity:.16;mix-blend-mode:overlay;pointer-events:none;z-index:-1}
.band--ink h2,.band--ink h3,.band--art h2,.band--art h3{color:var(--on-dark)}
.band--ink .lede,.band--art .lede,.band--ink p,.band--art p{color:var(--on-dark-2)}
.band--ink .eyebrow,.band--art .eyebrow{color:var(--teal)}
.sec-head{max-width:62ch;margin-bottom:2.2rem}

/* ---------------- cards ---------------- */
.grid{display:grid;gap:1rem}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(258px,1fr))}
.grid--4{grid-template-columns:repeat(auto-fit,minmax(215px,1fr))}
.grid--kpi{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}
.card{background:var(--paper);border:1px solid var(--line-l);border-radius:var(--r);padding:1.6rem;
  transition:transform .3s cubic-bezier(.2,.7,.2,1),box-shadow .3s,border-color .3s}
.card p{color:var(--on-light-2);font-size:.94rem;margin:0}
.card--link{text-decoration:none;color:inherit;display:block}
.card--link:hover,.card--hover:hover{transform:translateY(-4px);box-shadow:var(--lift);border-color:rgba(79,188,198,.5)}
.card__ico{width:42px;height:42px;border-radius:13px;display:grid;place-items:center;margin-bottom:1rem;
  background:linear-gradient(150deg,rgba(79,188,198,.22),rgba(26,120,184,.14));color:var(--navy)}
.card__ico svg{width:20px;height:20px}
.card__ico--grad{background:linear-gradient(150deg,var(--navy),var(--azure));color:#fff}
.card__ico--teal{background:var(--teal);color:var(--abyss)}
.card__n{display:block;font:600 .7rem var(--mono);letter-spacing:.16em;color:var(--azure);margin-bottom:.55rem}
.dark .card,.band--ink .card,.band--art .card{background:var(--deep-2);border-color:var(--line-d)}
.dark .card p,.band--ink .card p,.band--art .card p{color:var(--on-dark-2)}
.dark .card__ico,.band--ink .card__ico,.band--art .card__ico{background:rgba(79,188,198,.16);color:var(--teal)}
.dark .card__n,.band--ink .card__n,.band--art .card__n{color:var(--teal)}
.grid--kpi .card{padding:1.05rem}
.grid--kpi .card__ico{width:32px;height:32px;border-radius:10px;margin-bottom:.65rem}
.grid--kpi .card__ico svg{width:16px;height:16px}
.grid--kpi h4{margin:0;font-size:.88rem}

/* ---------------- image tiles ---------------- */
.tile{position:relative;display:flex;align-items:flex-end;min-height:250px;border-radius:var(--r);
  overflow:hidden;text-decoration:none;color:#fff;isolation:isolate;background:var(--deep);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;
  filter:saturate(.35);opacity:.55;transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .4s}
.tile::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg,rgba(14,23,48,.15),rgba(7,12,27,.92))}
.tile:hover{transform:translateY(-5px);box-shadow:var(--lift)}
.tile:hover img{transform:scale(1.07);opacity:.7}
.tile__in{padding:1.5rem;position:relative}
.tile__in h3{color:#fff;margin-bottom:.3rem}
.tile__in p{color:var(--on-dark-2);font-size:.89rem;margin:0}
.tile__in .card__n{color:var(--teal)}

/* ---------------- lists ---------------- */
.ticks{list-style:none;padding:0;margin:0}
.ticks li{position:relative;padding-left:1.75rem;margin-bottom:.6rem;font-size:.94rem;color:var(--on-light-2)}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:16px;height:16px;border-radius:50%;
  background:rgba(79,188,198,.2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.4l2.6 2.6L12 5.6' fill='none' stroke='%23223A87' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px no-repeat}
.dark .ticks li,.band--ink .ticks li,.band--art .ticks li{color:var(--on-dark-2)}
.steps{counter-reset:s;list-style:none;padding:0;margin:0;max-width:66ch}
.steps li{counter-increment:s;position:relative;padding-left:2.9rem;margin-bottom:1rem;color:var(--on-light-2)}
.steps li::before{content:counter(s,decimal-leading-zero);position:absolute;left:0;top:-.05em;
  width:2.1rem;height:2.1rem;border-radius:50%;background:rgba(79,188,198,.18);color:var(--navy);
  font:700 .74rem/2.1rem var(--mono);text-align:center}
.band--ink .steps li,.band--art .steps li{color:var(--on-dark-2)}
.band--ink .steps li::before,.band--art .steps li::before{background:rgba(79,188,198,.2);color:var(--teal)}

.linklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:.75rem}
.linklist a{background:var(--paper);border:1px solid var(--line-l);border-radius:var(--r-sm);
  padding:1.05rem 1.25rem;text-decoration:none;color:inherit;display:block;
  transition:transform .28s,box-shadow .28s,border-color .28s}
.linklist a:hover{transform:translateY(-3px);box-shadow:var(--lift);border-color:rgba(79,188,198,.55)}
.linklist strong{display:block;font-family:var(--display);font-weight:700;letter-spacing:-.025em;
  margin-bottom:.22rem;font-size:.98rem}
.linklist span{display:block;font-size:.86rem;color:var(--on-light-3)}
.linklist--tight{grid-template-columns:repeat(auto-fit,minmax(206px,1fr))}
.linklist--tight a{padding:.8rem 1rem}
.linklist--tight strong{margin:0;font-size:.9rem}
.dark .linklist a{background:var(--deep-2);border-color:var(--line-d)}
.dark .linklist span{color:var(--on-dark-3)}

/* ---------------- timeline ---------------- */
.timeline{position:relative;padding-left:2.5rem;margin:0}
.timeline::before{content:"";position:absolute;left:9px;top:.7rem;bottom:1rem;width:2px;
  background:linear-gradient(var(--teal),var(--navy))}
.timeline li{list-style:none;position:relative;padding-bottom:1.8rem}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-2.5rem;top:.35rem;width:20px;height:20px;border-radius:50%;
  background:var(--paper);border:2px solid var(--teal)}
.timeline li::after{content:"";position:absolute;left:-2.1rem;top:.75rem;width:8px;height:8px;border-radius:50%;background:var(--navy)}
.timeline .tl-k{display:block;font:600 .68rem var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--azure);margin-bottom:.22rem}
.timeline h3{margin-bottom:.25rem}
.timeline p{color:var(--on-light-2);font-size:.93rem;margin:0}
.band--ink .timeline li::before,.band--art .timeline li::before,.dark .timeline li::before{background:var(--deep)}
.band--ink .timeline .tl-k,.band--art .timeline .tl-k,.dark .timeline .tl-k{color:var(--teal)}
.band--ink .timeline p,.band--art .timeline p,.dark .timeline p{color:var(--on-dark-2)}
.band--ink .timeline li::after,.band--art .timeline li::after,.dark .timeline li::after{background:var(--teal)}

/* ---------------- tables ---------------- */
.tablewrap{overflow-x:auto;border:1px solid var(--line-l);border-radius:var(--r);background:var(--paper)}
.table,.vs{width:100%;border-collapse:collapse;font-size:.93rem;min-width:540px}
.table th,.table td,.vs th,.vs td{text-align:left;padding:.95rem 1.15rem;border-bottom:1px solid var(--line-l);vertical-align:top}
.table tr:last-child td,.vs tr:last-child td{border-bottom:0}
.table thead th,.vs thead th{font:600 .66rem var(--mono);text-transform:uppercase;letter-spacing:.15em;
  color:var(--on-light-3);background:var(--mist)}
.vs thead th:nth-child(2){background:var(--navy);color:#fff}
.vs td:nth-child(2){background:rgba(79,188,198,.07);font-weight:600}
.vs tbody td:first-child{font-weight:700}
.vs .no{color:var(--on-light-3)}
.table td:nth-child(2){font-family:var(--display);font-weight:800;color:var(--navy)}

/* ---------------- before / after ---------------- */
.ba{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem;margin-bottom:1.6rem}
.ba>div{background:var(--paper);border:1px solid var(--line-l);border-radius:var(--r-sm);padding:1.25rem;position:relative;overflow:hidden}
.ba>div::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line-l)}
.ba>div:first-child::before{background:var(--on-light-3)}
.ba>div:nth-child(2)::before{background:var(--teal)}
.ba p{margin:0;font-size:.93rem;color:var(--on-light-2)}
.quote{margin:1.6rem 0 0;padding:1.5rem 1.7rem;background:var(--mist);border-radius:var(--r);
  font:600 1.18rem/1.45 var(--display);letter-spacing:-.025em;max-width:52ch;position:relative}
.quote::before{content:"";position:absolute;left:0;top:1.5rem;bottom:1.5rem;width:3px;background:var(--teal)}

/* ---------------- testimonials ---------------- */
.tcard{background:var(--paper);border:1px solid var(--line-l);border-radius:var(--r);padding:1.6rem;
  display:flex;flex-direction:column;gap:1.1rem;transition:transform .3s,box-shadow .3s}
.tcard:hover{transform:translateY(-4px);box-shadow:var(--lift)}
.tcard__q{font:500 1.02rem/1.5 var(--body);color:var(--on-light);margin:0}
.tcard__who{display:flex;align-items:center;gap:.8rem;margin-top:auto}
.avatar{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:linear-gradient(150deg,var(--navy),var(--azure));color:#fff;font:700 .8rem var(--body)}
.avatar--teal{background:linear-gradient(150deg,var(--teal),var(--azure));color:var(--abyss)}
.tcard__who>span:last-child{display:flex;flex-direction:column}
.tcard__who strong{font-size:.9rem;font-family:var(--display);font-weight:700;letter-spacing:-.02em}
.tcard__who>span:last-child>span{font-size:.8rem;color:var(--on-light-3)}
.dark .tcard{background:var(--deep-2);border-color:var(--line-d)}
.dark .tcard__q{color:#fff}
.dark .tcard__who>span:last-child>span{color:var(--on-dark-3)}

/* ---------------- bento ---------------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.bento>*{border:1px solid var(--line-l);border-radius:var(--r);background:var(--paper);padding:1.6rem}
.bento .b-wide{grid-column:span 2}
.bento .b-full{grid-column:span 4}
.bento .b-dark{background:var(--deep);border-color:var(--deep);color:var(--on-dark-2);position:relative;overflow:hidden}
.bento .b-dark::after{content:"";position:absolute;width:220px;height:220px;right:-70px;top:-70px;border-radius:50%;
  background:radial-gradient(circle,rgba(79,188,198,.35),transparent 68%)}
.bento .b-dark h3{color:#fff}
.bento .b-teal{background:linear-gradient(150deg,rgba(79,188,198,.22),rgba(26,120,184,.1));border-color:rgba(79,188,198,.4)}
.bento p{color:var(--on-light-2);font-size:.92rem;margin:.4rem 0 0}
.bento .b-dark p{color:var(--on-dark-2)}
.bigstat{display:block;font:800 clamp(2.6rem,7vw,4.4rem)/.9 var(--display);letter-spacing:-.055em;color:var(--navy)}
.bigstat em{font-style:normal;color:var(--teal)}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}.bento .b-full,.bento .b-wide{grid-column:span 2}}
@media(max-width:540px){.bento{grid-template-columns:1fr}.bento .b-full,.bento .b-wide{grid-column:span 1}}

/* ---------------- accordion ---------------- */
.acc{border:1px solid var(--line-l);border-radius:var(--r);overflow:hidden;background:var(--paper)}
.acc details{border-bottom:1px solid var(--line-l)}
.acc details:last-child{border-bottom:0}
.acc summary{cursor:pointer;list-style:none;padding:1.15rem 3.2rem 1.15rem 1.4rem;position:relative;
  font-family:var(--display);font-weight:700;letter-spacing:-.02em;font-size:1rem;transition:background .2s}
.acc summary::-webkit-details-marker{display:none}
.acc summary:hover{background:var(--mist)}
.acc summary::after,.acc summary::before{content:"";position:absolute;right:1.5rem;top:50%;background:var(--azure);transition:transform .3s}
.acc summary::after{width:12px;height:2px;margin-top:-1px}
.acc summary::before{width:2px;height:12px;margin-top:-6px;margin-right:5px}
.acc details[open] summary{background:var(--mist)}
.acc details[open] summary::before{transform:rotate(90deg)}
.acc__body{padding:.2rem 1.4rem 1.4rem;color:var(--on-light-2);font-size:.95rem}
.acc__body p:last-child{margin-bottom:0}
.acc__body ul{margin:.45rem 0 0;padding-left:1.1rem}

/* ---------------- marks + badges ---------------- */
.marks{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:1px;
  background:var(--line-l);border:1px solid var(--line-l);border-radius:var(--r);overflow:hidden}
.marks span{background:var(--paper);padding:1.5rem 1rem;text-align:center;
  font:700 1rem var(--display);letter-spacing:-.03em;color:var(--on-light-3);transition:color .25s,background .25s}
.marks span:hover{color:var(--navy);background:var(--mist)}
.badge{display:inline-flex;align-items:center;gap:.4rem;background:var(--navy);color:#fff;border-radius:999px;
  padding:.32rem .8rem;font:600 .68rem var(--mono);letter-spacing:.13em;text-transform:uppercase}
.badge--teal{background:var(--teal);color:var(--abyss)}
.badge--outline{background:transparent;color:var(--navy);border:1px solid var(--line-l)}

/* ---------------- carousel ---------------- */
.carousel__track{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(268px,31.5%);gap:1rem;
  overflow-x:auto;scroll-snap-type:x mandatory;padding:.3rem .3rem 1.1rem;margin:-.3rem -.3rem 0;scrollbar-width:thin}
@media(max-width:760px){.carousel__track{grid-auto-columns:minmax(248px,84%)}}
.carousel__track>*{scroll-snap-align:start}
.carousel__track::-webkit-scrollbar{height:5px}
.carousel__track::-webkit-scrollbar-thumb{background:var(--line-l);border-radius:99px}
.carousel__nav{display:flex;gap:.5rem;justify-content:flex-end}
.carousel__btn{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-l);background:var(--paper);
  cursor:pointer;display:grid;place-items:center;color:var(--navy);transition:background .25s,color .25s,border-color .25s}
.carousel__btn:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.carousel__btn svg{width:15px;height:15px}
.dark .carousel__btn,.band--ink .carousel__btn,.band--art .carousel__btn{background:transparent;border-color:var(--line-d);color:var(--on-dark-2)}
.dark .carousel__btn:hover,.band--ink .carousel__btn:hover,.band--art .carousel__btn:hover{background:var(--teal);color:var(--abyss);border-color:var(--teal)}

/* ---------------- figures ---------------- */
.figure{border:1px solid var(--line-l);border-radius:var(--r);background:var(--paper);padding:1.4rem;box-shadow:var(--lift)}
.figure svg{width:100%;height:auto}
.figure__cap{font:400 .8rem var(--body);color:var(--on-light-3);margin:.9rem 0 0;text-align:center}
.mockup{border-radius:var(--r);overflow:hidden;background:var(--paper);box-shadow:var(--lift);border:1px solid var(--line-l)}
.mockup svg,.mockup img{width:100%;height:auto;display:block}
.case-art{border-radius:var(--r);overflow:hidden;aspect-ratio:3/2;background:var(--deep);box-shadow:var(--lift)}
.case-art img{width:100%;height:100%;object-fit:cover;filter:saturate(.4);opacity:.8}

/* ---------------- forms ---------------- */
.lead{max-width:650px;background:var(--paper);border:1px solid var(--line-l);border-radius:var(--r);
  padding:1.7rem;box-shadow:var(--lift)}
.lead__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:600px){.lead__row{grid-template-columns:1fr}}
.lead label{display:block;font:600 .76rem var(--body);color:var(--on-light-2);margin-bottom:1rem}
.lead input,.lead select,.lead textarea{display:block;width:100%;margin-top:.42rem;padding:.72rem .85rem;
  border:1px solid var(--line-l);border-radius:10px;background:var(--paper);
  font:400 .97rem var(--body);color:var(--on-light)}
.lead input:focus,.lead select:focus,.lead textarea:focus{border-color:var(--teal);outline:none;
  box-shadow:0 0 0 3px rgba(79,188,198,.18)}
.hp{position:absolute!important;left:-9999px}
.lead__msg{margin:1rem 0 0;font-size:.92rem}
.lead__msg.ok{color:var(--azure)}.lead__msg.err{color:var(--navy)}

/* ---------------- calculator ---------------- */
.calc{border:1px solid var(--line-l);border-radius:var(--r);background:var(--paper);padding:1.7rem;box-shadow:var(--lift)}
.calc__inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:1rem}
.calc label{display:block;font:600 .74rem var(--body);color:var(--on-light-2)}
.calc input{display:block;width:100%;margin-top:.42rem;padding:.65rem .8rem;border:1px solid var(--line-l);
  border-radius:10px;background:var(--paper);font:800 1.02rem var(--display);color:var(--navy)}
.calc input:focus{border-color:var(--teal);outline:none;box-shadow:0 0 0 3px rgba(79,188,198,.18)}
.calc__out{margin-top:1.5rem;border-top:1px solid var(--line-l);padding-top:1.3rem}
.calc__big{display:block;font:800 clamp(2rem,5.6vw,3.1rem)/1 var(--display);letter-spacing:-.055em;
  color:var(--navy);margin:.35rem 0 .8rem}

/* ---------------- crumbs ---------------- */
.crumbs{font-size:.82rem;color:var(--on-light-3);padding-top:1.1rem}
.crumbs a{text-decoration:none;color:var(--on-light-3)}
.crumbs a:hover{color:var(--navy)}

/* ---------------- CTA + footer ---------------- */
.cta-band{position:relative;isolation:isolate;overflow:hidden;padding-block:clamp(3.4rem,7vw,5.4rem);
  background:radial-gradient(90% 120% at 88% 0%,rgba(79,188,198,.22),transparent 60%),
  linear-gradient(140deg,var(--navy),var(--abyss) 70%);color:var(--on-dark-2)}
.cta-band::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.16;
  mix-blend-mode:overlay;pointer-events:none;z-index:-1}
.cta-band h2{color:#fff;max-width:18ch}
.cta-band .lede,.cta-band .fine{color:var(--on-dark-2)}
.cta-band .eyebrow{color:var(--teal)}
.cta-band .btn{background:var(--teal);color:var(--abyss);border-color:var(--teal)}
.cta-band .btn::before{background:#fff}
.cta-band .btn:hover{border-color:#fff}
.cta-band .btn--ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.32)}
.cta-band .btn--ghost::before{background:#fff}
.foot{background:var(--abyss);color:var(--on-dark-3);padding-block:3rem 1.4rem;font-size:.88rem}
.foot__grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:2rem}
@media(max-width:820px){.foot__grid{grid-template-columns:1fr 1fr}}
.foot img{height:32px;width:auto;margin-bottom:.9rem}
.foot__h{font:600 .68rem var(--mono);text-transform:uppercase;letter-spacing:.16em;color:#fff;margin-bottom:.8rem}
.foot__grid a{display:block;text-decoration:none;color:var(--on-dark-3);margin-bottom:.42rem;font-size:.87rem;transition:color .2s}
.foot__grid a:hover{color:var(--teal)}
.foot__legal{margin-top:2.2rem;border-top:1px solid var(--line-d);padding-top:1.2rem;color:var(--on-dark-3);font-size:.8rem}

/* ---------------- floating chrome ---------------- */
.wa{position:fixed;right:1rem;bottom:1rem;background:var(--navy);color:#fff;text-decoration:none;
  padding:.72rem 1.15rem;border-radius:999px;font:600 .84rem var(--body);z-index:55;
  display:inline-flex;align-items:center;gap:.45rem;box-shadow:var(--lift);transition:background .25s,color .25s}
.wa:hover{background:var(--teal);color:var(--abyss)}
.wa svg{width:16px;height:16px}
.totop{position:fixed;left:1rem;bottom:1rem;z-index:54;width:42px;height:42px;border-radius:50%;
  border:1px solid var(--line-l);background:rgba(255,255,255,.9);backdrop-filter:blur(8px);color:var(--navy);
  display:grid;place-items:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s,background .25s,color .25s}
.totop.show{opacity:1;pointer-events:auto}
.totop:hover{background:var(--navy);color:#fff}
.totop svg{width:15px;height:15px;transform:rotate(-90deg)}
.stickybar{position:fixed;left:0;right:0;bottom:0;z-index:56;display:none;gap:.6rem;padding:.65rem;
  background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-top:1px solid var(--line-l)}
.stickybar .btn{flex:1;justify-content:center;padding:.75rem 1rem;font-size:.88rem}
@media(max-width:760px){.stickybar{display:flex}body{padding-bottom:4.4rem}
  .wa{bottom:5rem;right:.75rem}.totop{bottom:5rem;left:.75rem}}
.progress{position:fixed;top:0;left:0;height:2px;width:0;z-index:70;background:var(--teal)}

/* ---------------- motion ---------------- */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}.hl::after{transform:none}}

/* legacy hooks */
.divider{display:none}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:center}
@media(max-width:880px){.split{grid-template-columns:1fr}}
.wb{background:var(--paper);border:1px solid var(--line-l);border-radius:var(--r);overflow:hidden;color:var(--on-light);box-shadow:var(--lift)}
.wb::before,.wb::after{display:none}
.wb__hd{display:flex;align-items:center;gap:.7rem;padding:.85rem 1.15rem;background:var(--deep)}
.wb__hd span{font:600 .68rem var(--mono);text-transform:uppercase;letter-spacing:.15em;color:#fff}
.wb__hd .dot{width:8px;height:8px;border-radius:50%;background:var(--teal);flex:none}
.wb__hd .right{margin-left:auto;color:var(--on-dark-3)}
.wb__bd{padding:1.3rem 1.15rem}
.wb__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:1rem}
.wb__k{display:block;font:600 .64rem var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--on-light-3);margin-bottom:.3rem}
.wb__v{display:block;font:800 1.35rem/1 var(--display);letter-spacing:-.04em;color:var(--navy);font-variant-numeric:tabular-nums}
.wb__v.g{color:var(--teal)}.wb__v.a{color:var(--azure)}.wb__v.r{color:var(--on-light-3)}
.wb__bar,.wb__code{display:none}
.stamp{display:inline-flex;align-items:center;border-radius:999px;font:600 .7rem var(--mono);
  letter-spacing:.14em;text-transform:uppercase;padding:.3rem .75rem;border:1px solid currentColor;color:var(--azure)}
.tabs__btns{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.3rem}
.tabs__btn{border:1px solid var(--line-l);background:var(--paper);border-radius:999px;padding:.5rem 1.1rem;
  font:600 .86rem var(--body);color:var(--on-light-2);cursor:pointer}
.tabs__btn[aria-selected=true]{background:var(--navy);color:#fff;border-color:var(--navy)}
.tabs__panel[hidden]{display:none}

/* .hero--dark is a dark surface too — inherit every dark-context rule */
.hero--dark{color:var(--on-dark)}
.hero--dark h1,.hero--dark h2,.hero--dark h3,.hero--dark h4{color:var(--on-dark)}
.hero--dark .lede,.hero--dark p,.hero--dark .kicker{color:var(--on-dark-2)}
.hero--dark .fine{color:var(--on-dark-3)}
.hero--dark .eyebrow{color:var(--teal)}
.hero--dark .btn--ghost{color:#fff;border-color:var(--line-d)}
.hero--dark .btn--ghost:hover{color:var(--abyss)}
.hero--dark .crumbs,.hero--dark .crumbs a{color:var(--on-dark-3)}
.hero--dark .ticks li{color:var(--on-dark-2)}
.hero--dark::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.14;
  mix-blend-mode:overlay;pointer-events:none;z-index:0}
.hero--dark>*{position:relative;z-index:1}

/* ============================================================
   INTERACTION LAYER
   Progressive enhancement only. Every rule here degrades to the
   static design when JS is off, on touch, or under reduced motion.
   ============================================================ */

/* --- 1. page-load sequence --- */
.is-ready .hero__grid>*{opacity:0;transform:translateY(26px)}
.is-loaded .hero__grid>*{opacity:1;transform:none;
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1)}
.is-loaded .hero__grid>*:nth-child(2){transition-delay:.14s}
.is-ready .hero .metrics,.is-ready .hero .scorecard{opacity:0;transform:translateY(26px)}
.is-loaded .hero .metrics,.is-loaded .hero .scorecard{opacity:1;transform:none;
  transition:opacity .9s .26s cubic-bezier(.16,1,.3,1),transform .9s .26s cubic-bezier(.16,1,.3,1)}
.is-ready .nav__in{opacity:0}
.is-loaded .nav__in{opacity:1;transition:opacity .6s ease}

/* --- 2. word-stagger heading reveal --- */
.wsplit{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.06em;margin-bottom:-.06em}
.wsplit__i{display:inline-block;transform:translateY(105%);
  transition:transform .85s cubic-bezier(.16,1,.3,1)}
[data-split].in .wsplit__i{transform:translateY(0)}

/* --- 3. custom cursor --- */
@media (hover:hover) and (pointer:fine){
  .cursor{position:fixed;top:0;left:0;z-index:200;pointer-events:none;
    display:grid;place-items:center;will-change:transform}
  .cursor__dot{width:9px;height:9px;border-radius:50%;background:var(--teal);
    transition:width .3s cubic-bezier(.16,1,.3,1),height .3s cubic-bezier(.16,1,.3,1),background .3s;
    box-shadow:0 0 0 1px rgba(79,188,198,.35)}
  .cursor__label{position:absolute;font:600 .62rem var(--mono);letter-spacing:.14em;
    text-transform:uppercase;color:var(--abyss);opacity:0;transition:opacity .25s}
  .cursor.is-hover .cursor__dot{width:38px;height:38px;background:rgba(79,188,198,.25)}
  .cursor.is-label .cursor__dot{width:72px;height:72px;background:var(--teal)}
  .cursor.is-label .cursor__label{opacity:1}
  .cursor.is-out{opacity:0}
  /* the native cursor stays available for anyone who needs it */
}

/* --- 4. index hover preview --- */
.idx-preview{position:absolute;top:0;left:0;width:290px;height:196px;border-radius:var(--r);
  overflow:hidden;pointer-events:none;opacity:0;z-index:3;
  transition:opacity .35s cubic-bezier(.16,1,.3,1);will-change:transform;
  box-shadow:0 30px 60px -24px rgba(7,12,27,.8)}
.idx-preview.show{opacity:1}
.idx-preview img{width:100%;height:100%;object-fit:cover;filter:saturate(.4)}
.index{position:relative}

/* --- 5. pinned horizontal scroll --- */
.pin{position:relative}
.pin__sticky{position:sticky;top:0;height:100vh;display:flex;align-items:center;overflow:hidden}
.pin__track{display:flex;gap:1.4rem;padding-inline:var(--gap);will-change:transform}
.pin__card{flex:0 0 clamp(300px,32vw,440px)}
@media(max-width:900px){
  .pin{height:auto!important}
  .pin__sticky{position:static;height:auto;overflow:visible}
  .pin__track{transform:none!important;overflow-x:auto;scroll-snap-type:x mandatory;
    padding-bottom:1rem;-webkit-overflow-scrolling:touch}
  .pin__card{scroll-snap-align:start;flex:0 0 82%}
}

/* --- 8. parallax --- */
.tile img{transform:translate3d(0,var(--py,0px),0) scale(1.12)}
.tile:hover img{transform:translate3d(0,var(--py,0px),0) scale(1.17)}

@media(prefers-reduced-motion:reduce){
  .is-ready .hero__grid>*,.is-ready .hero .metrics,.is-ready .hero .scorecard,.is-ready .nav__in{opacity:1;transform:none}
  .wsplit__i{transform:none}
  .cursor,.idx-preview{display:none}
  .pin{height:auto!important}
  .pin__sticky{position:static;height:auto}
  .pin__track{transform:none!important;overflow-x:auto}
  .tile img{transform:none}
}

/* pinned chapter reads as its own dark room */
.pin{background:var(--deep);position:relative;isolation:isolate}
.pin::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.16;
  mix-blend-mode:overlay;pointer-events:none;z-index:0}
.pin__sticky{z-index:1}
.pin__meta{position:absolute;left:0;right:0;bottom:clamp(1.4rem,4vw,2.6rem);z-index:2;
  display:flex;align-items:center;gap:1rem;padding-inline:var(--gap);
  max-width:var(--wrap);margin-inline:auto}
.pin__count{font:600 .72rem var(--mono);letter-spacing:.16em;color:var(--on-dark-3);flex:none}
.pin__bar{flex:1;height:2px;background:var(--line-d);position:relative;overflow:hidden}
.pin__bar i{position:absolute;inset:0;transform-origin:left;transform:scaleX(0);background:var(--teal)}
.pin__hint{font:600 .68rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--on-dark-3);flex:none;margin-right:5.5rem}
@media(max-width:900px){.pin__meta{position:static;margin-top:1rem}}

/* ============================================================
   PHOTOGRAPHY
   Images are colour-graded to the brand at build time, so the CSS
   treatment here is light: an overlay for legibility, and enough
   opacity that the photograph still reads as a photograph.
   ============================================================ */
.hero--dark{background-image:
  linear-gradient(100deg,rgba(7,12,27,.94) 0%,rgba(14,23,48,.86) 46%,rgba(27,58,139,.58) 100%),
  radial-gradient(90% 120% at 88% -10%,rgba(79,188,198,.20),transparent 62%),
  var(--img-hero);
  background-size:cover;background-position:center;background-repeat:no-repeat}

.band--art{background-image:
  linear-gradient(100deg,rgba(7,12,27,.93),rgba(14,23,48,.80)),var(--img-band);
  background-size:cover;background-position:center}

/* tiles: let the photo through */
.tile img{filter:saturate(.85) contrast(1.02);opacity:.82}
.tile:hover img{opacity:.95}
.tile::after{background:linear-gradient(180deg,rgba(7,12,27,.12) 0%,rgba(7,12,27,.58) 52%,rgba(7,12,27,.93) 100%)}

/* photo panel — a framed image beside copy */
.photo{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--lift);background:var(--deep)}
.photo img{width:100%;height:100%;object-fit:cover;display:block;aspect-ratio:3/2}
.photo--tall img{aspect-ratio:4/5}
.photo__tag{position:absolute;left:1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.5rem;
  background:rgba(7,12,27,.72);backdrop-filter:blur(8px);color:#fff;border-radius:999px;
  padding:.42rem .9rem;font:600 .68rem var(--mono);text-transform:uppercase;letter-spacing:.14em}
.photo__tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal)}

/* full-bleed image strip between sections */
.strip{position:relative;height:clamp(220px,32vw,420px);overflow:hidden}
.strip img{width:100%;height:100%;object-fit:cover;transform:translate3d(0,var(--py,0px),0) scale(1.1)}
.strip::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(7,12,27,.55),rgba(7,12,27,.25) 40%,rgba(7,12,27,.75))}
.strip__in{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:var(--gap)}
.strip__in p{max-width:34ch;margin:0;font:800 clamp(1.4rem,3vw,2.4rem)/1.15 var(--display);
  letter-spacing:-.04em;color:#fff;text-wrap:balance}

.case-art img{filter:saturate(.85);opacity:1}

/* ============================================================
   AWARD-CIRCUIT POLISH PASS
   Chaptered structure, meta labels, signature footer, real
   mobile navigation. The details jurors actually score.
   ============================================================ */

/* --- running section counter: pages read as chapters --- */
body{counter-reset:chap}
main .band{counter-increment:chap}
main .band .sec-head .eyebrow::after,
main .band>.wrap>.reveal>.eyebrow::after{
  content:"/ " counter(chap,decimal-leading-zero);color:var(--on-light-3);margin-left:.35rem}
.band--ink .sec-head .eyebrow::after,.band--art .sec-head .eyebrow::after{color:var(--on-dark-3)}

/* --- animated inline links --- */
main p a,main li a,.acc__body a{color:inherit;font-weight:600;text-decoration:none;
  background-image:linear-gradient(var(--teal),var(--teal));background-size:100% 2px;
  background-position:0 100%;background-repeat:no-repeat;transition:background-size .3s cubic-bezier(.2,.7,.2,1)}
main p a:hover,main li a:hover,.acc__body a:hover{background-size:0% 2px;background-position:100% 100%}

/* --- hero meta row --- */
.hero__meta{display:flex;gap:2rem;flex-wrap:wrap;margin-top:2.4rem;
  font:500 .68rem var(--mono);text-transform:uppercase;letter-spacing:.16em;color:var(--on-dark-3)}
.hero__meta span{display:flex;align-items:center;gap:.5rem}
.hero__meta span::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal)}
.scrollhint{position:absolute;right:var(--gap);bottom:1.6rem;display:flex;align-items:center;gap:.6rem;
  font:500 .64rem var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark-3);
  writing-mode:vertical-rl}
.scrollhint::after{content:"";width:1px;height:44px;background:linear-gradient(var(--teal),transparent);
  animation:drip 1.8s ease-in-out infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1);transform-origin:top}
  56%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-width:960px){.scrollhint{display:none}}

/* --- mobile navigation (there was none — links just vanished) --- */
.nav__burger{display:none;width:44px;height:44px;border:1px solid var(--line-l);border-radius:50%;
  background:var(--paper);cursor:pointer;place-items:center;position:relative;z-index:75}
.nav__burger span{display:block;width:17px;height:2px;background:var(--on-light);position:relative;
  transition:transform .3s,background .3s}
.nav__burger span::before,.nav__burger span::after{content:"";position:absolute;left:0;width:17px;height:2px;
  background:var(--on-light);transition:transform .3s,top .3s}
.nav__burger span::before{top:-5px}.nav__burger span::after{top:5px}
.menu-open .nav__burger span{background:transparent}
.menu-open .nav__burger span::before{top:0;transform:rotate(45deg)}
.menu-open .nav__burger span::after{top:0;transform:rotate(-45deg)}
@media(max-width:980px){.nav__burger{display:grid}}

.menu{position:fixed;inset:0;z-index:70;background:var(--abyss);color:var(--on-dark);
  display:flex;flex-direction:column;justify-content:center;padding:var(--gap);
  opacity:0;visibility:hidden;transition:opacity .4s cubic-bezier(.2,.7,.2,1),visibility 0s .4s}
.menu::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.16;
  mix-blend-mode:overlay;pointer-events:none}
.menu-open .menu{opacity:1;visibility:visible;transition:opacity .4s cubic-bezier(.2,.7,.2,1)}
.menu a{position:relative;display:block;text-decoration:none;color:var(--on-dark);
  font:800 clamp(1.9rem,8.5vw,3.2rem)/1.22 var(--display);letter-spacing:-.04em;
  padding:.25rem 0;transform:translateY(24px);opacity:0;transition:transform .5s,opacity .5s}
.menu-open .menu a{transform:none;opacity:1}
.menu a:nth-child(2){transition-delay:.05s}.menu a:nth-child(3){transition-delay:.1s}
.menu a:nth-child(4){transition-delay:.15s}.menu a:nth-child(5){transition-delay:.2s}
.menu a:nth-child(6){transition-delay:.25s}
.menu a em{font-style:normal;font:500 .68rem var(--mono);letter-spacing:.18em;color:var(--teal);
  vertical-align:super;margin-right:.7rem}
.menu__meta{margin-top:2.4rem;font:500 .7rem var(--mono);letter-spacing:.14em;
  text-transform:uppercase;color:var(--on-dark-3)}
.menu-open{overflow:hidden}

/* --- signature footer --- */
.foot__cta{display:block;text-decoration:none;color:var(--on-dark);padding:clamp(2.6rem,6vw,4.6rem) 0;
  border-bottom:1px solid var(--line-d)}
.foot__cta .eyebrow{color:var(--teal)}
.foot__cta strong{display:block;font:800 clamp(2.2rem,7vw,5rem)/1 var(--display);letter-spacing:-.045em;
  color:#fff;transition:color .3s}
.foot__cta strong i{font-style:normal;display:inline-block;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.foot__cta:hover strong{color:var(--teal)}
.foot__cta:hover strong i{transform:translateX(14px)}
.foot__brand{overflow:hidden;line-height:0;margin-top:2.6rem;opacity:.1;pointer-events:none;user-select:none}
.foot__brand span{font:800 clamp(4rem,15.5vw,13.5rem)/0.86 var(--display);letter-spacing:-.05em;
  color:#fff;white-space:nowrap;display:block;transform:translateY(.06em)}

/* nav sits above the open menu; chrome fades, burger becomes the close */
.menu-open .nav{z-index:80;background:transparent;border-bottom-color:transparent;backdrop-filter:none}
.menu-open .nav__logo,.menu-open .nav .btn,.menu-open .nav__links{opacity:0;pointer-events:none;transition:opacity .25s}
.menu-open .nav__burger{border-color:#3B4653;background:transparent}
.menu-open .nav__burger span::before,.menu-open .nav__burger span::after{background:#fff}
