/* Pivot Point Academy Pakistan · design system (Code & Fable) */

:root{
  --ink:#0c0a08;
  --coal:#161310;
  --coal-2:#1e1a15;
  --ivory:#f4ede2;
  --ivory-dim:#cfc5b4;
  --mute:#9a8d7b;
  --gold:#c9a05a;
  --gold-hi:#e8c37a;
  --copper:#b06a3b;
  --line:rgba(201,160,90,.22);
  --grad:linear-gradient(105deg,#b06a3b 0%,#c9a05a 45%,#e8c37a 100%);
  --serif:'Fraunces',Georgia,serif;
  --sans:'Manrope',-apple-system,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html.lenis-like{scroll-behavior:auto}
body{
  background:var(--ink);
  color:var(--ivory);
  font-family:var(--sans);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
::selection{background:var(--gold);color:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
.serif{font-family:var(--serif)}
.grain::after{
  content:"";position:fixed;inset:-100%;z-index:1200;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 9s steps(6) infinite;
}
@keyframes grain{
  0%,100%{transform:translate(0,0)}20%{transform:translate(2%,3%)}40%{transform:translate(-2%,1%)}
  60%{transform:translate(3%,-2%)}80%{transform:translate(-3%,-3%)}
}
/* ---------- preloader ---------- */
#loader{position:fixed;inset:0;z-index:2000;background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px;transition:opacity .7s ease,visibility .7s}
#loader.done{opacity:0;visibility:hidden}
.loader-mark{font-family:var(--serif);font-weight:300;letter-spacing:.42em;text-indent:.42em;font-size:clamp(15px,2.4vw,22px);color:var(--ivory);text-transform:uppercase;display:flex;overflow:hidden}
.loader-mark span{display:inline-block;transform:translateY(110%);animation:lrise .8s cubic-bezier(.2,.65,.2,1) forwards}
@keyframes lrise{to{transform:translateY(0)}}
.loader-sub{font-size:10px;letter-spacing:.5em;text-indent:.5em;text-transform:uppercase;color:var(--gold);opacity:0;animation:lfade 1s .6s forwards}
@keyframes lfade{to{opacity:1}}
.loader-bar{width:min(220px,50vw);height:1px;background:rgba(255,255,255,.12);overflow:hidden}
.loader-bar i{display:block;height:100%;width:0;background:var(--grad);animation:lbar 1.6s .3s cubic-bezier(.6,0,.2,1) forwards}
@keyframes lbar{to{width:100%}}
/* ---------- progress + cursor ---------- */
#scrollbar{position:fixed;top:0;left:0;height:2px;width:0;background:var(--grad);z-index:1500}
#cursor{position:fixed;width:10px;height:10px;border-radius:50%;background:var(--gold);z-index:1600;pointer-events:none;transform:translate(-50%,-50%);transition:width .25s,height .25s,opacity .3s;mix-blend-mode:difference;opacity:0}
@media(hover:hover) and (pointer:fine){#cursor{opacity:1}}
#cursor.big{width:52px;height:52px;background:var(--ivory)}
/* ---------- nav ---------- */
header{position:fixed;top:0;left:0;right:0;z-index:1000;transition:background .45s,backdrop-filter .45s,padding .45s,border-color .45s;border-bottom:1px solid transparent}
header.scrolled{background:rgba(12,10,8,.82);backdrop-filter:blur(14px);border-color:rgba(255,255,255,.06)}
.nav-in{max-width:1500px;margin:0 auto;padding:22px clamp(20px,4vw,54px);display:flex;align-items:center;justify-content:space-between;gap:20px;transition:padding .45s}
header.scrolled .nav-in{padding-top:14px;padding-bottom:14px}
.brand{display:flex;flex-direction:column;line-height:1.15;z-index:1101}
.brand b{font-family:var(--serif);font-weight:500;letter-spacing:.34em;font-size:15px;text-transform:uppercase;color:var(--ivory)}
.brand small{font-size:8.5px;letter-spacing:.52em;text-transform:uppercase;color:var(--gold)}
nav.desktop{display:flex;gap:clamp(16px,2.4vw,36px);align-items:center}
nav.desktop a{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ivory-dim);position:relative;padding:6px 0;transition:color .3s}
nav.desktop a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:var(--grad);transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.6,0,.2,1)}
nav.desktop a:hover{color:var(--ivory)}
nav.desktop a:hover::after{transform:scaleX(1);transform-origin:left}
.btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--gold);color:var(--ink);background:var(--grad);padding:13px 26px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;border-radius:2px;position:relative;overflow:hidden;transition:transform .3s,box-shadow .3s;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px -12px rgba(201,160,90,.55)}
.btn.ghost{background:transparent;color:var(--ivory);border-color:rgba(244,237,226,.3)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold-hi);box-shadow:none}
.btn.sm{padding:10px 20px;font-size:11px}
.burger{display:none;background:none;border:none;z-index:1101;width:34px;height:26px;position:relative}
.burger span{position:absolute;left:0;width:100%;height:1.5px;background:var(--ivory);transition:.35s}
.burger span:nth-child(1){top:4px}.burger span:nth-child(2){top:12px}.burger span:nth-child(3){top:20px}
.burger.open span:nth-child(1){top:12px;transform:rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){top:12px;transform:rotate(-45deg)}
#mobileMenu{position:fixed;inset:0;background:rgba(12,10,8,.97);backdrop-filter:blur(10px);z-index:1100;display:flex;flex-direction:column;justify-content:center;padding:0 8vw;gap:6px;clip-path:inset(0 0 100% 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)}
#mobileMenu.open{clip-path:inset(0 0 0% 0)}
#mobileMenu a{font-family:var(--serif);font-size:clamp(30px,8vw,52px);font-weight:300;color:var(--ivory);padding:8px 0;border-bottom:1px solid rgba(255,255,255,.07);display:flex;justify-content:space-between;align-items:center}
#mobileMenu a i{font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.3em;color:var(--gold);text-transform:uppercase}
@media(max-width:960px){nav.desktop,header .btn{display:none}.burger{display:block}}
/* ---------- hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.12);animation:kenburns 18s ease-out forwards}
@keyframes kenburns{to{transform:scale(1.02)}}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(to bottom,rgba(12,10,8,.92) 0%,rgba(12,10,8,.35) 14%,transparent 26%),
  linear-gradient(to top,rgba(12,10,8,.96) 0%,rgba(12,10,8,.45) 40%,rgba(12,10,8,.35) 100%),
  linear-gradient(100deg,rgba(12,10,8,.9) 0%,rgba(12,10,8,.25) 55%,rgba(12,10,8,.05) 100%)}
.hero-in{position:relative;z-index:2;max-width:1500px;margin:0 auto;width:100%;padding:0 clamp(20px,4vw,54px) clamp(90px,12vh,150px)}
.kicker{display:inline-flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:26px}
.kicker::before{content:"";width:46px;height:1px;background:var(--grad)}
.hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(44px,8.2vw,124px);line-height:1.02;letter-spacing:-.01em;max-width:12ch}
.hero h1 em{font-style:italic;font-weight:400;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}
.hero h1 .w>span{display:inline-block;transform:translateY(112%)}
.hero p.lead{margin:30px 0 40px;max-width:52ch;color:var(--ivory-dim);font-size:clamp(15px,1.35vw,18px);font-weight:300}
.hero-cta{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.scroll-cue{position:absolute;right:clamp(20px,4vw,54px);bottom:36px;z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;font-size:9px;letter-spacing:.4em;text-transform:uppercase;color:var(--mute);writing-mode:vertical-rl}
.scroll-cue i{width:1px;height:64px;background:rgba(255,255,255,.15);position:relative;overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;top:-40%;left:0;width:100%;height:40%;background:var(--gold);animation:drop 2s ease-in-out infinite}
@keyframes drop{to{top:110%}}
@media(max-width:760px){.scroll-cue{display:none}}
body.menu-open #mobileBar,body.menu-open #waFloat{display:none}
/* marquee */
.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(22,19,16,.6);overflow:hidden;padding:18px 0;position:relative;z-index:3}
.marquee-track{display:flex;width:max-content;animation:scrollx 36s linear infinite}
.marquee span{font-family:var(--serif);font-style:italic;font-weight:300;font-size:clamp(16px,1.7vw,22px);color:var(--ivory-dim);padding:0 34px;white-space:nowrap}
.marquee span b{font-style:normal;font-weight:400;color:var(--gold);padding-left:34px}
@keyframes scrollx{to{transform:translateX(-50%)}}
/* ---------- shared section chrome ---------- */
section{position:relative}
.wrap{max-width:1500px;margin:0 auto;padding:clamp(90px,12vh,160px) clamp(20px,4vw,54px)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:clamp(40px,6vh,70px);flex-wrap:wrap}
.sec-head h2{font-family:var(--serif);font-weight:300;font-size:clamp(34px,4.6vw,64px);line-height:1.05;max-width:16ch}
.sec-head h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.sec-head .num{font-size:11px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;display:flex;align-items:center;gap:14px;margin-bottom:16px}
.sec-head .num::after{content:"";width:52px;height:1px;background:var(--grad)}
.sec-head p{max-width:44ch;color:var(--mute);font-size:15px;font-weight:300}
.reveal{opacity:0;transform:translateY(46px)}
/* ---------- manifesto ---------- */
#manifesto{background:var(--ink)}
.manifesto-text{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3.6vw,52px);line-height:1.28;max-width:26ch;color:var(--ivory)}
.manifesto-text em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.manifesto-text .mw{opacity:.14;transition:opacity .5s ease}
.manifesto-text .mw.on{opacity:1}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:clamp(50px,8vh,90px)}
.stat{background:var(--ink);padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;gap:8px}
.stat b{font-family:var(--serif);font-weight:300;font-size:clamp(38px,4.4vw,68px);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat small{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);line-height:1.7}
@media(max-width:900px){.stats{grid-template-columns:1fr 1fr}}
/* ---------- courses horizontal ---------- */
#courses{background:var(--coal)}
.courses-pin{overflow:hidden}
.courses-track{display:flex;gap:clamp(20px,2.6vw,40px);padding:0 clamp(20px,4vw,54px) clamp(90px,12vh,150px);width:max-content}
.course-card{position:relative;width:min(78vw,880px);background:var(--coal-2);border:1px solid rgba(255,255,255,.06);border-radius:4px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;min-height:480px;transition:border-color .4s}
.course-card:hover{border-color:var(--line)}
.course-media{position:relative;overflow:hidden;min-height:300px}
.course-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.65,.2,1);filter:saturate(.92)}
.course-card:hover .course-media img{transform:scale(1.06)}
.course-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,transparent 60%,rgba(30,26,21,.55));pointer-events:none}
.course-body{padding:clamp(26px,3vw,48px);display:flex;flex-direction:column;justify-content:flex-end;gap:16px;position:relative}
.course-no{position:absolute;top:18px;right:26px;font-size:clamp(60px,6vw,96px);font-weight:300;color:transparent;-webkit-text-stroke:1px rgba(201,160,90,.35);line-height:1}
.course-body h3{font-family:var(--serif);font-weight:300;font-size:clamp(30px,3.2vw,46px);line-height:1.05}
.course-body h3 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.course-body p{color:var(--ivory-dim);font-size:14.5px;font-weight:300;max-width:42ch}
.course-meta{display:flex;gap:10px;flex-wrap:wrap}
.course-meta span{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-hi);border:1px solid var(--line);padding:7px 13px;border-radius:99px}
.course-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
@media(max-width:900px){
  .courses-track{width:auto;flex-direction:column;padding-left:clamp(20px,4vw,54px);padding-right:clamp(20px,4vw,54px)}
  .course-card{width:100%;grid-template-columns:1fr;min-height:0}
  .course-media{aspect-ratio:16/10}
}
/* ---------- curriculum overlay ---------- */
.curr-overlay{position:fixed;inset:0;z-index:1300;background:rgba(12,10,8,.55);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s}
.curr-overlay.open{opacity:1;visibility:visible}
.curr-panel{position:absolute;top:0;right:0;height:100%;width:min(680px,94vw);background:var(--coal-2);border-left:1px solid var(--line);transform:translateX(102%);transition:transform .6s cubic-bezier(.7,0,.2,1);overflow-y:auto;padding:clamp(28px,4vw,60px)}
.curr-overlay.open .curr-panel{transform:translateX(0)}
.curr-close{position:sticky;top:0;float:right;background:none;border:1px solid rgba(255,255,255,.18);color:var(--ivory);width:44px;height:44px;border-radius:50%;font-size:17px;transition:.3s;z-index:2}
.curr-close:hover{border-color:var(--gold);color:var(--gold);transform:rotate(90deg)}
.curr-panel .kicker{margin-bottom:14px}
.curr-panel h3{font-family:var(--serif);font-weight:300;font-size:clamp(30px,4vw,44px);margin-bottom:8px}
.curr-panel h3 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.curr-panel>p{color:var(--mute);font-size:14px;margin-bottom:26px;max-width:52ch}
.curr-module{border-top:1px solid rgba(255,255,255,.08);padding:20px 0}
.curr-module h4{display:flex;gap:16px;align-items:baseline;font-weight:500;font-size:15px;letter-spacing:.04em;color:var(--ivory);margin-bottom:8px}
.curr-module h4 i{font-style:normal;font-family:var(--serif);color:var(--gold);font-size:13px}
.curr-module p{color:var(--mute);font-size:13.5px;font-weight:300;padding-left:34px}
.curr-panel .btn{margin-top:28px}
/* ---------- philosophy ---------- */
#why{background:var(--ink);overflow:hidden}
.philo{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,6vw,90px);align-items:center}
.philo blockquote{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,50px);line-height:1.25}
.philo blockquote em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.philo cite{display:block;margin-top:26px;font-style:normal;font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--gold)}
.philo cite small{display:block;margin-top:6px;color:var(--mute);letter-spacing:.2em}
.philo-copy p{color:var(--ivory-dim);font-weight:300;font-size:15px;margin-bottom:18px}
.philo-copy .tag{display:inline-block;font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);border:1px solid var(--line);padding:9px 18px;border-radius:99px;margin-top:8px}
.philo-media{position:relative;border-radius:4px;overflow:hidden;margin-top:clamp(50px,8vh,90px)}
.philo-media img{width:100%;height:clamp(300px,52vh,540px);object-fit:cover}
.philo-media::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,10,8,.55),transparent 55%)}
.philo-media figcaption{position:absolute;bottom:20px;left:24px;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--ivory-dim)}
@media(max-width:900px){.philo{grid-template-columns:1fr}}
/* ---------- global network ---------- */
#global{background:var(--coal)}
.globe-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,80px);align-items:center}
.globe-copy p{color:var(--ivory-dim);font-weight:300;font-size:15px;margin-bottom:16px}
.globe-copy .btn{margin-top:14px}
.map-box{position:relative}
.map-box svg{width:100%;height:auto;display:block}
.map-dot{fill:rgba(244,237,226,.16)}
.map-dot.lit{fill:var(--gold);animation:twinkle 3s ease-in-out infinite}
.map-dot.khi{fill:var(--gold-hi)}
@keyframes twinkle{0%,100%{opacity:.55}50%{opacity:1}}
.khi-ring{fill:none;stroke:var(--gold);stroke-width:1;opacity:0;transform-origin:center;animation:ring 2.6s ease-out infinite}
@keyframes ring{0%{opacity:.8;transform:scale(.2)}100%{opacity:0;transform:scale(1.9)}}
.map-label{font-family:var(--sans);font-size:9px;letter-spacing:.24em;fill:var(--gold-hi);text-transform:uppercase}
@media(max-width:900px){.globe-grid{grid-template-columns:1fr}}
/* ---------- masterclasses ---------- */
#masterclasses{background:var(--ink)}
.mc-row{display:flex;gap:clamp(16px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;padding:4px clamp(20px,4vw,54px) 30px;scrollbar-width:none}
.mc-row::-webkit-scrollbar{display:none}
.mc-card{scroll-snap-align:start;flex:0 0 min(340px,80vw);background:var(--coal-2);border:1px solid rgba(255,255,255,.06);border-radius:4px;overflow:hidden;transition:transform .5s cubic-bezier(.2,.65,.2,1),border-color .4s}
.mc-card:hover{transform:translateY(-8px);border-color:var(--line)}
.mc-card figure{aspect-ratio:4/3;overflow:hidden}
.mc-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform 1s}
.mc-card:hover img{transform:scale(1.07)}
.mc-card .mc-body{padding:20px 22px 24px}
.mc-card time{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.mc-card h3{font-family:var(--serif);font-weight:400;font-size:20px;line-height:1.25;margin:8px 0 6px}
.mc-card p{font-size:13px;color:var(--mute);font-weight:300}
/* ---------- campus ---------- */
#campus{background:var(--coal)}
.campus-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(12px,1.6vw,22px)}
.campus-grid figure{border-radius:4px;overflow:hidden;position:relative}
.campus-grid img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.65,.2,1);filter:saturate(.92)}
.campus-grid figure:hover img{transform:scale(1.05)}
.cg-a{grid-column:span 7;aspect-ratio:16/10}
.cg-b{grid-column:span 5;aspect-ratio:4/3.55}
.cg-c{grid-column:span 4;aspect-ratio:1/1}
.cg-d{grid-column:span 4;aspect-ratio:1/1}
.cg-e{grid-column:span 4;aspect-ratio:1/1}
.campus-note{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px;border:1px solid var(--line);border-radius:4px;padding:22px clamp(20px,3vw,36px);background:rgba(201,160,90,.05)}
.campus-note p{font-size:14px;color:var(--ivory-dim);font-weight:300}
.campus-note b{color:var(--gold-hi);font-weight:600}
@media(max-width:760px){.cg-a,.cg-b{grid-column:span 12}.cg-c,.cg-d,.cg-e{grid-column:span 12}}
/* ---------- videos ---------- */
#videos{background:var(--ink)}
.vid-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.8vw,24px)}
.vid-card{position:relative;border-radius:4px;overflow:hidden;cursor:pointer;background:var(--coal-2);border:1px solid rgba(255,255,255,.05)}
.vid-card figure{aspect-ratio:16/9;overflow:hidden;position:relative}
.vid-card img{width:100%;height:100%;object-fit:cover;transition:transform .9s,filter .5s;filter:saturate(.85) brightness(.9)}
.vid-card:hover img{transform:scale(1.06);filter:saturate(1) brightness(1)}
.vid-card .play{position:absolute;inset:0;display:grid;place-items:center}
.vid-card .play i{width:52px;height:52px;border-radius:50%;background:rgba(12,10,8,.55);border:1px solid rgba(244,237,226,.4);display:grid;place-items:center;transition:.35s;backdrop-filter:blur(4px)}
.vid-card .play i::after{content:"";display:block;width:0;height:0;border-left:12px solid var(--ivory);border-top:7px solid transparent;border-bottom:7px solid transparent;margin-left:3px}
.vid-card:hover .play i{background:var(--grad);border-color:transparent;transform:scale(1.1)}
.vid-card:hover .play i::after{border-left-color:var(--ink)}
.vid-card h3{font-size:13px;font-weight:500;padding:14px 16px;color:var(--ivory-dim);line-height:1.45}
@media(max-width:1100px){.vid-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){.vid-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.vid-grid{grid-template-columns:1fr}}
#lightbox{position:fixed;inset:0;z-index:1400;background:rgba(8,7,6,.92);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.4s}
#lightbox.open{opacity:1;visibility:visible}
#lightbox .lb-in{width:min(960px,92vw);aspect-ratio:16/9;position:relative}
#lightbox iframe{width:100%;height:100%;border:0;border-radius:4px}
#lightbox .lb-close{position:absolute;top:-52px;right:0;background:none;border:1px solid rgba(255,255,255,.25);color:var(--ivory);width:42px;height:42px;border-radius:50%;font-size:16px}
/* ---------- scholarships ---------- */
#scholarships{background:var(--coal);position:relative;overflow:hidden}
.sch-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,5vw,80px);align-items:start}
.sch-figure{position:sticky;top:110px;border-radius:4px;overflow:hidden}
.sch-figure img{width:100%;height:clamp(380px,60vh,620px);object-fit:cover}
.sch-figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,10,8,.5),transparent 50%)}
.sch-cards{display:flex;flex-direction:column;gap:16px}
.sch-card{border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:clamp(22px,2.6vw,34px);background:var(--coal-2);transition:border-color .4s,transform .4s}
.sch-card:hover{border-color:var(--line);transform:translateX(6px)}
.sch-card h3{font-family:var(--serif);font-weight:400;font-size:22px;margin-bottom:8px}
.sch-card h3 i{font-style:normal;color:var(--gold);font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;display:block;margin-bottom:10px}
.sch-card p{font-size:14px;color:var(--mute);font-weight:300}
.sch-criteria{margin-top:10px;border-top:1px solid rgba(255,255,255,.07);padding-top:18px}
.sch-criteria h4{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:12px}
.sch-criteria ul{list-style:none;display:flex;flex-direction:column;gap:9px}
.sch-criteria li{font-size:13.5px;color:var(--ivory-dim);font-weight:300;padding-left:22px;position:relative}
.sch-criteria li::before{content:"";position:absolute;left:0;top:8px;width:10px;height:1px;background:var(--gold)}
@media(max-width:900px){.sch-grid{grid-template-columns:1fr}.sch-figure{position:static}}
/* ---------- magazine ---------- */
#magazine{background:var(--ink)}
.mag-row{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(12px,1.6vw,20px)}
.mag-issue{display:block;border:1px solid rgba(255,255,255,.08);border-radius:3px;aspect-ratio:3/4.1;background:linear-gradient(160deg,var(--coal-2),#26201780);position:relative;padding:18px;transition:transform .45s,border-color .4s;overflow:hidden}
.mag-issue:hover{transform:translateY(-8px) rotate(-1deg);border-color:var(--gold)}
.mag-issue::before{content:"";position:absolute;left:0;top:0;bottom:0;width:8px;background:linear-gradient(to right,rgba(0,0,0,.5),transparent)}
.mag-issue b{font-family:var(--serif);font-weight:300;letter-spacing:.18em;font-size:11px;text-transform:uppercase;color:var(--gold-hi);display:block}
.mag-issue span{position:absolute;bottom:16px;left:18px;right:18px;font-family:var(--serif);font-weight:400;font-size:clamp(15px,1.4vw,19px);line-height:1.3;color:var(--ivory)}
.mag-issue i{position:absolute;bottom:16px;right:16px;font-style:normal;font-size:14px;color:var(--gold);opacity:0;transition:.3s;transform:translateX(-6px)}
.mag-issue:hover i{opacity:1;transform:none}
.mag-issue.cover{padding:0}
.mag-issue.cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mag-issue.cover b{display:none}
.mag-issue.cover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:42%;background:linear-gradient(to top,rgba(12,10,8,.92),transparent)}
.mag-issue.cover::before,.mag-issue.cover span,.mag-issue.cover i{z-index:1}
@media(max-width:1000px){.mag-row{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.mag-row{grid-template-columns:repeat(2,1fr)}}
/* ---------- admissions ---------- */
#admissions{background:var(--coal);position:relative;overflow:hidden}
#admissions::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 400px at 85% 20%,rgba(201,160,90,.09),transparent 70%)}
.adm-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(40px,5vw,80px);position:relative}
.adm-copy p{color:var(--ivory-dim);font-weight:300;font-size:15px;margin-bottom:20px;max-width:44ch}
.adm-list{list-style:none;display:flex;flex-direction:column;gap:14px;margin:26px 0}
.adm-list li{display:flex;gap:14px;align-items:baseline;font-size:14px;color:var(--ivory-dim);font-weight:300}
.adm-list li b{font-family:var(--serif);color:var(--gold);font-weight:400;font-size:15px;min-width:26px}
.form-shell{background:rgba(12,10,8,.55);border:1px solid rgba(255,255,255,.09);border-radius:6px;padding:clamp(24px,3vw,44px);backdrop-filter:blur(8px)}
.form-steps{display:flex;gap:8px;margin-bottom:30px}
.form-steps span{flex:1;height:2px;background:rgba(255,255,255,.1);border-radius:2px;position:relative;overflow:hidden}
.form-steps span.active::after{content:"";position:absolute;inset:0;background:var(--grad)}
.fstep{display:none}
.fstep.on{display:block;animation:fin .5s ease}
@keyframes fin{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.fstep h3{font-family:var(--serif);font-weight:400;font-size:24px;margin-bottom:6px}
.fstep>p{font-size:13px;color:var(--mute);margin-bottom:22px}
.pick-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-bottom:24px}
.pick{border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:18px 14px;text-align:center;cursor:pointer;transition:.3s;background:transparent;color:var(--ivory)}
.pick small{display:block;color:var(--mute);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;margin-top:6px}
.pick b{font-family:var(--serif);font-weight:400;font-size:16px}
.pick:hover{border-color:var(--gold)}
.pick.sel{border-color:var(--gold);background:rgba(201,160,90,.1);box-shadow:0 0 0 1px var(--gold) inset}
.field{margin-bottom:16px}
.field label{display:block;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.field input,.field select{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:3px;color:var(--ivory);padding:14px 16px;font-family:inherit;font-size:14px;transition:border-color .3s}
.field input:focus,.field select:focus{outline:none;border-color:var(--gold)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fnav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;gap:12px}
.flink{background:none;border:none;color:var(--mute);font-size:12px;letter-spacing:.2em;text-transform:uppercase;transition:.3s}
.flink:hover{color:var(--ivory)}
.fdone{text-align:center;padding:30px 0}
.fdone .tick{width:74px;height:74px;margin:0 auto 22px;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center}
.fdone .tick svg{width:30px;height:30px}
.fdone .tick path{stroke:var(--gold-hi);stroke-width:2;fill:none;stroke-dasharray:40;stroke-dashoffset:40;animation:tick .8s .2s forwards}
@keyframes tick{to{stroke-dashoffset:0}}
.fdone h3{font-family:var(--serif);font-weight:400;font-size:26px;margin-bottom:10px}
.fdone p{color:var(--mute);font-size:14px;max-width:38ch;margin:0 auto 22px}
@media(max-width:980px){.adm-grid{grid-template-columns:1fr}.pick-grid{grid-template-columns:1fr}.field-row{grid-template-columns:1fr}}
/* ---------- contact + footer ---------- */
#contact{background:var(--ink)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,4vw,70px);align-items:stretch}
.c-item{border-top:1px solid rgba(255,255,255,.09);padding:22px 0}
.c-item small{display:block;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.c-item a,.c-item p{font-family:var(--serif);font-weight:300;font-size:clamp(18px,1.8vw,24px);color:var(--ivory);line-height:1.4;transition:color .3s}
.c-item a:hover{color:var(--gold-hi)}
.socials{display:flex;gap:12px;margin-top:26px}
.socials a{width:46px;height:46px;border:1px solid rgba(255,255,255,.14);border-radius:50%;display:grid;place-items:center;transition:.35s;font-size:13px;color:var(--ivory-dim)}
.socials a:hover{border-color:var(--gold);color:var(--gold-hi);transform:translateY(-3px)}
.map-frame{border:1px solid rgba(255,255,255,.09);border-radius:4px;overflow:hidden;min-height:340px;filter:grayscale(1) invert(.9) contrast(.9);opacity:.85}
.map-frame iframe{width:100%;height:100%;min-height:340px;border:0;display:block}
@media(max-width:880px){.contact-grid{grid-template-columns:1fr}}
footer{border-top:1px solid rgba(255,255,255,.07);background:var(--ink)}
.foot-in{max-width:1500px;margin:0 auto;padding:50px clamp(20px,4vw,54px);display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}
.foot-in p{font-size:12px;color:var(--mute);font-weight:300}
.foot-in p a{color:var(--ivory-dim);border-bottom:1px solid var(--line);transition:.3s}
.foot-in p a:hover{color:var(--gold-hi)}
.foot-nav{display:flex;gap:22px;flex-wrap:wrap}
.foot-nav a{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);transition:.3s}
.foot-nav a:hover{color:var(--gold-hi)}
/* whatsapp float + mobile bar */
#waFloat{position:fixed;right:22px;bottom:22px;z-index:1150;width:58px;height:58px;border-radius:50%;background:#1ebe57;display:grid;place-items:center;box-shadow:0 12px 30px -8px rgba(30,190,87,.55);transition:transform .3s}
#waFloat:hover{transform:scale(1.08)}
#waFloat svg{width:28px;height:28px;fill:#fff}
#mobileBar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:1140;background:rgba(12,10,8,.94);backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.08);padding:10px 14px calc(10px + env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;gap:10px}
#mobileBar .btn{justify-content:center}
@media(max-width:760px){#mobileBar{display:grid}#waFloat{bottom:86px}}
/* back to top */
#toTop{position:fixed;right:26px;bottom:96px;z-index:1150;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.2);background:rgba(12,10,8,.6);color:var(--ivory);opacity:0;visibility:hidden;transition:.4s;font-size:15px}
#toTop.show{opacity:1;visibility:visible}
#toTop:hover{border-color:var(--gold);color:var(--gold-hi)}
@media(max-width:760px){#toTop{display:none}}
/* ---------- brand logo (exact asset from current site) ---------- */
/* exact brand wordmark, reversed to white with true transparency */
.logo-chip{display:inline-flex;align-items:center;line-height:0}
.logo-chip img{height:40px;width:auto;display:block;transition:height .45s}
.brand{gap:7px}
.brand small{padding-left:1px}
header.scrolled .logo-chip img{height:33px}
.loader-logo{animation:lfade .8s .1s both;line-height:0}
.loader-logo img{height:76px;width:auto;display:block}
.foot-logo{display:inline-flex;line-height:0}
.foot-logo img{height:26px;width:auto;display:block}
/* ---------- journal / blog ---------- */
#journal{background:var(--coal)}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.blog-card{background:var(--coal-2);border:1px solid rgba(255,255,255,.06);border-radius:4px;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.2,.65,.2,1),border-color .4s;text-align:left;padding:0;color:var(--ivory)}
.blog-card:hover{transform:translateY(-8px);border-color:var(--line)}
.blog-card figure{aspect-ratio:16/10;overflow:hidden;position:relative}
.blog-card figure::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(22,19,16,.55),transparent 55%)}
.blog-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.9);transition:transform 1s}
.blog-card:hover img{transform:scale(1.06)}
.blog-body{padding:22px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.blog-meta{display:flex;gap:14px;font-size:10px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold)}
.blog-meta .rt{color:var(--mute)}
.blog-body h3{font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.6vw,22px);line-height:1.3}
.blog-body p{font-size:13.5px;color:var(--mute);font-weight:300;flex:1}
.blog-body .read-more{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-hi);display:inline-flex;align-items:center;gap:8px;margin-top:4px}
.blog-card:hover .read-more{text-decoration:underline;text-underline-offset:4px}
@media(max-width:980px){.blog-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.blog-grid{grid-template-columns:1fr}}
/* article reader */
.article-overlay{position:fixed;inset:0;z-index:1350;background:rgba(8,7,6,.7);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s;overflow-y:auto}
.article-overlay.open{opacity:1;visibility:visible}
.article-shell{max-width:820px;margin:6vh auto 8vh;background:var(--coal-2);border:1px solid var(--line);border-radius:6px;overflow:hidden;transform:translateY(36px);transition:transform .55s cubic-bezier(.2,.65,.2,1)}
.article-overlay.open .article-shell{transform:none}
.article-hero{aspect-ratio:21/9;overflow:hidden;position:relative}
.article-hero img{width:100%;height:100%;object-fit:cover}
.article-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,var(--coal-2),transparent 60%)}
.article-close{position:absolute;top:18px;right:18px;z-index:3;background:rgba(12,10,8,.6);border:1px solid rgba(255,255,255,.25);color:var(--ivory);width:44px;height:44px;border-radius:50%;font-size:16px;backdrop-filter:blur(6px);transition:.3s}
.article-close:hover{border-color:var(--gold);color:var(--gold);transform:rotate(90deg)}
.article-body{padding:clamp(26px,4vw,56px);margin-top:-40px;position:relative}
.article-body .blog-meta{margin-bottom:16px}
.article-body h2.title{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3.4vw,42px);line-height:1.12;margin-bottom:20px}
.article-body h2.title em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.article-body h3{font-family:var(--serif);font-weight:400;font-size:21px;margin:30px 0 12px;color:var(--gold-hi)}
.article-body p{font-size:15px;font-weight:300;color:var(--ivory-dim);margin-bottom:14px;line-height:1.75}
.article-body ul{margin:0 0 16px 18px;color:var(--ivory-dim);font-size:14.5px;font-weight:300;line-height:1.8}
.article-body .a-cta{margin-top:30px;padding:24px;border:1px solid var(--line);border-radius:4px;background:rgba(201,160,90,.06);display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.article-body .a-cta p{margin:0;font-size:14px}
/* ---------- faq ---------- */
#faq{background:var(--coal)}
.faq-list{max-width:900px}
.faq-item{border-bottom:1px solid rgba(255,255,255,.08)}
.faq-q{width:100%;background:none;border:none;color:var(--ivory);display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-family:var(--serif);font-weight:400;font-size:clamp(17px,1.7vw,21px);text-align:left;transition:color .3s}
.faq-q:hover{color:var(--gold-hi)}
.faq-q i{font-style:normal;font-size:20px;color:var(--gold);transition:transform .4s;flex-shrink:0}
.faq-item.open .faq-q i{transform:rotate(45deg)}
.faq-a{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.2,.65,.2,1)}
.faq-a p{color:var(--mute);font-size:14.5px;font-weight:300;padding:0 40px 24px 0;line-height:1.75}
/* reduced motion */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
  .hero h1 .w>span{transform:none}
  .manifesto-text .mw{opacity:1}
}

