:root{
  --bg:#FCFCFA;
  --bg-dark:#0A1712;
  --ink:#10201A;
  --navy:#2C4A3C;
  --navy-2:rgba(44,74,60,0.62);
  --navy-3:rgba(44,74,60,0.38);
  --navy-4:rgba(44,74,60,0.18);
  --navy-out:rgba(44,74,60,0.09);
  --brand-blue:#14543A;
  --brand-blue-2:rgba(20,84,58,0.72);
  --brand-blue-out:rgba(20,84,58,0.14);
  --rule:rgba(44,74,60,0.12);
  --rule-strong:rgba(44,74,60,0.26);
  --rule-x:rgba(44,74,60,0.42);
  --rule-dark:rgba(252,252,250,0.12);
  --rule-dark-strong:rgba(252,252,250,0.24);
  --rule-soft:rgba(252,252,250,0.06);
  --fg:#FCFCFA;
  --fg-2:rgba(252,252,250,0.78);
  --fg-3:rgba(252,252,250,0.55);
  --fg-dim:rgba(252,252,250,0.32);
  --fg-out:rgba(252,252,250,0.07);
  --teal:oklch(0.88 0.085 152);
  --teal-wash:oklch(0.88 0.085 152 / 0.22);
  --teal-strong:oklch(0.88 0.085 152 / 0.55);
  --teal-grad:linear-gradient(90deg,oklch(0.88 0.085 152 / 0.4),oklch(0.88 0.085 152 / 0.9),oklch(0.88 0.085 152 / 0.4));
  --teal-shimmer:linear-gradient(100deg,oklch(0.88 0.085 152 / 0.35) 0%,oklch(0.88 0.085 152 / 0.85) 40%,oklch(0.95 0.06 152 / 0.95) 50%,oklch(0.88 0.085 152 / 0.85) 60%,oklch(0.88 0.085 152 / 0.35) 100%);
  --font-display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --font-brace:"Bodoni Moda",Georgia,serif;
  --fv-monster:"wght" 800,"wdth" 96,"opsz" 96,"GRAD" 30;
  --fv-heavy:"wght" 780,"wdth" 95,"opsz" 96,"GRAD" 22;
  --fv-bold:"wght" 750,"wdth" 96,"opsz" 96,"GRAD" 22;
  --fv-accent:"wght" 380,"wdth" 94,"opsz" 72,"GRAD" -25;
  --fv-accent-lg:"wght" 340,"wdth" 92,"opsz" 96,"GRAD" -30;
  --fv-mono:"wght" 520,"wdth" 84,"opsz" 14,"GRAD" -10;
  --fv-thin:"wght" 220,"wdth" 92,"opsz" 96,"GRAD" -45;
  --ease:cubic-bezier(0.2,0.9,0.2,1);
  --ease-out-quart:cubic-bezier(0.25,1,0.5,1);
  --ease-out-expo:cubic-bezier(0.16,1,0.3,1);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
/* overflow-x on the ROOT, not just body: mobile browsers ignore body-level
   clipping for touch panning (128vw stargate, 116vw mini-stargate, 130vw
   shooting stars all exceed phone viewports). clip > hidden where supported:
   no scroll container, sticky header unaffected; hidden is the fallback. */
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:hidden;overflow-x:clip}
body{background:var(--bg-dark);color:var(--fg);font-family:var(--font-display);font-size:16px;line-height:1.65;font-variation-settings:"wght" 420,"wdth" 96,"opsz" 16,"GRAD" 0;-webkit-font-smoothing:antialiased;position:relative;overflow-x:hidden}
a{color:inherit;text-decoration:none}

/* ---------- GLOBAL cosmic background · fixed, deep, alive ---------- */
body::before{content:"";position:fixed;inset:-6%;pointer-events:none;z-index:-4;
  background:
    radial-gradient(ellipse 56vw 44vh at 50% 56%, oklch(0.88 0.085 152 / 0.28), transparent 60%),
    radial-gradient(ellipse 40vw 34vh at 50% 50%, oklch(0.7 0.14 150 / 0.24), transparent 62%),
    radial-gradient(ellipse 62vw 54vh at 18% 14%, oklch(0.88 0.085 152 / 0.36), transparent 58%),
    radial-gradient(ellipse 54vw 48vh at 80% 6%, oklch(0.7 0.14 150 / 0.38), transparent 58%),
    radial-gradient(ellipse 72vw 56vh at 55% 108%, oklch(0.88 0.085 152 / 0.3), transparent 58%),
    radial-gradient(ellipse 48vw 42vh at 90% 72%, oklch(0.82 0.1 150 / 0.26), transparent 58%),
    radial-gradient(ellipse 36vw 30vh at 8% 88%, oklch(0.88 0.085 152 / 0.22), transparent 60%);
  filter:blur(96px);will-change:auto}
@keyframes cosmos-drift{0%,100%{transform:none}}
/* grid/dot pattern removed - clean cosmic */

/* starfield - two parallax layers, dense */
.stars{position:fixed;inset:0;pointer-events:none;z-index:-2}
.stars span{position:absolute;border-radius:50%;background:var(--fg);animation:twinkle 5s var(--ease) infinite}
.stars .s1{width:3px;height:3px;background:oklch(0.95 0.06 152);box-shadow:0 0 8px oklch(0.88 0.085 152 / 0.75),0 0 16px oklch(0.88 0.085 152 / 0.35)}
.stars .s2{width:2px;height:2px}
.stars .s3{width:1px;height:1px;opacity:.55}
@keyframes twinkle{0%,100%{opacity:.22}50%{opacity:1}}
.stars-far{animation:starfield-drift 80s var(--ease-out-quart) infinite alternate}
.stars-near{animation:starfield-drift 50s var(--ease-out-quart) infinite alternate-reverse}
@keyframes starfield-drift{0%{transform:translate(0,0)}100%{transform:translate(10px,-14px)}}

/* shooting stars - two, different angles, staggered */
.shooting-star{position:fixed;top:22%;left:-10%;width:240px;height:1px;pointer-events:none;z-index:-1;
  background:linear-gradient(90deg,transparent,var(--teal) 50%,var(--fg) 95%,transparent);
  filter:blur(.4px);opacity:0;animation:shoot 18s var(--ease-out-quart) infinite}
.shooting-star::after{content:"";position:absolute;right:0;top:-1.5px;width:4px;height:4px;border-radius:50%;background:var(--fg);box-shadow:0 0 14px var(--teal),0 0 26px var(--teal)}
.shooting-star.s2{top:58%;width:200px;animation:shoot-2 26s var(--ease-out-quart) 7s infinite}
.shooting-star.s2::after{box-shadow:0 0 12px oklch(0.88 0.085 152 / 0.85),0 0 22px oklch(0.88 0.085 152 / 0.5)}
@keyframes shoot{
  0%{transform:translate(0,0) rotate(18deg);opacity:0}
  3%{opacity:1}
  13%{transform:translate(130vw,42vh) rotate(18deg);opacity:0}
  100%{transform:translate(130vw,42vh) rotate(18deg);opacity:0}
}
@keyframes shoot-2{
  0%{transform:translate(0,0) rotate(-14deg);opacity:0}
  4%{opacity:1}
  14%{transform:translate(130vw,-32vh) rotate(-14deg);opacity:0}
  100%{transform:translate(130vw,-32vh) rotate(-14deg);opacity:0}
}

/* ---------- site header · floating cosmic pill, wider, glowing edge ---------- */
/* ---------- SKIP LINK · hidden until keyboard-focused ---------- */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  padding:12px 18px;border-radius:0 0 14px 0;
  background:var(--fg);color:var(--bg-dark);
  font-size:13px;font-variation-settings:"wght" 660;
  text-decoration:none
}
.skip-link:focus,.skip-link:focus-visible{
  left:0;outline:2px solid var(--teal);outline-offset:2px
}

