/* =========================================================
   napapirú — base layer
   Tokens, fonts, typography, buttons, header, menu, footer,
   reveal utilities. Every section file builds on these.
   ========================================================= */

/* Display serif. The reference uses PP Editorial New (commercial, Pangram Pangram).
   If the licence is bought, drop the woff2 files in /fonts and these rules take over;
   until then the stack falls back to Instrument Serif (Google Fonts). */
/* Uncomment once the licensed files are in /fonts (kept commented to avoid 404s):
@font-face{font-family:'PP Editorial New';src:url('../fonts/PPEditorialNew-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:'PP Editorial New';src:url('../fonts/PPEditorialNew-Italic.woff2') format('woff2');font-weight:400;font-style:italic;font-display:swap;}
@font-face{font-family:'PP Editorial New';src:url('../fonts/PPEditorialNew-Ultralight.woff2') format('woff2');font-weight:200;font-style:normal;font-display:swap;}

*/

:root{
  /* palette (mirrors the reference; swap per brand later) */
  --black:#161516;
  --black-2:#1e1d1e;
  --white:#dad3d1;
  --blue:#001b7b;
  --blue-bright:#1240d6;
  --orange:#f84131;
  --line:rgba(218,211,209,.18);
  --line-strong:rgba(218,211,209,.42);
  --muted:rgba(218,211,209,.62);

  --serif:'PP Editorial New','Instrument Serif',Georgia,serif;
  --sans:'Inter Tight',system-ui,-apple-system,sans-serif;
  --hand:'Caveat',cursive;

  --gutter:clamp(16px,2.6vw,38px);
  --header-h:96px;

  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-in-out:cubic-bezier(.76,0,.24,1);
  --ease-expo:cubic-bezier(.87,0,.13,1);

  /* type scale */
  --fs-mega:clamp(64px,15.4vw,240px);
  --fs-h1:clamp(44px,5.6vw,86px);
  --fs-h2:clamp(36px,4.2vw,64px);
  --fs-h3:clamp(26px,2.4vw,38px);
  --fs-lead:clamp(22px,2.15vw,32px);
  --fs-body:clamp(13px,.95vw,15px);
  --fs-small:11px;
}

*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto!important;}
.lenis.lenis-stopped{overflow:hidden;}
body{
  margin:0;background:var(--black);color:var(--white);
  font-family:var(--sans);font-size:var(--fs-body);line-height:1.45;font-weight:400;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,video,svg{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;}
p{margin:0;}
h1,h2,h3,h4{margin:0;font-weight:400;}
ul,ol{list-style:none;margin:0;padding:0;}
::selection{background:var(--orange);color:var(--black);}

/* ---------- typography helpers ---------- */
.serif{font-family:var(--serif);font-weight:400;letter-spacing:-.02em;}
.serif-i,em.serif{font-family:var(--serif);font-style:italic;font-weight:400;}
.t-mega{font-family:var(--serif);font-size:var(--fs-mega);line-height:.82;letter-spacing:-.035em;text-transform:uppercase;}
.t-h1{font-size:var(--fs-h1);line-height:.98;letter-spacing:-.035em;font-weight:400;}
.t-h2{font-family:var(--serif);font-size:var(--fs-h2);line-height:1;letter-spacing:-.025em;}
.t-h3{font-family:var(--serif);font-size:var(--fs-h3);line-height:1.05;letter-spacing:-.02em;}
.t-lead{font-size:var(--fs-lead);line-height:1.18;letter-spacing:-.02em;}
.t-upper{text-transform:uppercase;letter-spacing:-.02em;}
.t-small{font-size:var(--fs-small);letter-spacing:.01em;}
.t-muted{color:var(--muted);}
.t-index{font-size:10px;color:var(--muted);letter-spacing:.04em;}
.sup{font-family:var(--sans);font-size:.24em;vertical-align:top;position:relative;top:.35em;margin-left:.08em;letter-spacing:0;}

.container{padding-inline:var(--gutter);width:100%;}
.section{position:relative;}
.theme-light{background:var(--white);color:var(--black);--line:rgba(22,21,22,.16);--muted:rgba(22,21,22,.6);}
.theme-orange{background:var(--orange);color:var(--white);}
.theme-blue{background:var(--blue);color:var(--white);}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--white);color:var(--black);
  font-size:11px;font-weight:500;letter-spacing:.01em;
  padding:9px 16px;min-height:32px;border-radius:2px;
  position:relative;overflow:hidden;isolation:isolate;
  transition:color .45s var(--ease-out);
}
.btn::before{
  content:"";position:absolute;inset:0;z-index:-1;background:var(--orange);
  transform:scaleY(0);transform-origin:50% 100%;transition:transform .55s var(--ease-out);
}
.btn:hover::before{transform:scaleY(1);}
.btn:hover{color:var(--white);}
.btn .arr{width:9px;height:9px;transition:transform .45s var(--ease-out);}
.btn:hover .arr{transform:translate(2px,-2px);}
.btn--wide{width:100%;}
.btn--lg{font-size:15px;padding:12px 22px;min-height:44px;}
.btn--lg .arr{width:11px;height:11px;}
.btn--dark{background:var(--black);color:var(--white);}
.link-arrow{display:inline-flex;align-items:center;gap:6px;font-size:10px;text-decoration:underline;text-underline-offset:2px;}
.link-arrow .arr-l{transition:transform .4s var(--ease-out);}
.link-arrow:hover .arr-l{transform:translateX(-4px);}

