/* ═══════════════════════════════════════════════════════════════
   CASAMENTO BRUNO & FLÁVIA — Shared Stylesheet
   ═══════════════════════════════════════════════════════════════ */
*{margin:0;padding:0;box-sizing:border-box}
:root{
  --red:#C0392B;--red-dark:#7B241C;--red-deep:#4A1008;
  --red-light:#FADBD8;--red-pale:#FEF0EE;
  --gold:#C9A84C;--gold-light:#F9F0DC;--gold-pale:#FDFBF4;
  --ink:#1a0a0a;--paper:#FDF8F0;--muted:#8B6F6F;--muted-light:#C4A8A8;
  --white:#FFFFFF;--gray:#F5F0EB;
  --success:#27AE60;--info:#2980B9;
  --shadow: 0 2px 20px rgba(123,36,28,0.08);
  --shadow-lg: 0 8px 40px rgba(123,36,28,0.15);
}
html{scroll-behavior:smooth;font-size:16px}
body{background:var(--paper);color:var(--ink);font-family:'Nunito',sans-serif;font-weight:300;overflow-x:hidden;line-height:1.6}

/* ── Typography ── */
.serif{font-family:'Cormorant Garamond',serif}
.kanji{font-family:'Noto Serif SC',serif}
h1,h2,h3{font-family:'Cormorant Garamond',serif;font-weight:400}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.8rem;font-family:'Nunito',sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;border:none;transition:all .25s;line-height:1}
.btn-gold{background:var(--gold);color:var(--red-dark)}.btn-gold:hover{background:#E5C060;transform:translateY(-1px);box-shadow:var(--shadow)}
.btn-outline-gold{background:transparent;color:var(--gold);border:1px solid var(--gold)}.btn-outline-gold:hover{background:var(--gold);color:var(--red-dark)}
.btn-outline-red{background:transparent;color:var(--red);border:1px solid var(--red)}.btn-outline-red:hover{background:var(--red);color:#fff}
.btn-red{background:var(--red);color:#fff}.btn-red:hover{background:var(--red-dark)}
.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--muted-light)}.btn-ghost:hover{border-color:var(--red);color:var(--red)}
.btn-sm{padding:.5rem 1.2rem;font-size:.72rem}
.btn-block{display:flex;width:100%;justify-content:center}

/* ── Form elements ── */
.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.8rem}
.form-label{font-size:.72rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.form-control{width:100%;box-sizing:border-box;padding:.75rem 1rem;border:1px solid var(--red-light);background:var(--white);color:var(--ink);font-family:'Nunito',sans-serif;font-size:.95rem;font-weight:300;outline:none;transition:border-color .2s;border-radius:2px}
.form-control:focus{border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.12)}
.form-control-dark{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.2);color:#fff}
.form-control-dark::placeholder{color:rgba(255,255,255,.35)}
.form-control-dark:focus{border-color:var(--gold)}
select.form-control option{background:var(--white);color:var(--ink)}
textarea.form-control{resize:vertical;min-height:80px}

/* ── Cards ── */
.card{background:var(--white);border:1px solid var(--red-light);padding:1.5rem;position:relative}
.card-gold{border-color:rgba(201,168,76,.4)}
.card-inner-border::before{content:'';position:absolute;top:8px;left:8px;right:8px;bottom:8px;border:1px solid rgba(201,168,76,.25);pointer-events:none}

