:root{
  /* national palette — unchanged signature colours */
  --ink:#1A1A1A; --ink2:#111111; --grey:#6E7072; --lgrey:#D4D4D2; --bg:#F4F4F2; --white:#FFFFFF;
  --bw:#75AADB; --sa:#FFB612; --zw:#007A3D; --zmr:#DE2010; --zmo:#EF7D00;
  --disp:'Barlow Condensed',sans-serif; --body:'Barlow',sans-serif;
  --lean:-6deg;
  /* fluid type scale */
  --fs-mega:clamp(72px,15.5vw,224px);
  --fs-h1:clamp(52px,9vw,128px);
  --fs-title:clamp(40px,6.4vw,104px);
  --fs-sub:clamp(19px,2.2vw,26px);
  /* spacing rhythm */
  --sp-section:clamp(88px,13vh,184px);
  --sp-tight:clamp(60px,8vh,108px);
  /* motion */
  --ease:cubic-bezier(.22,1,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);color:var(--ink);background:var(--bg);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,.disp{font-family:var(--disp);font-weight:800;text-transform:uppercase;line-height:.9;letter-spacing:.005em}
a{color:inherit;text-decoration:none}
img,svg{display:block;max-width:100%}
.wrap{max-width:1240px;margin:0 auto;padding:0 clamp(20px,4vw,48px)}
strong{font-weight:700}
::selection{background:var(--zw);color:var(--white)}

/* ===== scroll progress — four-nation gradient ===== */
#progress{position:fixed;top:0;left:0;height:4px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--bw) 0 25%,var(--sa) 25% 50%,var(--zw) 50% 75%,var(--zmr) 75% 92%,var(--zmo));
  transition:width .08s linear}

/* ===== four-nation flag band — the signature divider ===== */
.band{display:flex;height:8px;width:100%;overflow:hidden}
.band span{flex:1;position:relative}
.band .b1{background:var(--bw)}.band .b2{background:var(--sa)}.band .b3{background:var(--zw)}.band .b4{background:linear-gradient(90deg,var(--zmr) 60%,var(--zmo))}
.band span::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);transform:translateX(-130%);animation:sheen 5.5s var(--ease) infinite}
.band .b2::after{animation-delay:.3s}.band .b3::after{animation-delay:.6s}.band .b4::after{animation-delay:.9s}
@keyframes sheen{0%,55%{transform:translateX(-130%)}80%,100%{transform:translateX(130%)}}
.band-tall{height:14px}