/* ---------- header (fixed, mix of the three corner elements) ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;z-index:90;height:var(--header-h);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  padding:24px var(--gutter);pointer-events:none;
}
.site-header > *{pointer-events:auto;}
/* difference blend keeps the white logo/equaliser readable over light and orange sections */
.site-header{mix-blend-mode:difference;}
.header-logo{grid-column:2;display:block;width:58px;height:58px;}
.header-logo svg{width:100%;height:100%;overflow:visible;}
.header-logo .mark-stroke{fill:none;stroke:var(--white);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
.header-logo .mark-dot{fill:var(--blue-bright);}
.sound-toggle{justify-self:end;display:flex;align-items:center;gap:3px;height:28px;padding:0 2px;}
.sound-toggle i{display:block;width:1.5px;background:var(--white);height:var(--h,10px);border-radius:1px;transform-origin:50% 50%;}
.sound-toggle.is-on i{animation:eq 1.1s ease-in-out infinite alternate;}
.sound-toggle i:nth-child(2){--h:18px;animation-delay:-.3s}
.sound-toggle i:nth-child(3){--h:26px;animation-delay:-.7s}
.sound-toggle i:nth-child(4){--h:14px;animation-delay:-.1s}
.sound-toggle i:nth-child(5){--h:22px;animation-delay:-.5s}
.sound-toggle i:nth-child(6){--h:8px;animation-delay:-.9s}
@keyframes eq{0%{transform:scaleY(.3)}100%{transform:scaleY(1)}}

/* HR | EN language switch (top-right; inverts with the header blend) */
.lang-switch{justify-self:end;display:flex;align-items:center;gap:8px;font-size:12px;font-weight:500;letter-spacing:.08em;}
.lang-switch span{opacity:.4;}
.lang-switch a{position:relative;padding:4px 0;opacity:.55;transition:opacity .3s;}
.lang-switch a:hover,.lang-switch a[aria-current]{opacity:1;}
.lang-switch a[aria-current]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;}

/* auto-hide on scroll down (class set by core.js) */
.site-header,.nav{transition:transform .6s var(--ease-out);}
html.header-hidden .site-header,html.header-hidden .nav{transform:translateY(calc(-100% - 40px));}
.sound-toggle[hidden]{display:none;}

/* ---------- scaling glass menu (top-left) ---------- */
/* top = header padding + half logo height - half button height, so all three sit on one axis */
.nav{position:fixed;top:39px;left:var(--gutter);z-index:100;}
.nav__toggle{
  position:relative;z-index:3;height:28px;width:76px;border-radius:2px;overflow:hidden;
  /* same frosted glass as the menu panel */
  background:rgba(218,211,209,.08);color:var(--white);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);
  border:1px solid rgba(218,211,209,.16);
  font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  transition:background .4s var(--ease-out),border-color .4s var(--ease-out);
}
/* two labels stacked; they swap with a vertical slide */
.nav__toggle .nav__lbl{position:absolute;inset:0;display:grid;place-items:center;transition:transform .6s var(--ease-out);}
.nav__toggle .nav__lbl--close{transform:translateY(100%);}
.nav__toggle:hover{background:rgba(218,211,209,.16);border-color:rgba(218,211,209,.3);}
.nav[data-open="true"] .nav__lbl--open{transform:translateY(-100%);}
.nav[data-open="true"] .nav__lbl--close{transform:translateY(0);}
.nav__panel{
  position:absolute;top:0;left:0;width:222px;padding:62px 28px 26px;
  background:rgba(218,211,209,.08);
  -webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);
  border:1px solid rgba(218,211,209,.16);border-radius:2px;
  transform-origin:0 0;transform:scale(.342,.083);opacity:0;visibility:hidden;
  transition:transform .7s var(--ease-expo),opacity .3s ease .25s,visibility 0s linear .7s;
}
.nav[data-open="true"] .nav__panel{transform:scale(1);opacity:1;visibility:visible;transition:transform .7s var(--ease-expo),opacity .15s ease,visibility 0s;}
.nav__list li{overflow:hidden;}
.nav__list a{
  display:flex;justify-content:space-between;align-items:center;
  font-size:21px;letter-spacing:-.03em;line-height:1.75;
  transform:translateY(105%);transition:transform .6s var(--ease-out),color .3s;
}
.nav[data-open="true"] .nav__list a{transform:translateY(0);transition-delay:calc(.18s + var(--i,0)*.045s),0s;}
.nav__list a:hover,.nav__list a[aria-current]{color:var(--muted);}
.nav__list a i{width:5px;height:5px;border-radius:50%;background:var(--white);transform:scale(0);transition:transform .4s var(--ease-out);}
.nav__list a:hover i,.nav__list a[aria-current] i{transform:scale(1);}
.nav__scrim{position:fixed;inset:0;z-index:-1;visibility:hidden;}
.nav[data-open="true"] .nav__scrim{visibility:visible;}