/* ── Badges ── */
.badge{display:inline-flex;align-items:center;padding:.2rem .7rem;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;border-radius:2px}
.badge-gold{background:var(--gold-light);color:var(--red-dark);border:1px solid rgba(201,168,76,.4)}
.badge-red{background:var(--red-pale);color:var(--red-dark);border:1px solid var(--red-light)}
.badge-green{background:#e8f7e8;color:#1a6b1a;border:1px solid #a8dba8}
.badge-blue{background:#e8f4fd;color:#0a5fa0;border:1px solid #b3d9f7}
.badge-gray{background:var(--gray);color:var(--muted);border:1px solid #ddd}

/* ── Divider ── */
.divider-gold{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:1.5rem auto}
.ornament{color:var(--gold);margin:0 .4rem;font-size:.9em}

/* ══════════════════════════════════════════════════
   SCROLL-DRIVEN ANIMATION SYSTEM
   ══════════════════════════════════════════════════ */

/* ── Easing tokens ── */
:root {
  --ease-luxury: cubic-bezier(0.25, 0.46, 0.45, 0.94);
  --ease-spring: cubic-bezier(0.34, 1.30, 0.64, 1);
  --ease-silk:   cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast:  0.6s;
  --dur-base:  0.85s;
  --dur-slow:  1.2s;
}

/* ── Base state: all animated elements start hidden ── */
[data-anim] {
  opacity: 0;
  will-change: opacity, transform;
}
[data-anim].in-view {
  opacity: 1;
}

/* ── fade-up ── */
[data-anim="fade-up"]            { transform: translateY(30px); }
[data-anim="fade-up"].in-view    { transform: translateY(0); transition: opacity var(--dur-base) var(--ease-luxury), transform var(--dur-base) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }

/* ── fade-down ── */
[data-anim="fade-down"]          { transform: translateY(-24px); }
[data-anim="fade-down"].in-view  { transform: translateY(0); transition: opacity var(--dur-base) var(--ease-luxury), transform var(--dur-base) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }

/* ── slide-left (entra da esquerda) ── */
[data-anim="slide-left"]         { transform: translateX(-40px); }
[data-anim="slide-left"].in-view { transform: translateX(0); transition: opacity var(--dur-base) var(--ease-silk), transform var(--dur-base) var(--ease-silk); transition-delay: var(--anim-delay, 0s); }

/* ── slide-right (entra da direita) ── */
[data-anim="slide-right"]          { transform: translateX(40px); }
[data-anim="slide-right"].in-view  { transform: translateX(0); transition: opacity var(--dur-base) var(--ease-silk), transform var(--dur-base) var(--ease-silk); transition-delay: var(--anim-delay, 0s); }

/* ── scale-in ── */
[data-anim="scale-in"]           { transform: scale(0.92); }
[data-anim="scale-in"].in-view   { transform: scale(1); transition: opacity var(--dur-slow) var(--ease-luxury), transform var(--dur-slow) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }

/* ── blur-in ── */
[data-anim="blur-in"]            { filter: blur(8px); transform: translateY(12px); }
[data-anim="blur-in"].in-view    { filter: blur(0); transform: translateY(0); transition: opacity var(--dur-slow) var(--ease-luxury), filter var(--dur-slow) var(--ease-luxury), transform var(--dur-slow) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }

/* ── flip-y (subtle 3D flip) ── */
[data-anim="flip-y"]             { transform: perspective(600px) rotateY(5deg) translateY(15px); }
[data-anim="flip-y"].in-view     { transform: perspective(600px) rotateY(0deg) translateY(0); transition: opacity var(--dur-slow) var(--ease-luxury), transform var(--dur-slow) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }

/* ── bounce-in ── */
[data-anim="bounce-in"]          { transform: scale(0.88) translateY(10px); }
[data-anim="bounce-in"].in-view  { transform: scale(1) translateY(0); transition: opacity var(--dur-fast) var(--ease-spring), transform var(--dur-fast) var(--ease-spring); transition-delay: var(--anim-delay, 0s); }

/* ── glow-in (for kanjis and gold titles) ── */
[data-anim="glow-in"]            { transform: translateY(-8px); }
[data-anim="glow-in"].in-view    { transform: translateY(0); transition: opacity var(--dur-base) var(--ease-luxury), transform var(--dur-base) var(--ease-luxury), text-shadow var(--dur-slow) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }
[data-anim="glow-in"].in-view .sec-kanji,
[data-anim="glow-in"] .sec-kanji { transition: text-shadow 1.5s var(--ease-luxury); }
.sec-kanji { transition: text-shadow 1.5s ease; }
[data-anim="glow-in"].in-view ~ * .sec-kanji { text-shadow: 0 0 20px rgba(201,168,76,.5); }

/* ── clip-reveal (for astrology box) ── */
[data-anim="clip-reveal"]        { clip-path: circle(0% at 50% 50%); }
[data-anim="clip-reveal"].in-view{ clip-path: circle(75% at 50% 50%); transition: clip-path var(--dur-slow) var(--ease-luxury), opacity var(--dur-slow) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }

/* ── fade-in (basic, no transform) ── */
[data-anim="fade-in"]            {}
[data-anim="fade-in"].in-view    { transition: opacity var(--dur-base) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }

/* ── Legacy .reveal (backward compat) ── */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity .65s ease, transform .65s ease; }
.reveal.visible { opacity: 1; transform: none; }

/* ══════════════════════════════════════════════════
   KANJI GLOW — applied when header enters view
   ══════════════════════════════════════════════════ */
.sec-header.in-view .sec-kanji {
  text-shadow: 0 0 24px rgba(201,168,76,.45), 0 0 8px rgba(201,168,76,.2);
  transition: text-shadow 1.4s var(--ease-luxury) 0.3s;
}

/* ══════════════════════════════════════════════════
   DIVIDER REVEAL
   ══════════════════════════════════════════════════ */
[data-anim="divider-reveal"]            { transform: scaleX(0); }
[data-anim="divider-reveal"].in-view    { transform: scaleX(1); transition: opacity var(--dur-base) var(--ease-luxury), transform var(--dur-base) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); transform-origin: center; }

/* ══════════════════════════════════════════════════
   PARALLAX HERO FADE-OUT
   ══════════════════════════════════════════════════ */
.hero-parallax-inner { will-change: transform; }

/* ══════════════════════════════════════════════════
   ASTROLOGY GLOW BORDER PULSE
   ══════════════════════════════════════════════════ */
.astrology-box.in-view {
  animation: astroBorderPulse 3s ease-in-out infinite 1.2s;
}
@keyframes astroBorderPulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,168,76,0); }
  50%       { box-shadow: 0 0 20px 4px rgba(201,168,76,0.18), inset 0 0 30px rgba(201,168,76,0.06); }
}

