
:root{--pink:#efd9d8;--ink:#544238;--rose:#805c50;--paper:#fffdf8;--line:#d7bc8c}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;color:var(--ink);background:var(--paper);font:1rem/1.65 'Trebuchet MS',Arial,sans-serif}a{color:inherit}a:focus-visible{outline:3px solid var(--rose);outline-offset:6px}header{display:flex;justify-content:space-between;align-items:center;padding:1.4rem 6%;border-bottom:1px solid var(--line);background:#fffdf8}.brand{text-decoration:none;font-family:Georgia,serif;font-size:1.3rem;font-style:italic}nav{display:flex;gap:2rem;font-size:.9rem}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.hero{min-height:740px;display:grid;grid-template-columns:minmax(60px,1fr) minmax(0,830px) minmax(60px,1fr);background:var(--pink)}.pattern{background:#e8ddd0 url('/cheetah.png') center/600px}.invitation{margin:2.5rem 0;background:var(--paper);text-align:center;padding:4rem 3rem 3.5rem;border:1px solid var(--line);box-shadow:0 8px 40px #693c4b10;position:relative}.invitation:before{content:'';position:absolute;inset:12px;border:1px solid var(--line);pointer-events:none}.eyebrow{text-transform:uppercase;letter-spacing:.23em;font-size:.8rem;font-weight:600;margin:0 0 1.4rem}.script{font:italic clamp(2rem,4vw,3rem)/1.25 Georgia,serif;margin:0;color:var(--rose)}h1{font:clamp(4rem,8vw,6.4rem)/1.05 Georgia,serif;font-weight:400;letter-spacing:-.045em;margin:1rem 0 1.4rem}h1 span{display:block;font-style:italic;color:var(--rose)}.dedication{margin:0 auto 2rem;max-width:380px}.dedication strong{font-weight:400;font-family:Georgia,serif;font-size:1.6rem}.heart{font-family:Georgia,serif;color:var(--rose);font-size:1.5rem;margin:1.3rem 0}.button{display:inline-flex;justify-content:center;align-items:center;padding:.9rem 1.9rem;background:var(--rose);color:#fff;text-decoration:none;border-radius:100px;font-size:.95rem;border:1px solid var(--rose);min-height:48px;transition:background .2s,transform .2s}.button:hover{background:#65453b;transform:translateY(-2px)}.small{font-size:.85rem}.coming{margin:1.2rem 0 0;color:#725c50}.details{max-width:1050px;margin:auto;padding:5rem 2rem;text-align:center}h2{font:clamp(2rem,4vw,3rem)/1.2 Georgia,serif;font-weight:400;margin:0 0 1rem}.intro{max-width:570px;margin:0 auto 2.8rem}.details-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.detail{padding:2rem}.detail+.detail{border-left:1px solid var(--line)}.detail h3{font-size:.8rem;letter-spacing:.17em;text-transform:uppercase;margin:0 0 .8rem}.detail p{font:1.45rem/1.5 Georgia,serif;margin:0}.detail .small{font: .9rem/1.6 'Trebuchet MS',Arial,sans-serif;margin-top:.5rem;color:#725c50}.registry{background:var(--pink);padding:5rem 2rem;text-align:center;border-top:1px solid var(--line)}.registry-inner{max-width:600px;margin:auto}.registry p{max-width:470px;margin:1rem auto 2rem}footer{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.7rem 6%;font-size:.85rem}footer .love{font:italic 1.2rem Georgia,serif}::selection{background:#e7c6bc}@media(max-width:700px){header{padding:1.1rem 1.3rem}.brand{font-size:1.15rem}nav{gap:1.2rem}.hero{min-height:auto;grid-template-columns:20px minmax(0,1fr) 20px}.invitation{margin:1.3rem 0;padding:3.1rem 1.4rem}.eyebrow{letter-spacing:.17em;font-size:.75rem}h1{font-size:clamp(3.4rem,14vw,5.6rem)}.details{padding:3.5rem 1.3rem}.details-grid{grid-template-columns:1fr}.detail+.detail{border-left:0;border-top:1px solid var(--line)}.registry{padding:3.5rem 1.3rem}footer{flex-direction:column;text-align:center}.pattern{background-size:350px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}.button:hover{transform:none}}

.page{max-width:1060px;margin:0 auto;padding:4rem 2rem 5rem;min-height:68vh}.page-heading{text-align:center;margin-bottom:2.8rem}.page-heading p{max-width:570px;margin:1rem auto}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.3rem}.tile{padding:2rem;border:1px solid var(--line);border-radius:16px;text-decoration:none;background:white;transition:transform .2s,box-shadow .2s;display:block}.tile:hover{transform:translateY(-3px);box-shadow:0 10px 24px #693c4b10}.tile h2{font-size:1.8rem;margin:.4rem 0 .7rem}.tile p{margin:0;color:#725c50}.tile-label{font-size:.78rem;letter-spacing:.16em;text-transform:uppercase}.tile:nth-child(2),.tile:nth-child(3){background:#f7ece8}.photo-space{margin:3rem 0 0;min-height:230px;border:1px dashed #ba9c63;border-radius:140px 140px 16px 16px;background:#efd9d8;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:2.5rem}.photo-space p{margin:.4rem 0;max-width:430px}.photo-space h2{font-size:2rem}.notice{padding:1.3rem 1.6rem;border:1px solid var(--line);border-radius:14px;background:#f7ece8;max-width:650px;margin:2rem auto}.notice p{margin:.3rem 0}.center{text-align:center}.invitation-page{max-width:830px;margin:auto}.invitation-page .invitation{margin:0}.frame{padding:2.5rem 1.3rem;background:var(--pink) url('/cheetah.png') center/600px}.back{text-decoration:none;color:var(--rose)}nav{flex-wrap:wrap;gap:1.4rem}nav a[aria-current=page]{color:var(--rose);text-decoration:underline;text-underline-offset:6px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.info-block{border:1px solid var(--line);border-radius:14px;padding:1.7rem;background:white}.info-block h2{font-size:1.5rem}.info-block p{margin:.5rem 0}.home-hero{padding:3rem 1rem;text-align:center;background:var(--pink);border-bottom:1px solid var(--line)}.home-hero h1{font-size:clamp(3.5rem,7vw,5.5rem);margin:1rem 0}.home-hero h1 span{display:inline}.home-hero .eyebrow{margin:0}.home-hero p{margin:.5rem auto}.home-hero .family{font:1.2rem/1.6 Georgia,serif}.album-state{border:1px dashed #ba9c63;border-radius:18px;padding:4rem 2rem;text-align:center;background:#f7ece8;max-width:760px;margin:auto}.album-state p{max-width:500px;margin:1rem auto}.album-state h2{font-size:2rem}@media(max-width:800px){header{flex-direction:column;gap:.8rem}nav{justify-content:center;gap:.7rem 1.2rem;font-size:.85rem}.page{padding:2.5rem 1.3rem}.tiles,.detail-grid{grid-template-columns:1fr}.photo-space{min-height:200px}}
.fun-links{display:flex;gap:1.5rem;justify-content:center}.game-panel{padding:2.3rem;border:1px solid var(--line);border-radius:20px;background:white;margin:2rem 0}.game-panel>p{max-width:700px}.game-panel h2{font-size:2.4rem}label{display:block;font-size:1rem;font-weight:600}input,textarea{display:block;width:100%;font:inherit;padding:.8rem;border:1px solid #a58c73;border-radius:8px;background:#fffdf8;color:var(--ink);margin:.4rem 0 1rem;min-width:0}.input-row{display:flex;gap:1rem;align-items:start}.input-row input{margin:0;flex:1}.button{cursor:pointer;font:inherit}.button:disabled{opacity:.6;cursor:wait}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:.3rem 1.3rem}.full{grid-column:1/-1}.match-board{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;max-width:550px;margin:1.5rem auto}.match-card{aspect-ratio:1;border:1px solid #9c8066;border-radius:12px;background:#efd9d8 url('/cheetah.png') center/330px;font-size:2.5rem;cursor:pointer;color:#67384a}.match-card.open,.match-card.matched{background:#fcf6ec}.match-card.matched{border:3px solid #805c50}.match-card:focus-visible,button:focus-visible{outline:3px solid #805c50;outline-offset:3px}.receipt{padding:2rem;background:#f7ece8;border:2px solid #ba9c63;border-radius:16px;text-align:center}.receipt h3{font:1.8rem Georgia,serif}.text-button{background:none;border:0;text-decoration:underline;font:inherit;color:var(--rose);cursor:pointer;padding:1rem}.record-table{width:100%;border-collapse:collapse;font-size:.95rem}.record-table td,.record-table th{text-align:left;padding:.8rem;border-bottom:1px solid var(--line);vertical-align:top}.table-scroll{overflow:auto}.exports{display:flex;flex-wrap:wrap;gap:1rem;margin:1.5rem 0}[hidden]{display:none!important}@media(max-width:600px){.game-panel{padding:1.3rem}.form-grid{grid-template-columns:1fr}.input-row{flex-direction:column}.input-row input{width:100%}.match-board{gap:.5rem}.match-card{font-size:2rem}.receipt{padding:1.2rem}}@media print{header,footer,.fun-links,#start-form,#board,#game-status,#replay,#arrival,.page-heading,.center,#print-receipt,.exports{display:none!important}.game-panel,.receipt{border:0;background:white;margin:0;padding:0}.game-panel>p,.game-panel>h2{display:none}.page{padding:0}.table-scroll{overflow:visible}.record-table{font-size:10pt}body{color:black;background:white}}

:root{--gold:#a8894d;--taupe:#aa8b74}.home-hero{padding:3.5rem 5%;background:#f4e6df url('/cheetah.png') center/620px}.welcome-layout{display:grid;grid-template-columns:1fr 1fr;gap:2.4rem;align-items:center;max-width:1160px;margin:auto;background:var(--paper);padding:2.5rem;border:1px solid var(--gold);box-shadow:0 12px 35px #54423815}.welcome-copy{text-align:center}.welcome-photo{margin:0;border:1px solid var(--gold);padding:.5rem;background:white;transform:rotate(1.2deg)}.welcome-photo img{display:block;width:100%;height:auto}.welcome-date{font-size:1rem;border-top:1px solid var(--line);padding-top:1.2rem;margin-top:1.2rem!important}.surname{display:block;text-transform:uppercase;font:1rem/1.7 'Trebuchet MS',Arial,sans-serif;letter-spacing:.3em;margin-top:1rem;color:var(--ink)}.home-hero h1 .surname{display:block}.family-section{margin:4rem 0}.family-gallery{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem;align-items:start}.family-gallery figure{margin:0;background:#fff;border:1px solid var(--gold);padding:.6rem;border-radius:4px}.family-gallery img{width:100%;height:auto;display:block}.family-gallery .wide-photo{grid-column:1/-1;width:80%;justify-self:center}.baby-preview{display:grid;grid-template-columns:1fr 1.2fr;gap:2rem;align-items:center;padding:2rem;background:#f3e2dc;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}.baby-preview figure{margin:0;padding:.5rem;background:var(--paper);border:1px solid var(--gold)}.baby-preview img{display:block;width:100%;height:auto}.baby-preview h2{font-size:2.8rem}.shower-date{font:1.3rem/1.65 Georgia,serif;display:inline-block;margin-bottom:.7rem}.shower-address{display:inline-block;font-size:1rem;line-height:1.6;margin-bottom:1rem}address{font-style:normal;line-height:1.7}.button{box-shadow:0 2px 0 #b89b67}.invitation:before{border-color:var(--gold)}.tile{border-top:3px solid var(--gold)}.tile-label,.eyebrow{color:#74583f}.match-card{border-color:var(--gold)}.receipt{border-color:var(--gold)}@media(max-width:800px){.welcome-layout{grid-template-columns:1fr;gap:1.3rem;padding:1.5rem}.home-hero{padding:1.5rem 1.2rem}.welcome-photo{max-width:560px;width:100%;margin:auto}.baby-preview{grid-template-columns:1fr;padding:1.4rem}.family-gallery .wide-photo{width:100%}}@media(max-width:420px){.family-gallery{gap:.6rem}.family-gallery figure{padding:.3rem}.welcome-layout{padding:1.2rem}}

#rsvp-form label{display:block;margin:1rem 0 .35rem;font-weight:bold}#rsvp-form input,#rsvp-form select,#rsvp-form textarea{display:block;width:100%;padding:.8rem;border:1px solid var(--line);border-radius:8px;font:inherit;color:var(--ink);background:white}#rsvp-form textarea{min-height:100px}#rsvp-form :focus-visible{outline:3px solid var(--rose);outline-offset:3px}#rsvp-form button:disabled{opacity:.6;cursor:wait}

#photo-form label,#code-form label{display:block;margin:1rem 0 .3rem;font-weight:bold}#photo-form input,#code-form input{display:block;width:100%;padding:.8rem;font:inherit;border:1px solid var(--line);border-radius:8px;margin-bottom:1rem}#photo-form{max-width:700px;margin:2rem auto}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}.photo-card{margin:0;border:1px solid var(--line);padding:1rem;background:#fff}.photo-card img{width:100%;height:250px;object-fit:contain;background:#f6eee8}.photo-card figcaption{overflow-wrap:anywhere}.photo-card button{margin:.4rem .3rem .4rem 0}#album-status{text-align:center}

.organizer-footer-link{font-size:.8rem;white-space:nowrap;text-underline-offset:3px}@media(max-width:600px){footer{flex-wrap:wrap;gap:1rem}.organizer-footer-link{display:block}}
