/* Comfortable text bounds and complete script flourishes at narrow widths. */
.hero{height:auto;min-height:max(100svh,880px);max-height:none;overflow:visible}.hero-content{padding:160px 24px 95px;max-width:100%;min-width:0}.hero h1{line-height:1.2;max-width:100%;min-width:0}.written-name{padding:13px 24px 25px;line-height:1.22}.hero .amp{line-height:1.4;margin:3px 0 5px}.hero .intro{line-height:1.7;max-width:100%;margin-top:15px}.hero .script{line-height:1.4;margin-top:16px}.hero .text-link{line-height:1.6;margin-top:20px;padding-bottom:15px}.signature>span{padding:12px 18px 22px;line-height:1.3}.signature>i{line-height:1.5!important;margin:0!important}.closing .signature{line-height:1.3;margin:38px 0 20px}.events h3{line-height:1.3;letter-spacing:0;padding:0 4px;font-size:clamp(28px,8.7cqw,41px)}.event-kind{line-height:1.6;margin-top:8px}.date-grid strong{line-height:1.15}.event-year{margin-top:9px;line-height:1.4}.event-place{line-height:1.55;margin:28px 0 26px}.event-place small{line-height:1.8;margin-top:12px}.detail-card h3{line-height:1.35;padding:0 5px}.detail-card p{line-height:1.65}.button{height:auto;min-height:48px;line-height:1.4!important;white-space:normal;text-wrap:pretty;text-align:center}.ceremony-map{gap:10px}.album .button{font-size:20px;padding:17px 24px}.album h2,.closing h2{line-height:1.22;overflow-wrap:normal;padding:0 4px}.album>p,.closing>p{line-height:1.7}.palette-label{font-size:12px!important;line-height:1.8!important;letter-spacing:1.5px;margin-top:18px}.swatches{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;align-items:start}.swatches span{min-width:0;font-size:12px;line-height:1.5;overflow-wrap:normal}.formal-guide{gap:16px}.formal-guide p{line-height:1.6}.formal-guide h3{line-height:1.35}dialog h2{line-height:1.25;padding:0 8px;margin:25px 0 30px;overflow-wrap:normal}dialog label{line-height:1.65;margin-top:24px}dialog input,dialog textarea,dialog select{min-height:46px;line-height:1.5;margin-top:10px}dialog .primary-button{min-width:0;max-width:100%;width:100%;line-height:1.45!important}dialog .privacy-note{line-height:1.8;margin-top:22px}.dialog-footnote{line-height:1.8!important}.tips-list strong{line-height:1.4;display:block}.tips-list p{line-height:1.7}.gift-amount{line-height:1.8!important}.gift-amount strong{display:block;line-height:1.4}.music-toggle{right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom))}
.memories{position:relative;padding:150px 22px 85px;background:#f2e3d2;text-align:center;overflow:hidden;margin:0 0 65px}.memories>h2{font:400 51px/1.16 var(--serif);letter-spacing:0;color:#8e4f38;padding:0 8px;margin:12px 0 13px}.memories>h2 i{font-style:normal}.memories>.eyebrow{display:none}.memories>p{font:23px/1.55 var(--serif);margin:0}.camera-emblem{width:76px;height:76px;fill:none;stroke:#826651;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;margin:25px auto 16px}.camera-flash{fill:#c5d2bc66;animation:spark 3.5s ease-in-out infinite}.photo-deck{--gap:72px;position:relative;width:100%;height:390px;max-width:700px;margin:25px auto 0;touch-action:pan-y}.photo-deck .polaroid{left:50%;top:26px;width:240px;padding:12px 12px 20px;transform:translateX(calc(-50% + var(--offset)*var(--gap))) rotate(var(--angle)) scale(var(--scale));opacity:var(--alpha);transition:transform .65s cubic-bezier(.2,.7,.25,1),opacity .5s;box-shadow:0 9px 24px #553a2c30;transform-origin:center 70%;background:#fffaf1;border:0;border-radius:1px;color:#a26d53}.photo-deck .polaroid>img,.photo-deck .photo-placeholder{height:250px;width:100%;object-fit:cover}.photo-deck .polaroid>span{font:29px/1.3 var(--script);letter-spacing:0;padding-top:14px;min-height:52px}.photo-placeholder{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;background:linear-gradient(#f5efe65c,#f5efe65c),url('assets/florals.jpg') center/cover;color:#7d5a42}.photo-placeholder>span{font:43px var(--serif)}.photo-placeholder small{font:8px/1.8 var(--sans);text-transform:uppercase;letter-spacing:1.5px;max-width:130px}.gallery-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:15px;padding-bottom:0}.gallery-controls>button{width:42px;height:42px;font:25px var(--serif);background:none;border:1px solid #ba9070;color:#9d6348}.gallery-controls>button:disabled{opacity:.4;cursor:default}.gallery-dots{display:flex;align-items:center;gap:7px}.gallery-dots button{width:10px;height:10px;border:0;border-radius:50%;padding:0;background:#c5a48d;opacity:.5;transition:transform .2s,opacity .2s}.gallery-dots button[aria-current="true"]{background:#9b593f;opacity:1;transform:scale(1.2)}.memories>.pending-photos{font:12px/1.8 var(--sans)!important;color:#9a7c67;margin:28px auto 0;max-width:280px}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#map-dialog{width:min(550px,calc(100% - 28px));padding:135px 24px 28px}#map-heading{font-size:32px;line-height:1.25;margin:22px 0 12px;padding:0 15px}.map-address{text-align:center;font:16px/1.65 var(--serif);margin:0 0 20px}.map-frame{border:1px solid #d3baa2;border-radius:12px;overflow:hidden;background:#e6e2d5;min-height:260px}.map-frame iframe{display:block;width:100%;height:280px;border:0;min-width:200px}.map-note{text-align:center;font:11px/1.8 var(--sans)!important;color:var(--muted);margin:18px 0 0}.map-frame:focus-within{outline:2px solid var(--terra);outline-offset:3px}
@keyframes ink-reveal{0%{clip-path:inset(-24px 100% -24px -12px);opacity:0;filter:blur(4px)}20%{opacity:1}100%{clip-path:inset(-24px -12px -24px -12px);opacity:1;filter:blur(0)}}
@container wedding (max-width:600px){.hero{min-height:max(100svh,880px)}.hero-content{padding:145px 18px 85px}.hero h1{font-size:clamp(64px,21cqw,84px)}.written-name{padding:13px 18px 23px}.hero .date{margin-bottom:27px}.hero .amp{font-size:54px;margin:0}.hero .intro{font-size:18px;line-height:1.7}.hero .text-link{font-size:10px;letter-spacing:.5px;max-width:100%}.closing .signature{font-size:clamp(54px,17cqw,67px)}.closing h2{font-size:clamp(33px,10.5cqw,40px)}.memories{padding:135px 16px 70px;margin-bottom:50px}.memories>h2{font-size:clamp(35px,10.5cqw,44px);line-height:1.2;margin-bottom:13px}.memories>p{font-size:21px}.camera-emblem{width:68px;height:68px;margin:23px auto 12px}.photo-deck{--gap:45px;height:350px;margin-top:20px}.photo-deck .polaroid{width:clamp(170px,54cqw,215px);padding:10px 10px 16px;top:24px}.photo-deck .polaroid>img,.photo-deck .photo-placeholder{height:215px}.photo-deck .polaroid>span{font-size:25px;line-height:1.35;min-height:48px;padding-top:12px}.photo-placeholder>span{font-size:36px}.photo-placeholder small{font-size:7px;letter-spacing:1px}.gallery-controls{gap:15px;margin-top:10px}.gallery-dots{gap:6px}.gallery-dots button{width:9px;height:9px}.events .event-card{overflow:visible}.event-top{padding:30px 13px 23px}.event-body{padding:24px 16px 32px}.date-grid{gap:8px;grid-template-columns:1fr 74px 1fr}.date-grid>span{font-size:14px;line-height:1.6}.date-grid strong{font-size:63px}.event-place{font-size:22px;line-height:1.5}.event-place small{font-size:12px}.detail-card{padding:40px 22px}.detail-card h3{font-size:32px;line-height:1.4}.detail-card .button{font-size:19px}.album h2{font-size:clamp(33px,10cqw,41px)}.album>p{font-size:20px}.album .button{font-size:19px;padding:17px 20px}dialog{padding-left:24px;padding-right:24px}dialog h2{font-size:clamp(30px,9cqw,36px);line-height:1.28}.swatches span{font-size:11px}.palette-label{font-size:11px!important;letter-spacing:1.2px}.formal-guide p{font-size:15px;line-height:1.6}.tips-list strong{font-size:23px}.tips-list p{font-size:17px}#map-heading{font-size:28px}.map-frame iframe{height:260px}.map-frame{min-height:260px}}
@container wedding (max-width:350px){.photo-deck{--gap:34px;height:325px}.photo-deck .polaroid>img,.photo-deck .photo-placeholder{height:195px}.photo-deck .polaroid>span{font-size:23px}.gallery-controls{gap:12px}.hero .date strong{font-size:24px;letter-spacing:3px}.date-grid{grid-template-columns:1fr 65px 1fr;gap:5px}.date-grid>span{font-size:12px}.date-grid strong{font-size:58px}.events h3{font-size:28px}.event-place{font-size:20px}.ceremony-map{font-size:19px}.formal-guide{gap:10px}.formal-guide p{font-size:14px}.swatches{gap:6px}.swatches span:before{width:30px;height:30px}.reserved-swatches span:after{width:28px;left:calc(50% - 14px);top:15px}}
@media(prefers-reduced-motion:reduce){.photo-deck .polaroid{transition:none}.camera-flash{animation:none}}
