/* Alternative Perspective — an editorial layer over main's existing components.
   Navy / gold remain the identity; paper, hard rules and large type set the rhythm. */
:root { --cream:#f3f0e8; --font-heading:var(--font-display); --nav-height:82px; --container-max:1280px; --paper-line:#cecbbf; --ink-muted:#4b5869; }
html { scroll-padding-top:100px; }
body { -webkit-font-smoothing:antialiased; }
body::after { opacity:.013; }
button, a, input, summary { -webkit-tap-highlight-color:transparent; }
h1,h2,h3 { letter-spacing:-.045em; }
.skip-link { position:fixed; top:8px; left:16px; z-index:10000; padding:12px 24px; background:var(--gold); color:var(--navy); transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.container { max-width:var(--container-max); }
#main-nav, #main-nav.scrolled { height:var(--nav-height); background:var(--deep-navy); border-bottom:1px solid rgba(201,169,97,.28); box-shadow:none; padding:0; }
.nav-container { max-width:var(--container-max); margin:auto; padding-inline:var(--pad-x); height:100%; }
.nav-logo { gap:10px; }
.nav-logo-mark { height:36px; width:auto; }
.nav-logo-text { font-size:18px; letter-spacing:.015em; }
.nav-links { gap:18px; }
.nav-links li a { font-size:13px; letter-spacing:0; text-transform:none; font-weight:500; color:#e0e3e9; padding:12px 0; min-height:44px; }
.nav-links a.active:not(.nav-cta) { color:var(--gold); }
.nav-links a.nav-cta { border-radius:0; padding:12px 20px; margin-left:6px; font-size:13px; box-shadow:none; }
.nav-links a.nav-cta::after { content:' ↗'; }
.btn { border-radius:0; min-height:46px; font-size:13px; letter-spacing:.03em; }
.btn-primary { box-shadow:none; }
.eyebrow { border:0; padding:0; border-radius:0; font-size:12px; letter-spacing:.13em; }
.eyebrow::before { content:''; width:18px; height:1px; background:currentColor; margin-right:12px; }
.section-kicker { display:flex; justify-content:space-between; align-items:center; gap:24px; border-top:1px solid var(--paper-line); padding-top:18px; margin-bottom:64px; font-size:12px; line-height:1.4; letter-spacing:.11em; text-transform:uppercase; }
.section-kicker span:last-child { color:var(--ink-muted); }
.text-action { display:inline-flex; justify-content:space-between; align-items:center; gap:36px; min-height:48px; border-bottom:1px solid currentColor; font-size:14px; font-weight:500; }
.text-action span, .editorial-button span, .invitation-link span { display:inline-block; transition:transform .3s; }
.text-action:hover span, .editorial-button:hover span, .invitation-link:hover span { transform:translate(4px,-4px); }
/* Opening: a large left-hand masthead and a separate portrait film. */
.opening { position:relative; background:var(--deep-navy); color:var(--cream); padding:calc(var(--nav-height) + 28px) 0 36px; overflow:hidden; }
.opening-meta { display:flex; justify-content:space-between; gap:16px; font-size:11px; letter-spacing:.11em; text-transform:uppercase; color:#a9b4c6; }
.opening-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:4%; padding-top:62px; padding-bottom:42px; align-items:center; }
.opening-copy { position:relative; z-index:2; }
.edition-label { display:flex; align-items:center; gap:10px; color:var(--gold); text-transform:uppercase; font-size:11px; letter-spacing:.13em; margin-bottom:28px; }
.edition-dot { width:6px; height:6px; background:var(--gold); border-radius:50%; }
.opening h1 { font-family:var(--font-sans); font-size:clamp(52px,7.8vw,112px); font-weight:500; line-height:.98; letter-spacing:-.075em; color:var(--cream); }
.opening h1 > span { display:block; animation:opening-in .9s both; }
.opening h1 > span:nth-child(2) { animation-delay:.12s; }
.opening h1 > span.opening-serif { font-family:var(--font-display); font-style:italic; font-weight:400; font-size:.86em; color:var(--gold); letter-spacing:-.035em; margin-top:8px; white-space:nowrap; animation-delay:.24s; }
@keyframes opening-in { from { opacity:0; transform:translateY(32px); clip-path:inset(-.3em -.15em 100% -.15em); } to { opacity:1; transform:none; clip-path:inset(-.3em -.15em -.3em -.15em); } }
.opening-bottom { display:flex; flex-wrap:wrap; gap:24px; justify-content:space-between; align-items:end; margin-top:42px; }
.opening-bottom p { font-size:14px; line-height:1.65; color:#b7c1cf; }
.editorial-button { display:inline-flex; align-items:center; justify-content:space-between; gap:30px; padding:17px 22px; background:var(--gold); color:var(--deep-navy); font-size:14px; font-weight:600; transition:background .3s; }
.editorial-button:hover { background:var(--gold-light); }
.editorial-button span { font-size:22px; line-height:1; }
.opening-film { align-self:stretch; padding:0 0 0 20px; border-left:1px solid rgba(201,169,97,.3); min-width:0; }
.film-window { position:relative; height:100%; min-height:400px; max-height:530px; overflow:hidden; background:#253649 url('../assets/images/capital-poster.jpg') center / cover; }
.film-window::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(7,22,48,.5),transparent 55%); pointer-events:none; }
.film-window video { width:100%; height:100%; position:absolute; inset:0; object-fit:cover; filter:saturate(.5); }
.film-mark { position:absolute; right:22px; bottom:24px; z-index:1; width:50px; opacity:.9; }
.opening-film figcaption { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:10px; font-size:11px; color:#bac4d2; letter-spacing:.03em; }
.film-toggle { color:var(--gold); font-size:12px; border:0; background:none; min-height:32px; }
.opening-foot { display:flex; justify-content:space-between; gap:24px; padding-top:30px; padding-bottom:24px; font-size:12px; color:#bbc5d3; }
.opening-foot a { display:flex; gap:50px; align-items:center; }
.opening-foot a span { color:var(--gold); font-size:20px; }
.market-ribbon { display:flex; align-items:center; padding:0; color:var(--deep-navy); background:var(--gold); overflow:hidden; }
.ribbon-window { flex:1; min-width:0; overflow:hidden; }
.ribbon-track { display:flex; width:max-content; }
.ribbon-set { display:flex; align-items:center; flex-shrink:0; }
.ribbon-set span { display:flex; align-items:center; gap:40px; padding:19px 20px; font-size:12px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
.ribbon-set b { font-size:18px; font-weight:400; }
.ribbon-toggle { align-self:stretch; min-width:52px; border:0; border-left:1px solid rgba(7,22,48,.25); background:var(--gold); color:var(--navy); }
.market-ribbon.is-moving .ribbon-track { animation:ribbon 38s linear infinite; }
.market-ribbon.is-paused .ribbon-track, .market-ribbon:hover .ribbon-track, .market-ribbon:focus-within .ribbon-track { animation-play-state:paused; }
@keyframes ribbon { to { transform:translateX(-50%); } }
/* The society: asymmetric prose and a compact statistical baseline. */
.society-intro { padding:80px 0 64px; }
.society-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:10%; }
.society-grid h2 { font-size:clamp(38px,4.8vw,68px); line-height:1.07; }
.society-grid h2 em { font-weight:400; color:#7b6633; }
.society-description p:first-child { font-size:21px; line-height:1.5; margin-bottom:22px; color:var(--navy); }
.society-description p { font-size:15px; color:var(--ink-muted); margin-bottom:24px; }
.society-stats.stats-bar { padding:0; margin-top:64px; border:0; background:transparent; }
.society-stats .stats-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:none; padding:0; gap:0; }
.society-stats .stat-item { display:flex; align-items:baseline; justify-content:space-between; gap:16px; text-align:left; padding:25px 24px 0 0; border-top:1px solid var(--paper-line); }
.society-stats .stat-item + .stat-item { padding-left:24px; border-left:1px solid var(--paper-line); }
.society-stats .stat-number { font-family:var(--font-sans); font-weight:400; font-size:clamp(38px,4vw,58px); letter-spacing:-.06em; color:var(--navy); }
.society-stats .stat-label { font-size:10px; max-width:12ch; letter-spacing:.07em; color:var(--ink-muted); }
/* An asset-class index with real disclosure controls, usable without JS. */
.market-index { background:var(--navy); padding:64px 0 90px; color:var(--cream); }
.market-index .section-kicker { border-color:#3a4b62; }
.market-index .section-kicker span:last-child { color:#b3bdcb; }
.market-grid { display:grid; grid-template-columns:1fr 1.45fr; gap:8%; }
.market-heading h2 { color:var(--cream); font-size:clamp(40px,4.6vw,64px); line-height:1.05; }
.market-heading h2 em { color:var(--gold); font-weight:400; }
.market-symbol { display:block; font-family:var(--font-sans); color:var(--gold); font-size:64px; line-height:1; margin-bottom:24px; }
.market-heading p { font-size:14px; color:#b5c0d1; margin:30px 0 20px; }
.market-heading .text-action { color:var(--gold); }
.market-row { border-bottom:1px solid #43516a; }
.market-row:first-child { border-top:1px solid #43516a; }
.market-row summary { list-style:none; display:flex; align-items:center; gap:22px; padding:24px 0; cursor:pointer; }
.market-row summary::-webkit-details-marker { display:none; }
.market-number { align-self:start; padding-top:6px; font-size:11px; color:var(--gold); }
.market-row h3 { font-size:clamp(23px,2.6vw,36px); font-weight:400; color:#e0e5ed; letter-spacing:-.03em; transition:color .2s,transform .3s; }
.market-plus { font-size:24px; color:var(--gold); margin-left:auto; transition:transform .3s; }
.market-row[open] .market-plus { transform:rotate(45deg); }
.market-row[open] h3, .market-row summary:hover h3 { color:var(--gold); transform:translateX(5px); }
.market-detail { padding:0 25px 24px 38px; }
.market-detail p { font-size:15px; color:#b7c3d4; margin-bottom:12px; }
.market-detail a { font-size:13px; color:var(--gold); display:inline-flex; align-items:center; min-height:36px; gap:20px; }
.market-row[open] .market-detail { animation:detail-in .35s; }
@keyframes detail-in { from { opacity:0; transform:translateY(-8px); } to { opacity:1; transform:none; } }
/* Programme: compact, numbered rows instead of identical cards. */
.programme { padding:80px 0 96px; }
.programme-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:48px; }
.programme-heading h2 { font-size:clamp(42px,5.5vw,76px); line-height:1.03; }
.programme-heading h2 em { font-weight:400; }
.programme-heading p { font-size:13px; color:var(--ink-muted); margin-bottom:8px; }
.programme-row { display:grid; grid-template-columns:50px 1fr 1fr 100px; gap:12px 30px; padding:32px 0; border-top:1px solid var(--paper-line); align-items:start; }
.programme-row:last-child { border-bottom:1px solid var(--paper-line); }
.programme-number { grid-column:1; grid-row:1 / 4; color:#7b6633; font-size:14px; }
.programme-row .event-card-badge { grid-column:2; position:static; display:inline; width:max-content; color:#69562a; background:transparent; border:0; padding:0; font-size:10px; letter-spacing:.1em; }
.programme-row h3 { grid-column:2; grid-row:2; font-size:24px; line-height:1.2; font-weight:400; }
.programme-row .event-card-date { grid-column:2; grid-row:3; color:var(--ink-muted); font-size:12px; margin:0; }
.programme-row > p:not(.event-card-date) { grid-column:3; grid-row:2 / 4; font-size:14px; color:var(--ink-muted); }
.programme-row .btn { grid-column:4; grid-row:2; font-size:11px; padding:10px; width:100%; min-width:0; opacity:.55; }
.invitation { background:var(--gold); color:var(--navy); padding:56px 0 70px; }
.invitation .section-kicker { border-color:rgba(7,22,48,.3); }
.invitation .section-kicker span:last-child { color:var(--navy); }
.invitation-grid { display:grid; grid-template-columns:1.3fr 1fr; gap:12%; align-items:end; }
.invitation h2 { color:var(--navy); font-size:clamp(60px,8vw,110px); line-height:.95; }
.invitation h2 em { font-weight:400; }
.invitation-grid p { font-size:16px; margin-bottom:30px; max-width:34ch; }
.invitation-link { border-bottom:1px solid var(--navy); display:flex; justify-content:space-between; align-items:center; padding-bottom:14px; font-size:20px; }
.invitation-link span { font-size:40px; }
/* Interior mastheads use a visible folio, horizontal rules and a split deck. */
.page-header { padding:calc(var(--nav-height) + 48px) var(--pad-x) 48px; background:var(--cream); border-bottom:1px solid var(--paper-line); }
.page-header::before, .page-header::after { display:none; }
.page-header-inner { max-width:calc(var(--container-max) - 2 * var(--pad-x)); margin:auto; grid-template-columns:1fr 150px; gap:4%; }
.page-header-text { max-width:none; }
.page-header .eyebrow { color:#78622e; }
.page-header h1 { color:var(--navy); font-family:var(--font-sans); font-weight:500; letter-spacing:-.07em; font-size:clamp(42px,6.4vw,88px); margin-bottom:24px; }
.page-header p { color:var(--ink-muted); font-size:17px; max-width:55ch; }
.page-header-numeral { font-family:var(--font-sans); color:#c3b795; font-weight:300; font-size:clamp(70px,12vw,155px); line-height:.9; border-top:1px solid #a5997c; padding-top:24px; }
.page-header + section { padding-top:64px; }
/* Portraits are now a gallery, with the original member dialog retained. */
.committee-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:48px 28px; }
.committee-card { background:transparent; padding:0 0 22px; border:0; border-bottom:1px solid var(--paper-line); text-align:left; }
.committee-card:hover { box-shadow:none; }
.committee-card .committee-photo { width:100%; height:auto; aspect-ratio:4/4.4; border-radius:0; border:0; margin-bottom:20px; background:#dedbd2; }
.committee-card .committee-photo img { filter:saturate(.65); transition:filter .4s,transform .4s; object-position:center 25%; }
.committee-card:hover .committee-photo img { filter:saturate(1); }
.committee-card .committee-name { font-size:25px; font-weight:400; }
.committee-card .committee-role { font-size:11px; letter-spacing:.07em; color:#77612d; }
.committee-initials { font-size:64px; color:var(--navy); }
.committee-modal-inner { border-top:5px solid var(--gold); }
/* Insights: a lead story and a two-column editorial index. */
.insights-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 48px; }
.insight-card { border:0; border-top:1px solid var(--paper-line); background:transparent; padding:30px 0; }
.insight-card:hover { transform:none; box-shadow:none; border-color:var(--navy); }
.insight-card-body, .insight-card-footer { padding:0; }
.insight-card-footer { border:0; }
.insight-card h3 { font-size:27px; font-weight:400; line-height:1.2; margin-bottom:18px; }
.insight-category { font-size:11px; color:#76602e; }
.insight-date { font-size:12px; }
.insight-excerpt { font-size:15px; }
.insight-card:first-child { grid-column:1 / -1; background:var(--navy); color:var(--cream); padding:48px; margin-bottom:42px; position:relative; overflow:hidden; border:0; }
.insight-card:first-child::after { content:none; position:absolute; right:20px; bottom:-50px; font-family:var(--font-sans); font-size:260px; line-height:1; color:rgba(201,169,97,.07); pointer-events:none; }
.insight-card:first-child h3 { color:var(--cream); font-size:clamp(32px,4vw,52px); max-width:26ch; }
.insight-card:first-child .insight-excerpt { color:#bec8d8; max-width:70ch; }
.insight-card:first-child .insight-date { color:#bec8d8; }
.insight-card:first-child .insight-category, .insight-card:first-child .card-link { color:var(--gold); }
.card-link { min-height:44px; font-size:13px; }
/* Library: sticky category rail beside a vertical collection of resources. */
.resources-sections { gap:56px; }
.resources-sections > div { display:grid; grid-template-columns:230px 1fr; gap:36px; align-items:start; border-top:1px solid var(--paper-line); padding-top:24px; }
.resource-section-title { position:sticky; top:110px; font-size:28px; line-height:1.15; font-weight:400; border:0; }
.resource-section-title::before { display:none; }
.resource-grid { grid-template-columns:1fr; gap:0; }
.resource-card { padding:24px 0; border:0; border-bottom:1px solid var(--paper-line); background:transparent; gap:24px; }
.resource-card:first-child { padding-top:0; }
.resource-card:hover { box-shadow:none; border-color:var(--navy); }
.resource-type { font-size:10px; min-width:85px; text-align:center; }
.resource-content h4 { font-size:23px; font-weight:400; }
.resource-content p { font-size:15px; }
.resource-content .btn { min-height:44px; font-size:12px; }
.asset-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.asset-tile { padding:36px; min-height:245px; }
.asset-tile-number { font-size:54px; opacity:.45; }
.asset-tile h3 { font-size:30px; }
.asset-tile p { font-size:15px; }
.page-about section[aria-labelledby="who-we-are-heading"] { background:var(--gold) !important; }
.page-about section[aria-labelledby="who-we-are-heading"] .eyebrow { color:var(--navy); }
.page-about section[aria-labelledby="who-we-are-heading"] > .container > div { max-width:950px !important; text-align:left !important; margin:0 !important; }
.page-about section[aria-labelledby="who-we-are-heading"] p { margin-left:0 !important; }
.page-about section[aria-labelledby="who-we-are-heading"] .gold-rule { background:var(--navy); margin-left:0; }
.events-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.events-grid .event-card { border:0; border-top:2px solid var(--gold); padding:32px; }
.event-card h3 { font-size:25px; }
.event-card > p { font-size:15px; }
.event-card-tag, .event-card-date { font-size:12px; }
.filter-btn { min-height:44px; font-size:12px; }
.pricing-card { border-top:3px solid var(--gold); box-shadow:none; }
.form-card { border-top:3px solid var(--gold); }
label { font-size:12px; }
input[type="text"], input[type="email"], input[type="tel"], select, textarea { font-size:16px; min-height:48px; border-radius:0; }
.multi-select-item { min-height:40px; }
.multi-select-item label, .checkbox-group label { font-size:14px; }
.page-cta { border-top:1px solid rgba(201,169,97,.35); }
.page-cta h2 { font-size:clamp(38px,5vw,64px); }
.page-cta .container { text-align:left; max-width:var(--container-max); }
.page-cta p { margin-left:0; }
.page-cta .eyebrow { color:var(--gold); }
footer { overflow:hidden; }
.footer-main { max-width:var(--container-max); border-top:0; gap:64px; padding-top:70px; padding-bottom:70px; }
.footer-watermark { font-family:var(--font-sans); font-size:clamp(100px,24vw,350px); font-weight:500; letter-spacing:-.08em; opacity:.025; }
.footer-brand p { font-size:14px; color:#aeb9ca; }
.footer-nav h4, .footer-social h4 { font-size:12px; color:var(--gold); }
.footer-nav a { font-size:14px; min-height:36px; }
.footer-founded, .footer-address p, .footer-strip { font-size:12px; color:#aeb9ca; }
.footer-strip { max-width:var(--container-max); }
/* Responsive composition: tablet keeps the split cover; phone stacks the film. */
@media (max-width:1100px) {
 .nav-links { gap:13px; }
 .nav-logo-text { font-size:16px; }
 .nav-links li a { font-size:12px; }
 .nav-links a.nav-cta { padding-inline:14px; }
 .opening-grid { gap:3%; }
 .opening-bottom { gap:18px; }
 .opening-bottom p { font-size:13px; }
 .editorial-button { padding:15px; gap:18px; }
 .society-stats .stat-item { flex-direction:column; gap:6px; }
 .society-stats .stat-label { max-width:none; }
 .programme-row { grid-template-columns:30px 1fr 1fr; gap:12px 20px; }
 .programme-row .btn { grid-column:3; grid-row:4; width:max-content; padding-inline:24px; }
}
@media (max-width:960px) {
 .nav-toggle { display:flex; }
 .nav-links { position:fixed; inset:0; background:var(--deep-navy); z-index:60; display:flex; flex-direction:column; align-items:stretch; justify-content:center; padding:80px var(--pad-x) 32px; gap:0; visibility:hidden; opacity:0; pointer-events:none; transform:translateY(-12px); transition:opacity .25s,transform .25s,visibility .25s; overflow-y:auto; }
 .nav-links.open { visibility:visible; opacity:1; pointer-events:auto; transform:none; }
 .nav-links li { width:100%; border-bottom:1px solid #34445c; }
 .nav-links li a { display:flex; width:100%; padding:10px 0; min-height:50px; font-size:25px; }
 .nav-links a.active:not(.nav-cta)::after { display:none; }
 .nav-links a.nav-cta { background:none; color:var(--gold); padding:10px 0; margin:0; font-size:25px; }
 .nav-links a.nav-cta:hover { background:none; color:var(--gold-light); }
 .nav-close { display:flex; position:absolute; right:var(--pad-x); top:18px; align-items:center; justify-content:center; width:48px; height:48px; padding:0; border:1px solid #526077; background:transparent; color:var(--gold); font-size:36px; cursor:pointer; }
 .opening-meta span:nth-child(2) { display:none; }
 .opening-grid { padding-top:44px; }
 .opening h1 { font-size:clamp(48px,7.8vw,76px); }
 .film-window { min-height:360px; }
 .opening-film { padding-left:14px; }
 .opening-bottom { margin-top:32px; }
 .opening-foot { margin-top:16px; }
 .section-kicker { margin-bottom:40px; }
 .society-grid { gap:7%; }
 .market-grid { gap:6%; grid-template-columns:1fr 1.3fr; }
 .market-row summary { gap:14px; }
 .market-detail { padding-left:26px; }
 .committee-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .resources-sections > div { grid-template-columns:190px 1fr; gap:24px; }
 .resource-card { flex-direction:column; gap:14px; }
 .footer-main { gap:32px; }
}
@media (max-width:640px) {
 :root { --nav-height:70px; --pad-x:22px; }
 .nav-logo-mark { height:31px; }
 .nav-logo-text { font-size:17px; }
 .opening { padding-top:calc(var(--nav-height) + 22px); }
 .opening-meta { font-size:9px; letter-spacing:.07em; }
 .opening-grid { grid-template-columns:1fr; gap:36px; padding-top:34px; padding-bottom:16px; }
 .edition-label { font-size:9px; margin-bottom:24px; }
 .opening h1 { font-size:clamp(56px,13.4vw,82px); }
 .opening-bottom { margin-top:28px; align-items:center; gap:16px; }
 .opening-bottom p { font-size:12px; }
 .editorial-button { padding:14px; font-size:12px; gap:16px; }
 .opening-film { padding:0; border:0; }
 .film-window { height:255px; min-height:0; }
 .film-window video { object-position:center 48%; }
 .film-mark { width:35px; bottom:18px; right:18px; }
 .opening-film figcaption { font-size:10px; }
 .opening-foot { padding-top:8px; margin-top:0; padding-bottom:22px; }
 .opening-foot span:last-child:not(a span) { font-size:10px; }
 .opening-foot a { gap:18px; font-size:11px; }
 .ribbon-set span { padding:14px; gap:28px; font-size:10px; }
 .ribbon-toggle { min-width:44px; }
 .section-kicker { font-size:10px; gap:20px; margin-bottom:34px; }
 .section-kicker span:last-child { text-align:right; max-width:18ch; }
 .society-intro { padding:48px 0; }
 .society-grid { grid-template-columns:1fr; gap:28px; }
 .society-grid h2 { font-size:43px; }
 .society-description p:first-child { font-size:19px; }
 .society-stats.stats-bar { margin-top:36px; }
 .society-stats .stat-item { padding:18px 12px 0 0; }
 .society-stats .stat-item + .stat-item { padding-left:12px; }
 .society-stats .stat-number { font-size:36px; }
 .society-stats .stat-label { font-size:8px; letter-spacing:.04em; max-width:12ch; }
 .market-index { padding:42px 0 52px; }
 .market-grid { grid-template-columns:1fr; gap:36px; }
 .market-heading { position:relative; }
 .market-heading h2 { font-size:45px; }
 .market-symbol { position:absolute; right:0; top:0; font-size:70px; }
 .market-heading p { margin:22px 0 10px; }
 .market-row summary { padding:22px 0; gap:16px; }
 .market-row h3 { font-size:27px; }
 .market-detail { padding-left:29px; }
 .programme { padding:48px 0 60px; }
 .programme-heading { align-items:start; flex-direction:column; gap:22px; margin-bottom:28px; }
 .programme-heading h2 { font-size:49px; }
 .programme-row { grid-template-columns:25px 1fr; gap:12px 16px; padding:25px 0; }
 .programme-row h3 { font-size:24px; }
 .programme-row > p:not(.event-card-date) { grid-column:2; grid-row:4; }
 .programme-row .btn { grid-column:2; grid-row:5; }
 .invitation { padding:38px 0 48px; }
 .invitation-grid { grid-template-columns:1fr; gap:32px; }
 .invitation h2 { font-size:72px; }
 .invitation-grid p { font-size:15px; }
 .page-header { padding-top:calc(var(--nav-height) + 34px); padding-bottom:34px; }
 .page-header-inner { grid-template-columns:1fr 44px; gap:12px; }
 .page-header h1 { font-size:clamp(35px,8.5vw,52px); letter-spacing:-.065em; overflow-wrap:anywhere; }
 .page-header p { font-size:15px; }
 .page-header-numeral { display:block; font-size:42px; padding-top:12px; align-self:start; margin-top:3px; }
 .page-header .eyebrow { font-size:10px; }
 .page-header + section { padding-top:40px; }
 .committee-grid { gap:28px 18px; }
 .committee-card .committee-name { font-size:20px; }
 .committee-card .committee-role { font-size:9px; }
 .committee-card .committee-photo { aspect-ratio:3 / 4; }
 .insights-grid { grid-template-columns:1fr; }
 .insight-card:first-child { padding:28px; margin-bottom:12px; }
 .insight-card:first-child h3 { font-size:32px; }
 .insight-card h3 { font-size:26px; }
 .resources-sections > div { grid-template-columns:1fr; gap:10px; }
 .resource-section-title { position:static; margin-bottom:12px; }
 .resource-card { flex-direction:row; gap:16px; }
 .resource-type { min-width:64px; font-size:8px; }
 .resource-content h4 { font-size:22px; }
 .asset-grid, .events-grid { grid-template-columns:1fr; }
 .asset-tile { padding:28px; }
 .page-cta .container { padding-inline:var(--pad-x); }
 .footer-main { grid-template-columns:1fr; padding:48px var(--pad-x); gap:36px; }
 .footer-strip { padding-inline:var(--pad-x); }
}
@media (prefers-reduced-motion:reduce) {
 .opening h1 > span { animation:none; }
 .ribbon-track { animation:none !important; transform:none !important; }
 .market-row[open] .market-detail { animation:none; }
}
/* Long-form reading keeps its generous measure and serif body. */
.page-header-inner:not(:has(.page-header-numeral)) { display:block; }
body[class$="-article"] .page-header h1 { font-size:clamp(35px,4.7vw,64px); max-width:30ch; line-height:1.06; }
.ia-prose, .ia-lead { font-family:'Spectral', Georgia, serif; }
.ia-meta-category { color:#77612d; font-size:12px; }
.ia-meta-date, .ia-meta-author { font-size:13px; }
@media (max-width:640px) { body[class$="-article"] .page-header h1 { font-size:35px; } }
/* Focus refinement: membership is the primary action; the editorial character stays. */
.page-home .nav-links a.nav-cta { background:transparent; color:var(--gold); padding-inline:0; box-shadow:none; }
.page-home .nav-links a.nav-cta:hover { background:transparent; color:var(--gold-light); }
.opening { padding-bottom:48px; }
.opening-meta { color:#a9b4c6; font-size:12px; letter-spacing:.06em; }
.opening-grid { grid-template-columns:1.4fr 1fr; gap:8%; padding-top:42px; padding-bottom:0; }
.opening h1 { font-size:clamp(52px,6.6vw,92px); }
.opening h1 > span { animation-duration:.65s; }
.opening-bottom { flex-direction:column; align-items:flex-start; gap:24px; margin-top:28px; }
.opening-bottom p { color:#c5cdda; font-size:15px; line-height:1.6; }
.opening-bottom .editorial-button { width:min(100%,340px); min-height:70px; padding:20px 26px; font-size:21px; letter-spacing:-.02em; }
.opening-bottom .editorial-button span { font-size:29px; }
.opening-film { align-self:center; }
.film-window { height:380px; min-height:0; }
.film-window video { opacity:.8; }
.opening-film figcaption { justify-content:flex-end; }
.film-toggle { color:#aab6c7; min-height:44px; }
.society-intro { padding:56px 0; }
.section-kicker { margin-bottom:34px; font-size:11px; }
.society-grid h2 { font-size:clamp(34px,3.8vw,50px); }
.society-description p:first-child { font-size:19px; }
.society-stats.stats-bar { margin-top:40px; }
.society-stats .stat-number { font-size:clamp(30px,3vw,42px); }
.society-stats .stat-item { background:transparent; box-shadow:none; }
.page-home .text-action { border-bottom:0; gap:14px; min-height:44px; font-size:13px; }
.page-home .text-action:hover { text-decoration:underline; text-underline-offset:5px; }
.market-index { padding:48px 0 56px; }
.market-heading h2 { font-size:clamp(32px,3.5vw,47px); }
.market-heading .text-action { margin-top:22px; }
.market-row summary { padding:19px 0; }
.market-row h3 { font-size:clamp(23px,2.2vw,30px); }
.market-detail { padding-bottom:20px; }
.market-detail p { margin-bottom:0; }
.programme { padding:48px 0 56px; }
.programme-heading { margin-bottom:28px; align-items:center; }
.programme-heading h2 { font-size:clamp(32px,3.5vw,45px); }
.programme-row { display:block; padding:0; }
.programme-row summary { display:grid; grid-template-columns:30px 1fr auto 18px; align-items:center; gap:22px; padding:25px 0; list-style:none; cursor:pointer; }
.programme-row summary::-webkit-details-marker { display:none; }
.programme-row .programme-number, .programme-row h3 { grid-column:auto; grid-row:auto; }
.programme-row h3 { font-size:22px; max-width:40ch; }
.event-status { font-size:12px; color:var(--ink-muted); white-space:nowrap; }
.programme-plus { font-size:21px; color:#796332; transition:transform .25s; }
.programme-row[open] .programme-plus { transform:rotate(45deg); }
.programme-detail { padding:0 40px 24px 52px; max-width:750px; }
.programme-detail p { font-size:15px; color:var(--ink-muted); }
.programme-detail .event-card-date { font-size:12px; margin-bottom:12px; }
.programme-row[open] .programme-detail { animation:detail-in .3s; }
.invitation { padding:36px 0; }
.invitation-grid { grid-template-columns:1fr 1fr; gap:8%; align-items:center; }
.invitation h2 { font-size:clamp(30px,3.2vw,43px); line-height:1.1; }
.invitation-grid p { font-size:14px; margin-bottom:12px; }
.invitation-link { font-size:16px; padding-bottom:8px; }
.invitation-link span { font-size:25px; }
@media (max-width:960px) {
 .opening-grid { gap:6%; }
 .opening h1 { font-size:clamp(48px,6.8vw,70px); }
 .opening-bottom p { font-size:14px; }
 .film-window { height:330px; }
}
@media (max-width:640px) {
 .opening { padding-bottom:24px; }
 .opening-meta { font-size:10px; letter-spacing:.03em; }
 .opening-grid { grid-template-columns:1fr; gap:28px; padding-top:28px; }
 .opening h1 { font-size:clamp(49px,12.8vw,75px); }
 .opening-bottom { margin-top:24px; gap:20px; }
 .opening-bottom p { font-size:14px; }
 .opening-bottom .editorial-button { width:100%; min-height:64px; font-size:21px; }
 .film-window { height:170px; }
 .opening-film figcaption { padding-top:0; }
 .society-grid h2 { font-size:36px; }
 .society-stats .stat-number { font-size:30px; }
 .society-stats .stat-item { margin:0; padding-top:18px; border-bottom:0; }
 .society-stats .stat-label { font-size:9px; }
 .market-heading h2 { font-size:35px; }
 .market-grid { gap:24px; }
 .programme-heading { align-items:start; gap:10px; }
 .programme-heading h2 { font-size:34px; }
 .programme-row summary { grid-template-columns:22px 1fr 16px; gap:9px 12px; padding:21px 0; }
 .programme-row h3 { font-size:21px; }
 .programme-row .programme-number { align-self:start; padding-top:3px; }
 .event-status { grid-column:2; grid-row:2; font-size:11px; }
 .programme-plus { grid-column:3; grid-row:1; }
 .programme-detail { padding-left:34px; padding-right:0; }
 .invitation-grid { grid-template-columns:1fr; gap:18px; }
 .invitation h2 { font-size:32px; }
}
@media (prefers-reduced-motion:reduce) { .programme-row[open] .programme-detail { animation:none; } }

/* No decorative page or section numbers. */
.page-header-inner { display:block; }
.page-header-text { max-width:1000px; }
.market-detail { padding-left:0; }
.programme-row summary { grid-template-columns:1fr auto 18px; }
.programme-detail { padding-left:0; }
.page-home .nav-links a.nav-cta { border-color:transparent; }
@media (max-width:640px) {
 .programme-row summary { grid-template-columns:1fr 16px; }
 .event-status { grid-column:1; }
 .programme-plus { grid-column:2; }
}
/* A consistent, quiet motion rhythm: fast feedback, softly settling entrances. */
:root { --ease-settle:cubic-bezier(.22,1,.36,1); }
.opening h1 > span { animation-timing-function:var(--ease-settle); animation-duration:.85s; }
.opening h1 > span:nth-child(2) { animation-delay:.08s; }
.opening h1 > span.opening-serif { animation-delay:.16s; }
@media (prefers-reduced-motion:no-preference) {
 .opening-film { animation:film-arrive 1.1s var(--ease-settle) both; }
 .opening-bottom { animation:action-arrive .8s var(--ease-settle) both; }
 .film-window video { transition:opacity .6s ease; }
}
@keyframes film-arrive { from { opacity:.35; transform:translateY(20px); } to { opacity:1; transform:translateY(0); } }
@keyframes action-arrive { from { opacity:.75; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
.editorial-button { transition:background-color .25s ease, transform .4s var(--ease-settle), box-shadow .4s var(--ease-settle); }
.editorial-button:hover, .editorial-button:focus-visible { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,.14); }
.editorial-button:active { transform:translateY(0); box-shadow:none; }
.text-action span, .editorial-button span, .invitation-link span, .card-link::after { transition:transform .4s var(--ease-settle); }
.market-row h3, .market-plus, .programme-plus { transition:color .25s ease, transform .4s var(--ease-settle); }
.programme-row summary h3 { transition:color .25s ease; }
.programme-row summary:hover h3 { color:#796332; }
.market-row[open] .market-detail, .programme-row[open] .programme-detail { animation:none; }
.nav-links a:not(.nav-cta)::after { content:''; position:absolute; left:0; right:0; bottom:5px; height:1px; background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease-settle); }
.nav-links a.active:not(.nav-cta)::after, .nav-links a:not(.nav-cta):hover::after, .nav-links a:not(.nav-cta):focus-visible::after { transform:scaleX(1); }
@media (prefers-reduced-motion:reduce) {
 .opening-film, .opening-bottom { animation:none; }
 .editorial-button:hover, .editorial-button:focus-visible { transform:none; }
}