.site-header{
  position:sticky;top:clamp(12px,.5rem + .5vw,20px);z-index:60;
  margin:clamp(12px,.5rem + .5vw,20px) auto 0;
  width:min(92rem,calc(100% - clamp(16px,2.5vw,40px)));
  padding:clamp(10px,.55rem + .25vw,14px) clamp(14px,.85rem + .65vw,22px) clamp(10px,.55rem + .25vw,14px) clamp(14px,.85rem + .65vw,18px);
  background:color-mix(in oklch,var(--bg-dark) 68%,transparent);
  backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);
  border:1px solid var(--rule-dark-strong);
  border-radius:clamp(16px,1.05rem + .35vw,22px);
  display:flex;align-items:center;gap:clamp(1rem,.7rem + .7vw,1.85rem);
  color:var(--fg);
  box-shadow:
    inset 0 1px 0 oklch(0.88 0.085 152 / 0.1),
    0 0 0 1px oklch(0.88 0.085 152 / 0.05),
    0 28px 60px -22px rgba(0,0,0,0.55),
    0 0 70px -16px oklch(0.88 0.085 152 / 0.24);
  transition:box-shadow .5s var(--ease),border-color .5s var(--ease)
}
/* glowing top edge - subtle teal hairline at the very top of the pill */
.site-header::before{
  content:"";position:absolute;left:14%;right:14%;top:-1px;height:1px;
  background:linear-gradient(90deg,transparent,oklch(0.88 0.085 152 / 0.6),transparent);
  border-radius:inherit;pointer-events:none
}
.site-header:hover{box-shadow:
  inset 0 1px 0 oklch(0.88 0.085 152 / 0.14),
  0 0 0 1px oklch(0.88 0.085 152 / 0.08),
  0 32px 70px -22px rgba(0,0,0,0.6),
  0 0 90px -16px oklch(0.88 0.085 152 / 0.32)
}

/* brand · logo + name */
.site-brand{
  display:inline-flex;align-items:center;gap:clamp(.55rem,.4rem + .3vw,.85rem);
  color:var(--fg);transition:opacity .35s var(--ease),transform .5s var(--ease-out-expo);
  flex-shrink:0;line-height:.9;padding:2px 4px;border-radius:8px;position:relative
}
.site-brand:hover{opacity:.95;transform:translateX(1px)}
.site-brand-logo{
  width:clamp(28px,1.55rem + .35vw,34px);height:auto;display:block;
  filter:drop-shadow(0 0 10px oklch(0.88 0.085 152 / 0.32));
  transition:filter .5s var(--ease),transform .6s var(--ease-out-expo)
}
.site-brand:hover .site-brand-logo{
  filter:drop-shadow(0 0 14px oklch(0.88 0.085 152 / 0.55));
  transform:rotate(-3deg) scale(1.04)
}
/* fallback compass mark, only shown if logo image fails */
.site-brand-mark{width:clamp(22px,1.2rem + .3vw,26px);height:clamp(22px,1.2rem + .3vw,26px);color:var(--teal);filter:drop-shadow(0 0 6px oklch(0.88 0.085 152 / 0.6))}
.site-brand-mark .ring-outer{animation:stargate-rot 160s linear infinite;transform-origin:center}
.site-brand-mark .ring-inner{animation:stargate-counter 120s linear infinite;transform-origin:center}

.site-brand-text{
  display:inline-flex;align-items:baseline;
  font-size:clamp(.8rem,.72rem + .18vw,.96rem);
  letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg);font-variation-settings:"wght" 660,"wdth" 96,"opsz" 14,"GRAD" 18
}

/* nav */
.site-nav{display:flex;align-items:center;gap:clamp(.85rem,.6rem + .65vw,1.55rem);margin-left:auto;flex-wrap:nowrap}
.site-nav a{
  font-size:12px;color:var(--fg-3);
  font-variation-settings:"wght" 560,"wdth" 96,"opsz" 14,"GRAD" 5;
  letter-spacing:.005em;transition:color .3s var(--ease);
  position:relative;padding:7px 2px;white-space:nowrap
}
.site-nav a::after{
  content:"";position:absolute;left:2px;right:2px;bottom:2px;height:1px;
  background:var(--teal);box-shadow:0 0 8px var(--teal);
  transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)
}
.site-nav a:hover{color:var(--fg)}
.site-nav a:hover::after{transform:scaleX(1)}

/* hairline separator between nav and cta */
.site-header-sep{width:1px;height:18px;background:var(--rule-dark-strong);flex-shrink:0}

/* ---------- HEADER LANGUAGE SWITCH · segmented IT / EN / ES ---------- */
.site-langs{
  display:inline-flex;align-items:center;gap:2px;flex-shrink:0;
  padding:3px;border:1px solid var(--rule-dark-strong);border-radius:999px;
  background:color-mix(in oklch,var(--bg-dark) 55%,transparent)
}
.site-langs a{
  font-size:10.5px;letter-spacing:.09em;text-transform:uppercase;
  font-variation-settings:var(--fv-mono);color:var(--fg-3);
  padding:5px 9px;border-radius:999px;line-height:1;
  transition:color .32s var(--ease),background-color .32s var(--ease),box-shadow .32s var(--ease)
}
.site-langs a:hover{color:var(--fg);background:oklch(1 0 0 / 0.06)}
.site-langs a[aria-current]{
  color:var(--fg);background:oklch(0.88 0.085 152 / 0.16);
  box-shadow:inset 0 0 0 1px oklch(0.88 0.085 152 / 0.38)
}
.site-langs a:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
@media (max-width:880px){
  .site-langs a{padding:5px 7px;font-size:10px;letter-spacing:.06em}
}


/* cta */
.site-cta{
  display:inline-flex;align-items:center;gap:8px;
  padding:9px 16px;background:var(--fg);color:var(--bg-dark);
  border:1px solid var(--fg);border-radius:999px;
  font-size:12px;font-variation-settings:"wght" 700,"wdth" 96,"opsz" 14,"GRAD" 15;
  letter-spacing:.002em;
  transition:transform .38s var(--ease),box-shadow .38s var(--ease);
  position:relative;isolation:isolate;flex-shrink:0;
  box-shadow:0 0 0 0 transparent
}
.site-cta:hover{transform:translateY(-1px);box-shadow:0 0 0 6px oklch(0.88 0.085 152 / 0.2),0 14px 30px -14px oklch(0.88 0.085 152 / 0.6)}
.site-cta svg{width:12px;height:9px;transition:transform .4s var(--ease)}
.site-cta:hover svg{transform:translateX(5px)}

@media (max-width:1040px){.site-header{gap:1rem}.site-nav{gap:.8rem}.site-nav a{font-size:11px}.site-langs a{padding:5px 7px}}
@media (max-width:880px){
  .site-nav{display:none}.site-header-sep{display:none}
  .site-header{gap:1rem}
}
/* narrow phones: brand + language pill + CTA must fit the pill in one row -
   every item is flex-shrink:0, so widths are budgeted here instead */
@media (max-width:520px){
  .site-header{gap:.6rem}
  .site-brand{gap:.45rem}
  .site-brand-text{font-size:.72rem;letter-spacing:.12em}
  .site-brand-logo{width:28px}
  .site-cta{padding:8px 12px;font-size:11px;gap:6px}
  .site-cta svg{width:10px}
  .site-langs{padding:2px}
  .site-langs a{padding:4px 6px;font-size:9.5px;letter-spacing:.05em}
}
@media (max-width:380px){
  .site-brand-text{display:none}
  .site-header{gap:.5rem}
}

.container{width:min(86rem,calc(100% - clamp(28px,5vw,72px)));margin-inline:auto;position:relative}

/* ---------- SECTION ROMAN NUMERAL ANCHORS ---------- */
/* roman-anchor decorations hidden - half-finished half-off-screen treatment was reading as broken */
.roman-anchor{display:none}

/* ---------- HERO · cosmic with a warm focal nebula behind the brand mark ----------
   The nebula is masked to fade to zero well before the section ends, so the bottom of
   the hero meets the wave with the same cosmic body bg as the rest of the page - no
   tonal step, no shadow cutoff. */
