/* ============================================================
   Michael Weisenfeld — Higher Education Consulting
   Visual identity: RICH navy & gold, academic but vibrant.
   --------------------------------------------------------
   Palette
     Midnight   #0A1A33   deep jewel navy (backgrounds)
     Navy       #102545   primary
     Navy-2     #18335C   raised navy
     Indigo     #23457F   luminous accent navy
     Gold       #CBA24A   primary gold
     Gold-lit   #E7C66B   highlight gold (glow)
     Gold-deep  #A07C2C   pressed gold
     Parchment  #F7F3EA   warm section bg
     Cream      #FCFAF5   page bg
     Ink        #16223B   body text on light
     Stone      #5C667D   muted text
   Type
     Fraunces  — display serif (headings), used with restraint
     Inter     — body + UI
     Inter (caps, tracked) — eyebrows / labels / data
   ============================================================ */

:root {
  --midnight:#0A1A33; --navy:#102545; --navy-2:#18335C; --indigo:#23457F;
  --gold:#CBA24A; --gold-lit:#E7C66B; --gold-deep:#A07C2C;
  --parchment:#F7F3EA; --cream:#FCFAF5; --ink:#16223B; --stone:#5C667D;
  --line:rgba(16,37,69,.12); --line-soft:rgba(16,37,69,.07);
  --gold-grad:linear-gradient(135deg,var(--gold-lit),var(--gold) 55%,var(--gold-deep));
  --navy-grad:linear-gradient(160deg,var(--navy-2),var(--midnight));
  --shadow-sm:0 4px 18px -10px rgba(10,26,51,.4);
  --shadow:0 24px 60px -32px rgba(10,26,51,.6);
  --shadow-gold:0 18px 40px -18px rgba(203,162,74,.55);
  --wrap:1180px; --r:10px; --r-lg:18px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;font-family:'Inter',system-ui,sans-serif;color:var(--ink);
  background:var(--cream);line-height:1.65;font-size:17px;overflow-x:clip;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{animation:none!important;transition:none!important}
}
h1,h2,h3,h4{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.08;color:var(--navy);margin:0 0 .5em;letter-spacing:-.01em}
p{margin:0 0 1.15em}
a{color:var(--indigo);text-decoration:none}
img{max-width:100%;display:block}
::selection{background:var(--gold-lit);color:var(--navy)}

.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 32px}

/* ---------- Eyebrow / labels ---------- */
.eyebrow{
  font-weight:600;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--gold-deep);margin:0 0 1.1rem;display:inline-flex;align-items:center;gap:.7rem;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--gold-grad);border-radius:2px}
.on-dark .eyebrow,.eyebrow.light{color:var(--gold-lit)}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.55rem;font-weight:600;font-size:.97rem;
  padding:.92rem 1.85rem;border-radius:var(--r);cursor:pointer;border:1.5px solid transparent;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s,color .25s,border-color .25s;
  position:relative;letter-spacing:.01em;
}
.btn svg{width:18px;height:18px;transition:transform .3s var(--ease)}
.btn:hover svg{transform:translateX(4px)}
.btn-gold{background:var(--gold-grad);color:var(--navy);box-shadow:var(--shadow-gold)}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 26px 50px -18px rgba(203,162,74,.7)}
.btn-navy{background:var(--navy);color:var(--cream)}
.btn-navy:hover{background:var(--navy-2);transform:translateY(-2px);box-shadow:0 16px 32px -16px rgba(16,37,69,.7)}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-deep);transform:translateY(-2px)}
.btn-outline-light{background:rgba(255,255,255,.04);color:var(--cream);border-color:rgba(231,198,107,.4)}
.btn-outline-light:hover{border-color:var(--gold-lit);background:rgba(231,198,107,.1);transform:translateY(-2px)}

/* ---------- Header ---------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:rgba(252,250,245,.9);backdrop-filter:saturate(160%) blur(14px);
  border-bottom:2px solid transparent;
  border-radius:0 0 var(--r-lg) var(--r-lg);
  box-shadow:0 14px 30px -20px rgba(10,26,51,.55);
  transition:box-shadow .3s,background .3s;
}
/* gold seam along the bottom edge of the header sheet */
.site-header::after{content:"";position:absolute;left:6%;right:6%;bottom:-1px;height:2px;z-index:3;border-radius:2px;
  background:repeating-linear-gradient(90deg,rgba(203,162,74,.25) 0,rgba(231,198,107,.95) 60px,rgba(203,162,74,.25) 120px,rgba(203,162,74,.25) 240px);
  animation:seamShift 7s linear infinite}
.site-header::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;z-index:1;
  background:repeating-linear-gradient(90deg,rgba(203,162,74,.2) 0,rgba(231,198,107,.85) 60px,rgba(203,162,74,.2) 120px,rgba(203,162,74,.2) 240px);
  animation:seamShift 9s linear infinite;opacity:.6}
