/* ============================================================
   Stanley A. Kongnetiman
   Navy + Gold — Corporate Personal Design System
   ============================================================ */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --n950: #020810; --n900: #050D1A; --n800: #071629;
  --n700: #0A1F3C; --n600: #0E2850; --n500: #173570;
  --g600: #A8893A; --g500: #C8A951; --g400: #D4BE76; --g300: #E8D4A0;
  --s100: #E8EDF5; --s200: #C8D3E8; --s300: #9BADC8; --s400: #6B85AA;

  --bg: var(--n900); --bg2: var(--n800); --bgc: var(--n700); --bgh: var(--n600);
  --tx: var(--s100); --mu: var(--s300); --ac: var(--g500);
  --bd:  rgba(200,169,81,.16); --bdh: rgba(200,169,81,.44);
  --gl:  rgba(200,169,81,.08);

  --ff-d: 'Playfair Display', Georgia, serif;
  --ff-b: 'Inter', system-ui, sans-serif;
  --ease: cubic-bezier(.16,1,.3,1);
  --sec: 96px; --wrap: 1200px;
}

html { scroll-behavior: smooth; overflow-x: clip; }
body { font-family: var(--ff-b); background: var(--bg); color: var(--tx); line-height: 1.7; overflow-x: hidden; }
img  { display: block; max-width: 100%; }
a    { color: inherit; }

/* ==============================
   LOADER
   CSS-only dismiss if JS fails
   ============================== */
#loader {
  position: fixed; inset: 0; z-index: 99999;
  background: var(--n950);
  display: flex; align-items: center; justify-content: center; flex-direction: column;
  animation: loaderAuto 3s forwards;         /* CSS fallback: gone by 3s */
  transition: opacity .8s ease, visibility .8s ease;
}
#loader.done { opacity: 0; visibility: hidden; pointer-events: none; animation: none; }
@keyframes loaderAuto {
  0%,70%  { opacity: 1; visibility: visible; }
  100%    { opacity: 0; visibility: hidden; pointer-events: none; }
}
.ldr-mono {
  font-family: var(--ff-d); font-size: 5rem; font-weight: 700; line-height: 1;
  background: linear-gradient(135deg,var(--g600),var(--g500),var(--g300));
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  animation: ldrP 1.6s ease-in-out infinite;
}
.ldr-name { font-size: .7rem; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--mu); margin: 14px 0 28px; }
.ldr-bar  { width: 160px; height: 1px; background: rgba(200,169,81,.14); position: relative; overflow: hidden; }
.ldr-bar::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(90deg,transparent,var(--g500),transparent);
  animation: ldrS 1.3s ease-in-out infinite;
}
@keyframes ldrP { 0%,100%{opacity:.3} 50%{opacity:1} }
@keyframes ldrS { 0%{transform:translateX(-100%)} 100%{transform:translateX(100%)} }

/* ==============================
   SCROLL PROGRESS
   ============================== */
#progress {
  position: fixed; top: 0; left: 0; height: 2px; width: 0%; z-index: 9998;
  background: linear-gradient(90deg,var(--g600),var(--g500),var(--g300));
  transition: width .1s linear;
}

/* ==============================
   NAV
   ============================== */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 9999;
  padding: 22px 0; transition: padding .4s var(--ease), background .4s var(--ease), border-color .4s;
}
.nav.scrolled {
  background: rgba(5,13,26,.9); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--bd); padding: 13px 0;
}
.nav-inner { max-width: var(--wrap); margin: 0 auto; padding: 0 48px; display: flex; align-items: center; justify-content: space-between; }
.logo { font-family: var(--ff-d); font-size: 1.1rem; font-weight: 600; text-decoration: none; color: var(--tx); letter-spacing: .02em; }
.logo em { font-style: normal; color: var(--ac); }
.nav-links { display: flex; gap: 32px; list-style: none; }
.nav-links a {
  font-size: .79rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  text-decoration: none; color: var(--mu); position: relative; transition: color .35s;
}
.nav-links a::after { content: ''; position: absolute; bottom: -3px; left: 0; width: 0; height: 1px; background: var(--ac); transition: width .35s var(--ease); }
.nav-links a:hover { color: var(--ac); }
.nav-links a:hover::after { width: 100%; }
.nav-cta { border: 1px solid var(--ac) !important; color: var(--ac) !important; padding: 6px 18px; border-radius: 3px; }
.nav-cta::after { display: none !important; }
.nav-cta:hover { background: var(--ac) !important; color: var(--n950) !important; }
.hamburger { display: none; flex-direction: column; gap: 5px; background: none; border: none; cursor: pointer; padding: 4px; z-index: 1001; }
.hamburger span { display: block; width: 22px; height: 2px; background: var(--tx); border-radius: 2px; transition: all .3s ease; }

