/* ============================================================
   Luiza XV — Save the Date
   Porte standalone do design "Festa 15 Anos v4"
   Paletas azul/dourado (claro) e dourado/escuro (escuro)
   ============================================================ */

/* ---------- Paleta CLARO (padrão) ---------- */
:root{
  --blob-op:.72;
  --bg:#F6F8FB; --surface:#FFFFFF; --surface2:#F7FAFF;
  --tint:#DCE8FF; --tint2:#EAF1FF; --tint3:#C9DCFF; --tint4:#F4F8FF;
  --line:#D7E3FB; --ink:#0B1F4D; --muted:#4A6491; --soft:#7A93BF; --faint:#A9BBD8;
  --accent:#2C5BFF; --accent2:#7FB0FF; --accent3:#9BC0FF;
  --onAccent:#FFFFFF;
  --surfaceRGB:255,255,255; --accentRGB:44,91,255; --inkRGB:11,31,77; --shadowRGB:11,31,77;
}

/* ---------- Paleta ESCURO ---------- */
:root[data-tema="escuro"]{
  --blob-op:.16;
  --bg:#1A1815; --surface:#241F18; --surface2:#201C15;
  --tint:#2C261D; --tint2:#272119; --tint3:#352E23; --tint4:#221E17;
  --line:#3D3529; --ink:#F5EEE0; --muted:#C9BAA0; --soft:#A3967D; --faint:#6F6452;
  --accent:#E0BE72; --accent2:#F2E0AE; --accent3:#C99B41;
  --onAccent:#1A1712;
  --surfaceRGB:36,31,24; --accentRGB:224,190,114; --inkRGB:245,238,224; --shadowRGB:0,0,0;
}

/* ---------- Reset ---------- */
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);}
html{scroll-behavior:smooth;transition:background .5s ease;overflow-x:clip}
body{
  font-family:'Jost',system-ui,sans-serif;
  color:var(--ink);
  -webkit-font-smoothing:antialiased;
  background:var(--bg);
  transition:background .5s ease;
  overflow-x:clip;
}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--ink)}
img{display:block;max-width:100%}
input[type=range]{accent-color:var(--accent)}
::selection{background:var(--accent);color:var(--onAccent)}
button{font-family:inherit}

/* ============================================================
   Keyframes
   ============================================================ */
@keyframes aurora{0%{transform:translate(0,0) scale(1)}33%{transform:translate(5vw,-4vh) scale(1.16)}66%{transform:translate(-4vw,4vh) scale(.9)}100%{transform:translate(0,0) scale(1)}}
@keyframes drift{from{transform:translate3d(0,0,0)}to{transform:translate3d(-60px,-90px,0)}}
@keyframes popFlash{0%,86%,100%{opacity:0}88%{opacity:1}90%{opacity:.05}93%{opacity:.8}96%{opacity:0}}
@keyframes popFlash2{0%,34%,100%{opacity:0}37%{opacity:.9}40%{opacity:0}62%{opacity:.55}65%{opacity:0}}
@keyframes orbit{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@keyframes floaty{0%,100%{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-16px) rotate(var(--r,0deg))}}
@keyframes floatZ{0%,100%{transform:translate3d(0,0,90px) rotate(-6deg)}50%{transform:translate3d(0,-18px,120px) rotate(-3deg)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-33.333%)}}
@keyframes prism{from{background-position:0% 50%}to{background-position:300% 50%}}
@keyframes sparkOut{0%{transform:translate(-50%,-50%) scale(0) rotate(0deg);opacity:1}100%{transform:translate(-50%,-50%) scale(1.4) rotate(140deg);opacity:0}}
@keyframes scan{0%{transform:translateY(-120%)}100%{transform:translateY(420%)}}
@keyframes eq{0%,100%{transform:scaleY(.25)}50%{transform:scaleY(1)}}
@keyframes spinDisc{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ============================================================
   Fundo animado (aurora + estrelas)
   ============================================================ */
.bg-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:var(--blob-op,1)}
.bg-blob{position:absolute;border-radius:50%;filter:blur(70px)}
.bg-blob.b1{width:58vw;height:58vw;left:-16vw;top:-16vw;background:radial-gradient(circle,var(--accent3) 80%,transparent 62%);animation:aurora 28s ease-in-out infinite}
.bg-blob.b2{width:50vw;height:50vw;right:-14vw;top:38vh;background:radial-gradient(circle,var(--tint3) 80%,transparent 64%);filter:blur(80px);animation:aurora 36s ease-in-out infinite reverse}
.bg-blob.b3{width:40vw;height:40vw;left:24vw;bottom:-14vw;background:radial-gradient(circle,var(--tint),transparent 66%);filter:blur(60px);animation:aurora 42s ease-in-out infinite}
.bg-stars{position:absolute;inset:-200px;opacity:.22;animation:drift 44s linear infinite;
  background-image:
    radial-gradient(1.6px 1.6px at 10% 20%,var(--accent),transparent),
    radial-gradient(1.4px 1.4px at 70% 12%,var(--accent2),transparent),
    radial-gradient(1.2px 1.2px at 32% 68%,var(--accent),transparent),
    radial-gradient(1.6px 1.6px at 84% 54%,var(--accent2),transparent),
    radial-gradient(1.2px 1.2px at 52% 88%,var(--accent),transparent);
  background-size:520px 520px;}

.page{position:relative;z-index:1}

/* ============================================================
   Header
   ============================================================ */
