@import "https://fonts.googleapis.com/css2?family=Caveat:wght@600;700&family=Inter:wght@400;500;600;700;800&display=swap";
:root{--ink:#26211c;--muted:#695f55;--paper:#fffaf1;--linen:#f7ecd9;--tomato:#d84b32;--olive:#6f7f3f;--cava:#f5c962;--sea:#247b7b;--blue:#305f8f;--line:#26211c29;--shadow:0 18px 48px #39291829}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{margin:0}body,main{max-width:100%}button,input,select,textarea{font:inherit}button,a{min-height:44px}button{cursor:pointer}a{color:inherit}button,input,select,textarea,.rsvp-panel,.supplies-panel,.category,.attendee-row,.host-row,.host-login{min-width:0}button,a,input,select,textarea{overflow-wrap:anywhere}main{background:linear-gradient(90deg, #d84b3212 1px, transparent 1px), linear-gradient(#6f7f3f12 1px, transparent 1px), var(--paper);background-size:34px 34px;min-height:100vh;position:relative;overflow-x:clip}.hero-band,.live-band,.workbench,.spread-band,.attendees-band{z-index:1;position:relative}.hero-band{border-bottom:1px solid var(--line);background:radial-gradient(circle at 12% 20%,#f5c9626b,#0000 24rem),linear-gradient(135deg,#fff3d4 0%,#fffaf1 42%,#dceadd 100%);overflow-x:clip}.hero-inner,.live-grid,.workbench,.spread-band{width:min(1160px,100% - 32px);margin:0 auto}.hero-inner{align-content:center;gap:28px;min-height:88vh;padding:56px 0 42px;display:grid;position:relative}.hero-food-sticker{--sticker-size:clamp(240px, 18vw, 310px);--sticker-outset:calc(var(--sticker-size) * .16);width:var(--sticker-size);z-index:2;opacity:0;pointer-events:none;filter:drop-shadow(0 14px 22px #3929182e);animation:.9s cubic-bezier(.2,.8,.2,1) .16s both hero-sticker-enter,8s ease-in-out 1.06s infinite hero-sticker-drift;position:absolute;bottom:-8px;left:calc(100% + clamp(18px,1.8vw,28px));transform:translate(120%)rotate(18deg)}.hero-title-wrap{width:fit-content;max-width:100%;position:relative}.hero-title{z-index:1;position:relative}.event-mark{border:2px solid var(--ink);background:var(--cava);width:fit-content;box-shadow:5px 5px 0 var(--ink);text-transform:uppercase;letter-spacing:0;padding:9px 15px;font-weight:800;transform:rotate(-2deg)}.script{color:var(--tomato);margin:0 0 4px;font-family:Caveat,Comic Sans MS,cursive;font-size:clamp(2rem,7vw,4.8rem);line-height:.95}h1,h2,h3,h4,p{margin-top:0}h1{letter-spacing:0;max-width:900px;margin-bottom:16px;font-size:clamp(3.8rem,13vw,9rem);line-height:.82}.lead{max-width:680px;color:var(--muted);margin-bottom:0;font-size:clamp(1.15rem,2.2vw,1.55rem);line-height:1.45}.event-strip{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1c7;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.event-strip div{border-right:1px solid var(--line);padding:18px}.event-strip div:last-child{border-right:0}.event-strip span,.eyebrow,label span,.field-title,.nudge span{color:var(--tomato);text-transform:uppercase;letter-spacing:0;margin-bottom:6px;font-size:.76rem;font-weight:800;display:block}.event-strip strong{line-height:1.35;display:block}.hero-actions,.form-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-actions a,.primary,.ghost,.text-button,.quick-adds button,.segmented button{border:1px solid var(--ink);border-radius:7px;justify-content:center;align-items:center;font-weight:800;text-decoration:none;transition:transform .14s,box-shadow .14s,background .14s;display:inline-flex}.hero-actions a,.primary{background:var(--ink);color:#fffaf1;box-shadow:4px 4px 0 var(--cava);padding:0 18px}.hero-actions a:last-child,.ghost,.text-button{color:var(--ink);box-shadow:none;background:#fffaf1}button:hover,a:hover{transform:translateY(-1px)}.live-band{background:var(--ink);color:#fffaf1}.live-grid{justify-content:center;padding:28px 0;display:flex}.section-heading h2{letter-spacing:0;margin-bottom:8px;font-size:clamp(1.8rem,4vw,3rem);line-height:1}.tally-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;width:min(760px,100%);display:grid}.tally-row div{background:#fffaf114;border:1px solid #fffaf13d;padding:15px}.tally-row strong{font-size:2rem;display:block}.tally-row span{color:#fffaf1bd;font-size:.9rem}.workbench{grid-template-columns:minmax(0,1.35fr) minmax(320px,.75fr);align-items:start;gap:24px;padding:40px 0;display:grid}.rsvp-panel,.supplies-panel,.category{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1eb;border-radius:8px}.rsvp-panel,.supplies-panel{padding:24px}.section-heading{margin-bottom:22px}.muted{color:var(--muted)}.persona,.nudge,.pending-supplies,.locked,.error,.success{border-radius:7px;margin-bottom:18px;padding:14px 16px}.persona{background:#fff2df;border:1px dashed #d84b3275}.persona strong{font-family:Caveat,Comic Sans MS,cursive;font-size:2rem;line-height:1;display:block}.persona span{color:var(--muted)}label{gap:8px;margin-bottom:18px;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fffdf8;border-radius:7px;outline:0;padding:12px 13px}textarea{resize:vertical;min-height:98px}input:focus,select:focus,textarea:focus{border-color:var(--sea);box-shadow:0 0 0 3px #247b7b29}.honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-10000px}.segmented{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px;display:grid}.segmented button,.quick-adds button,.text-button,.ghost{color:var(--ink);background:#fffdf8;padding:0 12px}.lookup-button{width:fit-content;margin:-4px 0 18px}.segmented button.selected{background:var(--olive);color:#fffaf1}.stepper,.mini-stepper{border:1px solid var(--line);border-radius:7px;grid-template-columns:44px minmax(54px,84px) 44px;width:fit-content;max-width:100%;display:grid;overflow:hidden}.stepper button,.mini-stepper button{background:var(--linen);border:0;font-weight:800}.stepper input,.mini-stepper input{border:0;border-left:1px solid var(--line);border-right:1px solid var(--line);text-align:center;border-radius:0}.dish-block{gap:10px;margin-bottom:14px;display:grid}.quick-adds{flex-wrap:wrap;gap:8px;margin-bottom:18px;display:flex}.quick-adds button{min-height:36px;color:var(--sea);border-color:#247b7b57}.nudge{background:#edf5f7;border:1px solid #305f8f3d}.pending-supplies{background:#f3f7e4;border:1px solid #6f7f3f5c}.pending-supplies>span{color:var(--olive);text-transform:uppercase;letter-spacing:0;margin-bottom:6px;font-size:.76rem;font-weight:800;display:block}.pending-supplies p{color:var(--muted);margin-bottom:14px}.pending-supply-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.pending-supply-list label,.nudge p{margin-bottom:0}.error{color:#842310;background:#ffe6df;border:1px solid #d84b325c}.success{color:#3f4f1d;background:#eef4d7;border:1px solid #6f7f3f66}.primary,.ghost{min-width:148px}.primary:disabled,.ghost:disabled,.mini-stepper button:disabled,.mini-stepper input:disabled{cursor:not-allowed;opacity:.56}.locked{background:var(--linen);color:var(--muted)}.supply-list{gap:12px;display:grid}.supply-item{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:12px;min-width:0;padding:14px 0;display:grid}.supply-item:first-child{border-top:0}.supply-item p,.supply-item small{color:var(--muted);margin:4px 0 0}.supply-item small{line-height:1.35;display:block}.spread-band{padding:10px 0 56px}.attendees-band{width:min(1160px,100% - 32px);margin:0 auto;padding:0 0 56px}.spread-heading{justify-content:space-between;align-items:end;gap:16px;display:flex}.attendees-heading{margin-bottom:12px}.attendee-list{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1eb;border-radius:8px;overflow:hidden}.attendee-row{border-top:1px solid var(--line);grid-template-columns:minmax(140px,1.2fr) minmax(120px,.9fr) minmax(82px,.6fr) minmax(88px,.6fr) minmax(180px,1.4fr);align-items:center;gap:12px;padding:13px 16px;display:grid}.attendee-row:first-child{border-top:0}.attendee-row strong{overflow-wrap:anywhere;line-height:1.2}.attendee-row span{color:var(--muted);overflow-wrap:anywhere;line-height:1.3}.attendee-supplies{color:var(--blue)}.host-page{padding:34px 0 58px}.host-shell{width:min(1100px,100% - 32px);margin:0 auto}.host-page h1{margin-bottom:0;font-size:clamp(2.5rem,8vw,5rem);line-height:.95}.host-login,.host-row{border:1px solid var(--line);box-shadow:var(--shadow);background:#fffaf1f0;border-radius:8px}.host-login{max-width:440px;padding:22px}.host-list{gap:16px;display:grid}.host-row{gap:14px;padding:18px;display:grid}.host-row-main,.host-supplies{grid-template-columns:minmax(160px,1.3fr) minmax(130px,.8fr) minmax(90px,.55fr) auto;align-items:end;gap:12px;display:grid}.host-supplies{grid-template-columns:repeat(4,minmax(0,1fr))}.host-counts{border:1px solid var(--line);background:var(--linen);border-radius:7px;grid-template-columns:auto auto;align-items:baseline;gap:3px 8px;min-height:48px;padding:8px 11px;display:grid}.host-counts strong{font-size:1.25rem}.host-counts span,.host-actions span{color:var(--muted)}.host-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.category-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.category{min-height:260px;padding:16px}.category h3{margin-bottom:14px;font-size:1rem;line-height:1.2}.empty{color:var(--muted)}.dish-list{gap:12px;display:grid}.dish{border-top:1px solid var(--line);gap:10px;min-width:0;padding-top:12px;display:grid}.dish-pending{border-color:#305f8f47}.dish:first-child{border-top:0;padding-top:0}.dish img,.dish-emoji,.dish-loading-photo{aspect-ratio:1;object-fit:cover;background:var(--linen);border-radius:8px;width:100%}.dish-emoji,.dish-loading-photo{place-items:center;display:grid}.dish-emoji{font-size:3rem}.dish-loading-photo{color:var(--muted);text-align:center;align-content:center;gap:6px;position:relative;overflow:hidden}.dish-loading-photo:before,.dish-loading-text:before{content:"";background:linear-gradient(90deg,#0000,#fffaf1b8,#0000);animation:1.4s infinite loading-sweep;position:absolute;inset:0;transform:translate(-100%)}.dish-loading-photo span{font-size:2.4rem}.dish-loading-photo small{color:var(--blue);text-transform:uppercase;font-weight:800;position:relative}.dish h4{overflow-wrap:anywhere;margin-bottom:4px;line-height:1.1}.dish p{color:var(--muted);overflow-wrap:anywhere;margin-bottom:6px;font-size:.92rem;line-height:1.35}.dish-loading-text{width:fit-content;color:var(--blue);background:#edf5f7;border-radius:6px;margin-bottom:8px;padding:4px 8px;font-weight:700;position:relative;overflow:hidden}.dish-status{width:fit-content;color:var(--blue);text-transform:uppercase;background:#edf5f7;border:1px solid #305f8f47;border-radius:999px;margin-bottom:8px;padding:4px 7px;font-size:.72rem;font-weight:800;display:inline-flex}.dish small{color:var(--blue);overflow-wrap:anywhere;line-height:1.35}@keyframes loading-sweep{to{transform:translate(100%)}}@keyframes hero-sticker-enter{0%{opacity:0;transform:translate(120%)rotate(18deg)}to{opacity:.9;transform:translate(0)rotate(8deg)}}@keyframes hero-sticker-drift{0%,to{opacity:.9;transform:translate(0)rotate(8deg)}50%{opacity:.94;transform:translateY(-10px)rotate(11deg)}}@media (max-width:980px){.hero-title-wrap{width:100%}.hero-food-sticker{--sticker-size:clamp(190px, 25vw, 240px);left:auto;right:calc(((100vw - 100%) / -2) - var(--sticker-outset));bottom:-6px}.event-strip,.workbench{grid-template-columns:1fr}.event-strip div{border-right:0;border-bottom:1px solid var(--line)}.event-strip div:last-child{border-bottom:0}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:680px){.hero-inner,.live-grid,.workbench,.spread-band,.attendees-band{width:min(100% - 22px,1160px)}.hero-inner{gap:22px;min-height:86vh;padding-top:34px}.hero-food-sticker{--sticker-size:clamp(152px, 42vw, 172px);bottom:-82px}h1{font-size:clamp(2.55rem,11vw,3rem)}.lead{max-width:calc(100% - 76px);font-size:1.05rem}.hero-actions,.form-actions,.host-actions{grid-template-columns:1fr;display:grid}.hero-actions a,.primary,.ghost,.text-button{width:100%;min-width:0}.tally-row,.segmented,.pending-supply-list,.category-grid{grid-template-columns:1fr}.rsvp-panel,.supplies-panel,.category{padding:16px}.supply-item{grid-template-columns:1fr}.mini-stepper{grid-template-columns:44px minmax(54px,1fr) 44px;width:100%}.stepper{grid-template-columns:44px minmax(54px,84px) 44px}.attendee-row{grid-template-columns:1fr;gap:5px}.host-shell{width:min(100% - 22px,1100px)}.host-row-main,.host-supplies{grid-template-columns:1fr}.host-page{padding-top:22px}.host-row,.host-login{padding:16px}}@media (prefers-reduced-motion:reduce){.hero-food-sticker{opacity:.9;animation:none;transform:rotate(8deg)}}