/* ===== header ===== */
header{position:sticky;top:0;z-index:100;background:rgba(244,244,242,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--lgrey)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:18px}
.logo{display:flex;align-items:center;gap:12px}
.logo svg{height:42px;width:auto;transition:transform .4s var(--ease)}
.logo:hover svg{transform:rotate(-6deg) scale(1.04)}
.logo-word{font-family:var(--disp);font-weight:900;font-size:28px;letter-spacing:.005em;line-height:1}
.logo-word small{font-weight:600;color:var(--grey);font-size:16px}
.nav-links{display:flex;gap:30px;font-family:var(--disp);font-weight:600;text-transform:uppercase;font-size:15px;letter-spacing:.14em}
.nav-links a{color:var(--grey);position:relative;padding:4px 0;transition:color .2s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-2px;height:3px;width:100%;background:var(--zw);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links a:hover,.nav-links a:focus-visible{color:var(--ink)}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links a.active{color:var(--ink)}
.nav-right{display:flex;align-items:center;gap:14px}
.nav-cta{position:relative;overflow:hidden;display:inline-block;background:var(--ink);color:var(--white);font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:15px;padding:12px 22px;transform:skewX(var(--lean))}
.nav-cta>span{position:relative;z-index:1;display:inline-block;transform:skewX(6deg)}
.nav-cta::before{content:"";position:absolute;inset:0;background:var(--zw);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav-cta:hover::before,.nav-cta:focus-visible::before{transform:scaleX(1);transform-origin:left}
.burger{display:none;width:46px;height:46px;border:2px solid var(--ink);background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:5px;transform:skewX(var(--lean))}
.burger span{display:block;width:20px;height:2.4px;background:var(--ink);transition:.3s var(--ease)}
.burger.open span:nth-child(1){transform:translateY(7.4px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7.4px) rotate(-45deg)}
@media(max-width:920px){
  .nav-links{position:fixed;inset:76px 0 auto 0;flex-direction:column;gap:0;background:var(--bg);border-bottom:1px solid var(--lgrey);padding:8px 0;transform:translateY(-12px);opacity:0;pointer-events:none;transition:.3s var(--ease);font-size:22px}
  .nav-links.show{transform:none;opacity:1;pointer-events:auto}
  .nav-links a{padding:16px clamp(20px,4vw,48px);border-bottom:1px solid var(--lgrey)}
  .nav-links a::after{display:none}
  .burger{display:flex}
  .nav-cta{display:none}
}

/* ===== shared section furniture ===== */
section{padding:var(--sp-section) 0;position:relative}
section.tight{padding:var(--sp-tight) 0}
.kicker{display:flex;align-items:center;gap:16px;font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.26em;font-size:14px;color:var(--grey);margin-bottom:22px}
.kicker::before{content:"";width:44px;height:8px;background:var(--zw);transform:skewX(var(--lean)) scaleX(0);transform-origin:left;transition:transform .6s .1s var(--ease)}
.rv.in .kicker::before,.kicker.in::before{transform:skewX(var(--lean)) scaleX(1)}
.k-bw::before{background:var(--bw)}.k-sa::before{background:var(--sa)}.k-zw::before{background:var(--zw)}.k-zm::before{background:linear-gradient(90deg,var(--zmr),var(--zmo))}
.sec-title{font-size:var(--fs-title);margin-bottom:30px;max-width:16ch}
.lede{font-size:var(--fs-sub);line-height:1.5;max-width:46ch;color:var(--ink)}
.lede+.lede{margin-top:22px}
.muted{color:var(--grey)}
.idx{position:absolute;top:clamp(24px,5vh,64px);right:clamp(16px,4vw,48px);font-family:var(--disp);font-weight:900;font-size:clamp(90px,16vw,220px);line-height:.8;color:var(--ink);opacity:.05;pointer-events:none;user-select:none;letter-spacing:-.02em}

/* ===== buttons — leaning signature ===== */
.cta-row{display:flex;gap:18px;flex-wrap:wrap}
.btn{position:relative;overflow:hidden;display:inline-block;font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:clamp(16px,1.4vw,19px);padding:17px 34px;transform:skewX(var(--lean));border:2px solid var(--ink);transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.btn>span{position:relative;z-index:1;display:inline-block;transform:skewX(6deg)}
.btn::before{content:"";position:absolute;inset:0;transform:scaleX(0);transform-origin:right;transition:transform .42s var(--ease)}
.btn:hover,.btn:focus-visible{transform:skewX(var(--lean)) translateY(-3px);box-shadow:0 14px 26px rgba(26,26,26,.18)}
.btn:hover::before,.btn:focus-visible::before{transform:scaleX(1);transform-origin:left}
.btn-primary{background:var(--ink);color:var(--white)}
.btn-primary::before{background:var(--zw)}
.btn-primary:hover,.btn-primary:focus-visible{border-color:var(--zw)}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost::before{background:var(--ink)}
.btn-ghost:hover>span,.btn-ghost:focus-visible>span{color:var(--white)}

/* ===== hero ===== */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--lgrey);padding:0}
.hero-bg3{position:absolute;top:50%;right:-4vw;transform:translateY(-50%);font-family:var(--disp);font-weight:900;font-size:min(92vh,860px);line-height:.7;color:transparent;-webkit-text-stroke:2px rgba(0,122,61,.16);text-stroke:2px rgba(0,122,61,.16);pointer-events:none;user-select:none;z-index:0;will-change:transform}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,4vw,56px);align-items:center;padding-top:clamp(64px,11vh,128px);padding-bottom:clamp(64px,11vh,128px)}
.eyebrow{font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.22em;font-size:clamp(12px,1.3vw,15px);line-height:1.7;color:var(--grey);margin-bottom:26px}
.eyebrow b{color:var(--ink);font-weight:700}
@media(min-width:921px){.hero .eyebrow .eb-c{white-space:nowrap}}
.hero h1{font-size:var(--fs-h1);margin-bottom:30px;letter-spacing:-.01em}
.hero h1 .line{display:block;overflow:hidden;padding-bottom:.04em}
.hero h1 .line>span{display:block;transform:translateY(110%);transition:transform 1s var(--ease)}
.hero h1 .line:nth-child(1)>span{transition-delay:.05s}
.hero h1 .line:nth-child(2)>span{transition-delay:.18s}
.hero h1 .reveal-on .line>span,.hero.in h1 .line>span{transform:none}
.hero h1 .three{color:var(--zw);display:inline-block}
.hero p.sub{font-size:var(--fs-sub);line-height:1.5;max-width:54ch;color:var(--ink);margin-bottom:38px}
.hero .cta-row{margin-bottom:30px}
.hero-meta{display:flex;gap:10px 26px;flex-wrap:wrap;font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.08em;font-size:14px;color:var(--grey)}
.hero-meta b{color:var(--ink);font-weight:800}
.hero-mark{justify-self:center;position:relative;will-change:transform}
.hero-mark svg{width:min(330px,58vw);height:auto;filter:drop-shadow(0 26px 44px rgba(26,26,26,.22));animation:floaty 7s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-14px) rotate(1.4deg)}}
@media(max-width:920px){
  .hero .wrap{grid-template-columns:1fr;padding-top:48px;padding-bottom:56px;gap:20px}
  .hero-mark{order:-1;justify-self:start}
  .hero-mark svg{width:150px}
  .hero-bg3{font-size:64vh;right:-12vw}
}