.header{
  position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;padding:14px 44px;
  background:rgba(var(--surfaceRGB),.68);backdrop-filter:blur(20px);
  border-bottom:1px solid rgba(var(--accentRGB),.12);
}
.brand{display:flex;align-items:center;gap:14px}
.brand-mark{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:conic-gradient(from 0deg,var(--accent),var(--accent3),#fff,var(--accent))}
.brand-mark span{width:30px;height:30px;border-radius:50%;background:var(--surface);display:flex;align-items:center;justify-content:center;
  font-family:'Pinyon Script',cursive;font-size:19px;line-height:1;color:var(--ink);overflow:hidden}
.brand-mark span b{font-weight:inherit;display:block;transform:translate(-2px,1px)}
.brand-tag{font-size:11px;letter-spacing:.42em;text-transform:uppercase;color:var(--accent)}
.nav{display:flex;flex-wrap:wrap;justify-content:center;gap:30px;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.nav a{color:var(--muted)}
.nav a:hover{color:var(--accent)}
.header-actions{display:flex;align-items:center;gap:14px}
.theme-toggle{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--tint2);border:1px solid var(--line)}
.theme-toggle button{display:flex;align-items:center;justify-content:center;width:34px;height:30px;border-radius:999px;border:none;
  background:transparent;color:var(--soft);cursor:pointer;transition:all .25s}
.theme-toggle button.active{background:var(--accent);color:var(--onAccent)}
.btn-rsvp{padding:11px 24px;border-radius:999px;color:var(--onAccent);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  background:linear-gradient(120deg,var(--accent),var(--accent2),var(--accent));background-size:300% 100%;animation:prism 6s linear infinite}
.btn-rsvp:hover{color:var(--onAccent)}
/* Hambúrguer (só no responsivo) */
.nav-toggle{display:none;align-items:center;justify-content:center;width:40px;height:36px;border-radius:999px;
  border:1px solid var(--line);background:var(--surface);color:var(--accent);cursor:pointer}
.nav-toggle svg{width:20px;height:20px}
/* Menu móvel (dropdown) */
.mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;z-index:48;padding:8px 20px 20px;flex-direction:column;gap:2px;
  max-height:calc(100dvh - 64px);overflow-y:auto;
  background:rgba(var(--surfaceRGB),.98);backdrop-filter:blur(20px);border-bottom:1px solid rgba(var(--accentRGB),.14);
  box-shadow:0 30px 60px rgba(var(--shadowRGB),.2)}
.mobile-menu.open{display:flex}
.mobile-menu a{padding:15px 6px;font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--line)}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu a:hover{color:var(--accent)}
@media (min-width:761px){.mobile-menu{display:none!important}}

/* ============================================================
   Hero
   ============================================================ */
.hero{position:relative;max-width:1360px;margin:0 auto;padding:72px 44px;min-height:92vh;display:grid;
  grid-template-columns:minmax(340px,500px) 1fr;gap:40px;align-items:center}
.hero-info{position:relative;z-index:3}
.pill-date{display:inline-flex;align-items:center;gap:10px;padding:8px 18px;border-radius:999px;background:var(--surface);
  border:1px solid rgba(var(--accentRGB),.18);font-size:10px;letter-spacing:.34em;text-transform:uppercase;color:var(--accent)}
.hero h1{position:relative;width:max-content;max-width:100%;margin:24px 0 0;font-family:'Cinzel',serif;font-weight:700;font-size:clamp(40px,5.4vw,88px);line-height:1;color:var(--ink);letter-spacing:.08em}
/* Glint de luz deslizando sobre o nome (varinha de condão) */
.hero h1::after{
  content:"LUIZA";position:absolute;left:0;top:0;pointer-events:none;
  color:transparent;-webkit-text-fill-color:transparent;
  background:linear-gradient(112deg,transparent 42%,rgba(255,255,255,.95) 50%,transparent 58%);
  -webkit-background-clip:text;background-clip:text;
  background-size:240% 100%;background-repeat:no-repeat;
  filter:drop-shadow(0 0 6px rgba(var(--accentRGB),.55));
  animation:nameShine 3s linear infinite;
}
@keyframes nameShine{from{background-position:150% 0}to{background-position:-60% 0}}
/* Faíscas que cintilam ao longo do nome */
.name-spark{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:3}
.spark-star{position:absolute;transform:translate(-50%,-50%) scale(0);
  background:radial-gradient(circle,#fff 0%,var(--accent) 55%,transparent 72%);
  clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);
  filter:drop-shadow(0 0 4px rgba(var(--accentRGB),.9));
  animation:twinkle .85s ease-out forwards}
@keyframes twinkle{
  0%{transform:translate(-50%,-50%) scale(0) rotate(0deg);opacity:0}
  25%{opacity:1}
  50%{transform:translate(-50%,-50%) scale(1.15) rotate(50deg);opacity:1}
  100%{transform:translate(-50%,-50%) scale(.15) rotate(100deg);opacity:0}}
.hero-sub{margin:24px 0 0;font-family:'Playfair Display',serif;font-style:italic;font-weight:600;font-size:27px;line-height:1.35;color:var(--accent)}
.hero-desc{margin:22px 0 0;font-size:16px;line-height:1.85;color:var(--muted);max-width:360px}
.hero-cta{display:flex;gap:10px;margin-top:32px;max-width:460px}
.hero-cta a{flex:1;min-width:0;text-align:center;padding:16px 26px;border-radius:999px;font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.cta-primary{background:var(--ink);color:var(--onAccent);box-shadow:0 18px 40px rgba(var(--shadowRGB),.22)}
.cta-primary:hover{color:var(--onAccent)}
.cta-ghost{border:1px solid rgba(var(--accentRGB),.3);color:var(--accent);background:rgba(var(--surfaceRGB),.6)}

/* Contador */
.countdown{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px;max-width:420px}
.count-box{flex:1;padding:16px 10px;border-radius:16px;background:rgba(var(--surfaceRGB),.75);
  border:1px solid rgba(var(--accentRGB),.14);text-align:center;backdrop-filter:blur(10px)}
.count-box .n{font-weight:500;letter-spacing:-.01em;font-size:34px;color:var(--ink);line-height:1}
.count-box.sec .n{color:var(--accent)}
.count-box .l{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--soft);margin-top:6px}

/* Bloco de informações (quando/horário/onde/traje) */
.info-grid{list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:16px 22px;max-width:460px}
.info-item{display:flex;align-items:center;gap:13px}
.info-ic{flex:none;width:42px;height:42px;border-radius:13px;display:flex;align-items:center;justify-content:center;
  background:var(--tint2);color:var(--accent)}
.info-ic svg{width:21px;height:21px}
.info-item>div,.info-link>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.info-k{font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--soft)}
.info-v{font-size:14.5px;line-height:1.35;color:var(--ink);font-weight:400}
.info-link{display:flex;align-items:center;gap:13px;color:inherit;transition:transform .2s}
.info-link:hover{color:inherit;transform:translateX(2px)}
.info-link:hover .info-v{color:var(--accent)}
.info-link:hover .info-ic{background:var(--accent);color:var(--onAccent)}

