
    *{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:#102b40;color:#fffaf0;font-family:Arial,Helvetica,sans-serif;min-height:100svh;display:flex;flex-direction:column;padding:clamp(24px,5vw,64px)}
    header{display:flex;justify-content:space-between;align-items:center;gap:20px;font-size:14px;letter-spacing:.13em;text-transform:uppercase;color:#e3be79}header span:last-child{color:#c7d2d9;letter-spacing:.06em}
    main{width:100%;max-width:1060px;margin:auto;padding:80px 0 90px} .eyebrow{font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:#e3be79;margin:0 0 32px;display:flex;align-items:center;gap:16px}.eyebrow:before{content:"";width:44px;height:1px;background:currentColor}
    h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(64px,10vw,132px);line-height:1.03;letter-spacing:-.045em;margin:0 0 32px}h1 em{font-weight:400;color:#e3be79} .intro{font-size:clamp(18px,2vw,22px);line-height:1.65;max-width:490px;color:#d5dfe5;margin:0}
    .details{border-top:1px solid #486072;margin-top:60px;padding-top:25px;display:flex;gap:40px;align-items:baseline}.details h2{font-size:16px;font-weight:400;color:#e3be79;margin:0;white-space:nowrap}.details p{font-size:16px;line-height:1.7;margin:0;color:#d5dfe5;max-width:540px}footer{font-size:14px;line-height:1.6;color:#abbcc8;display:flex;gap:20px;justify-content:space-between;border-top:1px solid #304b5f;padding-top:20px}
    @media(max-width:600px){header{align-items:flex-start}header span:last-child{max-width:115px;text-align:right;line-height:1.6}main{padding:70px 0 60px}.details{display:block;margin-top:40px}.details h2{margin-bottom:12px}footer{display:block}footer span{display:block;margin-bottom:6px}}
  
 a{color:inherit}nav{display:flex;gap:24px}header a{text-decoration:none}button,.button{display:inline-block;background:#e3be79;color:#102b40;border:0;border-radius:3px;padding:14px 22px;font:inherit;font-weight:600;text-decoration:none;cursor:pointer}button:disabled{opacity:.6;cursor:wait}input,select{font:inherit;width:100%;padding:12px;border:1px solid #718391;border-radius:3px;background:#18394f;color:#fff;margin-top:8px}label{display:block;margin-bottom:20px;font-size:16px}fieldset{border:0;padding:0;margin:0}legend{margin-bottom:12px}.grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.card{border:1px solid #486072;padding:clamp(20px,4vw,40px);margin-top:32px}h2{font-family:Georgia,serif;font-weight:400;font-size:36px;color:#e3be79}h3{font-size:20px}.event{line-height:1.8;font-size:18px;margin:32px 0}.muted{color:#bdcbd5;font-size:16px;line-height:1.6}.message{line-height:1.6;margin-top:16px}.error{color:#ffbbb7}.success{color:#e3be79}[hidden]{display:none!important}:focus-visible{outline:3px solid #e3be79;outline-offset:4px}.trap{position:absolute;left:-10000px}.table-wrap{overflow:auto}table{border-collapse:collapse;min-width:650px;width:100%;font-size:16px}th,td{text-align:left;padding:14px 10px;border-bottom:1px solid #486072}td input,td select{min-width:90px}td input[type=email]{min-width:230px}.toolbar{display:flex;gap:12px;flex-wrap:wrap}.stats{font-size:22px;line-height:1.6}textarea{width:100%;font:inherit;background:#18394f;color:white;padding:12px}details{margin:20px 0}summary{cursor:pointer}body.admin main{max-width:1250px}body.admin h1{font-size:60px}body.admin main{padding-top:48px}.code{overflow-wrap:anywhere}.section-heading{margin-top:70px} @media(max-width:600px){.grid{grid-template-columns:1fr}nav{gap:12px}header{flex-wrap:wrap}h1{font-size:clamp(48px,13vw,72px)}.card{margin-top:20px}body.admin h1{font-size:46px}}
.row-actions{display:flex;gap:8px;flex-wrap:wrap;min-width:170px}.danger{background:transparent;color:#ffbbb7;border:1px solid #b97777}.danger:hover{background:#452b35}
/* Personal photos, with full-frame viewing on demand. */
.welcome{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:clamp(24px,4vw,60px);align-items:center}.welcome h1{font-size:clamp(56px,7.1vw,88px)}.welcome .eyebrow{font-size:14px}.welcome-rsvp{margin-top:28px}.welcome-photo{margin:0;padding:10px;border:1px solid #b6975b;transform:rotate(2deg);box-shadow:16px 20px 0 #18394f}.photo-link{display:block;position:relative;overflow:hidden;background:#18394f}.photo-link img{display:block;width:100%;height:auto}.welcome-photo img{aspect-ratio:3/4;object-fit:contain}.photo-hint{position:absolute;bottom:12px;right:12px;padding:7px 11px;background:#102b40eb;color:#fffaf0;font-size:14px;border:1px solid #e3be7970;border-radius:3px}.photo-link:hover .photo-hint{background:#e3be79;color:#102b40}.memories{margin-top:80px;padding-top:48px;border-top:1px solid #486072;scroll-margin-top:24px}.memories h2{font-size:clamp(36px,5vw,56px);margin:0 0 32px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.photo-grid figure{margin:0;padding:7px;border:1px solid #486072}.photo-grid img{aspect-ratio:4/3;object-fit:contain}.gallery-footer{text-align:center;margin:24px 0 40px}.photo-open{overflow:hidden}#photo-viewer{background:#0a1d2b;color:#fffaf0;border:1px solid #718391;border-radius:6px;padding:16px;width:min(1100px,94vw);max-width:94vw;max-height:94dvh}#photo-viewer::backdrop{background:#030c15ec}#viewer-image{display:block;max-width:100%;width:auto;max-height:calc(94dvh - 175px);height:auto;margin:0 auto;object-fit:contain}.viewer-toolbar,.viewer-controls{display:flex;justify-content:space-between;align-items:center;gap:16px}.viewer-toolbar{margin-bottom:12px}.viewer-toolbar p{margin:0}.viewer-controls{margin-top:12px}.viewer-toolbar button,.viewer-controls button{padding:10px 16px;min-height:44px}#rsvp{scroll-margin-top:24px}@media(max-width:760px){.welcome{grid-template-columns:1fr}.welcome h1{font-size:clamp(48px,12vw,80px)}.welcome-photo{max-width:430px;width:calc(100% - 18px);margin:24px auto 12px}.photo-grid{grid-template-columns:1fr 1fr;gap:12px}.memories{margin-top:60px}.photo-grid figure{padding:4px}.photo-grid .photo-hint{font-size:12px;bottom:6px;right:6px;padding:5px 7px}}