/* Seamless seam: shift by exactly one repeat period (240px) so there is no jump */
@keyframes seamShift{from{background-position:0 0}to{background-position:240px 0}}
.site-header.scrolled{box-shadow:0 18px 38px -22px rgba(10,26,51,.6);background:rgba(252,250,245,.97)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:84px;position:relative;z-index:2}
.brand{display:flex;align-items:center;gap:.85rem;transition:transform .3s var(--ease)}
.brand:hover{transform:translateY(-1px)}
.brand-mark{
  width:46px;height:46px;border-radius:13px;background:var(--navy-grad);
  display:grid;place-items:center;flex:none;border:1px solid rgba(231,198,107,.4);position:relative;overflow:hidden;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),var(--shadow-sm);
  transition:border-color .35s var(--ease),box-shadow .35s var(--ease),transform .35s var(--ease);
}
.brand-mark::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 35%,rgba(231,198,107,.4) 50%,transparent 65%);background-size:250% 250%;animation:portraitSheen 6s ease-in-out infinite}
.brand:hover .brand-mark{border-color:rgba(231,198,107,.85);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 8px 24px -8px rgba(203,162,74,.6);transform:rotate(-3deg) scale(1.04)}
.brand-logo{height:46px;display:grid;place-items:center;flex:none;transition:transform .3s var(--ease)}
.brand-logo img{height:46px;width:auto;max-width:190px;object-fit:contain;display:block}
.brand:hover .brand-logo{transform:scale(1.04)}
.brand-mark span{font-family:'Fraunces',serif;font-weight:600;font-size:1.25rem;position:relative;z-index:1;
  background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.brand-text{display:flex;flex-direction:column;line-height:1.1}
.brand-name{font-family:'Fraunces',serif;font-weight:600;font-size:1.24rem;color:var(--navy);transition:color .3s var(--ease)}
.brand:hover .brand-name{color:var(--navy-2)}
.brand-role{font-size:.64rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;margin-top:2px}
.site-nav{display:flex;align-items:center;gap:.35rem}
.site-nav a:not(.nav-cta):not(.nav-admin){font-size:.95rem;font-weight:500;color:var(--ink);position:relative;padding:.55rem .95rem;border-radius:999px;transition:color .25s var(--ease),background .25s var(--ease)}
.site-nav a:not(.nav-cta):not(.nav-admin)::after{content:"";position:absolute;left:50%;bottom:6px;height:2px;width:0;background:var(--gold-grad);border-radius:2px;transform:translateX(-50%);transition:width .32s var(--ease)}
.site-nav a:not(.nav-cta):not(.nav-admin):hover{color:var(--navy);background:rgba(203,162,74,.1)}
.site-nav a:not(.nav-cta):not(.nav-admin):hover::after{width:42%}
.site-nav a.is-active:not(.nav-cta):not(.nav-admin){color:var(--navy)}
.site-nav a.is-active:not(.nav-cta):not(.nav-admin)::after{width:42%}
.nav-cta{font-size:.95rem;font-weight:600;margin-left:.5rem;background:var(--navy);color:var(--cream)!important;padding:.62rem 1.45rem;border-radius:999px;position:relative;overflow:hidden;z-index:0;transition:transform .25s var(--ease),box-shadow .25s var(--ease),color .25s var(--ease)}
.nav-cta::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--gold-grad);opacity:0;transition:opacity .3s var(--ease)}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 12px 26px -10px rgba(203,162,74,.65);color:var(--navy)!important}
.nav-cta:hover::before{opacity:1}
.nav-admin{
  display:grid;place-items:center;width:38px;height:38px;flex:none;border-radius:50%;
  color:var(--stone);border:1px solid var(--line);margin-left:.45rem;
  position:relative;transition:color .28s var(--ease),border-color .28s var(--ease),background .28s var(--ease),transform .28s var(--ease);
}
.nav-admin::before{content:"";position:absolute;left:-.55rem;top:50%;transform:translateY(-50%);width:1px;height:22px;background:var(--line)}
.nav-admin svg{width:17px;height:17px}
.nav-admin:hover{color:var(--navy);background:rgba(203,162,74,.16);border-color:rgba(203,162,74,.5);transform:translateY(-2px)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{width:26px;height:2px;background:var(--navy);border-radius:2px;transition:.3s var(--ease)}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;z-index:2;background:var(--midnight);color:var(--cream);padding:clamp(2.8rem,5vw,4.5rem) 0 clamp(3.2rem,5.5vw,5rem);overflow:hidden;
  border-radius:0 0 calc(var(--r-lg) + 8px) calc(var(--r-lg) + 8px);
  box-shadow:0 22px 44px -26px rgba(10,26,51,.7),inset 0 -2px 0 rgba(231,198,107,.5)}
.hero::after,.hero::before{border-radius:inherit}
/* ---- Stacked paper layers on homepage: hero over stat-band over content ---- */
.hero:has(+ .stat-band){z-index:5}
.hero + .stat-band{
  position:relative;z-index:4;margin-top:-18px;padding-top:18px;
  border-radius:0 0 calc(var(--r-lg) + 8px) calc(var(--r-lg) + 8px);
  border-top:0;
  box-shadow:0 26px 50px -28px rgba(10,26,51,.75),inset 0 -2px 0 rgba(231,198,107,.5)}
.hero::before{content:"";position:absolute;inset:-15%;background:
  radial-gradient(1000px 540px at 80% -8%,rgba(203,162,74,.22),transparent 58%),
  radial-gradient(760px 600px at -8% 108%,rgba(35,69,127,.55),transparent 60%);pointer-events:none;
  animation:heroAura 22s ease-in-out infinite}
@keyframes heroAura{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(2%,1.5%,0) scale(1.06)}}
@media (prefers-reduced-motion:reduce){.hero::before{animation:none}}
.hero::after{content:"";position:absolute;inset:0;opacity:.5;pointer-events:none;
  background-image:radial-gradient(rgba(231,198,107,.10) 1px,transparent 1px);background-size:26px 26px;
  -webkit-mask-image:radial-gradient(circle at 75% 30%,#000,transparent 70%);mask-image:radial-gradient(circle at 75% 30%,#000,transparent 70%)}
.hero .wrap{position:relative;z-index:1}
.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:3.5rem;align-items:center}
.hero h1{color:var(--cream);font-size:clamp(2.5rem,5.2vw,4.1rem);font-weight:600;letter-spacing:-.02em;margin-bottom:.55em}
.hero h1 .accent{background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{font-size:1.2rem;color:rgba(252,250,245,.8);max-width:40ch;margin-bottom:2.2rem}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}
.hero-meta{display:flex;gap:2.6rem;margin-top:3rem;padding-top:2.2rem;border-top:1px solid rgba(231,198,107,.18);flex-wrap:wrap}
.hero-meta .m{display:flex;flex-direction:column;gap:.25rem}
.hero-meta .m b{font-family:'Fraunces',serif;font-size:1.6rem;line-height:1;color:var(--gold-lit);font-weight:600}
.hero-meta .m span{font-size:.8rem;line-height:1.35;color:rgba(252,250,245,.6);letter-spacing:.03em;max-width:18ch}

/* Portrait — subtle, professional */
.hero-portrait{position:relative;justify-self:center;align-self:center;width:min(100%,330px)}
.hero-portrait .frame{
  width:100%;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;position:relative;z-index:1;
  background:var(--navy-grad);border:1px solid rgba(231,198,107,.4);
  box-shadow:var(--shadow),0 0 0 1px rgba(231,198,107,.08);
  transition:transform .6s var(--ease),box-shadow .6s var(--ease);
}
.hero-portrait:hover .frame{transform:translateY(-5px);box-shadow:var(--shadow),0 30px 60px -28px rgba(203,162,74,.5)}
.hero-portrait .frame::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,transparent 38%,rgba(231,198,107,.12) 50%,transparent 62%);
  background-size:300% 300%;animation:portraitSheen 11s ease-in-out infinite}