/* Slab 3D */
.hero-stage{position:relative;height:78vh;min-height:78vh;perspective:1500px;perspective-origin:35% 50%}
.slab{position:absolute;top:50%;left:6%;width:64vw;max-width:900px;height:72vh;min-height:72vh;margin-top:-36vh;
  transform-style:preserve-3d;transform:rotateY(-19deg) rotateX(7deg) rotateZ(-1.5deg);
  transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.slab-shadow{position:absolute;inset:0;border-radius:26px}
.slab-shadow.s1{background:linear-gradient(140deg,var(--accent),var(--accent2));transform:translateZ(-46px);filter:blur(2px);opacity:.55}
.slab-shadow.s2{background:linear-gradient(140deg,var(--ink),var(--accent));transform:translateZ(-30px)}
.slab-shadow.s3{background:linear-gradient(140deg,var(--accent2),var(--tint));transform:translateZ(-16px)}
.slab-photo{position:absolute;inset:0;border-radius:24px;overflow:hidden;border:1px solid rgba(255,255,255,.9);
  box-shadow:0 70px 130px rgba(var(--shadowRGB),.35)}
.slab-photo img{width:100%;height:100%;object-fit:cover}
.slab-photo .tint{position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(var(--accentRGB),.22),rgba(255,255,255,0) 46%)}
.slab-photo .fa{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 26% 28%,rgba(255,255,255,.98),rgba(255,255,255,0) 44%);animation:popFlash 3.4s linear infinite}
.slab-photo .fb{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 72% 66%,rgba(210,230,255,.95),rgba(255,255,255,0) 48%);animation:popFlash2 5.2s linear infinite}
.slab-photo .scanline{position:absolute;left:0;right:0;height:24%;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,0),rgba(255,255,255,.3),rgba(255,255,255,0));animation:scan 7s linear infinite}
.slab-glass{position:absolute;inset:0;border-radius:24px;pointer-events:none;transform:translateZ(34px);
  background:linear-gradient(125deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,0) 34%,rgba(255,255,255,0) 62%,rgba(159,196,255,.34) 100%);border:1px solid rgba(255,255,255,.55)}
.polaroid{position:absolute;left:-7%;bottom:8%;width:210px;padding:12px 12px 44px;border-radius:6px;background:var(--surface);
  box-shadow:0 40px 70px rgba(var(--shadowRGB),.3);animation:floatZ 9s ease-in-out infinite}
.polaroid .pimg{position:relative;height:170px;border-radius:3px;overflow:hidden;background:var(--tint)}
.polaroid .pimg img{width:100%;height:100%;object-fit:cover}
.polaroid .pimg .fb{position:absolute;inset:0;pointer-events:none;background:var(--surface);animation:popFlash2 4.4s linear infinite}
.polaroid .cap{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-family:'Playfair Display',serif;font-style:italic;font-weight:600;font-size:17px;color:var(--ink)}
.orbit{position:absolute;right:16%;top:-6%;width:120px;height:120px;border-radius:50%;border:1px dashed rgba(var(--accentRGB),.45);
  transform:translateZ(70px);animation:orbit 22s linear infinite;display:flex;align-items:center;justify-content:center}
.orbit span{font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}

/* ============================================================
   Seções — títulos
   ============================================================ */
.section{padding:0 44px 110px}
.eyebrow{font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--accent)}
.h-section{margin:16px 0 0;font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(42px,5.4vw,84px);line-height:.94;color:var(--ink)}
.h-section em{font-style:italic;color:var(--accent)}
.wrap{max-width:1320px;margin:0 auto}

/* ---------- Texto de apoio ---------- */
.lead{margin:22px 0 0;font-size:17px;line-height:1.8;color:var(--muted);max-width:620px;text-wrap:pretty}
.lead strong{color:var(--ink);font-weight:500}
.field-hint{margin-top:8px;font-size:12.5px;line-height:1.5;color:var(--soft)}

/* ---------- Traje ---------- */
.traje-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;margin:46px 0 0}
.traje-card{border-radius:26px;overflow:hidden;background:var(--surface);border:1px solid rgba(var(--accentRGB),.12);
  box-shadow:0 24px 60px rgba(var(--shadowRGB),.1);display:flex;flex-direction:column}
.traje-img{position:relative;height:360px;background:var(--tint);overflow:hidden}
/* fundo desfocado (cópia da própria foto) preenchendo o card */
.traje-bg{position:absolute;inset:-14%;background-size:cover;background-position:center;
  filter:blur(24px) brightness(.9);transform:scale(1.08)}
/* foto principal inteira (pés à cabeça), sem esfumaçar as bordas */
.traje-img img{position:relative;z-index:1;width:100%;height:100%;object-fit:contain}
.traje-img .ph{z-index:1}
.traje-body{padding:24px}
.traje-body h3{margin:0;font-family:'Playfair Display',serif;font-weight:600;font-size:24px;color:var(--ink)}
.traje-body p{margin:10px 0 0;font-size:14.5px;line-height:1.7;color:var(--muted)}
.traje-more{display:inline-block;margin-top:14px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.traje-more:hover{color:var(--ink)}
.traje-tag{display:inline-block;margin-bottom:2px;padding:5px 13px;border-radius:999px;background:var(--tint2);color:var(--accent);
  font-size:9px;letter-spacing:.24em;text-transform:uppercase}
.traje-notes{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}
.note{padding:26px;border-radius:22px;border:1px solid rgba(var(--accentRGB),.14);background:rgba(var(--surfaceRGB),.7);backdrop-filter:blur(10px)}
.note-h{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.note.no .note-h{color:var(--soft)}
.note ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.note li{position:relative;padding-left:24px;font-size:15px;line-height:1.5;color:var(--muted)}
.note li::before{position:absolute;left:0;top:0;font-size:14px}
.note.ok li::before{content:"✓";color:var(--accent)}
.note.no li::before{content:"✕";color:var(--soft)}
.cores-block{margin-top:28px;padding:26px;border-radius:22px;border:1px solid rgba(var(--accentRGB),.14);background:rgba(var(--surfaceRGB),.7);backdrop-filter:blur(10px)}
.cores{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.cor-chip{display:inline-flex;align-items:center;gap:9px;padding:8px 15px 8px 9px;border-radius:999px;background:var(--surface);
  border:1px solid var(--line);font-size:13px;color:var(--ink)}
.cor-chip i{width:18px;height:18px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08)}

/* ---------- Como chegar (mapa) ---------- */
.map-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:22px;margin-top:46px;align-items:stretch}
.map-frame{position:relative;min-height:360px;border-radius:26px;overflow:hidden;border:1px solid rgba(var(--accentRGB),.14);
  box-shadow:0 24px 60px rgba(var(--shadowRGB),.12);background:var(--tint)}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:saturate(.9)}