/* ══════════════════════════════════════════════════
   ASTROLOGY SYMBOL ROTATION
   ══════════════════════════════════════════════════ */
.astrology-symbol-anim {
  display: inline-block;
  transform: perspective(400px) rotateY(15deg);
  opacity: 0;
  transition: transform 1s var(--ease-luxury) 0.5s, opacity 1s var(--ease-luxury) 0.5s;
}
.astrology-box.in-view .astrology-symbol-anim {
  transform: perspective(400px) rotateY(0deg);
  opacity: 1;
}

/* ══════════════════════════════════════════════════
   MURAL CARDS — Hover lift
   ══════════════════════════════════════════════════ */
.mural-card {
  transition: transform 0.3s var(--ease-luxury), box-shadow 0.3s var(--ease-luxury);
}
.mural-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(123,36,28,0.12);
}

/* ══════════════════════════════════════════════════
   PIX SHIMMER EFFECT
   ══════════════════════════════════════════════════ */
.pix-key {
  position: relative;
  overflow: hidden;
}
.pix-key::after {
  content: '';
  position: absolute;
  top: 0; left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(201,168,76,.35), transparent);
  animation: shimmer 2.8s ease-in-out infinite 1s;
}
@keyframes shimmer {
  0%   { left: -60%; }
  100% { left: 140%; }
}

/* ══════════════════════════════════════════════════
   PETALS — Cherry Blossom Particles
   ══════════════════════════════════════════════════ */
