/* =========================================================================
   VEZILKA — styles.css  (woven-story / scrollytelling)
   A fixed WebGL "loom" canvas + tinted background sit behind transparent
   chapter sections whose sticky text reveals as you scroll. Theme adapts
   light↔dark per chapter (body.on-dark, set by main.js).
   Fonts: Fraunces (display) · Manrope (body) · JetBrains Mono (labels)
   ========================================================================= */

:root {
  --cream:#fbf6ec; --cream-2:#f3e9d8; --cream-3:#ece0cb;
  --ink:#1a1714; --ink-soft:rgba(26,23,20,0.64);
  --on-dark:#f4efe6; --on-dark-soft:rgba(244,239,230,0.70);
  --red:#c8102e; --red-deep:#9c0c23; --gold:#c8902e; --gold-2:#e0a93f;
  --cobalt:#4658f2; --cyan:#45d0d8;

  --tx:var(--ink); --tx-soft:var(--ink-soft);
  --accent:var(--red-deep); --accent-em:var(--red);
  --scrim:rgba(251,246,236,0.0);

  --serif:'Fraunces',Georgia,serif;
  --sans:'Manrope',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,Menlo,monospace;
  --wrap:1180px; --ease:cubic-bezier(0.22,1,0.36,1);
}
body.on-dark { --tx:var(--on-dark); --tx-soft:var(--on-dark-soft); --accent:var(--cyan); --accent-em:var(--gold-2); }

* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { font-family:var(--sans); color:var(--tx); line-height:1.62; background:#fbf6ec; overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; transition:color .5s ease; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
em { font-style:italic; }
::selection { background:var(--red); color:#fff; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* ---------- fixed loom background ---------- */
#loomBg { position:fixed; inset:0; z-index:0; background:#fbf6ec; transition:background-color .12s linear; }
#loom { position:fixed; inset:0; width:100%; height:100%; z-index:1; display:block; }
.grain { position:fixed; inset:0; z-index:2; pointer-events:none; opacity:0.5; mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E"); }
main { position:relative; z-index:3; }

/* =========================================================================
   PRELOADER
   ========================================================================= */
.loader { position:fixed; inset:0; z-index:200; background:var(--cream); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; transition:opacity .8s var(--ease), visibility .8s; }
.loader.is-done { opacity:0; visibility:hidden; pointer-events:none; }
.loader__weave { display:flex; gap:7px; height:46px; align-items:flex-end; }
.loader__weave span { width:5px; background:var(--red); border-radius:3px; animation:weave 1.1s var(--ease) infinite; }
.loader__weave span:nth-child(2){background:var(--gold);animation-delay:.12s} .loader__weave span:nth-child(3){background:var(--ink);animation-delay:.24s} .loader__weave span:nth-child(4){background:var(--gold);animation-delay:.36s} .loader__weave span:nth-child(5){background:var(--red);animation-delay:.48s}
@keyframes weave { 0%,100%{height:12px} 50%{height:46px} }
.loader__word { font-family:var(--mono); letter-spacing:.5em; text-indent:.5em; font-size:.8rem; color:var(--ink); font-weight:500; }
.loader__pct { font-family:var(--mono); font-size:.72rem; color:rgba(26,23,20,.4); }

.scroll-progress { position:fixed; top:0; left:0; right:0; height:3px; z-index:120; }
.scroll-progress span { display:block; height:100%; width:0; background:linear-gradient(90deg,var(--red),var(--gold)); }

/* =========================================================================
   NAV
   ========================================================================= */
.nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:18px clamp(20px,5vw,48px); transition:background .4s, backdrop-filter .4s, box-shadow .4s, padding .4s; }
.nav.is-scrolled { background:rgba(251,246,236,0.82); backdrop-filter:blur(14px) saturate(1.2); -webkit-backdrop-filter:blur(14px) saturate(1.2); box-shadow:0 1px 0 rgba(26,23,20,.08); padding-top:12px; padding-bottom:12px; }
body.on-dark .nav.is-scrolled { background:rgba(14,13,19,0.7); box-shadow:0 1px 0 rgba(255,255,255,.08); }
.nav__brand { display:flex; align-items:center; gap:11px; font-family:var(--mono); font-weight:700; letter-spacing:.18em; font-size:.92rem; color:var(--tx); }
.nav__mark { height:30px; width:auto; object-fit:contain; transition:opacity .3s; }
body.on-dark .nav__mark { opacity:0; }
.nav__links { display:flex; gap:30px; }
.nav__links a { font-size:.92rem; font-weight:500; color:var(--tx-soft); position:relative; transition:color .25s; }
.nav__links a::after { content:''; position:absolute; left:0; bottom:-5px; height:1.5px; width:0; background:var(--accent-em); transition:width .3s var(--ease); }
.nav__links a:hover { color:var(--tx); } .nav__links a:hover::after { width:100%; }
.lang { font-family:var(--mono); font-size:.72rem; font-weight:700; letter-spacing:.08em; color:var(--tx-soft); background:transparent; border:1.5px solid color-mix(in srgb, var(--tx) 26%, transparent); border-radius:100px; padding:.42em .8em; cursor:pointer; transition:color .25s, border-color .25s, background .25s; line-height:1; }
.lang:hover { color:var(--tx); border-color:var(--tx); }
.lang--solo { display:none; margin-left:auto; margin-right:12px; }
@media (max-width:900px){ .lang--solo{ display:inline-flex; } }
.nav__burger { display:none; flex-direction:column; gap:6px; background:none; border:0; cursor:pointer; padding:8px; }
.nav__burger span { width:26px; height:2px; background:var(--tx); transition:transform .35s var(--ease), opacity .3s; }
.nav__burger.is-open span:first-child { transform:translateY(8px) rotate(45deg); }
.nav__burger.is-open span:last-child { transform:translateY(0) rotate(-45deg); }
.btn { font-family:var(--sans); font-weight:600; font-size:.95rem; display:inline-flex; align-items:center; gap:.5em; padding:.78em 1.5em; border-radius:100px; transition:transform .4s var(--ease), background .3s, color .3s, box-shadow .3s; cursor:pointer; border:1.5px solid transparent; white-space:nowrap; }
.btn--pill { background:var(--ink); color:var(--cream); } .btn--pill:hover { background:var(--red); transform:translateY(-2px); }
body.on-dark .btn--pill { background:var(--cream); color:var(--ink); } body.on-dark .btn--pill:hover { background:var(--red); color:#fff; }
.btn--solid { background:var(--red); color:#fff; box-shadow:0 12px 30px -12px rgba(200,16,46,.6); } .btn--solid:hover { background:var(--red-deep); transform:translateY(-2px); }
.btn--ghost { border-color:currentColor; color:var(--tx); } .btn--ghost:hover { background:var(--tx); color:var(--cream); transform:translateY(-2px); }
body.on-dark .btn--ghost:hover { color:var(--ink); }

.mobile-menu { position:fixed; inset:0; z-index:99; background:var(--cream); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px; opacity:0; visibility:hidden; transition:opacity .4s, visibility .4s; }
.mobile-menu.is-open { opacity:1; visibility:visible; }
.mobile-menu a { font-family:var(--serif); font-size:1.7rem; font-weight:500; color:var(--ink); }
.mobile-menu .mm-cta { font-family:var(--sans); font-size:1rem; background:var(--red); color:#fff; padding:.7em 1.6em; border-radius:100px; }

/* =========================================================================
   CHAPTERS (scrollytelling)
   ========================================================================= */
.ch { height:calc(var(--h,140) * 1vh); position:relative; }
.ch__inner { position:sticky; top:0; height:100vh; height:100svh; display:flex; padding:0 clamp(22px,7vw,110px); }
.ch__inner--center { align-items:center; justify-content:center; text-align:center; }
.ch__inner--left { align-items:center; justify-content:flex-start; text-align:left; }
.ch__inner--end { align-items:flex-end; justify-content:center; text-align:center; padding-bottom:clamp(40px,10vh,96px); }

/* sectors chapter (desktop): headline at top, particle icons in the middle, cards at bottom */
@media (min-width:901px){
  #panels .ch__inner { align-items:stretch; padding-top:clamp(86px,12vh,128px); padding-bottom:clamp(34px,6vh,64px); }
  #panels .ch__text { display:flex; flex-direction:column; height:100%; }
  #panels .ch__text::before { display:none; }
  #panels .sectors { margin-top:auto; }
}

.ch__text { position:relative; max-width:560px; }
.ch__text--wide { max-width:1080px; }
.ch__inner--center .ch__text { margin:0 auto; }
.ch__text::before { content:''; position:absolute; inset:-22% -16%; z-index:-1; background:radial-gradient(ellipse 75% 70% at 50% 50%, var(--scrim) 38%, transparent 82%); filter:blur(14px); }

/* reveal: driven by .ch.is-active */
.rv, .reveal-cue, .reveal-mark { opacity:0; transform:translateY(26px); transition:opacity .85s var(--ease), transform .9s var(--ease); }
.ch.is-active .rv, .ch.is-active .reveal-cue, .ch.is-active .reveal-mark { opacity:1; transform:none; }
.ch.is-active .ch__text .rv:nth-child(2){transition-delay:.07s}
.ch.is-active .ch__text .rv:nth-child(3){transition-delay:.14s}
.ch.is-active .ch__text .rv:nth-child(4){transition-delay:.21s}
.ch.is-active .ch__text .rv:nth-child(5){transition-delay:.28s}

/* ---------- typography ---------- */
.display { font-family:var(--serif); font-weight:500; font-size:clamp(2.1rem,5.6vw,4.4rem); line-height:1.03; letter-spacing:-.018em; color:var(--tx); }
.display--mid { font-size:clamp(2rem,4.6vw,3.6rem); }
.display em { color:var(--accent-em); font-style:italic; }
.lead { font-size:clamp(1.05rem,1.6vw,1.3rem); line-height:1.62; color:var(--tx-soft); margin-top:1.3em; max-width:52ch; }
.lead--center { margin-left:auto; margin-right:auto; }
.lead strong { color:var(--tx); font-weight:600; }
.eyebrow { font-family:var(--mono); font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--accent); display:inline-flex; align-items:center; gap:.7em; margin-bottom:1.4em; font-weight:500; }
.eyebrow i { width:9px; height:9px; background:var(--accent-em); transform:rotate(45deg); box-shadow:-13px 0 0 -1px var(--gold); flex:none; }
.eyebrow--cool { color:var(--cyan); } .eyebrow--cool i { background:var(--cobalt); box-shadow:-13px 0 0 -1px var(--cyan); }
.cyr { font-family:var(--serif); font-style:italic; }
.micro { font-family:var(--mono); font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--tx-soft); margin-top:1.4em; }

/* ---------- opening cues ---------- */
.cue { font-family:var(--serif); font-weight:400; font-size:clamp(1.5rem,3.6vw,2.7rem); line-height:1.2; letter-spacing:-.01em; color:var(--tx); max-width:18ch; margin:0 auto; }
.cue--lg { font-size:clamp(1.7rem,4.4vw,3.2rem); }
.brandline { font-family:var(--mono); text-transform:uppercase; letter-spacing:.3em; font-size:clamp(.64rem,1.6vw,.92rem); color:var(--accent); font-weight:500; display:inline-flex; align-items:center; gap:.9em; }
.brandline::before,.brandline::after { content:''; width:clamp(18px,5vw,44px); height:1px; background:linear-gradient(90deg,transparent,var(--accent-em)); }
.brandline::after { background:linear-gradient(90deg,var(--accent-em),transparent); }
.scrollhint { margin-top:26px; display:flex; flex-direction:column; align-items:center; gap:8px; font-family:var(--mono); font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--tx-soft); }
.scrollhint i { width:1px; height:30px; background:linear-gradient(var(--accent-em),transparent); position:relative; overflow:hidden; }
.scrollhint i::after { content:''; position:absolute; top:-10px; left:0; width:1px; height:11px; background:var(--accent-em); animation:hintRun 1.8s var(--ease) infinite; }
@keyframes hintRun { 0%{top:-12px} 100%{top:32px} }
.close-cta { display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:22px; }

/* ---------- network route ---------- */
.route { display:inline-flex; align-items:center; gap:.7em; margin-top:1.5em; font-family:var(--serif); font-size:clamp(1.1rem,2.2vw,1.6rem); font-weight:600; }
.route span { color:var(--tx); } .route b { color:var(--accent-em); font-weight:400; }

/* ---------- stats ---------- */
.stats { display:flex; flex-wrap:wrap; gap:clamp(22px,4vw,52px); margin:1.6em 0 .4em; }
.stat { display:flex; flex-direction:column; }
.stat__n { font-family:var(--serif); font-weight:600; font-size:clamp(2.4rem,5.4vw,4rem); line-height:.95; color:var(--accent-em); letter-spacing:-.02em; }
.stat__l { font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--tx-soft); margin-top:8px; }

/* ---------- weave list (how) ---------- */
.weave-list { list-style:none; margin-top:1.6em; display:flex; flex-direction:column; gap:14px; }
.weave-list li { padding-left:24px; position:relative; color:var(--tx-soft); font-size:1rem; max-width:46ch; }
.weave-list li::before { content:''; position:absolute; left:0; top:.5em; width:9px; height:9px; background:var(--accent-em); transform:rotate(45deg); box-shadow:0 0 0 2px color-mix(in srgb, var(--scrim), transparent 40%); }
.wl__k { display:block; font-family:var(--serif); font-size:1.18rem; font-weight:600; color:var(--tx); margin-bottom:2px; }

/* ---------- sectors ---------- */
.sectors { display:grid; grid-template-columns:repeat(5,1fr); gap:14px; margin-top:2em; text-align:left; }
.sx { padding:20px 18px; border:1.5px dashed color-mix(in srgb, var(--tx) 28%, transparent); border-radius:12px; transition:border-color .35s var(--ease), transform .45s var(--ease), background .35s; }
.sx:hover { border-color:var(--red); border-style:solid; transform:translateY(-4px); background:color-mix(in srgb, var(--scrim), transparent 35%); }
.sx b { font-family:var(--serif); font-size:1.12rem; font-weight:600; color:var(--tx); display:block; margin-bottom:8px; }
.sx span { font-size:.88rem; color:var(--tx-soft); }
/* sector icons — inline-SVG line marks (brand red, thread weight) */
.sx::before { content:""; display:block; width:34px; height:34px; margin-bottom:14px; background-repeat:no-repeat; background-position:left center; background-size:contain; opacity:.95; }
.sx:nth-child(1)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c8102e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20.5S3.5 15.6 3.5 9.4C3.5 6.6 5.6 4.7 8 4.7c1.7 0 3.2 1 4 2.5.8-1.5 2.3-2.5 4-2.5 2.4 0 4.5 1.9 4.5 4.7 0 6.2-8.5 11.1-8.5 11.1Z'/%3E%3C/svg%3E"); }
.sx:nth-child(2)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c8102e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 3 14h9l-1 8 10-12h-9l1-8z'/%3E%3C/svg%3E"); }
.sx:nth-child(3)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c8102e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 6.6C10.5 5.4 8.4 4.8 6.1 4.8c-.9 0-1.7.1-2.6.3v12.6c.9-.2 1.7-.3 2.6-.3 2.3 0 4.4.6 5.9 1.8'/%3E%3Cpath d='M12 6.6c1.5-1.2 3.6-1.8 5.9-1.8.9 0 1.7.1 2.6.3v12.6c-.9-.2-1.7-.3-2.6-.3-2.3 0-4.4.6-5.9 1.8'/%3E%3Cpath d='M12 6.6v12.6'/%3E%3C/svg%3E"); }
.sx:nth-child(4)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c8102e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21V11'/%3E%3Cpath d='M12 13.6C12 9.7 8.8 7 4.6 7c0 3.9 3.2 6.6 7.4 6.6Z'/%3E%3Cpath d='M12 12C12 8.3 15 5.7 19 5.7c0 3.7-3 6.3-7 6.3Z'/%3E%3C/svg%3E"); }
.sx:nth-child(5)::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c8102e' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 21h17'/%3E%3Cpath d='M12 3 4 7.5h16Z'/%3E%3Cpath d='M5.6 10.6v7.6M9 10.6v7.6M15 10.6v7.6M18.4 10.6v7.6'/%3E%3Cpath d='M4.4 10.6h15.2'/%3E%3C/svg%3E"); }

/* ---------- pillars ---------- */
.pillars { display:flex; flex-wrap:wrap; justify-content:center; gap:14px; margin:1.8em 0 .4em; }
.pillars span { font-family:var(--serif); font-size:clamp(1.05rem,2vw,1.5rem); font-weight:600; color:var(--cyan); padding:.4em 1em; border:1.5px dashed color-mix(in srgb, var(--cyan) 40%, transparent); border-radius:100px; }

/* ---------- vision ---------- */
.vision__big { font-family:var(--serif); font-weight:600; font-style:italic; font-size:clamp(1.7rem,4.4vw,3rem); line-height:1.1; margin-top:.6em; background:linear-gradient(100deg,var(--red),var(--gold)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }

/* =========================================================================
   FOOTER (opaque — covers the canvas)
   ========================================================================= */
.foot { position:relative; z-index:4; background:var(--cream-3); color:var(--ink); padding:clamp(64px,9vw,110px) 0 40px; overflow:hidden; }
.wrap { width:100%; max-width:var(--wrap); margin:0 auto; padding:0 clamp(20px,5vw,48px); }
.foot__top { display:flex; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.foot__brand { display:flex; flex-direction:column; gap:16px; max-width:320px; }
.foot__mark { height:60px; width:auto; object-fit:contain; }
.foot__line { font-family:var(--serif); font-size:1.35rem; font-weight:500; line-height:1.25; color:var(--ink); }
.foot__links { display:flex; gap:clamp(40px,8vw,90px); flex-wrap:wrap; }
.foot__col { display:flex; flex-direction:column; gap:10px; }
.foot__col h4 { font-family:var(--mono); font-size:.7rem; letter-spacing:.18em; text-transform:uppercase; color:var(--red-deep); margin-bottom:6px; }
.foot__col a { color:var(--ink-soft); font-size:.95rem; transition:color .25s; } .foot__col a:hover { color:var(--red); }
.foot__wordmark { font-family:var(--serif); font-weight:700; text-align:center; font-size:clamp(3.4rem,19vw,15rem); line-height:1; letter-spacing:-.02em; color:transparent; -webkit-text-stroke:1.5px rgba(26,23,20,.18); margin:clamp(24px,4vw,48px) 0 clamp(30px,5vw,56px); user-select:none; }
.foot__lockup { background:#fff; border:1px solid rgba(26,23,20,.08); border-radius:12px; padding:clamp(18px,3vw,30px) clamp(20px,4vw,44px); max-width:920px; margin:0 auto; box-shadow:0 14px 36px -22px rgba(0,0,0,.22); }
.foot__lockup img { width:100%; }
.foot__disclaimer { max-width:760px; margin:clamp(34px,5vw,50px) auto 0; text-align:center; font-size:.78rem; line-height:1.6; color:rgba(26,23,20,.4); }
.foot__legal { text-align:center; font-family:var(--mono); font-size:.7rem; color:rgba(26,23,20,.4); margin-top:20px; letter-spacing:.04em; }
.foot__socials { display:flex; gap:14px; flex-wrap:wrap; margin-top:8px; }
.foot__socials a { font-family:var(--mono); font-size:.8rem; color:var(--ink-soft); } .foot__socials a:hover { color:var(--red); }

/* =========================================================================
   SUBPAGES (news / training / contact) — own hero animation + content
   ========================================================================= */
.rv.in { opacity:1; transform:none; }
.subpage #loomBg { background:var(--cream); }
.phero-sec { position:relative; height:90vh; height:90svh; min-height:560px; display:flex; align-items:flex-end; overflow:hidden; }
#phero { position:absolute; inset:0; width:100%; height:100%; z-index:1; }
.phero-overlay { position:relative; z-index:2; width:100%; max-width:var(--wrap); margin:0 auto; padding:0 clamp(22px,6vw,60px) clamp(56px,11vh,116px); text-align:center; }
.phero-overlay .eyebrow { justify-content:center; }
.phero-title { font-family:var(--serif); font-weight:600; font-size:clamp(2.6rem,8vw,5.8rem); line-height:.98; letter-spacing:-.02em; color:var(--ink); }
.phero-sub { font-family:var(--sans); font-size:clamp(1rem,1.7vw,1.25rem); color:var(--ink-soft); max-width:54ch; margin:1.1em auto 0; }

.page-sec { position:relative; z-index:4; background:var(--cream); padding:clamp(60px,9vw,118px) 0; }
.page-sec.band { background-color:#0e0d13; background-image:radial-gradient(70% 90% at 80% 0%, rgba(70,88,242,0.16), rgba(14,13,19,0) 60%); color:var(--on-dark); }
.page-h { font-family:var(--serif); font-weight:500; font-size:clamp(1.9rem,4.6vw,3.4rem); line-height:1.04; letter-spacing:-.015em; color:var(--ink); max-width:20ch; }
.page-sec.band .page-h { color:var(--on-dark); }
.page-sec .lead { color:var(--ink-soft); } .page-sec.band .lead { color:var(--on-dark-soft); }
.page-sec.band .eyebrow { color:var(--cyan); } .page-sec.band .eyebrow i { background:var(--cobalt); box-shadow:-13px 0 0 -1px var(--cyan); }

/* news */
.news-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:clamp(34px,5vw,56px); }
.ncard { display:flex; flex-direction:column; border:1.5px solid rgba(26,23,20,.1); border-radius:14px; overflow:hidden; background:rgba(255,255,255,.55); transition:transform .45s var(--ease), box-shadow .45s, border-color .35s; }
.ncard:hover { transform:translateY(-6px); box-shadow:0 28px 55px -30px rgba(26,23,20,.4); border-color:var(--red); }
.ncard__img { aspect-ratio:4/3; background-size:cover; background-position:center; background-color:var(--cream-3); }
.ncard__body { padding:18px 20px 20px; display:flex; flex-direction:column; gap:8px; flex:1; }
.ncard__meta { font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--red-deep); }
.ncard h3 { font-family:var(--serif); font-size:1.16rem; font-weight:600; line-height:1.22; color:var(--ink); }
.ncard__more { margin-top:auto; font-size:.84rem; font-weight:600; color:var(--red); }
.news-foot { text-align:center; margin-top:clamp(36px,5vw,52px); }

/* training */
.tracks { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:clamp(34px,5vw,52px); }
.track { border:1.5px dashed rgba(26,23,20,.22); border-radius:14px; padding:clamp(22px,3vw,32px); background:rgba(255,255,255,.45); }
.track__badge { display:inline-block; font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; padding:.32em .75em; border-radius:100px; margin-bottom:13px; }
.track__badge--now { background:var(--red); color:#fff; } .track__badge--soon { background:rgba(26,23,20,.1); color:var(--ink-soft); }
.track h3 { font-family:var(--serif); font-size:1.32rem; font-weight:600; margin-bottom:8px; }
.track p { color:var(--ink-soft); font-size:.98rem; }
.schedule { list-style:none; margin-top:clamp(34px,5vw,52px); border-top:1.5px dashed rgba(26,23,20,.2); }
.schedule li { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 18px; padding:18px 4px; border-bottom:1.5px dashed rgba(26,23,20,.2); }
.schedule b { font-family:var(--serif); font-size:1.18rem; font-weight:600; flex:1 1 240px; }
.schedule span { font-family:var(--mono); font-size:.76rem; letter-spacing:.06em; color:var(--ink-soft); text-transform:uppercase; }
.schedule .sch-month { color:var(--red-deep); }
.train-note { margin-top:clamp(28px,4vw,40px); font-size:.95rem; color:var(--ink-soft); }
/* schedule sits inside a dark band → light text + light dividers */
.page-sec.band .schedule, .page-sec.band .schedule li { border-color:rgba(244,239,230,.2); }
.page-sec.band .schedule span { color:var(--on-dark-soft); }
.page-sec.band .schedule .sch-month { color:var(--gold-2); }
.page-sec.band .train-note { color:var(--on-dark-soft); }

/* contact */
.inquiry { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:clamp(34px,5vw,52px); }
.iq { border:1.5px solid rgba(244,239,230,.16); border-radius:14px; padding:clamp(22px,3vw,32px); transition:transform .45s var(--ease), border-color .35s, background .35s; }
.iq:hover { transform:translateY(-5px); border-color:var(--cyan); background:rgba(255,255,255,.04); }
.iq h3 { font-family:var(--serif); font-size:1.28rem; font-weight:600; margin-bottom:8px; color:var(--on-dark); }
.iq p { color:var(--on-dark-soft); font-size:.95rem; margin-bottom:14px; }
.iq a { font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--cyan); }
.contact-meta { display:flex; flex-wrap:wrap; gap:clamp(24px,5vw,64px); margin-top:clamp(40px,6vw,64px); }
.contact-meta .cm h4 { font-family:var(--mono); font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color:var(--cyan); margin-bottom:10px; }
.contact-meta .cm a, .contact-meta .cm p { color:var(--on-dark-soft); font-size:1rem; display:block; margin-bottom:4px; }
.contact-meta .cm a:hover { color:var(--on-dark); }
.socials { display:flex; gap:14px; flex-wrap:wrap; }

@media (max-width:900px){ .news-grid{grid-template-columns:repeat(2,1fr)} .tracks{grid-template-columns:1fr} .inquiry{grid-template-columns:1fr} }
@media (max-width:560px){ .news-grid{grid-template-columns:1fr} }

/* =========================================================================
   RESPONSIVE
   ========================================================================= */
@media (max-width:900px){
  .nav__links,.nav__right{display:none} .nav__burger{display:flex}
  .sectors{grid-template-columns:repeat(2,1fr)}
  .ch__inner--left{justify-content:center; text-align:left}
  .foot__top{flex-direction:column}
}
@media (max-width:560px){
  .sectors{grid-template-columns:repeat(2,1fr); gap:10px; margin-top:1.4em}
  .sx{padding:13px 12px} .sx::before{width:26px; height:26px; margin-bottom:8px} .sx b{font-size:1rem} .sx span{font-size:.8rem}
  .ch__text{max-width:100%}
  .stats{gap:20px}
}

/* =========================================================================
   REDUCED MOTION — collapse the scrollytelling to a readable static page
   ========================================================================= */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  #loom{opacity:.5}
  .ch{height:auto!important}
  .ch__inner{position:relative; height:auto; min-height:60vh; padding-top:80px; padding-bottom:80px}
  .rv,.reveal-cue,.reveal-mark{opacity:1!important; transform:none!important}
  .scrollhint{display:none}
}