/* ===== marquee ticker ===== */
.ticker{background:var(--ink);color:var(--bg);overflow:hidden;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);padding:18px 0;position:relative}
.ticker-track{display:flex;width:max-content;gap:0;animation:scroll 44s linear infinite}
.ticker:hover .ticker-track,.ticker:focus-within .ticker-track{animation-play-state:paused}
.ticker-item{display:inline-flex;align-items:center;gap:13px;padding:0 28px;font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:clamp(20px,2.6vw,34px);letter-spacing:.02em;white-space:nowrap;color:var(--white);transition:opacity .2s var(--ease)}
.ticker-item .dot{width:14px;height:14px;flex:none;background:currentColor;transform:skewX(var(--lean));transition:transform .25s var(--ease)}
.ticker-item::after{content:"\2197";font-size:.6em;opacity:.55;margin-left:-3px}
.ticker-item:hover{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:2px}
.ticker-item:hover .dot{transform:skewX(var(--lean)) scale(1.3)}
.tc-bw{color:var(--bw)}.tc-sa{color:var(--sa)}.tc-zw{color:var(--zw)}.tc-zr{color:var(--zmr)}.tc-zo{color:var(--zmo)}
@keyframes scroll{to{transform:translateX(-50%)}}

/* ===== positioning — big editorial statement ===== */
.statement{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:var(--fs-title);line-height:.92;letter-spacing:-.005em;max-width:18ch}
.statement .hl{color:var(--zw)}
.prose-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);margin-top:clamp(36px,6vh,68px);align-items:start}
.prose-grid .lede{max-width:52ch}
@media(max-width:860px){.prose-grid{grid-template-columns:1fr;gap:22px}}
/* positioning two-column: heading+lede left, supporting copy top-aligned right */
.pos-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5.5vw,84px);align-items:start}
.pos-grid .statement{margin-bottom:clamp(24px,3vh,34px)}
.pos-grid .lede{max-width:50ch}
.pos-body{padding-top:clamp(0px,2.4vw,48px)}
.pos-body .lede+.lede{margin-top:22px}
@media(max-width:860px){.pos-grid{grid-template-columns:1fr;gap:24px}.pos-body{padding-top:0}}