/* ==============================
   HERO
   ============================== */
.hero {
  position: relative; min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  overflow: hidden; background: var(--n900);
}
#particles { position: absolute; inset: 0; z-index: 0; }
.hero-overlay {
  position: absolute; inset: 0; z-index: 1;
  background:
    radial-gradient(ellipse 110% 80% at 50% -5%,  rgba(7,22,41,.98) 0%, transparent 60%),
    radial-gradient(ellipse 70%  90% at 0%   60%,  rgba(5,13,26,.85) 0%, transparent 50%),
    radial-gradient(ellipse 50%  60% at 100% 90%,  rgba(200,169,81,.04) 0%, transparent 55%);
}
.hero-content { position: relative; z-index: 2; text-align: center; max-width: 860px; padding: 80px 32px 120px; }

.eyebrow {
  display: inline-flex; align-items: center; gap: 14px;
  font-size: .7rem; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--ac);
  margin-bottom: 28px; opacity: 0; transform: translateY(16px);
}
.eyebrow::before, .eyebrow::after { content: ''; width: 36px; height: 1px; background: var(--ac); opacity: .5; }
.hero-name {
  font-family: var(--ff-d); font-size: clamp(3.2rem,7.5vw,6.2rem);
  font-weight: 700; line-height: 1.04; margin-bottom: 24px;
  opacity: 0; transform: translateY(28px);
}
.hero-name .line1 { display: block; color: var(--tx); }
.hero-name .line2 {
  display: block;
  background: linear-gradient(125deg,var(--g600) 0%,var(--g500) 45%,var(--g300) 100%);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
}
.hero-tag { font-size: clamp(1rem,2vw,1.2rem); color: var(--mu); max-width: 580px; margin: 0 auto 10px; line-height: 1.65; opacity: 0; transform: translateY(18px); }
.hero-sub { font-size: .92rem; color: var(--s400); font-style: italic; max-width: 480px; margin: 0 auto 36px; opacity: 0; transform: translateY(18px); }
.hero-creds { display: flex; align-items: center; justify-content: center; gap: 14px; margin-bottom: 48px; opacity: 0; transform: translateY(18px); }
.hero-creds span { font-size: .75rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ac); }
.hero-creds .dot { width: 4px; height: 4px; background: var(--ac); border-radius: 50%; opacity: .4; }
.hero-btns { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; opacity: 0; transform: translateY(18px); }

.scroll-hint { position: absolute; bottom: 36px; left: 0; right: 0; margin: 0 auto; width: max-content; z-index: 2; display: flex; flex-direction: column; align-items: center; gap: 10px; opacity: 0; transform: translateY(12px); }
.scroll-hint span { font-size: .63rem; letter-spacing: .18em; text-transform: uppercase; color: var(--s400); }
.mouse-icon { width: 20px; height: 34px; border: 1px solid rgba(200,169,81,.3); border-radius: 12px; display: flex; justify-content: center; padding-top: 6px; }
.mouse-wheel { width: 2px; height: 7px; background: var(--ac); border-radius: 2px; animation: mw 2.2s ease-in-out infinite; }
@keyframes mw { 0%,100%{transform:translateY(0);opacity:1} 50%{transform:translateY(7px);opacity:.2} }

