:root{--bg:#fff8f3;--ink:#221a0f;--primary:#af101a;--secondary:#7a5649;--paper:#f4ead8;--paper-light:#fffdf9;color:var(--ink);background:var(--bg);font-family:Plus Jakarta Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--bg);min-width:320px;margin:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}.page-shell{width:100%;max-width:560px;margin:0 auto;padding:24px clamp(18px,6vw,34px) 128px}.rsvp-hero{text-align:center;max-width:100%;margin:0 auto;padding:76px 0 48px}.eyebrow{color:var(--secondary);letter-spacing:.42em;text-transform:uppercase;margin:0 0 24px;font-size:.66rem;font-weight:700}h1{color:var(--primary);margin:0;font-family:Oooh Baby,cursive;font-size:clamp(4.4rem,13vw,8rem);font-weight:400;line-height:.78}.rsvp-hero p{max-width:520px;color:var(--secondary);margin:34px auto 0;font-size:1.05rem;line-height:1.6}.form-wrap{background:var(--paper);max-width:100%;box-shadow:6px 7px 0 var(--primary);border-radius:22px 18px 25px 16px;margin:0 auto;padding:clamp(26px,5vw,46px);position:relative}.form-wrap:before{content:"";pointer-events:none;border:1.5px dashed #af101abf;border-radius:25px 18px 28px 15px;position:absolute;inset:-7px;transform:rotate(-.8deg)}.sketch-note{color:#df9094;position:absolute;top:-32px;right:clamp(18px,4vw,38px);transform:rotate(12deg)}form{gap:22px;display:grid}label,fieldset,.form-field{border:0;gap:9px;margin:0;padding:0;font-weight:800;display:grid}legend{margin-bottom:10px;font-weight:800}.field-label{display:block}input,textarea{width:100%;color:var(--ink);background:#fffdf9b3;border:0;border-bottom:1.5px solid #7a564961;border-radius:10px 10px 0 0;padding:14px 12px}textarea{resize:vertical}input:focus,textarea:focus{border-color:var(--primary);outline:3px solid #af101a24}.number-stepper{background:#fffdf9b8;border:1.5px solid #af101a47;border-radius:999px;grid-template-columns:54px 1fr 54px;align-items:stretch;display:grid;overflow:hidden}.number-stepper input{text-align:center;appearance:textfield;background:0 0;border:0;border-radius:0;padding:0 10px;font-family:Epilogue,sans-serif;font-weight:800}.number-stepper input::-webkit-outer-spin-button{appearance:none;margin:0}.number-stepper input::-webkit-inner-spin-button{appearance:none;margin:0}.stepper-button{width:54px;height:54px;color:var(--primary);box-shadow:none;background:0 0;border-radius:0;margin:0;padding:0;font-size:1.35rem;line-height:1}.stepper-button:first-child{border-right:1.5px solid #af101a33}.stepper-button:last-child{border-left:1.5px solid #af101a33}.stepper-button:hover{background:#af101a14}.attendance-field{gap:10px}.pill-toggle{background:#fffdf9b8;border:1.5px solid #af101a47;border-radius:999px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff8c}.pill-toggle label{min-width:0;color:var(--secondary);cursor:pointer;font-family:Epilogue,sans-serif;font-weight:800;display:block;position:relative}.pill-toggle label+label{border-left:1.5px solid #af101a33}.pill-toggle input{opacity:0;pointer-events:none;position:absolute}.pill-toggle span{place-items:center;min-height:54px;padding:14px 18px;transition:color .18s,background .18s;display:grid}.pill-toggle input:checked+span{color:#fff;background:var(--primary)}.pill-toggle input:focus-visible+span{outline-offset:-3px;outline:3px solid #af101a33}button{color:#fff;background:var(--primary);cursor:pointer;border:0;border-radius:10px;justify-self:start;margin-top:8px;padding:17px 28px;font-family:Epilogue,sans-serif;font-weight:800;box-shadow:3px 3px #221a0f2e}button:disabled{cursor:wait;opacity:.72}.notice{z-index:1;border-radius:14px;margin-bottom:22px;padding:16px 18px;font-weight:800;position:relative}.success{color:#11651d;background:#ecf7ea}.error{color:#ba1a1a;background:#fde8e5}.hidden{display:none}.tabbar{z-index:5;backdrop-filter:blur(12px);background:#fff8f3ed;border-radius:28px 28px 0 0;grid-template-columns:repeat(3,1fr);width:100%;padding:14px 28px 16px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -18px 50px #221a0f14}.tabbar a{color:#b49b91;letter-spacing:.12em;text-transform:uppercase;justify-items:center;gap:5px;font-size:.62rem;font-weight:700;display:grid}.tabbar span{letter-spacing:0;font-size:1.35rem}.tabbar .active{color:var(--primary)}@media (width>=900px){.page-shell{padding-bottom:56px}.tabbar{border-radius:24px;grid-template-columns:1fr;gap:10px;width:150px;padding:18px;inset:50% auto auto 28px;transform:translateY(-50%)}.tabbar a{text-align:left;grid-template-columns:24px 1fr;place-items:center start;gap:12px}}@media (width<=720px){.page-shell{padding-inline:26px}.form-wrap{box-shadow:4px 5px 0 var(--primary)}button{width:100%}}