/* =====================================================================
   MULTI-PAGE LAYER (added for the page-by-page build)
   ===================================================================== */
nav.desktop a[aria-current="page"]{color:var(--ivory)}
nav.desktop a[aria-current="page"]::after{transform:scaleX(1)}
#mobileMenu a[aria-current="page"] span{color:var(--gold-hi)}

/* inner page hero */
.page-hero{position:relative;min-height:68svh;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
.page-hero.short{min-height:52svh}
.page-hero-bg{position:absolute;inset:0;z-index:0}
.page-hero-bg img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);animation:kenburns 16s ease-out forwards}
.page-hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(to bottom,rgba(12,10,8,.92) 0%,rgba(12,10,8,.35) 18%,transparent 34%),
  linear-gradient(to top,rgba(12,10,8,.97) 0%,rgba(12,10,8,.55) 45%,rgba(12,10,8,.35) 100%),
  linear-gradient(100deg,rgba(12,10,8,.92) 0%,rgba(12,10,8,.35) 60%,rgba(12,10,8,.1) 100%)}
.page-hero.plain{background:radial-gradient(900px 500px at 80% 10%,rgba(201,160,90,.12),transparent 70%),var(--ink)}
.page-hero .hero-in{padding-bottom:clamp(60px,9vh,110px);padding-top:140px}
.page-hero h1{font-family:var(--serif);font-weight:300;font-size:clamp(40px,6.2vw,96px);line-height:1.03;letter-spacing:-.01em;max-width:16ch}
.page-hero h1 em{font-style:italic;font-weight:400;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.page-hero h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom;padding-bottom:.06em}
.page-hero h1 .w>span{display:inline-block;transform:translateY(112%)}
.page-hero p.lead{margin:26px 0 0;max-width:56ch;color:var(--ivory-dim);font-size:clamp(15px,1.3vw,18px);font-weight:300}
.page-hero .hero-cta{margin-top:34px}
.crumbs{display:flex;flex-wrap:wrap;gap:10px;list-style:none;font-size:10.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--mute);margin-bottom:26px}
.crumbs li+li::before{content:"/";margin-right:10px;color:var(--gold)}
.crumbs a{transition:color .3s}
.crumbs a:hover{color:var(--gold-hi)}
.crumbs [aria-current]{color:var(--ivory-dim)}