/* ===== days / process ===== */
.days{margin-top:clamp(44px,7vh,80px);border-top:2px solid var(--ink)}
.day{display:grid;grid-template-columns:auto 1.1fr 2fr;gap:clamp(20px,4vw,56px);align-items:start;padding:clamp(28px,5vh,56px) 0;border-bottom:1px solid var(--lgrey);position:relative}
.day .num{font-family:var(--disp);font-weight:900;font-size:clamp(64px,9vw,132px);line-height:.78;color:var(--lgrey);transition:color .4s var(--ease)}
.day:nth-child(1) .num{color:var(--bw)}
.day:nth-child(2) .num{color:var(--sa)}
.day:nth-child(3) .num{color:var(--zw)}
.day h3{font-size:clamp(24px,3vw,40px);align-self:center}
.day p{font-size:clamp(16px,1.5vw,19px);color:var(--ink);max-width:48ch;align-self:center}
.day::after{content:"";position:absolute;left:0;bottom:-1px;height:3px;width:0;background:currentColor;transition:width .8s var(--ease)}
.day:hover .num{filter:saturate(1.2)}
.day4{margin-top:0;background:var(--ink);color:var(--bg);padding:clamp(22px,4vh,34px) 28px;font-family:var(--disp);font-weight:900;text-transform:uppercase;font-size:clamp(22px,3.4vw,42px);letter-spacing:.02em;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center}
.day4 em{font-style:normal;color:var(--sa)}
@media(max-width:760px){.day{grid-template-columns:auto 1fr;gap:18px}.day p{grid-column:1/-1}}

/* ===== audience ===== */
.aud{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--lgrey);border:1px solid var(--lgrey);margin-top:clamp(40px,6vh,64px)}
.aud div{background:var(--bg);padding:clamp(28px,4vw,44px);font-size:17px;transition:background .3s var(--ease),transform .3s var(--ease)}
.aud div:hover{background:var(--white);transform:translateY(-3px)}
.aud b{font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:clamp(22px,2.4vw,30px);display:block;margin-bottom:10px;letter-spacing:.005em}
.aud div:nth-child(1) b{color:var(--bw)}
.aud div:nth-child(2) b{color:var(--sa)}
.aud div:nth-child(3) b{color:var(--zw)}
.aud div:nth-child(4) b{color:var(--zmo)}
@media(max-width:700px){.aud{grid-template-columns:1fr}}

/* ===== panels ===== */
.panel-white{background:var(--white);border-top:1px solid var(--lgrey);border-bottom:1px solid var(--lgrey)}
.center{text-align:center}
.center .sec-title{margin-left:auto;margin-right:auto}
.center .lede{margin-left:auto;margin-right:auto}
.center .cta-row{justify-content:center}

/* ===== page hero (interior pages) ===== */
.page-hero{border-bottom:1px solid var(--lgrey);background:var(--white);position:relative;overflow:hidden;padding:0}
.page-hero .wrap{padding-top:clamp(56px,11vh,128px);padding-bottom:clamp(48px,9vh,104px);position:relative;z-index:2}
.page-hero h1{font-size:clamp(48px,8.5vw,140px);letter-spacing:-.01em}
.page-hero h1 .line{display:block;overflow:hidden;padding-bottom:.04em}
.page-hero h1 .line>span{display:block;transform:translateY(110%);transition:transform 1s var(--ease)}
.page-hero h1 .line:nth-child(1)>span{transition-delay:.05s}
.page-hero h1 .line:nth-child(2)>span{transition-delay:.16s}
.page-hero h1 .line:nth-child(3)>span{transition-delay:.27s}
.page-hero.in h1 .line>span{transform:none}
.page-hero p.sub{font-size:var(--fs-sub);line-height:1.5;max-width:60ch;color:var(--ink);margin-top:26px}
.page-hero .ph-mark{position:absolute;top:50%;right:-6vw;transform:translateY(-50%);width:min(420px,46vw);opacity:.10;z-index:1;pointer-events:none}
@media(max-width:920px){.page-hero .ph-mark{display:none}}

