:root{
  --paper:#FFFFFF;--ink:#0A0D12;--mute:#5C666E;--line:rgba(10,13,18,.14);
  --abyss:#04060A;--foam:#F2F5F7;--blue:#1E5FA8;--coral:#FF6F61;
  --display:"Space Grotesk",system-ui,sans-serif;--body:"Inter",system-ui,sans-serif;
  --gut:clamp(20px,5vw,72px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-weight:400;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--blue);outline-offset:4px}

.bar{background:var(--abyss);height:38px;display:flex;align-items:center;padding:0 var(--gut)}
.bar a{font-family:var(--display);font-weight:700;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--foam)}

/* ticker */
.ticker{background:var(--abyss);color:var(--foam);overflow:hidden;height:38px;display:flex;align-items:stretch}
.ticker__brand{flex:0 0 auto;display:flex;align-items:center;padding:0 clamp(14px,2.4vw,26px) 0 var(--gut);font-family:var(--display);font-weight:400;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--foam);white-space:nowrap;border-right:1px solid rgba(242,245,247,.18)}
.ticker__brand .beacon{display:inline-block;width:6px;height:6px;border-radius:50%;margin-left:8px;background:#FFFFFF;box-shadow:0 0 4px rgba(255,255,255,.7);animation:morse-aeskar 8.4s step-end infinite}
/* Blinks "AESKAR" in Morse. U=150ms · dot=1U · dash=3U · intra-gap=1U · inter-letter=3U · word=9U (7U + 2U extra pause) · full cycle 56U = 8.4s. */
@keyframes morse-aeskar{
  0%{opacity:1}
  1.786%{opacity:.12}
  3.571%{opacity:1}
  8.929%{opacity:.12}
  14.286%{opacity:1}
  16.071%{opacity:.12}
  21.429%{opacity:1}
  23.214%{opacity:.12}
  25.000%{opacity:1}
  26.786%{opacity:.12}
  28.571%{opacity:1}
  30.357%{opacity:.12}
  35.714%{opacity:1}
  41.071%{opacity:.12}
  42.857%{opacity:1}
  44.643%{opacity:.12}
  46.429%{opacity:1}
  51.786%{opacity:.12}
  57.143%{opacity:1}
  58.929%{opacity:.12}
  60.714%{opacity:1}
  66.071%{opacity:.12}
  71.429%{opacity:1}
  73.214%{opacity:.12}
  75.000%{opacity:1}
  80.357%{opacity:.12}
  82.143%{opacity:1}
  83.929%{opacity:.12}
}
@media (prefers-reduced-motion:reduce){.ticker__brand .beacon{animation:none;opacity:1}}
.ticker__brand b{font-weight:700}
.ticker__view{flex:1 1 auto;overflow:hidden;display:flex;align-items:center;padding-left:clamp(14px,2.4vw,26px)}
.ticker__track{display:flex;flex:0 0 auto;animation:slide 60s linear infinite;will-change:transform}
.ticker__set{display:flex;flex:0 0 auto}
.ticker__item{font-family:var(--body);font-size:11px;font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,245,247,.62);padding:0;white-space:nowrap}
.ticker__item b{color:var(--coral);font-weight:600}
.ticker__item a{color:var(--foam);font-weight:400;text-decoration:none}
.ticker__item a b{color:var(--foam);font-weight:700}
.ticker__item a:hover,.ticker__item a:hover b{color:var(--coral)}
.ticker__item::after{content:"\00B7";color:#FFFFFF;font-weight:700;margin:0 26px}
@keyframes slide{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:480px){.ticker__brand{padding-left:16px;padding-right:12px;font-size:11px;letter-spacing:.14em}.ticker__view{padding-left:12px}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}}

/* job hero */
.job-hero{position:relative;min-height:46vh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 0 clamp(28px,5vh,56px);background:var(--abyss);isolation:isolate}
.job-hero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden}
.job-hero__bg img{width:100%;height:100%;object-fit:cover;display:block}
.job-hero__scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(4,6,10,.5) 0%,rgba(4,6,10,.05) 35%,rgba(4,6,10,.15) 55%,rgba(4,6,10,.85) 92%,var(--abyss) 100%)}
.job-hero__inner{max-width:760px;margin:0 auto;width:100%;padding:0 var(--gut)}
.job-hero__kicker{font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(242,245,247,.6)}
.job-hero__kicker a:hover{color:var(--coral)}
.job-hero h1{margin-top:14px;font-family:var(--display);font-weight:400;font-size:clamp(2rem,5.6vw,4.2rem);line-height:.95;letter-spacing:-.03em;text-transform:uppercase;color:var(--foam);max-width:16ch}
.job-hero__meta{margin-top:14px;font-family:var(--body);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:rgba(242,245,247,.55)}

/* depth rail */
.rail{position:fixed;left:14px;top:50%;transform:translateY(-50%);z-index:40;display:flex;align-items:center;gap:10px;font-family:var(--body);font-size:10px;font-weight:500;letter-spacing:.16em;color:var(--mute);pointer-events:none;transition:color .3s ease}
.rail__line{width:1px;height:88px;background:linear-gradient(180deg,transparent,currentColor,transparent);opacity:.5}
.rail__val{writing-mode:vertical-rl;text-orientation:mixed}
.rail.is-dark{color:rgba(242,245,247,.72)}
@media (max-width:680px){.rail{display:none}}

