/* op-heading-levels-ua */
:where(h2.rt-h3){display:block;font-size:1.17em;margin-block-start:1em;margin-block-end:1em;font-weight:bold}
/* op-heading-levels-ua:end */

/* ============================================================
   UJIMA — The Prompt Book. Shared stylesheet.
   Velvet oxblood + gilt gold on near-black.
   ============================================================ */
:root{
  --paper:#0c0405; --paper-2:#0a0304; --panel:#140609; --panel-2:#1a0a0f;
  --ink:#efe3ce; --ink-soft:#cfb794; --ink-dim:#a2875f; --ink-faint:#7d6551;
  --gold:#c9a24b; --gold-2:#dcb75f; --gold-soft:#b98a3e;
  --oxblood:#4a1218; --oxblood-2:#6a1a22; --oxblood-3:#8a2530;
  --rule:rgba(201,162,74,.22); --rule-soft:rgba(201,162,74,.13);
  --marquee:'Oswald','Arial Narrow','Roboto Condensed',Impact,sans-serif;
  --mono:'Space Mono',ui-monospace,'SF Mono','Menlo',monospace;
  --body:'Spectral','Iowan Old Style','Palatino Linotype',Palatino,Georgia,serif;
  --ui:'Archivo','Helvetica Neue',Arial,sans-serif;
  --wrap:1300px; --measure:70ch;
  --tier-standing:#c9a24b; --tier-worth:#b98a3e; --tier-mixed:#9a7f8a; --tier-down:#8a2530;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:21px;line-height:1.68;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{display:block;max-width:100%;}
a{color:var(--gold-2);text-decoration:none;}
a:hover{color:var(--ink);}
::selection{background:var(--oxblood-2);color:#f7edd8;}
.mono{font-family:var(--mono);}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 40px;}
.kicker{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);}
h1,h2,h3,h4{font-family:var(--ui);font-weight:800;letter-spacing:-.02em;line-height:1;color:#f7edd8;}
.marquee{font-family:var(--marquee);font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:.92;}

/* reveal */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);}
[data-reveal].shown{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){[data-reveal]{opacity:1 !important;transform:none !important;transition:none;}}

/* curtain reveal overlay */
#curtain{position:fixed;inset:0;z-index:9000;display:flex;pointer-events:none;}
#curtain .panel{width:52%;height:100%;background:linear-gradient(90deg,#12060a,#4a1218 55%,#2a0a10);box-shadow:inset -40px 0 90px rgba(0,0,0,.6);}
#curtain .panel.r{margin-left:-4%;background:linear-gradient(270deg,#12060a,#4a1218 55%,#2a0a10);box-shadow:inset 40px 0 90px rgba(0,0,0,.6);}
#curtain.open .panel{transform:translateX(-102%);transition:transform 1.4s cubic-bezier(.7,0,.25,1);}
#curtain.open .panel.r{transform:translateX(102%);}