/* generic layouts */
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,90px);align-items:center}
.split.top{align-items:start}
.prose p{color:var(--ivory-dim);font-weight:300;font-size:15.5px;line-height:1.8;margin-bottom:18px;max-width:62ch}
.prose h2{font-family:var(--serif);font-weight:300;font-size:clamp(28px,3vw,42px);line-height:1.12;margin-bottom:22px}
.prose h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.media-frame{border-radius:4px;overflow:hidden;position:relative}
.media-frame img{width:100%;height:100%;object-fit:cover}
.media-frame.tall img{aspect-ratio:3/4}
.media-frame.wide img{aspect-ratio:16/9}
.bg-coal{background:var(--coal)}
.bg-ink{background:var(--ink)}
@media(max-width:900px){.split{grid-template-columns:1fr}}

/* course pages */
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:10px}
.fact{background:var(--coal);padding:22px 24px}
.fact small{display:block;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.fact b{font-family:var(--serif);font-weight:400;font-size:19px;color:var(--ivory)}
@media(max-width:900px){.facts{grid-template-columns:1fr 1fr}}
.modules{list-style:none;counter-reset:mod;border-top:1px solid rgba(255,255,255,.08)}
.modules li{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.08)}
.modules .m-no{font-family:var(--serif);font-weight:300;font-size:clamp(34px,3.4vw,52px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(201,160,90,.55)}
.modules h3{font-family:var(--serif);font-weight:400;font-size:clamp(20px,1.9vw,26px);margin-bottom:8px}
.modules p{color:var(--mute);font-size:14.5px;font-weight:300;max-width:62ch}
@media(max-width:640px){.modules li{grid-template-columns:1fr;gap:8px}}
.course-links{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px)}
.course-link{display:grid;grid-template-columns:140px 1fr;gap:20px;align-items:center;background:var(--coal-2);border:1px solid rgba(255,255,255,.06);border-radius:4px;overflow:hidden;transition:border-color .4s,transform .5s}
.course-link:hover{border-color:var(--line);transform:translateY(-4px)}
.course-link img{width:100%;height:140px;object-fit:cover}
.course-link small{display:block;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:6px}
.course-link b{font-family:var(--serif);font-weight:400;font-size:21px}
@media(max-width:760px){.course-links{grid-template-columns:1fr}}

