/* Nadia Shah — "Chain of Office" design
   Ink + gilt for civic ceremony, Portland stone for Camden Town Hall,
   sindoor red and kantha running-stitch for Bengali heritage. */
:root{
  --ink:#16132B; --ink-2:#1F1B3A; --ink-3:#0E0C1D;
  --gilt:#B8924A; --gilt-lt:#E2CC97; --gilt-dk:#8C6D33;
  --sindoor:#A3202F;
  --stone:#ECE9E3; --stone-2:#E2DED6; --paper:#F8F7F4;
  --text:#1D1B26; --muted:#615E6C; --line:#D9D4CA; --line-dk:rgba(226,204,151,.18);
  --display:"Bodoni Moda",Didot,"Times New Roman",serif;
  --sans:"Hanken Grotesk",system-ui,sans-serif;
  --bn:"Tiro Bangla",serif;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--text);font:400 16px/1.7 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}
img{max-width:100%;display:block}
::selection{background:var(--gilt-lt);color:var(--ink)}
:focus-visible{outline:2px solid var(--gilt);outline-offset:3px}
.wrap{max-width:1240px;margin:0 auto;padding:0 40px}
section{padding:130px 0;scroll-margin-top:72px;position:relative}
h1,h2,h3{font-family:var(--display);font-weight:400;margin:0;line-height:1.08;letter-spacing:-.01em}
h2{font-size:clamp(2.3rem,4.4vw,3.6rem)}
h2 em,h1 em{font-style:italic;color:var(--gilt)}
p{margin:0 0 1.1em}
em{font-style:italic}
.bn{font-family:var(--bn)}
.ink{background:var(--ink);color:#F1EEE6}
.stone{background:var(--stone)}

/* chapter heading: roman numeral + label, then title */
.ch{display:flex;align-items:baseline;gap:14px;margin-bottom:22px;color:var(--gilt-dk)}
.ink .ch{color:var(--gilt-lt)}
.ch b{font:italic 400 1.5rem/1 var(--display)}
.ch span{font:500 .78rem var(--sans);letter-spacing:.14em;text-transform:uppercase}
.lede{font-size:1.08rem;color:var(--muted);max-width:58ch}
.ink .lede{color:rgba(241,238,230,.72)}

/* kantha running stitch with a centre diamond */
.stitch{height:12px;position:relative;margin:28px 0;max-width:220px}
.stitch::before{content:"";position:absolute;left:0;right:0;top:5px;border-top:2px dashed var(--gilt);opacity:.7}
.stitch::after{content:"";position:absolute;left:50%;top:1px;width:9px;height:9px;background:var(--sindoor);transform:translateX(-50%) rotate(45deg)}
.center .stitch{margin-left:auto;margin-right:auto}

.btn{display:inline-flex;align-items:center;gap:12px;font:600 .86rem var(--sans);letter-spacing:.02em;padding:15px 28px;border-radius:2px;text-decoration:none;border:1px solid var(--gilt);background:var(--gilt);color:var(--ink-3);cursor:pointer;transition:background .25s,color .25s,border-color .25s}
.btn:hover{background:var(--gilt-lt);border-color:var(--gilt-lt)}
.btn.ghost{background:transparent;color:var(--gilt-lt)}
.btn.ghost:hover{background:var(--gilt);color:var(--ink-3)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:#fff}
.btn.dark:hover{background:var(--ink-2)}
.btn .ar{transition:transform .25s var(--ease)}
.btn:hover .ar{transform:translateX(4px)}
.textlink{font:600 .82rem var(--sans);color:var(--gilt-dk);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px}
.textlink:hover{color:var(--sindoor)}
.round{width:40px;height:40px;border-radius:50%;border:1px solid currentColor;background:none;color:inherit;cursor:pointer;display:inline-grid;place-items:center;font-size:1rem;opacity:.75;transition:opacity .2s,color .2s}
.round:hover{opacity:1;color:var(--gilt)}

/* image slot: real photo when set, otherwise an illustration */
.slot{position:relative;overflow:hidden;background:var(--ink-2);color:var(--gilt-lt)}
.slot img{width:100%;height:100%;object-fit:cover;object-position:center 25%}
.slot .art{position:absolute;inset:0;display:grid;place-items:center;background:
  radial-gradient(70% 60% at 50% 40%,rgba(184,146,74,.16),transparent 70%),
  repeating-linear-gradient(45deg,rgba(226,204,151,.035) 0 2px,transparent 2px 14px),var(--ink-2)}
.slot .art svg{width:62%;height:62%;max-width:240px}
.slot.light{background:var(--stone-2);color:var(--ink)}
.slot.light .art{background:radial-gradient(70% 60% at 50% 40%,rgba(184,146,74,.18),transparent 70%),repeating-linear-gradient(45deg,rgba(22,19,43,.035) 0 2px,transparent 2px 14px),var(--stone-2);color:var(--ink)}
.art .sun{fill:var(--sindoor);stroke:none;opacity:.85}
.art .gold{stroke:var(--gilt)}
.monogram{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(60% 60% at 50% 45%,#2B2650,var(--ink-2))}
.monogram span{font:italic 400 clamp(4rem,9vw,7.5rem)/1 var(--display);color:var(--gilt-lt);letter-spacing:-.04em}
.monogram small{position:absolute;bottom:18%;font:400 1rem var(--bn);color:var(--gilt)}

.reveal{opacity:0;transform:translateY(22px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.reveal{opacity:1;transform:none}}

/* ---------- loader ---------- */
.loading{position:fixed;inset:0;background:var(--ink-3);display:grid;place-items:center;z-index:100;transition:opacity .6s,visibility .6s}
.loading.done{opacity:0;visibility:hidden}
.loading span{font:italic 400 2rem var(--display);color:var(--gilt-lt)}

/* ---------- header ---------- */
header{position:absolute;inset:0 0 auto;z-index:40;color:#F1EEE6;transition:background .3s}
header.fixed{position:fixed;background:rgba(14,12,29,.94);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line-dk);animation:drop .35s var(--ease)}
@keyframes drop{from{transform:translateY(-100%)}to{transform:none}}
.nav{display:flex;align-items:center;justify-content:space-between;height:88px;gap:24px}
header.fixed .nav{height:72px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.brand .seal{width:46px;height:46px;border-radius:50%;border:1px solid var(--gilt);display:grid;place-items:center;font:italic 400 1.1rem var(--display);color:var(--gilt-lt);position:relative}
.brand .seal::after{content:"";position:absolute;inset:3px;border-radius:50%;border:1px dashed rgba(226,204,151,.45)}
.brand b{display:block;font:400 1.45rem/1 var(--display)}
.brand small{display:block;white-space:nowrap;font:500 .64rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gilt-lt);margin-top:6px}
.links{display:flex;align-items:center;gap:22px;font:500 .8rem var(--sans)}
.links a{white-space:nowrap;text-decoration:none;opacity:.82;position:relative;padding:6px 0}
.links a:not(.btn)::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--gilt);transform:scaleX(0);transition:transform .3s var(--ease)}
.links a:hover{opacity:1}
.links a:hover::after,.links a.active::after{transform:scaleX(1)}
.links a.active{opacity:1;color:var(--gilt-lt)}
.links .icon{display:inline-grid;place-items:center;width:30px;height:30px}
.links .icon svg{width:15px;height:15px;fill:currentColor}
.links .icon::after{display:none}
.links .btn{padding:10px 20px;opacity:1}
.menu-btn{display:none;background:none;border:1px solid rgba(226,204,151,.45);color:#fff;font:600 .8rem var(--sans);padding:9px 16px;border-radius:2px;cursor:pointer}
@media (max-width:1340px){.brand small{display:none}}
@media (max-width:1180px){
  .menu-btn{display:block}
  .links{position:absolute;top:100%;left:0;right:0;background:var(--ink-3);flex-direction:column;align-items:flex-start;padding:26px 40px 32px;gap:14px;font-size:1rem;display:none;border-top:1px solid var(--line-dk)}
  .links.open{display:flex}
}

/* ---------- hero ---------- */
.hero{min-height:100vh;min-height:100svh;padding:150px 0 0;background:var(--ink-3);color:#F1EEE6;overflow:hidden;display:flex;flex-direction:column}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(45% 55% at 74% 46%,rgba(184,146,74,.20),transparent 70%),radial-gradient(40% 50% at 10% 90%,rgba(163,32,47,.14),transparent 70%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.12fr .88fr;gap:40px;align-items:center;flex:1}
.hero .eyebrow{display:inline-flex;align-items:center;gap:12px;font:500 .78rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gilt-lt)}
.hero .eyebrow::before{content:"";width:40px;height:1px;background:var(--gilt)}
.hero h1{font-size:clamp(4.2rem,10.5vw,9.4rem);line-height:.9;letter-spacing:-.035em;margin:24px 0 8px}
.hero h1 span{display:block}
.hero h1 .l2{font-style:italic;color:var(--gilt-lt);padding-left:.55em}
.hero .bnname{font:400 1.7rem var(--bn);color:var(--gilt);margin:6px 0 26px}
.hero .statement{font:400 1.18rem/1.6 var(--sans);color:rgba(241,238,230,.82);max-width:46ch;margin:0 0 30px}
.rot{border-top:2px dashed rgba(184,146,74,.55);padding-top:22px;max-width:520px;min-height:120px;position:relative}
.rot p{font:italic 400 1.42rem/1.4 var(--display);margin:0;position:absolute;left:0;right:0;opacity:0;transform:translateY(10px);transition:opacity .9s var(--ease),transform .9s var(--ease)}
.rot p.on{opacity:1;transform:none;position:relative}
.rot p em{color:var(--gilt-lt)}
.rot .dots{display:flex;gap:8px;margin-top:16px}
.rot .dots button{width:22px;height:3px;border:0;padding:0;background:rgba(241,238,230,.25);cursor:pointer}
.rot .dots button[aria-current="true"]{background:var(--gilt)}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}

/* the medallion */
.medal{position:relative;width:min(100%,520px);aspect-ratio:1;justify-self:center}
.medal .ring{position:absolute;inset:0;animation:spin 90s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.medal .ring text{font:500 13.5px var(--sans);letter-spacing:.32em;fill:var(--gilt-lt)}
.medal .face{position:absolute;inset:13%;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px var(--gilt),0 0 0 9px var(--ink-3),0 0 0 10px rgba(184,146,74,.6),0 40px 80px -30px rgba(0,0,0,.8)}
.medal .face .slot{position:absolute;inset:0}
.medal .beads{position:absolute;inset:4%;pointer-events:none}
.medal .clasp{position:absolute;left:50%;bottom:-2%;transform:translateX(-50%);width:64px;height:64px;border-radius:50%;background:var(--ink-3);border:1px solid var(--gilt);display:grid;place-items:center;color:var(--gilt-lt);font:italic 400 1.4rem var(--display)}

/* ribbon of facts */
.ribbon{position:relative;margin-top:70px;border-top:1px solid var(--line-dk);background:rgba(255,255,255,.02)}
.ribbon .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding-top:0}
.ribbon div.f{padding:28px 26px 30px;border-left:1px solid var(--line-dk)}
.ribbon div.f:first-child{border-left:0;padding-left:0}
.ribbon b{display:block;font:400 2.4rem/1 var(--display);color:var(--gilt-lt)}
.ribbon span{display:block;font-size:.8rem;color:rgba(241,238,230,.62);margin-top:8px;max-width:24ch}
@media (max-width:980px){
  .hero{padding-top:120px}
  .hero .wrap{grid-template-columns:1fr;gap:56px}
  .medal{width:min(86%,420px);order:-1}
  .ribbon .wrap{grid-template-columns:1fr 1fr}
  .ribbon div.f:nth-child(3){border-left:0;padding-left:0}
  .ribbon div.f{border-top:1px solid var(--line-dk)}
}

/* ---------- about ---------- */
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}
.portrait{position:relative;position:sticky;top:110px}
.portrait .slot{aspect-ratio:4/5;border-radius:2px}
.portrait::before{content:"";position:absolute;inset:-16px 16px 16px -16px;border:1px solid var(--gilt);z-index:-1}
.portrait figcaption{display:flex;justify-content:space-between;align-items:baseline;margin-top:18px;font-size:.84rem;color:var(--muted)}
.portrait figcaption .bn{font-size:1.2rem;color:var(--gilt-dk)}
.about h2{white-space:pre-line;margin-bottom:6px}
.about .body p{color:var(--muted);max-width:60ch}
.about .body p:first-of-type{font-size:1.14rem;color:var(--text)}
.about .body p:first-of-type::first-letter{float:left;font:400 5.2rem/.8 var(--display);color:var(--gilt);margin:8px 14px 0 0}
blockquote.pull{margin:40px 0;padding:34px 0 0;border-top:1px solid var(--line);font:italic 400 1.7rem/1.38 var(--display);color:var(--ink);max-width:28ch;position:relative}
blockquote.pull::before{content:"“";position:absolute;top:-30px;left:0;font:400 5rem/1 Georgia,serif;color:var(--sindoor);background:var(--paper);padding-right:14px}
blockquote.pull cite{display:block;margin-top:14px;font:500 .8rem var(--sans);font-style:normal;color:var(--muted);letter-spacing:.06em}
@media (max-width:980px){.about{grid-template-columns:1fr;gap:70px}.portrait{position:relative;top:0;max-width:440px}}

/* ---------- historic first ---------- */
.first{overflow:hidden}
.first::before{content:"";position:absolute;inset:0;background:radial-gradient(40% 60% at 85% 50%,rgba(184,146,74,.14),transparent 70%)}
.first .wrap{position:relative;display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:center}
.first .big{display:block;font:400 clamp(9rem,22vw,19rem)/.78 var(--display);color:transparent;-webkit-text-stroke:1.2px var(--gilt);margin:0 0 24px -10px;letter-spacing:-.05em}
.first .big sup{font-size:.36em;vertical-align:.95em;-webkit-text-stroke:1px var(--gilt);margin-left:.04em}
.first h2{max-width:18ch;margin-bottom:24px}
.first .lede{max-width:56ch}
.stats{display:grid;grid-template-columns:repeat(3,1fr);margin-top:44px;border-top:1px solid var(--line-dk)}
.stats div{padding:24px 24px 0 0}
.stats b{display:block;font:400 1.7rem var(--display);color:var(--gilt-lt)}
.stats span{font-size:.8rem;color:rgba(241,238,230,.6)}
.first .emblem{aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 1px var(--gilt),0 0 0 14px var(--ink),0 0 0 15px rgba(184,146,74,.4)}
@media (max-width:980px){.first .wrap{grid-template-columns:1fr}.first .emblem{max-width:320px}.stats{grid-template-columns:1fr}}

/* ---------- chain of office ---------- */
.offices .head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:80px}
.offices .head .lede{margin:0}
.chain{position:relative;display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:28px}
.chain::before{content:"";position:absolute;left:calc(100%/var(--n,4)/2);right:calc(100%/var(--n,4)/2);top:58px;height:14px;
  background:radial-gradient(ellipse 9px 6px at 50% 50%,transparent 4px,var(--gilt) 4.5px,var(--gilt) 6px,transparent 6.5px) 0 0/22px 14px repeat-x;opacity:.75}
.link{text-align:center;position:relative}
.link .roundel{width:130px;height:130px;margin:0 auto 30px;border-radius:50%;background:var(--paper);box-shadow:0 0 0 1px var(--gilt),0 0 0 7px var(--paper),0 0 0 8px rgba(184,146,74,.45);display:grid;place-items:center;position:relative;z-index:1;transition:transform .5s var(--ease),box-shadow .5s}
.link:hover .roundel{transform:translateY(-4px);box-shadow:0 0 0 1px var(--gilt),0 0 0 7px var(--paper),0 0 0 8px var(--gilt),0 20px 40px -20px rgba(22,19,43,.4)}
.link .roundel b{font:400 2.1rem/1 var(--display);color:var(--ink)}
.link .roundel small{position:absolute;bottom:22px;font:600 .58rem var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--gilt-dk)}
.link.major .roundel{background:var(--ink);box-shadow:0 0 0 1px var(--gilt),0 0 0 7px var(--paper),0 0 0 8px var(--gilt)}
.link.major .roundel b{color:var(--gilt-lt)}
.link h3{font-size:1.5rem;margin-bottom:6px}
.link .dates{font:500 .82rem var(--sans);color:var(--gilt-dk)}
.link .succ{margin:18px auto 0;padding-top:16px;border-top:1px dashed var(--line);font-size:.82rem;color:var(--muted);max-width:240px;display:grid;gap:4px}
.link .succ b{font-weight:600;color:var(--text)}
.link .note{font-size:.82rem;color:var(--muted);margin:12px auto 0;max-width:250px}
@media (max-width:980px){
  .offices .head{grid-template-columns:1fr;gap:20px}
  .chain{grid-template-columns:1fr;gap:56px}
  .chain::before{left:50%;right:auto;top:65px;bottom:65px;width:14px;height:auto;transform:translateX(-50%);background:radial-gradient(ellipse 6px 9px at 50% 50%,transparent 4px,var(--gilt) 4.5px,var(--gilt) 6px,transparent 6.5px) 0 0/14px 22px repeat-y}
}