.petal {
  position: fixed;
  width: 11px;
  height: 11px;
  background: radial-gradient(circle at 35% 35%, #FFD4DE 0%, #FFB7C5 55%, #FF8FAB 100%);
  border-radius: 80% 0 55% 50% / 55% 0 80% 50%;
  opacity: 0;
  pointer-events: none;
  z-index: 98;
  filter: blur(0.4px);
  will-change: transform, opacity;
  animation: petalFall var(--petal-dur, 8s) var(--petal-delay, 0s) linear forwards;
}
@keyframes petalFall {
  0%   { opacity: 0;   transform: translateY(0) translateX(0)     rotate(0deg);   }
  8%   { opacity: 0.55; }
  85%  { opacity: 0.4; }
  100% { opacity: 0;   transform: translateY(var(--petal-drop, 110vh)) translateX(var(--petal-drift, 40px)) rotate(var(--petal-rot, 360deg)); }
}

/* ══════════════════════════════════════════════════
   SOUND TOGGLE BUTTON
   ══════════════════════════════════════════════════ */
.sound-toggle {
  background: transparent;
  border: 1px solid rgba(201,168,76,.35);
  color: rgba(255,255,255,.55);
  font-size: .82rem;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all .25s;
  border-radius: 2px;
  line-height: 1;
  padding: 0;
  flex-shrink: 0;
}
.sound-toggle:hover {
  border-color: var(--gold);
  color: var(--gold);
  background: rgba(201,168,76,.08);
}
.sound-toggle.active {
  border-color: var(--gold);
  color: var(--gold);
}

/* ══════════════════════════════════════════════════
   REDUCED MOTION — Accessibility
   ══════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  [data-anim] { opacity: 1 !important; transform: none !important; filter: none !important; clip-path: none !important; }
  .petal { display: none !important; }
  .astrology-box.in-view { animation: none !important; }
}

/* ══════════════════════════════════════════════════
   MOBILE ANIMATION ADJUSTMENTS
   ══════════════════════════════════════════════════ */
@media (max-width: 640px) {
  [data-anim="slide-left"]         { transform: translateX(-20px); }
  [data-anim="slide-right"]        { transform: translateX(20px); }
  [data-anim="fade-up"]            { transform: translateY(18px); }
  [data-anim="clip-reveal"]        { clip-path: none; opacity: 0; }
  [data-anim="clip-reveal"].in-view{ clip-path: none; transition: opacity var(--dur-base) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }
  [data-anim="flip-y"]             { transform: translateY(15px); }
  [data-anim="flip-y"].in-view     { transform: translateY(0); transition: opacity var(--dur-base) var(--ease-luxury), transform var(--dur-base) var(--ease-luxury); transition-delay: var(--anim-delay, 0s); }
}

/* ── Toast ── */
#toast{position:fixed;bottom:2rem;right:2rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem}
.toast-item{padding:1rem 1.5rem;background:var(--red-dark);color:#fff;font-size:.9rem;box-shadow:var(--shadow-lg);animation:slideIn .3s ease;min-width:260px}
.toast-item.success{background:var(--success)}
.toast-item.error{background:#c0392b}
@keyframes slideIn{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}

/* ── Nav ── */
.main-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(74,16,8,.96);backdrop-filter:blur(10px);padding:.65rem 2rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(201,168,76,.2)}
.nav-brand{font-family:'Cormorant Garamond',serif;font-size:1.05rem;font-style:italic;color:var(--gold);letter-spacing:.08em;text-decoration:none}
.nav-links{display:flex;gap:1.5rem;list-style:none}
.nav-links a{color:rgba(255,255,255,.65);text-decoration:none;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;transition:color .2s;cursor:pointer}
.nav-links a:hover,.nav-links a.active{color:var(--gold)}
@media(max-width:640px){.nav-links{display:none}}

/* ── Section headers ── */
.sec-header{margin-bottom:2.5rem}
.sec-kanji{font-family:'Noto Serif SC',serif;font-size:1.1rem;color:var(--gold);letter-spacing:.3em;display:block;margin-bottom:.25rem}
.sec-title{font-family:'Cormorant Garamond',serif;font-size:clamp(1.8rem,3.5vw,2.4rem);font-weight:400;color:var(--red-dark)}
.sec-title-light{color:#fff}
.sec-lead{font-size:.95rem;color:var(--muted);line-height:1.9;margin-top:.8rem}

/* ── Grids ── */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}
@media(max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}

/* ── Checklist ── */
.checklist{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.checklist li{display:flex;align-items:flex-start;gap:.8rem;padding:.8rem 1rem;background:var(--white);border:1px solid var(--red-light);cursor:pointer;transition:background .2s;font-size:.9rem;line-height:1.5}
.checklist li:hover{background:var(--red-pale)}
.checklist li.done{background:var(--gold-pale);border-color:rgba(201,168,76,.4)}
.checklist li.done .cl-text{text-decoration:line-through;color:var(--muted)}
.cl-check{width:18px;height:18px;border:1.5px solid var(--red-light);background:var(--white);flex-shrink:0;margin-top:.1rem;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all .2s}
.done .cl-check{background:var(--gold);border-color:var(--gold);color:var(--red-dark)}
.cl-category{font-size:.65rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:.1rem}

/* ── Admin specific ── */
.admin-layout{display:block;min-height:100vh}
.admin-sidebar{background:var(--red-deep);padding:1.5rem 0;position:fixed;top:0;left:0;bottom:0;width:220px;overflow-y:auto;z-index:50}
.admin-logo{padding:1rem 1.5rem 2rem;font-family:'Cormorant Garamond',serif;font-size:1.1rem;font-style:italic;color:var(--gold);border-bottom:1px solid rgba(201,168,76,.2);margin-bottom:1rem}
.admin-logo span{display:block;font-family:'Nunito',sans-serif;font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.2rem;font-style:normal}
.sidebar-nav{list-style:none}
.sidebar-nav li a{display:flex;align-items:center;gap:.75rem;padding:.75rem 1.5rem;color:rgba(255,255,255,.6);text-decoration:none;font-size:.82rem;letter-spacing:.08em;transition:all .2s;cursor:pointer}
.sidebar-nav li a:hover,.sidebar-nav li a.active{background:rgba(201,168,76,.15);color:var(--gold);border-left:2px solid var(--gold)}
.sidebar-nav li a .nav-icon{font-size:1rem;width:20px;text-align:center}
.admin-main{margin-left:220px;padding:2rem;min-height:100vh;background:var(--gray)}
.admin-header{background:var(--white);padding:1.25rem 2rem;margin:-2rem -2rem 2rem;border-bottom:1px solid var(--red-light);display:flex;align-items:center;justify-content:space-between}
.admin-header h1{font-family:'Cormorant Garamond',serif;font-size:1.5rem;color:var(--red-dark)}
.admin-panel{display:none}.admin-panel.active{display:block}

/* Stat cards */
.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-bottom:2rem}
.stat-card{background:var(--white);padding:1.25rem 1.5rem;border:1px solid var(--red-light);border-top:3px solid var(--gold)}
.stat-num{font-family:'Cormorant Garamond',serif;font-size:2.2rem;font-weight:400;color:var(--red-dark);line-height:1}
.stat-label{font-size:.72rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.stat-sub{font-size:.78rem;color:var(--muted-light);margin-top:.2rem}

/* Table */
.data-table{width:100%;border-collapse:collapse;font-size:.85rem;background:var(--white)}
.data-table th{background:var(--red-dark);color:#fff;padding:.7rem 1rem;text-align:left;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.data-table td{padding:.65rem 1rem;border-bottom:1px solid var(--red-light);vertical-align:middle}
.data-table tr:hover td{background:var(--red-pale)}
.data-table tr:last-child td{border-bottom:none}
.table-wrap{overflow-x:auto;border:1px solid var(--red-light)}

/* Photo grid admin */
.photo-upload-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}
.photo-slot{aspect-ratio:1;border:2px dashed var(--red-light);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;position:relative;overflow:hidden;background:var(--white)}
.photo-slot:hover{border-color:var(--gold);background:var(--gold-light)}
.photo-slot img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.photo-slot .photo-overlay{position:absolute;inset:0;background:rgba(123,36,28,.6);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}
.photo-slot:hover .photo-overlay{opacity:1}
.photo-add-icon{font-size:1.8rem;color:var(--muted-light)}
.photo-add-text{font-size:.72rem;color:var(--muted);margin-top:.4rem;letter-spacing:.05em}

/* TV Mode */
.tv-mode{background:#0d0305;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;position:relative}
.tv-photo{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1.5s ease}
.tv-photo.active{opacity:1}
.tv-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,3,5,.8) 0%,transparent 50%,rgba(13,3,5,.3) 100%)}
.tv-content{position:relative;z-index:10;text-align:center;padding:3rem;width:100%;max-width:900px}
.tv-message-card{background:rgba(253,248,240,.06);border:1px solid rgba(201,168,76,.3);backdrop-filter:blur(20px);padding:3rem;max-width:700px;margin:0 auto;animation:fadeSlide 1s ease}
@keyframes fadeSlide{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
.tv-msg-text{font-family:'Cormorant Garamond',serif;font-size:clamp(1.4rem,3vw,2rem);font-style:italic;color:#fff;line-height:1.7;margin-bottom:1rem}
.tv-msg-author{font-size:.9rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.tv-logo{font-family:'Noto Serif SC',serif;font-size:3rem;color:var(--gold);margin-bottom:1rem;text-shadow:0 0 40px rgba(201,168,76,.4)}
.tv-names{font-family:'Cormorant Garamond',serif;font-size:2rem;font-style:italic;color:#fff;letter-spacing:.15em}
.tv-date{font-size:.8rem;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-top:.5rem}
.tv-nav{position:fixed;bottom:2rem;right:2rem;display:flex;gap:.5rem;z-index:20}
.tv-nav button{padding:.5rem 1rem;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;cursor:pointer;font-size:.8rem;backdrop-filter:blur(10px);transition:all .2s}
.tv-nav button:hover{background:rgba(201,168,76,.3);border-color:var(--gold)}
.tv-ticker{position:fixed;bottom:0;left:0;right:0;background:rgba(123,36,28,.9);padding:.6rem 2rem;z-index:20;overflow:hidden;height:2.5rem}
.tv-ticker-inner{display:flex;gap:4rem;white-space:nowrap;animation:ticker 30s linear infinite;font-size:.85rem;color:rgba(255,255,255,.7);align-items:center}
.tv-ticker-inner span{color:var(--gold);font-weight:600}
@keyframes ticker{from{transform:translateX(100vw)}to{transform:translateX(-100%)}}

/* Mural cards public */
.mural-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-bottom:1.5rem}
.mural-card{padding:1.2rem;font-size:.9rem;font-family:'Cormorant Garamond',serif;font-style:italic;line-height:1.7;position:relative;border:1px solid rgba(201,168,76,.3)}
.mural-card .mc-author{display:block;margin-top:.8rem;font-family:'Nunito',sans-serif;font-style:normal;font-size:.72rem;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.mural-card .mc-audio{display:inline-flex;align-items:center;gap:.4rem;margin-top:.6rem;font-size:.75rem;font-family:'Nunito',sans-serif;font-style:normal;color:var(--red);cursor:pointer;letter-spacing:.05em}
.mural-card .mc-audio:hover{color:var(--red-dark)}

/* Photo carousel (public) */
.photos-hero {
  background: var(--ink);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 85vh;
  max-height: 900px;
  min-height: 550px;
}
@media (max-width: 768px) {
  .photos-hero {
    height: 88vh;
    min-height: 500px;
  }
}
@media (max-width: 480px) {
  .photos-hero {
    height: 90svh;
  }
}
.carousel {
  position: relative;
  width: 100%;
  height: 100%;
  background: var(--ink);
}
.carousel-track {
  position: absolute;
  inset: 0;
}
.carousel-slide, .fade-slide {
  position: absolute;
  inset: 0;
  overflow: hidden;
  opacity: 0;
  transition: opacity 1.5s ease-in-out;
  z-index: 1;
}
.carousel-slide.is-active, .fade-slide.is-active {
  opacity: 1;
  z-index: 2;
}

.slide-img-wrap {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  will-change: transform;
}

/* Foreground image: fully presented and centered */
.carousel-slide .slide-img, .fade-slide .slide-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  display: block;
  z-index: 1;
  transform-origin: center center;
}

/* Alternating Ken Burns panning + zoom effects on foreground image */
.fade-slide:nth-child(4n+1).is-active .slide-img {
  animation: slideZoomInRight 9s ease-in-out forwards;
}
.fade-slide:nth-child(4n+2).is-active .slide-img {
  animation: slideZoomOutLeft 9s ease-in-out forwards;
}
.fade-slide:nth-child(4n+3).is-active .slide-img {
  animation: slideZoomInDown 9s ease-in-out forwards;
}
.fade-slide:nth-child(4n+4).is-active .slide-img {
  animation: slideZoomOutUp 9s ease-in-out forwards;
}

@keyframes slideZoomInRight {
  0%   { transform: scale(1.0) translate(-3%, 0); }
  100% { transform: scale(1.15) translate(3%, 0); }
}
@keyframes slideZoomOutLeft {
  0%   { transform: scale(1.15) translate(3%, 0); }
  100% { transform: scale(1.0) translate(-3%, 0); }
}
@keyframes slideZoomInDown {
  0%   { transform: scale(1.0) translate(0, -3%); }
  100% { transform: scale(1.15) translate(0, 3%); }
}
@keyframes slideZoomOutUp {
  0%   { transform: scale(1.15) translate(0, 3%); }
  100% { transform: scale(1.0) translate(0, -3%); }
}

/* Blurred background fills the rest of the frame */
.carousel-slide .slide-bg, .fade-slide .slide-bg {
  display: block;
  position: absolute;
  inset: -10px;
  width: calc(100% + 20px);
  height: calc(100% + 20px);
  object-fit: cover;
  object-position: center;
  filter: blur(24px) brightness(0.38) saturate(1.2);
  z-index: 0;
  transform-origin: center center;
}
.fade-slide.is-active .slide-bg {
  animation: bgParallaxMotion 10s ease-out forwards;
}
@keyframes bgParallaxMotion {
  0%   { transform: scale(1.15) rotate(0deg); }
  100% { transform: scale(1.25) rotate(1.5deg); }
}

/* Dark gradient overlay for caption readability */
.fade-slide::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(10, 2, 2, 0.72) 0%,
    rgba(10, 2, 2, 0.12) 40%,
    transparent 70%
  );
  z-index: 2;
  pointer-events: none;
}

.carousel-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(74, 16, 8, 0.65);
  backdrop-filter: blur(6px);
  color: #fff;
  border: 1px solid rgba(201,168,76,.3);
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 1.4rem;
  z-index: 5;
  transition: background .2s, border-color .2s;
  border-radius: 50%;
}
.carousel-btn:hover { background: var(--red-dark); border-color: var(--gold); }
.carousel-prev { left: 1rem; }
.carousel-next { right: 1rem; }


/* Login overlay */
.login-overlay{position:fixed;inset:0;background:var(--red-deep);z-index:1000;display:flex;align-items:center;justify-content:center}
.login-box{background:rgba(255,255,255,.05);border:1px solid rgba(201,168,76,.3);padding:3rem;width:360px;text-align:center;backdrop-filter:blur(10px)}
.login-kanji{font-family:'Noto Serif SC',serif;font-size:3rem;color:var(--gold);margin-bottom:.5rem}
.login-title{font-family:'Cormorant Garamond',serif;font-size:1.6rem;color:#fff;margin-bottom:.3rem}
.login-sub{font-size:.8rem;color:rgba(255,255,255,.4);letter-spacing:.2em;text-transform:uppercase;margin-bottom:2rem}
.login-error{color:#ff6b6b;font-size:.82rem;margin-top:.5rem;display:none}

/* Mobile Menu Toggle */
.mobile-menu-btn{display:none;background:transparent;border:none;font-size:1.6rem;color:var(--red-dark);cursor:pointer;padding:0;line-height:1}

/* Responsive */
@media(max-width:900px){
  .admin-layout{display:block !important; position: relative;}
  .admin-sidebar{
    transform:translateX(-100%);
    transition:transform .3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow: 2px 0 15px rgba(0,0,0,0.2);
    z-index: 9999;
  }
  .admin-sidebar.open{transform:translateX(0)}
  .admin-main{margin-left:0;padding:1.5rem}
  .admin-header{margin:-1.5rem -1.5rem 1.5rem;padding:1rem 1.5rem}
  .mobile-menu-btn{display:block; z-index: 10000; position: relative;}
}
@media(max-width:640px){
  .admin-main{padding:1rem}
  .admin-header{margin:-1rem -1rem 1rem;padding:1rem;flex-direction:row;justify-content:space-between;flex-wrap:wrap}
  .admin-header h1{font-size:1.3rem}
  .stat-cards{grid-template-columns:1fr;gap:.8rem}
  .form-row{grid-template-columns:1fr}
  .action-row{flex-direction:column;align-items:stretch}
  .filter-bar{flex-direction:column;align-items:stretch}
}

/* ── Seção de Trajes ── */
.attire-container {
  max-width: 960px;
  margin: 0 auto;
}
.attire-card {
  background: var(--white);
  border: 1px solid var(--red-light);
  padding: 2.5rem 2rem;
  position: relative;
  border-radius: 8px;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  height: auto;
  color: var(--ink);
  text-align: center;
}
.attire-card-icon {
  font-size: 2.2rem;
  display: block;
  margin-bottom: 1rem;
}
.attire-intro {
  font-family: 'Cormorant Garamond', serif;
  font-size: 1rem;
  font-style: italic;
  line-height: 1.7;
  margin-bottom: 1.5rem;
  color: var(--ink);
}
.attire-rules-box {
  border-top: 1px solid rgba(201, 168, 76, 0.3);
  border-bottom: 1px solid rgba(201, 168, 76, 0.3);
  padding: 1.2rem 0;
  margin: 1.2rem 0;
  text-align: left;
}
.attire-rules-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}
.attire-rule-item {
  display: flex;
  gap: 0.8rem;
  line-height: 1.6;
  font-family: 'Nunito', sans-serif;
  font-weight: 300;
  font-size: 0.88rem;
  color: var(--red-dark);
}
.attire-rule-item strong {
  font-family: 'Cormorant Garamond', serif;
  font-size: 0.92rem;
  font-weight: 600;
}
.attire-footer {
  font-family: 'Nunito', sans-serif;
  font-size: 0.82rem;
  font-weight: 300;
  font-style: italic;
  color: var(--muted);
  margin: 0;
}



