/* Source-led identity refresh from elementa_logo.jpeg and elementa_logo_2.jpeg.
   Colors are sampled raster interpretations, not an invented official brand manual.
   Supplied lettering is rendered as artwork. No font name was supplied. */
:root{
  --ink:#060707;
  --sand:#e7d3b8;
  --sand-light:#ebdac2;
  --fire:#b14420;
  --ochre:#975631;
  --water:#748079;
  --earth:#665942;
  --sage:#b8baa9;
  --white:var(--sand-light);
  --muted:#b8baa9;
  --ui-font:Arial,Helvetica,sans-serif;
  --voice-font:'Trebuchet MS',Arial,sans-serif;
  --voice-size:25px;
  --voice-line:1.35;
  --label-size:10px;
  --utility-size:11px;
  font-family:var(--ui-font);
}
.world{background:var(--ink)}
.coast{filter:saturate(.34) sepia(.12);opacity:.24}
.people{background:#32150f}
.people img{filter:saturate(.5) sepia(.18) brightness(.68)}
.veil{background:linear-gradient(180deg,#0607079c,#060707ec 36%,#060707d9 72%,#06070794)}
.tide{background:radial-gradient(ellipse at 14% 77%,#74807924,transparent 44%),radial-gradient(ellipse at 84% 91%,#97563128,transparent 43%);opacity:.3}
.grain{opacity:.045}
body[data-phase=coast] .coast{filter:saturate(.5) sepia(.1)}
body[data-phase=people] .veil{opacity:.42}
body[data-phase=logo] .people{opacity:.15}
body[data-phase=logo] .coast{opacity:.13}
h1{aspect-ratio:auto;max-height:none!important;flex-direction:column;gap:19px;width:min(560px,84%)}
#emblem{display:block;width:88px;height:86px;object-fit:contain;flex-shrink:0}
#logo{width:100%;height:auto;aspect-ratio:1096/111;object-fit:contain;flex-shrink:0}
.chapter{color:var(--sand);margin-top:15px;letter-spacing:.4em;font-size:11px}
.essence,#release-state{font-family:var(--voice-font);font-style:normal;font-weight:400;font-size:var(--voice-size);line-height:var(--voice-line);letter-spacing:.035em;color:var(--sand-light)}
.essence{margin-top:22px}
.festival{margin-top:24px}
.eyebrow,h2{font-family:var(--ui-font);font-size:var(--label-size);line-height:1.5;font-weight:400;color:var(--sage)}
.eyebrow{letter-spacing:.24em}h2{letter-spacing:.16em}
#festival-dates{color:var(--sand-light)}
.destination,.unit,#launch-status{color:var(--sage)}
.digit{color:var(--sand);font-family:var(--ui-font);font-weight:300}
#countdown b{color:#998b77}
.hairline span{background:#97563185}.hairline i{background:var(--sand)}
.release-copy{color:var(--sand-light)}
.place-dot{background:var(--sand);box-shadow:0 0 12px #e7d3b84d}
header,footer,footer button{font-family:var(--ui-font);font-size:var(--utility-size)}
footer,footer a,footer button{color:#d2cfbd}
footer a{opacity:1;min-height:44px;display:inline-flex;align-items:center;font-size:10px}
.languages button{min-width:44px}
.languages button{font-size:var(--utility-size);color:var(--sand);opacity:.7}
.languages button[aria-pressed=true]{opacity:1}
button:focus-visible,a:focus-visible,main:focus-visible{outline-color:var(--sand)}
.beat-caption{color:var(--sand-light)}
.intro-progress span{background:var(--sand)}
body.logo-failed h1{min-height:45px}body.logo-failed #emblem{display:none}
@media(max-width:600px){
  :root{--voice-size:21px;--label-size:10px;--utility-size:10px}
  h1{width:100%;max-width:350px;gap:17px}
  #emblem{width:76px;height:74px}
  .chapter{font-size:10px;margin-top:13px;letter-spacing:.36em}
  .essence{margin-top:23px;letter-spacing:.015em}
  .festival{margin-top:26px}
  .release{margin-top:22px}
  .release-copy{font-size:12px;line-height:1.65}
  h2{max-width:310px;font-size:var(--label-size);letter-spacing:.1em}
}
@media(max-height:740px){
  #emblem{width:60px;height:59px}
  h1{gap:12px}
  .chapter{margin-top:10px}
  .essence{margin-top:16px}
  .festival{margin-top:17px}
  .release{margin-top:16px}
}
@media(max-height:620px){
  :root{--voice-size:19px;--label-size:9px;--utility-size:10px}
  #emblem{width:44px;height:43px}
  h1{gap:10px;max-width:320px}
  .chapter{font-size:9px;margin-top:8px}
  .essence{margin-top:13px}
  .festival{margin-top:13px}
  .release-copy{font-size:11px;line-height:1.5}
  .unit{font-size:8px}#launch-status{font-size:10px}
}
@media(max-height:440px) and (min-width:600px){
  :root{--voice-size:19px;--label-size:8px}
  #emblem{width:48px;height:47px}
  h1{gap:12px}
  .essence{margin-top:12px}
  .festival{margin-top:12px}
}

/* Brand-led festival invitation: full-size scene copy, not navigation captions.
   New review copy interprets music, Venao and freedom of experience; not approved brand doctrine. */
.beat-caption{inset:0;bottom:0;z-index:4;justify-content:center;padding:90px 7vw;gap:24px;text-align:center;text-shadow:0 3px 30px #000,0 1px 5px #0009}
#beat-number{display:none}
#beat-title{font-family:var(--ui-font);font-size:clamp(32px,5.3vw,76px);font-weight:500;line-height:1.08;letter-spacing:-.025em;max-width:1000px;text-wrap:balance}
#beat-subtitle{display:block;max-width:640px;font-size:clamp(15px,1.5vw,21px);line-height:1.5;letter-spacing:.015em;text-wrap:balance;color:var(--sand-light)}
body[data-phase=logo] .beat-caption,body[data-phase=rest] .beat-caption{opacity:0!important;visibility:hidden;transition:opacity .35s,visibility .35s}
body[data-phase=coast] .beat-caption,body[data-phase=people] .beat-caption{opacity:1;visibility:visible}
body[data-phase=coast] #beat-title,body[data-phase=coast] #beat-subtitle{animation:coast-copy-in .7s ease both}
body[data-phase=people] #beat-title,body[data-phase=people] #beat-subtitle{animation:people-copy-in .7s ease both}
body[data-phase=coast] #beat-subtitle,body[data-phase=people] #beat-subtitle{animation-delay:.12s}
body[data-phase=coast] .veil,body[data-phase=people] .veil{opacity:.65}
@keyframes coast-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes people-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:600px){.beat-caption{padding:80px 25px;gap:22px}#beat-title{font-size:clamp(32px,9vw,48px);letter-spacing:-.03em}#beat-subtitle{font-size:16px;max-width:330px}}
@media(max-height:440px){.beat-caption{padding:60px 10vw;gap:14px}#beat-title{font-size:36px}#beat-subtitle{font-size:15px}}
