/* ============================================================
   Sangeet Neon Night — Sangeet (modern DJ / club night)
   A club skeleton: a neon sign flickers on in the dark; neon
   typography hero with a laser-gradient framed photo; a club
   narrative; DJ set-times on a vertical timeline with neon nodes;
   neon-bordered glow tiles; LED dot-matrix countdown units in ONE
   row; an RSVP in a centre modal with a neon border.
   Fonts bundled locally — zero external requests.
   ============================================================ */
@font-face{font-family:'Cormorant Garamond';src:url('../../fonts/cormorant-garamond-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('../../fonts/cormorant-garamond-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('../../fonts/cormorant-garamond-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url('../../fonts/cormorant-garamond-italic-500.woff2') format('woff2');font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:'Great Vibes';src:url('../../fonts/great-vibes-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('../../fonts/jost-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('../../fonts/jost-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Jost';src:url('../../fonts/jost-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Mukta';src:url('../../fonts/mukta-devanagari-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Mukta';src:url('../../fonts/mukta-devanagari-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Mukta';src:url('../../fonts/mukta-devanagari-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}

:root{
  --bg:#060614; --bg2:#0b0b22; --panel:#10102c; --panel2:#141438;
  --ink:#f4f2ff; --dim:rgba(244,242,255,.72);
  --pink:#ff2a9d; --cyan:#00e5ff; --violet:#9b5cff; --lime:#b6ff3c; --gold:#ffd23c;
  --line:rgba(155,92,255,.35);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
body.snn-locked{overflow:hidden}
img{max-width:100%;display:block}
button{font-family:inherit}
.dev{font-family:'Mukta',sans-serif}
.snn-script{font-family:'Great Vibes',cursive;font-size:clamp(1.7rem,4.5vw,2.2rem);color:var(--cyan);line-height:1.15;text-shadow:0 0 18px rgba(0,229,255,.55)}
.snn-body-serif{font-family:'Cormorant Garamond',serif;font-size:1.16rem;line-height:1.65}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
.floating-music{position:fixed;left:16px;bottom:16px;z-index:940;width:48px;height:48px;border-radius:50%;border:1px solid rgba(0,229,255,.6);background:rgba(6,6,20,.9);backdrop-filter:blur(8px);color:var(--cyan);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 18px rgba(0,229,255,.35)}
.floating-music svg{width:22px;height:22px}
.floating-music.playing{color:#0a0a18;background:var(--cyan);border-color:var(--cyan)}
.credit .heart{width:13px;height:13px;display:inline-block;vertical-align:-1px;color:var(--pink)}

/* ---------- shared section chrome ---------- */
.snn-section{padding:clamp(40px,7vw,76px) clamp(18px,6vw,84px);background:var(--bg2)}
.snn-section:nth-of-type(even){background:#08081a}
.snn-head{text-align:center;max-width:720px;margin:0 auto clamp(24px,4vw,38px)}
.snn-club-tag{font-size:.68rem;letter-spacing:.4em;text-transform:uppercase;color:var(--pink)}
.snn-title{font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:clamp(1.7rem,5vw,2.6rem);color:#fff;line-height:1.12;margin-top:10px}
.snn-head .snn-script{text-transform:none;letter-spacing:0;margin-top:8px}
.snn-band{max-width:1060px;margin:clamp(26px,4vw,40px) auto 0;border-radius:14px;overflow:hidden;border:2px solid rgba(0,229,255,.45);box-shadow:0 0 26px rgba(0,229,255,.22)}
.snn-band img{width:100%;height:clamp(180px,30vw,320px);object-fit:cover}
.snn-band figcaption{padding:10px 16px;letter-spacing:.1em;color:var(--dim);background:rgba(6,6,20,.8);text-align:center;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1rem}

/* ---------- INTRO — the neon sign flickers on ---------- */
.snn-intro{position:relative;min-height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:36px 18px 48px;background:#030310}
.snn-intro-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.34}
.snn-intro-shade{position:absolute;inset:0;background:radial-gradient(90% 74% at 50% 42%,rgba(3,3,16,.25) 20%,rgba(3,3,16,.94) 100%)}
.snn-intro-inner{position:relative;text-align:center;width:100%;max-width:640px}
.snn-invoke{color:var(--gold);font-size:1.05rem;letter-spacing:.05em;max-width:460px;margin:0 auto;text-shadow:0 0 14px rgba(255,210,60,.5)}
.snn-intro-kicker{margin-top:10px;font-size:.7rem;letter-spacing:.42em;text-transform:uppercase;color:var(--cyan)}
/* Reserved sign stage: wires + sign stay inside; flicker is a text /
   glow animation only — nothing moves or leaves the stage. */
.snn-sign-stage{position:relative;margin:24px auto 0;width:min(520px,94vw);border:1px solid rgba(155,92,255,.3);border-radius:16px;background:linear-gradient(180deg,rgba(11,11,34,.5),rgba(3,3,16,.85));padding:44px 14px 20px;overflow:hidden}
.snn-sign-wire{position:absolute;top:0;width:2px;height:34px;background:linear-gradient(180deg,transparent,#3a3a6e)}
.snn-sign-wire.w1{left:22%}
.snn-sign-wire.w2{right:22%}
.snn-neon-sign{cursor:pointer;outline:none;display:flex;flex-direction:column;align-items:center;gap:2px}
.snn-neon-word{font-weight:600;letter-spacing:.14em;font-size:clamp(2.3rem,10vw,4rem);line-height:1.05;color:#2a2438;text-shadow:none;transition:color .15s ease}
.snn-neon-word.alt{font-size:clamp(1.9rem,8.5vw,3.3rem)}
.snn-neon-sign.lit .snn-neon-word{color:#ffd7f2;text-shadow:0 0 8px rgba(255,42,157,.95),0 0 22px rgba(255,42,157,.85),0 0 52px rgba(255,42,157,.55),0 0 90px rgba(255,42,157,.35);animation:snnFlicker 2.6s linear 1}
.snn-neon-sign.lit .snn-neon-word.alt{color:#d2f7ff;text-shadow:0 0 8px rgba(0,229,255,.95),0 0 22px rgba(0,229,255,.85),0 0 52px rgba(0,229,255,.55),0 0 90px rgba(0,229,255,.35);animation:snnFlicker 2.6s linear .35s 1}
@keyframes snnFlicker{0%{opacity:.15}6%{opacity:1}10%{opacity:.25}14%{opacity:1}20%{opacity:.4}26%{opacity:1}34%{opacity:.55}42%,100%{opacity:1}}
.snn-neon-sign:focus-visible{filter:drop-shadow(0 0 10px rgba(0,229,255,.7))}
.snn-neon-sub{margin-top:10px;font-size:.66rem;letter-spacing:.5em;text-transform:uppercase;color:#2e2a44;transition:color .4s ease .5s}
.snn-neon-sign.lit .snn-neon-sub{color:var(--gold);text-shadow:0 0 12px rgba(255,210,60,.8)}
.snn-stage-line{margin-top:16px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.02rem;color:var(--dim)}
@media (prefers-reduced-motion:reduce){.snn-neon-sign.lit .snn-neon-word{animation:none}}
.snn-neon-btn{margin-top:24px;background:transparent;color:var(--pink);border:2px solid var(--pink);font-weight:500;letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;padding:15px 38px;border-radius:999px;cursor:pointer;box-shadow:0 0 20px rgba(255,42,157,.4),inset 0 0 14px rgba(255,42,157,.18);transition:opacity .5s ease,transform .3s ease}
.snn-neon-btn:hover{transform:translateY(-2px)}
.snn-intro-inner.lit-done .snn-neon-btn{opacity:0;pointer-events:none}
.snn-intro-reveal{margin-top:20px;opacity:0;transform:translateY(14px);transition:opacity .8s ease .6s,transform .8s ease .6s;pointer-events:none}
.snn-intro-inner.lit-done .snn-intro-reveal{opacity:1;transform:none;pointer-events:auto}
.snn-reveal-eyebrow{letter-spacing:.5em;font-size:.64rem;color:var(--cyan);text-indent:.5em}
.snn-reveal-names{font-weight:600;letter-spacing:.03em;font-size:clamp(1.6rem,6vw,2.3rem);margin-top:8px;color:#fff}
.snn-reveal-names span{font-family:'Great Vibes',cursive;font-weight:400;color:var(--pink);font-size:.9em;text-shadow:0 0 16px rgba(255,42,157,.7)}
.snn-reveal-date{margin-top:6px;font-size:.78rem;letter-spacing:.3em;color:var(--dim)}
.snn-scroll{display:inline-flex;flex-direction:column;align-items:center;gap:3px;margin-top:16px;color:var(--dim);text-decoration:none;font-size:.68rem;letter-spacing:.32em;text-transform:uppercase;opacity:0;transition:opacity .8s ease .95s;pointer-events:none}
.snn-scroll svg{width:17px;height:17px}
.snn-intro-inner.lit-done .snn-scroll{opacity:1;pointer-events:auto}

/* ---------- HERO — neon type + laser-gradient framed photo ---------- */
.snn-hero{position:relative;overflow:hidden;background:radial-gradient(120% 90% at 50% 0%,#191948 0%,var(--bg2) 58%,var(--bg) 100%);padding:clamp(44px,7vw,76px) clamp(18px,6vw,84px)}
.snn-laser{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.snn-laser i{position:absolute;left:50%;top:-12%;width:2px;height:70%;transform-origin:top center;opacity:.5}
.snn-laser .lz1{background:linear-gradient(180deg,var(--pink),transparent);transform:rotate(-24deg);box-shadow:0 0 12px rgba(255,42,157,.7)}
.snn-laser .lz2{background:linear-gradient(180deg,var(--cyan),transparent);transform:rotate(0deg);box-shadow:0 0 12px rgba(0,229,255,.7)}
.snn-laser .lz3{background:linear-gradient(180deg,var(--lime),transparent);transform:rotate(24deg);box-shadow:0 0 12px rgba(182,255,60,.6)}
.snn-hero-inner{position:relative;display:grid;gap:30px;max-width:1060px;margin:0 auto;align-items:center}
@media(min-width:900px){.snn-hero-inner{grid-template-columns:1.15fr .85fr}}
.snn-hero-eyebrow{letter-spacing:.42em;font-size:.68rem;color:var(--cyan);text-transform:uppercase}
.snn-hero-small{margin-top:14px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.18rem;color:var(--dim)}
.snn-hero-names{font-weight:600;line-height:1.06;margin-top:14px;font-size:clamp(2.3rem,7.5vw,4.2rem);text-transform:uppercase;letter-spacing:.02em}
.snn-hero-names .snn-nm{display:block}
.snn-hero-names .pink{color:#ffd7f2;text-shadow:0 0 10px rgba(255,42,157,.9),0 0 34px rgba(255,42,157,.6),0 0 70px rgba(255,42,157,.35)}
.snn-hero-names .cyan{color:#d2f7ff;text-shadow:0 0 10px rgba(0,229,255,.9),0 0 34px rgba(0,229,255,.6),0 0 70px rgba(0,229,255,.35)}
.snn-hero-names .snn-amp{font-family:'Great Vibes',cursive;text-transform:none;font-weight:400;color:var(--gold);font-size:.55em;line-height:1.2;text-shadow:0 0 18px rgba(255,210,60,.75)}
.snn-hero-parents{margin-top:16px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.06rem;color:var(--dim);line-height:1.6}
.snn-hero-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:22px;border-top:1px solid var(--line);padding-top:18px}
.snn-meta-item{font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan)}
.snn-meta-item strong{color:#fff;font-weight:500}
.snn-hero-rsvp{margin-top:24px;background:transparent;color:var(--lime);border:2px solid var(--lime);font-weight:500;letter-spacing:.2em;text-transform:uppercase;font-size:.74rem;padding:14px 30px;border-radius:999px;cursor:pointer;box-shadow:0 0 18px rgba(182,255,60,.35),inset 0 0 12px rgba(182,255,60,.14)}
.snn-hero-photo{text-align:center}
.snn-laser-frame{display:block;padding:6px;border-radius:18px;background:conic-gradient(from 210deg,var(--pink),var(--violet),var(--cyan),var(--lime),var(--gold),var(--pink));box-shadow:0 0 34px rgba(155,92,255,.45),0 24px 48px rgba(0,0,0,.55)}
.snn-laser-frame img{width:100%;height:clamp(300px,44vw,430px);object-fit:cover;border-radius:13px}
.snn-hero-photo figcaption{margin-top:12px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1rem;color:var(--dim)}

/* ---------- WELCOME + duo cards ---------- */
.snn-welcome-grid{display:grid;gap:22px;max-width:1060px;margin:0 auto}
@media(min-width:900px){.snn-welcome-grid{grid-template-columns:1.25fr 1fr 1fr;align-items:stretch}}
.snn-welcome-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 22px 46px rgba(0,0,0,.45);padding:clamp(24px,4vw,40px)}
.snn-welcome-date{font-weight:600;font-size:1.3rem;letter-spacing:.16em;color:var(--cyan);margin-top:18px}
.snn-soft{margin-top:8px;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(244,242,255,.5)}
.snn-duo-card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:18px 18px 20px;text-align:center}
.snn-duo-pic{display:block;border-radius:12px;overflow:hidden;border:2px solid rgba(255,42,157,.5);box-shadow:0 0 20px rgba(255,42,157,.25)}
.snn-duo-card:nth-of-type(3) .snn-duo-pic{border-color:rgba(0,229,255,.5);box-shadow:0 0 20px rgba(0,229,255,.25)}
.snn-duo-pic img{width:100%;height:210px;object-fit:cover}
.snn-duo-card figcaption{margin-top:14px;display:flex;flex-direction:column;gap:3px}
.snn-duo-name{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.3rem;color:#fff}
.snn-duo-role{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--pink)}
.snn-duo-parents{font-family:'Cormorant Garamond',serif;font-style:italic;color:var(--dim);font-size:.98rem}

/* ---------- COUNTDOWN — LED dot-matrix board, ONE row ---------- */
.snn-led-board{max-width:760px;margin:0 auto;background:#050510;border:2px solid rgba(255,42,157,.55);border-radius:16px;box-shadow:0 0 30px rgba(255,42,157,.28),inset 0 0 40px rgba(155,92,255,.12);padding:18px clamp(12px,3vw,26px) 22px}
.snn-led-head{display:flex;justify-content:space-between;gap:8px;font-size:.62rem;letter-spacing:.34em;color:rgba(244,242,255,.55);text-transform:uppercase;margin-bottom:16px}
.snn-led-head span:first-child{color:#ff4d4d}
.snn-led-row{display:flex;flex-wrap:nowrap;gap:clamp(8px,2.5vw,20px);justify-content:center}
.snn-led-unit{flex:1 1 0;max-width:160px;text-align:center;background-image:radial-gradient(rgba(255,255,255,.14) 1.1px,transparent 1.2px);background-size:9px 9px;background-color:#0a0a1e;border:1px solid rgba(0,229,255,.3);border-radius:12px;padding:16px 4px 12px}
.snn-led-num{display:block;font-weight:600;font-size:clamp(1.8rem,7.5vw,3rem);line-height:1;color:#ffe9fb;text-shadow:0 0 6px rgba(255,42,157,.95),0 0 20px rgba(255,42,157,.75),0 0 44px rgba(255,42,157,.45);letter-spacing:.06em}
.snn-led-unit:nth-child(2) .snn-led-num{color:#e2fbff;text-shadow:0 0 6px rgba(0,229,255,.95),0 0 20px rgba(0,229,255,.75),0 0 44px rgba(0,229,255,.45)}
.snn-led-unit:nth-child(3) .snn-led-num{color:#f0e8ff;text-shadow:0 0 6px rgba(155,92,255,.95),0 0 20px rgba(155,92,255,.75),0 0 44px rgba(155,92,255,.45)}
.snn-led-unit:nth-child(4) .snn-led-num{color:#f4ffd9;text-shadow:0 0 6px rgba(182,255,60,.95),0 0 20px rgba(182,255,60,.7),0 0 44px rgba(182,255,60,.4)}
.snn-led-lab{display:block;margin-top:9px;font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;color:var(--dim)}
.snn-count-date{text-align:center;margin-top:22px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.14rem;color:var(--dim)}

/* ---------- SCRATCH — the hidden track ---------- */
.snn-scratch{padding:clamp(40px,7vw,76px) 18px;background:var(--bg);text-align:center}
.snn-scratch-sub{font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;color:var(--pink);margin-top:6px}
.snn-scratch-wrap{position:relative;width:min(340px,92vw);height:200px;margin:24px auto 0;border-radius:14px;overflow:hidden;border:2px solid rgba(0,229,255,.5);box-shadow:0 0 26px rgba(0,229,255,.3)}
.snn-scratch-under{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:radial-gradient(90% 90% at 50% 40%,#1c1c52,var(--panel));padding:18px}
.snn-scratch-label{font-size:.66rem;letter-spacing:.42em;text-transform:uppercase;color:var(--cyan)}
.snn-scratch-date{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.3rem;color:#fff;text-align:center}
.snn-scratch-venue{display:flex;align-items:center;gap:6px;color:var(--dim);font-size:.92rem}
.snn-scratch-venue svg{width:15px;height:15px;color:var(--pink)}
.snn-scratch-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .7s ease}
.snn-scratch-canvas.cleared{opacity:0;pointer-events:none}
.snn-scratch-hint{margin-top:14px;font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1rem;color:rgba(244,242,255,.55)}

/* ---------- SETS — vertical timeline, neon nodes ---------- */
.snn-set-group{max-width:820px;margin:clamp(30px,5vw,44px) auto 0}
.snn-set-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-bottom:8px}
.snn-set-pill{font-weight:600;font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;padding:9px 18px;border-radius:999px;border:2px solid var(--cyan);color:#d2f7ff;box-shadow:0 0 16px rgba(0,229,255,.35)}
.snn-set-pill.main{border-color:var(--pink);color:#ffd7f2;box-shadow:0 0 16px rgba(255,42,157,.4)}
.snn-set-sub{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.05rem;color:var(--dim)}
.snn-timeline{position:relative;margin-top:10px;padding:8px 0 4px}
.snn-timeline::before{content:"";position:absolute;left:15px;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--pink),var(--violet),var(--cyan),var(--lime));opacity:.65;box-shadow:0 0 10px rgba(155,92,255,.5)}
.snn-set-item{position:relative;padding:12px 0 12px 52px}
.snn-node{position:absolute;left:6px;top:26px;width:20px;height:20px;border-radius:50%;border:3px solid #0a0a1e;z-index:1}
.snn-node.pink{background:var(--pink);box-shadow:0 0 0 3px rgba(255,42,157,.35),0 0 18px rgba(255,42,157,.85)}
.snn-node.cyan{background:var(--cyan);box-shadow:0 0 0 3px rgba(0,229,255,.32),0 0 18px rgba(0,229,255,.85)}
.snn-node.violet{background:var(--violet);box-shadow:0 0 0 3px rgba(155,92,255,.35),0 0 18px rgba(155,92,255,.85)}
.snn-node.lime{background:var(--lime);box-shadow:0 0 0 3px rgba(182,255,60,.3),0 0 18px rgba(182,255,60,.8)}
.snn-set-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:0 16px 34px rgba(0,0,0,.4)}
.snn-set-top{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.snn-set-no{font-weight:600;font-size:.7rem;letter-spacing:.24em;color:var(--gold)}
.snn-set-when{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--cyan)}
.snn-set-card h4{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.35rem;color:#fff;margin-top:6px}
.snn-set-loc{margin-top:3px;font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1rem;color:var(--dim)}
.snn-set-desc{margin-top:6px;font-size:.95rem;line-height:1.55;color:var(--dim)}

/* ---------- NOTES — club rules ---------- */
.snn-notes-grid{display:grid;gap:20px;max-width:1060px;margin:0 auto}
@media(min-width:820px){.snn-notes-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
.snn-note-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px 24px}
.snn-note-card h4{font-weight:600;letter-spacing:.14em;text-transform:uppercase;font-size:1.05rem;color:var(--cyan);margin-bottom:12px}
.snn-note-card p{margin-top:10px;font-size:.98rem;line-height:1.6;color:var(--dim)}
.snn-note-card p strong{color:#fff;font-weight:500;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}

/* ---------- GALLERY — neon-bordered glow tiles ---------- */
.snn-neon-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:clamp(18px,3vw,28px);max-width:1060px;margin:0 auto}
.snn-tile{border-radius:14px;padding:8px;background:#0a0a1e}
.snn-tile.glow-pink{border:2px solid var(--pink);box-shadow:0 0 20px rgba(255,42,157,.45),inset 0 0 14px rgba(255,42,157,.12)}
.snn-tile.glow-cyan{border:2px solid var(--cyan);box-shadow:0 0 20px rgba(0,229,255,.45),inset 0 0 14px rgba(0,229,255,.12)}
.snn-tile.glow-violet{border:2px solid var(--violet);box-shadow:0 0 20px rgba(155,92,255,.5),inset 0 0 14px rgba(155,92,255,.14)}
.snn-tile.glow-lime{border:2px solid var(--lime);box-shadow:0 0 20px rgba(182,255,60,.4),inset 0 0 14px rgba(182,255,60,.1)}
.snn-tile-pic{display:block;border-radius:9px;overflow:hidden}
.snn-tile-pic img{width:100%;height:210px;object-fit:cover}
.snn-tile figcaption{padding:12px 6px 6px;display:flex;flex-direction:column;gap:3px;text-align:center}
.snn-tile-cap{font-family:'Cormorant Garamond',serif;font-weight:600;font-size:1.18rem;color:#fff}
.snn-tile-sub{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:rgba(244,242,255,.55)}

/* ---------- VENUE ---------- */
.snn-venue{position:relative;overflow:hidden;background:var(--bg)}
.snn-venue-media{position:absolute;inset:0}
.snn-venue-media img,.snn-venue-media iframe{width:100%;height:100%;object-fit:cover;border:0}
.snn-venue-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,4,16,.93) 30%,rgba(4,4,16,.5))}
.snn-venue-inner{position:relative;display:grid;gap:26px;max-width:1060px;margin:0 auto;padding:clamp(44px,7vw,76px) clamp(18px,6vw,84px);align-items:center}
@media(min-width:860px){.snn-venue-inner{grid-template-columns:1.2fr .8fr}}
.snn-venue-eyebrow{font-size:.68rem;letter-spacing:.4em;text-transform:uppercase;color:var(--cyan)}
.snn-venue-name{font-weight:600;text-transform:uppercase;letter-spacing:.03em;font-size:clamp(1.8rem,5vw,2.6rem);color:#fff;margin-top:12px;line-height:1.14;text-shadow:0 0 22px rgba(0,229,255,.35)}
.snn-venue-addr{margin-top:10px;font-size:1.02rem;line-height:1.6;color:var(--dim)}
.snn-venue-when{margin-top:10px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.14rem;color:var(--pink)}
.snn-btn-map{display:inline-flex;align-items:center;gap:8px;margin-top:20px;background:transparent;color:var(--cyan);border:2px solid var(--cyan);text-decoration:none;font-weight:500;letter-spacing:.18em;text-transform:uppercase;font-size:.74rem;padding:13px 26px;border-radius:999px;box-shadow:0 0 16px rgba(0,229,255,.35)}
.snn-btn-map svg{width:16px;height:16px}
.snn-venue-card{border-radius:12px;overflow:hidden;border:2px solid rgba(255,42,157,.55);box-shadow:0 0 24px rgba(255,42,157,.3);transform:rotate(1.6deg);background:var(--panel2)}
.snn-venue-card img{width:100%;height:230px;object-fit:cover}
.snn-venue-card figcaption{padding:10px 14px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1rem;color:var(--dim);text-align:center}

/* ---------- RSVP teaser ---------- */
.snn-teaser-card{max-width:620px;margin:0 auto;text-align:center;background:var(--panel);border:2px solid rgba(182,255,60,.5);border-radius:16px;box-shadow:0 0 26px rgba(182,255,60,.22);padding:clamp(26px,4vw,40px)}
.snn-teaser-names{font-weight:600;font-size:1.3rem;letter-spacing:.04em;color:#fff}
.snn-teaser-date{margin-top:8px;font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cyan)}
.snn-teaser-btn{margin-top:20px;background:var(--pink);color:#fff;border:none;font-weight:600;letter-spacing:.2em;text-transform:uppercase;font-size:.8rem;padding:16px 34px;border-radius:999px;cursor:pointer;box-shadow:0 0 24px rgba(255,42,157,.55)}
.snn-teaser-note{margin-top:14px;font-size:.82rem;color:rgba(244,242,255,.55);font-style:italic;font-family:'Cormorant Garamond',serif;font-size:1rem}

/* ---------- RSVP — centre modal, neon border ---------- */
.snn-scrim{position:fixed;inset:0;background:rgba(2,2,10,.78);backdrop-filter:blur(4px);z-index:960;opacity:0;pointer-events:none;transition:opacity .35s ease}
.snn-scrim.open{opacity:1;pointer-events:auto}
.snn-modal{position:fixed;left:50%;top:50%;transform:translate(-50%,-46%) scale(.96);width:min(560px,92vw);max-height:88svh;overflow-y:auto;z-index:970;background:linear-gradient(180deg,#12122e,#0a0a20);border:2px solid var(--pink);border-radius:18px;box-shadow:0 0 0 4px rgba(0,229,255,.25),0 0 44px rgba(255,42,157,.55),0 34px 70px rgba(0,0,0,.7);padding:clamp(24px,4.5vw,38px);opacity:0;pointer-events:none;transition:opacity .35s ease,transform .35s ease}
.snn-modal.open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.snn-modal-close{position:absolute;top:12px;right:12px;width:38px;height:38px;border-radius:50%;border:1px solid rgba(0,229,255,.55);background:rgba(6,6,20,.8);color:var(--cyan);display:flex;align-items:center;justify-content:center;cursor:pointer}
.snn-modal-close svg{width:17px;height:17px}
.snn-modal-title{font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:1.35rem;color:#fff;text-align:center;text-shadow:0 0 16px rgba(255,42,157,.6)}
.snn-modal-sub{text-align:center;margin-top:8px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.05rem;color:var(--dim)}
.snn-modal-form{display:grid;gap:15px;margin-top:22px}
.snn-modal-form label{display:grid;gap:6px;font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--cyan);font-weight:500}
.snn-modal-form .opt{text-transform:none;letter-spacing:.02em;color:var(--dim)}
.snn-modal-form input,.snn-modal-form select,.snn-modal-form textarea{font-family:'Jost',sans-serif;font-size:1rem;color:#fff;background:#0d0d26;border:1px solid rgba(155,92,255,.5);border-radius:10px;padding:11px 13px;outline:none;width:100%}
.snn-modal-form input:focus,.snn-modal-form select:focus,.snn-modal-form textarea:focus{border-color:var(--pink);box-shadow:0 0 12px rgba(255,42,157,.4)}
.snn-modal-form select option{background:#0d0d26;color:#fff}
.snn-modal-form textarea{resize:vertical}
.snn-btn-submit{margin-top:6px;background:linear-gradient(90deg,var(--pink),var(--violet));color:#fff;border:none;font-weight:600;letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;padding:15px 30px;border-radius:999px;cursor:pointer;box-shadow:0 0 22px rgba(255,42,157,.5)}
.snn-rsvp-thanks{text-align:center;padding:18px 0 6px}
.snn-rsvp-thanks p:last-child{margin-top:8px;font-family:'Cormorant Garamond',serif;font-size:1.1rem;line-height:1.6;color:var(--dim)}

/* ---------- COLOPHON ---------- */
.snn-colophon{background:var(--bg);text-align:center;padding:clamp(40px,7vw,70px) 18px 46px;border-top:1px solid var(--line)}
.snn-foot-quote{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:1.2rem;color:var(--dim);max-width:560px;margin:0 auto;line-height:1.6}
.snn-foot-names{font-weight:600;letter-spacing:.04em;font-size:1.4rem;color:#fff;margin-top:18px}
.snn-foot-date{margin-top:6px;font-size:.76rem;letter-spacing:.3em;text-transform:uppercase;color:var(--cyan)}
.snn-colophon .credit{margin-top:20px;font-size:.8rem;color:rgba(244,242,255,.5)}

@media(max-width:420px){
  .snn-sign-stage{padding:40px 10px 18px}
  .snn-set-item{padding-left:46px}
  .snn-modal{padding:24px 18px}
}
