:root{
  --bg:#FCFCFA;
  --bg-dark:#0E1221;
  --ink:#14192B;
  --navy:#2F415D;
  --navy-2:rgba(47,65,93,0.62);
  --navy-3:rgba(47,65,93,0.38);
  --navy-4:rgba(47,65,93,0.18);
  --navy-out:rgba(47,65,93,0.09);
  --brand-blue:#1C3A6E;
  --brand-blue-2:rgba(28,58,110,0.72);
  --brand-blue-out:rgba(28,58,110,0.14);
  --rule:rgba(47,65,93,0.12);
  --rule-strong:rgba(47,65,93,0.26);
  --rule-x:rgba(47,65,93,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 178);
  --teal-wash:oklch(0.88 0.085 178 / 0.22);
  --teal-strong:oklch(0.88 0.085 178 / 0.55);
  --teal-grad:linear-gradient(90deg,oklch(0.88 0.085 178 / 0.4),oklch(0.88 0.085 178 / 0.9),oklch(0.88 0.085 178 / 0.4));
  --teal-shimmer:linear-gradient(100deg,oklch(0.88 0.085 178 / 0.35) 0%,oklch(0.88 0.085 178 / 0.85) 40%,oklch(0.95 0.06 178 / 0.95) 50%,oklch(0.88 0.085 178 / 0.85) 60%,oklch(0.88 0.085 178 / 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}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
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 178 / 0.28), transparent 60%),
    radial-gradient(ellipse 40vw 34vh at 50% 50%, oklch(0.7 0.14 240 / 0.24), transparent 62%),
    radial-gradient(ellipse 62vw 54vh at 18% 14%, oklch(0.88 0.085 178 / 0.36), transparent 58%),
    radial-gradient(ellipse 54vw 48vh at 80% 6%, oklch(0.7 0.14 240 / 0.38), transparent 58%),
    radial-gradient(ellipse 72vw 56vh at 55% 108%, oklch(0.88 0.085 178 / 0.3), transparent 58%),
    radial-gradient(ellipse 48vw 42vh at 90% 72%, oklch(0.82 0.1 280 / 0.26), transparent 58%),
    radial-gradient(ellipse 36vw 30vh at 8% 88%, oklch(0.88 0.085 178 / 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 178);box-shadow:0 0 8px oklch(0.88 0.085 178 / 0.75),0 0 16px oklch(0.88 0.085 178 / 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 178 / 0.85),0 0 22px oklch(0.88 0.085 178 / 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 178 / 0.1),
    0 0 0 1px oklch(0.88 0.085 178 / 0.05),
    0 28px 60px -22px rgba(0,0,0,0.55),
    0 0 70px -16px oklch(0.88 0.085 178 / 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 178 / 0.6),transparent);
  border-radius:inherit;pointer-events:none
}
.site-header:hover{box-shadow:
  inset 0 1px 0 oklch(0.88 0.085 178 / 0.14),
  0 0 0 1px oklch(0.88 0.085 178 / 0.08),
  0 32px 70px -22px rgba(0,0,0,0.6),
  0 0 90px -16px oklch(0.88 0.085 178 / 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 178 / 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 178 / 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 178 / 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 178 / 0.16);
  box-shadow:inset 0 0 0 1px oklch(0.88 0.085 178 / 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}
}
@media (max-width:400px){
  .site-langs{padding:2px}
  .site-langs a{padding:4px 6px}
}