/* ---------- MASTHEAD / NAV ---------- */
.masthead{position:sticky;top:0;z-index:200;background:rgba(10,3,4,.94);backdrop-filter:blur(6px);border-bottom:1px solid var(--rule);}
.masthead-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 40px;max-width:1460px;margin:0 auto;}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;flex:none;}
.brand .tag{padding-top:2px;}
.brand .word{font-family:var(--marquee);font-weight:700;font-size:30px;letter-spacing:.06em;text-transform:uppercase;color:#f7edd8;}
.brand .tag{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);line-height:1.4;}
.brand .tag b{display:block;color:var(--gold);font-weight:400;}
.mainnav{display:flex;align-items:center;gap:4px;}
.mainnav>li{list-style:none;position:relative;}
.mainnav a{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);padding:10px 14px;border-radius:2px;}
.mainnav a:hover,.mainnav a[aria-current]{color:#160406;background:var(--gold);}
.submenu{position:absolute;top:100%;left:0;min-width:230px;background:var(--panel-2);border:1px solid var(--rule);padding:6px;opacity:0;visibility:hidden;transform:translateY(6px);transition:.2s;z-index:50;box-shadow:0 24px 50px rgba(0,0,0,.5);}
.mainnav>li:hover .submenu,.mainnav>li:focus-within .submenu{opacity:1;visibility:visible;transform:none;}
.submenu a{font-family:var(--body);text-transform:none;letter-spacing:0;font-size:15px;padding:9px 12px;color:var(--ink-soft);border-radius:2px;}
.submenu a:hover{background:var(--oxblood);color:#f7edd8;}
.nav-toggle{display:none;background:none;border:1px solid var(--rule);color:var(--ink);font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;padding:9px 13px;cursor:pointer;}

/* ---------- buttons / chips ---------- */
.btn{display:inline-block;font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;padding:13px 22px;cursor:pointer;border:1px solid var(--gold);background:var(--gold);color:#160406;font-weight:600;transition:.2s;}
.btn:hover{background:var(--gold-2);color:#160406;}
.btn.ghost{background:transparent;color:var(--ink);}
.btn.ghost:hover{background:rgba(201,162,74,.12);color:#f7edd8;}
.chip{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;padding:9px 15px;cursor:pointer;border:1px solid var(--rule);background:transparent;color:var(--ink-soft);transition:.18s;}
.chip:hover{border-color:var(--gold);color:var(--ink);}
.chip[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:#160406;}

/* ---------- section band scaffolding ---------- */
.band{padding:76px 0;border-top:1px solid var(--rule);}
.band-head{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;flex-wrap:wrap;margin-bottom:34px;}
.band-title{font-size:clamp(30px,4vw,52px);}
.band-lead{max-width:46ch;font-size:17px;color:var(--ink-soft);line-height:1.55;}
.sec-num{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:12px;}

/* ---------- FRONT / hero ---------- */
.front{position:relative;min-height:82vh;display:flex;align-items:flex-end;overflow:hidden;}
.front .plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.42;}
.front .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,3,4,.35),rgba(10,3,4,.1) 34%,rgba(10,3,4,.86) 84%,var(--paper));}
.front .front-inner{position:relative;padding:0 40px 70px;max-width:1460px;margin:0 auto;width:100%;}
.front h1{font-family:var(--marquee);font-weight:700;text-transform:uppercase;font-size:clamp(46px,8vw,128px);line-height:.9;color:#f7edd8;max-width:16ch;text-shadow:0 4px 44px rgba(0,0,0,.6);}
.front .standfirst{max-width:60ch;margin-top:24px;font-size:23px;line-height:1.55;color:#e7d8c0;}
.front .cta-row{display:flex;gap:14px;margin-top:32px;flex-wrap:wrap;}
.callsheet{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:44px;max-width:880px;background:var(--rule);border:1px solid var(--rule);}
.callsheet>div{background:var(--paper);padding:18px 20px;}
.callsheet dt{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;}
.callsheet dd{font-size:16px;color:var(--ink);}

/* lead feature row on homepage front */
.lead-feature{display:grid;grid-template-columns:1.35fr 1fr;gap:0;border:1px solid var(--rule);background:var(--panel);}
.lead-feature .fig{position:relative;overflow:hidden;aspect-ratio:16/11;}
.lead-feature .fig img{width:100%;height:100%;object-fit:cover;}
.lead-feature .body{padding:34px 34px 30px;display:flex;flex-direction:column;justify-content:center;}
.tag-eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);}
.lead-feature h3{font-family:var(--marquee);font-weight:700;text-transform:uppercase;font-size:clamp(28px,3.2vw,46px);line-height:.95;margin:12px 0 14px;}
.lead-feature p{color:var(--ink-soft);font-size:17px;line-height:1.55;}
.meta-line{font-family:var(--mono);font-size:12px;letter-spacing:.05em;color:var(--ink-dim);margin-top:16px;}

/* ---------- MAP (On Stage) ---------- */
.map-layout{display:grid;grid-template-columns:1.55fr 1fr;gap:20px;align-items:stretch;}
.map-figure{position:relative;min-height:520px;border:1px solid var(--rule);background:linear-gradient(160deg,#170810,#0a0406);overflow:hidden;margin:0;}
.map-slot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;background:radial-gradient(80% 70% at 50% 42%,rgba(74,18,24,.34),transparent 72%);}
.map-slot .ms-txt{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);}
.map-slot .ms-sub{font-family:var(--mono);font-size:11px;color:#5c4a3d;margin-top:10px;letter-spacing:.06em;}
.map-legend{position:absolute;left:16px;bottom:16px;display:flex;gap:16px;background:rgba(10,3,4,.72);border:1px solid var(--rule);padding:9px 14px;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);}
.map-legend span{display:flex;align-items:center;gap:7px;}
.dot{width:11px;height:11px;border-radius:50%;flex:none;}
.dot.bway{background:var(--gold-2);box-shadow:0 0 8px rgba(201,162,74,.6);}
.dot.off{background:var(--oxblood-3);}
.dot.bk{border:2px solid #d9cbb4;}
.venue-panel{border:1px solid var(--rule);background:var(--paper-2);display:flex;flex-direction:column;}
.venue-panel h4{font-family:var(--mono);font-weight:400;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);padding:15px 18px;border-bottom:1px solid var(--rule-soft);}
.venue-list{list-style:none;overflow-y:auto;max-height:470px;}
.venue-list li{border-bottom:1px solid var(--rule-soft);}
.venue-list a{display:flex;align-items:flex-start;gap:12px;padding:15px 18px;color:var(--ink);}
.venue-list a:hover{background:var(--panel);}
.venue-list .vn{font-family:var(--ui);font-weight:700;font-size:16px;color:#f3ead9;}
.venue-list .vt{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);}
.venue-list .vb{font-size:14px;color:var(--ink-soft);line-height:1.4;margin-top:3px;}

/* ---------- INDEX OF VERDICTS ---------- */
.verdict-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:22px;}
.verdict-controls .lab{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);margin-right:4px;}
.verdict-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;}
.verdict{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--rule);padding:24px 24px 22px;text-decoration:none;color:inherit;transition:.22s;min-height:250px;}
.verdict:hover{background:var(--panel-2);transform:translateY(-3px);border-color:var(--gold-soft);}
.verdict .top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;}
.tier{font-family:var(--mono);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;padding:6px 11px 5px;border:1px solid currentColor;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;}
.tier::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;}
.tier.standing{color:var(--tier-standing);} .tier.worth{color:var(--tier-worth);}
.tier.mixed{color:var(--tier-mixed);} .tier.down{color:var(--tier-down);}
.verdict .venue{font-family:var(--mono);font-size:11px;letter-spacing:.06em;color:var(--ink-dim);text-align:right;}
.verdict h3{font-family:var(--marquee);font-weight:700;text-transform:uppercase;font-size:26px;line-height:.98;color:#f3ead9;}
.verdict .dek{margin-top:12px;font-size:16px;line-height:1.5;color:var(--ink-soft);font-style:italic;}
.verdict .more{margin-top:auto;padding-top:16px;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);}
.verdict[hidden]{display:none;}
.empty-note{grid-column:1/-1;padding:30px;text-align:center;font-family:var(--mono);font-size:12px;color:var(--ink-faint);}