.hero{
  padding-top:clamp(6rem,3.5rem + 4.5vw,10.5rem);
  padding-bottom:clamp(6rem,4rem + 4vw,10rem);
  text-align:center;position:relative;isolation:isolate
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:
    radial-gradient(ellipse 75% 60% at 50% 38%, oklch(0.55 0.16 150 / 0.42), transparent 68%),
    radial-gradient(ellipse 42% 32% at 50% 44%, oklch(0.88 0.085 152 / 0.32), transparent 65%),
    radial-gradient(ellipse 110% 35% at 50% 8%, oklch(0.42 0.14 150 / 0.28), transparent 72%);
  filter:blur(64px);
  mask-image:linear-gradient(to bottom,black 0%,black 60%,transparent 92%);
  -webkit-mask-image:linear-gradient(to bottom,black 0%,black 60%,transparent 92%);
  will-change:auto
}
.hero::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;
  background:radial-gradient(ellipse 90% 85% at 50% 50%, transparent 50%, rgba(0,0,0,0.45) 100%);
  mask-image:linear-gradient(to bottom,black 0%,black 75%,transparent 100%);
  -webkit-mask-image:linear-gradient(to bottom,black 0%,black 75%,transparent 100%)
}
@keyframes hero-breath{
  0%{transform:translate(0,0) scale(1);opacity:.9}
  100%{transform:translate(-1%,1%) scale(1.05);opacity:1}
}

.hero-center{position:relative;display:inline-block}

/* STARGATE - the crazy beautiful rings/rays/orbits behind the mark */
.stargate{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(128vw,1400px);height:auto;pointer-events:none;z-index:-1;color:var(--fg)}
.stargate .rings{transform-origin:700px 700px;animation:stargate-rot 110s linear infinite}
@keyframes stargate-rot{to{transform:rotate(360deg)}}
.stargate .counter-rings{transform-origin:700px 700px;animation:stargate-counter 140s linear infinite}
@keyframes stargate-counter{to{transform:rotate(-360deg)}}
.stargate .orbit-dot{transform-origin:700px 700px;animation:orbit 14s linear infinite}
@keyframes orbit{to{transform:rotate(360deg)}}
.stargate .orbit-dot-2{transform-origin:700px 700px;animation:orbit-2 22s linear infinite}
@keyframes orbit-2{to{transform:rotate(-360deg)}}
.stargate .orbit-dot-3{transform-origin:700px 700px;animation:orbit-3 32s linear infinite}
@keyframes orbit-3{to{transform:rotate(360deg)}}
.stargate .ray{animation:ray-reveal 1800ms var(--ease-out-quart) both}
@keyframes ray-reveal{from{opacity:0;stroke-dashoffset:1100}to{opacity:.75;stroke-dashoffset:0}}

/* halo pulse around the brand-mark */
.hero-halo{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(82vw,780px);aspect-ratio:1;border-radius:50%;pointer-events:none;z-index:-1;
  background:radial-gradient(circle at center,oklch(0.88 0.085 152 / 0.18),transparent 62%);
  filter:blur(30px);animation:halo-pulse 6s var(--ease-out-quart) infinite alternate}
@keyframes halo-pulse{from{opacity:.6;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}

@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.82)}}
@keyframes fade-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

/* BRAND MARK - braces start adjacent at center (wordmark layout-collapsed to width 0),
   then the wordmark expands its width pushing braces apart symmetrically. Parent
   text-align:center re-centers the row each frame so both braces drift outward visually. */
.brand-mark{
  display:inline-flex;align-items:baseline;justify-content:center;
  gap:0;font-size:clamp(4rem,13vw,13rem);line-height:1;
  color:var(--fg);font-variation-settings:var(--fv-monster);
  position:relative
}
.brand-mark .brand-name{
  display:inline-block;overflow:hidden;white-space:nowrap;
  letter-spacing:-.042em;color:var(--fg);
  text-shadow:0 0 34px oklch(0.88 0.085 152 / 0.28);
  max-width:0;opacity:0;vertical-align:baseline;
  will-change:max-width,filter,opacity;transform:translateZ(0);backface-visibility:hidden
}
.brand-mark .brace{
  font-family:var(--font-brace);font-style:italic;font-weight:500;
  font-size:1.1em;color:var(--fg);line-height:.86;
  transform:translateY(.02em);
  text-shadow:0 0 48px oklch(0.88 0.085 152 / 0.58),0 0 96px oklch(0.88 0.085 152 / 0.3);
  opacity:0
}

/* phase 1: braces fade in cleanly, settle at center while wordmark width is 0 */
@keyframes brace-fade-in{
  0%{opacity:0;transform:translateY(.18em) scale(.94);filter:blur(10px)}
  100%{opacity:1;transform:translateY(.02em) scale(1);filter:blur(0)}
}
/* phase 2: wordmark max-width 0 → 12em - a single smooth tween from start
   to settled state, no intermediate keyframes so the variable-font axes
   interpolate continuously without visible stepping. */
@keyframes wordmark-expand{
  0%{
    max-width:0;opacity:0;
    letter-spacing:-.04em;filter:blur(5px);
    font-variation-settings:"wght" 420,"wdth" 92,"opsz" 96,"GRAD" -10
  }
  100%{
    max-width:12em;opacity:1;
    letter-spacing:-.042em;filter:blur(0);
    font-variation-settings:"wght" 800,"wdth" 96,"opsz" 96,"GRAD" 28
  }
}
.brand-mark .brace-l{animation:brace-fade-in 900ms var(--ease-out-expo) 200ms both}
.brand-mark .brace-r{animation:brace-fade-in 900ms var(--ease-out-expo) 200ms both}
.brand-mark .brand-name{animation:wordmark-expand 1600ms cubic-bezier(.3,.1,.28,1) 950ms both}

/* hero-support appears WHILE the wordmark is still expanding so the title +
   lede are already settled by the time Temprant finishes its slow reveal. */
.hero-support{margin-top:clamp(2.25rem,1.5rem + 1.6vw,3.5rem);max-width:62rem;margin-inline:auto;opacity:0;animation:fade-up 750ms var(--ease-out-quart) 1150ms both;text-align:center}

.hero-title{font-size:clamp(1.95rem,1.35rem + 1.8vw,3.1rem);line-height:1.18;letter-spacing:-.028em;max-width:30ch;margin:0 auto;color:var(--fg);text-wrap:balance;font-variation-settings:"wght" 700,"wdth" 95,"opsz" 72,"GRAD" 22}
.hero-title em{font-style:normal;color:var(--fg);font-variation-settings:var(--fv-accent-lg);padding:0 .02em;background-image:linear-gradient(90deg,oklch(0.88 0.085 152 / 0.3),oklch(0.88 0.085 152 / 0.68),oklch(0.88 0.085 152 / 0.3));background-repeat:no-repeat;background-size:100% .2em;background-position:0 calc(100% - .04em);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.hero-lede{max-width:58ch;margin:clamp(1.2rem,.9rem + .8vw,1.75rem) auto 0;font-size:clamp(1rem,.94rem + .28vw,1.18rem);line-height:1.7;color:var(--fg-3)}

.hl{position:relative;display:inline-block;white-space:nowrap;isolation:isolate;padding:0 .04em;color:inherit;font-variation-settings:"wght" 720,"wdth" 96,"opsz" 18,"GRAD" 22}
.hl::before{content:"";position:absolute;left:0;right:0;bottom:.02em;height:.14em;background:var(--teal-grad);z-index:-1;opacity:.55}
@keyframes hl-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* ensure .hl text contrasts against its surrounding copy color */
.hero-lede .hl{color:var(--fg)}
.final-cta-lede .hl{color:var(--ink)}

.hero-actions{margin-top:clamp(1.75rem,1.2rem + 1.2vw,2.5rem);display:flex;justify-content:center;gap:14px;flex-wrap:wrap}

/* ---------- HERO CTA · white on cosmic, heavy glow ---------- */
.hero-cta{display:flex;flex-direction:column;align-items:center;gap:clamp(.9rem,.65rem + .5vw,1.35rem);margin-top:clamp(2.25rem,1.6rem + 1.4vw,3.5rem)}
.btn-hero{display:inline-flex;align-items:center;gap:clamp(.75rem,.55rem + .5vw,1.2rem);padding:clamp(1.2rem,.9rem + 1vw,1.85rem) clamp(2.4rem,1.75rem + 2vw,4rem);font-size:clamp(1.2rem,.95rem + .65vw,1.7rem);letter-spacing:-.014em;line-height:1;color:var(--bg-dark);background:var(--fg);border:1px solid var(--fg);border-radius:999px;font-variation-settings:"wght" 760,"wdth" 97,"opsz" 32,"GRAD" 20;cursor:pointer;position:relative;isolation:isolate;transition:transform .5s var(--ease-out-expo),box-shadow .6s var(--ease-out-expo),letter-spacing .5s var(--ease-out-quart);box-shadow:0 0 0 0 transparent,0 30px 80px -24px oklch(0.88 0.085 152 / 0.65),0 16px 34px -14px rgba(0,0,0,0.5),inset 0 1px 0 rgba(255,255,255,0.5)}
.btn-hero::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;background:linear-gradient(110deg,transparent 22%,oklch(0.95 0.06 152 / 0.75) 48%,oklch(0.88 0.085 152 / 0.58) 52%,transparent 80%);background-size:260% 100%;background-position:150% 0;transition:background-position 1.1s var(--ease-out-quart)}
.btn-hero:hover{transform:translateY(-4px);letter-spacing:.005em;box-shadow:0 0 0 9px oklch(0.88 0.085 152 / 0.22),0 42px 90px -24px oklch(0.88 0.085 152 / 0.82),0 20px 40px -14px rgba(0,0,0,0.55),inset 0 1px 0 rgba(255,255,255,0.6)}
.btn-hero:hover::before{background-position:-40% 0}
.btn-hero:active{transform:translateY(-1px)}
.btn-hero:focus-visible{outline:2px solid var(--teal);outline-offset:6px}
.btn-hero-arrow{display:inline-flex;transition:transform .6s var(--ease-out-expo)}
.btn-hero-arrow svg{width:clamp(30px,1.75rem + 1vw,44px);height:auto;display:block}
.btn-hero:hover .btn-hero-arrow{transform:translateX(10px)}

