:root{--bg:#faf7f2;--surface:#fff;--text:#3b342c;--muted:#7a6f62;--accent:#9a7b4f;--accent-dark:#7b6038;--line:#e6ddd0;--ok:#2f7d4f;--err:#b3392f;--script:"Pinyon Script", "Snell Roundhand", cursive;--serif:"Cormorant Garamond", Georgia, serif;--sans:"Inter", system-ui, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--text);background:var(--bg);margin:0;line-height:1.6}h1,h2,h3{font-family:var(--serif);margin:0 0 .5em;font-weight:500}h3{letter-spacing:.12em;text-transform:uppercase;font-size:1.05rem}h2{font:400 clamp(2.4rem, 6vw, 3.2rem)/1.1 var(--script);text-align:center}a{color:var(--accent-dark)}.container{width:min(960px,100% - 32px);margin-inline:auto}section{padding:72px 0;scroll-margin-top:90px}.btn{border:1px solid var(--accent);background:var(--accent);color:#fff;font:inherit;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:2px;padding:12px 28px;font-size:.85rem;text-decoration:none;display:inline-block}.btn:hover{background:var(--accent-dark)}.btn.ghost{color:var(--accent-dark);background:0 0}.btn.ghost:hover{background:var(--line)}.btn.danger{border-color:var(--err);color:var(--err);background:0 0}.btn.small{padding:4px 10px;font-size:.75rem}.btn:disabled{opacity:.6;cursor:wait}.nav{background:var(--bg);border-bottom:1px solid var(--line);z-index:10;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px 16px;padding:18px 20px 16px;display:grid;position:sticky;top:0}.nav .brand{font:2rem/1 var(--script);color:var(--text);text-align:center;grid-column:2;text-decoration:none}.nav .links{flex-wrap:wrap;grid-area:2/1/auto/-1;justify-content:center;gap:6px 26px;display:flex}.nav .links a{color:var(--text);font:500 .8rem var(--sans);letter-spacing:.18em;text-transform:uppercase;text-decoration:none}.nav .links a:hover{color:var(--accent)}.langs{grid-area:1/3;justify-self:end}.langs button{font:inherit;cursor:pointer;color:var(--muted);background:0 0;border:0;padding:4px 6px;font-size:.8rem}.langs button.active{color:var(--accent-dark);font-weight:600;text-decoration:underline}.hero-photo{aspect-ratio:5/7;background:#cbbfae var(--hero-img) center 31% / auto 163% no-repeat;color:#fff;text-align:center;justify-content:center;align-items:flex-end;width:min(560px,100%);min-height:480px;max-height:84vh;margin:0 auto;display:flex;position:relative}.hero-photo:before{content:"";background:linear-gradient(#0000 30%,#19120a99 58%,#19120ae6 100%);position:absolute;inset:0}.hero-text{padding:0 16px 26px;position:relative}.hero-text .tagline,.hero-text .meta{letter-spacing:.2em;text-transform:uppercase;text-shadow:0 1px 4px #000c,0 0 14px #0009;margin:0;font-size:.85rem;font-weight:600}.names{font-family:var(--script);text-shadow:0 2px 6px #000c,0 0 22px #0009;justify-content:center;align-items:baseline;gap:.3em;margin:2px 0 4px;font-size:clamp(3rem,13vw,4.8rem);font-weight:400;line-height:1.1;display:flex}.names small{font:italic 600 1.4rem var(--serif)}.hero-extra{display:block}.hero-extra .countdown{gap:clamp(12px,4vw,28px);margin:14px 0}.hero-extra .countdown b{text-shadow:0 2px 8px #000000b3;font-size:clamp(1.6rem,7vw,2.2rem)}.hero-extra .countdown span{color:#fff;text-shadow:0 1px 6px #000000b3}.hero-extra .btn{padding:10px 24px}.countdown{justify-content:center;gap:clamp(12px,4vw,32px);margin:28px 0;display:flex}.countdown div{min-width:64px}.countdown b{font:500 clamp(1.8rem, 7vw, 3rem)/1 var(--serif);display:block}.countdown span{letter-spacing:.15em;text-transform:uppercase;color:var(--muted);font-size:.7rem}@media (width<=640px){.hero-photo{width:100%}}@media (width>=520px) and (width<=899px){.hero-photo{border-radius:6px;width:min(560px,100% - 48px);margin-top:20px;overflow:hidden}}@media (width>=900px){.hero-photo{aspect-ratio:auto;background:var(--bg);width:min(1120px,100% - 64px);height:min(74vh,640px);min-height:520px;color:var(--text);box-shadow:0 0 0 1px var(--line);text-align:left;border-radius:6px;justify-content:flex-start;align-items:center;margin:28px auto 0;overflow:hidden}.hero-photo:before{content:"";aspect-ratio:.92;background:var(--hero-img) center top / auto 138% no-repeat;width:auto;position:absolute;inset:0 0 0 auto;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000 42%);mask-image:linear-gradient(90deg,#0000 0%,#000 42%)}.hero-text{z-index:1;max-width:46%;margin-left:clamp(32px,5vw,64px);padding:0;position:relative}.names{justify-content:flex-start;font-size:clamp(3.2rem,5vw,5rem)}.hero-text .tagline,.hero-text .meta,.names,.hero-extra .countdown b,.hero-extra .countdown span{text-shadow:none}.hero-extra .countdown span{color:var(--muted)}.hero-extra .countdown{justify-content:flex-start;gap:clamp(14px,2.4vw,30px);margin:22px 0}}.alt{background:var(--surface)}.two-col{grid-template-columns:1fr 1fr;align-items:center;gap:32px;display:grid}.two-col img{border-radius:4px;width:100%;display:block}.center{text-align:center}.schedule{margin:0;padding:0;list-style:none}.schedule li{border-bottom:1px solid var(--line);gap:16px;padding:8px 0;display:flex}.schedule time{min-width:56px;font-weight:600}.cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:16px;display:grid}.card{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:16px}.card h3{margin-bottom:.2em;font-size:1.3rem}form.rsvp{gap:14px;max-width:560px;margin:24px auto 0;display:grid}label{color:var(--muted);gap:4px;font-size:.9rem;display:grid}input,textarea,select{font:inherit;border:1px solid var(--line);color:var(--text);background:#fff;border-radius:2px;width:100%;padding:10px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.row{grid-template-columns:1fr 1fr;gap:14px;display:grid}.radios,.check{flex-wrap:wrap;align-items:center;gap:20px;display:flex}.radios label,.check label{color:var(--text);align-items:center;gap:6px;display:flex}.radios input,.check input{width:auto}.msg{text-align:center;min-height:1.5em}.msg.ok{color:var(--ok)}.msg.err{color:var(--err)}[hidden]{display:none!important}footer{text-align:center;color:var(--muted);font-family:var(--serif);padding:40px 16px;font-size:1.3rem}.overlay{z-index:50;background:#00000080;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:#fff;border-radius:4px;width:100%;max-width:420px;padding:24px}.modal h3{font-size:1.6rem}.modal .actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}@media (width<=640px){.two-col,.row{grid-template-columns:1fr}section{padding:48px 0}.nav .links{flex-wrap:nowrap;gap:4px 12px}.nav .links a{letter-spacing:.06em;white-space:nowrap;font-size:.68rem}.nav .brand{font-size:1.6rem}}.admin{padding:80px 0 40px}.admin h1{font-size:2.2rem}.login{gap:12px;max-width:360px;margin:80px auto;display:grid}.metrics{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:16px 0;display:grid}.metric{background:var(--surface);border:1px solid var(--line);text-align:center;border-radius:4px;padding:12px}.metric b{font:500 2rem/1.1 var(--serif);display:block}.metric span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;display:flex}.toolbar .spacer{flex:1}.filters .btn.active{background:var(--accent);color:#fff}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:4px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}th{background:var(--bg);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;font-size:.75rem}td input,td select{min-width:110px;padding:4px 6px}tr.child td:first-child,tr.plus1 td:first-child{padding-left:24px}td .actions{white-space:nowrap;gap:6px;display:flex}.admin-link{color:var(--muted);opacity:.35;vertical-align:middle;margin-left:6px;text-decoration:none;display:inline-block}.admin-link:hover{opacity:1}.tabs .btn.active{background:var(--accent);color:#fff}.inv-form{gap:8px;max-width:480px;margin:12px 0;display:grid}.badge{border-radius:10px;padding:2px 8px;font-size:.75rem;display:inline-block}.badge.ok{color:var(--ok);background:#e1f0e6}.badge.pending{background:var(--line);color:var(--muted)}.badge.warn{color:#8a5a1c;background:#f7e6d3}.muted{color:var(--muted)}@media (width<=360px){.nav .links{gap:4px 8px}.nav .links a{letter-spacing:.03em;font-size:.62rem}}td.nowrap{white-space:nowrap}main.admin.container{width:min(1450px,100% - 24px)}.admin th,.admin td{white-space:nowrap;padding:8px 6px}.admin td input,.admin td select{width:100%;min-width:0;max-width:200px}.admin td.ellipsis{text-overflow:ellipsis;max-width:150px;overflow:hidden}.admin td .actions{flex-wrap:nowrap;justify-content:flex-end}.admin .table-wrap{overflow-x:auto}.admin tr.has-missing td:first-child{box-shadow:inset 3px 0 0 var(--err)}.admin td.missing select,.admin td.missing input{border-color:var(--err);color:var(--err)}.admin tr.plus1 td,.admin tr.child td{border-top:1px dashed var(--line)}.admin tr.plus1 td:first-child,.admin tr.child td:first-child{padding-left:22px}.metric small{color:var(--muted);margin-top:2px;font-size:.8rem;display:block}.metric.total{background:var(--accent);border-color:var(--accent)}.metric.total b,.metric.total span,.metric.total small{color:#fff}.search{flex:200px;max-width:260px}.admin td input.invalid,.admin td input.invalid:focus{border-color:var(--err);color:var(--err)}#kids-fields{gap:10px;margin-top:10px;display:grid}.kid-row{grid-template-columns:1fr 1fr auto;gap:8px;margin-bottom:8px;display:grid}@media (width<=640px){.kid-row{grid-template-columns:1fr}}.admin .table-title{font:600 1.1rem var(--serif);text-align:left;margin:22px 0 8px}.admin .table-title span{color:var(--muted);font-weight:400}#un-section .table-wrap{border-color:var(--err)}.btn.icon{padding:5px 8px;line-height:0}.btn.icon svg{display:block}.export-bar{margin-top:18px}#filters{margin:0 0 10px}.admin table{font-size:.95rem}.admin th{padding:10px 8px;font-size:.72rem}.admin td{padding:11px 8px}.admin td.name-main{font-weight:600}.admin td.name-member{color:var(--muted);padding-left:26px}.admin tr.plus1 td,.admin tr.child td{border-top:0;padding-top:6px;padding-bottom:6px}.admin tbody tr:hover td{background:#fbf8f2}.chip{background:var(--line);color:var(--text);border-radius:12px;padding:2px 10px;font-size:.8rem;display:inline-block}.chip.cat-FamilyAna{color:#6e4f1f;background:#efe3cf}.chip.cat-FamilyPedro{color:#7a3f1d;background:#f0dccd}.chip.cat-Friend{color:#2f4d63;background:#dfe8ee}.chip.cat-Appendix{color:#4b3f6b;background:#e6e2ee}.chip.cat-none{color:var(--err);background:0 0;padding-left:0}.admin td .btn.small{padding:4px 9px;font-size:.7rem}.chips{gap:4px;margin-bottom:6px;display:grid}.chip-btn{text-align:left;border:1px solid var(--accent);color:var(--accent-dark);font:inherit;cursor:pointer;background:#f6efe3;border-radius:12px;padding:3px 10px;font-size:.8rem}.chip-btn:hover{background:var(--accent);color:#fff}.admin td.chips-cell{white-space:normal}.toast{z-index:60;border:1px solid var(--err);max-width:min(640px,100% - 24px);color:var(--err);background:#fff;border-radius:6px;padding:12px 16px;font-size:.9rem;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0000002e}.tree-toggle{cursor:pointer;color:var(--accent-dark);background:0 0;border:0;width:22px;margin-right:2px;padding:0;font-size:.85rem}.tree-toggle:hover{color:var(--accent)}.tree-spacer{width:24px;display:inline-block}.check-line{color:var(--text);align-items:center;gap:8px;font-size:.9rem;display:flex}.check-line input{width:auto}.admin td input[type=checkbox]{width:auto;min-width:0}.admin td .actions{align-items:center}.admin td .actions .badge{box-sizing:border-box;justify-content:center;align-items:center;min-width:96px;height:28px;padding:0 12px;line-height:1;display:inline-flex}.admin td .actions .btn.small{box-sizing:border-box;justify-content:center;align-items:center;height:28px;line-height:1;display:inline-flex}th[data-sort]{cursor:pointer;-webkit-user-select:none;user-select:none}th[data-sort]:hover{color:var(--accent-dark)}th[data-sort]:after{content:"⇅";opacity:.35;margin-left:6px;font-size:.8em}th[data-sort][data-dir=asc]:after{content:"▲";opacity:1;color:var(--accent-dark)}th[data-sort][data-dir=desc]:after{content:"▼";opacity:1;color:var(--accent-dark)}.inbox{flex-wrap:wrap;gap:8px;display:flex}.inbox-btn{border:1px solid var(--err);color:var(--text);font:inherit;cursor:pointer;background:#fff;border-radius:18px;align-items:center;gap:8px;padding:7px 14px;font-size:.9rem;display:inline-flex}.inbox-btn small{background:var(--line);color:var(--muted);border-radius:10px;padding:1px 7px}.inbox-btn:hover{border-color:var(--accent-dark);background:#f6efe3}.modal.wide{max-width:760px;max-height:88vh;overflow:auto}.person-block{border:1px solid var(--line);border-radius:6px;margin-bottom:10px;padding:12px}.person-block.missing-block{border-color:var(--err)}.person-head{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.person-fields{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));align-items:end;gap:10px;display:grid}.person-fields label{color:var(--muted);gap:3px;font-size:.8rem;display:grid}.person-fields .check-line{color:var(--text);align-items:center;gap:8px;font-size:.9rem;display:flex}.person-fields input[type=checkbox]{width:auto}.inbox-date{color:var(--muted);font-size:.8rem}.inbox-btn.updated{border-color:var(--accent-dark);background:#fbf6ec}.inbox-btn .tag-updated{background:var(--accent);color:#fff}#confirm-modal{z-index:70}#group-modal .actions{flex-wrap:wrap;align-items:center}