.map-card{padding:34px;border-radius:26px;background:var(--surface);border:1px solid rgba(var(--accentRGB),.12);
  box-shadow:0 24px 60px rgba(var(--shadowRGB),.1);display:flex;flex-direction:column}
.map-card .lbl{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--soft)}
.map-card h3{margin:12px 0 0;font-family:'Playfair Display',serif;font-weight:700;font-size:38px;color:var(--ink)}
.map-card p{margin:14px 0 0;font-size:15px;line-height:1.75;color:var(--muted)}
.map-btn{margin-top:22px;text-align:center;padding:15px 22px;border-radius:999px;color:var(--onAccent);
  background:linear-gradient(120deg,var(--accent),var(--accent2),var(--accent));background-size:300% 100%;animation:prism 6s linear infinite;
  font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.map-btn:hover{color:var(--onAccent)}
.map-meta{margin-top:auto;padding-top:24px;display:flex;flex-wrap:wrap;gap:18px}
.map-meta>div{display:flex;flex-direction:column;gap:4px}
.map-meta span{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}
.map-meta strong{font-weight:500;font-size:15px;color:var(--ink)}

/* ---------- Dicas ---------- */
.dicas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:22px;margin-top:46px}
.dica-card{display:flex;flex-direction:column;padding:28px;border-radius:26px;background:var(--surface);
  border:1px solid rgba(var(--accentRGB),.12);box-shadow:0 20px 50px rgba(var(--shadowRGB),.08)}
.dica-card.feat{background:linear-gradient(150deg,var(--surface2),var(--tint))}
.dica-kind{font-size:9px;letter-spacing:.26em;text-transform:uppercase;color:var(--accent)}
.dica-card h3{margin:12px 0 0;font-family:'Playfair Display',serif;font-weight:600;font-size:23px;color:var(--ink)}
.dica-card p{margin:10px 0 0;font-size:14.5px;line-height:1.65;color:var(--muted)}
.dica-info{margin:16px 0 0;display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--muted)}
.dica-info a{color:var(--accent)}
.dica-btn{margin-top:20px;text-align:center;padding:13px 18px;border-radius:999px;border:1px solid rgba(var(--accentRGB),.3);
  background:var(--surface);color:var(--accent);font-size:11px;letter-spacing:.22em;text-transform:uppercase;transition:all .25s}
.dica-btn:hover{background:var(--tint2);border-color:var(--accent);color:var(--accent)}
.dica-card.feat .dica-btn{background:var(--accent);color:var(--onAccent);border-color:var(--accent)}

/* ---------- Reel (grade de polaroids 9:16) ---------- */
.reel{padding:10px 0 100px}
.reel-head{padding:0 44px;margin:0 auto 30px}
.soon{display:inline-block;vertical-align:middle;margin-left:12px;padding:6px 14px;border-radius:999px;background:var(--tint2);
  color:var(--accent);font-family:'Jost',sans-serif;font-size:11px;font-weight:500;letter-spacing:.18em;text-transform:uppercase}
.reel-sec{padding:0 44px 10px}
.reel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:26px 20px;max-width:1200px;margin:0 auto}
.pola{background:var(--surface);padding:10px 10px 34px;border-radius:6px;box-shadow:0 22px 46px rgba(var(--shadowRGB),.14);
  transform:rotate(var(--r,0deg));transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.pola:hover{transform:rotate(0deg) translateY(-5px);box-shadow:0 34px 64px rgba(var(--shadowRGB),.2)}
.pola-img{position:relative;aspect-ratio:9/16;border-radius:3px;overflow:hidden;background:var(--tint)}
.pola-img img{width:100%;height:100%;object-fit:cover}
.pola-cap{margin-top:11px;text-align:center;font-family:'Playfair Display',serif;font-style:italic;font-size:14px;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}
.pola-when{display:block;font-family:'Jost',sans-serif;font-style:normal;font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--soft);margin-top:3px}
.reel-empty{grid-column:1/-1;text-align:center;color:var(--soft);font-size:14px;padding:20px 0}
.reel-mask{overflow:hidden;padding:10px 0}
.reel-track{display:flex;gap:18px;width:max-content;animation:marquee 38s linear infinite}
.reel-mask:hover .reel-track{animation-play-state:paused}
.reel-item{position:relative;width:200px;height:150px;border-radius:14px;overflow:hidden;border:1px solid rgba(var(--accentRGB),.16);
  background:var(--tint);box-shadow:0 18px 40px rgba(var(--shadowRGB),.12);animation:floaty 8s ease-in-out infinite}
.reel-item img{width:100%;height:100%;object-fit:cover}
.reel-item .fb{position:absolute;inset:0;pointer-events:none;background:rgba(255,255,255,.92);animation:popFlash 4s linear infinite}
.reel-item .tag{position:absolute;bottom:8px;left:10px;pointer-events:none;padding:4px 10px;border-radius:99px;
  background:rgba(var(--surfaceRGB),.85);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}

/* ---------- Galeria ---------- */
.gal-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:24px;max-width:1320px;margin:0 auto}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{padding:11px 22px;border-radius:999px;border:1px solid var(--line);background:rgba(var(--surfaceRGB),.7);color:var(--muted);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:all .25s}
.chip:hover{border-color:var(--accent)}
.chip.active{border-color:var(--accent);background:var(--accent);color:var(--onAccent)}
.gal-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px;max-width:1320px;margin:46px auto 0}
.gal-fig{position:relative;margin:0;overflow:hidden;border:1px solid rgba(var(--accentRGB),.14);background:var(--tint);
  box-shadow:0 24px 50px rgba(var(--shadowRGB),.1);transition:transform .5s cubic-bezier(.2,.8,.2,1),box-shadow .4s}
