 :root{--ivory:#f8f5ee;--paper:#fffcf7;--sand:#e8dcc9;--gold:#c8ad7f;--ink:#51473d;--muted:#71685e;--space:clamp(24px,5vw,72px);--serif:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);line-height:1.7}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,audio:focus-visible{outline:3px solid #806238;outline-offset:5px}button,.button{min-height:48px;border:1px solid #9e855f;border-radius:3px;padding:12px 20px;background:transparent;color:var(--ink);font:inherit;font-size:14px;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:14px;cursor:pointer;transition:background .3s,transform .3s}button:hover,.button:hover{background:var(--sand);transform:translateY(-2px)}button:active,.button:active{transform:translateY(0)}.primary{background:var(--ink);color:var(--paper)}.primary:hover{background:#685949}.skip{position:absolute;top:-100px;padding:15px;background:white;z-index:2}.skip:focus{top:0}.top{max-width:1200px;margin:auto;display:flex;justify-content:space-between;align-items:center;padding:20px var(--space);border-bottom:1px solid var(--sand);font-size:10px;letter-spacing:2px}.top a{font-size:12px;letter-spacing:0;text-decoration:none;padding:10px}.hero{max-width:1100px;margin:auto;padding:64px var(--space) 80px;display:grid;gap:40px;align-items:center}.portrait{max-width:390px;width:100%;margin:auto;border:1px solid var(--gold);padding:12px 12px 0;position:relative}.portrait img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:50% 30%;border-radius:180px 180px 0 0}.portrait-caption{display:block;text-align:center;font-size:9px;letter-spacing:2px;padding:18px 0}.hero-text{text-align:center}.eyebrow{display:block;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--muted)}.cross{display:block;font-family:var(--serif);color:#90764d;font-size:28px;margin:20px 0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.12}h1{font-size:clamp(40px,5vw,65px);margin:18px 0 24px;letter-spacing:-1.5px}h1 span{font-size:.69em;letter-spacing:-.5px}.dates{font-size:12px;line-height:1.9}.line{width:60px;height:1px;background:var(--gold);margin:28px auto}.motto{font-family:var(--serif);font-style:italic;font-size:26px;line-height:1.4}.essential{font-size:13px;margin-top:25px}.essential strong{font-weight:500}.text-link{display:inline-block;font-size:12px;padding:12px;text-underline-offset:6px}.tribute{background:var(--paper);border-block:1px solid var(--sand);text-align:center;padding:70px var(--space)}h2{font-size:clamp(31px,4vw,44px);margin:22px 0 26px}.tribute p{max-width:620px;margin:20px auto;font-size:15px}.ceremony{max-width:1050px;margin:auto;padding:75px var(--space);scroll-margin-top:20px}.section-heading{text-align:center}.details{display:grid;margin-top:44px;border:1px solid var(--sand);background:var(--paper)}.date-card{padding:36px;text-align:center;background:#eee5d6}.date-card>span{display:block;font-size:11px;letter-spacing:2px}.date-card>strong{font-family:var(--serif);font-weight:400;font-size:92px;line-height:1.3}.date-card p{font-family:var(--serif);font-size:27px;margin:10px 0 0}.date-card small{font-size:12px;display:block;margin-bottom:24px}.venue{padding:36px}h3{font-size:30px;margin:20px 0}address{font-style:normal;font-size:14px;margin-bottom:25px}.venue-phone{font-size:12px;margin-top:25px}.dress{font-size:13px;border-top:1px solid var(--sand);padding-top:20px;margin-top:25px}.farewell{padding:50px var(--space) 60px;text-align:center}.farewell h2{font-size:34px}.farewell p{font-size:14px}.farewell .family{font-family:var(--serif);font-size:24px;margin:25px 0 35px}.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.actions button,.actions a{font-size:12px}.farewell #status{min-height:24px;max-width:600px;margin:20px auto;overflow-wrap:anywhere}footer{padding:24px var(--space);border-top:1px solid var(--sand);display:flex;gap:24px;justify-content:space-between;align-items:center;flex-wrap:wrap;font-size:9px;letter-spacing:1.5px}.music{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.music audio{width:240px;height:40px}.music span{font-size:10px;letter-spacing:0}@media(min-width:800px){.hero{grid-template-columns:1fr 1.2fr;gap:65px}.details{grid-template-columns:1fr 1.6fr}.venue{padding:48px}.hero-text{animation:appear .8s ease-out}}@media(max-width:380px){.top{letter-spacing:1px}.dates span{display:block}.portrait-caption{letter-spacing:1px}.venue,.date-card{padding:24px}}@keyframes appear{from{opacity:.3;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}@media print{.top,.actions,.music,.text-link,.button,#status,.skip{display:none!important}.hero,.ceremony,.tribute,.farewell{padding:20px}.hero{grid-template-columns:1fr 1fr}.portrait{max-width:230px}body{background:white}.details{grid-template-columns:1fr 1.5fr}section{break-inside:avoid}footer{justify-content:center}}
.music-toggle{position:fixed;top:calc(18px + env(safe-area-inset-top,0px));right:calc(18px + env(safe-area-inset-right,0px));z-index:20;width:54px;height:54px;min-height:54px;border-radius:50%;padding:0;background:var(--paper);border:1px solid #9e855f;color:var(--ink);box-shadow:0 4px 18px #51473d20;font-size:27px;line-height:1}.music-toggle:hover{background:var(--sand);transform:none}.music-toggle[aria-pressed="true"]{background:var(--ink);color:var(--paper)}.music-toggle:disabled{cursor:wait;opacity:.7}.top{padding-right:90px}.music-toggle span{display:block}@media print{.music-toggle{display:none!important}}