/* ===== packages ===== */
#packages{background:var(--bg)}
.pkgs{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:clamp(44px,7vh,72px);align-items:start}
.pkg{border:1px solid var(--lgrey);background:var(--white);display:flex;flex-direction:column;position:relative;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.pkg:hover{transform:translateY(-8px);box-shadow:0 28px 50px rgba(26,26,26,.13)}
.pkg-head{padding:clamp(28px,3vw,38px) clamp(26px,2.6vw,34px) 22px;border-bottom:1px solid var(--lgrey)}
.pkg-head h3{font-size:clamp(28px,3vw,40px)}
.pkg-head .ref{font-size:14px;color:var(--grey);margin-top:8px;line-height:1.4}
.pkg-price{font-family:var(--disp);font-weight:900;font-size:clamp(52px,5.5vw,82px);line-height:.85;padding:26px clamp(26px,2.6vw,34px) 8px;letter-spacing:-.01em}
.pkg-profile{margin:0 clamp(26px,2.6vw,34px) 20px;padding:10px 16px;background:var(--ink);color:var(--white);font-family:var(--disp);font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.08em;transform:skewX(var(--lean));align-self:start}
.pkg-profile>span{display:inline-block;transform:skewX(6deg)}
.pkg ul{list-style:none;padding:0 clamp(26px,2.6vw,34px) 30px;flex:1}
.pkg li{padding:12px 0 12px 26px;border-bottom:1px solid var(--lgrey);font-size:15.5px;position:relative}
.pkg li::before{content:"";position:absolute;left:0;top:18px;width:11px;height:11px;background:var(--zw);transform:skewX(var(--lean))}
.pkg li:last-child{border-bottom:none}
.pkg .btn{margin:0 clamp(26px,2.6vw,34px) clamp(26px,2.6vw,34px);text-align:center;display:block}
.pkg:nth-child(1){border-top:8px solid var(--bw)}
.pkg:nth-child(1) li::before{background:var(--bw)}
.pkg.feature{border-top:8px solid var(--zw);box-shadow:0 24px 44px rgba(26,26,26,.12)}
.pkg.feature li::before{background:var(--zw)}
.pkg:nth-child(3){border-top:8px solid var(--zmo)}
.pkg:nth-child(3) li::before{background:var(--zmo)}
@media(min-width:981px){.pkg.feature{transform:scale(1.045)}.pkg.feature:hover{transform:scale(1.045) translateY(-8px)}}
.pkg-tag{position:absolute;top:-16px;right:20px;background:var(--zw);color:var(--white);font-family:var(--disp);font-weight:800;text-transform:uppercase;font-size:13px;letter-spacing:.1em;padding:7px 14px;transform:skewX(var(--lean))}
.pkg-tag>span{display:inline-block;transform:skewX(6deg)}
.profile-only{margin-top:28px;border:1px solid var(--lgrey);background:var(--ink);color:var(--bg);padding:clamp(30px,4vw,52px);display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;position:relative;overflow:hidden}
.profile-only::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(180deg,var(--bw),var(--sa),var(--zw),var(--zmr))}
.profile-only h3{font-size:clamp(26px,3vw,40px);color:var(--white)}
.profile-only p{font-size:16px;max-width:60ch;color:var(--lgrey);margin-top:10px}
.profile-only .pp{font-family:var(--disp);font-weight:900;font-size:clamp(44px,5vw,76px);white-space:nowrap;color:var(--sa);line-height:.85}
.profile-only .btn-ghost{border-color:var(--bg);color:var(--bg)}
.profile-only .btn-ghost::before{background:var(--bg)}
.profile-only .btn-ghost:hover>span{color:var(--ink)}
.pkg-foot{margin-top:30px;font-size:14px;color:var(--grey);max-width:70ch}
@media(max-width:980px){.pkgs{grid-template-columns:1fr;max-width:480px;margin-left:auto;margin-right:auto}}

