@font-face{font-family:'Archivo Expanded';font-weight:100 900;font-style:normal;font-display:swap;src:url('/fonts/archivo-exp.woff2') format('woff2')}
@font-face{font-family:'Open Sauce One';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/open-sauce-one-400.woff2') format('woff2')}
@font-face{font-family:'Open Sauce One';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/open-sauce-one-600.woff2') format('woff2')}
@font-face{font-family:'Open Sauce One';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/open-sauce-one-700.woff2') format('woff2')}
@font-face{font-family:'Open Sauce One';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/open-sauce-one-400-italic.woff2') format('woff2')}


/* ============ Fonts (self-hosted, embedded) ============
   Body: Open Sauce One (the specified body typeface, embedded).
   Display: Archivo pinned to its Expanded width, standing in for CY Grotesk V3 Wide Bold.
   To use the real CY Grotesk, host its files and uncomment the @font-face below;
   it sits first in --display so it takes priority automatically. */

/* ---- OPTIONAL: drop in licensed CY Grotesk V3 Wide Bold to replace the substitute ----
@font-face{font-family:'CY Grotesk V3 Wide';font-weight:700;font-display:swap;src:url(assets/fonts/CYGroteskV3Wide-Bold.woff2) format('woff2')}
-------------------------------------------------------------------------------------- */

:root{
  --ink:#0A0908;
  --ink-2:#131110;
  --ink-3:#1b1815;
  --brass:#C4A15A;
  --brass-lite:#DcBd83;
  --brass-deep:#9C7C3C;
  --cream:#EFE9DD;
  --paper:#F5F3ED;
  --muted:#A79F90;
  --muted-dim:#7d766a;
  --hair:rgba(196,161,90,.30);
  --hair-soft:rgba(196,161,90,.16);
  --blue:#5E86A6;
  --red:#B4494B;

  --display:'CY Grotesk V3 Wide','Archivo Expanded',sans-serif;
  --body:'Open Sauce One',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --h2:clamp(30px,5vw,60px);
  --track:-0.05em;

  --nav-h:76px;
  --edge:clamp(20px,5vw,84px);
  --maxw:1320px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;background:var(--ink);color:var(--cream);
  font-family:var(--body);font-weight:400;font-size:17px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{margin:0}
::selection{background:var(--brass);color:var(--ink)}

/* ---- Display type ---- */
.d{
  font-family:var(--display);font-weight:800;font-stretch:125%;
  text-transform:uppercase;letter-spacing:var(--track);line-height:.92;
  color:var(--cream);
}
.d.brass{color:var(--brass)}
/* Consistent primary section heading size across the site */
.sec-title{font-size:var(--h2)}
/* Label / eyebrow (used only where the source deck uses one) */
.label{
  font-family:var(--body);font-weight:600;text-transform:uppercase;
  letter-spacing:.20em;font-size:12.5px;color:var(--brass);
}
.label.pale{color:var(--paper)}
.standfirst{font-style:normal;color:var(--muted);font-size:clamp(17px,2vw,20px);line-height:1.5;max-width:60ch}

/* ---- Layout helpers ---- */
.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--edge)}
section{position:relative}
.rule{height:1px;background:var(--hair);border:0;margin:0}
.hair-top{border-top:1px solid var(--hair-soft)}

/* ---- Buttons ---- */
.btn{
  --bg:var(--brass);--fg:var(--ink);
  display:inline-flex;align-items:center;gap:.7em;
  font-family:var(--body);font-weight:700;text-transform:uppercase;
  letter-spacing:.13em;font-size:13px;line-height:1;
  padding:16px 26px;background:var(--bg);color:var(--fg);
  border:1px solid var(--brass);cursor:pointer;
  transition:background .35s ease,color .35s ease,transform .2s ease;
}
.btn:hover{background:transparent;color:var(--brass)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--paper);border-color:var(--hair)}
.btn.ghost:hover{border-color:var(--brass);color:var(--brass)}
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{
  outline:2px solid var(--brass-lite);outline-offset:3px;
}
.skip{position:absolute;left:-9999px;top:0;background:var(--brass);color:var(--ink);padding:10px 16px;z-index:200}
.skip:focus{left:8px;top:8px}

/* ---- Decorative diamond motif ---- */
.diamond{position:absolute;pointer-events:none;opacity:.5;z-index:0;
  background:url('/assets/indianechoes/img/diamonds.webp') center/contain no-repeat;
  width:min(38vw,420px);aspect-ratio:1281/1481;}

/* =================== HEADER =================== */
header{position:fixed;inset:0 0 auto 0;height:var(--nav-h);z-index:100;
  display:flex;align-items:center;transition:background .4s ease,border-color .4s ease;
  border-bottom:1px solid transparent;}
header.scrolled{background:rgba(10,9,8,.86);backdrop-filter:blur(10px);border-bottom-color:var(--hair-soft)}
.nav{display:flex;align-items:center;justify-content:space-between;width:100%}
.brandmark{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;
  letter-spacing:-.02em;font-size:16px;line-height:.9;color:var(--paper)}
.brandmark span{display:block}
.navlinks{display:flex;gap:22px;align-items:center}
.navlinks a{font-size:12.5px;letter-spacing:.04em;color:var(--muted);position:relative;padding:6px 0;transition:color .3s;white-space:nowrap}
.navlinks a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--brass);transition:width .35s ease}
.navlinks a:hover{color:var(--paper)}
.navlinks a:hover::after{width:100%}
.nav-cta{display:inline-flex}
.burger{display:none;background:none;border:0;cursor:pointer;width:40px;height:40px;padding:8px}
.burger span{display:block;height:1.6px;background:var(--paper);margin:6px 0;transition:.3s}
.burger.open span:nth-child(1){transform:translateY(7.6px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7.6px) rotate(-45deg)}

