@font-face{font-family:Pinyon Script;src:url(/fonts/PinyonScript-Regular.ttf)format("truetype");font-display:swap}@font-face{font-family:Fragment;src:url(/fonts/PPFragment-SansRegular.otf)format("opentype");font-display:swap}@font-face{font-family:FragmentSerif;src:url(/fonts/PPFragment-SerifRegular.otf)format("opentype");font-display:swap}:root{--paper:#fffae7;--ink:#1d4ce7;--soft:#f4efdc;--line:#bcc8ef;--muted:#53638e;--error:#8f2735}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);overflow-wrap:anywhere;margin:0;font-family:Fragment,Arial,sans-serif;font-size:16px;line-height:1.55}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--ink);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:FragmentSerif,Georgia,serif;font-weight:400;line-height:1.2}h1{margin-bottom:1rem;font-size:clamp(2.4rem,8vw,3.8rem)}h2{font-size:1.8rem}h3{font-size:1rem;font-weight:400}.script{font-family:Pinyon Script,Georgia,serif}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:.72rem}.muted,.hint{color:var(--muted)}.hint{margin:.4rem 0 0;font-size:.87rem}.small{font-size:.86rem}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:1rem;padding:1.2rem 2rem;display:flex}.brand{white-space:nowrap;font-size:clamp(1.5rem,7vw,1.8rem);text-decoration:none}.topbar nav{gap:1.4rem;font-size:.8rem;display:flex}.shell{width:min(660px,100%);margin:0 auto;padding:3.2rem 1.4rem 4rem}.intro{text-align:center;margin-bottom:2.5rem}.ornament{margin-bottom:1rem;font-size:1.8rem}.intro p{max-width:36rem;margin-left:auto;margin-right:auto}.card{border:1px solid var(--line);border-radius:6px;margin-bottom:1.3rem;padding:1.6rem}.card h2{margin-bottom:.4rem}.invitation-card,.invitation-lookup{border-color:var(--ink);border-radius:0}.invitation-names{text-align:center;padding:1rem 0}.invitation-names .eyebrow{margin-bottom:1.2rem}.invitation-names ul{margin:0;padding:0;list-style:none}.invitation-names li{font-size:clamp(2.3rem,8vw,3rem);line-height:1.25}.invitation-names li+li:before{content:"&";margin:.4rem 0;font-size:1.5rem;display:block}.invitation-events{text-transform:uppercase;letter-spacing:.12em;margin:1.5rem 0 0;font-size:.75rem}.invitation-guest{border-top:1px solid var(--line);margin-top:1.2rem;padding-top:1.2rem}.invitation-guest legend{font-family:FragmentSerif,Georgia,serif;font-size:1.2rem}.invitation-guest>fieldset{margin-top:0}.invitation-lookup h2{text-align:center;padding:.5rem 0 1rem}.invitation-lookup>p{text-align:center;font-size:.9rem}.invitation-lookup>.hint{margin-top:1.2rem}.event-card{border-color:var(--ink);border-radius:0;margin-bottom:1.8rem;padding:1.6rem}.event-card-heading{text-align:center;border-bottom:1px solid var(--line);padding:.3rem 0 1.4rem}.event-date{border-bottom:1px solid var(--ink);letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.4rem;padding-bottom:.65rem;font-size:.8rem;display:inline-block}.event-card h3{letter-spacing:.14em;text-transform:uppercase;margin-bottom:.5rem;font-size:.8rem}.event-venue{margin-bottom:.8rem;font-size:clamp(2rem,7vw,2.7rem);line-height:1.15}.event-details{max-width:28rem;color:var(--muted);margin:0 auto;font-size:.85rem}.event-responses{padding-top:.4rem}.event-responses>fieldset:last-child{margin-bottom:0}.field{margin:1.2rem 0;display:block}.field>span,.field>label{margin-bottom:.5rem;font-size:.9rem;display:block}input:not([type=radio]):not([type=checkbox]),select,textarea{width:100%;color:var(--ink);border:1px solid var(--line);background:#ffffff80;border-radius:4px;min-height:48px;padding:.75rem .8rem;display:block}textarea{resize:vertical;min-height:100px}input::placeholder,textarea::placeholder{color:#747f9e}fieldset{border:0;min-width:0;margin:1rem 0;padding:0}legend{margin-bottom:.65rem;font-size:.95rem}.choices{flex-wrap:wrap;gap:.65rem;display:flex}.choice{border:1px solid var(--line);cursor:pointer;border-radius:4px;flex:1;align-items:center;gap:.55rem;min-width:125px;padding:.8rem;line-height:1.3;display:flex}.choice:has(input:checked){border-color:var(--ink);background:#e9edff}.choice input{accent-color:var(--ink);flex-shrink:0;width:17px;height:17px;margin:0}.primary,.secondary{border:1px solid var(--ink);letter-spacing:.02em;border-radius:3px;justify-content:center;align-items:center;min-height:48px;padding:.8rem 1.4rem;font-size:.9rem;text-decoration:none;display:inline-flex}.primary{background:var(--ink);color:var(--paper)}.secondary{color:var(--ink);background:0 0}.primary:hover{background:#143ec9}.secondary:hover{background:#e9edff}.text-button{color:var(--ink);text-underline-offset:4px;background:0 0;border:0;padding:.5rem 0;text-decoration:underline}.actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem;display:flex}.full{width:100%}.steps{counter-reset:step;gap:.5rem;margin:0 0 2rem;padding:0;list-style:none;display:flex}.steps li{border-top:2px solid var(--line);color:var(--muted);flex:1;padding-top:.7rem;font-size:.72rem}.steps button{width:100%;color:var(--ink);text-align:left;text-underline-offset:4px;background:0 0;border:0;padding:0 0 .7rem;text-decoration:underline;display:block}.steps li.current{border-color:var(--ink);color:var(--ink)}.step-heading{font-size:2rem}.notice{border:1px solid var(--line);background:#f0f2ff;border-radius:4px;margin:1rem 0;padding:1rem 1.2rem}.error{color:var(--error);background:#fff0ed;border-color:#dca4a4}.grid-two{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.summary-row{border-bottom:1px solid var(--line);justify-content:space-between;gap:1.3rem;padding:.55rem 0;display:flex}.summary-row:last-child{border:0}.summary-row span:last-child{text-align:right}.summary-details{white-space:pre-wrap;overflow-wrap:anywhere}.footer{text-align:center;color:var(--muted);margin-top:3rem;font-size:.8rem}.skip{background:var(--paper);z-index:100;padding:1rem;position:absolute;top:-80px;left:1rem}.skip:focus{top:0}[hidden]{display:none!important}.check{align-items:center;gap:.65rem;margin:1rem 0;display:flex}.check input{accent-color:var(--ink);width:18px;height:18px}.admin-shell{max-width:1160px;margin:0 auto;padding:2.2rem 1.4rem}.admin-shell h1{font-size:2.7rem}.admin-toolbar{flex-wrap:wrap;align-items:center;gap:.7rem;margin:1rem 0 2rem;display:flex}.admin-toolbar input,.admin-toolbar select{flex:1;min-width:170px;width:auto!important}.stats{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.5rem 0;display:grid}.stat{border:1px solid var(--line);border-radius:4px;padding:1.3rem}.table-wrap{overflow-x:auto}table{border-collapse:collapse;text-align:left;width:100%;min-width:640px;font-size:.9rem}th,td{border-bottom:1px solid var(--line);vertical-align:top;padding:.8rem .6rem}th{text-transform:uppercase;letter-spacing:.1em;font-size:.7rem;font-weight:400}td button{font:inherit}.badge{border:1px solid var(--line);white-space:nowrap;border-radius:20px;padding:.15rem .5rem;font-size:.72rem;display:inline-block}.badge.complete{color:#3d5d22;background:#e7efdc}.badge.pending{color:#756128;background:#f4ebcd}.subnav{flex-wrap:wrap;gap:1.2rem;margin-bottom:1.5rem;display:flex}.subnav button{color:var(--ink);background:0 0;border:0;border-bottom:2px solid #0000;padding:.5rem 0}.subnav button.active{border-color:var(--ink)}details{margin:1rem 0}summary{cursor:pointer}.history pre,.email-preview{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--soft);max-height:350px;padding:1rem;font-size:.8rem;overflow:auto}.admin-form{max-width:760px}.screen-title:focus{outline:none}@media (width<=540px){.topbar{padding:1rem 1.2rem}.shell{padding-top:2rem}.card{padding:1.1rem}.grid-two{grid-template-columns:1fr;gap:0}.actions>.primary{flex:1}.topbar nav{gap:.8rem}.steps li{font-size:.65rem}.admin-shell{padding:1.5rem 1rem}.summary-row{font-size:.9rem}}@media (prefers-reduced-motion:no-preference){button,a,input{transition:background-color .15s,border-color .15s}.card{animation:.2s ease-out appear}@keyframes appear{0%{opacity:.5;transform:translateY(4px)}to{opacity:1;transform:none}}}
