/* Layout safety: animated artwork owns space instead of covering copy. */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:4%;height:auto;min-height:850px;max-height:none;padding:145px max(6%,calc((100vw - 1500px)/2)) 55px;align-items:center}
.hero-content{width:100%;min-width:0}.hero h1{font-size:clamp(64px,7.6vw,115px)}.hero h1>.second{margin-left:0}.hero h1>i{margin-left:22%;line-height:1.2}
.portrait-system{position:relative;inset:auto;width:100%;height:auto;aspect-ratio: .88;max-width:620px;justify-self:center;margin:20px 0 35px;isolation:isolate}
.hero-photo{inset:9% 10% 12%;transform:rotate(4deg)}.orbit-lines{inset:3%;width:94%;height:94%;z-index:-1}.portrait-word{position:relative;display:block;right:auto;bottom:auto;top:96%;text-align:center;transform:none;font-size:clamp(23px,2.3vw,30px)}.floating-note{display:none}
.hero-footer{position:relative;inset:auto;grid-column:1/-1;gap:24px;margin-top:30px;flex-wrap:wrap;justify-content:center}.edition,.scroll-hint{display:none}.hero-footer>.date-pill{margin:0}
.letter-heading .invitation-heart{position:relative;display:block;inset:auto;width:85px;height:95px;margin-top:25px;font-size:75px;line-height:95px;text-align:center;pointer-events:none}
.envelope{height:auto;min-height:380px}.envelope.open{margin-top:65px}.envelope.open .letter-paper{position:relative;inset:auto;transform:none;min-height:0;margin:0 14px 35px;padding:28px;animation:fadeIn .7s both}.envelope.open .envelope-flap{opacity:.35}.envelope.open .seal{visibility:hidden}
.meeting-visual{isolation:isolate;overflow:hidden;padding-bottom:55px}.meeting-photo{inset:0 0 60px}.meeting-orbit{inset:5%;width:90%;height:80%;z-index:1}.meeting-handwriting{left:0;bottom:0;transform:none;width:100%;text-align:center}.meeting-foot{margin-left:0}
.letter-layout,.meeting-layout,.place-layout{max-width:1280px;margin-left:auto;margin-right:auto}.letter-layout>*,.meeting-layout>*,.place-layout>*,.organizer-contact>*{min-width:0}
.dress-section{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}.palette{width:100%;padding-top:15px;max-width:740px}.palette span{animation:swatchFloat 7s ease-in-out infinite}.palette strong{overflow-wrap:normal;hyphens:auto}.map-orbit{max-width:100%;isolation:isolate}.map-ring{z-index:-1}.map-pin{animation:swatchFloat 6s ease-in-out infinite}
.music-area{margin-top:25px;pointer-events:auto;max-width:335px}.music-toggle{position:relative;inset:auto;width:max-content;max-width:100%;z-index:1}.music-panel{position:relative;inset:auto;width:100%;margin-top:15px;z-index:1;box-shadow:0 8px 30px #101d4d12}.music-panel .button{white-space:normal}
.closing{isolation:isolate;overflow:hidden}.closing-orbit{z-index:-1;pointer-events:none}.heart-particle{z-index:0!important;pointer-events:none}.organizer-contact{flex-wrap:wrap}.organizer-telegram{max-width:100%}.organizer-telegram span{min-width:0;overflow-wrap:anywhere}footer{gap:25px;flex-wrap:wrap}
@keyframes swatchFloat{50%{translate:0 -5px}}
@media(max-width:1000px){.hero{grid-template-columns:1fr;padding:130px 7% 40px;min-height:0;gap:30px}.hero-content{max-width:650px;justify-self:center}.hero h1{font-size:clamp(55px,10vw,90px)}.hero h1>.second{margin-top:0}.hero-description{max-width:100%}.portrait-system{width:min(100%,520px);margin:15px 0 25px;max-width:520px;aspect-ratio:1;height:auto;inset:auto}.hero-footer{margin-top:15px}.letter-layout{grid-template-columns:1fr}.meeting-layout{display:flex;flex-direction:column-reverse;gap:40px}.meeting-copy{width:100%;max-width:650px}.meeting-visual{width:min(100%,520px);height:550px;margin:auto}.place-layout{grid-template-columns:1fr;gap:40px}.place-name{text-align:center}.place-name h2{font-size:clamp(85px,13vw,130px)}.place-name h2 em,.place-scribble{margin-left:0}.place-scribble{transform:none}.dress-section{grid-template-columns:1fr;gap:40px}.palette{max-width:650px}.date-pill{flex-wrap:wrap;justify-content:center}}
@media(max-width:700px){.hero{padding-top:110px;gap:20px}.hero h1{font-size:clamp(44px,12.8vw,80px);letter-spacing:-1px}.hero h1>i{margin:8px 0 8px 22%;font-size:30px}.hero h1>.second{margin-left:0}.hero-content>.eyebrow{font-size:10px;letter-spacing:.6px}.portrait-system{width:100%;max-width:450px;aspect-ratio:.95;height:auto;bottom:auto}.portrait-word{font-size:24px;right:auto;bottom:auto}.hero-footer{left:auto;right:auto;bottom:auto}.nav{gap:10px;flex-wrap:wrap;padding:20px 6%}.nav-date{font-size:12px;padding:10px 12px}.nav-place{font-size:9px}.brand{font-size:28px}.envelope.open{margin-top:55px}.envelope.open .letter-paper{padding:22px 18px;margin:0 8px 25px}.letter-paper p{font-size:15px}.letter-sign{font-size:22px}.meeting-visual{height:440px}.palette{gap:28px 14px}.palette strong{font-size:12px}.organizer-card{padding:28px 20px}.organizer-card h2{font-size:clamp(34px,10vw,42px);letter-spacing:-1px}.map-orbit{width:min(280px,100%)}.place-name h2{font-size:clamp(80px,25vw,105px)}.place-scribble{font-size:22px}.music-toggle{left:auto;bottom:auto;min-height:44px}.music-panel{left:auto;bottom:auto}.closing footer{padding-bottom:0}.day-schedule li{grid-template-columns:70px minmax(0,1fr);gap:12px}}
@media(max-width:360px){.nav-place{font-size:8px;letter-spacing:0}.nav-date{font-size:11px;padding:9px}.brand{font-size:25px}.date-pill{font-size:11px;padding:14px;gap:8px}.date-pill>span{font-size:9px}.rsvp-form{padding:24px 15px}.organizer-phone{font-size:18px}}
@media(prefers-reduced-motion:reduce){.palette span,.map-pin{animation:none}.envelope.open .letter-paper{animation:none}}

@media(max-width:700px){.palette{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding-top:10px;max-width:450px;margin-inline:auto}.palette span{width:100%;max-width:58px;margin-inline:auto}.palette strong{font-size:10px;line-height:1.5;margin-top:13px;hyphens:auto;overflow-wrap:anywhere}}