/* ---------- mayoral year ---------- */
.may{display:grid;grid-template-columns:.9fr 1.1fr;gap:80px;align-items:start}
.may .charity{margin-top:34px;padding:26px 28px;background:var(--paper);border-left:3px solid var(--sindoor);display:flex;gap:18px;align-items:center}
.may .charity .ic{width:52px;height:52px;flex:none;border-radius:50%;border:1px solid var(--gilt);display:grid;place-items:center;color:var(--sindoor)}
.may .charity .ic svg{width:24px;height:24px}
.may .charity small{display:block;font:600 .64rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.may .charity b{display:block;font:400 1.35rem var(--display);margin:2px 0 4px}
.quotes{display:grid;gap:20px}
.q{margin:0;background:var(--paper);padding:34px 36px 30px;position:relative;border:1px solid var(--line)}
.q::before{content:"“";position:absolute;right:26px;top:6px;font:400 5.5rem/1 Georgia,serif;color:rgba(184,146,74,.35)}
.q p{font:italic 400 1.35rem/1.45 var(--display);margin:0 0 14px;max-width:32ch}
.q cite{font:500 .78rem var(--sans);font-style:normal;color:var(--muted);letter-spacing:.04em}
.q:first-child{background:var(--ink);color:#F1EEE6;border-color:var(--ink)}
.q:first-child p{font-size:1.65rem}
.q:first-child cite{color:var(--gilt-lt)}
@media (max-width:980px){.may{grid-template-columns:1fr;gap:50px}}

/* ---------- roots ---------- */
.roots-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:center}
.roots-grid h2{white-space:pre-line}
.mapcard{background:var(--stone);padding:34px 30px 22px;position:relative}
.mapcard::before{content:"";position:absolute;inset:10px;border:1px dashed rgba(184,146,74,.5);pointer-events:none}
.mapcard .legend{display:flex;justify-content:center;gap:28px;font-size:.74rem;color:var(--muted);margin-top:12px;flex-wrap:wrap}
.mapcard .legend i{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:8px}
.places{display:grid;grid-template-columns:1fr auto 1fr;gap:18px;align-items:center;margin-top:26px}
.place{display:flex;gap:14px;align-items:center}
.place .slot{width:74px;height:74px;border-radius:50%;flex:none}
.place .slot .art svg{width:70%;height:70%}
.place b{display:block;font:400 1.3rem var(--display)}
.place span{font-size:.78rem;color:var(--muted)}
.places .arrow{color:var(--sindoor);font-size:1.4rem}
.roots-note{font-size:.84rem;color:var(--muted);margin-top:22px}
@media (max-width:980px){.roots-grid{grid-template-columns:1fr}.places{grid-template-columns:1fr}.places .arrow{transform:rotate(90deg);justify-self:start;margin-left:28px}}

/* ---------- causes ---------- */
.causes{background:var(--ink-2)}
.causes .head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:64px}
.causes .head .lede{margin:0}
.cgrid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-dk)}
.cause{padding:44px 30px 40px;border-left:1px solid var(--line-dk);position:relative;transition:background .4s}
.cause:first-child{border-left:0}
.cause:hover{background:rgba(255,255,255,.03)}
.cause .n{position:absolute;top:22px;right:24px;font:italic 400 1rem var(--display);color:rgba(226,204,151,.45)}
.cause .ic{width:68px;height:68px;border-radius:50%;border:1px solid var(--gilt);display:grid;place-items:center;color:var(--gilt-lt);margin-bottom:28px;position:relative}
.cause .ic::after{content:"";position:absolute;inset:5px;border-radius:50%;border:1px dashed rgba(226,204,151,.35)}
.cause .ic svg{width:28px;height:28px}
.cause h3{font-size:1.55rem;margin-bottom:14px}
.cause p{font-size:.9rem;color:rgba(241,238,230,.68);margin:0}
@media (max-width:1050px){.cgrid{grid-template-columns:1fr 1fr}.cause:nth-child(3){border-left:0}.cause{border-top:1px solid var(--line-dk)}}
@media (max-width:620px){.cgrid{grid-template-columns:1fr}.cause{border-left:0}.causes .head{grid-template-columns:1fr;gap:20px}}