/* ---------- breadcrumb ---------- */
.crumbs{display:flex;justify-content:center;gap:14px;font-size:13px;letter-spacing:-.01em;}
.crumbs a{color:var(--muted);transition:color .3s;}
.crumbs a:hover{color:inherit;}

/* ---------- footer ---------- */
.site-footer{position:relative;overflow:hidden;background:var(--black);padding:36px var(--gutter) 0;}
.footer-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;align-items:start;}
.footer-nav a{display:block;font-size:15px;line-height:1.95;letter-spacing:-.02em;}
.footer-nav a span{display:inline-block;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .5s var(--ease-out);}
.footer-nav a:hover span{background-size:100% 1px;}
.footer-col-c{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:11px;}
.footer-social{display:flex;gap:10px;margin:4px 0 52px;}
.footer-social a{width:22px;height:22px;transition:transform .4s var(--ease-out),opacity .3s;}
.footer-social a:hover{transform:translateY(-3px);opacity:.7;}
.footer-social svg{width:100%;height:100%;}
.footer-col-r{text-align:right;font-size:11px;display:flex;flex-direction:column;align-items:flex-end;gap:4px;}
.footer-col-r .credit{margin-top:auto;padding-top:62px;}
.footer-country{font-size:15px;letter-spacing:-.02em;}
.footer-bottom{display:grid;grid-template-columns:1fr auto 1fr;font-size:10px;margin-top:66px;}
.footer-bottom > :last-child{text-align:right;}
.footer-mega{
  font-family:var(--hand);font-weight:700;color:var(--blue-bright);
  /* CSS fallback; core.js refits the size so the word fills the width exactly */
  font-size:clamp(80px,26vw,480px);line-height:.95;letter-spacing:0;
  /* flex centring keeps the word centred even if it is ever wider than the footer */
  display:flex;justify-content:center;white-space:nowrap;margin:18px 0 0;padding-bottom:.2em;
  user-select:none;
}
.footer-mega__txt{position:relative;display:block;}

/* ---------- reveal utilities (driven by js/core.js) ---------- */
html.js [data-reveal]{opacity:0;transform:translateY(var(--reveal-y,40px));}
html.js [data-reveal].is-in{opacity:1;transform:none;transition:opacity 1s var(--ease-out),transform 1.2s var(--ease-out);transition-delay:var(--d,0s);}
html.js [data-reveal-group] > *{opacity:0;transform:translateY(var(--reveal-y,32px));}
html.js [data-reveal-group].is-in > *{opacity:1;transform:none;transition:opacity 1s var(--ease-out),transform 1.2s var(--ease-out);transition-delay:calc(var(--d,0s) + var(--i,0) * .08s);}
.line-mask{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em;}
.line-mask > .line-inner{display:block;}
.img-cover{width:100%;height:100%;object-fit:cover;}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

@media (max-width:767px){
  :root{--header-h:80px;}
  .site-header{padding:18px var(--gutter);}
  .nav{top:27px;}
  .header-logo{width:46px;height:46px;}
  .footer-grid{grid-template-columns:1fr;gap:40px;}
  .footer-col-c,.footer-col-r{text-align:left;align-items:flex-start;}
  .footer-social{margin-bottom:12px;}
  .footer-col-r .credit{padding-top:12px;}
  .footer-bottom{grid-template-columns:1fr;gap:8px;}
  .footer-bottom > :last-child{text-align:left;}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;}
  html.js [data-reveal],html.js [data-reveal-group] > *{opacity:1;transform:none;}
}

/* SplitText line masks: keep room for accents/carons (Š, Č, Ć) on tight line-heights */
[data-split] .split-line-mask,[data-split] [class$="-mask"]{padding-block:.16em .12em;margin-block:-.16em -.12em;}