/* ==============================
   BUTTONS
   ============================== */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 13px 30px; border-radius: 3px; font-size: .82rem;
  font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
  text-decoration: none; border: none; cursor: pointer;
  position: relative; overflow: hidden; transition: all .4s var(--ease);
}
.btn::after { content: ''; position: absolute; inset: 0; background: rgba(255,255,255,.08); transform: translateX(-100%); transition: transform .4s var(--ease); }
.btn:hover::after { transform: translateX(0); }
.btn-gold { background: linear-gradient(130deg,var(--g600),var(--g500)); color: var(--n950); }
.btn-gold:hover { transform: translateY(-2px); box-shadow: 0 10px 32px rgba(200,169,81,.36); }
.btn-ghost { background: transparent; color: var(--tx); border: 1px solid rgba(232,237,245,.2); }
.btn-ghost:hover { border-color: var(--ac); color: var(--ac); transform: translateY(-2px); }

/* ==============================
   STATS BAR
   ============================== */
.stats { background: var(--n950); border-top: 1px solid var(--bd); border-bottom: 1px solid var(--bd); padding: 56px 48px; }
.stats-grid { max-width: var(--wrap); margin: 0 auto; display: grid; grid-template-columns: repeat(4,1fr); gap: 32px; }
.stat { text-align: center; position: relative; }
.stat + .stat::before { content: ''; position: absolute; left: 0; top: 10%; height: 80%; width: 1px; background: var(--bd); }
.stat-n { font-family: var(--ff-d); font-size: clamp(2.4rem,4vw,3.4rem); font-weight: 700; color: var(--ac); line-height: 1; margin-bottom: 8px; }
.stat-l { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--mu); font-weight: 600; }

/* ==============================
   SECTION COMMONS
   ============================== */
.section { padding: var(--sec) 48px; }
.wrap    { max-width: var(--wrap); margin: 0 auto; }
.sec-tag { font-size: .68rem; font-weight: 700; letter-spacing: .25em; text-transform: uppercase; color: var(--ac); margin-bottom: 14px; display: flex; align-items: center; gap: 12px; }
.sec-tag::before { content: ''; width: 28px; height: 1px; background: var(--ac); }
.sec-title { font-family: var(--ff-d); font-size: clamp(2rem,4vw,2.9rem); font-weight: 700; line-height: 1.15; margin-bottom: 20px; }
.sec-title .g { color: var(--ac); }
.sec-lead { font-size: 1.05rem; color: var(--mu); max-width: 620px; line-height: 1.8; }

/* ==============================
   ABOUT
   ============================== */
.about { background: var(--bg2); overflow: hidden; }
.about-grid { display: grid; grid-template-columns: 1fr 1.45fr; gap: 88px; align-items: center; }

.photo-wrap { position: relative; }
.photo-box  { width: 100%; aspect-ratio: 3/4; background: var(--bgc); border-radius: 4px; overflow: hidden; position: relative; }
.photo-box img { width: 100%; height: 110%; object-fit: cover; display: block; transition: transform .8s var(--ease); will-change: transform; }
.photo-ph { width:100%; height:100%; background: linear-gradient(155deg,var(--n600),var(--n800)); display:flex; align-items:center; justify-content:center; }
.photo-ph svg { width:72px; height:72px; opacity:.12; fill:var(--ac); }
.photo-border { position:absolute; inset:-14px; border:1px solid var(--bd); border-radius:4px; pointer-events:none; transform:translate(14px,14px); }
.photo-badge { position:absolute; bottom:-22px; right:-22px; background:var(--ac); color:var(--n950); padding:16px 18px; border-radius:4px; text-align:center; min-width:90px; }
.photo-badge strong { display:block; font-family:var(--ff-d); font-size:1.5rem; font-weight:700; line-height:1; }
.photo-badge small  { font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }

.about-body { margin-top: 26px; display: flex; flex-direction: column; gap: 18px; }
.about-body p { color: var(--mu); line-height: 1.85; padding-left: 18px; border-left: 2px solid var(--bd); transition: border-color .4s; }
.about-body p:hover { border-left-color: var(--ac); }
.tags { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 30px; }
.tag { padding: 5px 15px; border: 1px solid var(--bd); border-radius: 100px; font-size: .78rem; color: var(--mu); font-weight: 500; letter-spacing: .04em; transition: all .4s var(--ease); cursor: default; }
.tag:hover { border-color: var(--ac); color: var(--ac); background: var(--gl); }

/* ==============================
   SPEAKING BAND (split screen)
   ============================== */