.mobile-menu{position:fixed;inset:0;z-index:99;background:var(--ink);
  display:flex;flex-direction:column;justify-content:center;gap:2px;padding:calc(var(--nav-h) + 12px) var(--edge) 28px;overflow-y:auto;
  transform:translateY(-100%);transition:transform .5s cubic-bezier(.7,0,.2,1);}
.mobile-menu.open{transform:translateY(0)}
.mobile-menu a{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;
  letter-spacing:var(--track);font-size:clamp(21px,5.4vw,34px);color:var(--cream);padding:11px 0;border-bottom:1px solid var(--hair-soft)}
.mobile-menu a:last-of-type{border-bottom:0}
.mobile-menu .mm-cta{margin-top:26px;font-family:var(--body);font-size:13px;letter-spacing:.13em;color:var(--brass)}
@media(max-width:1080px){
  .navlinks,.nav-cta{display:none}
  .burger{display:block}
}

/* =================== HERO =================== */
/* vertical rhythm is height-aware so the hero always resolves to one screen */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;
  padding-top:calc(var(--nav-h) + clamp(16px,3.4svh,64px));padding-bottom:clamp(42px,7.5svh,120px)}
.hero-bg{position:absolute;inset:0;z-index:0;will-change:transform}
.hero-bg img{width:100%;height:120%;object-fit:cover;object-position:center 35%}
.hero-bg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,9,8,.55) 0%,rgba(10,9,8,.15) 38%,rgba(10,9,8,.72) 82%,var(--ink) 100%);}
.hero-bg::before{content:"";position:absolute;inset:0;z-index:1;
  background:radial-gradient(120% 90% at 15% 30%,transparent 40%,rgba(10,9,8,.5) 100%)}
.hero .wrap{position:relative;z-index:2;width:100%}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
.hero-eyebrow{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.hero-eyebrow .dot{display:inline-block;width:5px;height:5px;background:var(--brass);border-radius:50%;vertical-align:middle;margin:0 10px}
.hero h1{margin:.16em 0 0}
.hero h1 .l1,.hero h1 .l2{display:block;font-size:clamp(44px,min(13vw,16.5svh),178px);line-height:.9;white-space:nowrap}
.hero h1 .at{color:var(--brass)}
/* keeps the normal size on tall/mobile screens, eases down only on short desktop viewports */
.hero .standfirst{margin-top:clamp(10px,1.9svh,22px);font-size:min(clamp(17px,2vw,20px),max(15px,2.6svh))}

/* prominent, thematic venue / date / time strip */
.hero-info{margin-top:clamp(14px,2.6svh,40px);display:grid;grid-template-columns:repeat(4,auto);gap:0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);width:fit-content;max-width:100%}
.hero-info .cell{padding:clamp(10px,1.5svh,16px) clamp(20px,3vw,38px) clamp(10px,1.5svh,16px) 0;position:relative}
.hero-info .cell + .cell{padding-left:clamp(20px,3vw,38px);border-left:1px solid var(--hair-soft)}
.hero-info .k{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:600}
.hero-info .v{font-family:var(--display);font-weight:700;font-stretch:125%;text-transform:uppercase;letter-spacing:var(--track);
  color:var(--paper);font-size:clamp(15px,1.8vw,21px);line-height:1.05;margin-top:clamp(5px,1svh,9px)}
.hero-actions{margin-top:clamp(14px,2.6svh,36px);display:flex;gap:14px;flex-wrap:wrap}
.hero-scroll{position:absolute;left:var(--edge);bottom:22px;z-index:3;font-size:11px;letter-spacing:.22em;
  text-transform:uppercase;color:var(--muted-dim);display:flex;align-items:center;gap:10px}