.hero-portrait .frame img{width:100%;height:100%;object-fit:cover}
.hero-portrait .frame .placeholder{position:absolute;inset:0;display:grid;place-items:center;font-family:'Fraunces',serif;font-size:clamp(4rem,8vw,5.5rem);color:rgba(231,198,107,.5)}
/* soft static glow that gently breathes (no rotation) */
.hero-portrait .glow{position:absolute;inset:-26px;z-index:0;border-radius:calc(var(--r-lg) + 26px);
  background:radial-gradient(circle at 50% 40%,rgba(203,162,74,.28),transparent 68%);
  filter:blur(22px);animation:glowBreathe 7s ease-in-out infinite}
.hero-portrait::after{content:"";position:absolute;top:-14px;right:-14px;width:70px;height:70px;z-index:2;border-top:2px solid var(--gold);border-right:2px solid var(--gold);border-top-right-radius:8px;animation:bracketIn 1s var(--ease) both .4s}
.hero-portrait::before{content:"";position:absolute;bottom:-14px;left:-14px;width:70px;height:70px;z-index:2;border-bottom:2px solid var(--gold);border-left:2px solid var(--gold);border-bottom-left-radius:8px;animation:bracketIn 1s var(--ease) both .55s}
@keyframes glowBreathe{0%,100%{opacity:.5;transform:scale(.98)}50%{opacity:.85;transform:scale(1.02)}}
@keyframes glowSoft{0%,100%{opacity:.22}50%{opacity:.34}}
@keyframes ringSpin{to{transform:rotate(360deg)}}
@keyframes portraitSheen{0%,60%{background-position:160% 0}100%{background-position:-60% 0}}
@keyframes bracketIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion:reduce){
  .hero-portrait .frame::after,.hero-portrait .glow,.hero-portrait::before,.hero-portrait::after{animation:none}
}
@media (prefers-reduced-motion:reduce){
  .hero-portrait .frame,.hero-portrait .frame::after,.hero-portrait .glow,.hero-portrait::before,.hero-portrait::after{animation:none}
}

/* ---------- Marquee stat band ---------- */
.stat-band{background:var(--navy-grad);color:var(--cream);position:relative;border-top:1px solid rgba(231,198,107,.22);border-bottom:1px solid rgba(231,198,107,.22)}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:3rem 1.6rem;text-align:center;position:relative;transition:transform .4s var(--ease)}
.stat:hover{transform:translateY(-6px)}
.stat:not(:last-child)::after{content:"";position:absolute;right:0;top:22%;bottom:22%;width:1px;background:linear-gradient(transparent,rgba(231,198,107,.3),transparent)}
.stat .figure{font-family:'Fraunces',serif;font-size:clamp(2rem,3.4vw,2.9rem);font-weight:600;line-height:1;
  background:linear-gradient(100deg,var(--gold-deep) 0%,var(--gold-lit) 25%,#fff6e0 50%,var(--gold-lit) 75%,var(--gold-deep) 100%);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:goldShimmer 7s linear infinite;transition:transform .4s var(--ease)}
.stat:hover .figure{transform:scale(1.06)}
.stat .label{font-size:.92rem;color:rgba(252,250,245,.74);margin-top:.6rem;line-height:1.45}
/* Seamless shimmer: gradient starts & ends on the same color, travels exactly one tile (200%) so the loop has no jump */
@keyframes goldShimmer{from{background-position:200% 0}to{background-position:0% 0}}
/* staggered reveal for the band */
.stat-band .stat{opacity:0;transform:translateY(18px);animation:statUp .7s var(--ease) forwards}
.stat-band .stat:nth-child(1){animation-delay:.05s}
.stat-band .stat:nth-child(2){animation-delay:.15s}
.stat-band .stat:nth-child(3){animation-delay:.25s}
.stat-band .stat:nth-child(4){animation-delay:.35s}
@keyframes statUp{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
  .stat .figure{animation:none}
  .stat-band .stat{animation:none;opacity:1;transform:none}
}

/* ---------- Sections ---------- */
.section{padding:clamp(3.2rem,5.5vw,4.8rem) 0}
.section-alt{background:var(--parchment)}
.section-dark{background:var(--midnight);color:var(--cream);position:relative;overflow:hidden}
.section-dark::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 420px at 88% -10%,rgba(203,162,74,.16),transparent 60%);pointer-events:none}
.section-dark .wrap{position:relative;z-index:1}
.section-dark h2{color:var(--cream)}
.section-head{max-width:62ch;margin-bottom:2.4rem}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center}
.section-head.center .eyebrow{justify-content:center}
.section-head h2{font-size:clamp(1.7rem,3vw,2.4rem)}
.section-head .sub{font-size:1.05rem;color:var(--stone);margin:0}
.section-dark .section-head .sub{color:rgba(252,250,245,.72)}

/* ---------- Split (about) ---------- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:start}
.split-about{align-items:stretch}
.split-about .about-copy{max-width:48ch;align-self:center}
.split-about .creds-panel{align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.prose p:first-of-type{font-size:1.18rem;color:var(--ink)}
.prose p{color:var(--ink)}
.value-list{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;gap:1rem}
.value-list li{position:relative;padding-left:2rem;color:var(--ink);font-size:1.02rem}
.value-list li::before{content:"";position:absolute;left:0;top:.5em;width:11px;height:11px;background:var(--gold-grad);transform:rotate(45deg);border-radius:2px}
.figure-frame{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:460px;background:var(--navy-grad);border:1px solid rgba(231,198,107,.25);box-shadow:var(--shadow);display:grid;place-items:center}
.figure-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.figure-frame .placeholder{font-family:'Fraunces',serif;font-size:5rem;color:rgba(231,198,107,.4)}
.figure-frame .badge-float{position:absolute;left:24px;bottom:24px;background:rgba(252,250,245,.95);backdrop-filter:blur(8px);border-radius:var(--r);padding:1rem 1.3rem;box-shadow:var(--shadow-sm);max-width:74%}
.figure-frame .badge-float b{display:block;font-family:'Fraunces',serif;color:var(--navy);font-size:1.1rem}
.figure-frame .badge-float span{font-size:.84rem;color:var(--stone)}

/* ============================================================
   About page — warm editorial
   ============================================================ */