/* courses hub grid */
.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.hub-card{position:relative;display:block;border-radius:4px;overflow:hidden;aspect-ratio:3/4.2;border:1px solid rgba(255,255,255,.06)}
.hub-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.65,.2,1)}
.hub-card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(12,10,8,.95) 5%,rgba(12,10,8,.2) 60%,transparent)}
.hub-card:hover img{transform:scale(1.06)}
.hub-card .hc-body{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:clamp(22px,2.4vw,34px)}
.hub-card .hc-no{font-family:var(--serif);font-size:13px;color:var(--gold);letter-spacing:.2em}
.hub-card h2,.hub-card h3{font-family:var(--serif);font-weight:300;font-size:clamp(28px,2.8vw,40px);line-height:1.05;margin:8px 0 10px}
.hub-card h2 em,.hub-card h3 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hub-card p{font-size:14px;color:var(--ivory-dim);font-weight:300;margin-bottom:14px}
.hub-card .read-more{font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold-hi)}
@media(max-width:980px){.hub-grid{grid-template-columns:1fr}.hub-card{aspect-ratio:4/3.4}}

/* cta band */
.cta-band{position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:radial-gradient(700px 360px at 15% 50%,rgba(201,160,90,.12),transparent 70%),var(--coal)}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:30px;flex-wrap:wrap;padding-top:clamp(70px,10vh,120px);padding-bottom:clamp(70px,10vh,120px)}
.cta-band h2{font-family:var(--serif);font-weight:300;font-size:clamp(32px,4vw,58px);line-height:1.06;max-width:18ch}
.cta-band h2 em{font-style:italic;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.cta-band .hero-cta{display:flex;gap:14px;flex-wrap:wrap}

/* videos filter */
.chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:30px}
.chip{background:transparent;border:1px solid rgba(255,255,255,.16);color:var(--ivory-dim);padding:10px 20px;border-radius:99px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;transition:.3s}
.chip:hover{border-color:var(--gold);color:var(--ivory)}
.chip.on{background:var(--grad);color:var(--ink);border-color:transparent;font-weight:700}
.vid-card.hide{display:none}
.vid-card .vtag{display:block;font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold);padding:14px 16px 0}
.vid-card .vtag+h3{padding-top:6px}