/* ---------- horizon waves · seamless bridge between cosmic and cream ---------- */
.horizon-wave,.horizon-wave-up{
  display:block;width:100%;height:auto;color:var(--ink);
  position:relative;z-index:1;
  margin:-1px 0;
  /* slight vertical overflow so the SVG's painted fill always overlaps adjacent sections */
}

/* ---------- LIGHT STAGES · cream with character that fades at edges (no wave seams) ---------- */
.light-stage{
  background:var(--bg);position:relative;z-index:1;
  padding-block:clamp(1.25rem,.9rem + .8vw,2rem);
  isolation:isolate;overflow:hidden
}
/* atmospheric washes - soft color drifts in the section middle, fading to nothing
   at top and bottom so the wave's pure cream meets pure cream at the seam */
.light-stage::before{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 80vw 30vh at 50% 0%, oklch(0.88 0.085 152 / 0.06), transparent 70%);
  mask-image:linear-gradient(to bottom,black 0%,transparent 35%);
  -webkit-mask-image:linear-gradient(to bottom,black 0%,transparent 35%)
}
/* dot grain removed - keeping just the soft color drifts, no pattern */
/* ensure the section content sits above the decorations, but DON'T blanket >*
   because that would override absolute-positioned children like .roman-anchor */
.light-stage>.section{position:relative;z-index:1}
.section{padding-block:clamp(2.75rem,1.9rem + 2.2vw,4.5rem);position:relative}

/* SECTION ORNAMENT RULES - hairline → ring → hairline → dot → hairline */
.ornament-rule{display:block;margin:0 auto;width:min(86%,48rem);color:var(--navy-3);opacity:.65}
.ornament-rule svg{display:block;width:100%;height:auto}
.ornament-rule.dark{color:var(--fg-dim)}

/* shared section heads - readable scale */
.sect-head{text-align:center;margin:0 auto clamp(2.25rem,1.6rem + 1.8vw,3.75rem);max-width:58rem;position:relative;z-index:2}
.sect-eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--navy);font-variation-settings:var(--fv-mono);margin-bottom:clamp(.9rem,.7rem + .5vw,1.25rem);justify-content:center}
.sect-eyebrow::before,.sect-eyebrow::after{content:"";display:inline-block;width:44px;height:1px;background:var(--navy-3)}
.sect-eyebrow.dark{color:var(--fg-3)}
.sect-eyebrow.dark::before,.sect-eyebrow.dark::after{background:var(--fg-dim)}
.sect-title{font-size:clamp(2.1rem,1.35rem + 2.8vw,4.2rem);line-height:1;letter-spacing:-.036em;max-width:22ch;margin:0 auto;color:var(--ink);text-wrap:balance;font-variation-settings:var(--fv-monster)}
.sect-title em{font-style:normal;color:var(--navy);font-variation-settings:var(--fv-accent-lg);padding:0 .02em;background-image:linear-gradient(90deg,oklch(0.88 0.085 152 / 0.33),oklch(0.88 0.085 152 / 0.74),oklch(0.88 0.085 152 / 0.33));background-repeat:no-repeat;background-size:100% .24em;background-position:0 calc(100% - .05em);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.sect-title.dark{color:var(--fg)}
.sect-title.dark em{color:var(--fg)}
.sect-kicker{margin-top:clamp(1rem,.8rem + .6vw,1.5rem);max-width:54ch;margin-inline:auto;font-size:clamp(.95rem,.86rem + .25vw,1.1rem);line-height:1.7;color:var(--navy-2)}
.sect-kicker.dark{color:var(--fg-3)}

/* ---------- PROOF · asymmetric hero-stat layout ---------- */
.proof-wrap{position:relative}
.proof-hero-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(1.25rem,.8rem + 1.4vw,2.25rem);align-items:stretch;max-width:78rem;margin:0 auto}
@media (max-width:1040px){.proof-hero-grid{grid-template-columns:1fr}}

/* the ONE hero stat - readable, still dominant, with engineered character */
.proof-hero{
  padding:clamp(1.75rem,1.2rem + 1.4vw,2.75rem);
  background:linear-gradient(165deg,rgba(252,252,250,1) 0%,rgba(252,252,250,.97) 60%,oklch(0.94 0.05 152 / 0.15) 100%);
  border:1.5px solid var(--ink);border-radius:24px;
  position:relative;overflow:hidden;isolation:isolate;
  transition:transform .5s var(--ease-out-expo),box-shadow .5s var(--ease-out-expo);
  display:flex;flex-direction:column;justify-content:space-between;
  min-height:clamp(17rem,14rem + 7vw,24rem)
}
/* top shimmer rail */
.proof-hero::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--teal-grad);background-size:200% 100%;animation:hl-shimmer 4.6s var(--ease-out-quart) infinite;z-index:2}
/* glow halo - bottom-right */
.proof-hero::after{content:"";position:absolute;bottom:-40%;right:-20%;width:80%;height:120%;background:radial-gradient(ellipse at center,oklch(0.88 0.085 152 / 0.26),transparent 60%);filter:blur(36px);pointer-events:none;transition:opacity .5s ease,transform .8s var(--ease);opacity:.78;z-index:0}
.proof-hero>*{position:relative;z-index:1}
.proof-hero:hover{transform:translateY(-5px);box-shadow:0 24px 56px -24px rgba(16,32,26,0.22),0 0 0 1px oklch(0.88 0.085 152 / 0.4)}
.proof-hero:hover::after{opacity:1;transform:scale(1.08)}

.proof-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;position:relative;z-index:2}
.proof-hero-glyph{width:44px;height:44px;color:var(--ink);transition:transform .5s var(--ease)}
.proof-hero:hover .proof-hero-glyph{transform:rotate(8deg) scale(1.06)}
.proof-hero-badge{padding:5px 12px;border-radius:999px;background:oklch(0.88 0.085 152 / 0.38);color:var(--ink);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-variation-settings:"wght" 660,"wdth" 92,"opsz" 12,"GRAD" 10;display:inline-flex;align-items:center;gap:7px}
.proof-hero-badge::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ink);animation:pulse 2.6s var(--ease) infinite}