.about-intro{padding-top:clamp(3.5rem,6vw,5.5rem)}
.about-layout{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:clamp(2.5rem,5vw,5rem);align-items:start}
.about-aside{position:sticky;top:108px}

/* --- Portrait frame (clean, framed) --- */
.portrait-ornate{position:relative;margin:0;width:100%}
.po-glow,.po-ring{display:none}
.po-frame{position:relative;z-index:2;width:100%;aspect-ratio:4/5;border-radius:var(--r-lg);overflow:hidden;
  background:var(--navy-grad);
  /* cream mat + thin gold inner line, soft neutral shadow */
  border:6px solid var(--cream);
  box-shadow:0 0 0 1px rgba(203,162,74,.45),0 0 0 7px var(--cream),0 22px 50px -24px rgba(16,37,69,.4);
  display:grid;place-items:center;transition:transform .55s var(--ease),box-shadow .55s var(--ease)}
.portrait-ornate:hover .po-frame{transform:translateY(-5px);box-shadow:0 0 0 1px rgba(203,162,74,.7),0 0 0 7px var(--cream),0 30px 60px -26px rgba(16,37,69,.5)}
.po-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.po-frame .placeholder{font-family:'Fraunces',serif;font-size:clamp(4rem,7vw,6rem);color:rgba(231,198,107,.5)}
.po-sheen{position:absolute;inset:0;z-index:3;pointer-events:none;border-radius:var(--r-lg);overflow:hidden;
  background:linear-gradient(120deg,transparent 40%,rgba(255,255,255,.16) 50%,transparent 60%);
  background-size:300% 300%;animation:portraitSheen 9s ease-in-out infinite}
.po-caption{position:relative;z-index:2;margin-top:1.3rem;text-align:center;display:flex;flex-direction:column;gap:.2rem}
.po-caption .pt-name{font-family:'Fraunces',serif;font-weight:600;font-size:1.3rem;color:var(--navy)}
.po-caption .pt-role{font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-deep);font-weight:600}

/* --- Editorial bio copy --- */
.about-copy{align-self:start;max-width:60ch}
.about-lead{font-family:'Fraunces',serif;font-size:clamp(1.4rem,2.2vw,1.85rem);line-height:1.4;font-weight:500;
  color:var(--navy);margin:0 0 1.8rem;position:relative;padding-left:1.4rem}
.about-lead::before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:3px;border-radius:3px;background:var(--gold-grad)}
.about-body p{color:var(--ink);font-size:1.04rem;line-height:1.75;margin:0 0 1.15rem}
.about-body p:last-child{margin-bottom:0}

/* --- Value proposition cards --- */
.value-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.4rem;max-width:1000px}
.value-card{position:relative;overflow:hidden;background:var(--cream);border:1px solid var(--line-soft);
  border-radius:var(--r-lg);padding:1.9rem 1.8rem 1.8rem;display:flex;flex-direction:column;gap:.9rem;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.value-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--gold-grad);transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease)}
.value-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(203,162,74,.35)}
.value-card:hover::before{transform:scaleX(1)}
.vc-num{font-family:'Fraunces',serif;font-size:1rem;font-weight:600;color:var(--gold-deep);letter-spacing:.04em}
.vc-mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;
  background:rgba(203,162,74,.12);border:1px solid rgba(203,162,74,.3);color:var(--gold-deep);
  transition:transform .4s var(--ease),background .4s var(--ease),color .4s var(--ease)}
.vc-mark svg{width:19px;height:19px;stroke-width:2.5}
.value-card:hover .vc-mark{transform:scale(1.1) rotate(-4deg);background:var(--navy);color:var(--gold-lit)}
.value-card p{margin:0;color:var(--ink);font-size:1.02rem;line-height:1.55}

/* --- Education cards --- */
.edu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.6rem;max-width:1000px}
.edu-card{display:flex;gap:1.3rem;align-items:center;background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:1.8rem 1.9rem;
  position:relative;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.edu-card::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--gold-grad);transform:scaleY(0);transform-origin:top;transition:transform .45s var(--ease)}
.edu-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(203,162,74,.35)}
.edu-card:hover::before{transform:scaleY(1)}
.edu-ico{flex:none;display:grid;place-items:center;width:56px;height:56px;border-radius:15px;
  background:var(--navy-grad);color:var(--gold-lit);border:1px solid rgba(231,198,107,.28);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.edu-ico svg{width:27px;height:27px}
.edu-card:hover .edu-ico{transform:scale(1.08) rotate(-4deg);box-shadow:0 10px 22px -10px rgba(203,162,74,.6)}
.edu-tx h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;color:var(--navy);margin:0 0 .25rem;line-height:1.3}
.edu-tx p{color:var(--stone);font-size:.96rem;margin:0}
@media (prefers-reduced-motion:reduce){
  .po-sheen{animation:none}
}

/* ---------- Credentials panel (replaces 2nd portrait on home) ---------- */
.creds-panel{
  background:var(--navy-grad);color:var(--cream);border-radius:var(--r-lg);
  border:1px solid rgba(231,198,107,.28);box-shadow:var(--shadow);
  padding:2.4rem 2.4rem 2.2rem;position:relative;overflow:hidden;
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease);
}
.creds-panel:hover{transform:translateY(-6px);border-color:rgba(231,198,107,.5);box-shadow:var(--shadow),0 0 40px -12px rgba(203,162,74,.4)}
.creds-panel::before{content:"";position:absolute;inset:0;background:
  radial-gradient(120% 80% at 100% 0,rgba(203,162,74,.16),transparent 55%);pointer-events:none}
