/* Pirata Beach Bash recap — scoped under .recap wrapper */

  :root{
    /* warm Algarve palette */
    --sand-50:  #FBF5EA;
    --sand-100: #F5E9D4;
    --sand-200: #EDD9B8;
    --sand-300: #E3C69A;
    --cream:    #FAF3E7;
    --paper:    #F7EEDD;

    --terracotta-700: #9A3A1E;
    --terracotta-600: #B8451F;
    --terracotta-500: #C8502E;   /* primary */
    --coral-500:      #E87A5D;
    --coral-300:      #F4A581;

    --sun-500:   #E8A84A;         /* golden hour */
    --sun-300:   #F3C76A;

    --teal-900:  #132A2D;         /* deep teal, near-black */
    --teal-800:  #1F3A3D;
    --teal-700:  #2A5458;
    --teal-500:  #3E7478;

    --olive-600: #7C7A3F;

    --ink:       var(--teal-900);
    --ink-soft:  #3D4F50;
    --ink-faint: #6C7C7D;

    /* type */
    --display: "Nunito", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    --sans:    "Nunito", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    --serif:   "Nunito", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
    --mono:    "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;

    /* radii */
    --r-sm: 6px;
    --r-md: 10px;
    --r-lg: 18px;
    --r-xl: 28px;

    --edge: color-mix(in oklch, var(--teal-900) 10%, transparent);
  }.recap *{ box-sizing: border-box; }.recap, .recap{ margin:0; padding:0; }.recap{ -webkit-text-size-adjust:100%; }.recap{
    font-family: var(--sans);
    color: var(--ink);
    background: var(--cream);
    line-height: 1.5;
    font-size: 16px;
    /* subtle paper texture via layered gradients */
    background-image:
      radial-gradient(1200px 600px at 100% -10%, rgba(232,168,74,.18), transparent 60%),
      radial-gradient(900px 500px at -10% 30%, rgba(200,80,46,.08), transparent 60%),
      linear-gradient(180deg, #FAF3E7 0%, #F5E9D4 100%);
    background-attachment: fixed;
  }.recap img{ display:block; max-width:100%; }.recap a{ color: inherit; }.recap button{ font: inherit; color: inherit; border:0; background:none; cursor:pointer; }/* === typography system === */.recap .eyebrow{
    font-family: var(--mono);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: 11px;
    font-weight: 500;
    color: var(--terracotta-600);
  }.recap .eyebrow.teal{ color: var(--teal-700); }.recap .display{
    font-family: var(--display);
    font-weight: 800;
    letter-spacing: -0.02em;
    line-height: 1.05;
    color: var(--teal-900);
  }.recap .display em{
    font-style: normal;
    font-weight: 800;
    color: var(--terracotta-500);
  }.recap .serif{ font-family: var(--display); font-weight: 700; }.recap .mono{ font-family: var(--mono); font-feature-settings:"tnum"; }/* === layout === */.recap .page{
    max-width: 420px;
    margin: 0 auto;
    padding: 0 20px 80px;
  }.recap section + section{ margin-top: 64px; }/* === nav === */.recap .nav{
    position: sticky; top: 12px; z-index: 20;
    margin: 12px 0 0;
    padding: 10px 10px 10px 14px;
    background: #FFFDF9;
    border-radius: 999px;
    border: 1px solid color-mix(in oklch, var(--teal-900) 6%, transparent);
    box-shadow:
      0 1px 0 rgba(255,255,255,.8) inset,
      0 12px 30px -18px rgba(19,42,45,.22),
      0 2px 6px -2px rgba(19,42,45,.06);
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px;
  }.recap .brand{
    display:flex; align-items:center; gap:12px;
    font-family: var(--display); font-weight: 800;
    font-size: 16px; color: var(--teal-900);
    letter-spacing: -0.01em;
  }.recap .brand-mark{
    width: 48px; height: 48px; border-radius: 50%;
    overflow: hidden;
    background: #fff;
    flex: 0 0 auto;
    box-shadow: inset 0 0 0 1px rgba(19,42,45,.05);
  }.recap .brand-mark img{ width: 100%; height: 100%; object-fit: cover; display: block; }.recap .nav-links{ display:none; gap: 28px; font-size: 15px; color: var(--ink-soft); font-weight: 600; }.recap .nav-links a{ text-decoration: none; }.recap .nav-links a:hover{ color: var(--terracotta-500); }.recap .btn{
    display: inline-flex; align-items: center; gap: 8px;
    padding: 13px 22px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 14.5px;
    letter-spacing: -0.005em;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
    white-space: nowrap;
  }.recap .btn-primary{
    background: linear-gradient(90deg, #F59E63 0%, #EF7D4E 45%, #F3B05A 100%);
    color: #fff;
    box-shadow:
      0 1px 0 rgba(255,255,255,.35) inset,
      0 8px 18px -8px rgba(239,125,78,.55),
      0 2px 4px -1px rgba(239,125,78,.3);
  }.recap .btn-primary:hover{ transform: translateY(-1px); filter: brightness(1.04); box-shadow: 0 1px 0 rgba(255,255,255,.35) inset, 0 12px 24px -10px rgba(239,125,78,.65); }.recap .btn-ghost{
    background: transparent;
    border: 1px solid color-mix(in oklch, var(--teal-900) 20%, transparent);
    color: var(--teal-900);
    font-weight: 600;
  }.recap .btn-ghost:hover{ border-color: var(--teal-900); }.recap .btn-lg{ padding: 15px 26px; font-size: 15px; }/* === revenue banner === */.recap .revenue-banner{
    margin: 18px 0 0;
    background: linear-gradient(90deg, #F5E9D4 0%, #DCEAD9 50%, #C8DCCA 100%);
    border: 1px solid color-mix(in oklch, var(--teal-700) 22%, transparent);
    color: var(--teal-900);
    padding: 14px 22px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 600;
    display:flex; align-items:center; justify-content: center; gap:10px;
    text-align: center;
  }.recap .revenue-banner .heart{
    color: var(--terracotta-500);
    font-size: 15px;
    line-height: 1;
    flex: 0 0 auto;
  }.recap .revenue-banner strong{ font-weight: 700; }/* === hero === */.recap .hero{ margin-top: 36px; }/* watercolor image treatment */.recap .wc{
    position: relative;
    overflow: hidden;
    isolation: isolate;
  }.recap .wc > img{
    width: 100%; height: 100%; object-fit: cover;
    filter: saturate(.78) contrast(.88) brightness(1.06) blur(.4px);
    mix-blend-mode: luminosity;
  }.recap .wc::before{
    /* warm paper wash under the image */
    content:""; position:absolute; inset:0; z-index:-1;
    background:
      radial-gradient(120% 80% at 80% 20%, #F3C76A 0%, #E87A5D 35%, #C8502E 70%, #6B2A14 100%);
  }.recap .wc::after{
    /* subtle grain + edge softening */
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(140% 100% at 50% 0%, transparent 40%, rgba(250,243,231,.18) 100%),
      linear-gradient(180deg, rgba(250,243,231,.08), transparent 30%);
    mix-blend-mode: screen;
    pointer-events: none;
  }.recap .hero-media{
    position: relative;
    border-radius: var(--r-xl);
    overflow: hidden;
    aspect-ratio: 4 / 5;
    background: linear-gradient(160deg, #F3C76A, #C8502E 60%, #1F3A3D);
    box-shadow: 0 30px 60px -30px rgba(19,42,45,.45), 0 2px 0 rgba(255,255,255,.4) inset;
    isolation: isolate;
  }.recap .hero-media img{
    width:100%; height:100%; object-fit: cover;
  }.recap .hero-media::before{
    content:""; position:absolute; inset:0; z-index: 0;
    background: #F6EEDD;
  }.recap .hero-media > *{ position: relative; z-index: 2; }.recap .hero-media img{ position: absolute; inset: 0; z-index: 1; }.recap .hero-media::after{
    content:""; position:absolute; inset:0; z-index: 2;
    background:
      linear-gradient(180deg, transparent 60%, rgba(19,42,45,.35) 100%);
    pointer-events: none;
  }.recap .hero-caption{
    position: absolute; left: 20px; right: 20px; bottom: 20px;
    color: #fff;
    display: flex; justify-content: space-between; align-items: flex-end;
    gap: 12px;
    z-index: 2;
  }.recap .hero-caption .loc{
    font-family: var(--mono); font-size: 11px; text-transform: uppercase; letter-spacing: .14em;
    opacity: .9;
  }.recap .hero-caption .date{
    font-family: var(--display); font-weight: 500; font-size: 18px;
  }.recap .hero-stamp{
    position: absolute; top: 18px; left: 18px; z-index: 2;
    background: rgba(250,243,231,.92);
    backdrop-filter: blur(4px);
    color: var(--terracotta-600);
    font-family: var(--mono); font-size: 10.5px;
    text-transform: uppercase; letter-spacing: .16em;
    padding: 7px 11px; border-radius: 999px;
  }.recap .hero h1.display{
    font-size: clamp(44px, 13vw, 64px);
    margin: 28px 0 14px;
    font-weight: 800;
  }.recap .hero h1 em{ display: inline; }.recap .hero-meta{
    display:flex; flex-wrap:wrap; gap: 8px 14px;
    font-family: var(--mono); font-size: 12px;
    color: var(--ink-faint);
    text-transform: uppercase; letter-spacing: .1em;
    margin-bottom: 20px;
  }.recap .hero-meta .sep{ opacity: .4; }.recap .lede{
    font-family: var(--display);
    font-weight: 800;
    font-size: 20px;
    line-height: 1.45;
    color: var(--ink);
    margin: 0 0 16px;
    letter-spacing: -0.005em;
    text-wrap: pretty;
  }.recap .prose p{ margin: 0 0 14px; color: var(--ink-soft); line-height: 1.6; }.recap .prose p:last-child{ margin-bottom: 0; }.recap .hero-cta{
    display:flex; flex-wrap:wrap; align-items: center; gap: 14px;
    margin-top: 24px;
  }.recap .hero-cta .note{
    font-family: var(--mono); font-size: 11px; letter-spacing: .1em;
    text-transform: uppercase; color: var(--ink-faint);
  }.recap .hero-cta .note b{ color: var(--teal-800); font-weight: 600; }/* === "Why this matters" === */.recap .why h2.display{ font-size: clamp(34px, 10vw, 44px); margin: 10px 0 18px; }.recap .stats{
    display: grid; grid-template-columns: 1fr; gap: 12px;
    margin-top: 28px;
  }.recap .stat{
    background: var(--paper);
    border: 1px solid color-mix(in oklch, var(--teal-900) 8%, transparent);
    border-radius: var(--r-lg);
    padding: 22px 20px 20px;
    position: relative;
    overflow: hidden;
  }.recap .stat::before{
    /* accent horizon line */
    content:""; position:absolute; left:20px; right:20px; top: 60px;
    height:1px; background: color-mix(in oklch, var(--terracotta-500) 35%, transparent);
  }.recap .stat-num{
    font-family: var(--display); font-weight: 800;
    font-size: clamp(40px, 8vw, 56px); line-height: 1;
    color: var(--terracotta-500);
    letter-spacing: -0.03em;
  }.recap .stat-label{
    margin-top: 18px;
    font-weight: 600; font-size: 14.5px; color: var(--teal-900);
  }.recap .stat-sub{
    margin-top: 4px;
    font-size: 13px; color: var(--ink-faint);
  }/* === "What to expect on the day" === */.recap .timeline{
    position: relative;
    margin-top: 22px;
  }.recap .tl-item{
    display: grid; grid-template-columns: 72px 1fr;
    gap: 16px;
    padding: 14px 0;
    border-bottom: 1px dashed color-mix(in oklch, var(--teal-900) 15%, transparent);
    align-items: center;
  }.recap .tl-item:last-child{ border-bottom: 0; }.recap .tl-time{
    font-family: var(--mono); font-size: 12px;
    color: var(--terracotta-600);
    text-transform: uppercase; letter-spacing: .1em;
    font-weight: 500;
  }.recap .tl-label{ font-weight: 500; font-size: 15.5px; color: var(--teal-900); }.recap .tl-desc{ font-size: 13.5px; color: var(--ink-faint); margin-top: 2px; }/* day media strip */.recap .day-strip{
    margin-top: 28px;
    display: grid; grid-template-columns: 2fr 1fr; gap: 8px;
    border-radius: var(--r-lg); overflow: hidden;
    aspect-ratio: 16/9;
  }.recap .day-strip .wc{ height: 100%; border-radius: var(--r-md); }.recap .day-strip img{ width:100%; height:100%; object-fit: cover; }/* === How it works === */.recap .steps{ margin-top: 22px; display: grid; gap: 12px; }.recap .step{
    display: grid; grid-template-columns: 44px 1fr;
    align-items: center; gap: 16px;
    padding: 18px 22px;
    background: #FFFBF4;
    border: 1px solid color-mix(in oklch, var(--teal-900) 5%, transparent);
    border-radius: 14px;
    box-shadow: 0 6px 16px -12px rgba(19,42,45,.25);
  }.recap .step-text{ padding-top: 0; font-size: 15px; color: var(--teal-900); line-height: 1.5; }.recap .step-num{
    width: 36px; height: 36px; border-radius: 50%;
    background: linear-gradient(180deg, #F59E63 0%, #EF7D4E 55%, #E87A5D 100%);
    color: #fff;
    display: grid; place-items: center;
    font-family: var(--display); font-weight: 800; font-size: 15px;
    box-shadow:
      0 1px 0 rgba(255,255,255,.4) inset,
      0 6px 14px -6px rgba(239,125,78,.5);
  }/* newsletter */.recap .newsletter{
    margin-top: 28px;
    background: linear-gradient(180deg, #fff 0%, var(--paper) 100%);
    border: 1px solid color-mix(in oklch, var(--teal-900) 8%, transparent);
    border-radius: var(--r-lg);
    padding: 24px 20px;
  }.recap .newsletter h3.display{ font-size: 30px; margin: 10px 0 8px; }.recap .newsletter p.small{ color: var(--ink-faint); font-size: 13.5px; margin: 0 0 16px; }.recap .field{
    display: block;
    font-family: var(--mono); font-size: 11px; text-transform: uppercase;
    letter-spacing: .1em; color: var(--ink-faint); margin: 14px 0 6px;
  }.recap .input{
    width:100%;
    padding: 12px 14px;
    border-radius: var(--r-md);
    border: 1px solid color-mix(in oklch, var(--teal-900) 15%, transparent);
    background: #fff;
    font: inherit;
  }.recap .input:focus{ outline: 2px solid color-mix(in oklch, var(--terracotta-500) 45%, transparent); outline-offset: 1px; }.recap .perms{ font-size: 12px; color: var(--ink-faint); margin: 12px 0; line-height: 1.5; }.recap .perms b{ color: var(--teal-800); font-weight: 600; display:block; margin-bottom: 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .12em; font-family: var(--mono); }.recap .check{ display: flex; align-items: center; gap: 8px; margin: 10px 0; font-size: 13.5px; color: var(--ink); }.recap .check input{ accent-color: var(--terracotta-500); }.recap .captcha{
    margin: 14px 0;
    border: 1px solid color-mix(in oklch, var(--teal-900) 12%, transparent);
    border-radius: var(--r-md);
    padding: 12px;
    background: #fdfbf6;
    display: flex; align-items: center; justify-content: space-between;
    font-size: 13px;
  }.recap .captcha-check{ width: 20px; height: 20px; border: 1px solid #bbb; border-radius: 3px; background:#fff; }.recap .captcha-brand{ font-size: 9px; color: var(--ink-faint); text-align: right; line-height: 1.2; }.recap .btn-subscribe{
    width: 100%; justify-content: center;
    background: linear-gradient(180deg, var(--coral-300) 0%, var(--coral-500) 100%);
    color: #fff; padding: 13px 20px; border-radius: var(--r-md);
    font-weight: 500; font-size: 14px;
  }/* === tickets === */.recap .tickets h2.display{ font-size: clamp(34px, 10vw, 44px); margin: 10px 0 12px; }.recap .tickets > .prose{ max-width: 60ch; }.recap .ticket-grid{
    display: grid; grid-template-columns: 1fr; gap: 16px;
    margin-top: 24px;
  }.recap .ticket{
    position: relative;
    border-radius: var(--r-lg);
    padding: 26px 22px 22px;
    background: var(--paper);
    border: 1px solid color-mix(in oklch, var(--teal-900) 9%, transparent);
    display: flex; flex-direction: column; gap: 14px;
  }.recap .ticket .tag{
    font-family: var(--mono); text-transform: uppercase; letter-spacing: .14em;
    font-size: 10.5px; font-weight: 500; color: var(--teal-700);
  }.recap .ticket .price{
    font-family: var(--display); font-weight: 800;
    font-size: 56px; line-height: 1;
    color: var(--teal-900);
    letter-spacing: -0.03em;
  }.recap .ticket .price .cur{ font-size: 36px; vertical-align: top; line-height: 1.1; color: var(--terracotta-500); }.recap .ticket .body{ color: var(--ink-soft); font-size: 14.5px; line-height: 1.55; }.recap .ticket .body p{ margin: 0 0 10px; }.recap .ticket .body p:last-child{ margin: 0; }.recap .ticket .buy{ margin-top: auto; }/* featured / supporter */.recap .ticket.featured{
    background:
      radial-gradient(circle at 100% 0%, rgba(243,199,106,.35), transparent 60%),
      linear-gradient(180deg, #FFF1DB 0%, #F6D7A9 100%);
    border-color: color-mix(in oklch, var(--terracotta-500) 35%, transparent);
    box-shadow: 0 20px 40px -24px rgba(200,80,46,.35);
  }.recap .ticket.featured .tag{ color: var(--terracotta-600); }.recap .ticket.featured .price{ color: var(--terracotta-700); }.recap .ticket.featured .ribbon{
    position: absolute; top: -12px; right: 20px;
    background: var(--terracotta-500);
    color: #fff;
    font-family: var(--mono); font-size: 10.5px; font-weight: 500;
    padding: 6px 11px; border-radius: 999px;
    letter-spacing: .14em; text-transform: uppercase;
    box-shadow: 0 8px 18px -8px rgba(200,80,46,.5);
  }.recap .ticket.featured .starline{
    display: flex; align-items: center; gap: 8px;
    font-family: var(--mono); font-size: 11px; text-transform: uppercase;
    letter-spacing: .12em; color: var(--terracotta-600);
    border-top: 1px dashed color-mix(in oklch, var(--terracotta-500) 40%, transparent);
    padding-top: 12px;
  }.recap .star{ color: var(--sun-500); }/* === FAQ === */.recap .faq-wrap h2.display{ font-size: clamp(34px, 10vw, 44px); margin: 10px 0 12px; }.recap details.faq{
    background: var(--paper);
    border: 1px solid color-mix(in oklch, var(--teal-900) 8%, transparent);
    border-radius: var(--r-md);
    padding: 16px 18px;
    margin-top: 8px;
  }.recap details.faq + details.faq{ margin-top: 8px; }.recap details.faq summary{
    list-style: none;
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    cursor: pointer;
    font-weight: 500; font-size: 15px; color: var(--teal-900);
  }.recap details.faq summary::-webkit-details-marker{ display: none; }.recap details.faq summary::after{
    content: "+";
    font-family: var(--display); font-weight: 300;
    font-size: 22px; line-height: 1;
    color: var(--terracotta-500);
    transition: transform .2s ease;
  }.recap details.faq[open] summary::after{ content:"–"; }.recap details.faq[open]{ background: #fff; }.recap details.faq .ans{ margin-top: 10px; color: var(--ink-soft); font-size: 14px; line-height: 1.6; }/* organiser trust */.recap .trust{
    margin-top: 22px;
    padding: 22px;
    background: color-mix(in oklch, var(--teal-800) 92%, #000);
    color: #F1E7D5;
    border-radius: var(--r-lg);
    position: relative;
    overflow: hidden;
  }.recap .trust::before{
    content:""; position:absolute; inset:0;
    background:
      radial-gradient(400px 200px at 100% 0%, rgba(232,168,74,.22), transparent 60%),
      radial-gradient(300px 200px at 0% 100%, rgba(200,80,46,.2), transparent 60%);
    pointer-events: none;
  }.recap .trust .eyebrow{ color: var(--sun-300); position: relative; }.recap .trust h3.display{ font-size: 24px; margin: 8px 0 12px; color: #fff; position: relative; font-weight: 400; }.recap .trust p, .recap .trust ul{ position: relative; }.recap .trust p{ color: #E8DDC8; font-size: 14px; line-height: 1.55; margin: 0 0 14px; }.recap .trust ul{ list-style: none; padding: 0; margin: 0; }.recap .trust li{
    display: grid; grid-template-columns: 18px 1fr; gap: 8px;
    font-size: 13.5px; line-height: 1.5;
    color: #E8DDC8;
    padding: 6px 0;
  }.recap .trust li::before{
    content: "◆";
    color: var(--sun-300);
    font-size: 9px; line-height: 1.5;
  }.recap .trust h4{
    margin: 20px 0 6px; font-size: 11px; text-transform: uppercase;
    letter-spacing: .14em; font-family: var(--mono); font-weight: 500;
    color: var(--sun-300); position: relative;
  }/* === final call === */.recap .final{
    margin-top: 80px;
    padding: 48px 24px 44px;
    background: linear-gradient(160deg, #F3C76A 0%, #E87A5D 40%, #C8502E 70%, #1F3A3D 100%);
    border-radius: var(--r-xl);
    position: relative;
    overflow: hidden;
    text-align: center;
    color: #fff;
    isolation: isolate;
  }.recap .final .wc-bg{
    position:absolute; inset:0; z-index:-1;
    background: url("94206768-dc82-46a4-ab5e-bd21ad5f9a93") center 50%/cover no-repeat;
  }.recap .final::before{
    content:""; position:absolute; inset:0;
    background: linear-gradient(180deg, rgba(19,42,45,.15) 0%, rgba(19,42,45,.55) 100%);
  }.recap .final > *{ position: relative; }.recap .final .eyebrow{ color: var(--sun-300); }.recap .final h2.display{
    font-size: clamp(36px, 11vw, 54px);
    color: #fff;
    margin: 12px 0 18px;
    font-weight: 800;
    text-wrap: balance;
  }.recap .final h2 em{ color: var(--sun-300); }.recap .final p{ color: #F1E7D5; font-size: 14.5px; max-width: 38ch; margin: 0 auto 22px; }/* === footer === */.recap .foot{
    margin-top: 48px;
    padding: 28px 4px 20px;
    border-top: 1px solid color-mix(in oklch, var(--teal-900) 10%, transparent);
    font-size: 13px; color: var(--ink-faint);
    display: flex; flex-direction: column; gap: 8px;
  }.recap .foot .row{ display:flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }.recap .foot b{ color: var(--teal-900); font-weight: 500; }/* === decorative subhead === */.recap .section-head{
    display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
    margin-bottom: 6px;
  }/* === desktop === */@media (min-width: 900px){.recap .page{ max-width: 1180px; padding: 0 48px 120px; }.recap section + section{ margin-top: 120px; }.recap .nav{ padding: 12px 14px 12px 20px; margin: 18px 0 0; }.recap .nav-links{ display: flex; }/* hero: two-column editorial */.recap .hero{
      display: grid;
      grid-template-columns: 1.15fr 1fr;
      gap: 56px;
      align-items: stretch;
      margin-top: 56px;
    }.recap .hero-media{ aspect-ratio: auto; height: 640px; }.recap .hero-text{ align-self: center; }.recap .hero h1.display{
      font-size: clamp(64px, 7.2vw, 104px);
      margin-top: 10px;
      margin-bottom: 18px;
    }.recap .lede{ font-size: 22px; }.recap .why{
      display: grid;
      grid-template-columns: 1fr 1.2fr;
      gap: 80px;
      align-items: flex-start;
    }.recap .why-head{ position: sticky; top: 100px; }.recap .stats{ grid-template-columns: repeat(3, 1fr); gap: 18px; }.recap .stat{ padding: 28px 22px 22px; min-width: 0; }.recap .stat-num{ font-size: clamp(44px, 4.4vw, 68px); }.recap .day{
      display: grid;
      grid-template-columns: 1.1fr 1fr;
      gap: 80px;
    }.recap .day-strip{ grid-template-columns: 1fr; height: 100%; aspect-ratio: auto; }.recap .how{
      display: grid;
      grid-template-columns: 1.3fr 1fr;
      gap: 80px;
      align-items: flex-start;
    }.recap .steps{ grid-column: 1; }.recap .newsletter{ margin-top: 0; }.recap .ticket-grid{ grid-template-columns: repeat(3, 1fr); gap: 20px; align-items: stretch; }.recap .ticket.featured{ transform: translateY(-14px); }.recap .faq-wrap{ display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: flex-start; }.recap .trust{ padding: 32px; }.recap .final{ padding: 100px 40px 90px; }.recap .final h2.display{ font-size: clamp(54px, 6vw, 84px); }.recap .final p{ font-size: 16px; max-width: 48ch; }.recap .hero-caption .date{ font-size: 22px; }.recap .why h2.display, .recap .tickets h2.display, .recap .faq-wrap h2.display{
      font-size: clamp(48px, 5vw, 72px);
    }.recap .how h2.display{ font-size: clamp(44px, 4.4vw, 64px); }.recap .day h2.display{ font-size: clamp(44px, 4.4vw, 64px); }}/* === utilities === */.recap .mt-0{ margin-top: 0; }.recap .mt-4{ margin-top: 16px; }.recap .mt-6{ margin-top: 24px; }.recap .mt-8{ margin-top: 32px; }/* =====================================================
     REFINED STYLING — original layout, Apple-level polish
     ===================================================== */.recap{
    background-image:
      linear-gradient(180deg, #FBF6EC 0%, #F6EEDD 100%);
  }.recap .page{
    max-width: 420px;
    padding: 0 22px 120px;
  }@media (min-width: 900px){.recap .page{ max-width: 1180px; padding: 0 48px 160px; }.recap section + section{ margin-top: 140px; }}/* Typography polish — keep original left-aligned editorial feel */.recap .eyebrow{
    font-family: var(--sans);
    text-transform: none;
    letter-spacing: 0;
    font-size: 15px;
    font-weight: 600;
    color: var(--terracotta-600);
  }.recap .display{
    letter-spacing: -0.035em;
    line-height: 1.04;
  }.recap .display em{
    font-style: normal;
    background: linear-gradient(90deg, #F59E63, #EF7D4E 50%, #F3B05A);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }/* HERO — keep original two-column editorial, just polish type */@media (min-width: 900px){.recap .hero{
      display: grid;
      grid-template-columns: 1.15fr 1fr;
      gap: 56px;
      align-items: center;
      margin-top: 64px;
    }.recap .hero-text{ order: 0; max-width: 100%; }.recap .hero-media{ order: 1; aspect-ratio: auto; height: 620px; max-width: 100%; margin: 0; border-radius: 24px; }.recap .hero h1.display{ font-size: clamp(64px, 7vw, 104px) !important; margin: 10px 0 18px; max-width: 12ch; }}.recap .hero h1.display{
    font-size: clamp(52px, 11vw, 72px) !important;
    letter-spacing: -0.04em;
    font-weight: 800;
    margin: 18px 0 14px;
    line-height: .98;
  }.recap .hero .lede{
    font-family: var(--sans);
    font-weight: 500;
    font-size: clamp(19px, 2vw, 22px);
    line-height: 1.4;
    color: var(--teal-900);
    letter-spacing: -0.008em;
    margin: 0 0 14px;
  }.recap .hero .prose p{ font-size: 16px; line-height: 1.6; color: var(--ink-soft); }.recap .hero-meta{
    font-family: var(--sans);
    text-transform: none;
    letter-spacing: 0;
    font-size: 15px;
    color: var(--ink-soft);
  }.recap .hero-cta .note{
    font-family: var(--sans);
    text-transform: none;
    letter-spacing: 0;
    font-size: 14px;
    color: var(--ink-faint);
  }.recap .hero-media{ border-radius: 22px; }/* WHY — original 2-col on desktop, refined cards */.recap .why{ text-align: left; }@media (min-width: 900px){.recap .why{ display: grid; grid-template-columns: 1fr 1.2fr; gap: 80px 80px; align-items: flex-start; grid-template-areas: "head body" "stats stats"; }.recap .why-head{ position: sticky; top: 120px; grid-area: head; }.recap .why-body{ grid-area: body; }.recap .stats{ grid-area: stats; margin-top: 24px; }}.recap .why h2.display{
    font-size: clamp(40px, 6.5vw, 68px) !important;
    margin: 10px 0 18px !important;
    letter-spacing: -0.035em;
  }.recap .why-body > .prose p{ font-size: 17px; line-height: 1.6; color: var(--ink-soft); }.recap .stats{
    grid-template-columns: 1fr;
    gap: 14px;
    margin-top: 28px;
  }@media (min-width: 900px){.recap .stats{ grid-template-columns: repeat(3, 1fr); }}.recap .stat{
    background: linear-gradient(135deg, #FFF1E0 0%, #FDF8EE 45%, #EFF3E8 100%);
    border: 1px solid rgba(19,42,45,.06);
    border-radius: 20px;
    padding: 28px 24px;
    box-shadow: 0 8px 24px -16px rgba(19,42,45,.2);
  }.recap .stat::before{ display: none; }.recap .stat-num{
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(44px, 5vw, 64px) !important;
    letter-spacing: -0.04em;
    color: var(--teal-900);
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
  }.recap .stat-label{ font-size: 16px; font-weight: 600; color: var(--teal-900); margin-top: 14px; }.recap .stat-sub{ font-size: 14px; color: var(--ink-faint); margin-top: 4px; }/* DAY — original 2-col, refined timeline cards */@media (min-width: 900px){.recap .day{ display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: flex-start; }.recap .day-strip{ grid-template-columns: 1fr; height: 100%; aspect-ratio: auto; }}.recap .day h2.display, .recap .how h2.display, .recap .tickets h2.display, .recap .faq-wrap h2.display{
    font-size: clamp(36px, 5.5vw, 60px) !important;
    margin: 10px 0 14px !important;
    letter-spacing: -0.035em;
  }.recap .timeline{ text-align: left; margin-top: 22px; }.recap .tl-item{
    background: linear-gradient(135deg, #FFF1E0 0%, #FDF8EE 45%, #EFF3E8 100%);
    border: 1px solid rgba(19,42,45,.06);
    border-radius: 16px;
    padding: 16px 20px;
    margin-bottom: 10px;
    grid-template-columns: 96px 1fr;
    box-shadow: 0 4px 14px -10px rgba(19,42,45,.15);
    border-bottom: 1px solid rgba(19,42,45,.06);
  }.recap .tl-time{
    font-family: var(--sans);
    text-transform: none;
    letter-spacing: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--terracotta-500);
  }.recap .tl-label{ font-size: 16px; font-weight: 600; }.recap .tl-desc{ font-size: 14px; color: var(--ink-faint); }.recap .day-strip{ border-radius: 22px; }.recap .day-strip .wc > img{ filter: none; mix-blend-mode: normal; }.recap .day-strip .wc::before{ display: none; }.recap .day-strip .wc::after{ display: none; }/* HOW — original 2-col with newsletter */@media (min-width: 900px){.recap .how{ display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: flex-start; }.recap .newsletter{ margin-top: 0; }}.recap .steps{ margin-top: 22px; gap: 12px; }.recap .step{
    background: linear-gradient(135deg, #FFF1E0 0%, #FDF8EE 45%, #EFF3E8 100%);
    border: 1px solid rgba(19,42,45,.06);
    border-radius: 16px;
    padding: 18px 22px;
    box-shadow: 0 4px 14px -10px rgba(19,42,45,.15);
    grid-template-columns: 40px 1fr;
  }.recap .step-text{ font-size: 16px; color: var(--teal-900); line-height: 1.5; }.recap .newsletter{
    background: linear-gradient(135deg, #FFF1E0 0%, #FDF8EE 45%, #EFF3E8 100%);
    border: 1px solid rgba(19,42,45,.06);
    border-radius: 22px;
    padding: 30px 28px;
    box-shadow: 0 10px 30px -20px rgba(19,42,45,.18);
  }.recap .newsletter h3.display{ font-size: 30px !important; margin: 8px 0 10px !important; letter-spacing: -0.02em; }/* TICKETS — keep centered top copy, 3-col grid */.recap .tickets > .eyebrow{ display: block; }.recap .tickets > .prose{ max-width: 60ch; }.recap .ticket-grid{
    grid-template-columns: 1fr;
    gap: 18px;
    margin-top: 28px;
  }@media (min-width: 900px){.recap .ticket-grid{ grid-template-columns: repeat(3, 1fr); gap: 22px; align-items: stretch; }}.recap .ticket{
    background: #fff;
    border-radius: 22px;
    border: 1px solid rgba(19,42,45,.06);
    padding: 30px 28px 26px;
    box-shadow: 0 10px 30px -20px rgba(19,42,45,.2);
    transition: transform .2s ease;
  }.recap .ticket:hover{ transform: translateY(-3px); }.recap .ticket .tag{
    font-family: var(--sans);
    text-transform: uppercase;
    letter-spacing: .06em;
    font-size: 12px;
    font-weight: 600;
    color: var(--ink-faint);
  }.recap .ticket .price{
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(48px, 5vw, 68px) !important;
    letter-spacing: -0.04em;
    color: var(--teal-900);
    line-height: 1;
  }.recap .ticket .price .cur{ font-size: 48%; color: var(--ink-faint); font-weight: 700; }.recap .ticket .body{ font-size: 15px; line-height: 1.55; color: var(--ink-soft); }.recap .ticket.featured{
    background: linear-gradient(180deg, #FFF3DE 0%, #FFE4C1 100%);
    border-color: rgba(239,125,78,.35);
    box-shadow: 0 20px 50px -24px rgba(239,125,78,.45);
  }@media (min-width: 900px){.recap .ticket.featured{ transform: translateY(-10px); }.recap .ticket.featured:hover{ transform: translateY(-14px); }}.recap .ticket.featured .price{
    background: linear-gradient(90deg, #F59E63, #EF7D4E 50%, #F3B05A);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }.recap .ticket.featured .ribbon{
    background: #fff;
    color: var(--terracotta-600);
    font-family: var(--sans);
    text-transform: none;
    letter-spacing: 0;
    font-size: 13px;
    font-weight: 600;
    padding: 7px 14px;
    top: -14px;
    box-shadow: 0 8px 20px -8px rgba(239,125,78,.45);
  }.recap .ticket .starline{
    font-family: var(--sans);
    text-transform: none;
    letter-spacing: 0;
    font-size: 13px;
    color: var(--terracotta-600);
    font-weight: 500;
  }/* FAQ — original 2-col */@media (min-width: 900px){.recap .faq-wrap{ display: grid; grid-template-columns: 1.3fr 1fr; gap: 80px; align-items: flex-start; }}.recap details.faq{
    background: linear-gradient(135deg, #FFF1E0 0%, #FDF8EE 45%, #EFF3E8 100%);
    border: 1px solid rgba(19,42,45,.06);
    border-radius: 14px;
    padding: 18px 22px;
    margin-top: 10px;
    box-shadow: 0 4px 14px -10px rgba(19,42,45,.12);
  }.recap details.faq summary{ font-size: 16px; font-weight: 600; }.recap details.faq .ans{ font-size: 14.5px; margin-top: 10px; line-height: 1.6; }.recap details.faq summary::after{
    font-family: var(--sans);
    font-size: 22px;
    color: var(--terracotta-500);
    font-weight: 300;
  }.recap .trust{ padding: 28px; border-radius: 20px; background: linear-gradient(135deg, #FFF1E0 0%, #FDF8EE 45%, #EFF3E8 100%); border: 1px solid rgba(19,42,45,.06); box-shadow: 0 8px 24px -16px rgba(19,42,45,.2); }.recap .trust .eyebrow{ color: var(--terracotta-600); }.recap .trust h3.display{ font-size: 24px !important; color: var(--teal-900); }.recap .trust p{ color: var(--ink-soft); }.recap .trust ul{ list-style: none; padding: 0; margin: 16px 0 0; }.recap .trust ul li{ display: block; position: relative; padding-left: 26px; margin-bottom: 10px; color: var(--teal-900); font-size: 15px; line-height: 1.5; }.recap .trust ul li::before{ content:""; position:absolute; left:0; top: 8px; width: 14px; height: 2px; background: var(--terracotta-500); border-radius: 2px; }.recap .trust h4{ margin: 20px 0 6px; font-family: var(--sans); text-transform: uppercase; letter-spacing: .08em; font-size: 12px; font-weight: 600; color: var(--ink-faint); }/* FINAL */.recap .final{
    margin-top: 100px;
    padding: 80px 32px 72px;
    border-radius: 28px;
  }@media (min-width: 900px){.recap .final{ padding: 110px 48px 100px; }}.recap .final h2.display{
    font-size: clamp(38px, 5.5vw, 64px) !important;
    letter-spacing: -0.035em;
  }.recap .final p{ font-size: 16px; }.recap .revenue-banner{ font-size: 14.5px; }/* === SPONSORS (premium editorial) === */.recap .sponsors{
    margin-top: 80px;
    padding-top: 56px;
    border-top: 1px solid color-mix(in oklch, var(--teal-900) 10%, transparent);
  }@media (min-width: 900px){.recap .sponsors{
      margin-top: 120px;
      padding-top: 72px;
      display: grid;
      grid-template-columns: 1fr 1.4fr;
      gap: 80px;
      align-items: start;
    }}.recap .sponsors .sponsors-head .eyebrow{
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: .14em;
    color: var(--ink-faint);
    font-weight: 600;
  }.recap .sponsors h2.display{
    font-size: clamp(36px, 4.5vw, 56px) !important;
    margin: 12px 0 16px !important;
    letter-spacing: -0.035em;
    max-width: 16ch;
  }.recap .sponsors .prose{
    font-size: 16px;
    color: var(--ink-soft);
    line-height: 1.55;
    max-width: 36ch;
    margin: 0 0 32px;
  }@media (min-width: 900px){.recap .sponsors .prose{ margin-bottom: 0; }}.recap .sponsor-rows{
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid color-mix(in oklch, var(--teal-900) 14%, transparent);
  }.recap .sponsor-rows li{
    border-bottom: 1px solid color-mix(in oklch, var(--teal-900) 10%, transparent);
  }.recap .sponsor-rows a{
    text-decoration: none;
    color: inherit;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: baseline;
    gap: 16px;
    padding: 18px 0;
    transition: padding .25s ease;
  }.recap .sponsor-rows a:hover{ padding-left: 12px; }.recap .sponsor-rows .sn{
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(22px, 2.4vw, 32px);
    letter-spacing: -0.02em;
    color: var(--teal-900);
    line-height: 1.1;
    transition: color .25s ease;
  }.recap .sponsor-rows a:hover .sn{
    background: linear-gradient(90deg, #F59E63, #EF7D4E 50%, #F3B05A);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }.recap .sponsor-rows .st{
    font-size: 13px;
    color: var(--ink-faint);
    font-weight: 500;
    letter-spacing: .01em;
    text-align: right;
    flex-shrink: 0;
  }@media (max-width: 520px){.recap .sponsor-rows .st{ font-size: 12px; }}/* === SAVE THE DATE === */.recap .newsletter-wide{
    width: 100%;
  }@media (min-width: 900px){.recap .newsletter-wide{
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 48px;
      align-items: center;
      padding: 44px 44px;
    }.recap .newsletter-wide .eyebrow, .recap .newsletter-wide h3, .recap .newsletter-wide > p.small{ grid-column: 1; }.recap .newsletter-wide > div:last-child{ grid-column: 2; }}.recap .newsletter-wide h3.display{
    font-size: clamp(28px, 3.5vw, 40px) !important;
    margin: 8px 0 12px !important;
    letter-spacing: -0.025em;
  }.recap .newsletter-wide > p.small{
    color: var(--ink-soft);
    font-size: 15px;
    line-height: 1.5;
    max-width: 40ch;
  }/* hide .how grid override (this section only has the aside) */.recap #save-the-date.how{ display: block !important; }/* === CHAPTER-BASED PHOTO STORY (editorial) === */.recap .chapters{
    margin-top: 100px;
    padding: 80px 0 40px;
    border-top: 1px solid color-mix(in oklch, var(--teal-900) 8%, transparent);
  }@media (min-width: 900px){.recap .chapters{ margin-top: 160px; padding: 120px 0 60px; }}.recap .chapters-intro, .recap .chapters-outro{
    text-align: center;
    max-width: 720px;
    margin: 0 auto 60px;
  }@media (min-width: 900px){.recap .chapters-intro, .recap .chapters-outro{ margin: 0 auto 100px; }}.recap .ornament{
    font-family: var(--serif);
    font-size: 28px;
    color: var(--terracotta-500);
    margin: 8px 0;
    line-height: 1;
    letter-spacing: 0;
  }.recap .serif-label{
    font-family: var(--serif);
    font-style: italic;
    font-size: 18px;
    color: var(--ink-faint);
    letter-spacing: 0.04em;
    margin: 18px 0 12px;
  }.recap .serif-label.small{ font-size: 14px; }.recap .chapters-title{
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(40px, 6.5vw, 68px);
    line-height: 1.1;
    letter-spacing: -0.035em;
    color: var(--teal-900);
    margin: 0 0 30px;
    padding-bottom: 6px;
    text-wrap: balance;
  }.recap .chapters-title em, .recap .chapters-lede em, .recap .chapter-title em, .recap .chapter-text em{
    font-family: var(--serif);
    font-style: italic;
    font-weight: 500;
    color: var(--terracotta-600);
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    letter-spacing: 0;
  }.recap .chapters-title em{ font-weight: 500; font-size: 1.02em; }.recap .chapters-lede{
    font-family: var(--sans);
    font-size: clamp(17px, 1.6vw, 19px);
    line-height: 1.55;
    color: var(--ink-soft);
    max-width: 52ch;
    margin: 0 auto;
    text-wrap: pretty;
  }/* CHAPTER */.recap .chapter{
    position: relative;
    display: grid;
    gap: 20px;
    margin: 80px 0;
    align-items: center;
  }@media (min-width: 900px){.recap .chapter{
      grid-template-columns: 1fr 1fr;
      gap: 80px;
      margin: 140px 0;
    }.recap .chapter-flip .chapter-photo{ order: 2; }.recap .chapter-flip .chapter-text{ order: 1; }}/* big decorative roman numeral */.recap .chapter-num{
    position: absolute;
    top: -40px;
    left: -8px;
    font-family: var(--serif);
    font-weight: 400;
    font-style: italic;
    font-size: clamp(110px, 16vw, 200px);
    line-height: 1;
    color: color-mix(in oklch, var(--terracotta-500) 12%, transparent);
    z-index: 0;
    pointer-events: none;
    user-select: none;
    letter-spacing: -0.02em;
  }@media (min-width: 900px){.recap .chapter-num{
      top: -80px;
      left: -40px;
      font-size: clamp(180px, 18vw, 280px);
      color: color-mix(in oklch, var(--terracotta-500) 10%, transparent);
    }.recap .chapter-flip .chapter-num{
      left: auto;
      right: -40px;
      top: -80px;
    }}.recap .chapter-photo{
    position: relative;
    z-index: 1;
  }.recap .chapter-photo figure{
    margin: 0;
    overflow: hidden;
    border-radius: 4px;
    box-shadow:
      0 30px 60px -30px rgba(19,42,45,.4),
      0 8px 20px -10px rgba(19,42,45,.18);
    position: relative;
  }.recap .chapter-photo figure::after{
    content: "";
    position: absolute;
    inset: 0;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.15);
    pointer-events: none;
    border-radius: 4px;
  }.recap .chapter-photo img{
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    transition: transform 1.2s ease;
  }.recap .chapter-photo:hover img{ transform: scale(1.02); }@media (min-width: 900px){.recap .chapter-photo img{ aspect-ratio: 5 / 6; }}.recap .chapter-text{
    position: relative;
    z-index: 1;
    padding: 0 4px;
  }@media (min-width: 900px){.recap .chapter-text{ padding: 0 12px; }}.recap .chapter-label{
    font-family: var(--sans);
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .18em;
    color: var(--terracotta-500);
    margin-bottom: 14px;
  }.recap .chapter-title{
    font-family: var(--display);
    font-weight: 800;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.08;
    letter-spacing: -0.025em;
    color: var(--teal-900);
    margin: 0 0 18px;
    max-width: 16ch;
    text-wrap: balance;
  }.recap .chapter-title em{
    font-size: 1.02em;
    font-weight: 500;
  }.recap .chapter-text p{
    font-family: var(--sans);
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: 1.65;
    color: var(--ink-soft);
    max-width: 38ch;
    margin: 0 0 22px;
    text-wrap: pretty;
  }.recap .chapter-meta{
    font-family: var(--serif);
    font-style: italic;
    font-size: 16px;
    color: var(--ink-faint);
    letter-spacing: 0.02em;
    margin-top: 8px;
  }.recap .chapter-meta::before{
    content: "";
    display: inline-block;
    width: 32px;
    height: 1px;
    background: var(--terracotta-500);
    vertical-align: middle;
    margin-right: 12px;
  }/* outro quote */.recap .chapters-outro{ padding-top: 40px; }.recap .serif-quote{
    font-family: var(--serif);
    font-style: italic;
    font-size: clamp(22px, 2.5vw, 30px);
    line-height: 1.4;
    color: var(--teal-900);
    margin: 18px auto;
    max-width: 32ch;
    text-wrap: balance;
  }.recap .serif-quote em{
    font-style: italic;
    color: var(--teal-900);
  }.recap .serif-attr{
    font-family: var(--serif);
    font-style: italic;
    font-size: 15px;
    color: var(--ink-faint);
    margin: 0;
  }/* more frames secondary grid */.recap .more-frames{
    margin-top: 80px;
    padding-top: 56px;
    border-top: 1px solid color-mix(in oklch, var(--teal-900) 8%, transparent);
    text-align: center;
  }.recap .more-frames .serif-label{ margin-bottom: 28px; }.recap .more-grid{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    margin: 0 auto;
  }@media (min-width: 700px){.recap .more-grid{ grid-template-columns: repeat(4, 1fr); gap: 12px; }}@media (min-width: 1000px){.recap .more-grid{ grid-template-columns: repeat(8, 1fr); gap: 8px; }}.recap .more-grid figure{
    margin: 0;
    overflow: hidden;
    border-radius: 2px;
    aspect-ratio: 1 / 1;
    box-shadow: 0 4px 12px -8px rgba(19,42,45,.2);
  }.recap .more-grid figure img{
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s ease;
    filter: saturate(0.9);
  }.recap .more-grid figure:hover img{ transform: scale(1.05); filter: saturate(1); }/* hide old gallery grid */.recap .gallery{ display: none; }/* hero italic gets the serif treatment too */.recap .hero h1.display em{
    font-family: var(--serif);
    font-style: italic;
    font-weight: 500;
    background: none;
    -webkit-background-clip: initial;
    background-clip: initial;
    color: var(--terracotta-500);
    letter-spacing: 0;
  }/* === GALLERY (legacy, hidden) === */.recap .gallery{ margin-top: 80px; }.recap .gallery .eyebrow{ margin-bottom: 10px; }.recap .gallery h2.display{ font-size: clamp(34px, 5vw, 56px) !important; letter-spacing: -0.035em; margin: 0 auto 36px !important; max-width: 20ch; text-align: center; }.recap .gallery-grid{
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    grid-auto-rows: 180px;
  }@media (min-width: 700px){.recap .gallery-grid{ grid-template-columns: repeat(4, 1fr); gap: 12px; grid-auto-rows: 220px; }}@media (min-width: 1000px){.recap .gallery-grid{ grid-template-columns: repeat(6, 1fr); grid-auto-rows: 200px; }}.recap .gphoto{
    margin: 0;
    overflow: hidden;
    border-radius: 14px;
    background: #1a1a1a;
    grid-row: span 1;
    box-shadow: 0 6px 18px -12px rgba(19,42,45,.25);
    position: relative;
  }.recap .gphoto img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }.recap .gphoto:hover img{ transform: scale(1.04); }.recap .gphoto.tall{ grid-row: span 2; }.recap .gphoto.wide{ grid-column: span 2; }@media (max-width: 699px){.recap .gphoto.tall{ grid-row: span 2; }.recap .gphoto.wide{ grid-column: span 2; grid-row: span 1; }}/* === SPONSOR LIST === */.recap .sponsor-list{ display: grid; grid-template-columns: 1fr; gap: 10px; }@media (min-width: 600px){.recap .sponsor-list{ grid-template-columns: 1fr 1fr; }}.recap .sponsor-list .step{
    text-decoration: none;
    color: inherit;
    transition: transform .2s ease, box-shadow .2s ease;
  }.recap .sponsor-list .step:hover{ transform: translateY(-2px); box-shadow: 0 10px 24px -14px rgba(19,42,45,.25); }.recap .sponsor-list .step-num{
    background: linear-gradient(180deg, #F59E63 0%, #EF7D4E 100%);
    color: #fff;
    font-size: 16px;
    display: grid;
    place-items: center;
  }.recap .sponsor-list .step-text{
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 0;
  }.recap .sponsor-list .step-text b{
    font-size: 16px;
    font-weight: 700;
    color: var(--teal-900);
  }.recap .sponsor-list .step-text span{
    font-size: 13px;
    color: var(--ink-faint);
    font-weight: 500;
  }/* === HERO IMAGE: photographic (not illustration) === */.recap .hero-media img{
    width:100%; height:100%; object-fit: cover;
    filter: saturate(1.02) contrast(1.02);
  }.recap .hero-media::before{ background: #1a2f31; }.recap .hero-media::after{
    content:""; position:absolute; inset:0; z-index: 2;
    background:
      linear-gradient(180deg, transparent 50%, rgba(19,42,45,.6) 100%);
    pointer-events: none;
  }.recap .hero-stamp{
    background: linear-gradient(90deg, #F59E63, #EF7D4E);
    color: #fff !important;
    border: 0;
  }/* gallery strip in day section: 2-col on mobile, vertical stack on desktop */.recap .gallery-strip .wc img{ filter: none !important; mix-blend-mode: normal !important; }.recap .gallery-strip .wc::before{ display: none !important; }.recap .gallery-strip .wc::after{ display: none !important; }/* === FRIENDS CTA (replaces pricing tiers) === */.recap .friends-cta{
    text-align: center;
  }.recap .friends-card{
    background: linear-gradient(135deg, #FFF1E0 0%, #FDF8EE 45%, #EFF3E8 100%);
    border: 1px solid rgba(19,42,45,.06);
    border-radius: 28px;
    padding: 48px 28px 40px;
    box-shadow: 0 16px 50px -28px rgba(19,42,45,.25);
    max-width: 760px;
    margin: 0 auto;
  }@media (min-width: 900px){.recap .friends-card{ padding: 72px 64px 60px; }}.recap .friends-card .eyebrow{
    color: var(--terracotta-600);
    margin-bottom: 14px;
  }.recap .friends-card h2.display{
    font-size: clamp(36px, 5vw, 60px) !important;
    letter-spacing: -0.035em;
    margin: 0 0 18px !important;
    text-wrap: balance;
  }.recap .friends-card .prose{
    color: var(--ink-soft);
    font-size: clamp(16px, 1.4vw, 18px);
    line-height: 1.6;
    max-width: 52ch;
    margin: 0 auto 32px;
    text-wrap: pretty;
  }.recap .friends-actions{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }.recap .friends-share{
    font-size: 14px;
    color: var(--ink-faint);
    text-decoration: none;
    border-bottom: 1px solid color-mix(in oklch, var(--teal-900) 18%, transparent);
    padding-bottom: 1px;
    transition: color .2s, border-color .2s;
  }.recap .friends-share:hover{
    color: var(--terracotta-600);
    border-color: var(--terracotta-500);
  }/* === MOTION: scroll reveals + counter === */@media (prefers-reduced-motion: no-preference){/* Chapter scroll reveal */.recap .chapter{
      opacity: 0;
      transform: translateY(40px);
      transition: opacity 1s ease, transform 1s cubic-bezier(.2,.7,.2,1);
    }.recap .chapter.in{
      opacity: 1;
      transform: translateY(0);
    }.recap .chapter .chapter-num{
      opacity: 0;
      transform: translateY(60px) scale(.95);
      transition: opacity 1.4s ease, transform 1.4s cubic-bezier(.2,.7,.2,1);
      transition-delay: .15s;
    }.recap .chapter.in .chapter-num{
      opacity: 1;
      transform: translateY(0) scale(1);
    }.recap .chapter .chapter-photo figure{
      transform: translateY(20px);
      transition: transform 1.2s cubic-bezier(.2,.7,.2,1);
      transition-delay: .1s;
    }.recap .chapter.in .chapter-photo figure{ transform: translateY(0); }.recap .chapter .chapter-text > *{
      opacity: 0;
      transform: translateY(20px);
      transition: opacity .9s ease, transform .9s cubic-bezier(.2,.7,.2,1);
    }.recap .chapter.in .chapter-label{ opacity: 1; transform: none; transition-delay: .2s; }.recap .chapter.in .chapter-title{ opacity: 1; transform: none; transition-delay: .3s; }.recap .chapter.in .chapter-text p{ opacity: 1; transform: none; transition-delay: .4s; }.recap .chapter.in .chapter-meta{ opacity: 1; transform: none; transition-delay: .55s; }/* Stat number reveal */.recap .stat{
      opacity: 0;
      transform: translateY(24px);
      transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1);
    }.recap .stat.in{ opacity: 1; transform: none; }.recap .stats .stat:nth-child(1){ transition-delay: 0s; }.recap .stats .stat:nth-child(2){ transition-delay: .12s; }.recap .stats .stat:nth-child(3){ transition-delay: .24s; }/* Sponsor row reveal */.recap .sponsor-rows li{
      opacity: 0;
      transform: translateY(14px);
      transition: opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1);
    }.recap .sponsor-rows.in li{ opacity: 1; transform: none; }.recap .sponsor-rows.in li:nth-child(1){ transition-delay: .05s; }.recap .sponsor-rows.in li:nth-child(2){ transition-delay: .1s; }.recap .sponsor-rows.in li:nth-child(3){ transition-delay: .15s; }.recap .sponsor-rows.in li:nth-child(4){ transition-delay: .2s; }.recap .sponsor-rows.in li:nth-child(5){ transition-delay: .25s; }.recap .sponsor-rows.in li:nth-child(6){ transition-delay: .3s; }.recap .sponsor-rows.in li:nth-child(7){ transition-delay: .35s; }.recap .sponsor-rows.in li:nth-child(8){ transition-delay: .4s; }/* Chapter intro reveal */.recap .chapters-intro{
      opacity: 0;
      transform: translateY(20px);
      transition: opacity .9s ease, transform .9s ease;
    }.recap .chapters-intro.in{ opacity: 1; transform: none; }}/* === Display face: Nunito throughout === */.recap .display, .recap .hero h1.display, .recap .ap-headline, .recap .why h2.display, .recap .day h2.display, .recap .how h2.display, .recap .tickets h2.display, .recap .faq-wrap h2.display, .recap .final h2.display, .recap .chapters-title, .recap .chapter-title, .recap .friends-card h2.display, .recap .sponsors h2.display, .recap .newsletter h3.display, .recap .trust h3.display{
    font-family: var(--sans) !important;
    font-weight: 800 !important;
    letter-spacing: -0.035em !important;
    line-height: 1.05 !important;
  }.recap .hero h1.display em, .recap .display em, .recap .chapter-title em, .recap .chapters-title em, .recap .final h2.display em, .recap .friends-card h2 em{
    font-family: var(--sans) !important;
    font-style: italic !important;
    font-weight: 800 !important;
    color: var(--terracotta-500) !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    background-clip: initial !important;
    letter-spacing: -0.035em !important;
  }.recap .stat-num, .recap .ticket .price, .recap .brand{ font-family: var(--sans) !important; }.recap .sponsor-rows .sn{
    font-family: var(--sans) !important;
    font-weight: 700 !important;
    letter-spacing: -0.02em !important;
  }/* === Chapter progress rail (sticky side index) === */.recap .chapter-rail{
    position: fixed;
    top: 50%;
    right: 24px;
    transform: translateY(-50%);
    z-index: 30;
    display: none;
    flex-direction: column;
    gap: 16px;
    padding: 20px 14px;
    background: color-mix(in oklch, var(--cream) 85%, transparent);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-radius: 999px;
    border: 1px solid color-mix(in oklch, var(--teal-900) 8%, transparent);
    box-shadow: 0 12px 30px -18px rgba(19,42,45,.18);
    opacity: 0;
    pointer-events: none;
    transition: opacity .5s ease;
  }@media (min-width: 1100px){.recap .chapter-rail{ display: flex; }}.recap .chapter-rail.visible{
    opacity: 1;
    pointer-events: auto;
  }.recap .chapter-rail a{
    width: 28px;
    height: 28px;
    display: grid;
    place-items: center;
    font-family: var(--sans);
    font-weight: 700;
    font-size: 12px;
    color: var(--ink-faint);
    text-decoration: none;
    border-radius: 50%;
    transition: color .3s ease, background .3s ease, transform .3s ease;
    position: relative;
  }.recap .chapter-rail a::after{
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: 1px solid transparent;
    transition: border-color .3s ease;
  }.recap .chapter-rail a:hover{ color: var(--terracotta-500); transform: scale(1.08); }.recap .chapter-rail a.active{
    color: var(--terracotta-600);
    background: rgba(255,255,255,.6);
  }.recap .chapter-rail a.active::after{
    border-color: var(--terracotta-500);
  }/* === Parallax on chapter photos === */.recap .chapter-photo figure{
    will-change: transform;
  }.recap .chapter-photo figure img{
    will-change: transform;
  }/* tweaks panel */.recap #tweaks{
    position: fixed; right: 16px; bottom: 16px; z-index: 100;
    width: 260px;
    background: #fff; border: 1px solid color-mix(in oklch, var(--teal-900) 15%, transparent);
    border-radius: 14px; padding: 16px;
    box-shadow: 0 20px 40px -20px rgba(19,42,45,.3);
    display: none;
    font-size: 13px;
  }.recap #tweaks.on{ display: block; }.recap #tweaks h4{ margin: 0 0 10px; font-family: var(--mono); text-transform: uppercase; font-size: 11px; letter-spacing:.12em; color: var(--ink-faint); font-weight: 500; }.recap #tweaks .row{ display:flex; align-items: center; justify-content: space-between; margin: 8px 0; gap: 10px; }.recap #tweaks select, .recap #tweaks input[type=range]{ font-size: 12px; }


