/* =========================================================
   Chinmay & Purva — wedding site
   Two templates via <html data-theme="q|t">, two languages via <html lang="en|mr">
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
body,h1,h2,h3,p,figure,fieldset,dl,dd,ol{margin:0}
fieldset{border:0;padding:0;min-width:0}
ol{padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(64px + env(safe-area-inset-top,0px));-webkit-text-size-adjust:100%}
img,svg{display:block;max-width:100%}
button{font:inherit;color:inherit;cursor:pointer}
a{color:inherit}
[hidden]{display:none !important}

/* ---------- Tokens: QUIRKY ---------- */
html[data-theme="q"]{
  --bg:#FFF4E2;          /* chai-milk */
  --bg2:#FFE3EE;
  --ink:#1E1A3C;         /* midnight ink */
  --muted:#4F4A6B;
  --p1:#FF3D8B;          /* rani pink */
  --p2:#FFC21A;          /* haldi yellow */
  --p3:#14A897;          /* mehendi teal */
  --p4:#6C4DFF;          /* sangeet violet */
  --card:#FFFFFF;
  --heart:#FF3D8B;
  --btn-bg:var(--p1); --btn-ink:#fff;
  --chip-on:var(--ink); --chip-on-ink:var(--p2);
  --r:20px;
  --f-display:"Baloo 2","Mukta",system-ui,sans-serif;
  --f-names:"Baloo 2",system-ui,sans-serif;
  --f-body:"Mukta","Baloo 2",system-ui,sans-serif;
}
/* ---------- Tokens: TRADITIONAL ---------- */
html[data-theme="t"]{
  --bg:#FFF8EC;          /* ivory */
  --bg2:#F7EAD3;
  --ink:#3A0E16;
  --muted:#6B4843;
  --p1:#7A1424;          /* kumkum maroon */
  --p2:#E8A33D;          /* marigold */
  --p3:#1F6B52;          /* paithani green */
  --p4:#C9A14A;          /* antique gold */
  --card:#FFFDF8;
  --heart:#D7263D;
  --btn-bg:linear-gradient(180deg,#F6D48A,#C9953A); --btn-ink:#3A0E16;
  --chip-on:var(--p1); --chip-on-ink:#FBE7B5;
  --r:14px;
  --f-display:"Rozha One","Tiro Devanagari Marathi",Georgia,serif;
  --f-names:"Rozha One","Tiro Devanagari Marathi",Georgia,serif;
  --f-body:"Tiro Devanagari Marathi",Georgia,serif;
}

body{font-family:var(--f-body);background:var(--bg);color:var(--ink);font-size:17px;line-height:1.6;overflow-x:hidden}
html[data-theme="t"] body{line-height:1.7}
html[data-theme="q"] body{background-image:radial-gradient(rgba(30,26,60,.08) 1.2px,transparent 1.6px);background-size:22px 22px}
html[data-theme="q"] .t-only,html[data-theme="t"] .q-only{display:none !important}
:focus-visible{outline:3px solid var(--p3);outline-offset:3px}

/* ---------- Top switches ---------- */
.topbar{position:fixed;inset:0 0 auto 0;z-index:120;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 10px 8px;pointer-events:none}
.seg{pointer-events:auto;display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:rgba(255,255,255,.88);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
html[data-theme="q"] .seg{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
html[data-theme="t"] .seg{border:1px solid rgba(201,161,74,.8);background:rgba(255,248,236,.92);box-shadow:0 6px 18px rgba(0,0,0,.18)}
.seg button{border:0;background:transparent;padding:7px 13px;border-radius:999px;font-family:var(--f-body);font-weight:700;font-size:14px;line-height:1.15;color:var(--ink);white-space:nowrap}
.seg button[aria-pressed="true"]{background:var(--chip-on);color:var(--chip-on-ink)}

/* ---------- Intro doors ---------- */
.intro{position:fixed;inset:0;z-index:110;display:grid;place-items:center;overflow:hidden}
.intro .door{position:absolute;top:0;bottom:0;width:50.5%;transition:transform 1.15s cubic-bezier(.7,0,.2,1)}
.intro .door.l{left:0}.intro .door.r{right:0}
html[data-theme="q"] .intro .door.l{background:var(--p1) radial-gradient(rgba(255,255,255,.28) 2px,transparent 2.6px) 0 0/18px 18px;border-right:3px solid var(--ink)}
html[data-theme="q"] .intro .door.r{background:var(--p2) radial-gradient(rgba(30,26,60,.12) 2px,transparent 2.6px) 0 0/18px 18px}
html[data-theme="t"] .intro .door{background:#6A0F1E;background-image:repeating-linear-gradient(45deg,rgba(232,163,61,.14) 0 2px,transparent 2px 16px),repeating-linear-gradient(-45deg,rgba(232,163,61,.14) 0 2px,transparent 2px 16px)}
html[data-theme="t"] .intro .door.l{box-shadow:inset -7px 0 0 #C9A14A}
html[data-theme="t"] .intro .door.r{box-shadow:inset 7px 0 0 #C9A14A}
.intro-c{position:relative;z-index:2;text-align:center;padding:24px;max-width:420px;transition:opacity .5s,transform .6s}
html[data-theme="t"] .intro-c{color:#FBE7B5}
.seal{width:124px;height:124px;border-radius:50%;display:grid;place-items:center;margin:0 auto;font-family:var(--f-names);font-size:30px;line-height:1;animation:pulse 2.2s ease-in-out infinite}
html[data-theme="q"] .seal{background:#fff;color:var(--ink);border:3px solid var(--ink);box-shadow:6px 6px 0 var(--ink);font-weight:800}
html[data-theme="t"] .seal{border:0;background:radial-gradient(circle at 35% 30%,#C8323F,#8E1424 70%);color:#F6D48A;box-shadow:0 0 0 5px #C9A14A,0 0 0 10px rgba(74,12,23,.7),0 16px 40px rgba(0,0,0,.45)}
.intro-t{font-family:var(--f-display);font-size:clamp(1.6rem,6.5vw,2.3rem);line-height:1.2;margin-top:22px}
html[data-theme="q"] .intro-t{font-weight:800}
.intro-s{margin-top:6px;font-size:1.05rem;opacity:.9}
.intro.open .door.l{transform:translateX(-101%)}
.intro.open .door.r{transform:translateX(101%)}
.intro.open .intro-c{opacity:0;transform:scale(1.25)}
.intro.gone{display:none}
@keyframes pulse{50%{transform:scale(1.06)}}

#fx{position:fixed;inset:0;pointer-events:none;z-index:130;overflow:hidden}
#fx i{position:absolute;display:block}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:calc(92px + env(safe-area-inset-top,0px)) 18px 60px;overflow:hidden;isolation:isolate}
.hero > *{position:relative;z-index:2}
html[data-theme="q"] .hero{background:radial-gradient(circle at 12% 10%,#FFC7DD 0,transparent 36%),radial-gradient(circle at 92% 26%,#FFE9A3 0,transparent 34%),radial-gradient(circle at 50% 108%,#BDEFE6 0,transparent 46%)}
html[data-theme="t"] .hero{background:radial-gradient(ellipse at 50% 38%,#A11F35 0%,#6E1020 52%,#3D0710 100%);color:#FFF1D6}

.hero-top{display:inline-flex;align-items:center;gap:8px}
html[data-theme="q"] .hero-top{background:var(--ink);color:#fff;padding:5px 14px 5px 12px;border-radius:999px;font-family:var(--f-display);font-weight:700;font-size:14px}
html[data-theme="q"] .hero-top::before{content:"";width:9px;height:9px;border-radius:50%;background:#FF4D4D;animation:blink-dot 1s steps(2) infinite}
html[data-theme="t"] .hero-top{color:#F3C66B;font-family:"Tiro Devanagari Marathi",serif;font-size:1.15rem}
@keyframes blink-dot{50%{opacity:.15}}

.kicker{margin-top:14px;font-size:1.2rem;max-width:30ch}
html[data-theme="q"] .kicker{font-family:var(--f-display);font-weight:600;color:var(--p4);rotate:-1.5deg}
html[data-theme="t"] .kicker{font-style:italic;color:#FBE7B5}
html[lang="mr"][data-theme="t"] .kicker{font-style:normal}

.names{font-family:var(--f-names);font-weight:400;line-height:.95;margin:12px 0 4px;display:flex;flex-direction:column;align-items:center}
.names .n{display:block;font-size:clamp(3.3rem,16.5vw,7.2rem);padding:.04em .1em .1em}
.names .pre{display:block;font-size:.3em;line-height:1.4;font-family:"Tiro Devanagari Marathi",serif}
.names .pre:empty{display:none}
.names .amp{font-size:clamp(1.8rem,8vw,3.2rem);line-height:1.1}
html[data-theme="q"] .names .n{font-weight:800;letter-spacing:-.015em;color:var(--ink);text-shadow:3px 3px 0 var(--p1),6px 6px 0 var(--p2)}
html[data-theme="q"] .names .amp{font-weight:800;color:var(--p3);display:inline-block;animation:wobble 2.8s ease-in-out infinite}
html[data-theme="t"] .names .n{background:linear-gradient(100deg,#C9A14A 0%,#FFF1B8 22%,#D8A844 45%,#FFF1B8 70%,#C9A14A 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmer 7s linear infinite}
html[data-theme="t"] .names .amp{color:#F3C66B;font-family:"Tiro Devanagari Marathi",serif;font-style:italic}
html[lang="mr"] .names .n{font-size:clamp(2.9rem,14vw,6rem);line-height:1.2}
html[lang="mr"] .names .amp{font-style:normal}
@media (min-width:780px){.names{flex-direction:row;gap:.25em;align-items:center}}
@keyframes wobble{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg) scale(1.12)}}
@keyframes shimmer{to{background-position:-220% 0}}

/* Avatar stage — the centrepiece */
.stage{position:relative;width:min(86vw,380px);aspect-ratio:340/330;margin:14px auto 40px;cursor:pointer;-webkit-tap-highlight-color:transparent;outline-offset:8px}
.stage .win{position:absolute;inset:3% 3% 0 3%;overflow:hidden;z-index:2}
.stage .win svg{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto;z-index:1}
html[data-theme="q"] .stage .win{background:var(--p2);border:3px solid var(--ink);border-radius:48% 52% 22px 22px / 44% 44% 22px 22px;box-shadow:7px 7px 0 var(--ink)}
html[data-theme="q"] .stage .win::before{content:"";position:absolute;inset:-45%;background:repeating-conic-gradient(from 0deg,rgba(255,255,255,.5) 0 8deg,transparent 8deg 16deg);animation:spin 50s linear infinite}
html[data-theme="t"] .stage .win{background:radial-gradient(circle at 50% 40%,#FFF4D6 0%,#F6CF83 55%,#E0913F 100%);border-radius:50% 50% 14px 14px / 42% 42% 14px 14px;box-shadow:0 0 0 4px #C9A14A,0 0 0 10px #5A0C19,0 0 0 12px #C9A14A,0 24px 60px rgba(0,0,0,.5)}
.mandala{position:absolute;left:50%;top:44%;width:152%;aspect-ratio:1;z-index:1;transform:translate(-50%,-50%);animation:spin-c 140s linear infinite;pointer-events:none}
.mandala svg{width:100%;height:100%}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes spin-c{to{transform:translate(-50%,-50%) rotate(360deg)}}

.ribbon{position:absolute;left:50%;bottom:-22px;z-index:4;white-space:nowrap;font-family:var(--f-display);padding:8px 18px;font-size:clamp(.95rem,4.2vw,1.15rem);transform:translateX(-50%)}
html[data-theme="q"] .ribbon{background:var(--ink);color:var(--p2);font-weight:800;border-radius:10px;box-shadow:4px 4px 0 var(--p1);rotate:-3deg}
html[data-theme="t"] .ribbon{background:linear-gradient(180deg,#F6D48A,#C9953A);color:#4A0E18;border-radius:4px;box-shadow:0 8px 20px rgba(0,0,0,.35)}
html[data-theme="t"] .ribbon::before{content:"❁ "}
html[data-theme="t"] .ribbon::after{content:" ❁"}

.sticker{position:absolute;z-index:4;font-family:var(--f-display);font-weight:800;font-size:12.5px;line-height:1.15;padding:7px 10px;border:2px solid var(--ink);border-radius:12px;box-shadow:3px 3px 0 var(--ink);max-width:118px}
.s1{top:5%;left:-2%;background:#fff;rotate:-11deg}
.s2{top:9%;right:-3%;background:var(--p3);color:#fff;rotate:9deg}
.s3{bottom:22%;left:-5%;background:var(--p1);color:#fff;rotate:7deg}

.diya{position:absolute;bottom:-2px;width:46px;height:20px;z-index:5;background:linear-gradient(#DB7B3A,#963F17);border-radius:3px 3px 50% 50% / 3px 3px 100% 100%}
.diya.l{left:-6px}.diya.r{right:-6px}
.diya i{position:absolute;left:50%;bottom:15px;width:13px;height:24px;margin-left:-6.5px;background:radial-gradient(ellipse at 50% 75%,#FFFBD1 0 25%,#FFC23A 55%,#FF7A00 100%);border-radius:50% 50% 45% 45% / 65% 65% 35% 35%;transform-origin:50% 100%;animation:flicker .9s ease-in-out infinite alternate;box-shadow:0 0 18px 7px rgba(255,170,40,.5)}
@keyframes flicker{from{transform:scale(1) rotate(-2deg)}to{transform:scale(.9,1.12) rotate(3deg)}}

.tap-hint{font-size:.9rem;opacity:.8;margin-top:4px}
html[data-theme="q"] .tap-hint{font-family:var(--f-display);font-weight:600}

.tagline{max-width:36ch;margin:14px auto 0;font-size:1.08rem}
html[data-theme="q"] .tagline{font-weight:600}
html[data-theme="t"] .tagline{font-size:1.2rem;font-style:italic;color:#FBE7B5}
html[lang="mr"][data-theme="t"] .tagline{font-style:normal;font-size:1.1rem}

/* Countdown */
.cd-wrap{margin-top:26px;width:100%;max-width:440px}
.cd-title{margin-bottom:12px;font-size:1rem}
html[data-theme="q"] .cd-title{font-family:var(--f-display);font-weight:700;color:var(--ink)}
html[data-theme="t"] .cd-title{font-family:var(--f-display);font-size:1.2rem;color:#F3C66B}
.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.cd{padding:10px 4px 8px;border-radius:14px}
.cd b{display:block;font-family:var(--f-display);font-size:clamp(1.7rem,8vw,2.4rem);line-height:1.1;font-variant-numeric:tabular-nums}
.cd small{display:block;font-size:.8rem;opacity:.85}
html[data-theme="q"] .cd{background:#fff;border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
html[data-theme="q"] .cd:nth-child(odd){rotate:-2deg}
html[data-theme="q"] .cd:nth-child(even){rotate:2deg}
html[data-theme="q"] .cd b{font-weight:800;color:var(--p1)}
html[data-theme="t"] .cd{border:1px solid rgba(243,198,107,.55);background:rgba(255,241,214,.07);border-radius:8px 8px 40px 40px / 8px 8px 18px 18px}
html[data-theme="t"] .cd b{color:#F6D48A}
.cd b.pop{animation:pop .35s ease}
@keyframes pop{40%{transform:scale(1.14)}}
.cd-done{font-family:var(--f-display);font-size:1.6rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 26px;border-radius:999px;font-family:var(--f-body);font-weight:700;font-size:1.05rem;line-height:1.2;text-decoration:none;border:0;background:var(--btn-bg);color:var(--btn-ink);transition:transform .15s,box-shadow .15s}
html[data-theme="q"] .btn{border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
html[data-theme="q"] .btn:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}
html[data-theme="t"] .btn{box-shadow:0 8px 22px rgba(201,149,58,.35)}
.btn.sm{padding:9px 16px;font-size:.92rem}
.btn.ghost{background:transparent;color:var(--ink)}
html[data-theme="t"] .btn.ghost{border:1px solid var(--p4);color:var(--p1);box-shadow:none}
.hero .btn{margin-top:28px}

/* Toran (traditional) and bunting (quirky) */
.toran{position:absolute;inset:env(safe-area-inset-top,0px) 0 auto 0;height:150px;z-index:1;display:flex;justify-content:space-around;pointer-events:none}
.toran::before{content:"";position:absolute;inset:0 0 auto 0;height:7px;background:repeating-linear-gradient(90deg,#2F7A3E 0 14px,#E8A33D 14px 19px)}
.str{display:flex;flex-direction:column;align-items:center;transform-origin:50% 0;animation:sway 3.2s ease-in-out infinite alternate;padding-top:5px}
.str b{width:14px;height:14px;border-radius:50%;margin-top:-2px;background:radial-gradient(circle at 35% 35%,#FFD466,#F28C28)}
.str b:nth-child(even){background:radial-gradient(circle at 35% 35%,#FFF08A,#F4B400)}
.str .tassel{width:4px;height:12px;background:#D7263D;border-radius:2px;margin-top:1px}
.mleaf{width:15px;height:30px;margin-top:5px;background:linear-gradient(90deg,#2F6E3A 50%,#3E8E4C 50%);border-radius:50% 50% 50% 50% / 30% 30% 70% 70%;transform-origin:50% 0;animation:sway 3.6s ease-in-out infinite alternate}
.bunting{position:absolute;inset:0 0 auto 0;height:60px;z-index:1;display:flex;justify-content:space-around;pointer-events:none}
.bunting::before{content:"";position:absolute;left:0;right:0;top:9px;height:2px;background:var(--ink)}
.bunting i{width:0;height:0;margin-top:10px;border-left:14px solid transparent;border-right:14px solid transparent;border-top:26px solid var(--c);transform-origin:50% 0;animation:sway 2.6s ease-in-out infinite alternate}
@keyframes sway{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}

/* Marquee */
.marquee{overflow:hidden;white-space:nowrap;position:relative;z-index:3;padding:12px 0}
.marquee .track{display:inline-flex;animation:marq 36s linear infinite}
.marquee span{padding-right:1.6rem;font-family:var(--f-display);font-size:1.05rem}
.mq-clip{overflow:hidden;position:relative;z-index:3}
html[data-theme="q"] .mq-clip{margin-top:-14px;padding:10px 0}
html[data-theme="q"] .marquee{background:var(--ink);color:var(--p2);rotate:-1.5deg;margin:0 -12px;border-block:3px solid var(--p1)}
html[data-theme="q"] .marquee span{font-weight:800}
html[data-theme="t"] .marquee{background:#4A0C17;color:#F3C66B;border-block:2px solid #C9A14A}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- Sections ---------- */
.sec{padding:80px 20px;max-width:1100px;margin:0 auto}
.sec-head{text-align:center;margin-bottom:38px}
.sec-title{font-family:var(--f-display);line-height:1.12;font-size:clamp(2rem,8.5vw,3.3rem);font-weight:400}
html[data-theme="q"] .sec-title span{font-weight:800;background:linear-gradient(transparent 60%,var(--p2) 60% 92%,transparent 92%);-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .08em}
html[data-theme="t"] .sec-title{color:var(--p1)}
html[lang="mr"] .sec-title{font-size:clamp(1.8rem,7.5vw,2.8rem);line-height:1.35}
.sec-sub{max-width:44ch;margin:12px auto 0;color:var(--muted);font-size:1.06rem}
.orn{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px auto 0;color:var(--p4);max-width:240px;font-size:1.3rem}
.orn::before,.orn::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--p4))}
.orn::after{background:linear-gradient(90deg,var(--p4),transparent)}

/* Story */
.story{display:grid;gap:44px;align-items:start}
@media (min-width:860px){.story{grid-template-columns:340px 1fr;gap:60px}.photo-col{position:sticky;top:90px}}
.photo-col{display:flex;flex-direction:column;align-items:center;gap:30px}
.polaroid{position:relative;width:min(78vw,320px);background:#fff;padding:12px 12px 62px}
.polaroid img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.polaroid figcaption{position:absolute;left:0;right:0;bottom:14px;text-align:center;line-height:1.2;padding:0 14px;font-size:1.05rem}
html[data-theme="q"] .polaroid{border:2.5px solid var(--ink);box-shadow:8px 8px 0 var(--ink);rotate:-3deg}
html[data-theme="q"] .polaroid::before{content:"";position:absolute;top:-15px;left:50%;width:110px;height:28px;margin-left:-55px;background:rgba(255,194,26,.8);rotate:4deg;border:1.5px solid rgba(30,26,60,.25)}
html[data-theme="q"] .polaroid figcaption{font-family:var(--f-display);font-weight:700}
html[data-theme="t"] .polaroid{padding:10px;background:linear-gradient(135deg,#F6D48A,#B8862F 50%,#F6D48A);border-radius:170px 170px 14px 14px;box-shadow:var(--shadow,0 18px 40px rgba(122,20,36,.18))}
html[data-theme="t"] .polaroid img{border-radius:160px 160px 8px 8px}
html[data-theme="t"] .polaroid figcaption{position:static;margin-top:10px;color:#4A0E18;font-style:italic}
html[lang="mr"][data-theme="t"] .polaroid figcaption{font-style:normal}

.stat{display:flex;align-items:center;gap:16px;max-width:320px}
.stat b{flex:none;width:94px;height:94px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-size:2.5rem;font-weight:800;line-height:1}
.stat span{font-weight:700;font-size:1.05rem;line-height:1.35}
html[data-theme="q"] .stat b{background:var(--p1);color:#fff;border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink);rotate:-6deg}
html[data-theme="t"] .stat b{font-weight:400;background:radial-gradient(circle,#FFF4D6,#F0C77A);color:var(--p1);box-shadow:0 0 0 3px var(--p4),0 0 0 7px var(--bg),0 0 0 8px var(--p4)}

.tl{position:relative;padding-left:40px;list-style:none}
.tl::before{content:"";position:absolute;left:12px;top:8px;bottom:8px;width:3px;border-radius:3px}
html[data-theme="q"] .tl::before{background:repeating-linear-gradient(var(--ink) 0 8px,transparent 8px 14px)}
html[data-theme="t"] .tl::before{background:linear-gradient(var(--p4),var(--p2),var(--p4))}
.tl li{position:relative;margin-bottom:24px}
.tl li:last-child{margin-bottom:0}
.tl .dot{position:absolute;left:-40px;top:14px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-family:var(--f-display);font-size:13px;font-weight:800}
html[data-theme="q"] .tl .dot{background:var(--p2);border:2.5px solid var(--ink)}
html[data-theme="q"] .tl li:nth-child(2) .dot{background:var(--p3);color:#fff}
html[data-theme="q"] .tl li:nth-child(3) .dot{background:var(--p4);color:#fff}
html[data-theme="q"] .tl li:nth-child(4) .dot{background:var(--p1);color:#fff}
html[data-theme="t"] .tl .dot{background:var(--p1);color:#FBE7B5;font-weight:400;box-shadow:0 0 0 3px var(--bg),0 0 0 4.5px var(--p4)}
.tl .card{background:var(--card);border-radius:var(--r);padding:16px 18px}
html[data-theme="q"] .tl .card{border:2.5px solid var(--ink);box-shadow:5px 5px 0 var(--ink)}
html[data-theme="t"] .tl .card{border:1px solid rgba(201,161,74,.55);box-shadow:0 10px 26px rgba(122,20,36,.08)}
html[data-theme="q"] .tl li.future .card{background:var(--p2)}
html[data-theme="t"] .tl li.future .card{background:linear-gradient(#FFF4D6,#FBE3B0)}
.tl-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.92rem;font-weight:700;color:var(--p1)}
.tl-meta .place{padding:1px 10px;border-radius:999px;background:var(--bg2);color:var(--ink);font-weight:600}
html[data-theme="q"] .tl li.future .place{background:#fff}
.tl h3{font-family:var(--f-display);font-size:1.4rem;line-height:1.25;margin:6px 0 4px;font-weight:400}
html[data-theme="q"] .tl h3{font-weight:800}
html[data-theme="t"] .tl h3{color:var(--p1)}
.tl p{color:var(--muted)}

/* Events */
.cards{display:grid;gap:28px}
@media (min-width:820px){.cards{grid-template-columns:repeat(3,1fr);gap:24px}}
.ev{position:relative;text-align:center;padding:26px 20px 22px;border-radius:var(--r);background:var(--card);display:flex;flex-direction:column}
html[data-theme="q"] .ev{border:2.5px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
html[data-theme="q"] .ev.haldi{background:#FFE68F;rotate:-1deg}
html[data-theme="q"] .ev.sangeet{background:#E4DCFF;rotate:.8deg}
html[data-theme="q"] .ev.wedding{background:#FFD3E4;rotate:-.6deg}
html[data-theme="t"] .ev{border:1px solid var(--p4);border-radius:200px 200px 16px 16px;padding-top:46px;box-shadow:0 14px 34px rgba(122,20,36,.1)}
html[data-theme="t"] .ev::before{content:"";position:absolute;inset:7px;border:1px solid rgba(201,161,74,.5);border-radius:194px 194px 11px 11px;pointer-events:none}
.ev-icon{width:92px;height:92px;margin:0 auto 12px}
.ev-icon .bgc{fill:#fff}
html[data-theme="q"] .ev-icon .bgc{stroke:var(--ink);stroke-width:2.5}
html[data-theme="t"] .ev-icon .bgc{fill:#FFF4D6;stroke:var(--p4);stroke-width:1.5}
.ev-date{align-self:center;font-weight:700;font-size:.92rem;padding:4px 14px;border-radius:999px}
html[data-theme="q"] .ev-date{background:var(--ink);color:#fff}
html[data-theme="t"] .ev-date{background:var(--p1);color:#FBE7B5}
.ev h3{font-family:var(--f-display);font-size:2.1rem;line-height:1.15;margin:12px 0 6px;font-weight:400}
html[data-theme="q"] .ev h3{font-weight:800}
html[data-theme="t"] .ev h3{color:var(--p1)}
.ev .desc{color:var(--muted);margin-bottom:16px}
.ev dl{display:grid;gap:10px;text-align:left;margin-bottom:18px;padding:14px 16px;border-radius:14px}
html[data-theme="q"] .ev dl{background:rgba(255,255,255,.7);border:2px dashed var(--ink)}
html[data-theme="t"] .ev dl{background:var(--bg);border:1px solid rgba(201,161,74,.45)}
.ev dt{font-size:.85rem;font-weight:700;color:var(--p1)}
html[data-theme="q"] .ev dt{color:var(--p4)}
.ev dd{font-weight:600;line-height:1.4}
.acts{margin-top:auto;display:flex;gap:8px;justify-content:center;flex-wrap:wrap}

/* Travel */
.tv{text-align:center;padding:26px 20px 24px;border-radius:var(--r);background:var(--card);display:flex;flex-direction:column}
html[data-theme="q"] .tv{border:2.5px solid var(--ink);box-shadow:6px 6px 0 var(--ink)}
html[data-theme="t"] .tv{border:1px solid rgba(201,161,74,.6);box-shadow:0 14px 34px rgba(122,20,36,.08)}
.tv .emo{font-size:2rem;width:72px;height:72px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px}
html[data-theme="q"] .tv .emo{background:var(--p2);border:2.5px solid var(--ink)}
html[data-theme="t"] .tv .emo{background:var(--bg2);box-shadow:0 0 0 1px var(--p4),0 0 0 5px var(--card),0 0 0 6px rgba(201,161,74,.5)}
.tv h3{font-family:var(--f-display);font-size:1.55rem;line-height:1.2;margin-bottom:6px;font-weight:400}
html[data-theme="q"] .tv h3{font-weight:800}
html[data-theme="t"] .tv h3{color:var(--p1)}
.tv p{color:var(--muted);margin-bottom:16px}
.note{margin:30px auto 0;max-width:640px;text-align:center;padding:14px 18px;border-radius:14px;font-weight:600}
html[data-theme="q"] .note{background:var(--p3);color:#fff;border:2.5px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
html[data-theme="t"] .note{background:var(--bg2);color:var(--p1);border:1px solid rgba(201,161,74,.6)}

/* ---------- RSVP ---------- */
.rsvp-card{max-width:660px;margin:0 auto;background:var(--card);border-radius:calc(var(--r) + 6px);padding:28px 20px;position:relative}
html[data-theme="q"] .rsvp-card{border:3px solid var(--ink);box-shadow:9px 9px 0 var(--ink)}
html[data-theme="t"] .rsvp-card{border:1px solid var(--p4);box-shadow:0 18px 44px rgba(122,20,36,.12),inset 0 0 0 7px var(--card),inset 0 0 0 8px rgba(201,161,74,.55)}
@media (min-width:600px){.rsvp-card{padding:38px}}
.field{margin-bottom:22px}
.field > label,.field > legend,.lbl{display:block;font-weight:700;margin-bottom:8px;font-size:1.02rem;line-height:1.35}
.row2{display:grid;gap:0 16px}
@media (min-width:600px){.row2{grid-template-columns:1fr 1fr}}
.rsvp-card input[type="text"],.rsvp-card input[type="tel"],.rsvp-card input[type="email"],.rsvp-card input[type="datetime-local"],.rsvp-card textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);padding:12px 14px;border-radius:12px;background:var(--bg);outline:none;transition:box-shadow .2s,border-color .2s}
html[data-theme="q"] .rsvp-card input,html[data-theme="q"] .rsvp-card textarea{border:2px solid var(--ink)}
html[data-theme="q"] .rsvp-card input:focus,html[data-theme="q"] .rsvp-card textarea:focus{box-shadow:4px 4px 0 var(--p1)}
html[data-theme="t"] .rsvp-card input,html[data-theme="t"] .rsvp-card textarea{border:1px solid rgba(201,161,74,.8);background:#FFFBF2}
html[data-theme="t"] .rsvp-card input:focus,html[data-theme="t"] .rsvp-card textarea:focus{border-color:var(--p1);box-shadow:0 0 0 3px rgba(122,20,36,.12)}
.rsvp-card textarea{resize:vertical;min-height:92px}
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;width:1px;height:1px}
.chip span{display:inline-block;padding:10px 16px;border-radius:999px;font-weight:700;font-size:.97rem;line-height:1.25;transition:background .2s,color .2s,transform .2s;user-select:none}
html[data-theme="q"] .chip span{border:2px solid var(--ink);background:#fff}
html[data-theme="q"] .chip input:checked + span{background:var(--ink);color:var(--p2);box-shadow:3px 3px 0 var(--p1);transform:translate(-1px,-1px)}
html[data-theme="t"] .chip span{border:1px solid rgba(201,161,74,.9);background:#FFFBF2;color:var(--p1)}
html[data-theme="t"] .chip input:checked + span{background:var(--p1);color:#FBE7B5;border-color:var(--p1)}
.chip input:focus-visible + span{outline:3px solid var(--p3);outline-offset:2px}
.stepper{display:inline-flex;align-items:center;gap:6px}
.stepper button{width:46px;height:46px;border-radius:50%;font-size:1.45rem;font-weight:800;line-height:1;display:grid;place-items:center}
html[data-theme="q"] .stepper button{border:2px solid var(--ink);background:var(--p2)}
html[data-theme="t"] .stepper button{border:1px solid var(--p4);background:#FFFBF2;color:var(--p1)}
.stepper output{min-width:56px;text-align:center;font-family:var(--f-display);font-size:1.9rem;font-weight:800}
.song-field{padding:16px;border-radius:16px;margin-left:-4px;margin-right:-4px}
html[data-theme="q"] .song-field{background:#E4DCFF;border:2px dashed var(--ink)}
html[data-theme="t"] .song-field{background:var(--bg2)}
.song-field .disc{display:inline-block;animation:spin 3s linear infinite;margin-right:6px}
form[data-attend="no"] .attending-only{display:none}
.form-err{color:#C0182F;font-weight:700;min-height:1.3em;margin-bottom:8px}
.submit{width:100%;font-size:1.15rem;padding:16px}
.submit:disabled{opacity:.6}
.form-note{text-align:center;font-size:.88rem;color:var(--muted);margin-top:10px}
.form-note:empty{display:none}
.thanks{text-align:center}
.thanks h3{font-family:var(--f-display);font-size:2rem;line-height:1.2;margin:14px 0 8px;font-weight:400}
html[data-theme="q"] .thanks h3{font-weight:800}
html[data-theme="t"] .thanks h3{color:var(--p1)}
.thanks p{color:var(--muted);max-width:40ch;margin:0 auto 20px}

/* Avatar portholes (thank-you + footer) */
.avatar-slot{position:relative;aspect-ratio:1;border-radius:50%;overflow:hidden;margin:0 auto}
.avatar-slot svg{position:absolute;left:0;bottom:0;width:100%;height:auto}
html[data-theme="q"] .avatar-slot{background:var(--p2);border:3px solid var(--ink)}
html[data-theme="t"] .avatar-slot{background:radial-gradient(circle at 50% 40%,#FFF4D6,#F0C77A 60%,#E0913F);box-shadow:0 0 0 3px #C9A14A}
.thanks .avatar-slot{width:190px}

/* Footer */
.foot{text-align:center;padding:60px 20px calc(50px + env(safe-area-inset-bottom,0px))}
html[data-theme="q"] .foot{background:var(--ink);color:#FFF4E2}
html[data-theme="t"] .foot{background:#4A0C17;color:#FBE7B5}
.foot .avatar-slot{width:132px;margin-bottom:16px}
.foot .big{font-family:var(--f-names);font-size:2.4rem;line-height:1.2}
html[data-theme="q"] .foot .big{font-weight:800;color:var(--p2)}
html[data-theme="t"] .foot .big{color:#F3C66B}
.foot p{opacity:.9;max-width:44ch;margin:8px auto 0}
.hashtag{display:inline-block;margin-top:16px;font-weight:700;padding:6px 16px;border-radius:999px;line-height:1.4}
html[data-theme="q"] .hashtag{background:var(--p1);color:#fff}
html[data-theme="t"] .hashtag{border:1px solid #C9A14A;color:#F3C66B}

/* ---------- Avatars ---------- */
.av .lean-c,.av .lean-p{transform-box:fill-box;transform-origin:50% 100%;transition:transform .55s cubic-bezier(.34,1.56,.64,1)}
.av .bob-c,.av .bob-p{transform-box:fill-box;transform-origin:50% 100%;animation:bob 3.2s ease-in-out infinite alternate}
.av .bob-p{animation-delay:-1.4s}
@keyframes bob{from{transform:translateY(0)}to{transform:translateY(-5px) rotate(-.8deg)}}
.av .eye{transform-box:fill-box;transform-origin:center;animation:blink 5.5s infinite}
.av .bob-p .eye{animation-delay:1.9s}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
.av .earring{transform-box:fill-box;transform-origin:50% 0;animation:swing 2.3s ease-in-out infinite alternate}
@keyframes swing{from{transform:rotate(-10deg)}to{transform:rotate(10deg)}}
.av .flash{opacity:0;transform-box:fill-box;transform-origin:center;animation:flash 6s infinite 2s}
@keyframes flash{0%,86%,100%{opacity:0;transform:scale(.3)}89%{opacity:.95;transform:scale(1)}94%{opacity:0;transform:scale(1.4)}}
.av .fheart{fill:var(--heart);opacity:0;transform-box:fill-box;transform-origin:center;animation:float 4.5s ease-in infinite}
@keyframes float{0%{opacity:0;transform:translateY(12px) scale(.5)}20%{opacity:1}100%{opacity:0;transform:translateY(-54px) scale(1.1)}}
.av .tw{transform-box:fill-box;transform-origin:center;animation:twinkle 2.4s ease-in-out infinite}
@keyframes twinkle{50%{transform:scale(.5) rotate(45deg);opacity:.5}}
.stage.love .lean-c{transform:translateX(9px) rotate(4deg)}
.stage.love .lean-p{transform:translateX(-9px) rotate(-4deg)}
.pop-heart{position:absolute;left:50%;top:32%;z-index:6;font-size:24px;line-height:1;pointer-events:none;color:var(--heart)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  html{scroll-behavior:auto}
}

/* ---------- Personalised invitation additions ---------- */
.greet{margin-top:14px;font-size:1.3rem;line-height:1.35;max-width:30ch}
html[data-theme="q"] .greet{font-family:var(--f-display);font-weight:700;background:#fff;border:2.5px solid var(--ink);box-shadow:3px 3px 0 var(--p1);padding:6px 14px;border-radius:14px;rotate:1deg}
html[data-theme="t"] .greet{font-style:italic;color:#F6D48A;font-size:1.4rem}
html[lang="mr"][data-theme="t"] .greet{font-style:normal}
.intro-name{font-family:var(--f-display);font-size:1.15rem;margin-top:18px}
html[data-theme="q"] .intro-name{font-weight:700}
.travel-details{display:grid;gap:0 16px}
@media (min-width:600px){.travel-details{grid-template-columns:1fr 1fr}}
form[data-travel=""] .travel-details,form[data-travel="local"] .travel-details{display:none}
.hint-inline{font-weight:400;opacity:.75;font-size:.9em}
.rsvp-closed{text-align:center;font-weight:600;font-size:1.05rem;padding:6px 4px}
.preview-bar{position:fixed;left:0;right:0;bottom:0;z-index:125;background:#1E1A3C;color:#FFC21A;text-align:center;font:600 13px/1.3 system-ui,sans-serif;padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px))}
.pickup-note{max-width:40ch;margin:-6px auto 20px;padding:12px 14px;border-radius:14px;font-weight:600;line-height:1.45}
html[data-theme="q"] .pickup-note{background:#E4DCFF;border:2px solid var(--ink)}
html[data-theme="t"] .pickup-note{background:var(--bg2);border:1px solid rgba(201,161,74,.7);color:var(--p1)}
.pickup-note a{font-weight:700}
