/* Premium visual pass — Social Media Partner */
:root{
  --royal-950:#1b0924;
  --royal-900:#260d31;
  --royal-800:#351144;
  --royal-700:#552064;
  --royal-600:#742b86;
  --royal-500:#973aa7;
  --amethyst:#b85dca;
  --champagne:#f8d98f;
  --champagne-2:#ffecb8;
  --ivory:#fffaf7;
  --paper:#fffdfb;
  --ink:#31163b;
  --muted:#7a667d;
  --line:rgba(78,35,90,.14);
  --shadow-lg:0 34px 90px rgba(24,6,31,.35);
  --shadow-md:0 18px 50px rgba(37,13,47,.18);
  --display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --body:"Manrope",Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
}

body{font-family:var(--body);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
.invite-page{background-color:var(--royal-950);background-image:url('../img/castle-bg.webp');background-position:center;background-size:cover;background-attachment:fixed;isolation:isolate}
.invite-page::before{z-index:-2;background:linear-gradient(120deg,rgba(24,5,31,.82),rgba(52,13,64,.66) 45%,rgba(29,8,37,.76)),radial-gradient(circle at 15% 15%,rgba(248,217,143,.16),transparent 30%),radial-gradient(circle at 85% 80%,rgba(182,79,198,.18),transparent 34%);backdrop-filter:blur(2px)}
.invite-page::after{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;opacity:.18;background-image:radial-gradient(circle at 20% 30%,#fff 0 1px,transparent 1.4px),radial-gradient(circle at 70% 20%,#f8d98f 0 1.2px,transparent 1.6px),radial-gradient(circle at 85% 65%,#fff 0 1px,transparent 1.5px);background-size:170px 170px,230px 230px,310px 310px}

.invite-shell{max-width:1720px;gap:32px;padding:32px;grid-template-columns:minmax(0,1.48fr) minmax(390px,.68fr);align-items:center}
.hero{min-height:810px;border-radius:38px;border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-lg);background:rgba(25,7,32,.88);grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.035);pointer-events:none;z-index:8}
.hero-photo-wrap{background:#351345}
.hero-photo{object-position:49% center;filter:saturate(1.03) contrast(1.01)}
/* Desktop: keep the approved girls photo clean. No dark gradient painted over faces. */
.hero-photo-shade{background:linear-gradient(0deg,rgba(18,5,24,.12),transparent 30%);box-shadow:inset -18px 0 35px rgba(18,5,24,.10)}
.hero-copy{padding:58px 48px;background:radial-gradient(circle at 50% 14%,rgba(248,217,143,.11),transparent 28%),linear-gradient(165deg,rgba(62,17,75,.98),rgba(31,8,39,.99) 72%);text-align:center;align-items:center;text-shadow:none}
.hero-copy::before{content:"";position:absolute;inset:18px;border:1px solid rgba(248,217,143,.12);border-radius:28px;pointer-events:none}
.eyebrow,.mini-kicker{font-family:var(--body);font-size:11px;letter-spacing:.25em;color:var(--champagne);font-weight:800}
.hero h1{font-family:var(--display);font-size:clamp(54px,4vw,76px);line-height:.83;letter-spacing:-.025em;margin:17px 0 30px;font-weight:600;max-width:460px}
.hero h1 span{color:var(--champagne);font-weight:700}
.hero h1 em{display:inline-block;margin-top:14px;font-family:var(--display);font-size:.46em;letter-spacing:.015em;color:#fff;font-weight:500}
.birthday-badges{width:min(100%,390px);justify-content:center;gap:10px;margin-bottom:27px}
.birthday-badge{position:relative;overflow:hidden;flex:1;min-width:0;padding:12px 12px 11px;border-color:rgba(248,217,143,.42);background:linear-gradient(160deg,rgba(151,58,167,.88),rgba(84,29,99,.92));border-radius:16px;box-shadow:0 12px 30px rgba(11,3,15,.2)}
.birthday-badge::before{content:"";position:absolute;inset:-100% auto -100% -45%;width:28%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.18),transparent);animation:badge-shine 7s ease-in-out infinite}
.birthday-badge small{font-family:var(--display);font-size:18px;font-weight:600}
.birthday-badge strong{font-size:19px;color:var(--champagne-2)}
.amp{font-family:var(--display);font-size:31px;color:var(--champagne)}
.event-details{width:min(100%,390px);gap:12px;text-align:left}
.event-details>div{padding:2px 0}
.event-details .ico{width:40px;height:40px;flex:0 0 40px;border-color:rgba(248,217,143,.35);background:rgba(255,255,255,.045);color:var(--champagne)}
.event-details .ico svg{width:18px;height:18px;stroke-width:1.7}
.event-details b{font-family:var(--display);font-size:22px;font-weight:650;letter-spacing:.005em}
.event-details small{font-size:10px;letter-spacing:.16em}
.countdown{justify-content:center;margin-top:29px}
.countdown span{min-width:75px;border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.09),rgba(255,255,255,.045));border-color:rgba(255,255,255,.13);box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}
.countdown b{font-size:23px;font-variant-numeric:tabular-nums}
.hero-brand{left:22px;bottom:20px;background:rgba(28,8,35,.62);border-color:rgba(255,255,255,.14);font-size:11px;padding:8px 12px;box-shadow:0 8px 28px rgba(0,0,0,.16)}

