:root{--bg:#05070c;--bg2:#0c111b;--ink:#e9eef6;--mute:#93a0b4;--a:#38e1ff;--b:#ff3fa4;--gold:#d9b46a}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:300 17px/1.65 Inter,system-ui,sans-serif}
a{color:var(--a)}img{max-width:100%;display:block}
h1,h2,h3{font-family:"Cormorant Garamond",serif;font-weight:600;line-height:1.08;margin:.2em 0 .4em}
h1{font-size:clamp(44px,7vw,92px)}h1 em{color:var(--gold);font-style:italic}h2{font-size:clamp(32px,4vw,52px)}h3{font-size:26px}
.wrap{max-width:1240px;margin:auto;padding:0 28px}
header.site{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:22px 34px;background:linear-gradient(#000a,#0000)}
.brand{font:600 20px Inter;letter-spacing:.3em;color:#fff;text-decoration:none}.brand span{color:var(--a);margin-left:.3em}
nav a{color:#cfd7e4;text-decoration:none;font-size:13px;letter-spacing:.06em;margin-left:20px;text-transform:uppercase}nav a.on,nav a:hover{color:var(--a)}
.hero{position:relative;height:100vh;min-height:640px;overflow:hidden;display:flex;align-items:flex-end}
.bgvid,.poster{position:absolute;inset:0}.poster{width:100%;height:112%;object-fit:cover;object-position:bottom;z-index:0}
.bgvid{z-index:1;overflow:hidden;max-width:100%}.bgvid iframe{position:absolute;top:50%;left:50%;width:177.78vh;height:56.25vw;max-width:none;min-width:100%;min-height:100%;transform:translate(-50%,-50%);border:0}
.shade{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,#0008 0%,#0003 32%,#05070ce8 100%)}
.hero .wrap,.wp-block-cover .wrap{position:relative;z-index:3;padding-bottom:9vh;width:100%}
/* Desktop hero: keep full-bleed video, darken lower/left so Vimeo title cards don't compete with copy */
@media (min-width:861px){
  .hero .bgvid{
    inset:0 0 0 0;
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 55%,rgba(0,0,0,.55) 78%,transparent 100%);
    mask-image:linear-gradient(180deg,#000 0%,#000 55%,rgba(0,0,0,.55) 78%,transparent 100%);
  }
  .hero .shade{
    background:
      linear-gradient(90deg,#05070cf0 0%,#05070cc4 38%,#05070c55 62%,transparent 82%),
      linear-gradient(180deg,#0009 0%,#0002 34%,#05070ce0 68%,#05070c 100%);
  }
  .hero .wrap{
    max-width:min(720px,100%);
    padding:32px 34px 10vh 28px;
    margin:0;
    background:linear-gradient(90deg,#05070cf5 0%,#05070ce6 58%,#05070c00 100%);
    border-radius:0 14px 0 0;
    box-sizing:border-box;
  }
  .hero h1,.hero .lede,.hero .eyebrow{text-shadow:0 2px 18px #000e,0 1px 2px #000a}
  .hero .lede{color:#e8eef7}
}

.lede{font-size:21px;max-width:680px;color:#d6deea}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:12px;color:var(--a);font-weight:600}
.btn{display:inline-block;background:linear-gradient(90deg,var(--a),var(--b));color:#000;font-weight:600;padding:14px 26px;border-radius:40px;text-decoration:none;margin:6px 8px 6px 0;border:0;cursor:pointer;font-size:15px}
.btn.ghost{background:none;color:#fff;border:1px solid #fff6}
.wp-block-cover{position:relative;min-height:62vh;display:flex;align-items:flex-end;background-size:cover;background-position:center}
.wp-block-group{padding:90px 0}.wp-block-group:nth-of-type(even){background:var(--bg2)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center}
.video{margin:0}.ratio{position:relative;padding-top:56.25%;background:#000;border-radius:6px;overflow:hidden;box-shadow:0 20px 60px #000a}.ratio iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
figcaption{font-size:13px;color:var(--mute);margin-top:8px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.card{background:#0f1622;border-radius:8px;overflow:hidden;color:var(--ink);text-decoration:none;transition:.3s}.card:hover{transform:translateY(-6px)}.card img{height:240px;width:100%;object-fit:cover}.card h3,.card p{padding:0 22px}.card p{color:var(--mute);padding-bottom:20px}
.heritage{display:grid;grid-template-columns:1.1fr 1fr;background:#0a0d14}.heritage .media img{height:100%;object-fit:cover}.heritage .text{padding:80px 60px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:30px 0}.stats b{display:block;font:600 40px "Cormorant Garamond";color:var(--gold)}.stats span{font-size:12px;color:var(--mute)}
.wp-block-pullquote{margin:0 auto;max-width:900px;text-align:center;border:0}.wp-block-pullquote p{font:italic 500 clamp(26px,3vw,40px)/1.3 "Cormorant Garamond"}.wp-block-pullquote cite{color:var(--gold);font-style:normal;letter-spacing:.1em;font-size:13px;text-transform:uppercase}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.gallery img{width:100%;height:280px;object-fit:cover;border-radius:4px}.gallery figure{margin:0}
.timeline{list-style:none;padding:0;border-left:2px solid #38e1ff55;margin-left:10px}.timeline li{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:0 0 28px 26px;position:relative}.timeline li:before{content:"";position:absolute;left:-8px;top:10px;width:14px;height:14px;border-radius:50%;background:var(--b)}
.yr{font:600 30px "Cormorant Garamond";color:var(--gold)}.timeline h3{margin:0}.timeline p{margin:.2em 0;color:#c3ccd9}
.clips{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px}.clip{margin:0;background:#f3ead8;padding:12px;border-radius:3px;box-shadow:0 12px 40px #000c}.clip img{max-height:420px;width:100%;object-fit:contain;object-position:top;filter:sepia(.25)}.clip figcaption{color:#2a2418;font-size:13px}
table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px;border-bottom:1px solid #ffffff1a;vertical-align:top}th{color:var(--a);font-weight:600}
.table-scroll{position:relative;width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin:0 0 1.1em;border:1px solid #ffffff18;border-radius:8px;padding:0 0 2px;background:
  linear-gradient(to right,var(--bg2) 22%,transparent) 0 0/32px 100% local,
  linear-gradient(to left,var(--bg2) 22%,transparent) 100% 0/32px 100% local,
  radial-gradient(farthest-side at 0 50%,#0009,transparent) 0 0/18px 100% local,
  radial-gradient(farthest-side at 100% 50%,#0009,transparent) 100% 0/18px 100% local;
background-color:transparent;background-repeat:no-repeat;background-attachment:local,local,scroll,scroll}
.table-scroll:focus-visible{outline:2px solid var(--a);outline-offset:2px}
.table-scroll table{display:table;width:100%;min-width:640px;margin:0;border-collapse:collapse}
.table-scroll th,.table-scroll td{white-space:nowrap}
.table-scroll td:last-child,.table-scroll th:last-child{white-space:normal;min-width:12rem}
.table-scroll::-webkit-scrollbar{height:8px}
.table-scroll::-webkit-scrollbar-thumb{background:#38e1ff66;border-radius:8px}
.table-scroll::-webkit-scrollbar-track{background:#ffffff10}
@media(max-width:860px){
  .table-scroll{padding-bottom:4px}
  .table-scroll::before{content:"Swipe sideways for all columns";display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);padding:8px 12px 6px;border-bottom:1px solid #ffffff12;position:sticky;left:0}
  .table-scroll table{min-width:680px}
  .venues.table-scroll table,.table-scroll table.venues{min-width:720px}
}

.tag{display:inline-block;background:#38e1ff22;color:var(--a);font-size:11px;padding:2px 7px;border-radius:10px;margin-right:6px}
#map{height:520px;border-radius:8px}.index{font-size:13px;color:var(--mute);columns:1}.small{font-size:13px;color:var(--mute)}
.cta{text-align:center;background:radial-gradient(circle at 50% 0,#38e1ff22,#0000 60%),var(--bg2)!important}
.form{display:grid;gap:14px}.form label{display:grid;gap:6px;font-size:13px;color:var(--mute)}.form input,.form select,.form textarea{background:#0f1622;border:1px solid #ffffff22;color:#fff;padding:12px;border-radius:6px;font:inherit}
footer.site{background:#000;padding:60px 34px 30px;font-size:14px;color:var(--mute)}footer .cols{display:grid;grid-template-columns:2fr 1.2fr 2fr;gap:30px;max-width:1240px;margin:auto}footer nav,footer .cols div:last-child a{margin:0 14px 6px 0;display:inline-block}
@media(max-width:860px){.grid2,.cards,.heritage,.gallery,.stats,footer .cols{grid-template-columns:1fr}.heritage .text{padding:40px 24px}}
.ratio{background-size:cover;background-position:center}.play{position:absolute;z-index:0;top:50%;left:50%;transform:translate(-50%,-50%);width:74px;height:74px;border-radius:50%;background:#000a;border:1px solid #fff8;display:grid;place-items:center;font-size:26px;color:#fff}
.ratio iframe{z-index:1}
.shot .ratio iframe,.shot .bgvid{visibility:hidden}
.brand{display:flex;align-items:center;gap:12px}.brand .mark{height:58px;width:auto}.brand .wordmark{height:30px;width:auto}
.swirlfig{margin:0;background:radial-gradient(circle,#13204a,#05070c 70%);padding:40px;border-radius:8px}.swirlfig img{margin:auto;width:100%;max-width:520px}
@media(max-width:860px){.brand .wordmark{height:22px}}
.lockup{display:flex;flex-direction:column;gap:4px}.tagline{font:400 10px Inter;letter-spacing:.18em;text-transform:uppercase;color:#cfd7e4}
header.site{padding:16px 28px;gap:24px}
.brand .mark{height:52px}.brand .wordmark{height:26px;align-self:flex-start}
.tagline{font-size:9px}

/* Dual nav: desktop row + mobile details (Safari-reliable; no checkbox hack) */
.nav-desktop{display:none}
.nav-mobile{display:none;margin:0}
.nav-mobile>summary.nav-toggle{
  list-style:none;
  display:inline-flex;align-items:center;justify-content:center;
  padding:10px 14px;min-height:44px;min-width:44px;
  border:1px solid #ffffff55;border-radius:8px;
  color:#fff;font:600 12px/1 Inter,system-ui,sans-serif;
  letter-spacing:.12em;text-transform:uppercase;
  cursor:pointer;user-select:none;-webkit-user-select:none;background:#0008;
}
.nav-mobile>summary.nav-toggle::-webkit-details-marker{display:none}
.nav-mobile>summary.nav-toggle::marker{content:""}
.nav-mobile>summary.nav-toggle:focus-visible{outline:2px solid var(--a);outline-offset:2px}
.nav-mobile[open]>summary.nav-toggle{border-color:var(--a);color:var(--a)}

@media(min-width:861px){
  .nav-desktop{display:flex;flex-wrap:nowrap;align-items:center}
  .nav-desktop a{margin-left:14px;font-size:12px;white-space:nowrap;letter-spacing:.04em}
  .nav-mobile{display:none!important}
  .tagline{white-space:nowrap}
}
@media(max-width:1200px){.tagline{display:none}}

/* === mobile / iPhone Safari fixes === */
html,body{width:100%;max-width:100%}
/* WebKit backstop after neutralizing oversized bgvid iframe (root overflow source). */
@media(max-width:860px){
  html,body{overflow-x:hidden}
}

@media (max-width:860px){
  header.site{
    position:absolute;top:0;left:0;right:0;
    display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 12px;
    padding-top:max(14px, env(safe-area-inset-top, 0px));
    padding-left:max(16px, env(safe-area-inset-left, 0px));
    padding-right:max(16px, env(safe-area-inset-right, 0px));
    padding-bottom:12px;
    max-width:100%;width:100%;box-sizing:border-box;
  }
  .brand{min-width:0;flex:1 1 auto;max-width:calc(100% - 96px)}
  .brand .mark{height:44px;flex-shrink:0}
  .brand .wordmark{height:20px;max-width:100%;height:auto;max-height:20px}
  .lockup{gap:2px;min-width:0}
  .tagline{font-size:8px;letter-spacing:.14em}

  .nav-desktop{display:none!important}
  /* Mobile Menu: opaque panel — do not let hero bleed through */
  header.site{
    z-index:100;
    isolation:isolate;
  }
  header.site details.nav-mobile{
    display:block;
    flex:0 0 auto;
    max-width:100%;
    position:relative;
    z-index:101;
  }
  /* When open: solid dark sheet under links (fully opaque) */
  header.site:has(> details.nav-mobile[open]){
    background:#05070c !important;
    background-image:none !important;
  }
  header.site details.nav-mobile[open]{
    flex:1 1 100%;
    flex-basis:100%;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin:0;
    padding:8px;
    border-radius:10px;
    background:#05070c !important;
    background-image:none !important;
    opacity:1 !important;
    isolation:isolate;
    position:relative;
    z-index:102;
    box-shadow:0 16px 40px #000e;
  }
  header.site details.nav-mobile[open]>summary.nav-toggle{
    margin-left:auto;
    background:#0c111b;
  }
  header.site details.nav-mobile[open]>nav#site-nav,
  header.site details.nav-mobile[open]>nav{
    display:flex !important;
    flex-direction:column;
    align-items:stretch;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin:8px 0 0;
    padding:6px 4px 4px;
    border-top:1px solid #ffffff22;
    border-radius:0;
    background:#05070c !important;
    background-image:none !important;
    opacity:1 !important;
    color:#e9eef6;
    max-height:min(65dvh, 65vh, 420px);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    position:relative;
    z-index:103;
  }
  header.site details.nav-mobile nav a{
    margin:0;
    padding:12px 10px;
    white-space:normal;
    font-size:14px;
    letter-spacing:.06em;
    border-radius:6px;
    color:#e9eef6;
    background:transparent;
    opacity:1;
  }
  header.site details.nav-mobile nav a.on,
  header.site details.nav-mobile nav a:hover{
    background:#0c111b;
    color:var(--a);
  }

  .hero{
    height:auto;min-height:0;max-height:none;
    padding:calc(76px + env(safe-area-inset-top, 0px)) 0 28px;
    align-items:flex-end;display:flex;
    overflow:hidden;max-width:100%;width:100%;
  }
  /* Root overflow fix: neutralize 177.78vh-wide Vimeo iframe on small screens.
     display:none alone has been insufficient in some WebKit cases for scroll overflow. */
  .hero .bgvid,
  .hero .bgvid iframe{
    display:none!important;
    visibility:hidden!important;
    pointer-events:none!important;
    width:0!important;height:0!important;
    min-width:0!important;min-height:0!important;
    max-width:0!important;max-height:0!important;
    overflow:hidden!important;
    position:absolute!important;
    left:0!important;top:0!important;
    transform:none!important;
  }
  .hero .poster{
    height:100%;width:100%;max-width:100%;
    object-fit:cover;object-position:center 40%;
    filter:brightness(.55) saturate(.9);
  }
  .hero .shade{background:linear-gradient(180deg,#000c 0%,#05070ccc 38%,#05070cf5 100%)}
  .hero .wrap{padding-bottom:4px;padding-top:8px;width:100%;max-width:100%;box-sizing:border-box}
  .hero .eyebrow{font-size:11px;letter-spacing:.18em;max-width:100%}
  .hero h1{font-size:clamp(34px,10vw,48px);max-width:100%}
  .hero .lede{font-size:16px;line-height:1.55;max-width:100%;color:#e2e8f2}
  .hero .btn{margin:8px 8px 0 0;padding:12px 20px;font-size:14px}

  .wrap{padding-left:max(16px, env(safe-area-inset-left, 0px));padding-right:max(16px, env(safe-area-inset-right, 0px));max-width:100%;box-sizing:border-box}
  .wp-block-group{padding:56px 0;max-width:100%;overflow-x:hidden}
  .wp-block-cover{min-height:42vh;max-width:100%;overflow:hidden}
  .wp-block-cover .wrap{padding-bottom:32px}
  #map{height:320px;max-width:100%}
  .clips{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr))}
  /* tables: use .table-scroll wrappers (keeps columns; internal x-scroll) */
  footer.site{
    padding:40px max(16px, env(safe-area-inset-left, 0px)) calc(24px + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-right, 0px));
    max-width:100%;box-sizing:border-box;
  }
  footer .cols{max-width:100%}
}

@media (max-width:430px){
  .hero{padding:calc(70px + env(safe-area-inset-top, 0px)) 0 24px}
  .hero h1{font-size:clamp(30px,9.5vw,40px)}
  .hero .lede{font-size:15px}
  .btn{display:inline-block;width:auto;max-width:100%}
  .stats b{font-size:32px}
  .timeline li{grid-template-columns:1fr;gap:4px}
  .yr{font-size:24px}
  .brand{max-width:calc(100% - 88px)}
}