/* ===== track record / stats ===== */
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,80px);align-items:start}
.stats{display:grid;gap:clamp(28px,4vh,44px)}
.bigstat{border-top:2px solid var(--ink);padding-top:18px}
.bigstat .n{font-family:var(--disp);font-weight:900;font-size:clamp(72px,11vw,156px);line-height:.82;letter-spacing:-.02em}
.bigstat:nth-child(1) .n{color:var(--bw)}
.bigstat:nth-child(2) .n{color:var(--sa)}
.bigstat:nth-child(3) .n{color:var(--zw)}
.bigstat small{display:block;font-family:var(--disp);font-weight:600;font-size:clamp(16px,1.8vw,22px);text-transform:uppercase;color:var(--grey);letter-spacing:.1em;margin-top:10px}
@media(max-width:860px){.split{grid-template-columns:1fr;gap:40px}}

/* ===== markets ===== */
#markets{background:var(--ink);color:var(--bg)}
#markets .kicker{color:var(--lgrey)}
#markets .sec-title{color:var(--white)}
#markets .lede{color:var(--lgrey);max-width:60ch}
.flags{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:#2c2c2c;border:1px solid #2c2c2c;margin-top:clamp(40px,6vh,64px)}
.flag{background:var(--ink);padding:clamp(28px,3vw,44px) clamp(24px,2.5vw,32px);transition:background .35s var(--ease)}
.flag:hover{background:var(--ink2)}
.flag .chip{width:64px;height:12px;margin-bottom:22px;transform:skewX(var(--lean));transition:width .4s var(--ease)}
.flag:hover .chip{width:96px}
.flag:nth-child(1) .chip{background:var(--bw)}
.flag:nth-child(2) .chip{background:var(--sa)}
.flag:nth-child(3) .chip{background:var(--zw)}
.flag:nth-child(4) .chip{background:linear-gradient(90deg,var(--zmr) 60%,var(--zmo))}
.flag h3{font-size:clamp(26px,2.6vw,38px);color:var(--white)}
.flag p{font-size:15px;color:var(--grey);margin-top:8px;font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.06em}
@media(max-width:860px){.flags{grid-template-columns:repeat(2,1fr)}}

/* ===== portfolio ===== */
.port-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:clamp(40px,6vh,64px)}
.port{border:1px solid var(--lgrey);background:var(--white);display:flex;flex-direction:column;transition:transform .3s var(--ease),box-shadow .3s var(--ease);text-decoration:none}
.port:hover{transform:translateY(-6px);box-shadow:0 22px 42px rgba(26,26,26,.13)}
.port .thumb{height:12px;display:flex}
.port .thumb span{flex:1}
.port .body{padding:clamp(24px,2.4vw,32px);flex:1;display:flex;flex-direction:column}
.port .cat{font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.14em;font-size:12px;color:var(--grey);margin-bottom:12px}
.port h3{font-size:clamp(23px,2.4vw,30px);margin-bottom:12px}
.port p{font-size:15px;color:var(--ink);flex:1;line-height:1.55}
.port .url{margin-top:20px;font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:14px;color:var(--ink);display:flex;align-items:center;gap:8px}
.port .url::after{content:"\2197";transition:transform .25s var(--ease)}
.port:hover .url::after{transform:translate(4px,-4px)}
@media(max-width:980px){.port-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.port-grid{grid-template-columns:1fr}}