.speaking-band { display: grid; grid-template-columns: 55% 45%; overflow: hidden; min-height: 500px; }
.speaking-img  { position: relative; overflow: hidden; }
.speaking-img img { width: 100%; height: 100%; object-fit: cover; object-position: center 25%; display: block; transition: transform .8s var(--ease); }
.speaking-band:hover .speaking-img img { transform: scale(1.03); }
.speaking-panel {
  background: var(--n800); border-left: 1px solid var(--bd);
  padding: 64px 52px; display: flex; flex-direction: column; justify-content: center; gap: 24px;
}
.speaking-panel .sec-title { font-size: clamp(1.7rem,2.8vw,2.4rem); margin-bottom: 0; }
.speaking-panel p { color: var(--mu); line-height: 1.85; font-size: .97rem; }
.speak-stats { display: flex; gap: 32px; padding: 20px 0; border-top: 1px solid var(--bd); border-bottom: 1px solid var(--bd); }
.speak-stat  { display: flex; flex-direction: column; }
.speak-n     { font-family: var(--ff-d); font-size: 2rem; font-weight: 700; color: var(--ac); line-height: 1; }
.speak-l     { font-size: .68rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--mu); margin-top: 4px; }

/* ==============================
   EXPERTISE CARDS
   ============================== */