/* ---------- generic feed cards (even height) ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px;}
.card{display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--rule);text-decoration:none;color:inherit;transition:.22s;}
.card:hover{border-color:var(--gold-soft);transform:translateY(-3px);}
.card .fig{aspect-ratio:16/10;overflow:hidden;}
.card .fig img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease;}
.card:hover .fig img{transform:scale(1.04);}
.card .c-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.card h3{font-family:var(--ui);font-weight:800;font-size:20px;line-height:1.1;color:#f3ead9;margin:10px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.2em;}
.card .dek{margin-top:10px;font-size:15.5px;line-height:1.5;color:var(--ink-soft);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.card .meta-line{margin-top:auto;padding-top:14px;}

/* ---------- VOICES ---------- */
.voices-lead{display:grid;grid-template-columns:1.1fr 1fr;gap:46px;align-items:center;}
.voices-lead .fig{aspect-ratio:4/5;overflow:hidden;border:1px solid var(--rule);}
.voices-lead .fig img{width:100%;height:100%;object-fit:cover;}
.voices-lead h2{font-size:clamp(30px,4.4vw,58px);line-height:.98;}
.essay-list{list-style:none;margin-top:24px;}
.essay-list li{border-top:1px solid var(--rule-soft);}
.essay-list a{display:flex;justify-content:space-between;align-items:baseline;gap:18px;padding:16px 0;color:var(--ink);}
.essay-list a:hover{color:var(--gold-2);}
.essay-list .et{font-family:var(--ui);font-weight:700;font-size:18px;}
.essay-list .ek{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-dim);white-space:nowrap;}

/* ---------- THE SCENE ---------- */
.scene-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.scene-cell{background:var(--paper);padding:30px 26px;display:flex;flex-direction:column;}
.scene-cell .sc-k{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;}
.scene-cell h3{font-family:var(--ui);font-weight:800;font-size:22px;margin-bottom:10px;}
.scene-cell p{font-size:16px;color:var(--ink-soft);line-height:1.55;}
.scene-cell .sc-links{list-style:none;margin-top:16px;display:flex;flex-direction:column;gap:8px;}
.scene-cell .sc-links a{font-size:15px;color:var(--ink);border-bottom:1px solid var(--rule-soft);padding:7px 0;}
.scene-cell .sc-links a:hover{color:var(--gold-2);}

/* ---------- SUPPORTERS (With gratitude to) ---------- */
.house{background:linear-gradient(180deg,#160810,#2a0a10);border-top:1px solid var(--rule);}
.house-head{text-align:center;max-width:640px;margin:0 auto 40px;}
.house-head h2{font-size:clamp(30px,4.4vw,56px);margin:10px 0;}
.house-head p{font-size:17px;color:var(--ink-soft);line-height:1.55;}
.featured-supporters{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;}
.sponsor{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0a0304;border:1px solid var(--rule);padding:30px 26px;text-decoration:none;color:inherit;text-align:center;min-height:150px;transition:.2s;}
.sponsor:hover{border-color:var(--gold-soft);}
.sponsor img{height:56px;width:auto;max-width:180px;object-fit:contain;opacity:.92;}
.sponsor-blurb{font-size:14.5px;line-height:1.5;color:var(--ink-soft);font-style:italic;}
.sponsor-blurb:empty{display:none;}
.roll-head{text-align:center;font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-dim);margin:52px 0 18px;}
.supporter-roll{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;}
.supporter-roll .sponsor{flex-direction:row;min-height:0;padding:11px 18px;gap:11px;background:rgba(10,3,4,.55);}
.supporter-roll .sponsor img{height:20px;}
.supporter-roll .sponsor-blurb{font-family:var(--mono);font-style:normal;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);}