/* ===== contact ===== */
#contact .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(40px,6vw,80px);align-items:center}
.contacts{display:grid;gap:14px;margin-top:8px}
.contact-line{display:flex;align-items:center;gap:18px;border:1px solid var(--lgrey);background:var(--white);padding:clamp(18px,2.4vw,26px) clamp(20px,2.4vw,28px);font-size:17px;transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}
.contact-line:hover{border-color:var(--ink);transform:translateX(6px);box-shadow:0 12px 24px rgba(26,26,26,.08)}
.contact-line .cc{font-family:var(--disp);font-weight:900;text-transform:uppercase;font-size:clamp(18px,2vw,26px);letter-spacing:.04em;width:56px;flex:none}
.contact-line:nth-child(1) .cc{color:var(--bw)}
.contact-line:nth-child(2) .cc{color:var(--sa)}
.contact-line:nth-child(3) .cc{color:var(--zw)}
.contact-line:nth-child(4) .cc{color:var(--zmo)}
.contact-line:nth-child(5) .cc{color:var(--grey)}
.contact-line b{font-weight:700}
.contact-line .muted{margin-left:auto;font-size:14px;text-align:right}
@media(max-width:860px){#contact .wrap{grid-template-columns:1fr}.contact-line .muted{margin-left:0}}

/* ===== footer ===== */
footer{background:var(--ink);color:var(--grey);font-size:14.5px}
footer .wrap{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-top:34px;padding-bottom:34px;flex-wrap:wrap}
footer b{color:var(--white);font-family:var(--disp);font-weight:900;text-transform:uppercase;letter-spacing:.02em;font-size:22px}

/* ===== reveal system ===== */
.rv{opacity:0;transform:translateY(44px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rv.in{opacity:1;transform:none}
.rv.d1{transition-delay:.08s}.rv.d2{transition-delay:.16s}.rv.d3{transition-delay:.24s}.rv.d4{transition-delay:.32s}
/* stagger children */
.stagger>*{opacity:0;transform:translateY(34px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.stagger.in>*{opacity:1;transform:none}
.stagger.in>*:nth-child(1){transition-delay:.05s}
.stagger.in>*:nth-child(2){transition-delay:.13s}
.stagger.in>*:nth-child(3){transition-delay:.21s}
.stagger.in>*:nth-child(4){transition-delay:.29s}
.stagger.in>*:nth-child(5){transition-delay:.37s}
.stagger.in>*:nth-child(6){transition-delay:.45s}
.stagger.in>*:nth-child(n+7){transition-delay:.5s}

/* ===== routing ===== */


.nav-links a.active{color:var(--ink)}

:focus-visible{outline:3px solid var(--zw);outline-offset:3px}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .rv,.stagger>*{opacity:1!important;transform:none!important}
  .hero h1 .line>span,.page-hero h1 .line>span{transform:none!important}
  .hero-mark svg{animation:none}
  .ticker-track{animation:none}
}

/* ---- currency switcher ---- */
.cur-switch{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:38px;padding-bottom:30px;border-bottom:1px solid var(--lgrey)}
.cur-label{font-family:var(--disp);font-weight:600;text-transform:uppercase;letter-spacing:.16em;font-size:13px;color:var(--grey)}
.cur-btns{display:flex;gap:10px;flex-wrap:wrap}
.cur-btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--disp);font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:15px;color:var(--ink);background:var(--white);border:2px solid var(--lgrey);padding:9px 16px;cursor:pointer;transform:skewX(var(--lean));transition:border-color .2s var(--ease),background .2s var(--ease),color .2s var(--ease)}
.cur-btn>*{transform:skewX(6deg)}
.cur-btn small{font-weight:600;color:var(--grey);font-size:12px;letter-spacing:.08em}
.cur-btn:hover{border-color:var(--ink)}
.cur-btn.is-active{background:var(--ink);color:var(--white);border-color:var(--ink)}
.cur-btn.is-active small{color:var(--lgrey)}
.cur-btn .cf{width:20px;height:13px;display:block;flex:none;border:1px solid rgba(0,0,0,.12)}
.cf-bw{background:var(--bw)}.cf-sa{background:var(--sa)}.cf-zw{background:var(--zw)}.cf-zm{background:linear-gradient(180deg,var(--zmr) 60%,var(--zmo))}
.cur-note{font-family:var(--body);font-size:13px;color:var(--grey);margin-left:auto;font-style:italic}
.pkg-price.flip,.pp.flip{animation:priceFlip .45s var(--ease)}
@keyframes priceFlip{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
@media(max-width:680px){.cur-switch{gap:12px}.cur-note{margin-left:0;width:100%}}
@media(prefers-reduced-motion:reduce){.pkg-price.flip,.pp.flip{animation:none}}