.proof-hero-num{font-size:clamp(4.25rem,3rem + 5.5vw,8.5rem);line-height:.84;color:var(--ink);letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-variation-settings:"wght" 800,"wdth" 94,"opsz" 96,"GRAD" 28;position:relative;z-index:2;margin-block:clamp(.75rem,.4rem + .8vw,1.5rem)}
.proof-hero-num em{font-style:normal;color:var(--navy-2);font-size:.3em;margin-left:6px;font-variation-settings:"wght" 520,"wdth" 90,"opsz" 18,"GRAD" -15;letter-spacing:.02em;vertical-align:.32em}

.proof-hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;position:relative;z-index:2;border-top:1px solid var(--rule-strong);padding-top:clamp(.85rem,.7rem + .5vw,1.25rem)}
.proof-hero-label{font-size:clamp(.92rem,.82rem + .32vw,1.1rem);color:var(--ink);line-height:1.42;max-width:32ch;font-variation-settings:"wght" 540,"wdth" 96,"opsz" 18,"GRAD" 10}

/* supporting stats - smaller stack with side-rail accent */
.proof-stack{display:grid;grid-template-columns:1fr;gap:clamp(.85rem,.7rem + .5vw,1.25rem)}
.proof-item{
  padding:clamp(1.15rem,.85rem + .7vw,1.6rem) clamp(1.3rem,.95rem + .8vw,1.85rem);
  background:
    radial-gradient(ellipse 75% 100% at 100% 100%, oklch(0.88 0.085 152 / 0.16), transparent 65%),
    linear-gradient(180deg, #FCFCFA, #FCFCFA);
  border:1px solid var(--rule-strong);border-radius:18px;
  position:relative;overflow:hidden;
  transition:transform .42s var(--ease),border-color .42s var(--ease),box-shadow .42s var(--ease),background .55s var(--ease);
  display:grid;grid-template-columns:auto 1fr auto;
  gap:clamp(.85rem,.7rem + .5vw,1.2rem);align-items:center;
  box-shadow:0 1px 0 rgba(255,255,255,0.7) inset
}
.proof-stack .proof-item:nth-child(1){
  background:radial-gradient(ellipse 75% 100% at 100% 100%, oklch(0.84 0.15 75 / 0.16), transparent 65%),linear-gradient(180deg, #FCFCFA, #FCFCFA)
}
.proof-stack .proof-item:nth-child(2){
  background:radial-gradient(ellipse 75% 100% at 100% 100%, oklch(0.78 0.12 150 / 0.16), transparent 65%),linear-gradient(180deg, #FCFCFA, #FCFCFA)
}
.proof-stack .proof-item:nth-child(3){
  background:radial-gradient(ellipse 75% 100% at 100% 100%, oklch(0.84 0.10 150 / 0.18), transparent 65%),linear-gradient(180deg, #FCFCFA, #FCFCFA)
}
/* left vertical rail - picks up teal on hover */
.proof-item::before{
  content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;
  background:var(--rule-strong);transition:background .5s var(--ease),box-shadow .5s var(--ease);
  border-radius:2px
}
.proof-item:hover{transform:translateX(3px);border-color:var(--ink);box-shadow:0 14px 32px -20px rgba(16,32,26,0.14)}
.proof-item:hover::before{background:var(--teal);box-shadow:0 0 12px oklch(0.88 0.085 152 / 0.55)}
.proof-glyph{width:32px;height:32px;color:var(--navy);transition:color .35s ease,transform .42s var(--ease)}
.proof-item:hover .proof-glyph{color:var(--ink);transform:rotate(6deg) scale(1.06)}
.proof-mid{display:flex;flex-direction:column;gap:2px}
.proof-num{font-size:clamp(1.85rem,1.45rem + 1vw,2.55rem);line-height:.94;color:var(--ink);letter-spacing:-.034em;font-variant-numeric:tabular-nums;font-variation-settings:"wght" 800,"wdth" 94,"opsz" 96,"GRAD" 22}
.proof-num em{font-style:normal;color:var(--navy-2);font-size:.4em;margin-left:4px;font-variation-settings:"wght" 520,"wdth" 90,"opsz" 14,"GRAD" -15;vertical-align:.3em}
.proof-label{font-size:12.5px;color:var(--navy);line-height:1.5;max-width:32ch;margin-top:4px}

/* ---------- method rail · readable stations ---------- */
.method-head .sect-title{max-width:24ch}
.rail{position:relative;max-width:78rem;margin:0 auto;padding:0 clamp(24px,4vw,56px)}
.rail-track{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(.9rem,.75rem + .8vw,1.5rem)}
.rail-line{position:absolute;top:54px;left:8%;right:8%;height:1px;background:linear-gradient(90deg,transparent,var(--navy-3) 10%,var(--navy-3) 90%,transparent);pointer-events:none}
.rail-line::after{content:"";position:absolute;left:0;top:0;height:100%;width:0;background:var(--ink);animation:rail-draw 3s var(--ease-out-quart) 600ms forwards}
@keyframes rail-draw{to{width:100%}}
.rail-ticks{position:absolute;top:44px;left:8%;right:8%;height:18px;pointer-events:none}
.rail-ticks svg{display:block;width:100%;height:100%;color:var(--navy-4)}

.rail-stage{position:relative;text-align:center}
.rail-station{width:108px;height:108px;margin:0 auto 22px;border:1.5px solid var(--rule-strong);border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;position:relative;transition:border-color .55s var(--ease-out-expo),transform .55s var(--ease-out-expo),box-shadow .55s var(--ease-out-expo);z-index:2}
.rail-station svg{width:46px;height:46px;color:var(--navy);transition:color .5s var(--ease),transform .5s var(--ease-out-expo)}
.rail-stage:hover .rail-station{border-color:var(--ink);transform:scale(1.06);box-shadow:0 14px 36px -20px rgba(16,32,26,.26)}
.rail-stage:hover .rail-station svg{color:var(--ink);transform:rotate(10deg)}
.rail-station::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:1px solid var(--teal);opacity:0;transition:opacity .55s var(--ease),inset .55s var(--ease-out-expo)}
.rail-stage:hover .rail-station::after{opacity:.85;inset:-11px}
.rail-station::before{content:"";position:absolute;inset:-12px;border-radius:50%;border:1px dashed var(--navy-4);opacity:0;transition:opacity .65s var(--ease),inset .65s var(--ease-out-expo)}
.rail-stage:hover .rail-station::before{opacity:.65;inset:-17px}
.rail-num{font-size:10px;color:var(--navy-3);letter-spacing:.2em;text-transform:uppercase;font-variation-settings:var(--fv-mono);margin-bottom:7px}
.rail-label{font-size:clamp(1.08rem,.96rem + .35vw,1.3rem);color:var(--ink);margin-bottom:7px;font-variation-settings:"wght" 740,"wdth" 96,"opsz" 18,"GRAD" 15;letter-spacing:-.01em}
.rail-duration{display:inline-flex;align-items:center;gap:6px;font-size:9.5px;color:var(--navy);letter-spacing:.14em;text-transform:uppercase;font-variation-settings:"wght" 620,"wdth" 84,"opsz" 12,"GRAD" 0;margin-bottom:11px;padding:3px 10px;border-radius:999px;background:oklch(0.88 0.085 152 / 0.26);border:1px solid oklch(0.88 0.085 152 / 0.46)}
.rail-duration::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px var(--teal)}
.rail-copy{font-size:13.5px;color:var(--navy);line-height:1.62;max-width:24ch;margin:0 auto}
@media (max-width:900px){.rail-track{grid-template-columns:1fr 1fr;padding-top:18px}.rail-line{top:0;left:2%;right:2%}.rail-ticks{display:none}}
@media (max-width:500px){.rail-track{grid-template-columns:1fr}}

/* ---------- SERVIZI · cosmic dark with big 01 ---------- */
.cosmic-servizi{padding-block:clamp(3rem,2rem + 2.2vw,5rem);position:relative;overflow:hidden}
.mini-stargate{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:min(116vw,1080px);height:auto;color:var(--fg);opacity:.15;pointer-events:none;z-index:-1}
@keyframes stargate-rot{to{transform:rotate(360deg)}}
@keyframes stargate-counter{to{transform:rotate(-360deg)}}
.mini-stargate .rings{transform-origin:500px 500px;animation:stargate-rot 120s linear infinite}
.mini-stargate .counter-rings{transform-origin:500px 500px;animation:stargate-counter 160s linear infinite}

.servizi-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border:1px solid var(--rule-dark-strong);border-radius:999px;background:rgba(44,74,60,0.3);color:var(--fg-2);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-variation-settings:var(--fv-mono);margin-bottom:clamp(1.25rem,1rem + 1vw,1.75rem)}
.servizi-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal);animation:pulse 2.6s var(--ease) infinite}