.gal-fig:hover{transform:translateY(-8px);box-shadow:0 40px 70px rgba(var(--shadowRGB),.18)}
.gal-fig img{width:100%;height:100%;object-fit:cover}
.gal-cap{position:absolute;top:14px;left:14px;white-space:nowrap;pointer-events:none;padding:6px 14px;border-radius:999px;
  background:rgba(var(--surfaceRGB),.88);backdrop-filter:blur(8px);border:1px solid rgba(var(--accentRGB),.16);
  color:var(--accent);font-size:9px;letter-spacing:.24em;text-transform:uppercase}
.gal-cap.bottom{top:auto;bottom:18px;left:50%;transform:translateX(-50%)}

/* Placeholder de foto (slot vazio) */
.ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:16px;
  background:linear-gradient(150deg,var(--tint2),var(--tint));color:var(--soft)}
.ph svg{width:30px;height:30px;opacity:.7}
.ph .ph-label{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);line-height:1.5;max-width:80%}

/* ---------- Roteiro ---------- */
.card-roteiro{max-width:1100px;margin:0 auto;padding:52px;border-radius:34px;background:rgba(var(--surfaceRGB),.72);
  border:1px solid rgba(var(--accentRGB),.14);backdrop-filter:blur(20px);box-shadow:0 40px 90px rgba(var(--shadowRGB),.1)}
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}
.tab{padding:13px 26px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;transition:all .25s}
.tab.active{border-color:var(--accent);background:var(--accent);color:var(--onAccent)}
.roteiro-body{display:grid;grid-template-columns:auto 1fr;gap:38px;align-items:center;margin-top:38px}
.roteiro-hora{font-weight:500;letter-spacing:-.01em;font-size:clamp(44px,6.2vw,84px);line-height:1;color:var(--accent)}
.roteiro-titulo{margin:0;font-family:'Playfair Display',serif;font-style:italic;font-weight:600;font-size:34px;color:var(--ink)}
.roteiro-texto{margin:14px 0 0;font-size:17px;line-height:1.8;color:var(--muted);max-width:560px;text-wrap:pretty}

/* ---------- RSVP ---------- */
.rsvp-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:.8fr 1.2fr;gap:52px;align-items:start}
.rsvp-h{margin:16px 0 20px;font-family:'Playfair Display',serif;font-weight:700;font-size:clamp(40px,4.8vw,72px);line-height:.96;color:var(--ink)}
.rsvp-h em{font-style:italic;color:var(--accent)}
.rsvp-lead{font-size:16px;line-height:1.85;color:var(--muted);max-width:330px}
.rsvp-msg{text-align:center;padding:24px 10px}
.rsvp-msg p{margin:0 auto;max-width:380px;color:var(--muted);font-size:16px;line-height:1.7}
.rsvp-outro{display:block;margin:18px auto 0;padding:8px;border:none;background:none;color:var(--accent);font-size:14px;text-decoration:underline;cursor:pointer}
.rsvp-pessoas{display:grid;gap:10px;margin-top:14px}
.rsvp-pessoa{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 11px 11px 16px;border-radius:16px;border:1px solid var(--line);background:var(--surface)}
.rsvp-pessoa-nome{min-width:0;font-size:15px;color:var(--ink);overflow-wrap:anywhere}
.rsvp-sn{flex:none;display:flex;gap:6px}
.rsvp-sn label{position:relative;display:block;cursor:pointer}
.rsvp-sn input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.rsvp-sn span{display:flex;align-items:center;justify-content:center;width:60px;height:44px;border-radius:12px;border:1px solid var(--line);font-size:14px;color:var(--muted);transition:all .2s}
.rsvp-sn input:checked+span{border-color:var(--accent);background:var(--accent);color:var(--onAccent)}
.rsvp-sn input[value="nao"]:checked+span{border-color:var(--ink);background:var(--ink);color:var(--surface)}
.rsvp-sn input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}

.rsvp-card{padding:44px;border-radius:32px;background:var(--surface);border:1px solid rgba(var(--accentRGB),.12);box-shadow:0 50px 110px rgba(var(--shadowRGB),.14)}
.field-label{display:block;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--soft)}
.txt{width:100%;margin-top:12px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:var(--surface2);
  font-family:'Jost',sans-serif;font-size:16px;color:var(--ink);outline:none;transition:border-color .2s,background .2s}
.txt:focus{border-color:var(--accent);background:var(--surface)}
.group-label{margin-top:30px;font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--soft)}
.opt-grid{display:grid;gap:10px;margin-top:14px}
.opt-grid.c3{grid-template-columns:repeat(3,1fr)}
.opt-grid.c2{grid-template-columns:1fr 1fr}
.opt{display:flex;align-items:center;gap:11px;padding:15px;border-radius:16px;border:1px solid var(--line);background:var(--surface);
  cursor:pointer;font-size:15px;color:var(--muted);text-align:left;transition:all .22s}
.opt.on{border-color:var(--accent);background:var(--tint2);color:var(--ink)}
.opt .radio{flex:none;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--tint3);display:flex;align-items:center;justify-content:center}
.opt.on .radio{border-color:var(--accent)}
.opt .radio>span{width:10px;height:10px;border-radius:50%;background:transparent}
.opt.on .radio>span{background:var(--accent);box-shadow:0 0 10px 2px rgba(var(--accentRGB),.5)}

.slider-wrap{flex:1;min-width:240px}
.slider-wrap input{width:100%;margin-top:18px}
.slider-lbl{font-size:14px;color:var(--muted);margin-top:6px}

.switch-btn{display:flex;align-items:center;gap:14px;width:100%;margin-top:26px;padding:15px 16px;border-radius:14px;
  border:1px solid var(--line);background:var(--surface2);cursor:pointer;font-size:15px;color:var(--ink);text-align:left}
