/* South Indian details and the opening sequence. */
.hero .hanging-bell{position:absolute;z-index:5;top:0;width:54px;height:104px;background:url("../assets/brass-bell.svg") center top/contain no-repeat;filter:drop-shadow(0 4px 5px #704c2529);pointer-events:none}
.hero .bell-one{left:12%}.hero .bell-two{right:12%;height:84px;width:44px}
.banana-corner{position:absolute;width:245px;height:292px;top:-38px;background:url("../assets/banana-leaf.svg") center/contain no-repeat;opacity:.72;pointer-events:none}
.banana-left{left:-60px;transform:rotate(-26deg)}.banana-right{right:-60px;transform:scaleX(-1) rotate(-26deg)}
.ceremony-ornament{width:min(700px,88%);max-height:280px;object-fit:contain;margin:28px auto -8px}
.section-ornament{color:#bb9a56}
.childhood{background:radial-gradient(circle at 10% 12%,#f6e8c8 0,transparent 24%),radial-gradient(circle at 91% 79%,#e5eddb 0,transparent 25%),#fcf7ec;text-align:center}
.childhood:before,.childhood:after{content:"";position:absolute;width:170px;height:220px;background:url("../assets/banana-leaf.svg") center/contain no-repeat;opacity:.42;pointer-events:none}
.childhood:before{left:-60px;bottom:-45px;transform:rotate(-48deg)}.childhood:after{right:-60px;top:-45px;transform:scaleX(-1) rotate(-48deg)}
.childhood .section-heading{margin-bottom:35px}.childhood .script-heading{font-size:clamp(48px,6vw,76px)}
.childhood-photos{display:grid;grid-template-columns:minmax(0,260px) 105px minmax(0,260px);align-items:center;justify-content:center;gap:22px;position:relative;z-index:1;margin:auto}
.child-photo-frame{height:310px;border:9px solid #fff9ee;outline:1px solid #d6bd8d;box-shadow:0 14px 30px #69503721;background:linear-gradient(145deg,#e9e2ce,#d6dabe);display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}
.child-photo:nth-child(3) .child-photo-frame{background:linear-gradient(145deg,#ead9cf,#ded4b6)}
.child-photo-frame:after{content:"";position:absolute;inset:9px;border:1px solid #fff8e6a8;pointer-events:none}
.child-initial{font-family:var(--script);font-size:115px;line-height:1;color:#7c403e88}.child-photo-label{position:absolute;bottom:16px;background:#fffaf1d9;padding:5px 13px;color:var(--maroon);font-size:9px;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.child-photo>p{font-family:var(--serif);font-size:30px;color:var(--maroon);margin:15px 0 0;font-weight:600}.childhood-join{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--gold);font-family:var(--serif);font-size:32px}.childhood-join span:nth-child(2){font-family:var(--script);font-size:60px;line-height:.8}.childhood-note{font-size:12px;color:var(--muted);margin:23px 0 0}
.event-card:after{content:"❀";position:absolute;color:#bd975988;font-size:17px;left:15px;top:12px}.events:before{content:"";position:absolute;left:0;right:0;top:0;height:12px;background:repeating-linear-gradient(90deg,#cda34f 0 16px,#fffaf1 16px 23px,#7b965f 23px 39px,#fffaf1 39px 46px)}
.door-transition{position:fixed;inset:0;z-index:60;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s;overflow:hidden;background:#f9f2e4}.door-transition.is-active{visibility:visible;opacity:1;pointer-events:auto}.door-transition.is-fading{opacity:0;pointer-events:none}
.door-backdrop{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(circle,#fffaf0 0,#f1e1be 90%);color:var(--maroon);text-align:center}.door-backdrop .door-symbol{font-size:90px;line-height:1;color:var(--gold);animation:door-glow 2s ease-in-out infinite alternate}.door-backdrop p{font-family:var(--script);font-size:clamp(36px,6vw,80px);line-height:1.2;margin:10px 20px}
.door-panel{position:absolute;top:0;bottom:0;width:50.1%;display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(90deg,transparent 0 37px,#edcc7430 38px 41px,transparent 42px 85px),linear-gradient(115deg,#6a2830,#87343b 45%,#602329);border:11px solid #b58b43;box-shadow:inset 0 0 0 4px #4d1b25,inset 0 0 0 11px #d4aa58,inset 0 0 0 18px #6a2830,0 0 25px #3c1c2070;transition:transform 1.45s cubic-bezier(.68,.02,.23,1);will-change:transform}
.door-left{left:0;border-right:6px solid #d9b569;transform-origin:left}.door-right{right:0;border-left:6px solid #d9b569;transform-origin:right}.door-transition.is-opening .door-left{transform:translateX(-103%)}.door-transition.is-opening .door-right{transform:translateX(103%)}
.door-panel:before{content:"";position:absolute;inset:8% 10%;border:3px solid #d8b261;box-shadow:inset 0 0 0 5px #6f2931,inset 0 0 0 8px #bf9551}.door-panel:after{content:"✦";position:absolute;top:11%;font-size:45px;color:#d7af5a}.door-carving{font-family:var(--serif);font-size:clamp(100px,20vw,260px);color:#ddb96f96;line-height:1}.door-handle{position:absolute;z-index:2;width:26px;height:26px;top:50%;border:6px solid #e5bf6b;background:#8d6429;border-radius:50%;box-shadow:0 0 0 4px #723034}.door-left .door-handle{right:28px}.door-right .door-handle{left:28px}
.petal-layer{z-index:75}.flower-petal{position:absolute;top:-50px;line-height:1;opacity:.95;text-shadow:0 2px 3px #5e423522;animation:flower-fall linear forwards;will-change:transform}
@keyframes flower-fall{0%{transform:translate3d(0,-20px,0) rotate(0);opacity:0}8%{opacity:1}85%{opacity:1}100%{transform:translate3d(var(--drift),110vh,0) rotate(640deg);opacity:0}}
@keyframes door-glow{from{opacity:.65;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}
@media(max-width:700px){.hero .bell-one{left:3%;width:34px;height:70px}.hero .bell-two{right:3%;width:31px;height:65px}.banana-corner{width:150px;height:180px;opacity:.5}.banana-left{left:-75px}.banana-right{right:-75px}.childhood-photos{grid-template-columns:1fr 55px 1fr;gap:8px}.child-photo-frame{height:220px;border-width:6px}.child-initial{font-size:80px}.child-photo>p{font-size:24px}.childhood-join{font-size:19px}.childhood-join span:nth-child(2){font-size:38px}.child-photo-label{font-size:7px;letter-spacing:.08em;padding:4px 7px}.door-panel{border-width:7px}.door-panel:before{inset:9% 8%}.door-carving{font-size:100px}.door-left .door-handle{right:11px}.door-right .door-handle{left:11px}}
@media(prefers-reduced-motion:reduce){.door-transition,.door-panel{transition:none!important}.flower-petal{display:none}}
.door-transition.is-active{visibility:visible;opacity:1;pointer-events:auto;transition:none}
.door-transition.is-active.is-fading{opacity:0;pointer-events:none;transition:opacity .55s ease}
.child-real-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.child-photo-frame.has-photo .child-initial,.child-photo-frame.has-photo .child-photo-label{display:none}