.hero-scroll .line{width:44px;height:1px;background:var(--brass);transform-origin:left;animation:scrollpulse 2.6s ease-in-out infinite}
@keyframes scrollpulse{0%,100%{transform:scaleX(.35);opacity:.5}50%{transform:scaleX(1);opacity:1}}
@media (prefers-reduced-motion:reduce){.hero-scroll .line{animation:none}}
@media(max-width:720px){
  .hero-info{grid-template-columns:1fr 1fr}
  .hero-info .cell{padding:14px 18px 14px 0}
  .hero-info .cell:nth-child(2){border-left:1px solid var(--hair-soft);padding-left:18px}
  .hero-info .cell:nth-child(3),.hero-info .cell:nth-child(4){border-top:1px solid var(--hair-soft)}
  .hero-info .cell:nth-child(3){padding-left:0;border-left:0}
}

/* hero type reveal */
.reveal-mask{overflow:hidden;display:block}
.reveal-mask > *{display:block;transform:translateY(102%);opacity:0}
.hero.loaded .reveal-mask > *{transform:translateY(0);opacity:1;
  transition:transform 1.05s cubic-bezier(.16,1,.3,1),opacity 1.05s ease}
.hero.loaded .r1>*{transition-delay:.05s}
.hero.loaded .r2>*{transition-delay:.18s}
.hero.loaded .r3>*{transition-delay:.34s}
.hero.loaded .r4>*{transition-delay:.44s}
.hero.loaded .r5>*{transition-delay:.58s}

/* =================== GENERIC SECTION RHYTHM =================== */
.sec{padding-block:clamp(44px,7svh,104px);position:relative}
.sec-sm{padding-block:clamp(36px,5.5svh,80px)}

/* down-chevron scroll cue linking to the next section */
.sec-next{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:5;
  width:44px;height:44px;display:grid;place-items:center;color:var(--brass);
  border:1px solid var(--hair);border-radius:50%;background:rgba(10,9,8,.4);
  transition:border-color .3s,color .3s,background .3s;animation:bob 2.4s ease-in-out infinite}
.sec-next:hover{border-color:var(--brass);color:var(--paper);background:rgba(10,9,8,.7)}
.sec-next svg{width:16px;height:16px}
@keyframes bob{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,5px)}}
@media (prefers-reduced-motion:reduce){.sec-next{animation:none}}
@media(max-width:820px){.sec-next{display:none}}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* =================== THE IDEA =================== */
.idea{border-top:1px solid var(--hair-soft);overflow:hidden}
.idea > .wrap > .label{color:var(--muted)}
.idea-grid{display:grid;grid-template-columns:1fr;gap:clamp(30px,5vw,64px)}
.idea-statement{font-size:var(--h2)}
.idea-statement .g{color:var(--brass)}
.idea-lead{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(30px,5vw,70px);align-items:end;margin-top:8px}
.idea-body p{max-width:56ch;color:#d7d0c2}
.idea-body p+p{margin-top:1.1em}
.idea-body strong{color:var(--paper);font-weight:700}
.idea-figure{position:relative}
.idea-figure img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(1.02)}
.idea-figure figcaption{margin-top:10px;font-size:12px;letter-spacing:.04em;color:var(--muted-dim)}
.elements{margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--hair)}
.elements-title{margin-top:clamp(20px,2.4vw,28px)}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(18px,2.2vw,26px)}
.pillar{padding:26px clamp(18px,2vw,24px);border-right:1px solid var(--hair-soft)}
.pillar:first-child{padding-left:0}
.pillar:last-child{border-right:0;padding-right:0}
.pillar .n{font-family:var(--display);font-weight:700;font-stretch:125%;font-size:14px;color:var(--brass);letter-spacing:0}
.pillar h4{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(19px,2.4vw,26px);margin-top:10px;color:var(--cream)}
@media(max-width:820px){.idea-lead{grid-template-columns:1fr}.pillars{grid-template-columns:1fr}
  .pillar{border-right:0;border-top:1px solid var(--hair-soft);padding:22px 0}
  .pillar:first-child{border-top:0;padding-top:0}
  /* full-bleed image on narrow screens */
  .idea-figure{margin-inline:calc(var(--edge) * -1)}}

/* =================== THE EXPERIENCE =================== */
.exp{background:var(--ink)}
.exp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap}
.exp-title{font-size:var(--h2)}
.exp-title .stack span{display:block}
.exp-title .g{color:var(--brass)}
.exp-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(14px,2vw,26px);margin-top:clamp(40px,6vw,72px)}
.exp-figure{position:relative;overflow:hidden}
.exp-figure img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.exp-figure:hover img{transform:scale(1.045)}
.exp-a{grid-column:1/6;aspect-ratio:3/4}
.exp-b{grid-column:6/13;display:flex;flex-direction:column;justify-content:flex-end;gap:22px}
.exp-b .exp-figure{aspect-ratio:16/9}
.exp-copyblock{grid-column:1/6;padding-top:6px}
.exp-copyblock+.exp-copyblock{grid-column:7/13}
.exp-item h4{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;letter-spacing:-.02em;
  font-size:clamp(22px,2.6vw,30px);color:var(--cream)}
