:root{color-scheme:light;--cream:#f6f2e9;--paper:#fffdf8;--ink:#173c39;--teal:#3c7771;--sage:#a9bda9;--yellow:#e8c966;--line:#d8ded3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.55}button,input{font:inherit}.shell{width:min(100% - 32px,980px);margin:24px auto 40px}.hero{min-height:440px;position:relative;overflow:hidden;border-radius:26px;background:#e8ecdf;display:flex;align-items:center;padding:44px 7%}.hero::before{content:"";position:absolute;width:48%;height:150%;background:#e7ca6c;right:-9%;top:-26%;transform:rotate(27deg);border-radius:45%}.hero::after{content:"";position:absolute;width:42%;height:120%;background:#95b5a7;right:12%;top:25%;transform:rotate(35deg);border-radius:50%;opacity:.8}.paint{position:absolute;z-index:1;border-radius:50%;filter:blur(1px)}.paint-one{width:65%;height:92px;background:#6e9b91;right:-4%;bottom:60px;transform:rotate(-25deg);opacity:.75}.paint-two{width:30%;height:45px;background:#d9b650;right:5%;top:55px;transform:rotate(27deg);opacity:.8}.hero-content{position:relative;z-index:2}.eyebrow{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;font-weight:700;margin:0 0 12px}.hero h1{font-size:clamp(3.7rem,11vw,7.7rem);letter-spacing:-.07em;line-height:.94;margin:0 0 30px;font-weight:800}.hero h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.05em}.hero h1 span{color:#fffdf6;text-shadow:0 2px 20px #34544b44}.hero-place{font-size:1.2rem;font-weight:700;margin:0}.card{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:clamp(24px,5vw,48px)}.rsvp{margin:24px 0}.section-heading{display:flex;gap:20px;align-items:start;margin-bottom:28px}.number{display:inline-grid;place-items:center;width:42px;height:42px;flex:none;border-radius:50%;background:#e5ecdf;font-weight:700;font-size:.8rem}.section-heading h2,.admin-card h2{font-size:clamp(1.6rem,4vw,2.3rem);line-height:1.1;margin:0;letter-spacing:-.04em}form{max-width:560px}label,legend{display:block;font-weight:700;margin-bottom:8px}input[type=text],input[type=password],input[type=number]{display:block;width:100%;border:1px solid #aabbb3;background:#fff;border-radius:10px;padding:13px 15px;color:var(--ink);margin-bottom:24px}input:focus,button:focus-visible,a:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}fieldset{border:0;margin:0 0 24px;padding:0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{border:1px solid #aabbb3;border-radius:10px;padding:13px 15px;display:flex;gap:10px;align-items:center;cursor:pointer;font-weight:600;margin:0}.choice:has(input:checked){background:#e5eee6;border-color:var(--teal)}.choice input{accent-color:var(--teal);width:18px;height:18px;margin:0;flex:none}[hidden]{display:none!important}button{border:0;background:var(--ink);color:#fff;min-height:50px;border-radius:10px;padding:12px 22px;font-weight:700;cursor:pointer}button:hover{background:#2b655e}button span{margin-left:18px}.notice{border-radius:10px;background:#f2ecd5;padding:14px 17px;margin:0 0 22px}.notice p{margin:0}.notice ul{margin:7px 0 0;padding-left:20px}.success{background:#e3eddf}.error{background:#f8e6db}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.info .section-heading{margin-bottom:16px}.info p:not(.eyebrow){max-width:36ch}.hotel{background:#f0f2e9}.text-link,.back a{color:var(--ink);font-weight:700;text-underline-offset:4px}.text-link span{margin-left:4px}footer{text-align:center;color:#6b7f76;font-size:.82rem;padding:34px 0}.admin-shell{max-width:850px}.admin-header{padding:30px 0 22px}.admin-header h1{font-size:clamp(2.5rem,7vw,4.5rem);letter-spacing:-.06em;line-height:1;margin:0}.admin-card h2{margin-bottom:24px}.admin-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-bar h2{margin:0}.quiet{background:#e5eee6;color:var(--ink);min-height:40px}.table-wrap{overflow-x:auto;margin-top:20px}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}th{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}.back{margin:22px 4px}@media(max-width:650px){.shell{width:min(100% - 24px,980px);margin:12px auto 25px}.hero{min-height:350px;padding:32px 7%;border-radius:20px}.hero h1{font-size:clamp(3.5rem,15vw,5.5rem)}.hero::before{width:65%}.hero::after{width:58%}.choices,.info-grid{grid-template-columns:1fr}.card{border-radius:18px}.admin-bar{align-items:start}}
.delete-confirm{min-width:100px}.delete-confirm summary{cursor:pointer;color:#823f34;font-weight:700;padding:10px 0}.delete-confirm[open]{min-width:180px;max-width:240px}.delete-confirm p{font-size:.9rem;overflow-wrap:anywhere}.delete-confirm button{background:#823f34;font-size:.9rem;min-height:44px;padding:10px 14px}.delete-confirm button:hover{background:#653127}.delete-confirm summary:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}.admin-bar{margin-bottom:20px}

/* Number and category share a row; the title uses the card's full width. */
.info-heading{margin-bottom:20px}
.info-label{display:flex;align-items:center;gap:12px;margin-bottom:22px;min-height:36px}
.info-label .number{width:36px;height:36px}
.info-label .eyebrow{margin:0;min-width:0}
.info-label svg{width:22px;height:24px;flex:none;margin-left:auto}
.info-heading h2{font-size:clamp(1.6rem,3.2vw,2rem);line-height:1.15;letter-spacing:-.035em;margin:0;text-wrap:balance}
.info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.hero-place{display:flex;align-items:flex-start;gap:10px}
.hero-place svg{flex:none;margin-top:3px}
@media(max-width:760px){.info-grid{grid-template-columns:1fr}}