.switch{flex:none;width:48px;height:26px;border-radius:99px;background:var(--line);position:relative;transition:background .25s}
.switch>span{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .25s;box-shadow:0 2px 6px rgba(var(--shadowRGB),.25)}
.switch-btn.on .switch{background:var(--accent)}
.switch-btn.on .switch>span{left:25px}

.btn-send{width:100%;margin-top:26px;padding:19px;border-radius:999px;border:none;color:var(--onAccent);
  background:linear-gradient(120deg,var(--ink),var(--accent),var(--accent2),var(--ink));background-size:300% 100%;animation:prism 7s linear infinite;
  font-size:12px;letter-spacing:.28em;text-transform:uppercase;cursor:pointer}

.rsvp-done{text-align:center;padding:44px 10px}
.rsvp-done .seal{width:82px;height:82px;margin:0 auto;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:conic-gradient(from 0deg,var(--accent),var(--accent3),#fff,var(--accent))}
.rsvp-done .seal>span{width:70px;height:70px;border-radius:50%;background:var(--surface);color:var(--accent);display:flex;align-items:center;justify-content:center;font-size:30px}
.rsvp-done h3{font-family:'Playfair Display',serif;font-weight:700;font-size:38px;color:var(--ink);margin:24px 0 10px}
.rsvp-done p{color:var(--muted);font-size:16px;line-height:1.7;margin:0 auto;max-width:380px}
.btn-edit{margin-top:28px;padding:13px 30px;border-radius:999px;border:1px solid rgba(var(--accentRGB),.3);background:var(--surface);color:var(--accent);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;cursor:pointer}
.hidden{display:none!important}

/* ---------- Presentes ---------- */
.gifts-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px}
.gifts-count{padding:16px 26px;border-radius:999px;background:var(--surface);border:1px solid rgba(var(--accentRGB),.16);font-size:14px;color:var(--muted)}
/* Barra de ordenação (centralizada) */
.sort-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:8px 0 40px}
.sort-btns{display:flex;gap:10px}
.sort-label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}
.sort-btn{padding:10px 20px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:all .25s}
.sort-btn:hover{border-color:var(--accent)}
.sort-btn.active{border-color:var(--accent);background:var(--accent);color:var(--onAccent)}

.gifts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:22px;margin-top:8px}

/* Checkout (placeholder) */
.checkout-card{display:grid;grid-template-columns:minmax(0,300px) 1fr;gap:0;border-radius:26px;overflow:hidden;
  background:var(--surface);border:1px solid rgba(var(--accentRGB),.12);box-shadow:0 30px 70px rgba(var(--shadowRGB),.12)}
.checkout-img{position:relative;min-height:260px;background:var(--tint)}
.checkout-img img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.checkout-body{padding:34px;display:flex;flex-direction:column;gap:12px}
.checkout-body h3{margin:0;font-family:'Playfair Display',serif;font-weight:700;font-size:30px;color:var(--ink)}
.checkout-body p{margin:0;font-size:15px;line-height:1.7;color:var(--muted)}
.checkout-soon{margin-top:6px;padding:16px 18px;border-radius:16px;background:var(--tint2);border:1px solid var(--line);
  font-size:14px;line-height:1.6;color:var(--muted)}
.checkout-body .btn-voltar{align-self:flex-start}
.pag-label{margin-top:22px}
#pag-recado{resize:vertical}
.pag-opt{position:relative;cursor:pointer}
.pag-opt input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.pag-opt:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.pag-opt-txt{flex:1;min-width:0;color:var(--ink)}
.pag-opt-txt small{display:block;margin-top:3px;font-size:12px;line-height:1.45;color:var(--soft)}
.pag-opt strong{flex:none;font-weight:600;color:var(--ink)}
@media (max-width:640px){.checkout-card{grid-template-columns:1fr}.checkout-img{min-height:200px}}
.gift{position:relative;display:flex;flex-direction:column;border-radius:26px;border:1px solid rgba(var(--accentRGB),.12);background:var(--surface);
  overflow:hidden;box-shadow:0 24px 60px rgba(var(--shadowRGB),.1);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.gift:hover{transform:translateY(-6px)}
.gift.mine{border-color:var(--accent)}
.gift.mine,.gift.sold{background:var(--tint4)}
.gift-img{position:relative;height:210px;background:var(--tint)}
.gift-img img{width:100%;height:100%;object-fit:cover}
.gift.sold .gift-img{opacity:.5;filter:grayscale(1)}
.gift.sold .gift-body{opacity:.5}
.gift-badge{position:absolute;top:14px;right:14px;pointer-events:none;padding:6px 14px;border-radius:999px;font-size:9px;letter-spacing:.24em;text-transform:uppercase;
  background:rgba(var(--surfaceRGB),.9);color:var(--accent)}
.gift.mine .gift-badge,.gift.sold .gift-badge{background:var(--accent);color:var(--onAccent)}
.gift-num{position:absolute;top:14px;left:14px;pointer-events:none;padding:4px 12px;border-radius:999px;background:rgba(0,0,0,.55);
  font-weight:500;letter-spacing:-.01em;font-size:16px;color:#fff}
.gift-body{padding:26px;display:flex;flex-direction:column;gap:14px;flex:1}
.gift-body h3{margin:0;font-family:'Playfair Display',serif;font-weight:600;font-size:27px;color:var(--ink)}
.gift-body p{margin:0;font-size:15px;line-height:1.7;color:var(--muted)}
.gift-price{font-weight:500;font-size:24px;color:var(--ink)}
.gift-btn{width:100%;margin-top:18px;padding:15px;border-radius:999px;border:1px solid rgba(var(--accentRGB),.3);background:var(--surface);color:var(--accent);
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;transition:all .25s}
.gift.mine .gift-btn{background:var(--accent);color:var(--onAccent);border-color:var(--accent)}
.gift.sold .gift-btn{color:var(--faint);border-color:var(--line);cursor:not-allowed}

/* ---------- Kit ---------- */
.kit-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:22px}
.kit-card{padding:30px;border-radius:26px;background:var(--surface);border:1px solid rgba(var(--accentRGB),.12);box-shadow:0 20px 50px rgba(var(--shadowRGB),.07)}
.kit-card .lbl{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--soft)}
.kit-stack{display:flex;flex-direction:column;gap:12px;margin-top:20px}
.kit-btn{padding:16px;border-radius:999px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;border:none}
.kit-btn.prism{color:var(--onAccent);background:linear-gradient(120deg,var(--ink),var(--accent),var(--accent2),var(--ink));background-size:300% 100%;animation:prism 7s linear infinite}
.kit-btn.outline{border:1px solid rgba(var(--accentRGB),.35);background:var(--surface);color:var(--accent);transition:all .25s}
.kit-btn.outline:hover{background:var(--tint2);border-color:var(--accent)}
.kit-btn.disabled{border:1px dashed var(--line);background:var(--surface2);color:var(--faint);cursor:default}
.kit-progress .row{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);margin-top:18px}
.kit-progress .bar{height:6px;border-radius:99px;background:var(--tint);overflow:hidden;margin-top:8px}
.kit-progress .bar>span{display:block;width:82%;height:100%;background:linear-gradient(90deg,var(--ink),var(--accent2))}
.kit-segs{display:flex;gap:8px;margin-top:18px}
.kit-segs>i{flex:1;height:6px;border-radius:99px}
.kit-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.kit-tag{padding:8px 15px;border-radius:999px;font-size:10px;letter-spacing:.2em;text-transform:uppercase}
.invite{margin-top:20px;padding:24px;border-radius:20px;border:1px solid rgba(var(--accentRGB),.2);background:linear-gradient(150deg,var(--surface2),var(--tint))}
.invite .top{display:flex;justify-content:space-between;align-items:baseline}
.invite .xv{font-family:'Cinzel',serif;font-weight:700;font-size:28px;color:var(--ink)}
.invite .mesa{font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--accent)}
.invite .dash{margin:18px 0;height:1px;background:repeating-linear-gradient(90deg,rgba(var(--accentRGB),.4) 0 6px,transparent 6px 12px)}
.invite .btm{display:flex;justify-content:space-between;font-size:13px;color:var(--muted)}