.exp-item p{color:#cfc8ba;max-width:46ch;margin-top:12px}
.exp-item .k{color:var(--brass);font-weight:600;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;display:block;margin-bottom:14px}
.exp-copyrow{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,5vw,64px);margin-top:clamp(34px,4vw,52px);
  border-top:1px solid var(--hair);padding-top:clamp(30px,4vw,48px)}
@media(max-width:860px){
  .exp-a{grid-column:1/13;aspect-ratio:4/5}
  .exp-b{grid-column:1/13}
  .exp-copyrow{grid-template-columns:1fr;gap:34px}
}

/* =================== QUTUB =================== */
.qutub{position:relative;background:var(--ink);overflow:hidden}
.qutub-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:0;align-items:stretch;min-height:min(88vh,760px)}
.qutub-media{position:relative;overflow:hidden}
.qutub-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;will-change:transform}
.qutub-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 60%,var(--ink) 100%)}
.qutub-copy{display:flex;flex-direction:column;justify-content:center;
  padding:clamp(38px,min(6vw,7svh),90px) var(--edge) clamp(38px,min(6vw,7svh),90px) clamp(30px,5vw,70px)}
.qutub-copy .label{margin-bottom:20px}
.qutub-copy h2{font-size:var(--h2)}
.qutub-copy h2 .g{color:var(--brass)}
.qutub-copy p{color:#cfc8ba;max-width:44ch;margin-top:22px}
.qutub-facts{display:flex;gap:36px;margin-top:34px;flex-wrap:wrap}
.qutub-facts div .num{font-family:var(--display);font-weight:800;font-stretch:125%;font-size:clamp(24px,3vw,34px);color:var(--paper)}
.qutub-facts div .cap{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:6px}
@media(max-width:900px){.qutub-grid{grid-template-columns:1fr}.qutub-media{min-height:56vh}
  .qutub-media::after{background:linear-gradient(180deg,transparent 55%,var(--ink) 100%)}
  .qutub-copy{padding:clamp(40px,7vw,60px) var(--edge)}}

/* =================== PROGRAMME =================== */
.programme{background:var(--ink-2);position:relative;isolation:isolate;border-block:1px solid var(--hair-soft)}
.programme::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.5;
  background:url('/assets/indianechoes/img/pattern_monument.webp') center top/cover;mix-blend-mode:screen}
.prog-head{max-width:70ch}
.flow{display:grid;grid-template-columns:1fr;margin-top:clamp(36px,5vw,56px)}
.flow-item{display:grid;grid-template-columns:auto 1fr;gap:22px;padding:22px 0;border-top:1px solid var(--hair-soft);align-items:start}
.flow-item:last-child{border-bottom:1px solid var(--hair-soft)}
.flow-mark{width:34px;height:34px;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;color:var(--brass);flex:none;margin-top:2px}
.flow-mark svg{width:14px;height:14px}
.flow-body h4{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;letter-spacing:-.015em;
  font-size:clamp(18px,2.2vw,24px);color:var(--cream);display:flex;flex-wrap:wrap;gap:.5em;align-items:baseline}
.flow-body h4 .t{color:var(--brass);font-weight:700;font-size:.78em;letter-spacing:.02em}
.flow-body p{color:var(--muted);margin-top:7px;font-size:15.5px;max-width:74ch}
.flow-body .artists{color:#cfc8ba}
.prog-note{margin-top:18px;font-size:12.5px;color:var(--muted-dim);letter-spacing:.02em}

/* season 1 detail card */
.season1{display:grid;grid-template-columns:1fr 1fr;gap:clamp(26px,4vw,54px);margin-top:clamp(44px,6vw,72px);
  border-top:1px solid var(--hair);padding-top:clamp(34px,4vw,52px)}
.s1-lede .label{margin-bottom:16px}
.s1-lede h3{font-size:var(--h2)}
.s1-lede p{color:var(--muted);margin-top:14px;max-width:40ch}
/* same 2 x 3 box grid as before; type matches the programme flow heading pairing
   (.flow-body h4 / h4 .t) exactly — same faces, sizes, weights, colours, tracking */
.s1-facts{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--hair-soft);border:1px solid var(--hair-soft)}
.s1-facts div{background:var(--ink-2);padding:clamp(10px,1.7svh,16px) 12px}
.s1-facts .k{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;
  letter-spacing:-.015em;font-size:clamp(18px,2.2vw,24px);line-height:1.1;color:var(--cream);text-wrap:balance}