.expertise { background: var(--bg); }
.cards { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; margin-top: 60px; }
.card {
  background: var(--bgc); border: 1px solid var(--bd); border-radius: 8px;
  padding: 36px 32px; position: relative; overflow: hidden;
  transition: border-color .4s var(--ease), transform .4s var(--ease), box-shadow .4s var(--ease), background .4s;
  cursor: default; transform-style: preserve-3d;
}
.card::before { content: ''; position: absolute; inset: 0; background: linear-gradient(135deg,rgba(200,169,81,.05) 0%,transparent 55%); opacity: 0; transition: opacity .4s; }
.card::after  { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg,transparent,var(--ac),transparent); transform: scaleX(0); transition: transform .4s var(--ease); }
.card:hover { border-color: var(--bdh); transform: translateY(-6px); background: var(--bgh); box-shadow: 0 20px 60px rgba(0,0,0,.28), 0 0 0 1px rgba(200,169,81,.07); }
.card:hover::before { opacity: 1; }
.card:hover::after  { transform: scaleX(1); }
.card-ico { width: 48px; height: 48px; border-radius: 8px; background: rgba(200,169,81,.09); display: flex; align-items: center; justify-content: center; margin-bottom: 20px; transition: background .4s; }
.card:hover .card-ico { background: rgba(200,169,81,.17); }
.card-ico svg { width: 22px; height: 22px; stroke: var(--ac); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.card-title { font-family: var(--ff-d); font-size: 1.12rem; font-weight: 600; margin-bottom: 10px; }
.card-desc  { font-size: .88rem; color: var(--mu); line-height: 1.7; margin-bottom: 18px; }
.card-list  { list-style: none; display: flex; flex-direction: column; gap: 5px; }
.card-list li { font-size: .78rem; color: var(--s400); padding-left: 14px; position: relative; }
.card-list li::before { content: '--'; position: absolute; left: 0; color: var(--ac); opacity: .45; }

/* ==============================
   EXPERIENCE TIMELINE
   ============================== */
.experience { background: var(--bg2); }
.timeline { position: relative; margin-top: 60px; padding-left: 44px; }
.timeline::before { content: ''; position: absolute; left: 0; top: 10px; bottom: 0; width: 1px; background: linear-gradient(to bottom,var(--ac),rgba(200,169,81,.06)); }
.tl-item { position: relative; padding-bottom: 58px; }
.tl-item:last-child { padding-bottom: 0; }
.tl-dot { position: absolute; left: -51px; top: 10px; width: 14px; height: 14px; border-radius: 50%; background: var(--ac); border: 3px solid var(--bg2); box-shadow: 0 0 0 1px var(--ac); }
.tl-badge { display: inline-block; font-size: .67rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; background: var(--ac); color: var(--n950); padding: 3px 10px; border-radius: 100px; margin-bottom: 10px; }
.tl-co   { font-family: var(--ff-d); font-size: 1.25rem; font-weight: 600; margin-bottom: 4px; }
.tl-role { font-size: .92rem; color: var(--ac); font-weight: 500; margin-bottom: 14px; }
.tl-desc { color: var(--mu); font-size: .92rem; line-height: 1.85; max-width: 680px; }

/* ==============================
   RESEARCH BAND (full-width image)
   ============================== */
.research-band { position: relative; overflow: hidden; height: 380px; display: flex; align-items: center; justify-content: flex-end; }
.research-img  { position: absolute; inset: 0; }
.research-img img { width: 100%; height: 120%; object-fit: cover; display: block; will-change: transform; }
.research-img::after {
  content: ''; position: absolute; inset: 0;
  background: linear-gradient(270deg, rgba(5,13,26,.97) 0%, rgba(5,13,26,.75) 42%, rgba(5,13,26,.15) 100%);
}
.research-content { position: relative; z-index: 2; padding: 0 48px; max-width: 520px; text-align: right; }
.research-content .sec-tag { justify-content: flex-end; }
.research-content .sec-tag::before { display: none; }
.research-content .sec-tag::after { content: ''; width: 28px; height: 1px; background: var(--ac); }
.research-content .sec-title { font-size: clamp(1.6rem,3vw,2.2rem); }
.research-content p { color: var(--mu); font-size: .95rem; line-height: 1.8; margin-top: 12px; }

/* ==============================
   BOOK SECTION
   ============================== */
.book-sec {
  background: linear-gradient(145deg,var(--n950) 0%,var(--n800) 55%,#0A1929 100%);
  padding: var(--sec) 48px; position: relative; overflow: hidden;
}
.book-sec::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 65% 80% at 100% 50%,rgba(200,169,81,.06) 0%,transparent 65%); }
.book-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 80px; align-items: center; position: relative; z-index: 1; }
.book-float { display: flex; justify-content: center; }
.book-3d { animation: bookFloat 4.5s ease-in-out infinite; }
@keyframes bookFloat { 0%,100%{transform:translateY(0) rotateY(-9deg)} 50%{transform:translateY(-18px) rotateY(-5deg)} }
.book-cover-el {
  width: 230px; aspect-ratio: 2/3;
  background: linear-gradient(165deg,#15080E 0%,#2A1020 45%,#15080E 100%);
  border-radius: 4px 10px 10px 4px;
  box-shadow: -6px 0 0 rgba(200,169,81,.26), 0 24px 70px rgba(0,0,0,.65), inset -2px 0 10px rgba(0,0,0,.4);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 28px 22px; text-align: center; position: relative; overflow: hidden;
}
.book-cover-el::before { content: ''; position: absolute; inset: 0; background: linear-gradient(158deg,rgba(200,169,81,.09) 0%,transparent 50%); }
.bc-from  { font-size: .66rem; letter-spacing: .22em; text-transform: uppercase; color: var(--g400); margin-bottom: 5px; font-weight: 700; }
.bc-trust { font-family: var(--ff-d); font-size: 2.1rem; font-weight: 800; color: #fff; line-height: .9; }
.bc-to    { font-size: .58rem; letter-spacing: .28em; text-transform: uppercase; color: var(--g400); margin: 6px 0; }
.bc-test  { font-family: var(--ff-d); font-size: 2.1rem; font-weight: 800; color: var(--g500); line-height: .9; margin-bottom: 16px; }
.bc-line  { width: 38px; height: 1px; background: var(--ac); opacity: .5; margin: 0 auto 14px; }
.bc-sub   { font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.42); line-height: 1.5; margin-bottom: 14px; }
.bc-auth  { font-size: .6rem; letter-spacing: .09em; text-transform: uppercase; color: rgba(255,255,255,.48); }

.book-badges { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 20px; }
.bk-badge  { font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; padding: 4px 13px; border-radius: 100px; }
.bk-preorder { background: rgba(200,169,81,.13); border: 1px solid rgba(200,169,81,.36); color: var(--ac); }
.bk-date     { background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.13); color: var(--mu); }
.book-desc   { font-size: .97rem; color: var(--mu); line-height: 1.88; margin-bottom: 18px; }
.book-sources { display: inline-flex; align-items: center; gap: 8px; font-size: .82rem; color: var(--ac); font-weight: 700; margin-bottom: 32px; }
.book-sources svg { width: 15px; height: 15px; stroke: var(--ac); fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.book-btns { display: flex; gap: 13px; flex-wrap: wrap; }

/* ==============================
   CONTACT
   ============================== */
.contact { background: var(--bg); }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; margin-top: 52px; }
.contact-intro { font-size: 1.02rem; color: var(--mu); line-height: 1.88; }
.contact-note  { font-size: .88rem; color: var(--s400); margin-top: 16px; font-style: italic; line-height: 1.7; }
.clist { display: flex; flex-direction: column; gap: 22px; }
.citem { display: flex; align-items: flex-start; gap: 18px; }
.c-ico { width: 44px; height: 44px; border-radius: 8px; background: rgba(200,169,81,.07); border: 1px solid var(--bd); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all .4s; }
.citem:hover .c-ico { background: rgba(200,169,81,.14); border-color: var(--bdh); }
.c-ico svg { width: 17px; height: 17px; stroke: var(--ac); fill: none; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.c-lbl { font-size: .67rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; color: var(--s400); margin-bottom: 3px; }
.c-val { font-size: .93rem; font-weight: 500; text-decoration: none; color: var(--tx); transition: color .35s; display: block; }
.c-val:hover { color: var(--ac); }

/* ==============================
   FOOTER
   ============================== */
footer { background: var(--n950); border-top: 1px solid var(--bd); padding: 44px 48px; }
.foot-inner { max-width: var(--wrap); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; }
.foot-logo { font-family: var(--ff-d); font-size: 1.05rem; font-weight: 600; }
.foot-logo em { font-style: normal; color: var(--ac); }
.foot-links { display: flex; gap: 26px; list-style: none; }
.foot-links a { font-size: .78rem; color: var(--mu); text-decoration: none; letter-spacing: .05em; transition: color .35s; }
.foot-links a:hover { color: var(--ac); }
.foot-copy { max-width: var(--wrap); margin: 26px auto 0; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.05); font-size: .74rem; color: var(--s400); text-align: center; }