.doc{max-width:760px;margin:0 auto;padding:clamp(56px,10vh,110px) var(--gut) clamp(60px,10vh,110px)}
.doc__kicker{font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin-bottom:18px}
.doc h1{font-family:var(--display);font-weight:500;font-size:clamp(2.2rem,6vw,4rem);line-height:.95;letter-spacing:-.035em;text-transform:uppercase;margin-bottom:14px}
.doc__date{font-size:11px;font-weight:400;letter-spacing:.06em;color:var(--mute);padding-bottom:34px;border-bottom:1px solid var(--line)}
.doc h2{font-family:var(--display);font-weight:500;font-size:clamp(1.1rem,2vw,1.45rem);letter-spacing:-.015em;margin:44px 0 12px}
.doc p{font-weight:300;font-size:1rem;line-height:1.7;color:#2B333A;margin-bottom:14px}
.doc p a{color:var(--blue);border-bottom:1px solid rgba(30,95,168,.35)}
.doc ul{margin:0 0 14px 1.1rem}
.doc li{font-weight:300;font-size:1rem;line-height:1.7;color:#2B333A;margin-bottom:7px}
.doc dl{margin-bottom:14px}
.doc dt{font-weight:500;font-size:1rem;margin-top:14px}
.doc dd{font-weight:300;font-size:1rem;line-height:1.7;color:var(--mute);margin-left:0}
.todo{background:#F4F6F8;border-left:2px solid var(--blue);padding:16px 20px;font-family:var(--body);font-size:1rem;font-weight:300;line-height:1.7;color:#2B333A;margin:20px 0}
.todo strong{font-weight:500;color:var(--ink)}

.apply{margin:44px 0 20px}
.apply .cue{font-size:clamp(1.15rem,1.8vw,1.35rem);font-weight:400;line-height:1.65;color:var(--ink)}
.apply__mail{display:inline-block;margin-top:.35em;font-family:var(--display);font-size:clamp(1.4rem,4.4vw,3.2rem);font-weight:400;letter-spacing:-.02em;border-bottom:1px solid var(--line);padding-bottom:.1em;transition:color .2s ease,border-color .2s ease}
.apply__mail:hover{color:var(--blue);border-color:var(--blue)}
.apply__arrow{display:inline-block;margin-left:.18em;color:var(--coral);transition:transform .25s ease}
.apply__mail:hover .apply__arrow{transform:translate(.1em,-.1em) scale(1.7)}

.back{border-top:1px solid var(--line);padding:22px 0 0;display:flex;flex-wrap:wrap;gap:10px 26px;font-size:11px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);margin-top:52px}
.back a:hover{color:var(--blue)}

/* full site footer (shared with index.html) */
.foot{background:var(--paper);border-top:1px solid var(--line);padding:clamp(56px,9vh,96px) var(--gut) 0;margin-top:60px}
.foot__inner{max-width:1180px;margin:0 auto}
.foot__label{font-family:var(--body);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);padding-bottom:20px}
.foot__label--ruled{border-top:1px solid var(--line);padding-top:clamp(28px,4.5vh,46px)}
.offices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,3vw,40px);padding-bottom:clamp(44px,7vh,72px)}
.office{border-top:1px solid var(--line);padding-top:14px}
.office__city{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:10px}
.office__addr{font-size:.9rem;font-weight:300;line-height:1.6;color:var(--mute)}
@media (max-width:900px){.offices{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:480px){.offices{grid-template-columns:1fr}}
.ids{display:flex;flex-wrap:wrap;justify-content:center;text-align:center;gap:8px clamp(20px,4vw,48px);border-bottom:1px solid var(--line);padding:0 0 clamp(28px,4.5vh,46px);font-size:11px;font-weight:400;letter-spacing:.08em;color:var(--mute)}
.ids a{text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:1px;transition:color .2s ease,border-color .2s ease}
.ids a:hover{color:var(--blue);border-color:var(--blue)}
.ids b{color:var(--ink);font-weight:500}
.grant{--flag:clamp(16px,5.5vw,56px);padding:clamp(16px,2.5vh,24px) 0 clamp(40px,6vh,60px);display:flex;flex-direction:column;align-items:center;gap:clamp(24px,3.5vw,40px)}
.grant__logo{height:calc(var(--flag)/0.6244);width:auto;display:block}
.grant__second{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;width:100%;gap:clamp(20px,5vw,72px)}
.grant__second img{display:block;width:auto}
.grant__second img[src*="funded-by-eu"]{height:calc(var(--flag)/0.8545)}
.grant__second img[src*="italia-domani"]{height:calc(var(--flag)*0.90)}
.legal{border-top:1px solid var(--line);padding:20px 0 26px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;font-size:10px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--mute)}
.legal a:hover{color:var(--blue)}