/* ---------- FOOTER ---------- */
.site-foot{background:var(--paper-2);border-top:1px solid var(--rule);padding:64px 0 46px;}
.foot-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:40px;}
.foot-brand .word{font-family:var(--marquee);font-weight:700;font-size:44px;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-2);}
.foot-brand p{max-width:38ch;margin-top:12px;font-size:15px;color:var(--ink-dim);line-height:1.6;}
.foot-cols{display:flex;gap:56px;flex-wrap:wrap;}
.foot-cols h5{font-family:var(--mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-dim);margin-bottom:12px;}
.foot-cols ul{list-style:none;display:flex;flex-direction:column;gap:10px;}
.foot-cols a{color:var(--ink-soft);font-size:15px;}
.foot-cols a:hover{color:var(--gold-2);}
.disclaimer{margin-top:46px;padding-top:22px;border-top:1px solid var(--rule-soft);font-family:var(--mono);font-size:12px;line-height:1.7;color:var(--ink-faint);max-width:80ch;}

/* ============================================================
   ARTICLE / POST PAGE
   ============================================================ */
.post-hero{position:relative;min-height:64vh;display:flex;align-items:flex-end;overflow:hidden;}
.post-hero .plate{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5;}
.post-hero .scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,3,4,.5),rgba(10,3,4,.1) 40%,rgba(10,3,4,.9) 90%,var(--paper));}
.post-hero .ph-inner{position:relative;max-width:1140px;margin:0 auto;width:100%;padding:0 44px 56px;}
.post-hero .tier{margin-bottom:16px;}
.post-hero .kin{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:18px;}
.post-hero h1{font-family:var(--marquee);font-weight:700;text-transform:uppercase;font-size:clamp(40px,6.6vw,96px);line-height:.9;color:#f7edd8;max-width:17ch;}
.post-hero .standfirst{max-width:62ch;margin-top:20px;font-size:22px;color:#e7d8c0;line-height:1.5;}
.byline{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-top:22px;font-family:var(--mono);font-size:12.5px;letter-spacing:.05em;color:var(--ink-dim);}
.byline .b-dot{width:4px;height:4px;border-radius:50%;background:var(--oxblood-2);}
.byline .b-strong{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;}

/* post body: wide, breathing, asymmetric — NOT a narrow centred column with sticky rail */
.article{max-width:1140px;margin:0 auto;padding:56px 44px 20px;}
.article-body{max-width:var(--measure);padding-inline:0;font-size:22px;line-height:1.78;color:var(--ink-soft);}
.article-body>p{margin-bottom:22px;text-wrap:pretty;}
.article-body>p>strong,.article-body strong{color:var(--ink);font-weight:700;font-family:inherit;}
.article-body a{border-bottom:1px solid rgba(201,162,74,.4);}
.article-body a:hover{border-color:var(--gold-2);}
.article-body h2{font-family:var(--ui);font-weight:800;font-size:clamp(26px,3vw,38px);color:#f7edd8;margin:52px 0 18px;line-height:1.04;max-width:24ch;}
.sec-count{counter-reset:sec;}
.article-body h2.numbered::before{counter-increment:sec;content:counter(sec,decimal-leading-zero);display:block;font-family:var(--mono);font-size:13px;letter-spacing:.2em;color:var(--gold);margin-bottom:10px;font-weight:400;}
.article-body h3{font-family:var(--ui);font-weight:800;font-size:22px;color:#f3ead9;margin:34px 0 12px;}
.lead{font-size:27px !important;line-height:1.5;color:var(--ink) !important;margin-bottom:28px;font-style:normal;}
.lead .dropcap,.dropcap{float:left;font-family:var(--marquee);font-weight:700;font-size:92px;line-height:.66;padding:10px 14px 0 0;color:var(--gold);}
.article-body ul,.article-body ol{margin:0 0 22px 1.1em;}
.article-body li{margin-bottom:10px;}

/* pull-quote — marginal / full-bleed */
.pullquote{margin:38px 0;padding:6px 0 6px 26px;border-left:3px solid var(--gold);}
.pullquote p{font-family:var(--marquee);font-weight:700;text-transform:uppercase;font-size:clamp(24px,3.2vw,38px);line-height:1.06;color:#f7edd8;}
@media(min-width:1180px){
  .pullquote.margin{float:right;width:340px;margin:6px -400px 24px 34px;border-left:none;border-top:2px solid var(--gold);padding:16px 0 0;}
  .pullquote.margin p{font-size:26px;}
}
.blockquote{margin:32px 0;padding:18px 26px;background:var(--panel);border-left:3px solid var(--oxblood-2);}
.blockquote p{font-size:20px;font-style:italic;color:var(--ink);line-height:1.5;}
.blockquote cite{display:block;margin-top:12px;font-family:var(--mono);font-size:12px;font-style:normal;letter-spacing:.06em;color:var(--ink-dim);}

.callout{margin:32px 0;padding:24px 26px;background:linear-gradient(180deg,#1a0a0f,#140609);border:1px solid var(--rule);border-left:4px solid var(--gold);}
.callout p{font-size:18px;line-height:1.55;color:var(--ink);}
.callout .co-k{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;display:block;}
.note{margin:26px 0;padding:16px 20px;background:rgba(74,18,24,.22);border:1px dashed var(--rule);font-size:16.5px;line-height:1.55;color:var(--ink-soft);}
.note::before{content:"Note — ";font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-soft);}

/* tables */
.versus,.datatable{width:100%;border-collapse:collapse;margin:30px 0;font-size:16.5px;}
.versus th,.versus td,.datatable th,.datatable td{border:1px solid var(--rule);padding:13px 16px;text-align:left;vertical-align:top;}
.versus thead th,.datatable thead th{background:var(--panel-2);font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);}
.versus tbody th{background:var(--panel);font-family:var(--ui);font-weight:800;color:#f3ead9;}
.datatable tbody tr:nth-child(even){background:rgba(20,6,9,.5);}
.datatable td{color:var(--ink-soft);}

/* statblocks */
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);margin:32px 0;}
.statblock{background:var(--paper);padding:22px 20px;text-align:center;}
.stat-num{display:block;font-family:var(--marquee);font-weight:700;font-size:44px;line-height:1;color:var(--gold-2);}
.stat-label{display:block;margin-top:8px;font-size:13.5px;line-height:1.4;color:var(--ink-soft);}

/* timeline */
.timeline{list-style:none;margin:32px 0;padding-left:22px;border-left:2px solid var(--rule);}
.timeline li{position:relative;padding:0 0 24px 22px;}
.timeline li::before{content:"";position:absolute;left:-30px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--gold);border:2px solid var(--paper);}
.timeline .t-when{display:block;font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin-bottom:5px;}
.timeline .t-what{display:block;font-size:17px;color:var(--ink-soft);line-height:1.45;}

/* charts */
.chart{margin:34px 0;}
.chart svg{width:100%;height:auto;display:block;overflow:visible;}
.chart .bar-track{fill:rgba(201,162,74,.12);}
.chart .bar-fill{fill:var(--gold);}
.chart .bar-label{font-family:var(--mono);font-size:12px;fill:var(--ink-soft);}
.chart .bar-val{font-family:var(--mono);font-size:12px;fill:var(--gold-2);}
.chart figcaption,.article-figure figcaption,.map-figure figcaption,.gallery figcaption{font-family:var(--mono);font-size:12.5px;letter-spacing:.04em;color:var(--ink-dim);margin-top:12px;line-height:1.5;}

/* figures */
.article-figure{margin:36px 0;}
.article-figure img{width:100%;border:1px solid var(--rule);}
.article-figure.breakout{width:min(1140px,94vw);margin-left:calc(50% - min(570px,47vw));}
.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:34px 0;}
.gallery figure{margin:0;}
.gallery img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--rule);}
.article .map-figure{min-height:420px;margin:36px 0;}