/* ---------- career steps ---------- */
.career .head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:60px}
.career .head h2{white-space:pre-line}
.career .head .lede{margin:0}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--line);border:1px solid var(--line)}
.step{background:var(--paper);padding:38px 34px 36px;position:relative;overflow:hidden;transition:background .4s}
.step:hover{background:#fff}
.step .num{font:italic 400 4.2rem/1 var(--display);color:transparent;-webkit-text-stroke:1px var(--gilt);display:block;margin-bottom:18px}
.step small{display:block;font:600 .66rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sindoor);margin-bottom:8px}
.step h3{font-size:1.6rem;margin-bottom:12px}
.step p{font-size:.9rem;color:var(--muted);margin:0}
.step .tag{position:absolute;top:44px;right:30px;font:500 .74rem var(--sans);color:var(--muted)}
@media (max-width:980px){.steps{grid-template-columns:1fr 1fr}.career .head{grid-template-columns:1fr;gap:20px}}
@media (max-width:620px){.steps{grid-template-columns:1fr}}

/* ---------- timeline ---------- */
.timeline{background:var(--stone)}
.timeline .head{text-align:center;margin-bottom:80px}
.timeline .ch{justify-content:center}
.tl{list-style:none;margin:0 auto;padding:0;max-width:1000px;position:relative}
.tl::before{content:"";position:absolute;left:50%;top:6px;bottom:0;border-left:2px dashed rgba(184,146,74,.6)}
.tl li{position:relative;width:50%;padding:0 64px 56px 0;text-align:right}
.tl li:nth-child(even){margin-left:50%;padding:0 0 56px 64px;text-align:left}
.tl li::before{content:"";position:absolute;top:10px;right:-9px;width:16px;height:16px;transform:rotate(45deg);background:var(--stone);border:2px solid var(--gilt)}
.tl li:nth-child(even)::before{right:auto;left:-9px}
.tl li.hl::before{background:var(--sindoor);border-color:var(--sindoor)}
.tl .yr{font:400 2.6rem/1 var(--display);color:var(--ink)}
.tl li.hl .yr{color:var(--sindoor)}
.tl h3{font:600 1rem var(--sans);letter-spacing:.02em;margin:10px 0 6px}
.tl p{font-size:.9rem;color:var(--muted);margin:0 0 0 auto;max-width:40ch}
.tl li:nth-child(even) p{margin:0}
@media (max-width:760px){
  .tl::before{left:8px}
  .tl li,.tl li:nth-child(even){width:auto;margin-left:0;padding:0 0 44px 44px;text-align:left}
  .tl li::before,.tl li:nth-child(even)::before{left:1px;right:auto}
  .tl p{margin:0}
}