.rsvp-card{border-radius:34px;padding:44px 40px 36px;background:linear-gradient(180deg,rgba(255,253,251,.99),rgba(255,249,246,.98));box-shadow:var(--shadow-lg);border-color:rgba(255,255,255,.75);overflow:visible}
.rsvp-card::before{inset:11px;border-radius:25px;border-color:rgba(104,44,119,.10)}
.card-crown{margin:-67px auto 12px;width:78px;height:78px;color:var(--royal-600);background:linear-gradient(180deg,#fff,#fff8f3);border-color:#eadbea;box-shadow:0 15px 35px rgba(62,20,75,.17)}
.card-crown svg{width:33px;height:33px;stroke-width:1.45}
.rsvp-card h2{font-family:var(--display);font-size:43px;letter-spacing:-.02em;font-weight:650;margin:5px 0 9px;color:#4a1959}
.card-intro{font-size:14px;line-height:1.7;max-width:430px;margin-bottom:27px}
.rsvp-form{gap:19px}
.field>span,.choice-group legend,.field-header{font-size:12.5px;color:#4d2857}
.field input,.field textarea{border-radius:14px;border-color:#ddd0e1;padding:14px 15px;background:rgba(255,255,255,.86);box-shadow:inset 0 1px 1px rgba(61,23,70,.025)}
.field input:hover,.field textarea:hover{border-color:#cdb6d2}
.choice-grid{gap:11px}
.choice span{min-height:48px;border-radius:14px;border-color:#e0d3e3;background:rgba(255,255,255,.82)}
.choice b{width:25px;height:25px;font-size:14px;box-shadow:0 4px 11px rgba(30,10,36,.10)}
.primary-button{position:relative;isolation:isolate;overflow:hidden;min-height:50px;border-radius:15px;background:linear-gradient(110deg,#6e2a80 0%,#9c3ead 48%,#7b2d8b 100%);box-shadow:0 16px 34px rgba(111,43,129,.25);letter-spacing:.005em}
.primary-button::after{content:"";position:absolute;z-index:-1;top:-120%;bottom:-120%;left:-35%;width:24%;transform:rotate(18deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.35),transparent);animation:button-shine 5.5s ease-in-out infinite}
.primary-button:hover{transform:translateY(-2px);box-shadow:0 20px 38px rgba(111,43,129,.31)}
.privacy-note{display:flex;align-items:center;justify-content:center;gap:6px;color:#907f93}
.privacy-note svg{width:13px;height:13px;color:#b48854}

/* Magical dust */
.magic-layer{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:hidden;border-radius:inherit}
.magic-spark{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);opacity:0;animation:magic-twinkle var(--d) ease-in-out var(--delay) infinite;filter:drop-shadow(0 0 5px rgba(255,224,150,.72))}
.magic-spark::before,.magic-spark::after{content:"";position:absolute;inset:0;margin:auto;background:linear-gradient(#fff8cf,#f6cc6c);border-radius:999px}
.magic-spark::before{width:100%;height:24%}
.magic-spark::after{width:24%;height:100%}
.magic-spark.dot::before{width:100%;height:100%;border-radius:50%;background:#fff1b7}.magic-spark.dot::after{display:none}

/* Premium reveal instead of abrupt hidden fields */
.conditional:not([hidden]),.siblings-wrap:not([hidden]){animation:soft-reveal .26s ease both}

/* Footer */
.site-footer{padding-bottom:24px;font-size:11px;letter-spacing:.02em}
.site-footer a{color:var(--champagne-2)}

/* Admin polish */
.admin-topbar{background:linear-gradient(115deg,#291033,#44164f);border-bottom:1px solid rgba(255,255,255,.07)}
.admin-mark{background:linear-gradient(145deg,#a94ab8,#6c287d);box-shadow:0 7px 17px rgba(20,5,26,.18)}
.admin-card,.stats-grid article{border-color:#e7dce9;box-shadow:0 12px 34px rgba(72,34,80,.07)}
.admin-card h1{font-family:var(--display);font-weight:650;letter-spacing:-.01em}

@keyframes magic-twinkle{0%,100%{opacity:0;transform:scale(.55) rotate(0deg)}35%{opacity:.22}50%{opacity:.92;transform:scale(1.12) rotate(45deg)}65%{opacity:.26}}
@keyframes badge-shine{0%,72%,100%{left:-45%}82%{left:125%}}
@keyframes button-shine{0%,72%,100%{left:-35%}83%{left:125%}}
@keyframes soft-reveal{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}

@media(max-width:1180px){
  .invite-shell{grid-template-columns:1fr;max-width:920px;padding:24px;gap:24px}
  .hero{min-height:760px}
  .rsvp-card{margin-top:22px}
}

@media(max-width:760px){
  .invite-page{background-attachment:scroll}
  .invite-shell{padding:12px;gap:18px}
  .hero{border-radius:27px;background:#351040}
  .hero-photo-wrap{height:58vh;min-height:475px}
  .hero-photo{object-position:49% center}
  .hero-photo-shade{background:linear-gradient(0deg,rgba(47,11,58,.92) 0%,rgba(47,11,58,.58) 30%,rgba(47,11,58,.10) 62%,transparent 76%);box-shadow:none}
  .hero-copy{margin-top:-184px;padding:112px 22px 28px;background:linear-gradient(0deg,#351040 68%,transparent);text-align:left;align-items:stretch}
  .hero-copy::before{display:none}
  .hero h1{font-size:46px;line-height:.88;max-width:none;margin:10px 0 20px}
  .hero h1 em{margin-top:10px}
  .birthday-badges{width:100%;margin-bottom:24px}
  .birthday-badge{padding:10px 8px;text-align:center}
  .birthday-badge small{font-size:15px}
  .birthday-badge strong{font-size:17px}
  .event-details{width:100%}
  .event-details b{font-size:19px}
  .countdown{justify-content:flex-start}
  .hero-brand{font-size:10px;left:14px;bottom:auto;top:14px;background:rgba(28,8,35,.45)}
  .rsvp-card{border-radius:27px;padding:39px 18px 25px}
  .card-crown{width:66px;height:66px;margin:-60px auto 9px}
  .rsvp-card h2{font-size:37px}
  .card-intro{font-size:14px}
  .choice-grid{grid-template-columns:1fr}
  .magic-spark:nth-child(n+15){display:none}
}

@media(max-width:420px){
  .hero-photo-wrap{min-height:445px;height:55vh}
  .hero h1{font-size:42px}
  .birthday-badges{gap:7px}
  .amp{font-size:24px}
  .countdown{gap:8px}
  .countdown span{min-width:65px}
  .rsvp-card h2{font-size:34px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .magic-layer{display:none}
}
[hidden]{display:none!important}
