/* A carved South Indian temple entrance for the opening animation. */
.door-transition{background:#31211a}
.door-backdrop{background:radial-gradient(circle at 50% 45%,#fffaf0 0,#efdfbc 68%,#c7ac78 100%)}
.door-backdrop p{max-width:720px}
.door-panel{background:#60341f url("../assets/temple-door-panel.svg") center/100% 100% no-repeat;border:7px solid #a77a38;box-shadow:inset 0 0 0 5px #2e1914,0 0 35px #1c120ed9}
.door-panel:before,.door-panel:after{display:none}
.door-left{border-right:9px solid #d0aa5c}.door-right{border-left:9px solid #d0aa5c}
.door-handle{width:37px;height:37px;background:radial-gradient(circle at 36% 34%,#f6dea0,#9d6d2c 70%);border:5px solid #e2bb69;box-shadow:0 0 0 5px #4d261a,0 4px 14px #1d100d80}
.door-left .door-handle{right:22px}.door-right .door-handle{left:22px}
.temple-door-frame{position:absolute;inset:0;z-index:4;pointer-events:none;border-left:18px solid #b7955b;border-right:18px solid #b7955b;box-shadow:inset 12px 0 #6d4929,inset -12px 0 #6d4929}
.temple-door-frame:before{content:"✥";position:absolute;top:0;left:-18px;right:-18px;height:112px;display:flex;align-items:flex-start;justify-content:center;padding-top:11px;box-sizing:border-box;color:#e1bf7d;font-size:44px;line-height:1;background:repeating-linear-gradient(90deg,#9c773f 0 30px,#c5a363 31px 50px,#8b6639 51px 63px),linear-gradient(#cdb379,#7e5736);border-bottom:10px solid #6c4529;clip-path:polygon(0 0,100% 0,100% 82%,88% 82%,86% 100%,75% 82%,63% 82%,60% 100%,40% 100%,37% 82%,25% 82%,14% 100%,12% 82%,0 82%)}
.temple-door-frame:after{content:"";position:absolute;bottom:0;left:-18px;right:-18px;height:25px;background:linear-gradient(#d9bc7c,#795232);border-top:5px solid #e5ca8c}
.childhood{min-height:720px;display:flex;flex-direction:column;justify-content:center}.childhood .section-heading{margin-bottom:30px}.childhood-note{margin-top:28px}
.invitation{background:radial-gradient(circle at 50% 0,#fffdf5 0,#fbf5e9 76%)}.invitation .script-heading{font-size:clamp(58px,7.5vw,100px)}.invitation-copy{max-width:680px;font-size:clamp(22px,2.1vw,27px)}
.event-grid{grid-template-columns:repeat(3,1fr)}
.site-header{justify-content:space-between}.site-header nav{margin-left:auto}
@media(max-width:700px){.temple-door-frame{border-left-width:9px;border-right-width:9px}.temple-door-frame:before{left:-9px;right:-9px;height:76px;font-size:30px}.temple-door-frame:after{left:-9px;right:-9px}.door-panel{border-width:4px}.door-left .door-handle{right:8px}.door-right .door-handle{left:8px}.door-handle{width:27px;height:27px}.childhood{min-height:640px}.invitation .script-heading{font-size:65px}.event-grid{grid-template-columns:1fr}}
.hero-details{display:inline-block;max-width:calc(100vw - 36px);padding:15px 28px 14px;background:#fffaf1ed;border:1px solid #cfae70;box-shadow:0 8px 28px #513b2c2b;backdrop-filter:blur(5px);border-radius:3px}
.hero .hero-subtitle{color:#63252f;font-size:clamp(22px,2.4vw,30px);font-weight:600;line-height:1.15;margin:0;text-shadow:none}
.hero .hero-date{margin-top:12px;color:#6d2631;font-size:12px;letter-spacing:.18em;text-shadow:none}
.hero .hero-date i{background:#b88e4c}.hero .button{margin-top:24px}
.our-story{background:radial-gradient(circle at 50% 0,#fffdf5 0,#f8f0e4 62%,#edf0e5 100%);text-align:center}
.our-story .section-heading{margin-bottom:36px}.our-story .script-heading{margin-bottom:0}
.story-leaf{position:absolute;width:240px;height:300px;background:url("../assets/banana-leaf.svg") center/contain no-repeat;opacity:.28;pointer-events:none}.story-leaf-left{left:-100px;top:-60px;transform:rotate(-35deg)}.story-leaf-right{right:-100px;bottom:-80px;transform:scaleX(-1) rotate(-35deg)}
.story-content{max-width:1090px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr) 50px minmax(0,1fr);align-items:center;gap:8px;position:relative;z-index:1}
.story-chapter{min-height:245px;padding:34px 26px 28px;background:#fffdf8;border:1px solid #e2cfaa;box-shadow:0 14px 26px #67513a14;display:flex;align-items:center;justify-content:center;flex-direction:column}
.story-chapter p{font-family:var(--serif);font-size:clamp(20px,2.2vw,26px);line-height:1.32;color:#5e413d;margin:12px 0 0}.story-spark{font-size:25px;color:var(--gold);line-height:1}
.story-thread{height:1px;background:#c5a467;position:relative}.story-thread span{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#f9f3e8;color:#b88c47;padding:0 6px;font-size:20px}
.ceremony-ornament{width:min(760px,94%);max-height:310px}
@media(max-width:800px){.story-content{grid-template-columns:1fr;max-width:550px;gap:0}.story-chapter{min-height:auto;padding:27px 24px}.story-thread{width:1px;height:34px;margin:auto}.story-thread span{font-size:18px}.hero-details{padding:12px 18px}.hero .hero-date{font-size:10px;letter-spacing:.11em}}
@media(max-width:600px){.hero-details{padding:12px 15px}.hero .hero-subtitle{font-size:22px}.hero .hero-date{display:flex;flex-direction:column;gap:3px;line-height:1.3;font-size:10px}.hero .hero-date i{display:none}.our-story{padding-top:75px;padding-bottom:75px}.story-leaf{width:145px;height:190px}.story-leaf-left{left:-78px}.story-leaf-right{right:-78px}.ceremony-ornament{width:100%}}
.hanging-florals{position:absolute;top:0;left:0;right:0;height:150px;background:url("../assets/hanging-florals.svg") center top/auto 150px repeat-x;opacity:.78;pointer-events:none}.invitation{padding-top:190px}.invitation .banana-corner{top:65px;opacity:.56}
@media(max-width:600px){.hanging-florals{height:115px;background-size:auto 115px}.invitation{padding-top:155px}.invitation .banana-corner{top:72px;opacity:.35}}
/* The arched cream-stone entrance and warm teak doors replace the former dark panels. */
.door-transition{background:#f4ebd9}
.door-panel{top:0;bottom:0;width:33.333%;background:#9a5429 url("../assets/temple-wood-door.svg") center/100% 100% no-repeat;border:0;box-shadow:inset 0 0 14px #3e2117;transform-origin:center}
.door-left{left:16.667%;border-right:3px solid #6b381e}.door-right{right:16.667%;border-left:3px solid #6b381e}
.door-handle{top:55%;width:25px;height:32px;background:transparent;border:4px solid #3e2419;border-radius:50%;box-shadow:0 0 0 2px #b77d3d,0 2px 4px #1f100a66}
.door-left .door-handle{right:20px}.door-right .door-handle{left:20px}
.temple-door-frame{inset:0;border:0;box-shadow:none;background:url("../assets/temple-stone-arch.svg") center/100% 100% no-repeat}
.temple-door-frame:before,.temple-door-frame:after{display:none}
.door-backdrop{background:radial-gradient(circle at center,#fffdf6,#eee2cb)}
/* Light temple and lotus backdrop for the first page after the doors open. */
.childhood{background:#fbf6eb url("../assets/light-temple-background.webp") center/cover no-repeat}
.childhood:before{content:"";display:block;position:absolute;inset:0;background:#fffaf245;pointer-events:none}.childhood:after{display:none}
.childhood .section-heading,.childhood-photos,.childhood-note{position:relative;z-index:1}
.childhood .section-heading p,.childhood-note{text-shadow:0 1px 5px #fffaf2}
/* A compact interwoven SK mark appears on the cover, header, and footer. */
.brand{display:flex;align-items:center;gap:10px}.sk-mark{display:inline-block;position:relative;flex:none;width:70px;height:66px;font-family:var(--script);font-weight:400;color:#b78439;text-shadow:0 1px 0 #fff4d4,0 3px 8px #5b381f35}
.sk-mark span{position:absolute;display:block;line-height:1}.sk-mark span:first-child{left:4px;top:-2px;font-size:62px}.sk-mark span:last-child{left:27px;top:12px;font-size:59px}
.sk-mark-small{width:54px;height:42px}.sk-mark-small span:first-child{font-size:38px;left:1px;top:-2px}.sk-mark-small span:last-child{font-size:35px;left:18px;top:7px}
.sk-mark-hero{margin:0 auto 5px;width:70px;height:59px}.sk-mark-footer{margin:0 auto;width:70px;height:64px;color:#efcb83;text-shadow:0 2px 6px #351820}
/* The user's marriage illustration is the featured artwork. */
.marriage-art{position:relative;display:block;width:min(480px,94%);margin:35px auto 16px;border:8px solid #fffaf1;box-shadow:0 12px 26px #5d44301c;background:#f8f0de}
.marriage-art img{width:100%;height:auto;display:block}.marriage-art-seal{position:absolute;right:-1%;bottom:-1%;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;background:#f1e7d2;border:3px double #bd9a5b;color:#b77b43;font-size:46px;box-shadow:0 2px 8px #5d443035}
.ceremony-ornament{width:min(450px,70%);max-height:170px;margin:4px auto -4px;opacity:.95}
.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:850px}
.countdown-days div{width:225px;height:120px}.countdown-days strong{font-size:58px}.countdown-days span{font-size:10px}
@media(max-width:700px){.door-left{left:16.667%}.door-right{right:16.667%}.door-handle{width:18px;height:22px;border-width:3px}.door-left .door-handle{right:7px}.door-right .door-handle{left:7px}.childhood{background-size:auto 100%;background-position:right center}.childhood:before{background:#fffaf285}.event-grid{grid-template-columns:1fr}.marriage-art{width:100%;border-width:5px}.marriage-art-seal{width:76px;height:76px;font-size:28px;border-width:2px}.ceremony-ornament{width:76%;max-height:140px}.sk-mark-small{width:48px}.brand{gap:6px}}

/* Keep the entire temple facade in view on wide screens; use its central facade on phones. */
.hero{height:100svh;min-height:650px;max-height:none}
.hero-art{background-color:#faf4e7;background-size:cover,contain;background-position:center,center bottom;background-repeat:no-repeat;transform:none;animation:none}
.hero-content{margin-top:0}
.ganesha-mark{display:block;width:60px;height:68px;object-fit:contain}
.gold-divider{margin:4px auto}
.gold-divider:before,.gold-divider:after{width:42px}

/* A consistent light temple-and-lotus paper backdrop ties the pages together. */
.childhood,.our-story,.invitation,.events,.countdown,.venue{background-color:#fbf6eb;background-image:linear-gradient(#fffaf2ad,#fffaf2ad),url("../assets/light-temple-background.webp");background-size:cover,cover;background-position:center,right center;background-repeat:no-repeat}
.childhood:before{display:none}
.childhood .section-heading,.childhood-photos,.childhood-note,.our-story .section-heading,.story-content,.invitation > :not(.hanging-florals):not(.banana-corner),.events > *,.countdown > *,.venue > *{position:relative;z-index:1}

/* The supplied transparent procession is integrated directly with the page art. */
.procession-art{width:min(1140px,100%);margin:46px auto 8px;overflow:hidden}
.procession-art img{display:block;width:100%;height:auto;filter:drop-shadow(0 8px 5px #5a342133)}

@media(max-width:700px){
  .hero{height:100svh;min-height:650px;max-height:none}
  .hero-art{background-size:cover,auto 100%;background-position:center,center bottom}
  .hero-content{margin-top:-70px}
  .ganesha-mark{width:48px;height:55px}
  .childhood,.our-story,.invitation,.events,.countdown,.venue{background-image:linear-gradient(#fffaf2c2,#fffaf2c2),url("../assets/light-temple-background.webp");background-size:cover,auto 100%;background-position:center,75% center}
  .procession-art{width:calc(100% + 36px);margin:38px -18px 6px}
  .procession-art img{position:relative;left:50%;width:max(100%,650px);max-width:none;transform:translateX(-50%)}
}

/* Courtyard scene from the supplied wedding-film frame replaces the temple backdrop. */
.hero-art{background-image:linear-gradient(to bottom,#fffaf0d9 0%,#fffaf0a6 42%,#fffaf024 79%,#fffaf00a),url("../assets/courtyard-wide.webp");background-size:cover,cover;background-position:center,center bottom}
.hero::after{background:linear-gradient(to bottom,#fffaf05c,transparent 75%)}
.hero-content{margin-top:-34px}
.hero h1{margin-top:11px}
.childhood,.our-story,.invitation,.events,.countdown,.venue{background-image:linear-gradient(#fffaf2b8,#fffaf2b8),url("../assets/courtyard-wide.webp");background-position:center,center center;background-size:cover,cover}
.brand{gap:0}
.ceremony-art{width:min(1150px,100%);margin:44px auto 12px;overflow:hidden}
.ceremony-art img{display:block;width:100%;height:auto;filter:drop-shadow(0 9px 6px #633d242b)}
@media(max-width:700px){
  .hero-art{background-image:linear-gradient(to bottom,#fffaf0d9 0%,#fffaf0a8 47%,#fffaf027 82%,#fffaf008),url("../assets/courtyard-mobile.webp");background-size:cover,cover;background-position:center,center center}
  .hero-content{margin-top:-55px}
  .childhood,.our-story,.invitation,.events,.countdown,.venue{background-image:linear-gradient(#fffaf2c2,#fffaf2c2),url("../assets/courtyard-mobile.webp");background-size:cover,cover;background-position:center,center center}
  .ceremony-art{width:calc(100% + 36px);margin:36px -18px 8px}
  .ceremony-art img{position:relative;left:50%;width:max(100%,620px);max-width:none;transform:translateX(-50%)}
}

/* After the childhood page, each chapter gets its own South Indian home setting. */
.our-story{background-image:linear-gradient(#fffaf24d,#fffaf24d),url("../assets/story-house.webp");background-position:center,center center;background-size:cover,cover}
.invitation{background-image:linear-gradient(#fffaf21a,#fffaf21a),url("../assets/invitation-doorway.webp");background-position:center,center center;background-size:cover,cover}
.events{background-image:linear-gradient(#fffaf2a6,#fffaf2a6),url("../assets/celebrations-home.webp");background-position:center,center center;background-size:cover,cover}
.countdown{background-image:linear-gradient(#fffaf285,#fffaf285),url("../assets/story-house.webp");background-position:center,center center;background-size:cover,cover}
.venue{background-image:linear-gradient(#fffaf2a3,#fffaf2a3),url("../assets/celebrations-home.webp");background-position:center,center center;background-size:cover,cover}
.ceremony-art{width:min(1000px,82%);margin-top:64px}
@media(max-width:700px){
  .our-story{background-image:linear-gradient(#fffaf280,#fffaf280),url("../assets/story-house.webp");background-size:cover,auto 100%;background-position:center,27% center}
  .invitation{background-image:linear-gradient(#fffaf2ac,#fffaf2ac),url("../assets/invitation-doorway.webp");background-size:cover,auto 100%;background-position:center,45% center}
  .events,.venue{background-image:linear-gradient(#fffaf2c7,#fffaf2c7),url("../assets/celebrations-home.webp");background-size:cover,auto 100%;background-position:center,center center}
  .countdown{background-image:linear-gradient(#fffaf2a6,#fffaf2a6),url("../assets/story-house.webp");background-size:cover,auto 100%;background-position:center,27% center}
  .ceremony-art{width:calc(100% + 36px);margin:43px -18px 8px}
}

/* The venue now shows a live map preview in place of the compass ornament. */
.venue-panel{max-width:970px;gap:34px;padding:40px 46px}
.venue-map{position:relative;z-index:1;flex:0 0 270px;width:270px;height:210px;border:5px solid #fffdf8;outline:1px solid #d9c39b;box-shadow:0 9px 24px #4b47321c;overflow:hidden;background:#e9e7dc}
.venue-map iframe{display:block;width:100%;height:100%;border:0}
.venue-map iframe{pointer-events:none}
.venue-map-link{position:absolute;z-index:2;inset:0;display:block;text-decoration:none}
.venue-map-link span{position:absolute;top:9px;right:9px;padding:5px 9px;background:#fffaf2f0;border:1px solid #d9c39b;color:var(--maroon);font-size:10px;font-weight:700;letter-spacing:.04em;box-shadow:0 2px 8px #463d2a24}
.venue-map-link:focus-visible{outline:3px solid var(--maroon);outline-offset:-3px}
.venue-details{position:relative;z-index:1;min-width:0}
.venue-details h3{line-height:1.1}
.venue-details #venueAddress{max-width:450px}
@media(max-width:700px){
  .venue-panel{padding:28px 24px}
  .venue-map{width:100%;height:210px;margin:0 auto 26px}
  .venue-details #venueAddress{margin-left:auto;margin-right:auto}
}

/* Story cards share one top and bottom line at desktop widths. */
.story-content{align-items:stretch}
.story-chapter{height:100%;min-height:300px}
.story-thread{align-self:center}
@media(max-width:800px){.story-chapter{height:auto;min-height:0}}

/* Illustrated celebration cards, each with a quiet motion cue. */
.event-grid{max-width:1050px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:26px}
.event-card{min-height:545px;padding:16px 22px 28px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border-color:#dbc59b;background:#fffaf1;box-shadow:0 16px 38px #58442c22;transition:transform .35s ease,box-shadow .35s ease}
.event-card:hover{transform:translateY(-5px);box-shadow:0 22px 46px #58442c30}
.event-card:before{inset:9px;border-color:#e4d2ad}
.event-card:after{content:none}
.event-sequence{position:absolute;z-index:2;top:27px;left:32px;font-family:var(--serif);font-size:22px;font-weight:700;color:#fff6e6;text-shadow:0 1px 4px #1d1724a8}
.event-art{position:relative;z-index:1;width:100%;height:295px;overflow:hidden;border-radius:210px 210px 12px 12px;box-shadow:inset 0 0 0 2px #d7b874,0 5px 14px #48332222}
.event-art img{width:100%;height:100%;object-fit:contain;object-position:center bottom;transform-origin:50% 76%;will-change:transform}
.event-card-sangeeth .event-art{background:radial-gradient(circle at 50% 40%,#a16f62,#492b35 75%)}
.event-card-varapooje .event-art{background:radial-gradient(circle at 50% 40%,#788360,#253f36 80%)}
.event-card-reception .event-art{background:radial-gradient(circle at 50% 40%,#788ba0,#253349 80%)}
.event-card-muhurtham .event-art{background:radial-gradient(circle at 50% 40%,#fff9e9,#ead9b7 85%)}
.event-card-muhurtham .event-sequence{color:#7a3a34;text-shadow:none}
.event-card h3{font-size:41px;margin:12px 0 0;line-height:1.05}
.event-card h3:after{content:"✦";display:block;margin:6px auto 1px;color:#bb934b;font-size:18px;font-family:Georgia,serif;line-height:1}
.event-card .event-date{font-size:20px;margin-top:4px}
.event-card .event-time{font-family:var(--serif);font-size:27px;color:var(--maroon);font-weight:700;line-height:1.1;margin-top:6px}
.event-card .event-place{font-size:17px;margin-top:7px}
.event-card-sangeeth .event-art img{animation:dance-sway 2.7s ease-in-out infinite alternate}
.event-card-varapooje .event-art img{animation:gentle-rise 4.4s ease-in-out infinite}
.event-card-reception .event-art img{animation:gentle-rise 5.2s ease-in-out infinite}
.event-card-muhurtham .event-art img{animation:ceremony-glow 4s ease-in-out infinite}
@keyframes dance-sway{from{transform:rotate(-1.2deg) translate(-2px,2px)}to{transform:rotate(1.2deg) translate(2px,-3px)}}
@keyframes gentle-rise{0%,100%{transform:translateY(2px)}50%{transform:translateY(-5px)}}
@keyframes ceremony-glow{0%,100%{filter:brightness(1);transform:scale(1)}50%{filter:brightness(1.08);transform:scale(1.012)}}
@media(max-width:700px){.event-grid{grid-template-columns:1fr;max-width:500px;gap:22px}.event-card{min-height:0}.event-art{height:270px}}
@media(max-width:430px){.event-card{padding:13px 15px 24px}.event-art{height:240px}.event-card h3{font-size:36px}}
@media(prefers-reduced-motion:reduce){.event-card,.event-art img{animation:none!important;transition:none!important}}

/* A richer carved entrance keeps the two leaves independent for the reveal. */
.door-transition{background:#d4c29d}
.door-panel{background:#673419 url("../assets/temple-grand-doors.webp") center/100% 100% no-repeat;border:0;box-shadow:inset 0 0 22px #2b140e,0 0 20px #24140c99;backface-visibility:hidden;transition:transform 1.55s cubic-bezier(.58,.02,.18,1)}
.door-left{border-right:5px solid #c48c42;transform-origin:left center}
.door-right{border-left:5px solid #c48c42;transform-origin:right center}
.door-transition.is-opening .door-left{transform:perspective(1400px) rotateY(-87deg)}
.door-transition.is-opening .door-right{transform:perspective(1400px) rotateY(87deg)}
.temple-door-frame{background:url("../assets/temple-grand-arch.svg") center/100% 100% no-repeat;filter:drop-shadow(0 3px 8px #4b341c55)}
.door-handle{top:54%;width:42px;height:42px;border:5px solid #dfb45e;background:radial-gradient(circle at 37% 32%,#f9df94,#9d602a 68%,#5c3219);box-shadow:0 0 0 5px #4c2414,0 0 0 9px #bb8740,0 4px 12px #1e0d08a0}
.door-handle:after{content:"";position:absolute;inset:8px;border:3px solid #53301c;border-radius:50%}
.door-left .door-handle{right:16px}.door-right .door-handle{left:16px}
@media(max-width:700px){.door-handle{width:25px;height:25px;border-width:3px;box-shadow:0 0 0 3px #4c2414,0 0 0 5px #bb8740}.door-handle:after{inset:5px;border-width:2px}.door-left .door-handle{right:7px}.door-right .door-handle{left:7px}}
.door-panel{background-image:url("../assets/temple-grand-doors.webp");background-size:200% 100%}
.door-left{background-position:left center}.door-right{background-position:right center}
.door-handle{display:none}

/* The cover keeps its navigation without repeating the couple's names. */
.site-header{justify-content:flex-end}
.ganesha-mark{width:88px;height:116px;object-fit:contain}
@media(max-width:800px){.site-header{display:none}}
@media(max-width:600px){.ganesha-mark{width:68px;height:90px}}

/* Travel details stay within the venue panel, below the map and address. */
.venue-panel{display:block;max-width:970px}
.venue-main{display:flex;align-items:center;gap:34px}
.venue-transport{position:relative;z-index:1;margin-top:28px;padding-top:22px;border-top:1px solid #e8d9bd}
.transport-intro h4{font-family:var(--serif);font-size:29px;line-height:1.15;color:var(--maroon);margin:1px 0 2px}
.transport-intro>p:last-child{font-size:13px;color:var(--muted)}
.transport-days{display:grid;grid-template-columns:1.35fr 1fr;gap:12px;margin-top:14px}
.transport-day{background:#faf4e9;border:1px solid #eadcc4;border-left:3px solid var(--gold);padding:12px 15px}
.transport-day h5{font-family:var(--serif);font-size:21px;color:var(--maroon);line-height:1.1;margin:0 0 7px}
.transport-day p{font-size:12px;line-height:1.5;margin:3px 0}
.transport-day strong{font-weight:700;color:var(--ink)}
.green-line-badge{display:inline-block;vertical-align:middle;padding:2px 8px;margin:0 3px;border:1px solid #91b29a;border-radius:999px;background:#e5f1e5;color:#2d684a;font:700 10px/1.4 var(--sans);letter-spacing:.04em;white-space:nowrap}
.transport-arrow{color:var(--gold);font-weight:700}
.bus-details{max-width:720px;margin:18px 0 4px;border:1px solid #dfc9a4;background:#fffaf1ee;box-shadow:0 7px 22px #694b2912}
.bus-details summary{display:flex;align-items:center;gap:10px;min-height:48px;padding:9px 16px;color:var(--maroon);font:700 12px/1.3 var(--sans);letter-spacing:.05em;cursor:pointer;list-style:none}
.bus-details summary::-webkit-details-marker{display:none}
.bus-details summary:hover{background:#f8edda}
.bus-details summary:focus-visible{outline:3px solid var(--maroon);outline-offset:2px}
.bus-details-icon{font-size:22px;line-height:1}
.bus-details-chevron{margin-left:auto;font-size:22px;font-weight:400;line-height:1;transition:transform .25s ease}
.bus-details[open] .bus-details-chevron{transform:rotate(180deg)}
.bus-details-content{padding:4px 17px 18px;border-top:1px solid #ead9bb;animation:bus-panel-in .3s ease-out both}
.bus-details-content p{max-width:650px;margin:11px 0;color:var(--ink);font-size:12px;line-height:1.65}
.bus-details-content a{color:var(--maroon);font:700 11px/1.4 var(--sans);text-decoration:none;border-bottom:1px solid var(--gold)}
.bus-details-content a:hover{color:#a24f54}
.bus-details-content a:focus-visible{outline:3px solid var(--maroon);outline-offset:3px}
.bus-journey{display:flex;align-items:center;gap:10px;margin:12px 0 15px;color:#745c4d;font:700 10px/1.2 var(--sans);letter-spacing:.03em}
.bus-journey-track{position:relative;flex:1;max-width:190px;border-top:2px dashed #c5a164}
.bus-journey-track span{position:absolute;top:-15px;left:0;font-size:18px;line-height:1;animation:bus-travel 5s ease-in-out infinite alternate}
@keyframes bus-panel-in{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
@keyframes bus-travel{from{left:0}to{left:calc(100% - 22px)}}
@media(max-width:460px){.bus-journey{gap:7px;font-size:9px}.bus-journey-track{min-width:52px}}
@media(prefers-reduced-motion:reduce){.bus-details-content,.bus-journey-track span{animation:none}.bus-journey-track span{left:50%}.bus-details-chevron{transition:none}}
@media(max-width:700px){
  .venue-main{display:block}
  .venue-transport{margin-top:24px;text-align:left}
  .transport-days{grid-template-columns:1fr}
}

/* The cover stays in view until visitors open the invitation. Short screens
   can scroll within the cover so the button always remains reachable. */
html.invitation-locked{overflow:hidden;overscroll-behavior:none}
body.invitation-locked{position:fixed;inset:0;width:100%;height:100dvh;overflow:hidden;overscroll-behavior:none}
body.invitation-locked .hero{height:100dvh;min-height:0;max-height:none;overflow-x:hidden;overflow-y:auto;align-items:safe center;overscroll-behavior:contain}
body.invitation-locked .hero-content{margin-top:0}
body.invitation-locked .site-header nav{visibility:hidden}
body.invitation-locked .scroll-cue{display:none}

/* The blessing is a framed glimpse behind the doors, then the story takes over. */
.door-transition.is-active{background:radial-gradient(circle at center,#fff8e9 0,#e8d8b9 78%,#c9aa79 100%)}
.door-blessing{position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:linear-gradient(#fff9eda8,#fff9eda8),url("../assets/light-temple-background.webp") center/cover no-repeat}
.door-blessing img{display:block;width:auto;height:94svh;max-width:96vw;object-fit:contain;filter:drop-shadow(0 12px 22px #4c321e40)}
.door-panel{z-index:2}

/* Two current-photo slots complete Our Story when the photos are supplied. */
.story-photos{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;width:min(640px,100%);margin:4px auto 42px}
.story-photo{margin:0;min-width:0}
.story-photo-frame{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:2/3;background:linear-gradient(145deg,#fffaf2e8,#eee3d6e8);border:9px solid #fffdf8;outline:1px solid #d4b986;box-shadow:0 14px 30px #59483b2a;color:#a37960;overflow:hidden}
.story-photo-frame:after{content:"";position:absolute;inset:8px;border:1px solid #d9c6a3;pointer-events:none}
.story-photo-frame span{font-size:30px;color:#c09b5a;line-height:1}
.story-photo-frame p{font:italic 23px/1.2 var(--serif);margin:12px 0 0}
.story-photo-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story-photo-frame.has-photo span,.story-photo-frame.has-photo p{display:none}
@media(max-width:700px){
  .story-photos{gap:13px;margin-top:0;margin-bottom:30px}
  .story-photo-frame{border-width:6px}
  .story-photo-frame p{font-size:17px}
}
@media(max-width:380px){.story-photo-frame p{font-size:15px}}

/* Music starts only after the guest opens the invitation. */
.music-toggle{position:fixed;z-index:80;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));display:none;align-items:center;gap:8px;padding:9px 13px;border:1px solid #d9bd8a;border-radius:999px;background:#fffaf3ed;color:var(--maroon);box-shadow:0 5px 18px #4b312a2e;font:700 11px var(--sans);letter-spacing:.03em;cursor:pointer;backdrop-filter:blur(6px)}
.music-toggle.is-visible{display:inline-flex}
.music-toggle span:first-child{font-size:18px;line-height:1;color:var(--gold)}
/* Guest wishes: a cork-board inspired wall of paper notes. */
.wishes{background:#fbf1df;background-image:radial-gradient(circle at 12% 20%,#e9c89755,transparent 28%),radial-gradient(circle at 90% 80%,#acb78a38,transparent 26%),url("../assets/light-temple-background.webp");background-size:cover,cover,cover;background-position:center}
.wishes .section-heading{position:relative;z-index:1}
.wishes-layout{position:relative;z-index:1;display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:clamp(20px,4vw,54px);align-items:start;max-width:1120px;margin:auto}
.wish-form{position:relative;display:flex;flex-direction:column;gap:9px;padding:30px;background:#fffaf0f2;border:1px solid #d7bb8d;box-shadow:0 14px 36px #6a4b2b24}
.wish-form:before{content:"";position:absolute;inset:8px;border:1px solid #e5d4b5;pointer-events:none}
.wish-form-ornament{align-self:center;color:#be9b53;font-size:24px;line-height:1}
.wish-form h3{margin:0 0 7px;text-align:center;color:var(--maroon);font:600 34px/1.15 var(--serif)}
.wish-form label{font:700 10px/1.2 var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--maroon);margin-top:6px}
.wish-form input,.wish-form textarea{width:100%;border:1px solid #d6c2a0;border-radius:2px;background:#fffdf8;color:var(--ink);padding:11px 12px;outline:none;font:15px/1.5 var(--sans)}
.wish-form textarea{resize:vertical;min-height:124px}
.wish-form input:focus-visible,.wish-form textarea:focus-visible{border-color:var(--maroon);box-shadow:0 0 0 3px #782d3626}
.wish-form-meta{display:flex;justify-content:space-between;align-items:start;gap:12px;color:#746458;font-size:11px;line-height:1.4}
.wish-form-meta span:last-child{white-space:nowrap}
.wish-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.wish-form .button{align-self:stretch;margin-top:12px}
.wish-form .button:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.wish-status{min-height:1.4em;margin:2px 0 0;color:var(--maroon);font-size:12px;line-height:1.4;text-align:center}
.wish-status.is-error{color:#a33232}
.wish-board{position:relative;min-height:340px;padding:32px clamp(15px,2.5vw,30px) 24px;border:13px solid #a47748;outline:2px solid #6c462a;box-shadow:inset 0 0 0 3px #d3ab76,0 18px 38px #5b39263b;background:repeating-linear-gradient(25deg,#d2ad7d,#d2ad7d 5px,#c99e6b 6px,#d2ad7d 11px)}
.wish-board-top{position:absolute;inset:8px 10px auto;display:flex;justify-content:space-between;color:#f6dfae;font-size:15px}
.wish-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-content:start}
.wish-note{position:relative;min-height:120px;padding:17px 16px 13px;background:#fff0ad;color:#4e3e35;box-shadow:3px 8px 13px #62442f55;transform:translate(-3px,2px) rotate(-2deg);overflow-wrap:anywhere}
.wish-note:nth-child(4n+2){background:#f8d7d1;transform:translate(4px,-3px) rotate(2deg)}
.wish-note:nth-child(4n+3){background:#dfe8d0;transform:translate(3px,3px) rotate(1deg)}
.wish-note:nth-child(4n+4){background:#eee0f0;transform:translate(-4px,-2px) rotate(-1deg)}
.wish-note:before{content:"";position:absolute;top:6px;left:50%;width:8px;height:8px;border-radius:50%;background:#a13d48;box-shadow:1px 2px 2px #49392f88;transform:translateX(-50%)}
.wish-note p{margin:6px 0 11px;font:500 clamp(16px,1.7vw,19px)/1.18 var(--serif);white-space:pre-wrap}
.wish-note footer{font:700 10px/1.3 var(--sans);letter-spacing:.03em;color:#6a4b45}
.wish-empty{grid-column:1/-1;margin:70px 0;text-align:center;color:#563f32;font:italic 29px/1.2 var(--serif);text-shadow:0 1px #fbe7c5}
.wish-page-status{margin:18px 0 0;text-align:center;color:#624a38;font:700 11px/1.4 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.wish-next-button[hidden]{display:none}
.wish-next-button{display:block;margin:14px auto 0;padding:9px 18px;border:1px solid #8e683c;border-radius:999px;background:#fffaf1;color:var(--maroon);font:700 11px/1.3 var(--sans);letter-spacing:.04em;cursor:pointer}
.wish-next-button:hover{background:#f3dfb6}
.wish-next-button:focus-visible{outline:3px solid var(--maroon);outline-offset:3px}
.wish-next-button:disabled{opacity:.55;cursor:wait}
@media(max-width:760px){.wishes-layout{grid-template-columns:1fr;max-width:560px}.wish-board{min-height:280px}.wish-form{padding:25px}}
@media(max-width:460px){.wish-notes{grid-template-columns:1fr;gap:14px}.wish-note{min-height:105px}.wish-board{padding:30px 20px 25px}.wish-empty{margin:48px 0}}
@media(prefers-reduced-motion:reduce){.wish-note{transform:none!important}}
.music-toggle:focus-visible{outline:3px solid var(--maroon);outline-offset:3px}
.language-toggle{position:fixed;z-index:81;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));min-width:74px;min-height:40px;padding:8px 13px;border:1px solid #d9bd8a;border-radius:999px;background:#fffaf3f2;color:var(--maroon);box-shadow:0 5px 18px #4b312a2e;font:700 12px/1.2 var(--sans);cursor:pointer;backdrop-filter:blur(6px)}
.language-toggle:hover{background:#f8edda}
.language-toggle:focus-visible{outline:3px solid var(--maroon);outline-offset:3px}
html[lang="kn"]{--serif:"Noto Serif Kannada",serif;--script:"Noto Serif Kannada",serif;--sans:"Noto Sans Kannada",sans-serif}
html[lang="kn"] .eyebrow,html[lang="kn"] .small-label,html[lang="kn"] .site-header nav a{letter-spacing:.04em}
html[lang="kn"] .hero h1{font-size:clamp(49px,7vw,92px);line-height:1.26}
html[lang="kn"] .script-heading{font-size:clamp(38px,5vw,63px);line-height:1.35}
html[lang="kn"] .hero-kicker{line-height:1.6}
html[lang="kn"] .event-card h3{font-size:clamp(30px,3vw,42px)}
html[lang="kn"] .date-reveal h2{line-height:1.4}
@media(max-width:600px){html[lang="kn"] .hero h1{font-size:clamp(39px,10vw,56px)}html[lang="kn"] .hero h1 .ampersand{font-size:24px;line-height:1.2}html[lang="kn"] .script-heading{font-size:clamp(33px,8vw,43px)}html[lang="kn"] .hero-content{padding-left:22px;padding-right:22px}}

/* Keep the mobile cover title clear of the floral garland and script flourishes. */
@media(max-width:600px){
  .hero{align-items:start}
  .hero-content,body.invitation-locked .hero-content{margin-top:30px;padding:0 15px 32px}
  .hero h1{gap:4px;font-size:clamp(61px,16vw,70px);line-height:.95}
  .hero h1 .ampersand{font-size:34px;line-height:1;margin:5px 0 9px}
  #openInvitation{min-width:240px;min-height:58px;padding:14px 24px;border:2px solid #efd49b;background:linear-gradient(135deg,#85313e,#682632);box-shadow:0 0 0 4px #fff9e4b8,0 12px 25px #4c1f2e59;color:#fffdf5;font-size:12px;letter-spacing:.13em}
  #openInvitation span{color:#f6d997;font-size:18px;line-height:1}
  #openInvitation:focus-visible{outline:3px solid #682632;outline-offset:5px}
}

/* A small interactive save-the-date moment between childhood and Our Story. */
.countdown-reveal{overflow:hidden;background:#fbf3e5;background-image:radial-gradient(circle at 50% 20%,#fffaf1e8,#f4e8d5de),url("../assets/light-temple-background.webp");background-size:cover,cover}
.countdown-reveal:before,.countdown-reveal:after{content:"❀";font-size:clamp(90px,14vw,180px);top:20%;color:#d9b87d42}
.countdown-reveal .countdown-panel,.countdown-reveal .date-reveal{position:relative;z-index:1}
.countdown-reveal .countdown-note{margin:8px 0 0;color:#855b52}
.countdown-panel[hidden]{display:none}
.countdown-panel{max-width:620px;margin:38px auto 0;padding-top:30px;border-top:1px solid #d4b88b;text-align:center;opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease}
.countdown-panel.is-visible{opacity:1;transform:none}
.countdown-panel .script-heading{font-size:clamp(46px,7vw,72px);margin:7px 0 0}
.countdown-clock{gap:12px;flex-wrap:wrap;margin:26px auto 52px}
.countdown-clock div{width:clamp(72px,18vw,112px);height:clamp(82px,18vw,112px);background:#fffaf1df;border:1px solid #c8a66e;border-radius:12px;box-shadow:0 8px 22px #8b634627}
.countdown-clock strong{font-size:clamp(34px,7vw,52px)}
.countdown-clock span{font-size:clamp(8px,1.4vw,10px);letter-spacing:.12em;color:#77434a}
.date-reveal{width:min(500px,100%);margin:auto;padding:30px 20px 25px;background:#fffaf1d9;border:1px solid #d9bc8c;box-shadow:0 15px 40px #684b2c1e}
.date-reveal .eyebrow{margin:0 0 4px;color:#a67438}
.date-reveal h2{max-width:430px;margin:5px auto 6px;font:400 clamp(29px,5.6vw,40px)/1.12 var(--serif);color:var(--maroon)}
.date-reveal-instruction{display:flex;align-items:center;justify-content:center;gap:12px;margin:8px 0 12px;color:#9b7041;font:italic clamp(19px,4vw,23px)/1.2 var(--serif)}
.date-reveal-instruction:before,.date-reveal-instruction:after{content:"";width:34px;height:1px;background:#caa771}
.scratch-heart{position:relative;width:min(320px,100%);aspect-ratio:320/290;margin:0 auto;cursor:crosshair;outline:none}
.scratch-heart:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 290'%3E%3Cpath d='M160 255 C105 210 15 155 15 85 C15 20 105 10 160 75 C215 10 305 20 305 85 C305 155 215 210 160 255 Z' fill='%23fff0dc' stroke='%23b8874f' stroke-width='3'/%3E%3C/svg%3E") center/contain no-repeat}
.scratch-answer{position:absolute;inset:18% 13% 30%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--maroon);pointer-events:none}
.scratch-answer span{font:italic clamp(14px,4vw,18px)/1.1 var(--serif)}
.scratch-answer strong{font:600 clamp(23px,7vw,31px)/.95 var(--serif)}
.scratch-answer small{font:700 10px/1.2 var(--sans);letter-spacing:.13em;text-transform:uppercase}
.scratch-heart canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;transition:opacity .6s ease}
.scratch-heart:not(.has-canvas):not(.is-revealed):after{content:"Scratch to reveal";position:absolute;inset:5% 5% 12%;display:grid;place-items:center;background:#d8b681;color:#6d3039;font:italic 25px/1 var(--serif);clip-path:polygon(50% 100%,9% 45%,5% 25%,10% 10%,25% 2%,40% 7%,50% 20%,60% 7%,75% 2%,90% 10%,95% 25%,91% 45%)}
.scratch-heart.is-revealed canvas{opacity:0;pointer-events:none}
.scratch-heart:focus-visible{outline:3px solid var(--maroon);outline-offset:4px}
.reveal-date-button{margin:4px auto 0;padding:9px 19px;border:1px solid #a9794a;border-radius:999px;background:#fff5e4;color:var(--maroon);font:700 11px/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.reveal-date-button:hover{background:#efdcba}
.reveal-date-button:focus-visible{outline:3px solid var(--maroon);outline-offset:3px}
.reveal-date-button[hidden]{display:none}
@media(max-width:600px){.countdown-clock{gap:7px;margin-bottom:10px}.countdown-clock div{width:calc((100vw - 74px)/4);max-width:96px;height:85px}.date-reveal{padding:24px 12px 20px}.countdown-panel{margin-top:30px;padding-top:26px}}
@media(prefers-reduced-motion:reduce){.countdown-panel{transition:none;transform:none}}

/* Keep both complete childhood portraits readable on narrow screens. */
@media(max-width:600px){
  .childhood-photos{display:flex;flex-direction:column;align-items:center;gap:18px;width:100%;max-width:340px}
  .child-photo{width:min(78vw,300px);min-width:0}
  .child-photo-frame{height:auto;aspect-ratio:3/4;overflow:hidden;background:#eee8d9}
  .child-photo:nth-child(3) .child-photo-frame{background:#eee8d9}
  .child-real-photo{object-fit:contain;object-position:center}
  .childhood-join{flex-direction:row;justify-content:center;gap:12px;margin:2px 0}
  .childhood-join span:nth-child(2){font-size:38px}
  .child-photo>p{margin-top:10px}
}
