  :root{
    --bg:#001e3e;
    --bg-panel:#101113;
    --ink:#F4F1E8;
    --ink-dim:#8D8E92;
    --line:#242527;
    --line-soft:rgba(255,255,255,.14);
    --flame:#FF3D1F;
    --amber:#FFC13B;
    --teal:#1C8FE0;
    --revv:#7A2BD6;
    --revv-dim:#2A1240;
    --luxe-bg:#150F09;
    --luxe-gold:#C99A4E;
    --luxe-line:#3A2A16;
    --nav-h:88px;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  /* fallback offset for hash navigation our click-handler doesn't intercept
     (direct URL-with-#hash loads, browser back/forward) — no added buffer,
     matches the header's real synced height exactly */
  html{scroll-padding-top:var(--nav-h);}
  @media (prefers-reduced-motion: no-preference){
    html{scroll-behavior:smooth;}
  }
  html,body{background:var(--bg);color:var(--ink);font-family:'Barlow',sans-serif;width:100%;overflow-x:hidden;}
  img{display:block;max-width:100%;}
  .page{position:relative;}

  /* ---------- utility ---------- */
  .eyebrow{
    font-family:'Space Mono',monospace;font-weight:700;font-size:14px;letter-spacing:.28em;
    text-transform:uppercase;color:#badbff;
  }
  .eyebrow.alt{color:var(--ink-dim);}
  .btn{
    display:inline-flex;align-items:center;gap:10px;font-family:'Barlow Condensed',sans-serif;font-weight:700;
    font-size:20px;letter-spacing:.04em;text-transform:uppercase;padding:16px 34px;border-radius:2px;
    cursor:pointer;will-change:transform,box-shadow;text-decoration:none;border:none;background:none;
  }
  .btn.solid{background:var(--flame);color:#0A0A0B;}
  .btn.outline{border:2px solid var(--ink);color:var(--ink);}
  .btn.outline.revv{border-color:#B48CE8;color:#EADCFB;}
  .btn.outline.luxe{border-color:var(--luxe-gold);color:var(--luxe-gold);}

  /* ---------- ANIMATED GRADIENT BACKDROP (all sections after marquee) ---------- */
  .gradient-bg{position:relative;isolation:isolate;}
  .gradient-bg::after{
    content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:linear-gradient(120deg, rgba(255,61,31,.16), rgba(122,43,214,.16) 35%, rgba(28,143,224,.16) 65%, rgba(201,154,78,.16));
    background-size:300% 300%;animation:gradientDrift 24s ease-in-out infinite;mix-blend-mode:overlay;
  }
  @keyframes gradientDrift{
    0%,100%{background-position:0% 50%;}
    50%{background-position:100% 50%;}
  }
  @media (prefers-reduced-motion: reduce){
    .gradient-bg::after{animation:none;}
  }

  /* ---------- SITE HEADER / NAV ---------- */
  .site-header{
    display:grid;grid-template-columns:1fr auto 1fr;align-items:center;column-gap:20px;
    padding:14px 64px;position:fixed;top:0;left:0;right:0;z-index:100;min-height:var(--nav-h);
    background:rgba(0,20,42,.35);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(255,255,255,.06);
    transition:transform .4s ease, background-color .4s ease, box-shadow .4s ease;
  }
  .site-header.nav-scrolled{background:rgba(4,12,26,.88);box-shadow:0 10px 30px rgba(0,0,0,.35);}
  .site-header.nav-hidden{transform:translateY(-100%);}
  .site-header .logo-wrap{grid-column:1;background:#F7F5EE;display:inline-flex;align-items:center;padding:8px 14px;
    border-radius:6px;box-shadow:0 6px 20px rgba(0,0,0,.25);justify-self:start;}
  .site-header .logo{height:46px;display:block;}
  .site-nav-links{grid-column:2;display:flex;gap:44px;font-family:'Barlow Condensed',sans-serif;font-weight:600;font-size:18px;
    letter-spacing:.05em;text-transform:uppercase;color:#b5daff;justify-self:center;}
  .site-nav-links a{color:inherit;text-decoration:none;transition:color .2s ease;}
  .site-nav-links a:hover, .site-nav-links a.active{color:#fff;}
  .site-nav-links a.active{color:var(--flame);}
  .site-header-right{grid-column:3;justify-self:end;display:flex;align-items:center;}
  .site-header-cta{font-family:'Space Mono',monospace;font-weight:700;font-size:13px;letter-spacing:.1em;
    text-transform:uppercase;color:var(--bg);background:var(--amber);padding:12px 22px;cursor:pointer;
    text-decoration:none;display:inline-block;}
  .nav-toggle{display:none;flex-direction:column;justify-content:center;gap:6px;width:40px;height:40px;
    background:none;border:none;cursor:pointer;padding:0;}
  .nav-toggle span{display:block;width:100%;height:2px;background:var(--ink);border-radius:2px;}

  /* ---------- MOBILE FULLSCREEN MENU ---------- */
  .mobile-menu{
    position:fixed;inset:0;z-index:200;background:rgba(4,10,22,.98);backdrop-filter:blur(6px);
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:36px;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .45s ease, visibility .45s ease;
  }
  .mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto;}
  .mobile-menu-close{position:absolute;top:26px;right:28px;width:44px;height:44px;background:none;border:none;
    cursor:pointer;display:flex;align-items:center;justify-content:center;}
  .mobile-menu-close span{position:absolute;width:26px;height:2px;background:var(--ink);border-radius:2px;}
  .mobile-menu-close span:first-child{transform:rotate(45deg);}
  .mobile-menu-close span:last-child{transform:rotate(-45deg);}
  .mobile-menu-links{display:flex;flex-direction:column;align-items:center;gap:28px;
    font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:34px;letter-spacing:.04em;
    text-transform:uppercase;}
  .mobile-menu-links a{color:#b5daff;text-decoration:none;}
  .mobile-menu-links a.active{color:var(--flame);}
  .mobile-menu-ctas{display:flex;flex-direction:column;align-items:center;gap:14px;}
  .mobile-menu-social{display:flex;gap:22px;}
  .mobile-menu-social a{color:var(--ink-dim);display:flex;align-items:center;justify-content:center;
    width:40px;height:40px;border:1px solid var(--line-soft);border-radius:50%;}
  .mobile-menu-social svg{width:18px;height:18px;}

  /* ---------- HERO ---------- */
  .hero{position:relative;padding-top:calc(var(--nav-h) + 84px);background:radial-gradient(ellipse 120% 55% at 50% 0%, #123a68 0%, var(--bg) 62%);}
  .hero-eyebrow-row{padding:0 64px;display:flex;justify-content:center;margin-bottom:20px;text-align:center;}
  .hero-dates{display:flex;gap:10px;justify-content:center;align-items:center;margin-top:30px;}
  .date-tile{width:64px;height:64px;border:2px solid #fff;display:flex;flex-direction:column;
    align-items:center;justify-content:center;font-family:'Archivo Black';font-size:26px;color:var(--flame);}
  .date-tile span{font-family:'Space Mono';font-size:9px;color:var(--ink-dim);font-weight:700;letter-spacing:.1em;}
  .date-amp{font-family:'Anton';font-size:40px;color:var(--flame);align-self:center;margin:0 4px;text-transform:uppercase;}
  .date-amp.month{font-size:30px;margin-left:10px;}

  /* Shared in-section registration CTA. */
  .section-cta{display:flex;justify-content:center;margin-top:44px;}

  /* The logo sits on the dark hero gradient, so it gets the same light chip
     the header uses — without it the dark parts of the mark disappear. */
  .hero-logo{display:flex;justify-content:center;margin-bottom:26px;padding:0 24px;}
  .hero-logo img{
    height:104px;width:auto;background:#F7F5EE;
    padding:14px 22px;border-radius:8px;box-shadow:0 12px 34px rgba(0,0,0,.35);
  }

  .hero-title{
    font-family:'Anton',sans-serif;text-transform:uppercase;line-height:0.84;
    font-size:82px;letter-spacing:-2px;text-align:center;margin-top:6px;
  }
  .hero-title .line2{color:var(--bg);-webkit-text-stroke:1px var(--ink);}
  .hero-title .line1, .gradient-text{
    background:linear-gradient(90deg,#ffd9ab,#FF8A4C 25%,#FF3D1F 50%,#FF8A4C 75%,#ffd9ab 100%);
    background-size:250% auto;
    -webkit-background-clip:text;background-clip:text;color:transparent;
    filter:drop-shadow(0 0 40px rgba(255,90,40,.35));
    animation:titleGradientMove 7s linear infinite;
  }
  @keyframes titleGradientMove{
    0%{background-position:0% 50%;}
    100%{background-position:250% 50%;}
  }
  @media (prefers-reduced-motion: reduce){
    .hero-title .line1, .gradient-text{animation:none;}
  }

  /* hero meta strip — venue, date, timings grouped together with dot separators */
  .hero-meta{
    display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:14px;
    margin-top:34px;padding:0 24px;font-family:'Space Mono';font-size:13px;letter-spacing:.05em;
    text-transform:uppercase;color:var(--ink-dim);
  }
  .hero-meta-item{display:flex;align-items:center;gap:8px;}
  .hero-meta-label{display:flex;align-items:center;gap:8px;flex-shrink:0;}
  .hero-meta-item b{color:var(--ink);}
  .hero-meta-dash{color:var(--ink);margin-left:5px;}
  .hero-meta-value{color:var(--ink-dim);}
  .hero-meta-item svg{width:16px;height:16px;color:var(--flame);flex-shrink:0;}
  .hero-meta-dot{color:var(--flame);font-size:16px;line-height:1;}

  /* Floating vertical brochure tab, pinned to the right edge on every page.
     Lives outside .hero so no GSAP-transformed ancestor can break position:fixed. */
  .brochure-tab{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:90;}
  .brochure-tab a{
    display:block;writing-mode:vertical-rl;text-orientation:mixed;
    background:var(--flame);color:#0A0A0B;text-decoration:none;
    font-family:'Barlow Condensed',sans-serif;font-weight:700;font-size:13px;
    letter-spacing:.14em;text-transform:uppercase;
    padding:16px 7px;border-radius:5px 0 0 5px;
    box-shadow:0 6px 20px rgba(0,0,0,.35);
    transition:padding-right .2s ease;
  }
  .brochure-tab a:hover{padding-right:11px;}

  /* Sticky registration bar — mobile/tablet only, where the header CTA is
     collapsed into the hamburger menu and registration is otherwise buried. */
  .sticky-register{display:none;}

  /* While a modal or the mobile menu is open, get both floating elements out of the way. */
  body.overlay-open .brochure-tab,
  body.overlay-open .sticky-register{display:none;}

  /* hero arenas showcase — Luxé + Revv logos */
  .hero-arenas{margin-top:56px;display:flex;flex-direction:column;align-items:center;gap:28px;padding:0 24px;}
  .hero-arenas-eyebrow{position:relative;padding-bottom:16px;text-align:center;}
  .hero-arenas-eyebrow::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:70px;height:2px;background:var(--flame);}
  .hero-arenas-logos{display:flex;align-items:center;gap:36px;flex-wrap:wrap;justify-content:center;}
  .hero-arenas-logo-chip{background:#F7F5EE;display:inline-flex;align-items:center;justify-content:center;
    padding:16px 30px;border-radius:8px;box-shadow:0 14px 34px rgba(0,0,0,.35);}
  .hero-arenas-logo-chip img{height:46px;display:block;}

  .hero-visual{position:relative;margin-top:50px;height:760px;overflow:hidden;}
  .hero-visual img{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:none;}
  .hero-visual::before{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, var(--bg) 10%, rgba(10, 10, 11, 0) 40%, rgba(10, 10, 11, .55) 68%, var(--bg) 96%);
    z-index:2;}
  .hero-visual::after{content:"";position:absolute;left:0;right:0;top:0;height:100%;
    background:radial-gradient(ellipse at 50% 30%, rgba(255,90,40,.14), transparent 60%);z-index:1;}

  /* ---------- MARQUEE ---------- */
  .marquee{background:var(--flame);color:#0A0A0B;padding:16px 0;overflow:hidden;white-space:nowrap;
    border-top:3px solid var(--bg);border-bottom:3px solid var(--bg);}
  .marquee-track{display:inline-block;font-family:'Anton';font-size:30px;letter-spacing:.02em;text-transform:uppercase;
    animation:marquee-scroll 22s linear infinite;will-change:transform;}
  .marquee-track span{margin:0 26px;}
  .marquee-track span.o{opacity:.55;}
  .marquee:hover .marquee-track{animation-play-state:paused;}

  @keyframes marquee-scroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  @media (prefers-reduced-motion: reduce){
    .marquee-track{animation:none;}
  }

  /* ---------- SECTION shell ---------- */
  section.block{padding:120px 64px;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:56px;}
  .section-title{font-family:'Anton';font-size:76px;text-transform:uppercase;line-height:.92;letter-spacing:-1px;max-width:820px;}
  .section-num{font-family:'Space Mono';font-size:15px;color:var(--ink-dim);letter-spacing:.1em;}

  /* ---------- SPOTLIGHT / STATS ---------- */
  .spotlight{background:var(--bg);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .spotlight-copy{max-width:620px;font-size:20px;line-height:1.55;color:#C9CACD;font-weight:400;margin-bottom:8px;}
  .spotlight-grid{display:grid;grid-template-columns:1.15fr 0.85fr;gap:70px;align-items:stretch;}
  .spotlight-grid .section-title{margin-bottom:6px;}
  .spotlight-media{position:relative;width:100%;height:100%;min-height:420px;border:1px solid var(--line);overflow:hidden;justify-self:end;background:#000;}
  .spotlight-media-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .stat-row{position:relative;display:grid;grid-template-columns:repeat(2,1fr);margin-top:56px;border-top:1px solid var(--line-soft);}
  .stat-row::before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:var(--line-soft);}
  .stat-row::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line-soft);}
  .stat{padding:28px 24px 26px;}
  .stat .num{font-family:'Anton';font-size:72px;line-height:1;color:var(--ink);}
  .stat .num .accent{color:var(--flame);}
  .stat .label{font-family:'Space Mono';font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:14px;}

  /* ---------- REVV ---------- */
  .revv{background:radial-gradient(ellipse at 20% 0%, var(--revv-dim), #0A0A0B 60%);position:relative;}
  .revv-grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:70px;align-items:stretch;}
  .revv-logo-badge{height:96px;margin-bottom:36px;}
  .revv .section-title{font-size:82px;}
  .revv .section-title .hl{color:#B98CFF;}
  .revv-copy{font-size:19px;line-height:1.6;color:#CBC3DA;max-width:560px;margin:26px 0 40px;}
  .revv-tags{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:36px;}
  .revv-tags span{display:inline-flex;align-items:center;gap:8px;font-family:'Space Mono';font-size:12px;letter-spacing:.08em;text-transform:uppercase;
    border:1px solid #4B2C7A;color:#CBB3F5;padding:8px 16px;}
  .revv-tags svg{width:15px;height:15px;flex-shrink:0;}
  .revv-visual{position:relative;height:100%;min-height:420px;border:1px solid #3A2160;overflow:hidden;}
  .revv-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:saturate(1.05) contrast(1.05);}
  .revv-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(122,43,214,.25),rgba(10,10,11,.65));}
  .revv-visual .cap{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:20px 24px;font-family:'Space Mono';
    font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#EADCFB;border-top:1px solid #4B2C7A;background:rgba(10,10,11,.5);}

  /* ---------- LUXE ---------- */
  .luxe{background:var(--luxe-bg);position:relative;overflow:hidden;}
  .luxe::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 80% 20%, rgba(201,154,78,.14), transparent 55%);}
  .luxe-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:70px;align-items:stretch;position:relative;z-index:1;}
  .luxe-badge{background:#F3EDE0;display:inline-block;padding:22px 30px;margin-bottom:36px;}
  .luxe-badge img{height:64px;}
  .luxe .section-title{font-size:82px;color:#F3EDE0;}
  .luxe .section-title .hl{color:var(--luxe-gold);}
  .luxe-copy{font-size:19px;line-height:1.6;color:#CBBFA6;max-width:520px;margin:26px 0 40px;}
  .luxe-visual{position:relative;height:100%;min-height:420px;border:1px solid var(--luxe-line);overflow:hidden;}
  .luxe-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 60%;}
  .luxe-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(21,15,9,0) 30%, rgba(21,15,9,.7));}
  .luxe-visual .cap{position:absolute;top:0;left:0;z-index:2;padding:16px 22px;font-family:'Space Mono';
    font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--luxe-gold);background:rgba(21,15,9,.55);border-bottom:1px solid var(--luxe-line);border-right:1px solid var(--luxe-line);}

  /* ---------- EXPERIENCE / WHAT YOU'LL SEE ---------- */
  .experience{border-top:1px solid var(--line);}
  .experience-head{justify-content:center;text-align:center;}
  .experience-head .section-title{margin:0 auto;}
  .experience-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-soft);border-left:1px solid var(--line-soft);margin-top:56px;}
  .experience-card{border-right:1px solid var(--line-soft);border-bottom:1px solid var(--line-soft);padding:44px 38px;min-height:250px;position:relative;}
  .experience-card-icon{color:var(--flame);margin-bottom:16px;}
  .experience-card-icon svg{width:30px;height:30px;}
  .experience-card-label{font-family:'Space Mono';font-size:13px;color:var(--flame);letter-spacing:.1em;}
  .experience-card h3{font-family:'Archivo Black';font-size:27px;text-transform:uppercase;margin:18px 0 16px;line-height:1.1;}
  .experience-card p{color:var(--ink-dim);font-size:16px;line-height:1.55;}

  /* ---------- WHY GOA ---------- */
  .why-goa{
    border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:100px 64px;
    background-size:cover;background-position:center;
  }
  .why-grid{display:grid;grid-template-columns:0.8fr 1.2fr;gap:70px;}
  .why-title{font-family:'Anton';font-size:70px;text-transform:uppercase;line-height:.95;}
  .why-list{border-top:1px solid var(--line);}
  .why-item{display:flex;gap:24px;padding:30px 0;border-bottom:1px solid var(--line);align-items:center;}
  .why-item-marker{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:38px;flex-shrink:0;}
  .why-item-marker svg{width:22px;height:22px;color:var(--flame);}
  .why-item-marker .why-item-num{font-family:'Space Mono';color:var(--ink-dim);font-size:13px;}
  .why-item p{font-family:'Barlow Condensed';font-weight:500;font-size:24px;color:#DEDFE2;text-transform:none;}
  .why-item p b{font-family:'Barlow Condensed';font-weight:700;color:var(--ink);}

  /* ---------- ORGANISERS ---------- */
  .organisers{
    padding:110px 64px;display:grid;grid-template-columns:0.9fr 1.1fr;gap:80px;align-items:stretch;
  }
  .organisers .section-title{font-size:64px;}
  .organisers-copy{font-size:19px;line-height:1.65;color:#C9CACD;margin-top:26px;}
  .organisers-stats{display:flex;gap:50px;margin-top:44px;}
  .organisers-stat .n{font-family:'Anton';font-size:52px;color:var(--flame);}
  .organisers-stat .l{font-family:'Space Mono';font-size:12px;color:var(--ink-dim);letter-spacing:.08em;text-transform:uppercase;margin-top:6px;}
  .organisers-photo{height:100%;min-height:420px;background:#141517;border:1px solid var(--line);position:relative;overflow:hidden;}
  .organisers-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .organisers-photo .tag{position:absolute;top:24px;left:24px;z-index:1;font-family:'Space Mono';font-size:12px;background:var(--flame);
    color:#0A0A0B;padding:8px 14px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;}

  /* ---------- REGISTER / FINAL CTA ---------- */
  .register{padding:130px 64px;text-align:center;position:relative;border-top:1px solid var(--line);overflow:hidden;}
  .register-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;}
  .register-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg, rgba(0,30,62,.78), rgba(0,30,62,.93));}
  .register-content{position:relative;z-index:2;}
  .register-content .eyebrow{display:block;margin-bottom:24px;}
  .register-content h2{font-family:'Anton';font-size:120px;text-transform:uppercase;line-height:.9;letter-spacing:-1px;}
  .register-content h2 .out{-webkit-text-stroke:2px var(--ink);color:var(--bg);}
  .register-content .sub{font-family:'Barlow Condensed';font-weight:600;font-size:22px;color:var(--ink-dim);margin:30px 0 46px;letter-spacing:.03em;}
  .register-ctas{display:flex;justify-content:center;gap:22px;}

  /* ---------- FOOTER ---------- */
  .site-footer{border-top:1px solid var(--line);padding:70px 64px 40px;}
  .footer-top{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:40px;padding-bottom:60px;border-bottom:1px solid var(--line);}
  .footer-brand .foot-logo{height:52px;margin-bottom:20px;}
  /* The logo is wrapped in a link home; inline-block + line-height:0 keeps the
     anchor from adding a baseline descender gap under the image. */
  .footer-brand .foot-logo-link{display:inline-block;line-height:0;}
  .footer-brand .foot-logo-link:hover{opacity:.85;}
  .footer-brand p{color:#B0B2B8;font-size:15px;line-height:1.6;max-width:280px;}
  .footer-col h4{font-family:'Space Mono';font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber);margin-bottom:20px;}
  .footer-col p, .footer-col a{display:block;color:#C9CACD;font-size:16px;line-height:2;text-decoration:none;font-family:'Barlow Condensed';font-weight:500;letter-spacing:.02em;}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:30px;font-family:'Space Mono';font-size:12px;color:#B0B2B8;letter-spacing:.05em;text-transform:uppercase;}
  .footer-social{display:flex;gap:14px;}
  .footer-social a{color:#B0B2B8;display:flex;align-items:center;justify-content:center;width:34px;height:34px;
    border:1px solid var(--line-soft);border-radius:50%;transition:color .2s ease, border-color .2s ease;}
  .footer-social a:hover{color:var(--flame);border-color:var(--flame);}
  .footer-social svg{width:16px;height:16px;}

  /* ---------- VISITOR REGISTRATION MODAL ---------- */
  .modal-overlay{
    position:fixed;inset:0;z-index:300;background:rgba(4,10,22,.72);
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    display:flex;align-items:center;justify-content:center;padding:24px;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .35s ease, visibility .35s ease;
  }
  .modal-overlay.open{opacity:1;visibility:visible;pointer-events:auto;}
  .modal-card{
    position:relative;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;
    background:#0A2040;border:1px solid var(--line-soft);border-radius:10px;
    padding:44px 36px;box-shadow:0 30px 90px rgba(0,0,0,.55);
    transform:translateY(24px);transition:transform .35s ease;
    isolation:isolate;overscroll-behavior:contain;
  }
  .modal-overlay.open .modal-card{transform:translateY(0);}
  .modal-card::after{
    content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:linear-gradient(120deg, rgba(255,61,31,.14), rgba(122,43,214,.14) 40%, rgba(28,143,224,.14) 75%);
    background-size:300% 300%;animation:gradientDrift 24s ease-in-out infinite;mix-blend-mode:overlay;
  }
  @media (prefers-reduced-motion: reduce){ .modal-card::after{animation:none;} }
  .modal-close{position:absolute;top:16px;right:16px;width:38px;height:38px;background:none;border:none;
    cursor:pointer;display:flex;align-items:center;justify-content:center;}
  .modal-close span{position:absolute;width:20px;height:2px;background:var(--ink);border-radius:2px;}
  .modal-close span:first-child{transform:rotate(45deg);}
  .modal-close span:last-child{transform:rotate(-45deg);}
  .modal-title{font-family:'Anton';font-size:38px;text-transform:uppercase;line-height:1;margin-top:8px;color:var(--ink);}
  .modal-sub{font-size:15px;line-height:1.6;color:var(--ink-dim);margin:16px 0 30px;}
  .modal-form{display:flex;flex-direction:column;gap:20px;}
  .modal-field{display:flex;flex-direction:column;gap:8px;}
  .modal-field label{font-family:'Space Mono';font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);}
  .modal-field input{
    font-family:'Barlow',sans-serif;font-size:16px;color:var(--ink);background:rgba(255,255,255,.04);
    border:1px solid var(--line-soft);border-radius:4px;padding:13px 14px;outline:none;
    transition:border-color .2s ease, background-color .2s ease;
  }
  .modal-field input:focus{border-color:var(--flame);background:rgba(255,255,255,.07);}
  .modal-field input::placeholder{color:#5f6570;}
  .modal-field.has-error input{border-color:var(--flame);}
  .modal-error{color:var(--flame);font-size:12px;font-family:'Space Mono';display:none;}
  .modal-field.has-error .modal-error{display:block;}
  .modal-submit{justify-content:center;width:100%;margin-top:6px;}
  .modal-submit[disabled]{opacity:.6;cursor:default;}
  .modal-note{font-family:'Space Mono';font-size:11px;color:var(--ink-dim);text-align:center;margin-top:16px;letter-spacing:.03em;}
  .modal-server-error{color:var(--flame);font-size:13px;text-align:center;margin-top:-6px;}
  .modal-thanks{display:none;text-align:center;padding:20px 0 6px;}
  .modal-thanks.show{display:block;}
  .modal-thanks-icon{width:64px;height:64px;border-radius:50%;background:rgba(255,61,31,.14);border:1px solid var(--flame);
    display:flex;align-items:center;justify-content:center;margin:0 auto 24px;}
  .modal-thanks-icon svg{width:30px;height:30px;color:var(--flame);}
  .modal-thanks h3{font-family:'Anton';font-size:32px;text-transform:uppercase;color:var(--ink);margin-bottom:14px;}
  .modal-thanks p{font-size:15px;line-height:1.6;color:var(--ink-dim);}

  /* ---------- inline phone / country-code field (shared by both modals) ---------- */
  .modal-phone-row{display:flex;gap:8px;}
  .modal-phone-row select{
    flex:0 0 auto;width:auto;max-width:112px;appearance:auto;
    font-family:'Barlow',sans-serif;font-size:15px;color:var(--ink);background:rgba(255,255,255,.04);
    border:1px solid var(--line-soft);border-radius:4px;padding:13px 6px;outline:none;
    transition:border-color .2s ease, background-color .2s ease;
  }
  .modal-phone-row select:focus{border-color:var(--flame);background:rgba(255,255,255,.07);}
  .modal-phone-row select option{background:#0A2040;color:var(--ink);}
  .modal-phone-row input{flex:1 1 auto;min-width:0;}

  /* ---------- SPONSOR ENQUIRY MODAL (distinct gold/bronze theme vs. the blue visitor modal) ---------- */
  .modal-card.sponsor-card{
    background:#221407;border-color:rgba(201,154,78,.4);
    max-width:920px;
  }
  .modal-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;}
  .modal-card.sponsor-card::after{
    background:linear-gradient(120deg, rgba(201,154,78,.22), rgba(122,43,214,.14) 45%, rgba(255,61,31,.12) 85%);
  }
  .sponsor-card .modal-field input:focus,
  .sponsor-card .modal-phone-row select:focus{border-color:var(--luxe-gold);background:rgba(255,255,255,.07);}
  .sponsor-card .modal-field.has-error input{border-color:var(--luxe-gold);}
  .sponsor-card .modal-error{color:var(--luxe-gold);}
  .sponsor-card .modal-server-error{color:var(--luxe-gold);}
  .sponsor-card .btn.solid.modal-submit{background:var(--luxe-gold);color:#1a1206;}
  .sponsor-card .modal-thanks-icon{background:rgba(201,154,78,.16);border-color:var(--luxe-gold);}
  .sponsor-card .modal-thanks-icon svg{color:var(--luxe-gold);}
  .sponsor-card textarea{
    font-family:'Barlow',sans-serif;font-size:16px;color:var(--ink);background:rgba(255,255,255,.04);
    border:1px solid var(--line-soft);border-radius:4px;padding:13px 14px;outline:none;resize:vertical;min-height:80px;
    transition:border-color .2s ease, background-color .2s ease;
  }
  .sponsor-card textarea:focus{border-color:var(--luxe-gold);background:rgba(255,255,255,.07);}

  /* =====================================================================
     RESPONSIVE — TABLET AND BELOW
     ===================================================================== */
  @media (max-width: 1024px){
    .site-header{padding:14px 24px;}
    .site-nav-links, .site-header-cta{display:none;}
    .nav-toggle{display:flex;}

    section.block{padding:80px 24px;}
    .organisers, .why-goa{padding:80px 24px;}
    .register{padding:90px 24px;}
    .site-footer{padding:60px 24px 30px;}
    .hero-eyebrow-row, .hero-meta{padding-left:24px;padding-right:24px;}
    .hero-meta{flex-direction:column;gap:12px;}

    .hero-title{font-size:48px;}
    .hero-logo img{height:76px;padding:11px 18px;}
    .section-title{font-size:52px;}
    .revv .section-title, .luxe .section-title{font-size:56px;}
    .section-cta{margin-top:34px;}

    /* Trim the header: the nav collapses to a hamburger here, so the tall
       desktop logo chip is wasted vertical space. --nav-h is measured from the
       rendered header in JS, so the hero offset follows automatically. */
    .site-header{padding:9px 20px;min-height:0;}
    .site-header .logo{height:34px;}
    .site-header .logo-wrap{padding:5px 9px;border-radius:5px;}

    /* Registration is only reachable via the hamburger menu at this width,
       so surface it permanently at the bottom of the viewport — the button
       itself spans the full width, with no bar behind it. */
    .sticky-register{
      display:block;position:fixed;left:0;right:0;bottom:0;z-index:120;
      padding:0;background:none;border-top:none;
    }
    .sticky-register .btn{
      width:100%;justify-content:center;border-radius:0;
      font-size:16px;letter-spacing:.03em;
      padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    }
    /* Keep the last section clear of the fixed button. */
    .site-footer{padding-bottom:86px;}
    /* Sit the brochure tab above the button rather than centred behind it. */
    .brochure-tab{top:auto;bottom:74px;transform:none;}

    /* Stack each entry — icon + label on one line, value beneath — so the long
       venue no longer has to wrap mid-phrase and everything stays centred with
       the rest of the hero. */
    .hero-meta{align-items:center;gap:18px;}
    .hero-meta-item{flex-direction:column;align-items:center;gap:5px;text-align:center;}
    .hero-meta-dash{display:none;}
    /* Separator dots only make sense when the entries sit on one line. */
    .hero-meta-dot{display:none;}

    /* The hero and the sticky bottom bar already carry registration at this
       width; a third button inside Why Goa is just repetition. */
    .why-text .section-cta{display:none;}

    /* stack two-column sections — media first, text second */
    .spotlight-grid, .revv-grid, .luxe-grid, .organisers{grid-template-columns:1fr;}
    .spotlight-media, .revv-visual, .organisers-photo{order:-1;min-height:320px;}
    .spotlight-media{height:320px;}
    .revv-visual, .luxe-visual, .organisers-photo{height:320px;}

    .why-grid{grid-template-columns:1fr;gap:40px;}

    /* experience: 2 columns on tablet */
    .experience-grid{grid-template-columns:repeat(2,1fr);}

    /* hero visual becomes a normal, auto-height block (no more oversized/absolute image trick) */
    .hero-visual{height:auto;margin-top:32px;}
    .hero-visual img{position:static;left:auto;bottom:auto;transform:none;width:100%;height:auto;}

    .hero{padding-top:calc(var(--nav-h) + 60px);}
  }

  @media (max-width: 640px){
    .hero{padding-top:calc(var(--nav-h) + 46px);}
    .hero-title{font-size:36px;letter-spacing:-1px;}
    .hero-logo img{height:62px;padding:10px 15px;}
    .hero-logo{margin-bottom:18px;}
    .brochure-tab a{font-size:11px;padding:13px 6px;letter-spacing:.1em;}
    .site-header{padding:8px 16px;}
    .site-header .logo{height:30px;}
    .section-cta{margin-top:30px;}
    /* Drop the month onto its own line beneath the date tiles. */
    .hero-dates{flex-wrap:wrap;row-gap:12px;}
    .date-tile{width:50px;height:50px;font-size:19px;}
    .date-tile span{font-size:8px;}
    .date-amp{font-size:32px;}
    /* Full basis pushes the month onto its own line beneath the date tiles. */
    .date-amp.month{flex-basis:100%;margin-left:0;text-align:center;font-size:24px;}
    .hero-meta{font-size:11px;gap:16px;}
    .hero-meta-item svg{width:14px;height:14px;}
    .hero-arenas-logo-chip img{height:34px;}

    .marquee-track{font-size:20px;}

    .section-title{font-size:38px;}
    .revv .section-title, .luxe .section-title{font-size:42px;}
    .why-title{font-size:44px;}
    .register-content h2{font-size:64px;}

    .stat-row{grid-template-columns:1fr 1fr;}
    .stat .num{font-size:52px;}

    .experience-grid{grid-template-columns:1fr;}

    .organisers-stats{flex-wrap:wrap;row-gap:20px;}
    .footer-top{grid-template-columns:1fr;gap:36px;}
    .register-ctas{flex-direction:column;width:100%;}
    .register-ctas .btn{justify-content:center;}

    .footer-bottom{flex-direction:column;align-items:flex-start;gap:16px;}

    .modal-card{padding:34px 24px;}
    .modal-title{font-size:30px;}
    .modal-form-grid{grid-template-columns:minmax(0,1fr);}
  }