.s1-facts .v{margin-top:8px;font-family:var(--display);font-weight:700;font-stretch:125%;text-transform:uppercase;
  letter-spacing:.02em;font-size:calc(clamp(18px,2.2vw,24px) * .78);line-height:1.25;color:var(--brass);text-wrap:balance}
.tickets{display:flex;gap:14px;margin-top:clamp(16px,3svh,22px);flex-wrap:wrap}
.ticket{border:1px solid var(--hair);padding:clamp(13px,2.4svh,16px) 20px;min-width:180px}
.ticket .k{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.ticket .p{font-family:var(--display);font-weight:800;font-stretch:125%;font-size:clamp(22px,3vw,30px);color:var(--paper);margin-top:6px}
.ticket .p small{font-family:var(--body);font-weight:400;font-size:12px;letter-spacing:.04em;color:var(--muted);display:block;text-transform:none}
@media(max-width:820px){.season1{grid-template-columns:1fr}.s1-facts{grid-template-columns:1fr}}
/* short desktop viewports: tighten spacing only, so the section clears the fixed header */
@media(min-width:821px) and (max-height:700px){
  .inaugural{padding-block:clamp(28px,5svh,104px)}
  .s1-lede .label{margin-bottom:10px}
  .s1-lede p{margin-top:9px}
  .tickets{margin-top:15px}
}

/* schedule timeline */
.schedule{margin-top:clamp(48px,6vw,80px)}
.sch-title{font-size:var(--h2)}
.sch-track{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,26px);margin-top:34px;position:relative}
.sch-track::before{content:"";position:absolute;top:19px;left:8%;right:8%;height:1px;background:var(--hair)}
.sch-col{position:relative;padding-top:46px}
.sch-col::before{content:"";position:absolute;top:13px;left:0;width:13px;height:13px;background:var(--brass);
  transform:rotate(45deg);box-shadow:0 0 0 5px var(--ink-2)}
.sch-tag{position:absolute;top:0;left:22px;font-family:var(--display);font-weight:700;font-stretch:125%;text-transform:uppercase;
  font-size:12px;letter-spacing:.02em;color:var(--brass)}
.sch-col h4{color:var(--paper);font-weight:700;font-size:15px}
.sch-col ul{list-style:none;margin:12px 0 0;padding:0}
.sch-col li{font-size:13.5px;color:var(--muted);padding:3px 0;border-bottom:1px solid var(--hair-soft)}
.sch-col li b{color:#cfc8ba;font-weight:600}
.sch-foot{margin-top:22px;font-size:12px;letter-spacing:.03em;color:var(--muted-dim);text-transform:uppercase}
@media(max-width:820px){.sch-track{grid-template-columns:1fr;gap:8px}.sch-track::before{display:none}
  .sch-col{padding-top:0;padding-left:26px;border-left:1px solid var(--hair);padding-bottom:26px}
  .sch-col::before{top:4px;left:-7px}.sch-tag{position:static;display:block;margin-bottom:8px}}

/* split standalone sections */
.inaugural{background:var(--ink);padding-block:clamp(34px,6svh,104px)}
.sched-sec{background:var(--ink-2);border-block:1px solid var(--hair-soft)}
#inaugural .season1{margin-top:0;border-top:0;padding-top:0}
#schedule .schedule{margin-top:0}

/* =================== AUDIENCE =================== */
.audience{background:var(--ink)}
.aud-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,6vw,84px);align-items:center;margin-top:clamp(34px,5vw,52px)}
.aud-chart{display:flex;flex-direction:column;align-items:center;gap:20px}
.donut{width:min(80vw,360px)}
.legend{display:grid;grid-template-columns:1fr 1fr;gap:10px 22px;width:100%;max-width:360px}
.legend div{display:flex;gap:9px;font-size:13px;color:var(--muted);align-items:flex-start;line-height:1.35}
.legend .sw{width:11px;height:11px;flex:none;margin-top:3px}
.legend b{color:var(--paper);font-weight:600}
.aud-list{display:grid;gap:0}
.aud-row{display:grid;grid-template-columns:auto 1fr;gap:20px;padding:20px 0;border-top:1px solid var(--hair-soft);align-items:start}
.aud-row:last-child{border-bottom:1px solid var(--hair-soft)}
.aud-row .mk{width:30px;height:30px;border:1px solid var(--brass);border-radius:50%;display:grid;place-items:center;color:var(--brass);flex:none}
.aud-row .mk svg{width:12px;height:12px}
.aud-row h4{font-family:var(--body);font-weight:700;font-size:16px;color:var(--paper);letter-spacing:.01em}
.aud-row p{color:var(--muted);margin-top:5px;font-size:14.5px;max-width:60ch}
@media(max-width:860px){.aud-grid{grid-template-columns:1fr}}