/* events (typographic cards; real photos slot into .ev-art when restored) */
.ev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,28px)}
.ev-card{background:var(--coal-2);border:1px solid rgba(255,255,255,.06);border-radius:4px;overflow:hidden;display:flex;flex-direction:column;transition:transform .5s cubic-bezier(.2,.65,.2,1),border-color .4s}
.ev-card:hover{transform:translateY(-6px);border-color:var(--line)}
.ev-art{position:relative;aspect-ratio:16/10;overflow:hidden;background:radial-gradient(420px 220px at 80% 0%,rgba(201,160,90,.22),transparent 70%),linear-gradient(160deg,#241e16,#14110d)}
.ev-art img{width:100%;height:100%;object-fit:cover}
.ev-art img ~ .ev-yr{display:none}
.ev-art img ~ .ev-type{background:rgba(12,10,8,.6);backdrop-filter:blur(4px)}
.ev-art .ev-yr{position:absolute;right:18px;bottom:-14px;font-family:var(--serif);font-weight:300;font-size:clamp(70px,7vw,110px);line-height:1;color:transparent;-webkit-text-stroke:1px rgba(201,160,90,.45)}
.ev-art .ev-type{position:absolute;left:22px;top:20px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);border:1px solid var(--line);padding:6px 12px;border-radius:99px}
.ev-body{padding:22px 24px 26px;flex:1}
.ev-body time{font-size:10px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
.ev-body h2,.ev-body h3{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.28;margin:8px 0 8px}
.ev-body p{font-size:13.5px;color:var(--mute);font-weight:300}
@media(max-width:980px){.ev-grid{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.ev-grid{grid-template-columns:1fr}}

/* blog post page */
.post-wrap{max-width:820px;margin:0 auto;padding:0 clamp(20px,4vw,54px) clamp(80px,10vh,130px)}
.post-body h2{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.2vw,28px);margin:40px 0 14px;color:var(--gold-hi)}
.post-body p{font-size:16px;font-weight:300;color:var(--ivory-dim);margin-bottom:18px;line-height:1.85}
.post-body ul{margin:0 0 20px 20px;color:var(--ivory-dim);font-size:15.5px;font-weight:300;line-height:1.9}
.post-body a{color:var(--gold-hi);border-bottom:1px solid var(--line)}
.post-body .a-cta{margin-top:40px;padding:26px;border:1px solid var(--line);border-radius:4px;background:rgba(201,160,90,.06);display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
.post-body .a-cta p{margin:0;font-size:14.5px}
.post-body .a-cta a.btn{border-bottom:1px solid var(--gold);color:var(--ink)}
.post-meta{display:flex;gap:16px;flex-wrap:wrap;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin-top:22px}
.post-meta span+span{color:var(--mute)}
a.blog-card{color:var(--ivory)}

/* registration form as real form */
form#regForm{margin:0}
.form-note{font-size:12px;color:var(--mute);margin-top:14px}
.field textarea{width:100%;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);border-radius:3px;color:var(--ivory);padding:14px 16px;font-family:inherit;font-size:14px;min-height:110px;resize:vertical}
.field textarea:focus{outline:none;border-color:var(--gold)}
.field select option{background:var(--coal-2)}
.field.err input,.field.err select{border-color:#c0604a}

/* feedback survey */
.rate-row{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.rate-row>span{font-size:14px;color:var(--ivory-dim);font-weight:300}
.rate-opts{display:flex;gap:6px;flex-wrap:wrap}
.rate-opts label{cursor:pointer}
.rate-opts input{position:absolute;opacity:0;pointer-events:none}
.rate-opts i{display:inline-block;font-style:normal;font-size:10px;letter-spacing:.14em;text-transform:uppercase;border:1px solid rgba(255,255,255,.14);border-radius:99px;padding:8px 12px;color:var(--mute);transition:.25s}
.rate-opts input:checked+i{background:var(--grad);color:var(--ink);border-color:transparent;font-weight:700}
.rate-opts input:focus-visible+i{outline:2px solid var(--gold);outline-offset:2px}
@media(max-width:760px){.rate-row{grid-template-columns:1fr}}

/* 404 */
.nf{min-height:100svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 20px}
.nf b{display:block;font-family:var(--serif);font-weight:300;font-size:clamp(90px,16vw,200px);line-height:1;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.nf h1{font-family:var(--serif);font-weight:300;font-size:clamp(26px,3vw,38px);margin:10px 0 14px}
.nf p{color:var(--mute);margin-bottom:28px}
.nf .hero-cta{justify-content:center}

/* focus visibility for keyboard users */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:10px;z-index:3000;background:var(--gold);color:var(--ink);padding:10px 16px;font-size:12px;font-weight:700;letter-spacing:.1em}
.skip:focus{left:10px}

@media(prefers-reduced-motion:reduce){
  .page-hero h1 .w>span{transform:none}
}
.btn.is-off{opacity:.45;pointer-events:none}
/* multi-column footer */
.foot-grid{max-width:1500px;margin:0 auto;padding:clamp(60px,9vh,100px) clamp(20px,4vw,54px) 40px;display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr 1.2fr;gap:clamp(24px,3vw,50px)}
.foot-grid h3{font-size:10.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:18px}
.foot-grid ul{list-style:none;display:flex;flex-direction:column;gap:11px}
.foot-grid ul a{font-size:13.5px;color:var(--ivory-dim);font-weight:300;transition:color .3s}
.foot-grid ul a:hover{color:var(--gold-hi)}
.foot-grid .f-brand p{font-size:13.5px;color:var(--mute);font-weight:300;margin-top:18px;max-width:30ch;line-height:1.7}
.foot-grid address{font-style:normal;font-size:13.5px;color:var(--ivory-dim);font-weight:300;line-height:1.8}
.foot-grid address a{color:var(--ivory-dim);transition:color .3s}
.foot-grid address a:hover{color:var(--gold-hi)}
.foot-grid .socials{margin-top:18px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.07)}
.foot-bottom .foot-in{padding-top:24px;padding-bottom:28px}
@media(max-width:1100px){.foot-grid{grid-template-columns:1fr 1fr 1fr}.foot-grid .f-brand{grid-column:1/-1}}
@media(max-width:640px){.foot-grid{grid-template-columns:1fr 1fr}.foot-grid .f-contact{grid-column:1/-1}}
@media(max-width:760px){footer{padding-bottom:70px}}
.sch-card h2{font-family:var(--serif);font-weight:400;font-size:22px;margin-bottom:8px}
.sch-card h2 i{font-style:normal;color:var(--gold);font-family:var(--sans);font-size:11px;letter-spacing:.3em;text-transform:uppercase;display:block;margin-bottom:10px}
.sch-criteria h3{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-hi);margin-bottom:12px;font-weight:600;font-family:var(--sans)}
.sec-label{font-size:11px;letter-spacing:.4em;color:var(--gold);text-transform:uppercase;margin-bottom:18px;display:block}
.media-frame.tall img{max-height:640px}
@media(max-width:760px){#waFloat{display:none}}