/* cards / references */
.profile-grid,.org-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:32px 0;}
.profile-card{background:var(--panel);border:1px solid var(--rule);padding:22px;}
.profile-card .p-photo{width:64px;height:64px;border-radius:50%;object-fit:cover;margin-bottom:14px;border:1px solid var(--rule);}
.profile-card.no-photo::before{content:"◆";display:block;font-size:22px;color:var(--gold-soft);margin-bottom:10px;}
.profile-card h3{font-family:var(--ui);font-weight:800;font-size:18px;}
.profile-card .p-role{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);margin:6px 0 10px;}
.profile-card p{font-size:15px;color:var(--ink-soft);line-height:1.5;}
.profile-card .p-links{margin-top:10px;font-size:14px;}
.org-card{display:flex;flex-direction:column;gap:6px;background:var(--panel);border:1px solid var(--rule);padding:16px 18px;color:inherit;transition:.2s;}
.org-card:hover{border-color:var(--gold-soft);}
.org-card.no-logo .org-logo{display:none;}
.org-logo{height:26px;width:auto;object-fit:contain;margin-bottom:6px;}
.org-name{font-family:var(--ui);font-weight:800;font-size:16px;color:#f3ead9;line-height:1.15;}
.org-host{font-family:var(--mono);font-size:12px;color:var(--ink-dim);line-height:1.4;}
.entity-ref{border-bottom:1px solid rgba(201,162,74,.4);}
.entity-ref::after{content:" ↗";font-size:.85em;color:var(--gold);}

.further-grid,.related-links{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;list-style:none;padding:0;margin:20px 0 0;}
.related-block{max-width:1140px;margin:52px auto 0;padding:34px 44px 0;border-top:1px solid var(--rule);}
.related-block h2{font-family:var(--ui);font-weight:800;font-size:26px;margin-bottom:6px;}
.related-links a,.further-grid a{display:block;background:var(--panel);border:1px solid var(--rule);padding:20px;color:inherit;transition:.2s;}
.related-links a:hover,.further-grid a:hover{border-color:var(--gold-soft);transform:translateY(-2px);}
.related-links .rl-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);}
.related-links .rl-t{display:block;font-family:var(--ui);font-weight:800;font-size:18px;color:#f3ead9;margin-top:8px;line-height:1.1;}

.post-foot{max-width:1140px;margin:40px auto 0;padding:34px 44px 60px;border-top:1px solid var(--rule);}

/* ---------- section / category landing ---------- */
.sec-hero{padding:80px 0 40px;border-bottom:1px solid var(--rule);background:radial-gradient(110% 80% at 50% -10%,#1a0a0f,var(--paper) 70%);}
.sec-hero h1{font-family:var(--marquee);font-weight:700;text-transform:uppercase;font-size:clamp(46px,8vw,116px);line-height:.9;color:#f7edd8;}
.sec-hero p{max-width:60ch;margin-top:20px;font-size:20px;color:var(--ink-soft);line-height:1.55;}
.cat-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:18px;}
.cat-list li{background:var(--panel);border:1px solid var(--rule);transition:.2s;}
.cat-list li:hover{border-color:var(--gold-soft);}
.cat-list a{display:flex;flex-direction:column;gap:10px;padding:26px;color:inherit;height:100%;}
.cat-list .cl-k{font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);}
.cat-list .cl-t{font-family:var(--ui);font-weight:800;font-size:23px;color:#f3ead9;line-height:1.08;}
.cat-list .cl-d{font-size:16px;color:var(--ink-soft);line-height:1.5;}
.cat-list .cl-m{margin-top:auto;font-family:var(--mono);font-size:11.5px;letter-spacing:.05em;color:var(--ink-dim);}

/* simple content page (about/contact/404) */
.page-narrow{max-width:74ch;margin:0 auto;padding:70px 40px 80px;}
.page-narrow h1{font-family:var(--marquee);font-weight:700;text-transform:uppercase;font-size:clamp(40px,6vw,84px);line-height:.92;margin-bottom:24px;}
.page-narrow p{font-size:20px;line-height:1.7;color:var(--ink-soft);margin-bottom:20px;}
.page-narrow p strong{color:var(--ink);}
.contact-methods{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:26px 0;}
.contact-methods li{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--rule);padding:20px;}
.contact-methods svg{width:24px;height:24px;stroke:var(--gold);fill:none;stroke-width:1.6;flex:none;}
.contact-methods .cm-k{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-dim);}
.contact-methods .cm-v{font-size:16px;color:var(--ink);}

/* inline SVG icon default */
.ico{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.7;vertical-align:-.12em;}

/* styleguide helpers */
.sg-section{border-top:1px solid var(--rule);padding:48px 0;}
.sg-section>h2{font-family:var(--mono);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:24px;}
.sg-swatches{display:flex;flex-wrap:wrap;gap:12px;}
.sg-swatch{width:120px;}
.sg-swatch .chip-c{height:64px;border:1px solid var(--rule);}
.sg-swatch span{font-family:var(--mono);font-size:11px;color:var(--ink-dim);display:block;margin-top:6px;}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media(max-width:1000px){
  .map-layout{grid-template-columns:1fr;}
  .venue-list{max-height:340px;}
  .lead-feature{grid-template-columns:1fr;}
  .voices-lead{grid-template-columns:1fr;gap:28px;}
  .voices-lead .fig{aspect-ratio:16/10;order:-1;}
  .callsheet{grid-template-columns:repeat(2,1fr);}
  .scene-grid{grid-template-columns:1fr;}
  .featured-supporters{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:820px){
  .nav-toggle{display:block;}
  .mainnav{position:fixed;top:0;right:0;bottom:0;width:min(84vw,340px);flex-direction:column;align-items:stretch;gap:2px;background:var(--panel-2);border-left:1px solid var(--rule);padding:76px 16px 24px;transform:translateX(100%);transition:transform .3s;overflow-y:auto;z-index:190;}
  body.nav-open .mainnav{transform:none;}
  .mainnav a{padding:13px 14px;font-size:14px;}
  .submenu{position:static;opacity:1;visibility:visible;transform:none;border:none;box-shadow:none;background:transparent;padding:0 0 8px 12px;}
  .submenu a{padding:9px 12px;}
  body.nav-open::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:180;}
}
@media(max-width:720px){
  body{font-size:18px;line-height:1.62;}
  .wrap,.masthead-inner,.front .front-inner{padding-left:20px;padding-right:20px;}
  .masthead-inner{padding-top:12px;padding-bottom:12px;}
  .brand .word{font-size:24px;}
  .band{padding:44px 0;}
  .band-head{margin-bottom:24px;gap:14px;}
  .band-lead{font-size:16px;}
  .sec-num{margin-bottom:9px;}
  .front{min-height:74vh;}
  .front .front-inner{padding-bottom:48px;}
  .front h1{font-size:clamp(38px,12vw,64px);}
  .front .standfirst{font-size:19px;margin-top:18px;}
  .front .cta-row{margin-top:24px;}
  .callsheet{margin-top:30px;}
  .article{padding:34px 20px 16px;}
  .article-body{font-size:19px;padding-inline:0;}
  .article-body h2{margin:38px 0 14px;}
  .lead{font-size:23px !important;}
  .dropcap,.lead .dropcap{font-size:72px;padding:8px 10px 0 0;}
  .post-hero{min-height:0;padding-top:24px;}
  .post-hero .ph-inner,.related-block,.post-foot{padding-left:20px;padding-right:20px;padding-bottom:40px;}
  .post-hero .standfirst{font-size:19px;}
  .byline{gap:10px;font-size:12px;}
  .related-block{margin-top:40px;padding-top:28px;}
  .verdict-grid,.card-grid,.cat-list{grid-template-columns:1fr;}
  .verdict{min-height:0;padding:22px;}
  .lead-feature .body{padding:26px 22px;}
  .map-figure{min-height:400px;}
  .venue-list{max-height:none;}
  .featured-supporters{grid-template-columns:1fr;}
  .sponsor{min-height:0;padding:24px;}
  .foot-top{gap:28px;}
  .foot-cols{gap:30px 40px;}
  .foot-brand .word{font-size:36px;}
  .disclaimer{margin-top:34px;}
  .callsheet{grid-template-columns:repeat(2,1fr);}
  .statrow{grid-template-columns:repeat(2,1fr);}
  .stat-num{font-size:36px;}
  .pullquote.margin{float:none;width:auto;margin:30px 0;border-top:none;border-left:3px solid var(--gold);padding:6px 0 6px 22px;}
  .pullquote p{font-size:24px;}
  .article-figure.breakout{width:auto;margin-left:0;}
  .article-figure,.chart,.blockquote,.callout,.versus,.datatable,.timeline{margin-top:28px;margin-bottom:28px;}
  .sec-hero{padding:52px 0 32px;}
  .sec-hero p{font-size:18px;}
  .page-narrow{padding:44px 20px 56px;}
  .page-narrow p{font-size:18px;}
  .versus,.datatable{font-size:15px;}
  .versus th,.versus td,.datatable th,.datatable td{padding:10px 11px;}
}
@media(max-width:400px){
  .callsheet,.statrow{grid-template-columns:1fr;}
  .brand .tag{display:none;}
  .front h1{font-size:clamp(34px,13vw,52px);}
  .verdict-controls{gap:8px;}
  .verdict-controls .lab{margin-right:0;}
}

.venue-list a{padding:16px 18px}
.venue-list .vn{font-weight:700;color:#f3ead9}
.venue-list .vt{display:inline-block;margin-left:10px;color:var(--ink-dim)}
.venue-list .vb{display:block;margin-top:7px;color:var(--ink-soft);line-height:1.45}
.venue-list li{transition:background .15s}
.venue-list li.hl{background:var(--panel)}
.venue-list li.hl .vn{color:#ffd77a}
.venue-list li.hl .dot{box-shadow:0 0 0 4px rgba(216,178,74,.18)}
.chart-svg .tpin{cursor:pointer}
.chart-svg .tpin .mark,.chart-svg .tpin .lbl{transition:fill .18s}
.chart-svg .tpin .halo{opacity:0}
.chart-svg .tpin.active .mark{stroke:#fff;stroke-width:2.4}
.chart-svg .tpin.active .lbl{fill:#ffffff}
.chart-svg .tpin.active .halo{opacity:1;animation:tpulse 1.25s ease-out infinite}
@keyframes tpulse{0%{transform:scale(.55);opacity:.7}100%{transform:scale(2.9);opacity:0}}

/* sp-contain-guard: sponsor logos are wordmarks — never object-fit:cover (crops).
   object-fit ONLY. This block used to also set width:auto, padding:4px 10px,
   max-width:calc(100% - 20px) and min/max-height, which overrode Design's own frame and
   let every plate shrink-wrap its logo — the recurring "inconsistent sizing" and
   "lacks padding". Geometry belongs to Design. */
.sponsor img{object-fit:contain!important}

/* sp-mark-frame: a uniform plate for the money mark, in the tiers where Design sized the plate
   to the artwork instead. Operator's rule: the dark ground is unified whatever the logo's
   size. width:100% (or one fixed width where copy shares the row) + one height for the tier
   + object-fit:contain, so the plate is the same box everywhere and the artwork fits inside
   it. A ground and an inset are added ONLY where none exists — adding a second ground gives
   co-cure's rectangle-inside-a-rectangle. Design's framed tiers are not touched at all. */
.featured-supporters .sponsor .sp-logo.sp-logo{display:block!important;width:100%!important}
.featured-supporters .sponsor.sponsor img{height:56px!important;display:block!important;width:100%!important}

/* op-centre-feat-marks: operator: the top six items' logo images aren't centred. The plate is
   full width but the artwork sat off centre in it; centred in both axes. (The roll band below is
   Design's centred chip row — see the review note, it is the CAPTION LENGTH that breaks it, not
   the layout.) */
.featured-supporters .sponsor.sponsor img{object-position:center center!important;max-width:none!important}
/* ⚠️ object-position alone did nothing because the BOX was not full width: .sponsor img carries
   max-width:180px, which caps the width:100% sp-mark-frame already sets — the plate measured
   180px inside a 341px anchor, sitting left. Release the cap and the plate fills the tile. */

/* op-drawer-clip: the mobile nav is position:fixed and parked off-canvas to the RIGHT, so its box
   added its full width to the document's scroll width — the page was hundreds of px wider than the
   phone. overflow-x:clip on the root stops a parked panel contributing to scroll width; `clip`
   rather than `hidden` because hidden creates a scroll container and breaks position:sticky
   elsewhere. Verified per build: the drawer still opens and lands fully on screen. */
/* ⚠️ scoped to phone widths on the operator's instruction: "We basically want to
     desktop grid design to stay as-is ... We are strictly re-working how mobile is
     displaying." the parked off-canvas drawer only exists at phone widths, so the clip has no business at desktop. */
@media (max-width:900px){html,body{overflow-x:clip}}

/* op-blurb-rows: money blurbs ran to 9 rows at 390, 834px of tier across
   6 tiles. Operator: blurbs should show "2-3 rows max" on mobile —
   a blurb that long eats the screen and, in a two-column grid, rewraps into more height than
   the columns save. Held to three rows at phone width; the copy stays in the markup and
   desktop is untouched. Only the tier(s) measured past three rows are clamped. */
@media (max-width:640px){
  .supporter-roll .sponsor-blurb{display:-webkit-box!important;-webkit-line-clamp:3!important;-webkit-box-orient:vertical;max-height:54px!important;min-height:0!important;overflow:hidden!important}
}

/* op-money-cutoff: at 320 the tiles are wider than the row that holds them (324px in 280px) and hang off both sides at 320. Structural only — no spacing value of mine: the mark is
   held to the box it is given, the column is allowed to shrink, or the tile is measured
   border-box. Trialled before writing: the cut-off is gone, no new overflow, the smallest mark
   still measures over 70px. Phone widths only; 390 and desktop are untouched. */
@media (max-width:360px){
  .sponsor{max-width:100%!important;min-width:0!important}
}

/* op-money-squeeze: the money tile is a ROW whose mark takes nearly all of it, so the brand copy was
   left a column 51px wide at 320 — a sentence broken one or two words to a line. No
   overflow or clipping check sees this: the copy is not cut, just unreadably thin. The tile row is
   allowed to WRAP on phones, so the copy drops beneath the mark at full width (the evos remedy).
   Desktop keeps Design's side-by-side. Structural only. */
@media (max-width:400px){
  .supporter-roll > [data-partner]{flex-wrap:wrap!important}
  .supporter-roll > [data-partner] > :not(img):not(svg):not(picture){flex-basis:100%!important;min-width:0!important}
}
/* op-heading-levels */
h3:where(.rt-h4){font-family: var(--ui); font-weight: 800; letter-spacing: -0.02em; line-height: 1; color: rgb(247, 237, 216);}
h2:where(.rt-h3){font-family: var(--ui); font-weight: 800; letter-spacing: -0.02em; line-height: 1; color: rgb(247, 237, 216);}
.venue-panel h3:where(.rt-h4){font-family: var(--mono); font-weight: 400; font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink-dim); padding: 15px 18px; border-bottom: 1px solid var(--rule-soft);}
.article-body h2:where(.rt-h3){font-family: var(--ui); font-weight: 800; font-size: 22px; color: rgb(243, 234, 217); margin: 34px 0px 12px;}
h2.rt-h3.rt-h3{height:22px;line-height:22px;max-width:none}
/* op-heading-levels:end */

/* op-img-dims — intrinsic width/height reserve image space; the proven height:auto guard (zero specificity) */
:where(a.card > div.fig > img,
  article > section.post-hero > img.plate,
  body > section.front > img.plate,
  div.article-body > figure.article-figure > img,
  div.article-body > figure.article-figure.breakout > img){height:auto}
/* op-img-dims:end */
.mainnav > li:nth-of-type(n+4) > .submenu{left:auto!important;right:0!important}