/* ---------- honours ---------- */
.honours .head{text-align:center;margin-bottom:64px}
.honours .ch{justify-content:center}
.honours .head .lede{margin:0 auto}
.hgrid{display:flex;flex-wrap:wrap;justify-content:center;gap:24px}
.hgrid .honour{flex:0 1 calc((100% - 48px)/3);min-width:260px}
.honour{background:#fff;border:1px solid var(--line);padding:36px 30px 32px;text-align:center;position:relative;transition:transform .5s var(--ease),box-shadow .5s}
.honour:hover{transform:translateY(-6px);box-shadow:0 30px 50px -34px rgba(22,19,43,.45)}
.honour::before{content:"";position:absolute;left:50%;top:0;width:60px;height:3px;background:var(--gilt);transform:translateX(-50%)}
.honour .medal-sm{width:108px;height:108px;margin:0 auto 24px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px var(--gilt),0 0 0 6px #fff,0 0 0 7px rgba(184,146,74,.45)}
.honour .medal-sm .slot{width:100%;height:100%}
.honour .medal-sm .art svg{width:66%;height:66%}
.honour .tag{display:inline-block;font:600 .62rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--sindoor);margin-bottom:10px}
.honour h3{font-size:1.5rem;margin-bottom:8px}
.honour .role{font-size:.82rem;color:var(--gilt-dk);margin-bottom:14px}
.honour p{font-size:.88rem;color:var(--muted)}
.honour .meta{font-size:.74rem;color:#8D8A95;margin:0}
.honour a{display:inline-block;margin-top:14px}
.register{margin:70px auto 0;max-width:860px;background:var(--ink);color:#F1EEE6;padding:46px 54px;position:relative}
.register::before{content:"";position:absolute;inset:10px;border:1px solid var(--line-dk);pointer-events:none}
.register h3{font-size:1.8rem;text-align:center;margin-bottom:26px}
.register ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 46px}
.register li{display:flex;justify-content:space-between;gap:14px;padding:14px 0;border-bottom:1px dashed var(--line-dk);font-size:.92rem}
.register li span{color:var(--gilt-lt);text-align:right;font-size:.84rem}
@media (max-width:760px){.register{padding:36px 26px}.register ul{grid-template-columns:1fr}}

/* ---------- press ---------- */
.press-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:46px;flex-wrap:wrap}
.press-tools{display:flex;gap:10px;align-items:center}
.press-tools select,.press-tools button{font:500 .8rem var(--sans);border:1px solid var(--line);background:#fff;color:var(--text);padding:9px 14px;border-radius:2px;cursor:pointer}
.plist{border-top:2px solid var(--ink)}
.prow{display:grid;grid-template-columns:150px 180px 1fr auto;gap:30px;align-items:baseline;padding:28px 0;border-bottom:1px solid var(--line);transition:background .3s,padding .3s}
.prow[hidden]{display:none}
.prow:hover{background:linear-gradient(90deg,rgba(184,146,74,.08),transparent 60%);padding-left:14px}
.prow time{font:500 .8rem var(--sans);color:var(--muted)}
.prow .outlet{font:italic 400 1.1rem var(--display);color:var(--gilt-dk)}
.prow h3{font-size:1.45rem;line-height:1.25}
.prow p{font-size:.86rem;color:var(--muted);margin:8px 0 0}
.prow a{font:600 .8rem var(--sans);color:var(--ink);white-space:nowrap;text-decoration:none;border-bottom:1px solid var(--gilt)}
.prow a:hover{color:var(--sindoor)}
.prow .soon{font-size:.76rem;color:#9A97A3;font-style:italic;white-space:nowrap}
@media (max-width:900px){.prow{grid-template-columns:1fr;gap:6px}.prow:hover{padding-left:0}}

/* ---------- videos ---------- */
.videos .head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:50px}
.videos .head .lede{margin:0}
.v-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:30px;align-items:start}
.v-grid.one{grid-template-columns:1fr;max-width:940px;margin:0 auto}
.v-stage{aspect-ratio:16/9;background:#07060f;overflow:hidden;position:relative;box-shadow:0 0 0 1px var(--line-dk),0 40px 80px -40px rgba(0,0,0,.8)}
.v-stage iframe,.v-stage video{position:absolute;inset:0;width:100%;height:100%;border:0}
.v-facade{position:absolute;inset:0;border:0;padding:0;cursor:pointer;background:radial-gradient(60% 80% at 50% 50%,rgba(184,146,74,.18),transparent 70%),var(--ink-2);color:#fff}
.v-facade img{width:100%;height:100%;object-fit:cover;opacity:.82;transition:opacity .3s}
.v-facade:hover img{opacity:1}
.v-facade .src{position:absolute;left:18px;bottom:16px;font:600 .62rem var(--sans);letter-spacing:.16em;text-transform:uppercase;background:rgba(0,0,0,.55);padding:6px 10px}
.play{position:absolute;left:50%;top:50%;width:86px;height:86px;margin:-43px 0 0 -43px;border-radius:50%;background:var(--gilt);box-shadow:0 0 0 10px rgba(184,146,74,.22),0 0 0 22px rgba(184,146,74,.08);transition:transform .3s var(--ease)}
.play::after{content:"";position:absolute;left:35px;top:27px;border-left:24px solid var(--ink-3);border-top:16px solid transparent;border-bottom:16px solid transparent}
.v-facade:hover .play{transform:scale(1.08)}
.v-info{padding:24px 0 0}
.v-info time{font:600 .66rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gilt)}
.v-info h3{font-size:1.7rem;margin:6px 0 8px}
.v-info p{font-size:.9rem;color:rgba(241,238,230,.7);max-width:64ch}
.v-list{list-style:none;margin:0;padding:0;display:grid;gap:12px;max-height:560px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--gilt) transparent}
.v-list button{display:grid;grid-template-columns:140px 1fr;gap:16px;align-items:center;width:100%;text-align:left;background:rgba(255,255,255,.03);border:1px solid var(--line-dk);padding:9px;color:#fff;cursor:pointer;font:inherit;transition:border-color .2s,background .2s}
.v-list button:hover,.v-list button[aria-current="true"]{border-color:var(--gilt);background:rgba(255,255,255,.06)}
.v-th{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--ink-2);display:block}
.v-th img{width:100%;height:100%;object-fit:cover}
.v-th i{position:absolute;left:50%;top:50%;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:var(--gilt)}
.v-th i::after{content:"";position:absolute;left:12px;top:9px;border-left:9px solid var(--ink-3);border-top:6px solid transparent;border-bottom:6px solid transparent}
.v-list b{display:block;font:400 1.05rem/1.3 var(--display)}
.v-list small{font-size:.72rem;color:rgba(241,238,230,.55)}
.v-empty{border:1px dashed rgba(184,146,74,.5);height:clamp(240px,30vw,400px);position:relative;display:grid;place-items:end center;padding:28px;color:rgba(241,238,230,.7);font-size:.95rem;background:radial-gradient(50% 60% at 50% 45%,rgba(184,146,74,.1),transparent 70%)}
.v-empty .play{top:44%}
@media (max-width:980px){.v-grid{grid-template-columns:1fr}.videos .head{grid-template-columns:1fr;gap:20px}.v-list button{grid-template-columns:116px 1fr}}

/* ---------- gallery ---------- */
.gallery .head{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:54px}
.gallery .head .lede{margin:0}
.gal{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:260px;grid-auto-flow:dense;gap:18px}
.gal figure{margin:0;position:relative;cursor:zoom-in;overflow:hidden}
.gal figure:nth-child(6n+1),.gal figure:nth-child(6n+3){grid-row:span 2}
.gal figure:nth-child(6n+5){grid-column:span 2}
.gal .slot{position:absolute;inset:0}
.gal .slot img{transition:transform 1s var(--ease)}
.gal figure:hover .slot img{transform:scale(1.05)}
.gal figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 22px 18px;background:linear-gradient(transparent,rgba(14,12,29,.85));color:#F1EEE6;font-size:.84rem;transform:translateY(8px);opacity:.92;transition:transform .4s var(--ease),opacity .4s}
.gal figure:hover figcaption{transform:none;opacity:1}
dialog.lb{border:0;padding:0;background:transparent;max-width:92vw;max-height:92vh}
dialog.lb::backdrop{background:rgba(14,12,29,.92)}
dialog.lb img{max-width:92vw;max-height:84vh}
dialog.lb p{color:#fff;text-align:center;font-size:.9rem;margin:14px 0 0}
dialog.lb button{position:fixed;top:22px;right:22px;color:#fff}
@media (max-width:900px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:220px}.gal figure:nth-child(6n+5){grid-column:auto}.gal figure:nth-child(6n+3){grid-row:auto}.gallery .head{grid-template-columns:1fr;gap:20px}}
@media (max-width:560px){.gal{grid-template-columns:1fr}.gal figure:nth-child(6n+1){grid-row:auto}.hgrid .honour{flex-basis:100%;min-width:0}}

/* ---------- follow ---------- */
.follow{padding:70px 0;background:var(--stone);border-top:1px solid var(--line)}
.follow .wrap{display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:center}
.follow .ic{width:74px;height:74px;border-radius:50%;border:1px solid var(--gilt);display:grid;place-items:center;color:var(--ink)}
.follow .ic svg{width:24px;height:24px;fill:currentColor}
.follow h2{font-size:2.2rem}
.follow p{color:var(--muted);margin:6px 0 0}
@media (max-width:760px){.follow .wrap{grid-template-columns:1fr}}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.contact dl{margin:34px 0 0;display:grid;gap:22px}
.contact dt{font:600 .66rem var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gilt)}
.contact dd{margin:4px 0 0;font:400 1.3rem var(--display)}
.contact dd a{text-decoration:none}
.contact dd a:hover{color:var(--gilt-lt)}
form.cf{display:grid;gap:16px;padding:40px;border:1px solid var(--line-dk);background:rgba(255,255,255,.025);position:relative}
form.cf::before{content:"";position:absolute;inset:8px;border:1px dashed rgba(184,146,74,.25);pointer-events:none}
.cf h3{font-size:1.6rem;margin-bottom:4px}
.cf label{font-size:.8rem;color:rgba(241,238,230,.8);display:grid;gap:7px;position:relative}
.cf input,.cf textarea,.cf select{font:inherit;color:#fff;background:transparent;border:0;border-bottom:1px solid rgba(241,238,230,.3);padding:10px 2px;border-radius:0}
.cf input:focus,.cf textarea:focus,.cf select:focus{outline:none;border-bottom-color:var(--gilt)}
.cf select option{color:var(--text)}
.cf textarea{min-height:110px;resize:vertical}
.cf .hp{position:absolute;left:-9999px}
.cf .status{font-size:.86rem;min-height:1.2em;margin:0}
.cf .status.ok{color:#A9E3BC}.cf .status.err{color:#F3A9A0}
@media (max-width:980px){.contact-grid{grid-template-columns:1fr;gap:60px}}

/* ---------- footer ---------- */
footer{background:var(--ink-3);color:rgba(241,238,230,.62);font-size:.84rem;padding:80px 0 30px;position:relative}
footer::before{content:"";position:absolute;left:0;right:0;top:0;border-top:2px dashed rgba(184,146,74,.4)}
.ft{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;padding-bottom:44px;border-bottom:1px solid var(--line-dk)}
.ft .who{display:flex;gap:20px;align-items:center}
.ft .seal{width:70px;height:70px;border-radius:50%;border:1px solid var(--gilt);display:grid;place-items:center;font:italic 400 1.6rem var(--display);color:var(--gilt-lt);flex:none}
.ft b{display:block;font:400 2rem/1 var(--display);color:#fff}
.ft .bn{color:var(--gilt);font-size:1.15rem}
.ft p{max-width:44ch;margin:18px 0 0}
.ft nav{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 24px;align-content:start}
.ft nav a{text-decoration:none}
.ft nav a:hover{color:var(--gilt-lt)}
.fb{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px;font-size:.78rem}
.fb a{color:var(--gilt-lt);text-decoration:none;font-weight:600}
@media (max-width:760px){.ft{grid-template-columns:1fr}.ft nav{grid-template-columns:1fr 1fr}}
@media (max-width:600px){section{padding:90px 0}.wrap{padding:0 20px}.links{padding:22px 20px 28px}
  .ribbon div.f,.ribbon div.f:first-child,.ribbon div.f:nth-child(3){border-left:0;padding:22px 12px 22px 0}
  .ribbon b{font-size:2rem}
  .portrait::before{inset:-10px 10px 10px -10px}
  .medal .ring text{font-size:15px}}