.creds-head{display:flex;align-items:center;gap:.9rem;margin-bottom:1.6rem;position:relative}
.creds-mark{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;
  background:rgba(231,198,107,.12);border:1px solid rgba(231,198,107,.4);color:var(--gold-lit)}
.creds-mark svg{width:22px;height:22px}
.creds-head h3{font-family:'Fraunces',serif;font-size:1.4rem;font-weight:600;color:var(--cream);margin:0}
.creds-edu{list-style:none;margin:0 0 1.6rem;padding:0;position:relative}
.creds-edu li{padding:1.05rem 0;border-bottom:1px solid rgba(231,198,107,.16);display:flex;flex-direction:column;gap:.28rem}
.creds-edu li:first-child{padding-top:0}
.creds-edu li:last-child{border-bottom:0;padding-bottom:0}
.ce-degree{font-family:'Fraunces',serif;font-size:1.08rem;font-weight:500;color:var(--cream);line-height:1.35}
.ce-school{font-size:.85rem;color:rgba(252,250,245,.62)}
.creds-tags{display:flex;flex-wrap:wrap;gap:.7rem;position:relative}
.creds-tags span{display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:500;
  color:var(--gold-lit);background:rgba(231,198,107,.1);border:1px solid rgba(231,198,107,.28);
  padding:.5rem .85rem;border-radius:999px;transition:background .3s var(--ease),border-color .3s var(--ease),transform .3s var(--ease)}
.creds-tags span:hover{background:rgba(231,198,107,.18);border-color:rgba(231,198,107,.55);transform:translateY(-2px)}
.creds-tags svg{width:15px;height:15px}

/* ---------- Service cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.8rem}
.service-card{
  background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;
  display:flex;flex-direction:column;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s;
  position:relative;
}
.service-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--gold-grad);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.service-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(203,162,74,.35)}
.service-card:hover::before{transform:scaleX(1)}
.service-card .media{position:relative;aspect-ratio:16/10;background:var(--navy-grad);overflow:hidden}
.service-card .media img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.service-card:hover .media img{transform:scale(1.06)}
.service-card .media .play-badge{position:absolute;inset:0;display:grid;place-items:center}
.service-card .body{padding:1.9rem 1.8rem;display:flex;flex-direction:column;flex:1}
.service-card .ico{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:var(--navy-grad);color:var(--gold-lit);margin-bottom:1.3rem;border:1px solid rgba(231,198,107,.25)}
.service-card.has-media .ico{position:absolute;top:calc(16/10*100% - 27px);margin:0;left:1.8rem;box-shadow:var(--shadow-sm)}
.service-card.has-media .body{padding-top:2.4rem}
.service-card .ico svg{width:25px;height:25px}
.service-card h3{font-size:1.32rem;margin-bottom:.6rem}
.service-card p{color:var(--stone);font-size:.99rem;margin:0}

/* ---------- Experience timeline ---------- */
.timeline{position:relative;max-width:860px}
.timeline::before{content:"";position:absolute;left:9px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--gold),var(--line) 80%)}
.tl-item{position:relative;padding-left:3.4rem;padding-bottom:3rem}
.tl-item:last-child{padding-bottom:0}
.tl-item::before{content:"";position:absolute;left:0;top:5px;width:20px;height:20px;border-radius:50%;background:var(--cream);border:3px solid var(--gold);box-shadow:0 0 0 5px rgba(203,162,74,.12)}
.tl-period{font-weight:600;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--gold-deep)}
.tl-item h3{font-size:1.45rem;margin:.4rem 0 .2rem}
.tl-org{color:var(--stone);font-size:1rem;margin-bottom:1rem}
.tl-card{background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm)}
.tl-card .tl-img{aspect-ratio:21/9;background:var(--navy-grad);overflow:hidden}
.tl-card .tl-img img{width:100%;height:100%;object-fit:cover}
.tl-card .tl-body{padding:1.7rem 1.8rem}
.tl-highlights{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.tl-highlights li{position:relative;padding-left:1.7rem;color:var(--ink);font-size:1rem}
.tl-highlights li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:2px;background:var(--gold-grad);border-radius:2px}

/* ---------- Testimonials ---------- */
.quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(330px,1fr));gap:2rem}
.quote-card{background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:2.8rem 2.2rem 2.2rem;position:relative;box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.quote-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(203,162,74,.3)}
.quote-card .mark{font-family:'Fraunces',serif;font-size:4rem;line-height:.7;background:var(--gold-grad);-webkit-background-clip:text;background-clip:text;color:transparent;display:block;margin-bottom:.4rem;transition:transform .4s var(--ease)}
.quote-card:hover .mark{transform:translateY(-3px) scale(1.08)}
.quote-card .who .av{width:46px;height:46px;border-radius:50%;background:var(--navy-grad);color:var(--gold-lit);display:grid;place-items:center;font-family:'Fraunces',serif;font-weight:600;flex:none;border:1px solid rgba(231,198,107,.3);transition:transform .4s var(--ease),border-color .4s var(--ease)}
.quote-card:hover .who .av{transform:scale(1.08);border-color:rgba(231,198,107,.6)}
.quote-card blockquote{margin:0 0 1.5rem;font-family:'Fraunces',serif;font-size:1.24rem;line-height:1.5;color:var(--navy);font-weight:500}
.quote-card .who{display:flex;align-items:center;gap:.9rem}
.quote-card .who b{font-weight:600;font-size:.98rem;color:var(--ink);display:block}
.quote-card .who span{color:var(--stone);font-size:.88rem}
.section-dark .quote-card{background:rgba(255,255,255,.04);border-color:rgba(231,198,107,.16)}
.section-dark .quote-card blockquote{color:var(--cream)}
.section-dark .quote-card .who b{color:var(--cream)}
.section-dark .quote-card .who span{color:rgba(252,250,245,.6)}

/* ---------- Gallery photo grid ---------- */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1.2rem;grid-auto-flow:dense}
.photo-tile{position:relative;margin:0;overflow:hidden;border-radius:var(--r-lg);cursor:zoom-in;
  aspect-ratio:4/3;background:var(--navy-grad);box-shadow:var(--shadow-sm);
  border:1px solid var(--line-soft);outline:none;
  transition:transform .45s var(--ease),box-shadow .45s var(--ease),border-color .45s var(--ease)}