/* =================== PARTNERSHIPS =================== */
.partners{background:var(--ink-2);position:relative;isolation:isolate;border-block:1px solid var(--hair-soft);overflow:hidden}
.partners::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.42;
  background:url('/assets/indianechoes/img/pattern_monument.webp') center/cover;mix-blend-mode:screen}
.part-head{max-width:64ch}
.part-invite{font-size:var(--h2);margin-top:8px}
.part-invite .g{color:var(--brass)}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(16px,2vw,24px);margin-top:clamp(40px,5vw,64px)}
.tier{border:1px solid var(--hair);padding:30px 26px 28px;position:relative;background:rgba(10,9,8,.35);transition:border-color .35s,transform .35s}
.tier:hover{border-color:var(--brass);transform:translateY(-4px)}
.tier .coin{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin-bottom:22px;
  font-family:var(--display);font-weight:800;font-stretch:125%;color:var(--ink);line-height:.9;text-align:center}
.tier .coin .amt{font-size:24px}
.tier .coin .u{font-size:10px;letter-spacing:.02em}
.tier .coin .rn,.addpart .coin .rn{font-size:30px;letter-spacing:0;line-height:1}
.tier.t1 .coin{background:var(--brass)}
.tier.t2 .coin{background:var(--blue)}
.tier.t3 .coin{background:var(--red)}
.tier .role{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;letter-spacing:-.01em;
  font-size:20px;color:var(--cream)}
.tier .persona{color:var(--brass);font-weight:600;font-size:13px;letter-spacing:.02em;margin-top:12px}
.tier .persona span{color:var(--muted);display:block;font-weight:400;letter-spacing:0;margin-top:3px;text-transform:none}
.tier .price{position:absolute;top:30px;right:26px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted-dim)}
@media(max-width:820px){.tiers{grid-template-columns:1fr}}

.addpart{margin-top:clamp(38px,5vw,58px);border:1px solid var(--hair);padding:clamp(24px,3vw,36px);display:grid;
  grid-template-columns:auto 1fr;gap:clamp(24px,4vw,48px);align-items:center}
.addpart .coin{width:96px;height:96px;border-radius:50%;background:var(--brass);display:grid;place-items:center;flex:none;
  font-family:var(--display);font-weight:800;font-stretch:125%;color:var(--ink);text-align:center;line-height:.9}
.addpart .coin .amt{font-size:30px}
.addpart .coin .u{font-size:11px}
.addpart-body .label{margin-bottom:12px}
.addpart-body p{color:#cfc8ba;font-size:15.5px;line-height:1.7}
.addpart-body p b{color:var(--paper);font-weight:600}
.addpart-body{min-width:0}
.addpart-body .sep{color:var(--brass)}
@media(max-width:640px){.addpart{grid-template-columns:1fr;text-align:center}.addpart .coin{margin-inline:auto}}

/* marketing reach */
.reach{margin-top:clamp(44px,6vw,72px);border-top:1px solid var(--hair);padding-top:clamp(32px,4vw,48px)}
.reach-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(12px,2vw,20px);margin-top:26px}
.stat .fig{font-family:var(--display);font-weight:800;font-stretch:125%;font-size:clamp(26px,3.4vw,42px);color:var(--brass);line-height:1}
.stat .cap{font-size:11.5px;letter-spacing:.06em;color:var(--muted);margin-top:10px;line-height:1.35}
@media(max-width:820px){.reach-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:480px){.reach-grid{grid-template-columns:1fr 1fr}}

/* backed by */
.backed{margin-top:clamp(46px,6vw,74px);border-top:1px solid var(--hair);padding-top:clamp(32px,4vw,48px)}
.backed-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:clamp(26px,4vw,52px);margin-top:26px}
.backed-col .label{margin-bottom:16px}
.backed-col h4{font-family:var(--display);font-weight:800;font-stretch:125%;text-transform:uppercase;letter-spacing:-.01em;
  font-size:19px;color:var(--cream)}