/* 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 178 / 0.2),0 14px 30px -14px oklch(0.88 0.085 178 / 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-nav{gap:1rem}.site-nav a{font-size:11.5px}}
@media (max-width:880px){
  .site-nav{display:none}.site-header-sep{display:none}
  .site-header{gap:1rem}
}
@media (max-width:520px){
  .site-brand-text{font-size:.72rem;letter-spacing:.16em}
  .site-cta{padding:8px 13px;font-size:11px}
  .site-brand-logo{width:28px}
}
@media (max-width:380px){
  .site-brand-text{display:none}
}

.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 270 / 0.42), transparent 68%),
    radial-gradient(ellipse 42% 32% at 50% 44%, oklch(0.88 0.085 178 / 0.32), transparent 65%),
    radial-gradient(ellipse 110% 35% at 50% 8%, oklch(0.42 0.14 260 / 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 178 / 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 178 / 0.28);
  max-width:0;opacity:0;vertical-align:baseline
}
.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 178 / 0.58),0 0 96px oklch(0.88 0.085 178 / 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(8px);
    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 1100ms var(--ease-out-expo) 200ms both}
.brand-mark .brace-r{animation:brace-fade-in 1100ms var(--ease-out-expo) 200ms both}
.brand-mark .brand-name{animation:wordmark-expand 2400ms cubic-bezier(.33,0,.16,1) 1100ms both}

/* hero-support appears WHILE the wordmark is still expanding so the title +
   lede are already settled by the time Liberatori 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 800ms var(--ease-out-quart) 1300ms 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 178 / 0.3),oklch(0.88 0.085 178 / 0.68),oklch(0.88 0.085 178 / 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 178 / 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 178 / 0.75) 48%,oklch(0.88 0.085 178 / 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 178 / 0.22),0 42px 90px -24px oklch(0.88 0.085 178 / 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 178 / 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 178 / 0.33),oklch(0.88 0.085 178 / 0.74),oklch(0.88 0.085 178 / 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 178 / 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 178 / 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(20,25,43,0.22),0 0 0 1px oklch(0.88 0.085 178 / 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 178 / 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 178 / 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 280 / 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 200 / 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(20,25,43,0.14)}
.proof-item:hover::before{background:var(--teal);box-shadow:0 0 12px oklch(0.88 0.085 178 / 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(20,25,43,.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 178 / 0.26);border:1px solid oklch(0.88 0.085 178 / 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}.rail-line,.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(47,65,93,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(47,65,93,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(47,65,93,0.95),oklch(0.88 0.085 178 / 0.78),rgba(47,65,93,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 178 / 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 178 / 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 178 / 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 178 / 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 178 / 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 178 / 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 178 / 0.2),0 18px 44px -18px oklch(0.88 0.085 178 / 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 178 / 0.16);border-color:oklch(0.88 0.085 178 / 0.55)}

/* ---------- NOFARE on cosmic dark ---------- */
.section-dark .nofare-backdrop{-webkit-text-stroke:1.2px var(--fg-out)}
.section-dark .nofare-item{background:rgba(14,18,33,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(14,18,33,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(47,65,93,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 178 / 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 178 / 0.2),transparent 60%);opacity:.5}
.servizi-panel:hover{box-shadow:0 32px 80px -32px rgba(20,25,43,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 178 / 0.55)}
.servizi-panel-label{color:var(--navy);border-color:var(--rule-strong);background:rgba(47,65,93,0.04)}
.servizi-panel-label .dot{background:var(--teal);box-shadow:0 0 8px oklch(0.88 0.085 178 / 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(47,65,93,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 178 / 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(20,25,43,0.42),0 10px 22px -12px rgba(20,25,43,0.25)}
.final-cta .btn-hero::before{background:linear-gradient(110deg,transparent 22%,oklch(0.88 0.085 178 / 0.45) 48%,oklch(0.88 0.085 178 / 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 178 / 0.22),0 34px 80px -24px oklch(0.88 0.085 178 / 0.55),0 18px 38px -14px rgba(20,25,43,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)}
}

/* ============================================================
   LIBERATORI 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 · restrained vertical presence ---------- */
.site-foot{
  background:transparent;
  border-top:1px solid rgba(255,255,255,0.07);
  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)
}
.site-foot::before{
  content:"";
  position:absolute;
  top:-1px;left:50%;transform:translateX(-50%);
  width:clamp(80px,8rem + 4vw,160px);
  height:1px;
  background:linear-gradient(90deg,transparent,oklch(0.88 0.085 178 / 0.45),transparent);
  pointer-events:none;
}
.foot-inner{max-width:80rem;margin:0 auto}

.foot-row{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:clamp(.7rem,.5rem + .65vw,1.25rem);
  font-size:.9rem;line-height:1.45
}
.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:.55rem;color:var(--fg);line-height:1;transition:opacity .25s var(--ease)}
.foot-brand img{height:20px;width:auto;display:block}
.foot-brand-name{font-size:.82rem;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-size:.92rem;
  font-variation-settings:"wght" 540,"wdth" 96,"opsz" 14,"GRAD" 0
}
.foot-mail:hover{color:var(--fg)}
.foot-place{
  color:var(--fg-dim);font-size:.84rem;
  font-variation-settings:var(--fv-mono);letter-spacing:.06em
}

.foot-langs{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:var(--font-mono);font-size:.76rem;letter-spacing:.18em;
  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 178 / 0.55)
}

.foot-bottom{
  margin-top:clamp(1.4rem,1.05rem + .7vw,2rem);
  padding-top:clamp(1.1rem,.85rem + .55vw,1.6rem);
  border-top:1px solid rgba(255,255,255,0.05);
  font-size:11.5px;color:var(--fg-dim);letter-spacing:.06em;
  text-align:center
}
.foot-bottom span{white-space:nowrap}

@media (max-width:520px){
  .foot-row{gap:.6rem .8rem}
  .foot-sep{display:none}
}