/* servizi panel - big 01, readable body, dramatic without overload */
.servizi-panel{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;gap:clamp(1.25rem,.9rem + 1.4vw,2.5rem);padding:clamp(2.25rem,1.5rem + 1.8vw,3.5rem);background:rgba(44,74,60,0.24);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--fg);align-items:center;border-radius:30px;position:relative;overflow:hidden;isolation:isolate;transition:transform .55s var(--ease-out-expo),box-shadow .55s var(--ease-out-expo)}
.servizi-panel::before{content:"";position:absolute;inset:0;padding:1.5px;border-radius:inherit;background:linear-gradient(135deg,rgba(44,74,60,0.95),oklch(0.88 0.085 152 / 0.78),rgba(44,74,60,0.95));-webkit-mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);-webkit-mask-composite:xor;mask:linear-gradient(#000,#000) content-box,linear-gradient(#000,#000);mask-composite:exclude;pointer-events:none}
.servizi-panel::after{content:"";position:absolute;top:-30%;right:-10%;width:55%;height:180%;background:radial-gradient(ellipse at center,oklch(0.88 0.085 152 / 0.3),transparent 60%);filter:blur(36px);opacity:.72;transition:opacity .5s ease,transform .9s var(--ease);pointer-events:none}
.servizi-panel:hover{transform:translateY(-4px);box-shadow:0 30px 80px -34px oklch(0.88 0.085 152 / 0.36)}
.servizi-panel:hover::after{opacity:1;transform:scale(1.12)}

/* the big 01 - readable but still commanding */
.servizi-num-wrap{display:flex;flex-direction:column;gap:16px;align-self:stretch;position:relative;z-index:2;justify-content:space-between}
.servizi-panel-num{font-size:clamp(4.75rem,3rem + 5.5vw,10rem);line-height:.8;color:var(--fg);letter-spacing:-.065em;font-variant-numeric:tabular-nums;font-variation-settings:"wght" 800,"wdth" 92,"opsz" 96,"GRAD" 28;position:relative}
.servizi-panel-num::after{content:"";position:absolute;bottom:.12em;left:.05em;width:.75em;height:3px;background:var(--teal);box-shadow:0 0 12px var(--teal)}
.servizi-badge{width:42px;height:42px;color:var(--teal);filter:drop-shadow(0 0 10px oklch(0.88 0.085 152 / 0.45))}
.servizi-panel-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);padding:5px 11px;border:1px solid var(--rule-dark-strong);border-radius:999px;background:rgba(0,0,0,.3);width:fit-content;display:inline-flex;align-items:center;gap:8px;font-variation-settings:var(--fv-mono)}
.servizi-panel-label .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px var(--teal);animation:pulse 2.6s var(--ease) infinite}

.servizi-panel-body{position:relative;z-index:2;padding-left:clamp(0px,1vw,22px);border-left:1px solid var(--rule-dark)}
@media (max-width:900px){.servizi-panel-body{border-left:none;padding-left:0;border-top:1px solid var(--rule-dark);padding-top:clamp(1.1rem,.9rem + .8vw,1.6rem)}}
.servizi-panel-body h3{font-size:clamp(1.8rem,1.25rem + 1.4vw,2.7rem);line-height:1.08;color:var(--fg);margin-bottom:14px;letter-spacing:-.032em;text-wrap:balance;font-variation-settings:var(--fv-monster)}
.servizi-panel-body h3 em{font-style:normal;color:var(--fg);font-variation-settings:var(--fv-accent-lg)}
.servizi-panel-body p{max-width:60ch;color:var(--fg-2);font-size:14.5px;line-height:1.7}
.servizi-panel-body p b{color:var(--fg);font-variation-settings:"wght" 700,"wdth" 95,"opsz" 18,"GRAD" 18}
.metric{margin-top:20px;padding:14px 18px;background:rgba(0,0,0,0.38);border:1px solid var(--rule-dark);border-radius:16px;display:flex;align-items:baseline;gap:18px;max-width:48ch}
.metric-val{font-size:clamp(1.6rem,1.2rem + .9vw,2.05rem);line-height:1;color:var(--fg);letter-spacing:-.032em;font-variant-numeric:tabular-nums;font-variation-settings:"wght" 760,"wdth" 92,"opsz" 72,"GRAD" 20}
.metric-val em{font-style:normal;color:var(--fg-3);font-size:.5em;margin-left:2px;font-variation-settings:var(--fv-mono)}
.metric-lbl{font-size:10px;color:var(--fg-3);line-height:1.45;text-transform:uppercase;letter-spacing:.08em;font-variation-settings:var(--fv-mono)}
.servizi-arrow{width:38px;height:22px;color:var(--fg);align-self:center;transition:transform .6s var(--ease-out-expo);position:relative;z-index:2}
.servizi-panel:hover .servizi-arrow{transform:translateX(14px) scale(1.08)}
@media (max-width:900px){.servizi-panel{grid-template-columns:1fr;gap:22px;border-radius:26px}.servizi-arrow{justify-self:start}.servizi-num-wrap{align-self:flex-start}}

/* ---------- non facciamo · editorial manifesto list (no cards, no icons) ---------- */
.nofare-wrap{position:relative}
.nofare-backdrop{display:none}/* page-scoped overrides may re-enable */
.nofare-list{
  position:relative;z-index:2;
  display:grid;grid-template-columns:1fr 1fr;
  column-gap:clamp(2.5rem,2rem + 1.6vw,4rem);row-gap:0;
  max-width:72rem;margin:clamp(2.25rem,1.6rem + 1.6vw,3.5rem) auto 0;
  border-top:1px solid var(--rule)
}
.nofare-item{
  display:grid;grid-template-columns:auto 1fr;
  align-items:baseline;gap:clamp(1.25rem,1rem + .8vw,2rem);
  padding:clamp(1.4rem,1.1rem + .9vw,2rem) 0;
  border-bottom:1px solid var(--rule);
  background:transparent;border-radius:0;
  position:relative;
  transition:border-color .42s var(--ease)
}
.nofare-item .nofare-x{display:none}
.nofare-item .nofare-stamp{
  font-family:var(--font-display);font-style:normal;
  font-size:clamp(2.5rem,1.9rem + 1.6vw,3.6rem);line-height:.85;
  color:var(--navy-3);font-variation-settings:"wght" 740,"wdth" 92,"opsz" 96,"GRAD" -8;
  letter-spacing:-.04em;transition:color .42s var(--ease)
}
.nofare-item .nofare-stamp em{font-style:normal;display:block;font-size:1em}
.nofare-item:hover{border-bottom-color:var(--ink)}
.nofare-item:hover .nofare-stamp{color:var(--ink)}
.nofare-text{font-size:clamp(.95rem,.86rem + .25vw,1.08rem);color:var(--ink);line-height:1.58;font-variation-settings:"wght" 480,"wdth" 96,"opsz" 18,"GRAD" 0;max-width:42ch}
.nofare-text b{font-variation-settings:"wght" 700,"wdth" 96,"opsz" 18,"GRAD" 18;color:var(--ink);display:block;margin-bottom:.4rem;font-size:1.05em;letter-spacing:-.012em}
@media (max-width:760px){
  .nofare-list{grid-template-columns:1fr;column-gap:0}
}

