@import url('https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Lora:ital,wght@0,400;1,400&family=Josefin+Sans:wght@300;400;600&family=Playfair+Display:ital,wght@0,700;1,400&display=swap');

:root {
  --blush: #f2c4c4;
  --rose: #c97080;
  --deep-rose: #a84f5f;
  --dark: #110f10;
  --walnut: #231a1a;
  --walnut2: #2c2020;
  --brass: #b8860b;
  --gold: #d4a843;
  --cream: #fdf4ec;
  --muted: #9a7878;
  --neon: #ff6b9d;
  --border: rgba(201,112,128,0.18);
  --gold-border: rgba(212,168,67,0.22);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  background: var(--dark);
  color: var(--cream);
  font-family: 'Lora', Georgia, serif;
  min-height: 100vh;
  overflow-x: hidden;
}

/* GRAIN */
body::after {
  content: '';
  position: fixed; inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events: none; z-index: 9999; opacity: 0.5;
}

/* ── NAV ── */
nav {
  position: sticky; top: 0; z-index: 100;
  background: rgba(17,15,16,0.94);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--border);
  padding: 0 2.5rem;
  display: flex; align-items: center; justify-content: space-between;
  height: 64px;
}
.nav-logo { font-family:'DM Serif Display',serif; font-size:1.3rem; color:var(--cream); text-decoration:none; }
.nav-logo em { color:var(--rose); font-style:italic; }
.nav-links { display:flex; gap:2.2rem; list-style:none; }
.nav-links a {
  font-family:'Josefin Sans',sans-serif; font-size:.66rem;
  letter-spacing:.22em; text-transform:uppercase; text-decoration:none;
  color:var(--muted); transition:color .25s;
}
.nav-links a:hover, .nav-links a.active { color:var(--blush); }
.nav-rabbit { font-size:1rem; animation:bob 3s ease-in-out infinite; }
@keyframes bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }

.hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.hamburger span { display:block; width:22px; height:1.5px; background:var(--cream); transition:all .3s; }
.mobile-menu { display:none; position:fixed; top:64px; left:0; right:0; background:rgba(17,15,16,.97); backdrop-filter:blur(12px); border-bottom:1px solid var(--border); padding:1.5rem 2rem; z-index:99; }
.mobile-menu.open { display:block; }
.mobile-menu ul { list-style:none; display:flex; flex-direction:column; gap:1.2rem; }
.mobile-menu a { font-family:'Josefin Sans',sans-serif; font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; text-decoration:none; color:var(--muted); transition:color .25s; }
.mobile-menu a:hover { color:var(--blush); }

/* ── UTILITIES ── */
.section { max-width:1100px; margin:0 auto; padding:5rem 2rem; }
.label { font-family:'Josefin Sans',sans-serif; font-size:.64rem; letter-spacing:.35em; text-transform:uppercase; color:var(--rose); margin-bottom:.8rem; display:block; }
.title { font-family:'DM Serif Display',serif; font-size:clamp(2rem,4vw,3rem); line-height:1.08; color:var(--cream); }
.title em { color:var(--rose); font-style:italic; }
.subtitle { font-family:'Lora',serif; font-style:italic; font-size:1rem; color:var(--muted); margin-top:.6rem; line-height:1.7; }
.page-hero { padding:5rem 2rem 4rem; text-align:center; background:radial-gradient(ellipse 80% 50% at 50% 0%,rgba(169,79,95,.15),transparent 65%); border-bottom:1px solid var(--border); }

.divider { display:flex; align-items:center; gap:1rem; margin:2rem 0; }
.divider::before,.divider::after { content:''; flex:1; height:1px; background:linear-gradient(to right,transparent,var(--brass),transparent); }
.divider span { color:var(--gold); font-size:.9rem; }

.card { background:var(--walnut); border:1px solid var(--border); border-radius:3px; overflow:hidden; transition:transform .3s,border-color .3s,box-shadow .3s; }
.card:hover { transform:translateY(-4px); border-color:rgba(201,112,128,.4); box-shadow:0 12px 40px rgba(0,0,0,.4); }

.btn { display:inline-block; font-family:'Josefin Sans',sans-serif; font-size:.66rem; letter-spacing:.22em; text-transform:uppercase; padding:.8rem 2rem; border-radius:2px; cursor:pointer; transition:all .3s; text-decoration:none; border:none; }
.btn-primary { background:var(--rose); color:var(--dark); }
.btn-primary:hover { background:var(--deep-rose); transform:translateY(-2px); box-shadow:0 8px 24px rgba(168,79,95,.35); }
.btn-ghost { background:transparent; color:var(--cream); border:1px solid var(--border); }
.btn-ghost:hover { border-color:var(--blush); color:var(--blush); transform:translateY(-2px); }

.badge { display:inline-block; font-family:'Josefin Sans',sans-serif; font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; padding:.28rem .75rem; border-radius:2px; background:rgba(201,112,128,.1); border:1px solid rgba(201,112,128,.22); color:var(--rose); }
.badge-gold { background:rgba(212,168,67,.1); border-color:rgba(212,168,67,.22); color:var(--gold); }

.reveal { opacity:0; transform:translateY(22px); transition:opacity .7s ease,transform .7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }

.neon { color:var(--neon); text-shadow:0 0 8px var(--neon),0 0 24px rgba(255,107,157,.4); animation:flicker 6s infinite; }
@keyframes flicker { 0%,19%,21%,23%,25%,54%,56%,100%{opacity:1} 20%,24%,55%{opacity:.5} }

.marquee-wrap { background:var(--walnut2); overflow:hidden; border-top:1px solid var(--gold-border); border-bottom:1px solid var(--gold-border); padding:.85rem 0; }
.marquee-inner { display:flex; gap:4rem; width:max-content; animation:mscroll 30s linear infinite; }
.marquee-inner span { font-family:'Josefin Sans',sans-serif; font-size:.63rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); white-space:nowrap; flex-shrink:0; }
@keyframes mscroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* ── FOOTER ── */
footer { background:var(--walnut); border-top:1px solid var(--gold-border); padding:3rem 2rem; text-align:center; margin-top:4rem; }
.footer-logo { font-family:'DM Serif Display',serif; font-size:1.5rem; color:var(--cream); margin-bottom:.4rem; }
.footer-logo em { color:var(--rose); font-style:italic; }
.footer-sub { font-family:'Lora',serif; font-style:italic; font-size:.85rem; color:var(--muted); margin-bottom:1.5rem; }
.footer-nav { display:flex; gap:2rem; justify-content:center; flex-wrap:wrap; list-style:none; margin-bottom:1.5rem; }
.footer-nav a { font-family:'Josefin Sans',sans-serif; font-size:.62rem; letter-spacing:.22em; text-transform:uppercase; text-decoration:none; color:var(--muted); transition:color .25s; }
.footer-nav a:hover { color:var(--blush); }
.footer-copy { font-size:.75rem; color:rgba(154,120,120,.4); }

@media(max-width:768px) {
  .nav-links { display:none; }
  .hamburger { display:flex; }
  .section { padding:3rem 1.2rem; }
  .page-hero { padding:3rem 1.2rem 2.5rem; }
}