.photo-tile img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .7s var(--ease),filter .45s var(--ease)}
.photo-tile:hover,.photo-tile:focus-visible{transform:translateY(-5px);box-shadow:var(--shadow);border-color:rgba(203,162,74,.4)}
.photo-tile:hover img,.photo-tile:focus-visible img{transform:scale(1.07)}
/* gold-wash overlay + zoom affordance on hover */
.pt-overlay{position:absolute;inset:0;z-index:1;display:grid;place-items:center;pointer-events:none;
  background:linear-gradient(to top,rgba(10,26,51,.55),transparent 55%),rgba(203,162,74,0);
  opacity:0;transition:opacity .4s var(--ease),background .4s var(--ease)}
.photo-tile:hover .pt-overlay,.photo-tile:focus-visible .pt-overlay{opacity:1;background:linear-gradient(to top,rgba(10,26,51,.55),transparent 55%),rgba(203,162,74,.14)}
.pt-zoom{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;
  background:rgba(252,250,245,.92);color:var(--navy);box-shadow:var(--shadow-sm);
  transform:scale(.7);transition:transform .4s var(--ease)}
.photo-tile:hover .pt-zoom,.photo-tile:focus-visible .pt-zoom{transform:scale(1)}
.pt-zoom svg{width:21px;height:21px}
.photo-tile figcaption{position:absolute;left:0;right:0;bottom:0;z-index:2;pointer-events:none;
  padding:1.5rem 1.1rem .9rem;color:var(--cream);font-size:.92rem;font-weight:500;line-height:1.35;
  opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.photo-tile:hover figcaption,.photo-tile:focus-visible figcaption{opacity:1;transform:none}
/* Editorial rhythm: feature the first tile larger on wider screens when there are enough photos */
@media (min-width:760px){
  .photo-grid[data-count="3"] .photo-tile:first-child,
  .photo-grid[data-count="5"] .photo-tile:first-child,
  .photo-grid[data-count="6"] .photo-tile:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
}
@media (prefers-reduced-motion:reduce){
  .photo-tile,.photo-tile img,.pt-overlay,.pt-zoom,.photo-tile figcaption{transition:none}
  .photo-tile:hover img{transform:none}
}
.gallery-empty{color:var(--stone);text-align:center;padding:3.5rem 1rem;border:1.5px dashed var(--line);border-radius:var(--r-lg);max-width:560px;margin:0 auto}

/* Video showcase grid */
.video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1.8rem}
.video-card{margin:0;cursor:pointer;border-radius:var(--r-lg);overflow:hidden;background:var(--cream);
  border:1px solid var(--line-soft);box-shadow:var(--shadow-sm);
  transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .4s var(--ease)}