.backed-col p{color:var(--muted);font-size:14px;margin-top:10px;max-width:42ch}
.backed-col p b{color:#cfc8ba;font-weight:600}
.advisors{display:grid;gap:14px}
.advisor{border-top:1px solid var(--hair-soft);padding-top:12px}
.advisor h5{margin:0;font-family:var(--body);font-weight:700;color:var(--paper);font-size:15px}
.advisor p{margin-top:4px;font-size:13px;color:var(--muted);max-width:46ch}
.part-cta{margin-top:clamp(40px,5vw,60px);display:flex;gap:16px;flex-wrap:wrap;align-items:center}
@media(max-width:860px){.backed-grid{grid-template-columns:1fr}}

/* =================== FINAL CTA / FORM =================== */
.final{position:relative;overflow:hidden;background:var(--ink)}
.final-hero{position:relative;padding-block:clamp(80px,12vh,150px);overflow:hidden}
.final-bg{position:absolute;inset:0;z-index:0}
.final-bg img{width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.5}
.final-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--ink) 0%,rgba(10,9,8,.55) 40%,rgba(10,9,8,.75) 100%)}
.final-hero .wrap{position:relative;z-index:2}
.final-eyebrow{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:22px}
.final-eyebrow .dot{display:inline-block;width:5px;height:5px;background:var(--brass);border-radius:50%;vertical-align:middle}
.final h2{font-size:clamp(38px,10.5vw,150px)}
.final h2 .fl{display:block;white-space:nowrap;line-height:.92}
.final h2 .at{color:var(--brass)}
.final-sub{margin-top:22px;color:#cfc8ba;font-size:clamp(17px,2vw,20px);max-width:52ch}
.final-actions{margin-top:34px;display:flex;gap:14px;flex-wrap:wrap}

/* form + contacts */
.engage{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,90px);padding-block:clamp(64px,9vh,120px);border-top:1px solid var(--hair-soft)}
.form-head .label{margin-bottom:14px}
.form-head h3{font-size:var(--h2)}
.form-head p{color:var(--muted);margin-top:12px;max-width:44ch}
form.ei{margin-top:32px;display:grid;grid-template-columns:1fr 1fr;gap:20px 22px}
.field{display:flex;flex-direction:column;gap:8px}
.field.full{grid-column:1/3}
.field label{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.field label .req{color:var(--brass)}
.field input,.field select,.field textarea{
  background:var(--ink-2);border:1px solid var(--hair-soft);color:var(--paper);
  font-family:var(--body);font-size:15.5px;padding:14px 15px;border-radius:0;transition:border-color .3s,background .3s}
.field textarea{resize:vertical;min-height:110px}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--hair)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brass);background:var(--ink-3);outline:none}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C4A15A' stroke-width='1.4' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:40px}
.form-actions{grid-column:1/3;display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px}
.form-note{font-size:12.5px;color:var(--muted-dim)}
.form-msg{grid-column:1/3;font-size:14px;padding:14px 16px;border:1px solid var(--brass);color:var(--brass);display:none}
.form-msg.show{display:block}

.contacts{display:flex;flex-direction:column;gap:0}
.contacts .label{margin-bottom:20px}
.contact{border-top:1px solid var(--hair-soft);padding:22px 0}
.contact:last-of-type{border-bottom:1px solid var(--hair-soft)}
.contact h4{font-family:var(--body);font-weight:700;color:var(--paper);font-size:18px}
.contact a{display:flex;align-items:center;gap:11px;color:var(--muted);font-size:15px;margin-top:11px;transition:color .3s}
.contact a:hover{color:var(--brass)}
.contact a svg{width:15px;height:15px;color:var(--brass);flex:none}
.contacts-tail{margin-top:26px}
.contacts-tail a{font-family:var(--display);font-weight:700;font-stretch:125%;text-transform:uppercase;letter-spacing:-.01em;
  font-size:clamp(18px,2.4vw,24px);color:var(--paper);transition:color .3s}
.contacts-tail a:hover{color:var(--brass)}
@media(max-width:860px){.engage{grid-template-columns:1fr}form.ei{grid-template-columns:1fr}
  .field.full,.form-actions,.form-msg{grid-column:1/2}}

/* footer */
footer{padding-block:40px;border-top:1px solid var(--hair-soft)}
/* The two fixed rings live in the bottom corners, which is where this row
   puts the brandmark and the copyright. Nudging just those two aside keeps
   them clear without the footer growing by a single pixel — padding it out
   to make room made it far too tall, and hiding the rings meant they were
   missing exactly where a way back is most useful.

   `max()` so the nudge only applies when the page gutter is narrower than
   the ring needs; on a wide screen --edge already clears them and this is 0. */
/* Three columns rather than space-between: with items of unequal width,
   space-between only equalises the gaps, so the middle block drifts off centre
   by half the difference between the brandmark and the copyright. Equal 1fr
   side tracks put the credit line on the page's true centre line instead, and
   the ring clearances above stay on the outer items without moving it. The
   outer items are placed explicitly so the middle track stays the middle one
   even when the credit line is blank and only two items render. */
.foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}
.foot .brandmark{grid-column:1;justify-self:start;padding-left:max(0px,calc(86px - var(--edge)))}
.foot > .meta:last-child{grid-column:3;justify-self:end;padding-right:max(0px,calc(74px - var(--edge)))}
.foot .brandmark{font-size:14px}
.foot .meta{font-size:12.5px;color:var(--muted-dim);letter-spacing:.03em;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.foot .meta .dot{width:3px;height:3px;background:var(--brass);transform:rotate(45deg)}
/* Studio credits in the meta line. Underlined on the hairline rather than
   coloured, so they read as links without pulling focus from the copy beside
   them; brass on hover matches every other link on the page. */
.foot .meta a{color:inherit;text-decoration:underline;text-decoration-color:var(--hair-soft);
  text-underline-offset:3px;transition:color .3s,text-decoration-color .3s}
.foot .meta a:hover,.foot .meta a:focus-visible{color:var(--brass);text-decoration-color:var(--brass)}

/* Stacked and centred once the three columns no longer fit side by side.

   The ring clearances above are side paddings, and a side padding inside an
   item that is now a full-width row shifts its contents off the page's centre
   line rather than away from a ring: the brandmark sat the better part of a
   ring's width right of centre, and the copyright the same distance left of
   it. Stacked, both rows are narrow enough to pass between the two rings on
   their own, so the nudges are dropped here instead of being carried over. */
@media(max-width:860px){
  .foot{grid-template-columns:1fr;justify-items:center;text-align:center;gap:16px}
  .foot .brandmark,.foot > .meta:last-child{grid-column:1;justify-self:center}
  .foot .brandmark{padding-left:0}
  .foot > .meta:last-child{padding-right:0}
  .foot .meta{justify-content:center}
}

/* One line per row on a phone, for the meta list only — not the copyright,
   whose year and label are separate nodes on a single line.

   Wrapped inline, the separator dot between two items is left stranded at the
   end of a line, which reads as an off-centre line even though the row itself
   is centred. Stacking retires the dots along with the wrapping. */
@media(max-width:560px){
  .foot > .meta:not(:last-child){flex-direction:column;gap:8px}
  .foot > .meta:not(:last-child) .dot{display:none}
}

/* utility */
.pipe{color:var(--brass);padding:0 .35em;font-weight:400}
@media(max-width:400px){ .d{letter-spacing:-.045em} }

/* =================== FLOATING CONTROLS =================== */
/* A hairline brass ring on ink, the same treatment as .btn.ghost and the
   section rules. Deliberately not the main site's .back-to-top: this page
   carries its own design and none of that stylesheet.

   Both sit inside --edge, the same gutter the page content uses, so they line
   up with the columns rather than floating at an arbitrary inset. */
.ie-fab{
  position:fixed;bottom:16px;z-index:90;
  display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  border:1px solid var(--hair);border-radius:50%;
  color:var(--brass);background:var(--ink-2);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);
  text-decoration:none;cursor:pointer;padding:0;
  transition:border-color .35s ease,color .35s ease,background .35s ease,transform .2s ease,opacity .35s ease,visibility .35s;
}
.ie-fab svg{width:18px;height:18px;display:block}
.ie-fab:hover,.ie-fab:focus-visible{border-color:var(--brass);color:var(--brass-lite);background:var(--ink-3)}
.ie-fab:active{transform:translateY(1px)}

/* Home: icon over label, so the circle carries a little more than the arrow. */
.ie-fab-home{left:16px;width:56px;height:56px}
.ie-fab-home svg{width:16px;height:16px}
.ie-fab-home span{
  font-family:var(--body);font-size:7.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;line-height:1;
}

/* Back to top: icon only, and hidden until there is something to return from.
   visibility, not display, so the fade actually runs and the button leaves the
   tab order while it is off screen.

   Neither ring moves, neither ever hides, and the footer keeps its height.
   Raising them as the footer arrived dropped the home circle onto the SEND
   ENQUIRY button; padding the footer to make room made it far too tall; and
   hiding them took the way back off screen exactly where it is most wanted.
   They sit in the true corner instead, outside the page gutter, and the footer
   row nudges its two outer items clear of them. */
.ie-fab-top{right:16px;width:44px;height:44px;opacity:0;visibility:hidden;transform:translateY(12px)}
.ie-fab-top.is-visible{opacity:1;visibility:visible;transform:none}

/* The full-screen menu owns the viewport while it is open.

   Matched off the menu itself, not a body class: this page toggles `.open` on
   #mobileMenu and locks scrolling inline — it never sets the `body.menu-open`
   the main site uses. Both controls are siblings of the menu under <body>, so
   the general sibling combinator reaches them. The menu is z-index 99 against
   their 90 and covers them anyway; fading stops them showing through the
   slide. */
#mobileMenu.open ~ .ie-fab{opacity:0;visibility:hidden}


@media(max-width:600px){
  /* The icon and label shrink with the ring rather than after it — dropping
     the circle alone would leave the two crowding the border. */
  .ie-fab-home{width:50px;height:50px;gap:1px}
  .ie-fab-home svg{width:14px;height:14px}
  .ie-fab-home span{font-size:6.5px;letter-spacing:.08em}
  .ie-fab-top{width:40px;height:40px}
  .ie-fab svg{width:16px;height:16px}
}

@media(prefers-reduced-motion:reduce){
  /* The lift stays — it is layout, not decoration; only the easing goes. */
  .ie-fab{transition:opacity .01ms,visibility .01ms}
}