/* ---------- final CTA · readable, still grand ---------- */
.final-cta{text-align:center;padding-block:clamp(4.5rem,3rem + 3vw,6.75rem);position:relative;overflow:hidden}
.final-cta::before{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);width:min(58rem,94vw);height:44rem;background:radial-gradient(ellipse at center,oklch(0.88 0.085 152 / 0.32),transparent 55%);filter:blur(58px);pointer-events:none;animation:cosmos-drift 24s var(--ease-out-quart) infinite alternate}
.final-cta>.container{position:relative}
.final-cta h2{font-size:clamp(2.35rem,1.55rem + 3.2vw,5rem);line-height:.98;letter-spacing:-.04em;max-width:15ch;margin:0 auto;color:var(--fg);text-wrap:balance;font-variation-settings:var(--fv-monster)}
.final-cta h2 em{font-style:normal;color:var(--fg);font-variation-settings:var(--fv-accent-lg)}
.ornament{display:block;margin:clamp(1.35rem,1rem + 1vw,2.25rem) auto 0;width:min(240px,54vw);height:14px;color:var(--teal);opacity:.85}
.final-cta-lede{max-width:54ch;margin:clamp(1.25rem,.95rem + .7vw,1.75rem) auto 0;font-size:clamp(1rem,.94rem + .25vw,1.18rem);color:var(--fg-2);line-height:1.72}
.final-cta .hero-cta{margin-top:clamp(1.75rem,1.3rem + 1vw,2.75rem)}

/* ---------- site foot · cosmic dark, calm ---------- */
.site-foot{background:color-mix(in oklch,var(--bg-dark) 92%,transparent);border-top:1px solid var(--rule-soft);position:relative;z-index:2}
.site-foot-inner{max-width:86rem;margin-inline:auto;padding:clamp(1.5rem,1rem + 1vw,2.25rem) clamp(20px,3vw,44px);display:flex;align-items:center;justify-content:space-between;gap:clamp(1rem,.8rem + .8vw,1.75rem);flex-wrap:wrap;font-size:12px;color:var(--fg-3)}
.site-foot-brand{display:inline-flex;align-items:baseline;gap:.08em;color:var(--fg);font-variation-settings:"wght" 740,"wdth" 96,"opsz" 32,"GRAD" 15;font-size:clamp(1rem,.9rem + .3vw,1.2rem);letter-spacing:-.02em;line-height:.9}
.site-foot-brand .brace{font-family:var(--font-brace);font-style:italic;font-weight:500;font-size:1.15em;line-height:.82;color:var(--fg);text-shadow:0 0 14px oklch(0.88 0.085 152 / 0.55)}
.site-foot-line{flex:1;text-align:center;color:var(--fg-3)}
.site-foot-year{color:var(--fg-dim)}
@media (max-width:680px){.site-foot-line{flex:1 0 100%;text-align:left;order:3}}

/* ========================================================================
   SECTION BACKGROUND ALTERNATION
   Strict D→C→D→C→D→C (hero · proof · method · servizi · nofare · final)
   Contrast audit: dark sections use fg/fg-2/fg-3 on cosmic;
   cream sections use ink/navy/navy-2 with teal accents.
   Brand-blue is reserved for the logo mark ONLY - never for headings/CTAs.
   ======================================================================== */

/* ---------- METHOD on cosmic dark - no overlay, body cosmic gradients are enough ----- */
.section-dark{position:relative;padding-block:clamp(3.5rem,2.4rem + 2.6vw,5.5rem);z-index:2}
.section-dark .rail-line{background:linear-gradient(90deg,transparent,var(--fg-dim) 10%,var(--fg-dim) 90%,transparent)}
.section-dark .rail-line::after{background:var(--fg);box-shadow:0 0 10px oklch(0.88 0.085 152 / 0.6)}
.section-dark .rail-ticks svg{color:var(--fg-dim)}
.section-dark .rail-num{color:var(--fg-dim)}
.section-dark .rail-label{color:var(--fg)}
.section-dark .rail-copy{color:var(--fg-3)}
/* Stations: cream circles on cosmic, ink icons - maximum contrast */
.section-dark .rail-station{background:var(--bg);border-color:var(--fg)}
.section-dark .rail-station svg{color:var(--ink)}
.section-dark .rail-stage:hover .rail-station{border-color:var(--fg);transform:scale(1.06);box-shadow:0 0 0 6px oklch(0.88 0.085 152 / 0.2),0 18px 44px -18px oklch(0.88 0.085 152 / 0.55)}
.section-dark .rail-stage:hover .rail-station svg{color:var(--ink)}
.section-dark .rail-station::before{border-color:var(--fg-dim)}
.section-dark .rail-station::after{border-color:var(--teal)}
.section-dark .rail-duration{color:var(--fg);background:oklch(0.88 0.085 152 / 0.16);border-color:oklch(0.88 0.085 152 / 0.55)}

/* ---------- NOFARE on cosmic dark ---------- */
.section-dark .nofare-backdrop{-webkit-text-stroke:1.2px var(--fg-out)}
.section-dark .nofare-item{background:rgba(10,23,18,0.5);border-color:var(--rule-dark-strong);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.section-dark .nofare-item:hover{border-color:var(--fg);background:rgba(10,23,18,0.7);box-shadow:0 18px 40px -20px rgba(0,0,0,0.55)}
.section-dark .nofare-x{color:var(--fg-2);opacity:1}
.section-dark .nofare-item:hover .nofare-x{color:var(--fg)}
.section-dark .nofare-text{color:var(--fg-2)}
.section-dark .nofare-text b{color:var(--fg);font-variation-settings:"wght" 760,"wdth" 96,"opsz" 16,"GRAD" 22}

/* ---------- SERVIZI on cream ---------- */
.cosmic-servizi{background:var(--bg);padding-block:clamp(3.5rem,2.4rem + 2.6vw,5.5rem);position:relative;overflow:hidden;z-index:2}
.mini-stargate{display:none}
.servizi-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border:1px solid var(--rule-strong);border-radius:999px;background:rgba(44,74,60,0.04);color:var(--navy);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-variation-settings:var(--fv-mono);margin-bottom:clamp(1.25rem,1rem + 1vw,1.75rem)}
.servizi-eyebrow .dot{width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px oklch(0.88 0.085 152 / 0.55);animation:pulse 2.6s var(--ease) infinite}

.servizi-panel{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none;border-radius:28px;color:var(--ink)}
.servizi-panel::before{background:linear-gradient(135deg,var(--ink),var(--teal) 50%,var(--ink));padding:1.5px}
.servizi-panel::after{background:radial-gradient(ellipse at center,oklch(0.88 0.085 152 / 0.2),transparent 60%);opacity:.5}
.servizi-panel:hover{box-shadow:0 32px 80px -32px rgba(16,32,26,0.28)}
.servizi-badge{color:var(--navy)}
.servizi-panel-num{color:var(--ink)}
.servizi-panel-num::after{background:var(--teal);box-shadow:0 0 10px oklch(0.88 0.085 152 / 0.55)}
.servizi-panel-label{color:var(--navy);border-color:var(--rule-strong);background:rgba(44,74,60,0.04)}
.servizi-panel-label .dot{background:var(--teal);box-shadow:0 0 8px oklch(0.88 0.085 152 / 0.55)}
.servizi-panel-body{border-left-color:var(--rule)}
@media (max-width:900px){.servizi-panel-body{border-top-color:var(--rule)}}
.servizi-panel-body h3{color:var(--ink)}
.servizi-panel-body h3 em{color:var(--navy)}
.servizi-panel-body p{color:var(--navy-2)}
.servizi-panel-body p b{color:var(--ink)}
.metric{background:rgba(44,74,60,0.05);border-color:var(--rule-strong)}
.metric-val{color:var(--ink)}
.metric-val em{color:var(--navy-3)}
.metric-lbl{color:var(--navy)}
.servizi-arrow{color:var(--ink)}