/* ==============================
   SCROLL REVEAL ANIMATIONS
   ============================== */
.reveal, .reveal-l, .reveal-r {
  opacity: 0;
  transition: opacity .9s var(--ease), transform .9s var(--ease);
}
.reveal   { transform: translateY(40px); }
.reveal-l { transform: translateX(-40px); }
.reveal-r { transform: translateX(40px); }
.reveal.in, .reveal-l.in, .reveal-r.in { opacity: 1; transform: none; }

.stagger > * { opacity: 0; transform: translateY(28px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.stagger.in > *:nth-child(1) { transition-delay:   0ms; }
.stagger.in > *:nth-child(2) { transition-delay: 110ms; }
.stagger.in > *:nth-child(3) { transition-delay: 220ms; }
.stagger.in > *:nth-child(4) { transition-delay: 330ms; }
.stagger.in > *:nth-child(5) { transition-delay: 440ms; }
.stagger.in > *:nth-child(6) { transition-delay: 550ms; }
.stagger.in > * { opacity: 1; transform: none; }

/* image fade-in (enhancement — images visible without JS) */
.img-fade { transition: opacity .8s var(--ease); }

/* ==============================
   EXPERIENCE — desktop cards
   ============================== */
@media (min-width: 769px) {
  .timeline { padding-left: 0; display: flex; flex-direction: column; gap: 14px; }
  .timeline::before { display: none; }
  .tl-item {
    display: grid; grid-template-columns: auto 1fr; column-gap: 28px;
    align-items: start; padding: 28px 36px;
    border: 1px solid var(--bd); border-left: 3px solid var(--ac);
    border-radius: 0 8px 8px 0;
    background: linear-gradient(100deg, rgba(10,31,60,.7) 0%, var(--n800) 60%);
    transition: transform .3s var(--ease), box-shadow .3s, border-left-color .3s;
    padding-bottom: 28px;
  }
  .tl-item:hover {
    transform: translateX(7px);
    box-shadow: -4px 0 0 var(--ac), 0 10px 40px rgba(0,0,0,.32);
    border-left-color: var(--g300);
  }
  .tl-dot { display: none !important; }
  .tl-badge { grid-column: 1; grid-row: 1; margin-bottom: 0; align-self: center; white-space: nowrap; }
  .tl-co    { grid-column: 2; grid-row: 1; align-self: center; }
  .tl-role  { grid-column: 2; grid-row: 2; margin-bottom: 0; padding-top: 3px; }
  .tl-desc  { grid-column: 1 / -1; grid-row: 3; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--bd); max-width: none; }
  /* Sector colours */
  .tl-item:nth-child(1) { border-left-color: #2A7B9B; }
  .tl-item:nth-child(1) .tl-badge { background: #2A7B9B; }
  .tl-item:nth-child(1):hover { box-shadow: -4px 0 0 #2A7B9B, 0 10px 40px rgba(0,0,0,.32); }
  .tl-item:nth-child(2) { border-left-color: #7B4DB8; }
  .tl-item:nth-child(2) .tl-badge { background: #7B4DB8; }
  .tl-item:nth-child(2):hover { box-shadow: -4px 0 0 #7B4DB8, 0 10px 40px rgba(0,0,0,.32); }
  .tl-item:nth-child(4) { border-left-color: #B85A1A; }
  .tl-item:nth-child(4) .tl-badge { background: #B85A1A; }
  .tl-item:nth-child(4):hover { box-shadow: -4px 0 0 #B85A1A, 0 10px 40px rgba(0,0,0,.32); }
  .tl-item:nth-child(5) { border-left-color: #2A8A5B; }
  .tl-item:nth-child(5) .tl-badge { background: #2A8A5B; }
  .tl-item:nth-child(5):hover { box-shadow: -4px 0 0 #2A8A5B, 0 10px 40px rgba(0,0,0,.32); }
}

/* ==============================
   RESPONSIVE
   ============================== */
@media (max-width: 1024px) {
  .about-grid   { grid-template-columns: 1fr; gap: 48px; }
  .photo-wrap   { max-width: 380px; margin: 0 auto; }
  .cards        { grid-template-columns: repeat(2,1fr); }
  .book-grid    { grid-template-columns: 1fr; gap: 48px; }
  .book-btns    { justify-content: flex-start; }
  .contact-grid { grid-template-columns: 1fr; gap: 48px; }
  .speaking-band { grid-template-columns: 1fr; }
  .speaking-img  { height: 320px; }
  .speaking-panel { padding: 40px 36px; }
}
@media (max-width: 768px) {
  :root { --sec: 64px; }
  .section, .stats, .book-sec, .contact, footer { padding-inline: 20px; }
  .nav-inner, .research-content { padding-inline: 20px; }
  /* Contain decorative overflows on mobile */
  .photo-border { inset: -8px; transform: translate(8px, 8px); }
  .photo-badge  { right: -8px; bottom: -8px; }
  .expertise, .experience, .book-sec, .contact { overflow: hidden; }
  .nav-links {
    display: none;
    position: fixed; top: 0; left: 0; width: 100%; height: 100vh;
    background: var(--n950);
    flex-direction: column; align-items: center; justify-content: center;
    gap: 32px; z-index: 9998;
    overflow-y: auto; padding: 100px 24px 48px;
  }
  .nav-links.open { display: flex; }
  .nav-links a { font-size: 1.25rem; letter-spacing: .06em; color: var(--tx); }
  .nav-links a:hover { color: var(--ac); }
  .nav-cta {
    border-color: var(--ac) !important; color: var(--ac) !important;
    padding: 10px 28px !important;
  }
  .hamburger { display: flex; position: relative; z-index: 10000; }
  .stats-grid { grid-template-columns: repeat(2,1fr); }
  .stat + .stat::before { display: none; }
  .stat:nth-child(odd) { border-right: 1px solid var(--bd); }
  .cards { grid-template-columns: 1fr; }
  .hero-btns { flex-direction: column; align-items: center; }
  .speaking-band { grid-template-columns: 1fr; }
  .speaking-img  { height: 260px; }
  .speaking-panel { padding: 36px 20px; border-left: none; border-top: 1px solid var(--bd); }
  .speak-stats { gap: 20px; }
  .research-band { height: auto; min-height: 320px; }
  .research-content { text-align: left; padding-inline: 20px; }
  .research-content .sec-tag { justify-content: flex-start; }
  .research-content .sec-tag::after { display: none; }
  .research-content .sec-tag::before { display: block; }
}