.video-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:rgba(203,162,74,.35)}
.vc-media{position:relative;aspect-ratio:16/9;background:var(--navy-grad);overflow:hidden}
.vc-media img,.vc-media video{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s var(--ease)}
.video-card:hover .vc-media img,.video-card:hover .vc-media video{transform:scale(1.06)}
.vc-fallback{position:absolute;inset:0;background:var(--navy-grad)}
.vc-media .v-play{position:absolute;inset:0;display:grid;place-items:center;z-index:2}
.vc-media .v-play .ring{width:72px;height:72px;border-radius:50%;background:rgba(252,250,245,.16);backdrop-filter:blur(6px);border:1.5px solid rgba(252,250,245,.6);display:grid;place-items:center;transition:transform .35s var(--ease),background .35s var(--ease)}
.video-card:hover .v-play .ring{transform:scale(1.1);background:rgba(231,198,107,.32);border-color:rgba(231,198,107,.7)}
.vc-media .v-play svg{width:26px;height:26px;color:#fff;margin-left:3px}
.video-card figcaption{padding:1.2rem 1.4rem;font-size:1rem;color:var(--ink);font-weight:500}

/* Lightbox */
.lightbox{position:fixed;inset:0;background:rgba(6,14,28,.94);display:none;place-items:center;z-index:200;padding:5vh 5vw;backdrop-filter:blur(4px)}
.lightbox.open{display:grid;animation:lbfade .35s var(--ease)}
@keyframes lbfade{from{opacity:0}to{opacity:1}}
.lightbox .lb-stage{max-width:92vw;max-height:88vh;display:grid;place-items:center}
.lightbox img,.lightbox video,.lightbox iframe{max-width:92vw;max-height:86vh;border-radius:var(--r);box-shadow:var(--shadow)}
.lightbox iframe{width:min(92vw,1100px);aspect-ratio:16/9;height:auto}
.lightbox .close{position:absolute;top:22px;right:28px;background:rgba(252,250,245,.12);border:1px solid rgba(252,250,245,.3);color:#fff;font-size:1.6rem;width:48px;height:48px;border-radius:50%;cursor:pointer;line-height:1;display:grid;place-items:center;transition:background .25s}
.lightbox .close:hover{background:rgba(231,198,107,.4)}
/* Zoomable photo viewer */
.lb-photo{position:relative;display:grid;place-items:center;max-width:92vw;max-height:86vh;overflow:hidden}
.lb-photo img{max-width:92vw;max-height:86vh;border-radius:var(--r);box-shadow:var(--shadow);
  transform-origin:center;transition:transform .15s ease-out;cursor:zoom-in;user-select:none;touch-action:none}
.lb-zoom{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:.4rem;z-index:2;
  background:rgba(10,26,51,.7);backdrop-filter:blur(8px);border:1px solid rgba(231,198,107,.3);border-radius:999px;padding:.4rem}
.lb-zoom button{border:0;background:transparent;color:var(--cream);cursor:pointer;font-size:1.2rem;line-height:1;
  width:38px;height:38px;border-radius:999px;display:grid;place-items:center;transition:background .2s,color .2s}
.lb-zoom button.zoom-reset{width:auto;padding:0 .9rem;font-size:.82rem;font-weight:600;letter-spacing:.04em}
.lb-zoom button:hover{background:var(--gold-grad);color:var(--navy)}
.cslide.active{cursor:zoom-in}

/* ---------- CTA strip ---------- */
.cta-strip{background:var(--navy-grad);color:var(--cream);text-align:center;position:relative;overflow:hidden}
.cta-strip::before{content:"";position:absolute;inset:0;background:radial-gradient(620px 320px at 50% 120%,rgba(203,162,74,.22),transparent 65%)}
.cta-strip .wrap{position:relative;z-index:1}
.cta-strip h2{color:var(--cream);font-size:clamp(1.7rem,3vw,2.3rem)}
.cta-strip p{color:rgba(252,250,245,.8);max-width:54ch;margin:0 auto 2.2rem}

/* ---------- Page hero (interior) ---------- */
.page-hero{background:var(--midnight);color:var(--cream);padding:clamp(2.4rem,4vw,3.4rem) 0;position:relative;z-index:2;overflow:hidden;
  border-radius:0 0 calc(var(--r-lg) + 8px) calc(var(--r-lg) + 8px);
  box-shadow:0 20px 40px -26px rgba(10,26,51,.7),inset 0 -2px 0 rgba(231,198,107,.5)}
.page-hero::before,.page-hero::after{border-radius:inherit}
/* ---- Stacked paper layers: hero (top) over stat-band over content ---- */
/* Layer 1: page-hero already has rounded bottom + shadow (z-index:2). Lift its stack above. */
.page-hero:has(+ .stat-band){z-index:5}
/* Layer 2: the stat-band tucks up under the hero, with its own rounded bottom + shadow */
.page-hero + .stat-band{
  position:relative;z-index:4;margin-top:-18px;padding-top:18px;
  border-radius:0 0 calc(var(--r-lg) + 8px) calc(var(--r-lg) + 8px);
  border-top:0;
  box-shadow:0 26px 50px -28px rgba(10,26,51,.75),inset 0 -2px 0 rgba(231,198,107,.5)}
/* Layer 3: the first content section after the band tucks up under it */
.stat-band + .section{position:relative;z-index:3;margin-top:-18px;padding-top:calc(clamp(3.2rem,5.5vw,4.8rem) + 18px);
  border-radius:0 0 calc(var(--r-lg) + 8px) calc(var(--r-lg) + 8px);
  background:var(--cream);
  box-shadow:0 26px 50px -30px rgba(10,26,51,.4)}

/* ---- Experience page: scroll-driven stacking/folding (JS-controlled) ----
   Only the hero and stat-band pin at the header line and fold away as the
   next sheet rises over them. The timeline section flows normally beneath, so
   the content (and the CTA after it) scrolls cleanly without overlap. ---- */
[data-page="experience"] .page-hero.stack-sheet,
[data-page="experience"] .stat-band.stack-sheet{position:sticky;top:84px;transform-origin:center top;will-change:transform,filter}
[data-page="experience"] .page-hero.stack-sheet{z-index:5}
[data-page="experience"] .stat-band.stack-sheet{z-index:4}
[data-page="experience"] .section.stack-sheet{position:relative;z-index:3;background:var(--cream);
  margin-top:0;border-radius:0;box-shadow:none;padding-top:clamp(3.2rem,5.5vw,4.8rem)}
[data-page="experience"] .cta-strip{position:relative;z-index:6;margin-top:0}
.page-hero::before{content:"";position:absolute;inset:-15%;background:
  radial-gradient(620px 300px at 88% -20%,rgba(203,162,74,.18),transparent 60%),
  radial-gradient(520px 360px at -6% 120%,rgba(35,69,127,.45),transparent 62%);animation:heroAura 22s ease-in-out infinite}
.page-hero::after{content:"";position:absolute;inset:0;opacity:.35;background-image:radial-gradient(rgba(231,198,107,.1) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:radial-gradient(circle at 82% 40%,#000,transparent 70%);mask-image:radial-gradient(circle at 82% 40%,#000,transparent 70%)}
.page-hero .wrap{position:relative;z-index:1;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1.4rem 3rem}
.page-hero .ph-rule{display:none}
.page-hero h1{color:var(--cream);font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.08;letter-spacing:-.01em;margin:0;position:relative;padding-left:1.2rem}
.page-hero h1::before{content:"";position:absolute;left:0;top:.12em;bottom:.12em;width:3px;border-radius:3px;background:var(--gold-grad);background-size:100% 200%;animation:phRule 6s linear infinite}
@keyframes phRule{0%{background-position:0 0}100%{background-position:0 200%}}
.page-hero h1 .accent{
  background:linear-gradient(100deg,var(--gold-deep) 0%,var(--gold-lit) 25%,#fff6e0 50%,var(--gold-lit) 75%,var(--gold-deep) 100%);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:goldShimmer 7s linear infinite}
@media (prefers-reduced-motion:reduce){.page-hero h1 .accent{animation:none}}
.page-hero p{color:rgba(252,250,245,.74);max-width:52ch;margin:0;font-size:1rem;line-height:1.55}
@media (prefers-reduced-motion:reduce){.page-hero h1::before{animation:none}}
@media (max-width:760px){
  .page-hero .wrap{grid-template-columns:1fr;gap:.9rem}
  .page-hero h1{font-size:clamp(1.7rem,6vw,2.1rem)}
}
@media (prefers-reduced-motion:reduce){.page-hero .ph-rule{animation:none}}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:4.5rem;align-items:start}
.contact-info h2{font-size:1.8rem}
.info-card{background:var(--parchment);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:1.8rem;margin-top:1.8rem;display:grid;gap:1.2rem}
.info-row{display:flex;gap:1rem;align-items:center}
.info-row .ic{width:44px;height:44px;border-radius:12px;background:var(--navy-grad);color:var(--gold-lit);display:grid;place-items:center;flex:none}
.info-row .ic svg{width:20px;height:20px}
.info-row .tx b{display:block;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold-deep)}
.info-row .tx a,.info-row .tx span{color:var(--ink);font-size:1.02rem}
.form-card{background:var(--cream);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:2.4rem;box-shadow:var(--shadow-sm)}
.form-field{margin-bottom:1.4rem}
.form-field label{display:block;font-weight:600;font-size:.92rem;margin-bottom:.5rem;color:var(--ink)}
.form-field input,.form-field textarea{width:100%;padding:.95rem 1.1rem;border:1.5px solid var(--line);border-radius:var(--r);font-family:inherit;font-size:1rem;background:var(--cream);color:var(--ink);transition:border-color .2s,box-shadow .2s}
.form-field input:focus,.form-field textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px rgba(203,162,74,.16)}
.form-field textarea{resize:vertical;min-height:150px}
.form-note{font-size:.86rem;color:var(--stone)}
.alert{padding:1.05rem 1.3rem;border-radius:var(--r);margin-bottom:1.6rem;font-size:.96rem}
.alert-ok{background:#e8f4ec;color:#1c5e36;border:1px solid #bce0c9}
.alert-err{background:#fbe9e9;color:#9a2b2b;border:1px solid #e8c2c2}

/* ---------- Footer (thin, bold top border) ---------- */
.site-footer{background:var(--midnight);color:rgba(252,250,245,.7);position:relative;overflow:hidden;border-top:3px solid var(--gold)}
.site-footer::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;z-index:2;
  background:repeating-linear-gradient(90deg,var(--gold-deep) 0,var(--gold-lit) 60px,var(--gold-deep) 120px,var(--gold-deep) 240px);
  animation:seamShift 8s linear infinite}
.footer-aurora{position:absolute;inset:-60% -10% auto -10%;height:220%;pointer-events:none;z-index:0;opacity:.6;
  background:
    radial-gradient(40% 60% at 18% 30%,rgba(203,162,74,.3),transparent 60%),
    radial-gradient(40% 60% at 82% 10%,rgba(35,69,127,.7),transparent 62%),
    radial-gradient(50% 70% at 50% 100%,rgba(203,162,74,.16),transparent 60%);
  background-size:200% 200%,200% 200%,200% 200%;
  animation:footerAurora 18s ease-in-out infinite}
@keyframes footerAurora{
  0%,100%{background-position:0% 50%,100% 0%,50% 100%}
  50%{background-position:60% 20%,30% 60%,50% 40%}
}
.footer-inner{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.2rem 2.4rem;padding:1.5rem 0}
.footer-nav{display:flex;flex-wrap:wrap;gap:.4rem}
.footer-nav a{position:relative;color:rgba(252,250,245,.82);font-size:.92rem;font-weight:500;padding:.4rem .9rem;border-radius:999px;transition:color .25s var(--ease),background .25s var(--ease)}
.footer-nav a:hover{color:var(--cream);background:rgba(231,198,107,.14)}
.footer-reach{display:flex;flex-wrap:wrap;align-items:center;gap:1.6rem}
.footer-reach a,.footer-reach span{display:inline-flex;align-items:center;gap:.5rem;color:rgba(252,250,245,.72);font-size:.9rem;transition:color .25s var(--ease),transform .25s var(--ease)}
.footer-reach a:hover{color:var(--gold-lit);transform:translateY(-1px)}
.footer-reach svg{width:15px;height:15px;color:var(--gold-lit);flex:none;transition:transform .25s var(--ease)}
.footer-reach a:hover svg{transform:scale(1.15)}
.footer-copy{position:relative;z-index:1;width:100%;text-align:center;font-size:.8rem;color:rgba(252,250,245,.4);border-top:1px solid rgba(252,250,245,.08);padding-top:1.1rem;margin-top:.3rem}
@media (prefers-reduced-motion:reduce){.footer-aurora,.site-footer::before,.site-header::before,.brand-mark::after{animation:none}}
@media (max-width:680px){
  .footer-inner{flex-direction:column;text-align:center;gap:1rem;padding:2rem 0 1.4rem}
  .footer-nav{justify-content:center;gap:1.1rem 1.5rem}
  .footer-reach{flex-direction:column;gap:.8rem}
}

/* ---------- Reveal ---------- */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal[data-d="1"]{transition-delay:.08s}
.reveal[data-d="2"]{transition-delay:.16s}
.reveal[data-d="3"]{transition-delay:.24s}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .hero-grid{grid-template-columns:1fr;gap:3rem}
  .hero-portrait{order:-1;width:min(78vw,300px)}
  .hero-portrait .frame{width:100%}
  .split,.contact-grid{grid-template-columns:1fr;gap:3rem}
  .about-layout{grid-template-columns:1fr;gap:2.5rem;justify-items:center}
  .about-aside{position:static;top:auto;width:min(80vw,360px)}
  .about-copy{max-width:none}
  .card-grid{grid-template-columns:repeat(2,1fr)}
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2)::after{display:none}
}
@media (max-width:680px){
  body{font-size:16px}
  .wrap{padding:0 22px}
  .nav-toggle{display:flex}
  .site-nav{position:fixed;inset:84px 0 auto 0;background:var(--cream);flex-direction:column;align-items:stretch;gap:0;padding:1rem 22px 1.6rem;border-bottom:1px solid var(--line);transform:translateY(-135%);transition:transform .38s var(--ease);z-index:55;box-shadow:var(--shadow)}
  .site-nav.open{transform:translateY(0)}
  .site-nav a{padding:1rem 0;border-bottom:1px solid var(--line-soft)}
  .nav-cta{margin-top:.8rem;text-align:center}
  .nav-admin{width:auto;height:auto;border:0;border-radius:0;border-bottom:1px solid var(--line-soft);place-items:start;justify-content:flex-start;display:flex;align-items:center;gap:.6rem;padding:1rem 0;color:var(--ink);margin-left:0}
  .nav-admin::before{display:none}
  .nav-admin::after{content:"Admin login";font-size:.96rem;font-weight:500}
  .nav-admin:hover{background:none;color:var(--navy);transform:none;box-shadow:none}
  .card-grid{grid-template-columns:1fr}
  .stat-grid{grid-template-columns:1fr}
  .stat:not(:last-child)::after{display:none}
  .stat{border-bottom:1px solid rgba(231,198,107,.15)}
  .carousel-nav{width:40px;height:40px}
  .carousel-nav.prev{left:8px}.carousel-nav.next{right:8px}
  .hero-meta{gap:1.4rem}
}