/* ---------- FINAL CTA on cream ---------- */
.final-cta{background:var(--bg);text-align:center;padding-block:clamp(3.5rem,2.5rem + 2.2vw,5.5rem);position:relative;overflow:hidden;z-index:2}
.final-cta::before{background:radial-gradient(ellipse at center,oklch(0.88 0.085 152 / 0.22),transparent 60%);height:40rem;filter:blur(56px);opacity:.7;animation:none}
.final-cta h2{color:var(--ink)}
.final-cta h2 em{color:var(--navy)}
.ornament{color:var(--navy);opacity:.78}
.final-cta-lede{color:var(--navy-2)}
.final-cta .btn-hero{color:var(--fg);background:var(--ink);border-color:var(--ink);box-shadow:0 22px 48px -22px rgba(16,32,26,0.42),0 10px 22px -12px rgba(16,32,26,0.25)}
.final-cta .btn-hero::before{background:linear-gradient(110deg,transparent 22%,oklch(0.88 0.085 152 / 0.45) 48%,oklch(0.88 0.085 152 / 0.28) 52%,transparent 80%)}
.final-cta .btn-hero:hover{background:var(--ink);border-color:var(--ink);box-shadow:0 0 0 8px oklch(0.88 0.085 152 / 0.22),0 34px 80px -24px oklch(0.88 0.085 152 / 0.55),0 18px 38px -14px rgba(16,32,26,0.45)}

@media (prefers-reduced-motion:reduce){
  .brand-mark .brace-l,.brand-mark .brace-r,.brand-mark .brand-name,
  .hero-support,.hero-halo,
  .stargate .rings,.stargate .counter-rings,.stargate .orbit-dot,.stargate .orbit-dot-2,.stargate .orbit-dot-3,.stargate .ray,
  body::before,.rail-line::after,.hl::before,.final-cta::before,.proof-hero::before,.proof-item::before,
  .stars span,.stars-far,.stars-near,.shooting-star,.proof-hero-badge::before,.status .dot,.site-header-meta .live::before{animation:none}
  /* in reduced-motion, show the brand mark in its final state immediately */
  .brand-mark .brand-name{max-width:12em;opacity:1}
  .brand-mark .brace{opacity:1;transform:translateY(.02em)}
}

/* ============================================================
   TEMPRANT EXTRAS - additions on top of v40-aphelion donor
   ============================================================ */

/* skip link removed per request */

/* ---------- SECTION CLOSER - quiet, one short hairline above, no highlight ---------- */
.sect-closer{
  display:block;text-align:center;
  margin:clamp(2.25rem,1.6rem + 1.4vw,3.5rem) auto 0;max-width:38ch;
  font-size:clamp(.86rem,.78rem + .22vw,1rem);line-height:1.45;
  color:var(--navy-3);letter-spacing:-.005em;text-wrap:balance;
  font-variation-settings:"wght" 500,"wdth" 96,"opsz" 18,"GRAD" 0;
  position:relative;z-index:2;padding-top:1.25rem
}
.sect-closer::before{
  content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:32px;height:1px;background:var(--rule);opacity:.7
}
.sect-closer em{font-style:normal;color:var(--navy);font-variation-settings:"wght" 600,"wdth" 96,"opsz" 18,"GRAD" 8}
.section-dark .sect-closer{color:var(--fg-dim)}
.section-dark .sect-closer em{color:var(--fg-2)}
.section-dark .sect-closer::before{background:var(--rule-dark-strong);opacity:.5}

/* ---------- HERO CREDENTIALS - service-page hero supporting list ---------- */
.hero-credentials{margin-top:clamp(2rem,1.4rem + 1.4vw,3rem);max-width:48rem;margin-inline:auto;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--rule-dark-strong);text-align:left}
.cred-row{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:clamp(1rem,.8rem + .6vw,1.5rem);padding:clamp(.85rem,.7rem + .4vw,1.2rem) clamp(.5rem,.3rem + .4vw,.85rem);border-bottom:1px solid var(--rule-dark);align-items:baseline;transition:background .3s var(--ease)}
.cred-row:hover{background:rgba(255,255,255,0.025)}
.cred-row dt{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-dim);font-variation-settings:var(--fv-mono)}
.cred-row dd{font-size:14px;color:var(--fg-2);line-height:1.55;font-variation-settings:"wght" 500,"wdth" 96,"opsz" 14,"GRAD" 5}
.cred-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:oklch(0.85 0.15 155);margin-right:8px;box-shadow:0 0 8px oklch(0.85 0.15 155 / 0.7);animation:pulse 2.6s var(--ease) infinite}
@media (max-width:680px){.cred-row{grid-template-columns:1fr;gap:4px}}

/* ---------- FOOTER · compact single-row, everything on the same baseline ---------- */
.site-foot{
  background:transparent;border-top:1px solid rgba(255,255,255,0.06);
  position:relative;z-index:2;
  padding:clamp(2.5rem,1.85rem + 1.4vw,3.6rem) clamp(20px,3vw,48px) clamp(1.6rem,1.3rem + .55vw,2.15rem);
  color:var(--fg-3)
}
.foot-inner{max-width:80rem;margin:0 auto}

.foot-row{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:clamp(.55rem,.4rem + .55vw,1.1rem);
  font-size:.86rem;line-height:1.4
}
.foot-row a,.foot-row .foot-place{
  color:var(--fg-3);transition:color .25s var(--ease);
  text-decoration:none
}
.foot-row a:hover{color:var(--fg)}

.foot-brand{display:inline-flex;align-items:center;gap:.5rem;color:var(--fg);line-height:1;transition:opacity .25s var(--ease)}
.foot-brand img{height:18px;width:auto;display:block}
.foot-brand-name{font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg);font-variation-settings:"wght" 680,"wdth" 96,"opsz" 12,"GRAD" 18}
.foot-brand:hover{opacity:.78}

.foot-sep{
  display:inline-block;width:3px;height:3px;border-radius:50%;
  background:rgba(252,252,250,.22);flex-shrink:0
}

.foot-mail{
  color:var(--fg-2);
  font-variation-settings:"wght" 520,"wdth" 96,"opsz" 14,"GRAD" 0
}
.foot-mail:hover{color:var(--fg)}
.foot-place{
  color:var(--fg-dim);font-size:.82rem;
  font-variation-settings:var(--fv-mono);letter-spacing:.06em
}

.foot-langs{
  display:inline-flex;align-items:center;gap:.55rem;
  font-family:var(--font-mono);font-size:.74rem;letter-spacing:.16em;
  font-variation-settings:var(--fv-mono)
}
.foot-langs a[aria-current="true"]{color:var(--fg)}
.foot-langs a[aria-current="true"]::before{
  content:"";display:inline-block;width:4px;height:4px;border-radius:50%;
  background:var(--teal);margin-right:6px;vertical-align:middle;
  box-shadow:0 0 6px oklch(0.88 0.085 152 / 0.55)
}

.foot-bottom{
  margin-top:clamp(.85rem,.65rem + .4vw,1.2rem);
  font-size:11px;color:var(--fg-dim);letter-spacing:.04em;
  text-align:center
}
.foot-bottom span{white-space:nowrap}

@media (max-width:520px){
  .foot-row{gap:.55rem .75rem}
  .foot-sep{height:12px;opacity:.6}
}

/* ---- Temprant: pagine legali ---- */
.container.narrow{max-width:52rem}
.legal{color:var(--navy);font-size:1.02rem;line-height:1.7}
.legal h3{font-family:var(--font-display);font-variation-settings:var(--fv-bold);
  font-size:1.18rem;color:var(--brand-blue);margin:2.2rem 0 .6rem}
.legal p{margin:0 0 1rem}
.legal ul{margin:0 0 1rem 1.1rem;padding:0}
.legal li{margin:0 0 .5rem;list-style:disc}
.legal a{color:var(--brand-blue);text-decoration:underline;text-underline-offset:3px}
.legal-date{margin-top:2.4rem;font-size:.9rem;color:var(--navy-2)}

/* ---- Temprant: da telefono la testata sbordava (difetto ereditato dal sorgente):
   sotto i 560px il nome del marchio resta nel logo e il tasto rientra ---- */
@media (max-width:560px){
  .site-brand-text{display:none}
  .site-cta{padding-inline:.9rem}
}
