:root{--nf-accent:#B45DF0;--nf-btn:#9333EA;--nf-btn-deep:#6B21A8;--nf-muted:#a0a0a0;--nf-radius:100px;--nf-radius-btn:100px;--nf-radius-card:20px;--nf-glow:rgba(180,93,240,.35);--nf-glow-strong:rgba(180,93,240,.5);--nf-tint:rgba(180,93,240,.08);--nf-border:rgba(180,93,240,.4);--nf-ring:rgba(180,93,240,.25)}
.fan-strip{padding:4.5rem 0;background:linear-gradient(180deg,rgba(180,93,240,.07) 0%,rgba(0,0,0,0) 100%);border-bottom:1px solid var(--line)}
.fan-strip-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:3rem;align-items:center}
.fan-strip-copy h2{font-family:'Anton',sans-serif;font-weight:400;font-size:clamp(2rem,4.5vw,3rem);text-transform:uppercase;letter-spacing:.03em;line-height:1.05}
.fan-strip-copy h2 span{color:var(--purple)}
.fan-strip-copy p{color:var(--muted);font-size:.95rem;line-height:1.6;margin-top:.9rem;max-width:36ch}
.fan-strip .nyt-fan-form{grid-template-columns:1fr 1fr}
.hero-fan-btn{display:inline-flex;align-items:center;gap:.6rem;background:transparent;color:#fff;padding:1rem 2.5rem;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;border-radius:6px;border:1px solid rgba(180,93,240,.55);transition:var(--transition)}
.hero-fan-btn:hover{border-color:var(--purple);background:rgba(180,93,240,.12);transform:translateY(-3px)}
.nyt-fanpop-card h2,.nyt-fan-success h3{font-family:'Anton',sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.03em}
@media (max-width:900px){.fan-strip-inner{grid-template-columns:1fr;gap:2rem}.fan-strip-copy{text-align:center}.fan-strip-copy p{margin-left:auto;margin-right:auto}}
@media (max-width:768px){.fan-strip{padding:3rem 0}.hero-fan-btn{padding:.85rem 1.75rem;font-size:.75rem}}
@media (max-width:520px){.fan-strip .nyt-fan-form{grid-template-columns:1fr}.fan-strip .nyt-fan-form>.nyt-fan-btn{margin-top:0}}

/* ===== Fan list components (shared markup with thenytsters.com; colors come from --nf-* vars) ===== */
.nyt-fan-form{position:relative;display:grid;grid-template-columns:1fr 1.25fr 110px auto;gap:.75rem;align-items:start;width:100%;text-align:left}
.nyt-fan-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.nyt-fan-field{display:flex;flex-direction:column;gap:.35rem;min-width:0}
.nyt-fan-label{font-size:.65rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--nf-muted)}
.nyt-fan-form input:not([type=hidden]){width:100%;min-width:0;min-height:3.1rem;padding:.85rem 1.1rem;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:var(--nf-radius);color:#fff;font:inherit;font-size:1rem;outline:0;transition:border-color .2s,background .2s,box-shadow .2s}
.nyt-fan-form input::placeholder{color:rgba(255,255,255,.35)}
.nyt-fan-form input:focus{border-color:var(--nf-accent);background:rgba(255,255,255,.07);box-shadow:0 0 0 3px var(--nf-ring)}
.nyt-fan-field.has-error input{border-color:#f87171}
.nyt-fan-err{font-size:.75rem;color:#fca5a5}
.nyt-fan-err:empty{display:none}
.nyt-fan-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.1rem;padding:.9rem 1.6rem;background:linear-gradient(135deg,var(--nf-btn) 0%,var(--nf-btn-deep) 100%);color:#fff;border:0;border-radius:var(--nf-radius-btn);font:inherit;font-size:.8rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;cursor:pointer;text-decoration:none;box-shadow:0 4px 20px var(--nf-glow);transition:transform .2s,box-shadow .2s,opacity .2s}
.nyt-fan-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px var(--nf-glow-strong);color:#fff}
.nyt-fan-btn:disabled{opacity:.7;cursor:default;transform:none}
.nyt-fan-btn-ghost{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.18);box-shadow:none}
.nyt-fan-btn-ghost:hover{border-color:var(--nf-accent);background:var(--nf-tint);box-shadow:none}
.nyt-fan-form>.nyt-fan-btn{align-self:start;margin-top:calc(.65rem * 1.2 + .35rem)}
.nyt-fan-hint,.nyt-fan-disclosure,.nyt-fan-status{grid-column:1/-1;margin:0;font-size:.78rem;line-height:1.5;color:var(--nf-muted)}
.nyt-fan-hint{margin-top:-.25rem}
.nyt-fan-status:empty{display:none}
.nyt-fan-status.is-error{color:#fca5a5;font-weight:600}
.nyt-fan-disclosure a{color:inherit;text-decoration:underline}
.nyt-fan-disclosure a:hover{color:#fff}
.nyt-fan-eyebrow{font-size:.65rem;font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:var(--nf-accent);margin:0 0 .75rem}
@media (max-width:820px){.nyt-fan-form{grid-template-columns:1fr 1fr}.nyt-fan-form>.nyt-fan-btn{grid-column:1/-1;margin-top:0}}
@media (max-width:520px){.nyt-fan-form{grid-template-columns:1fr}}
/* success state */
.nyt-fan-success-wrap{width:100%}
.nyt-fan-success{text-align:left;padding:1.5rem;border:1px solid var(--nf-border);border-radius:var(--nf-radius-card);background:var(--nf-tint);outline:0}
.nyt-fan-success h3{margin:0 0 .5rem;font-size:1.7rem;font-weight:900;color:#fff;letter-spacing:-.01em}
.nyt-fan-success p{margin:0 0 .6rem;color:#d4d4d8;font-size:.95rem;line-height:1.55}
.nyt-fan-success-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.nyt-fan-success-actions .nyt-fan-btn{min-height:0;padding:.75rem 1.2rem;font-size:.72rem}

@media(prefers-reduced-motion:reduce){.nyt-fan-btn{transition:none}}

/* ===== sticky RSVP bar (markup in #nyt-fan-bar-tpl; fanlist.js controls open/close) ===== */
.nyt-fanbar{position:fixed;left:0;right:0;bottom:0;z-index:9998;transform:translateY(110%);transition:transform .35s cubic-bezier(.25,.8,.25,1);background:rgba(9,7,12,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -10px 30px rgba(0,0,0,.5);padding-bottom:env(safe-area-inset-bottom)}
.nyt-fanbar.is-open{transform:translateY(0)}
.nyt-fanbar-inner{position:relative;max-width:1100px;margin:0 auto;padding:.8rem 3.25rem .8rem 1.25rem;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap}
.nyt-fanbar-text{margin:0;font-size:.9rem;color:#d4d4d8}
.nyt-fanbar-text strong{color:#fff}
.nyt-fanbar-cta{min-height:0;padding:.7rem 1.4rem;font-size:.72rem}
.nyt-fanbar-close{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);width:2.2rem;height:2.2rem;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:transparent;color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.nyt-fanbar-close:hover{background:rgba(255,255,255,.1)}
@media (max-width:650px){.nyt-fanbar-inner{justify-content:space-between;gap:.6rem;padding-left:1rem}.nyt-fanbar-text{font-size:.78rem;flex:1 1 auto;line-height:1.35}.nyt-fanbar-text strong{display:block}}
@media (prefers-reduced-motion:reduce){.nyt-fanbar{transition:none}}