/* ---------- Footer ---------- */
.footer{padding:100px 44px 90px;text-align:center;border-top:1px solid rgba(var(--accentRGB),.12)}
.footer .big{font-family:'Playfair Display',serif;font-style:italic;font-weight:700;font-size:clamp(40px,6.4vw,104px);line-height:1;
  background:linear-gradient(100deg,var(--accent),var(--ink),var(--accent2),var(--accent));background-size:300% auto;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:prism 9s linear infinite}
.footer p{margin:26px auto 0;max-width:520px;font-size:15px;line-height:1.9;color:var(--muted)}
.footer .fine{margin-top:44px;font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--faint)}

/* ---------- Player ---------- */
.player{position:fixed;right:26px;bottom:26px;z-index:60;display:flex;align-items:center;gap:14px;padding:12px 20px 12px 12px;border-radius:999px;
  background:rgba(var(--surfaceRGB),.82);backdrop-filter:blur(20px);border:1px solid rgba(var(--accentRGB),.16);box-shadow:0 20px 50px rgba(var(--shadowRGB),.16)}
.disc{position:relative;width:46px;height:46px;flex:none}
.disc>.ring{position:absolute;inset:0;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:conic-gradient(from 0deg,var(--ink),var(--accent),var(--tint),var(--ink));animation:spinDisc 6s linear infinite}
.disc>.ring>span{width:12px;height:12px;border-radius:50%;background:var(--surface)}
.player.paused .disc>.ring,.player.paused .eq span{animation-play-state:paused}
.player-info{width:190px}
.player-top{display:flex;align-items:center;gap:8px;overflow:hidden}
.eq{display:flex;align-items:flex-end;gap:2px;height:14px}
.eq span{width:3px;height:14px;border-radius:2px;transform-origin:bottom;background:var(--accent)}
.eq span:nth-child(1){animation:eq .9s ease-in-out infinite}
.eq span:nth-child(2){animation:eq .7s ease-in-out infinite .15s}
.eq span:nth-child(3){background:var(--accent2);animation:eq 1.1s ease-in-out infinite .3s}
.eq span:nth-child(4){background:var(--ink);animation:eq .8s ease-in-out infinite .45s}
.player-status{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-title{font-weight:500;font-size:16px;color:var(--ink);margin-top:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-artist{font-size:11px;color:var(--soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-bar{height:3px;border-radius:99px;background:var(--tint);overflow:hidden;margin-top:8px}
.player-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--ink),var(--accent2))}
.player-ctrl{display:flex;align-items:center;gap:8px}
.player-ctrl button{border-radius:50%;cursor:pointer}
.btn-play{width:38px;height:38px;border:none;background:var(--ink);color:var(--onAccent);font-size:13px;display:flex;align-items:center;justify-content:center}
.btn-play svg{width:15px;height:15px}
.btn-next{width:34px;height:34px;border:1px solid rgba(var(--accentRGB),.25);background:var(--surface);color:var(--accent);display:flex;align-items:center;justify-content:center}
.btn-next svg{width:14px;height:14px;display:block}
.player-close{position:absolute;top:-5px;right:-9px;width:22px;height:22px;padding:0;border-radius:50%;border:1px solid var(--line);
  background:var(--surface);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 4px 14px rgba(var(--shadowRGB),.22);transition:color .2s,border-color .2s,transform .2s}
.player-close svg{width:13px;height:13px;display:block}
.player-close:hover{color:var(--ink);border-color:var(--accent);transform:scale(1.08)}
.player.min{display:none}
/* Círculo minimizado */
.player-mini{position:fixed;right:26px;bottom:26px;z-index:60;width:56px;height:56px;border-radius:50%;cursor:pointer;
  display:none;align-items:center;justify-content:center;color:var(--accent);
  background:rgba(var(--surfaceRGB),.9);backdrop-filter:blur(20px);border:1px solid rgba(var(--accentRGB),.18);
  box-shadow:0 20px 50px rgba(var(--shadowRGB),.18);transition:transform .25s,box-shadow .25s}
.player-mini:hover{transform:scale(1.06);box-shadow:0 26px 60px rgba(var(--shadowRGB),.24)}
.player-mini.show{display:flex}
.player-mini svg{width:24px;height:24px}

/* Reveal */
[data-reveal]{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
[data-reveal].show{opacity:1;transform:none}

/* Cursor spark layer */
.spark-layer{position:fixed;inset:0;pointer-events:none;z-index:9999}
.spark{position:fixed;background:conic-gradient(from 0deg,var(--accent),var(--accent2),var(--tint),var(--accent));
  clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:sparkOut .85s ease-out forwards}

/* ============================================================
   Rotas / multipágina
   ============================================================ */
/* Botão Voltar (header e rodapé das páginas internas) */
.btn-voltar{display:inline-flex;align-items:center;gap:9px;padding:11px 22px;border-radius:999px;
  border:1px solid rgba(var(--accentRGB),.3);background:rgba(var(--surfaceRGB),.7);color:var(--accent);
  font-size:11px;letter-spacing:.2em;text-transform:uppercase;transition:all .25s}
.btn-voltar:hover{background:var(--tint2);color:var(--accent)}
.btn-voltar .arw{font-size:14px;line-height:1}

/* Cabeçalho de página interna */
.page-head{padding:58px 44px 22px;max-width:1320px;margin:0 auto}
.page-head .lead{margin-top:16px}
/* título/subtítulo aparecem na hora (sem esperar a animação de reveal) */
.page-head[data-reveal]{opacity:1;transform:none;transition:none}
.page-back-bottom{display:flex;justify-content:center;padding:10px 44px 110px}

/* Home — cartões de rota */
.routes-sec{padding:8px 44px 120px}
.routes-head{max-width:1080px;margin:0 auto;text-align:center}
.routes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;max-width:1080px;margin:40px auto 0}
.route-card{position:relative;display:flex;flex-direction:column;gap:14px;padding:30px;border-radius:26px;background:var(--surface);
  border:1px solid rgba(var(--accentRGB),.12);box-shadow:0 20px 50px rgba(var(--shadowRGB),.08);color:var(--ink);
  transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.route-card:hover{transform:translateY(-6px);box-shadow:0 34px 70px rgba(var(--shadowRGB),.16);border-color:rgba(var(--accentRGB),.3);color:var(--ink)}
.route-ic{width:50px;height:50px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:var(--tint2);color:var(--accent)}
.route-ic svg{width:24px;height:24px}
.route-card h3{margin:0;font-family:'Playfair Display',serif;font-weight:600;font-size:25px;color:var(--ink)}
.route-card p{margin:0;font-size:14.5px;line-height:1.6;color:var(--muted)}
.route-go{margin-top:auto;padding-top:4px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);display:flex;align-items:center;gap:8px}

/* ============================================================
   Responsivo
   ============================================================ */
@media (max-width:1180px){
  .header{padding:14px 20px}
  .nav{gap:8px 16px}
  .hero{grid-template-columns:1fr;gap:44px;padding:50px 20px 40px;min-height:auto}
  .hero-stage{height:420px;min-height:420px;perspective:none}
  .slab{position:relative;top:auto;left:2%;width:100%;height:400px;min-height:400px;margin-top:0;transform:rotateY(-12deg) rotateX(5deg)}
  .polaroid{left:4%;width:170px}
  .polaroid .pimg{height:136px}
  .gal-grid{grid-template-columns:repeat(4,1fr)}
  .gal-fig{height:300px!important;border-radius:20px!important;grid-column:span 2!important}
  .roteiro-body{grid-template-columns:auto 1fr}
  .rsvp-grid{grid-template-columns:1fr;gap:38px}
  .map-grid{grid-template-columns:1fr}
  .map-frame{min-height:320px}
  .routes{grid-template-columns:repeat(2,1fr);max-width:720px}
}
@media (max-width:760px){
  .header{padding:12px 16px}
  .nav{display:none}
  .section{padding:0 20px 70px}
  .page-head{padding:40px 20px 16px}
  .routes-sec{padding:8px 20px 80px}
  .page-back-bottom{padding:10px 20px 80px}
  .hero{padding:34px 20px 30px}
  .hero h1{font-size:clamp(60px,17vw,84px)}
  .nav-toggle{display:flex}
  .hero-stage{height:300px;min-height:300px}
  .slab{height:280px;min-height:280px}
  .polaroid{width:130px;bottom:-8%}
  .polaroid .pimg{height:104px}
  .orbit{display:none}
  .hero-cta a{padding:14px 8px;font-size:10px;letter-spacing:.1em}
  .gal-grid{grid-template-columns:repeat(2,1fr);gap:12px}
  .gal-fig{height:200px!important;border-radius:16px!important;grid-column:span 1!important}
  .reel-sec{padding:0 20px 10px}
  .reel-grid{grid-template-columns:repeat(2,1fr);gap:20px 14px}
  /* Presentes: card horizontal (imagem esquerda, infos direita) p/ reduzir scroll */
  .gifts-grid{grid-template-columns:1fr;gap:14px;margin-top:28px}
  .gift{flex-direction:row;align-items:stretch}
  .gift-img{width:40%;min-width:118px;max-width:150px;height:auto;flex:none}
  .gift-body{flex:1;padding:16px 16px 18px}
  .gift-body h3{font-size:19px}
  .gift-body p{font-size:13px;line-height:1.55}
  .gift-price{font-size:20px}
  .gift-btn{margin-top:14px;padding:12px;font-size:10px;letter-spacing:.18em}
  .gift-num{font-size:14px;top:10px;left:10px}
  .gift-badge{display:none}
  .card-roteiro{padding:28px}
  .roteiro-body{grid-template-columns:1fr;gap:16px}
  .rsvp-card{padding:26px}
  .opt-grid.c3,.opt-grid.c2{grid-template-columns:1fr}
  .traje-notes{grid-template-columns:1fr}
  .reel-head{padding:0 20px}
  .info-grid{grid-template-columns:1fr;max-width:none}
  .routes{grid-template-columns:1fr;max-width:420px}
  .player{right:12px;bottom:12px}
  .player-mini{right:12px;bottom:12px}
  .player-info{width:132px}
  .footer{padding:60px 20px 70px}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reel-track{animation:none}
  /* sem animação: sem glint/faíscas */
  .hero h1::after{display:none}
}
