:root{--cream:#fff3d9;--ink:#432a19;--orange:#ac4018;--line:#ddc7a4;--muted:#8b6a4e;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#38251c;color:var(--ink);font:14px var(--sans)}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #f3b535;outline-offset:3px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.family-strip{height:146px;background:#e8d9bb;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:4px 20px 0;border-bottom:5px solid #9b4e25}.character{background-image:none;background-size:300% 200%;aspect-ratio:1;position:relative;mask-image:radial-gradient(ellipse 50% 49%,#000 63%,transparent 100%)}.father{background-position:0 0}.mother{background-position:50% 0}.boy{background-position:100% 0}.older{background-position:0 100%}.younger{background-position:50% 100%}.turkey{background-position:100% 100%}.family-strip .character{width:145px;flex-shrink:0;margin:0 -13px;align-self:flex-end}.family-copy{text-align:center;padding:10px 28px;min-width:285px}.family-copy span{font-size:9px;letter-spacing:2.3px;color:#815c3e}.family-copy h2{font:600 33px var(--serif);margin:9px 0}.butter-word{position:absolute;top:23.5%;left:17%;width:26%;font:bold clamp(6px,.7vw,10px) Arial,sans-serif;transform:rotate(22deg);color:#372415;text-align:center}.invitation{position:relative;min-height:590px;height:calc(100svh - 232px);max-height:850px;background-image:none;background-size:100% 100%;background-position:center;overflow:hidden}.invite-center{position:absolute;inset:34% 12% 6%;display:flex;align-items:center;flex-direction:column}.date{font-size:clamp(12px,1.3vw,18px);color:#fff0d0;text-align:center;margin:0;line-height:1.5;text-shadow:0 2px 5px #251406;font-weight:600}.turkey-flipbook{width:clamp(220px,27vw,330px);aspect-ratio:1;background-image:url('art/turkey-frames-clear-fast.webp');background-size:400% 200%;animation:gobble 2.4s steps(1,end) infinite;mask-image:radial-gradient(ellipse 50% 50%,#000 74%,transparent 100%);flex-shrink:1;min-height:0}.wood-button{display:inline-flex;align-items:center;justify-content:center;position:relative;background:repeating-linear-gradient(3deg,#a8491f 0px,#a8491f 7px,#a1461e 8px,#bc5d27 10px);color:#fff5d4;border:3px solid #49230d;border-radius:9px;padding:12px 60px;box-shadow:inset 0 2px 0 #ea9b46,0 5px 0 #28130988;text-shadow:0 2px 0 #53270c;font-family:var(--serif);font-weight:700;font-size:29px;letter-spacing:2px;flex-shrink:0;transition:filter .2s}.wood-button:before,.wood-button:after{content:'•';position:absolute;top:50%;translate:0 -50%;font-size:16px;color:#482511;text-shadow:1px 1px #d98d45}.wood-button:before{left:13px}.wood-button:after{right:13px}.wood-button:hover{filter:brightness(1.12)}.forest-footer{position:relative;min-height:86px;background:linear-gradient(#35251bb0,#35251b99),none center bottom/cover;border-top:3px solid #ba651e;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:16px;gap:10px}.forest-footer nav{display:flex;gap:35px;align-items:center}.forest-footer button,.forest-footer a{background:none;border:0;color:#fff0c8;font-family:var(--serif);font-size:15px;text-shadow:0 1px 3px #160f08;padding:3px}.forest-footer small{font-size:8px;color:#ebc9a0}.rsvp-page{background:linear-gradient(#3a231847,#3a231833),none center bottom/cover;padding:24px 20px 38px;min-height:calc(100svh - 232px)}.back{display:block;max-width:510px;margin:0 auto 10px;color:#fff1d0;font-size:12px}.form-card{max-width:510px;margin:auto;background:#fff2d9;border:3px solid #744020;border-radius:13px;padding:10px 32px 22px;box-shadow:0 8px 30px #21120877}.form-top{display:flex;align-items:center;justify-content:center;height:116px;margin-bottom:12px}.form-top .character{width:110px;flex-shrink:0}.form-top h1{font:700 34px var(--serif);margin:0 10px;color:#8f3818;letter-spacing:2px}.form-top .butter-word{font-size:8px}form label,legend{display:block;font-size:12px;font-weight:600;margin:0 0 8px}input:not([type=radio]):not([type=checkbox]),select{width:100%;height:43px;border:1px solid #cfb38a;background:#fffaf0;color:var(--ink);border-radius:5px;padding:0 12px;font-size:13px}input::placeholder{color:#a38a70}#name{margin-bottom:20px}select{margin-bottom:21px}fieldset{border:0;margin:0 0 22px;padding:0;min-width:0}legend{margin-bottom:9px}.options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.options label{position:relative;margin:0;cursor:pointer}.options input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;margin:0}.options span{display:block;text-align:center;border:1px solid #c9aa7b;border-radius:5px;padding:12px 3px;font-size:12px;font-weight:500}.options input:checked+span{background:#884023;color:#fff2d5;border-color:#884023}.options input:focus-visible+span{outline:3px solid #d99032}.count-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;background:#93401e;color:#fff5df;padding:12px 17px;font-size:12px;font-weight:600;border-radius:5px}.button:hover{background:#713013}.text-button{background:none;border:0;padding:8px 0;color:#963f20;font-size:11px;text-align:left;text-decoration:underline;text-underline-offset:3px}.potluck-link{display:block;margin:0 auto 21px;font-size:12px}.add-item{display:flex;gap:7px}.add-item input{min-width:0}.add-item button{white-space:nowrap;padding:10px 12px}#item-list{list-style:none;padding:0;margin:10px 0 18px}#item-list li{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:#efdfbf;border-radius:5px;margin-top:6px;font-size:12px}#item-list button{border:0;background:none;color:#8b3c20;font-size:19px;padding:0 3px}.submit{width:100%;font-size:20px;letter-spacing:.7px;padding:10px 20px}#form-error,#login-error{color:#a23118;font-size:12px;margin:12px 0 0}.suggestions{background:#fffaf0;box-shadow:0 8px 18px #34211314;margin-top:-19px;margin-bottom:20px}.suggestions:empty{display:none}.suggestions button{display:block;width:100%;padding:11px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);font-size:12px}.suggestions button:hover{background:#eee0c3}#editing{padding:8px 10px;background:#ead9b7;font-size:11px;margin-bottom:16px;border-radius:4px}#editing button{border:0;background:none;text-decoration:underline;color:#8e3c1e;font-size:10px;float:right}dialog{border:3px solid #86502e;background:var(--cream);color:var(--ink);border-radius:14px;padding:33px 25px 25px;width:min(92vw,560px);max-height:90svh;overflow:auto;box-shadow:0 25px 100px #25130955}dialog::backdrop{background:#25190dcc;backdrop-filter:blur(3px)}dialog .close{position:absolute;right:13px;top:6px;background:none;border:0;font-size:28px;color:#76563c}h2{font:600 29px/1.2 var(--serif);margin:0 0 19px}h3{font:600 22px var(--serif);margin:10px 0}.contribution{display:grid;grid-template-columns:1fr auto;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);align-items:center}.contribution strong{font-size:13px}.contribution p{font-size:12px;line-height:1.5;color:#805936;margin:5px 0 0}.arrival-tag{font-size:10px;color:#805936;white-space:nowrap}.tentative-title{font-size:11px;margin:25px 0 2px;color:#815837;font-weight:600}.needed-title{margin-top:28px}.need{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line);font-size:12px}.need button{border:1px solid #ba8f57;background:#f4e3bc;color:#744422;border-radius:20px;font-size:10px;padding:7px 11px}.need.covered{opacity:.6}#reaction{text-align:center;width:min(92vw,440px)}#reaction>p{font-size:13px;line-height:1.6;color:#805936}#reaction-art{height:240px;position:relative;margin:0 auto 15px}#reaction-art .turkey-flipbook{width:230px;margin:auto;mask-image:radial-gradient(ellipse 50% 50%,#000 63%,transparent 100%)}.oven{width:240px;height:234px;background:#453025;border:7px solid #b8a68b;border-radius:13px;margin:auto;box-shadow:0 5px 0 #7e6a51}.oven-controls{height:36px;display:flex;align-items:center;justify-content:space-around;background:#b8a68b}.oven-controls i{width:14px;height:14px;background:#43362b;border-radius:50%}.oven-window{height:169px;margin:7px;background:radial-gradient(#faaf4077,#281b13);border:4px solid #75624b;border-radius:8px;overflow:hidden}.oven .turkey-flipbook{width:160px!important;mask-image:none!important}.timer{font:10px monospace;color:#edda7d;background:#332b20;padding:4px 7px}.tears{position:absolute;right:37%;top:70px;color:#65bada;font-size:33px;animation:tear 1s infinite}.crying .turkey-flipbook{animation:none;background-position:33.3333% 100%;filter:saturate(.7)}.login-art{display:flex;justify-content:center;margin-top:-10px}.login-art .character{width:140px}.login-art .butter-word{font-size:10px}#admin-login>h2{text-align:center}#login-form .button{margin-top:14px;width:100%}#admin{width:min(94vw,800px)}#totals{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}#totals span{padding:10px;background:#ecdab5;font-size:11px;flex:1;min-width:110px;border-radius:5px}#totals b{display:block;font:25px var(--serif)}.admin-bar{display:flex;justify-content:space-between;align-items:center;gap:10px}.inline-form{display:flex;gap:8px;margin:15px 0}.inline-form input{min-width:0}.inline-form .button{white-space:nowrap}.inline-form input[type=number]{width:70px}.guest-row,.admin-need{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.guest-row small{display:block;color:var(--muted);margin-top:4px}.guest-row button,.admin-need button{border:0;background:#e7d3ab;color:#5d3c24;border-radius:4px;font-size:10px;padding:8px}.guest-actions{display:flex;gap:5px}.admin-need input{width:65px!important}#admin-panel>h3{margin-top:25px}#reset-demo{margin-top:24px}@keyframes gobble{0%,100%{background-position:0 0}12.5%{background-position:33.3333% 0}25%{background-position:66.6667% 0}37.5%{background-position:100% 0}50%{background-position:0 100%}62.5%{background-position:33.3333% 100%}75%{background-position:66.6667% 100%}87.5%{background-position:100% 100%}}@keyframes tear{0%{translate:0 0;opacity:1}100%{translate:0 70px;opacity:0}}@media(min-width:1500px){.invitation{background-size:cover}.invite-center{inset:35% 12% 6%}}@media(max-width:850px){.family-strip{height:115px}.family-strip .character{width:110px;margin:0 -17px}.family-copy{min-width:230px;padding:10px 18px}.family-copy h2{font-size:28px}.family-copy span{font-size:8px}.invitation{height:calc(100svh - 201px);min-height:540px}.turkey-flipbook{width:270px}.invite-center{inset:35% 9% 6%}.rsvp-page{min-height:calc(100svh - 201px)}}@media(max-width:600px){.family-strip{height:143px;padding:6px 4px 0;flex-wrap:wrap;position:relative}.family-copy{order:-1;width:100%;padding:0;min-width:0;position:absolute;top:9px;z-index:2}.family-copy span{font-size:7px;letter-spacing:1.7px}.family-copy h2{font-size:24px;margin:3px 0}.family-strip .character{width:22%;margin:48px -1% 0;max-width:115px}.family-strip .butter-word{font-size:6px}.invitation{height:calc(100svh - 232px);min-height:480px;background-size:auto 100%;background-position:center}.invite-center{inset:36% 7% 5%}.date{font-size:11px;max-width:235px;margin:0 0 2px}.turkey-flipbook{width:240px}.wood-button{font-size:26px;padding:10px 48px}.forest-footer{min-height:89px;padding:13px 10px;gap:9px}.forest-footer nav{gap:21px}.forest-footer button,.forest-footer a{font-size:12px}.rsvp-page{padding:16px 13px 26px}.form-card{padding:8px 19px 20px}.form-top{height:91px;margin-bottom:15px}.form-top .character{width:90px}.form-top h1{font-size:29px;margin:0 10px}.form-top .butter-word{font-size:6px}.submit{font-size:20px}.options span{font-size:11px}.add-item button{font-size:11px}.inline-form{flex-wrap:wrap}.inline-form input:first-child{flex:1}.guest-row{align-items:flex-start}.guest-actions{flex-direction:column}dialog{padding:33px 20px 23px}h2{font-size:26px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}}

/* Character artwork has real alpha; no vignette around the turkey. */
.turkey-flipbook,#reaction-art .turkey-flipbook{mask-image:none}
/* Compose the header from individual, clean character cutouts. */
.family-strip{position:relative;background:radial-gradient(ellipse at center,#fff0cd,#dcb879);gap:0;isolation:isolate;border-bottom:4px solid #6e3517}
.family-copy{position:relative;background:repeating-linear-gradient(4deg,#91421e 0,#91421e 9px,#9d4b21 10px,#a95525 12px);border:3px solid #5a2c14;border-radius:8px;box-shadow:inset 0 2px #d68942,0 4px #48240e40;rotate:-1deg;padding:12px 20px;min-width:245px;z-index:3}
.family-copy span{color:#f1c58b;font-size:8px;letter-spacing:1.6px}.family-copy h2{color:#fff0cb;text-shadow:1px 2px #46210e;font-size:31px;margin:7px 0 2px}.family-strip .father{rotate:4deg;z-index:2}.family-strip .mother{rotate:-3deg;z-index:1}.family-strip .boy{rotate:3deg;z-index:2}.family-strip .older{rotate:-4deg;z-index:1}.family-strip .younger{rotate:5deg;z-index:2}.family-strip .character{mask-image:none;width:140px;margin:0 -9px -5px}
.date{background:#fff0cb;color:#673415;text-shadow:none;font-family:var(--serif);font-size:15px;line-height:1.5;padding:7px 25px;box-shadow:0 3px 0 #59301955;clip-path:polygon(0 0,100% 0,96% 50%,100% 100%,0 100%,4% 50%);margin:0 0 4px}.date strong{font-weight:600}.form-top .character,.login-art .character{mask-image:none}.butter-word{display:none}
@media(max-width:850px){.family-copy{min-width:205px;padding:9px 15px}.family-copy h2{font-size:26px}.family-strip .character{width:110px;margin:0 -13px -4px}.family-copy span{font-size:7px}}
@media(max-width:600px){.family-strip{height:155px;flex-wrap:nowrap;padding:0 4px}.family-copy{position:absolute;top:13px;width:204px;min-width:0;order:0;padding:7px 12px;left:50%;translate:-50% 0}.family-copy h2{font-size:25px;margin:3px 0}.family-copy span{font-size:6px;letter-spacing:1.5px}.family-strip .character{position:absolute;width:88px;margin:0;bottom:-9px;align-self:auto}.family-strip .father{left:calc(50% - 177px);bottom:13px;width:99px}.family-strip .mother{left:calc(50% - 113px);bottom:-12px;width:91px}.family-strip .boy{left:calc(50% - 45px);bottom:-10px;width:86px}.family-strip .older{left:calc(50% + 22px);bottom:-12px;width:88px}.family-strip .younger{left:calc(50% + 85px);bottom:4px;width:98px}.invitation{background-size:100% 100%;height:calc(100svh - 244px);min-height:450px}.invite-center{inset:35% 6% 5%}.date{font-size:12px;max-width:300px;padding:7px 22px;margin-bottom:3px}.turkey-flipbook{width:220px;flex:1;max-height:230px;min-height:150px;background-size:400% 200%;aspect-ratio:1;object-fit:contain}.invite-center>.turkey-flipbook{flex:none;width:205px;height:205px;min-height:0}.rsvp-page{min-height:calc(100svh - 244px)}input:not([type=radio]):not([type=checkbox]),select{font-size:16px;min-height:46px}.options span{padding:14px 2px}.forest-footer button,.forest-footer a{min-height:38px;display:inline-flex;align-items:center}.forest-footer{padding:7px 10px;gap:2px}.forest-footer nav{gap:18px}.need button{min-height:44px}.close{min-width:40px;min-height:40px}#item-list button{min-width:38px;min-height:35px}}
@media(max-width:360px){.family-strip .father{left:0}.family-strip .younger{right:0;left:auto}.family-copy{width:190px}.invite-center>.turkey-flipbook{width:185px;height:185px}.forest-footer nav{gap:13px}.forest-footer button,.forest-footer a{font-size:11px}.date{font-size:11px}}
@media(max-height:730px) and (max-width:600px){.family-strip{height:139px}.invitation{height:calc(100svh - 228px);min-height:425px}.invite-center>.turkey-flipbook{width:180px;height:180px}.invite-center{inset:35% 5% 4%}.date{font-size:11px}.wood-button{padding:8px 50px}}
/* Newly illustrated standalone transparent artwork, no fades or background. */
.character{background-image:none;mask-image:none!important;background-repeat:no-repeat;background-size:418.46% 100%}
.father{background-position:0 0;background-size:418.46% 100%}.mother{background-position:30.48% 0;background-size:463% 100%}.boy{background-position:54.21% 0;background-size:621.7% 100%}.older{background-position:77.18% 0;background-size:494.5% 100%}.younger{background-position:100% 0;background-size:549.5% 100%}
.family-strip .character{height:139px;width:102px;margin:0 -3px -3px;aspect-ratio:auto}.family-strip .father{width:108px}.family-strip .mother{width:100px}.family-strip .boy{width:79px}.family-strip .older{width:92px}.family-strip .younger{width:85px}.family-strip .family-copy{margin:0 12px}.prop{background-image:url('art/baster-butter-fast.webp');background-size:200% 100%;width:94px;height:94px;flex-shrink:0;background-repeat:no-repeat}.baster{background-position:left center;rotate:-8deg}.butter{background-position:right center;rotate:5deg}.form-top{height:100px}.form-top h1{margin:0 22px}.login-art{gap:28px;align-items:center}.login-art .prop{width:105px;height:105px}
@media(max-width:600px){.family-strip .character{height:92px;width:67px;margin:0;bottom:-2px}.family-strip .father{height:109px;width:79px;left:calc(50% - 179px);bottom:1px}.family-strip .mother{width:71px;left:calc(50% - 106px);bottom:-4px}.family-strip .boy{width:57px;left:calc(50% - 36px);bottom:-3px}.family-strip .older{width:66px;left:calc(50% + 28px);bottom:-4px}.family-strip .younger{height:102px;width:67px;left:calc(50% + 102px);bottom:0}.family-strip .family-copy{margin:0}.form-top .prop{height:80px;width:80px}.form-top h1{margin:0 19px}.form-top{height:87px}}
.rsvp-page{background-size:auto 180%;background-position:center bottom}
@media(max-width:600px){.family-copy{height:58px;top:4px;padding:5px 12px}.family-copy h2{font-size:23px;margin:2px 0}.family-copy span{font-size:6px}.rsvp-page{background-size:auto 180%}}
/* Each illustration keeps its own aspect ratio at every screen width. */
.invitation{height:auto;min-height:0;max-height:none;padding:0 18px 25px;background-image:url('art/forest-fast.webp');background-size:cover;background-position:center 58%;display:flex;align-items:center;flex-direction:column}
.invite-sign{display:block;width:min(92%,600px);height:auto;flex:none;margin:0 auto 3px}
.invite-center{position:static;inset:auto;display:flex;align-items:center;flex-direction:column;gap:7px;width:100%}
.invite-center>.turkey-flipbook{width:260px;height:260px;min-height:0;max-height:none;flex:none;aspect-ratio:1}
.date{font-size:15px;margin:0;max-width:none;padding:6px 30px;flex:none;line-height:1.4}
.rsvp-page{background-image:url('art/forest-fast.webp');background-size:cover;background-position:center bottom}
.forest-footer{background-image:linear-gradient(#35251bb0,#35251b99),url('art/forest-fast.webp')}
.food-inspiration{background:#eddbb5;border:1px solid #d4b98b;padding:14px;border-radius:7px;margin:-4px 0 20px}.food-inspiration p{margin:0 0 11px;font-size:14px;line-height:1.5}.food-list-button{display:block;width:100%;min-height:46px;border:1px solid #9d5a2c;background:#fff3d6;border-radius:5px;color:#773a1c;font-weight:600;font-size:14px}.food-list-button:hover{background:#ffe7ac}
html:has(dialog[open]),body:has(dialog[open]){overflow:hidden;overscroll-behavior:none}
#potluck{padding:0;overflow:hidden;max-height:min(90svh,800px)}.modal-heading{position:relative;display:flex;align-items:center;justify-content:space-between;padding:22px 24px 16px;border-bottom:1px solid var(--line);background:var(--cream)}.modal-heading h2{margin:0;padding-right:35px}.modal-heading .close{position:static;width:40px;height:40px;flex-shrink:0;padding:0}.modal-scroll{padding:0 24px 22px;overflow-y:auto;max-height:calc(min(90svh,800px) - 90px);overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}
@media(max-width:600px){.invitation{height:auto;min-height:0;max-height:none;padding:0 10px 22px;background-size:cover}.invite-sign{width:100%;max-width:440px;margin:0 0 4px}.invite-center{inset:auto;gap:9px}.invite-center>.turkey-flipbook{width:225px;height:225px;max-height:none;min-height:0}.date{font-size:13px;padding:7px 27px;max-width:none}.wood-button{font-size:26px;padding:10px 52px}.rsvp-page{background-size:cover}.modal-heading{padding:15px 18px 12px}.modal-scroll{padding:0 18px 20px;max-height:calc(90svh - 78px)}.form-card{max-width:510px}.food-inspiration p{font-size:14px}.form-top h1{font-size:30px}}
.invite-sign{margin-bottom:8px}.invite-center{gap:12px}.date{display:flex;flex-direction:column;align-items:center;padding:11px 44px;line-height:1.4}.date span{font-size:23px}.date strong{font-size:20px}.date b{font-size:21px}.invite-center>.turkey-flipbook{width:245px;height:245px}.invitation{padding-bottom:25px}
@media(max-width:600px){.invite-sign{margin-bottom:9px}.invite-center{gap:9px}.invite-center>.turkey-flipbook{width:210px;height:210px}.date{padding:9px 42px}.date span{font-size:21px}.date strong{font-size:18px}.date b{font-size:19px}.invitation{padding-bottom:20px}}
/* Tight sprite boundaries exclude neighboring artwork; padding protects heads. */
.family-strip{height:160px;padding-top:12px}.family-strip .character{rotate:0deg;align-self:center;margin:0 -2px;height:134px}.father{background-size:434.4% 100%;background-position:0 0}.mother{background-size:482.667% 100%;background-position:29.6167% 0;clip-path:inset(0 4% 0 0)}.boy{background-size:613.56% 100%;background-position:53.245% 0}.older{background-size:500.46% 100%;background-position:75.6617% 0}.younger{background-size:512.264% 100%;background-position:100% 0}
@media(max-width:600px){.family-strip{height:160px;padding-top:0}.family-strip .character{align-self:auto;rotate:0deg;margin:0;height:92px}.family-strip .father{height:103px;width:75px;bottom:2px}.family-strip .mother{height:92px;bottom:0}.family-strip .boy{height:89px;bottom:0}.family-strip .older{height:92px;bottom:0}.family-strip .younger{height:98px;bottom:1px}.family-copy{top:5px}}
@media(min-width:601px){.invitation{background-image:url('art/forest-wide-fast.webp');background-size:cover;background-position:center bottom}}
.invite-center>.turkey-flipbook{position:relative;isolation:isolate}.invite-center>.turkey-flipbook:after{content:'';position:absolute;bottom:2.5%;left:28%;width:44%;height:4%;border-radius:50%;background:#4b26132b;filter:blur(2px);z-index:-1}
/* Five independent character files form the invitation header. */
.family-peek{width:min(96%,650px);height:166px;display:flex;justify-content:center;align-items:flex-end;position:relative;margin:12px auto -28px;z-index:1}.family-peek img{display:block;object-fit:contain;object-position:bottom;width:19%;height:142px;flex-shrink:0}.family-peek img:first-child,.family-peek img:last-child{width:22%;height:163px}.portrait-elise,.portrait-bryan{transform:scaleX(-1)}.family-peek img:nth-child(2){margin-bottom:8px}.family-peek img:nth-child(3){height:132px;margin-bottom:13px}.family-peek img:nth-child(4){margin-bottom:8px}.invite-sign{position:relative;z-index:2}.form-top{height:auto;margin:0 0 18px;padding:0;display:block}.rsvp-emblem{display:block;width:260px;max-width:100%;height:auto;margin:0 auto}.rsvp-page{min-height:calc(100svh - 89px);padding-top:22px}.form-card{padding-top:7px}.back{margin-bottom:9px}.response-page{min-height:calc(100svh - 89px);background:url('art/forest-wide-fast.webp') center bottom/cover;padding:38px 18px 32px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow:hidden}.response-page h1{font:600 clamp(26px,4vw,44px)/1.2 var(--serif);margin:0;max-width:680px;color:#5a2d15;background:#fff0cc;padding:15px 35px;clip-path:polygon(0 0,100% 0,97% 50%,100% 100%,0 100%,3% 50%);outline:none}.response-page>p{background:#fff0cc;border-radius:3px;padding:8px 15px;font-size:14px;margin:13px 0 0;color:#683b21}.response-scene{width:min(100%,680px);margin:16px auto 18px;min-height:370px;display:grid;place-items:center}.response-actions{display:flex;gap:24px;align-items:center;justify-content:center}.response-actions .wood-button{font-size:18px;padding:10px 26px;letter-spacing:0}.response-actions .text-button{color:#fff5dc;background:#65351fcf;padding:13px 15px;border-radius:5px;font-size:13px}.cooked-scene{width:min(100%,430px);position:relative}.cooked-scene>img{display:block;width:100%;height:auto}.pop-thermometer{position:absolute;left:45%;top:43.8%;width:30px;height:35px;transform:translate(-50%,-50%);z-index:2}.pin-stem{position:absolute;left:12px;bottom:0;width:7px;height:25px;background:linear-gradient(90deg,#c6c6b0,#fff9dc,#bda980);border:1px solid #877658;transform-origin:bottom;animation:thermometer-stem 4s ease-out infinite}.pin-cap{position:absolute;left:3px;bottom:19px;width:25px;height:12px;border:2px solid #7d1710;border-radius:50%;background:linear-gradient(#ff7561,#e8291b);box-shadow:0 1px #8a2013;animation:thermometer-cap 4s ease-out infinite}.timer-pop-word{position:absolute;left:51%;top:33%;font:700 23px var(--sans);color:#fff4cd;text-shadow:2px 2px #863514;rotate:-12deg;animation:pop-word 4s infinite}.farewell-family{position:relative;width:100%;height:410px}.farewell-family>img{position:absolute;width:23%;height:165px;object-fit:contain;object-position:bottom}.farewell-elise{left:0;top:90px}.farewell-son{left:18%;top:0}.farewell-younger{left:40%;top:0}.farewell-older{left:60%;top:0}.farewell-bryan{right:0;top:100px}.sad-turkey{width:245px;position:absolute;bottom:0;left:50%;transform:translateX(-50%)}.sad-turkey>img{width:100%;display:block;animation:sob 2.2s ease-in-out infinite;transform-origin:bottom}.animated-tear{position:absolute;width:10px;height:17px;background:linear-gradient(120deg,#c6f3ff,#4ab8e7);border:1px solid #3184a1;border-radius:80% 20% 70% 50%;top:28%;animation:falling-tear 1.3s ease-in infinite}.tear-left{left:40%}.tear-right{left:59%;animation-delay:.6s}.nervous-scene{position:relative;width:100%;height:410px}.ready-elise{position:absolute;left:0;top:0;width:49%;height:310px;object-fit:contain}.nervous-turkey{position:absolute;right:7%;bottom:0;width:270px;animation:shiver .13s linear infinite}.nervous-turkey .turkey-flipbook{width:100%;height:auto;aspect-ratio:1;min-height:0;max-height:none}.sweat-drop{position:absolute;top:29%;right:26%;width:10px;height:18px;background:#75d6ee;border-radius:90% 10% 70% 50%;animation:falling-tear 1.5s infinite}@keyframes thermometer-stem{0%,22%,100%{transform:scaleY(.12)}30%,83%{transform:scaleY(1)}}@keyframes thermometer-cap{0%,22%,100%{translate:0 20px}29%{translate:0 -7px}35%,83%{translate:0 0}}@keyframes pop-word{0%,26%,85%,100%{opacity:0;scale:.7}32%,75%{opacity:1;scale:1}}@keyframes shiver{0%,100%{translate:-2px 0;rotate:-.6deg}50%{translate:2px 0;rotate:.6deg}}@keyframes sob{0%,100%{scale:1 1}50%{scale:1.025 .975}}@keyframes falling-tear{0%{translate:0 0;opacity:0}15%{opacity:1}100%{translate:0 85px;opacity:0}}
@media(max-width:600px){.family-peek{width:100%;height:107px;margin:9px auto -15px}.family-peek img{width:19%;height:90px}.family-peek img:first-child,.family-peek img:last-child{width:22%;height:105px}.family-peek img:nth-child(3){height:82px;margin-bottom:8px}.family-peek img:nth-child(2),.family-peek img:nth-child(4){margin-bottom:5px}.rsvp-emblem{width:240px}.form-top{height:auto;margin-bottom:16px}.rsvp-page{min-height:calc(100svh - 89px);padding-top:17px}.response-page{background-image:url('art/forest-fast.webp');padding:27px 13px;min-height:calc(100svh - 89px)}.response-page h1{font-size:28px;padding:13px 22px;max-width:100%}.response-page>p{font-size:13px;margin-top:11px}.response-scene{min-height:325px;margin:16px auto 17px}.cooked-scene{width:min(100%,350px)}.farewell-family{height:345px}.farewell-family>img{height:118px;width:24%}.farewell-elise{top:62px}.farewell-son{left:16%;top:0}.farewell-younger{left:39%;top:0}.farewell-older{left:62%;top:0}.farewell-bryan{top:75px}.sad-turkey{width:205px}.nervous-scene{height:345px}.ready-elise{width:59%;height:230px;left:-5%;top:0}.nervous-turkey{width:205px;right:0}.response-actions{gap:14px}.response-actions .wood-button{font-size:16px;padding:11px 22px}.response-actions .text-button{font-size:12px}.timer-pop-word{font-size:20px}.pop-thermometer{scale:.85}}
@media(prefers-reduced-motion:reduce){.pin-stem{transform:scaleY(1)}.pin-cap{translate:0 0}.timer-pop-word{opacity:1}}
.food-line{display:flex;align-items:center;gap:8px;margin:0 0 10px}.food-line input{min-width:0;flex:1}.food-line button{width:42px;height:44px;flex-shrink:0;border:1px solid #c9aa7b;background:#efdfbf;color:#8a3c20;border-radius:5px;font-size:23px}.add-line-button{display:block;width:100%;min-height:45px;border:1px dashed #a67040;color:#7b3c1e;background:#f7e8ca;border-radius:5px;font-size:14px;font-weight:600;margin:2px 0 22px}.add-line-button:hover{background:#eddbb5}
/* Dedicated family header: kids grip its rail; sign ropes start below it. */
.hosts-header{height:190px;background:radial-gradient(ellipse at 50% 70%,#fff2d0,#e5c185);position:relative;isolation:isolate;overflow:visible;z-index:3}.host-row{height:177px;max-width:830px;width:100%;padding:0 10px;margin:auto;display:flex;align-items:flex-end;justify-content:center;position:relative;z-index:3}.host-row>img{display:block;object-fit:contain;object-position:center bottom;min-width:0;flex-shrink:1}.host-parent{width:23%;height:173px}.host-kid{width:18%;height:147px;translate:0 9px}.header-rail{height:14px;position:absolute;bottom:0;left:0;right:0;background:repeating-linear-gradient(2deg,#995024 0,#995024 4px,#ad622f 5px,#733a1c 7px);border-top:2px solid #5c2f16;border-bottom:3px solid #442310;box-shadow:inset 0 2px #d59656;z-index:2}.portrait-bryan{transform:none}.portrait-elise{transform:scaleX(-1)}.invitation{overflow:visible}.invite-sign{margin-top:0}.rsvp-page,.response-page{min-height:calc(100svh - 279px)}.farewell-bryan{left:0;right:auto;top:90px;transform:none}.farewell-elise{right:0;left:auto;top:90px;transform:none}.nervous-scene .ready-elise{transform:scaleX(-1)}
@media(max-width:600px){.hosts-header{height:139px}.host-row{height:126px;padding:0 2px}.host-parent{height:123px;width:23%}.host-kid{height:100px;width:18%;translate:0 7px}.header-rail{height:13px}.rsvp-page,.response-page{min-height:calc(100svh - 228px)}.farewell-bryan{left:0;top:65px}.farewell-elise{right:0;left:auto;top:70px}}
.invitation{background-image:linear-gradient(#23170d55,#23170d55),url('art/forest-fast.webp')}.response-page{background-image:linear-gradient(#23170d44,#23170d44),url('art/forest-fast.webp')}@media(min-width:601px){.invitation{background-image:linear-gradient(#23170d55,#23170d55),url('art/forest-wide-fast.webp')}.response-page{background-image:linear-gradient(#23170d44,#23170d44),url('art/forest-wide-fast.webp')}}
.forest-footer{min-height:49px;padding:4px 10px;gap:0}.forest-footer nav{gap:29px}.forest-footer button,.forest-footer a{min-height:29px;padding:3px 0;font-size:13px}.forest-footer small{font-size:7px;line-height:11px}.host-parent{translate:0 8px}.host-parent.portrait-elise{height:185px;translate:0 24px}.form-card{position:relative;margin-top:35px}.back{position:absolute;top:-34px;left:16px;display:inline-flex;align-items:center;justify-content:center;min-width:91px;height:34px;padding:0 14px;margin:0;color:#fff2cc;background:repeating-linear-gradient(3deg,#9a481e 0,#9a481e 6px,#af5b26 8px);border:3px solid #744020;border-bottom:0;border-radius:9px 9px 0 0;font:600 14px var(--serif);text-shadow:0 1px #492510;box-shadow:inset 0 2px #d3914e}.back:hover{filter:brightness(1.1)}.rsvp-page{padding-top:17px}
@media(max-width:600px){.forest-footer{min-height:49px;padding:3px 9px}.forest-footer nav{gap:24px}.forest-footer button,.forest-footer a{font-size:12px;min-height:29px}.host-parent{height:123px;translate:0 5px}.host-parent.portrait-elise{height:131px;translate:0 17px}.back{top:-35px;height:35px;min-width:90px}.rsvp-page{padding-top:12px}}
.pop-thermometer{transform:translate(-50%,-100%)}
/* Header rail hides adult cutoffs; kids' gripping fingers sit in front. */
.host-row{z-index:auto}.host-row>img{position:relative}.host-parent{height:151px;width:21%;translate:0 13px;z-index:1}.host-parent.portrait-elise{height:151px;width:21%;translate:0 13px}.host-kid{height:140px;width:19.33%;z-index:4;translate:0 9px}.header-rail{z-index:3}.host-row{max-width:810px}.hosts-header{height:169px}.host-row{height:156px}.farewell-family{height:445px}.sad-turkey{width:385px;max-width:95%}.pin-stem{width:5px;left:12px;background:#e12b1c;border:1px solid #95190d}.pin-cap{width:16px;height:9px;left:7px;bottom:21px;border:1px solid #991b10;background:linear-gradient(#ff6556,#df2114)}.pop-thermometer:before{content:'';position:absolute;bottom:-5px;left:2px;width:26px;height:13px;border-radius:50%;background:#fff2d0;border:1px solid #897759;z-index:-1}.nervous-scene{height:435px}.ready-elise{height:360px;width:48%;top:auto;bottom:2px}.nervous-turkey{width:255px;bottom:0}
@media(max-width:600px){.hosts-header{height:125px}.host-row{height:112px}.host-parent{height:111px;width:21%;translate:0 8px}.host-parent.portrait-elise{height:111px;width:21%;translate:0 8px}.host-kid{height:101px;width:19.33%;translate:0 7px}.farewell-family{height:355px}.sad-turkey{width:300px;max-width:95%}.ready-elise{height:280px;width:55%;left:-3%;top:auto;bottom:0}.nervous-scene{height:330px}.nervous-turkey{width:190px;right:-1%}}
/* Align the torso, not the bow's bottom, behind the header rail. */
.hosts-header{overflow:hidden}.host-parent.portrait-elise{translate:0 38px}.host-parent.portrait-bryan{translate:0 13px}@media(max-width:600px){.host-parent.portrait-elise{translate:0 28px}.host-parent.portrait-bryan{translate:0 8px}}
/* Scale Elise's visible head/torso to Bryan, independently of the bow bounds. */
.host-parent.portrait-elise{height:190px;width:25%;margin-left:-2%;margin-right:-2%;translate:0 41px}@media(max-width:600px){.host-parent.portrait-elise{height:140px;width:25%;margin-left:-2%;margin-right:-2%;translate:0 31px}}
.rsvp-page,.response-page{min-height:calc(100svh - 218px)}@media(max-width:600px){.rsvp-page,.response-page{min-height:calc(100svh - 174px)}}
.nervous-scene{display:flex;align-items:flex-end;justify-content:center;height:415px}.nervous-turkey{position:relative;right:auto;bottom:auto;width:365px;max-width:95%}@media(max-width:600px){.nervous-scene{height:340px}.nervous-turkey{width:300px}}
.host-parent.portrait-elise{transform:none;height:184px;width:23%;margin-left:-1%;margin-right:-1%;translate:0 29px}@media(max-width:600px){.host-parent.portrait-elise{height:133px;width:23%;margin-left:-1%;margin-right:-1%;translate:0 23px}}
.host-row{max-width:770px}.host-parent.portrait-bryan{margin-right:-18px}.host-parent.portrait-elise{margin-left:-10px;margin-right:0}
body{min-height:100svh;display:flex;flex-direction:column;background:#433321 url('art/forest-fast.webp') center bottom/cover fixed}.hosts-header,main,.forest-footer{flex-shrink:0}body:after{content:'';display:block;flex:1 0 0;min-height:0;background-image:none,url('art/forest-fast.webp');background-repeat:no-repeat;background-size:100% auto,cover;background-position:center bottom,center bottom}
@media(max-width:600px){.host-parent.portrait-bryan{margin-right:-8px}.host-parent.portrait-elise{margin-left:-6px;margin-right:0}}
/* Foreground rock fills leftover viewport height without repeating scenery. */
body{background:#76644b url('art/boulder-fast.webp') center bottom/cover fixed}body:after{background-image:url('art/boulder-fast.webp');background-size:cover;background-position:center center;background-repeat:no-repeat}
/* Use the low-horizon clearing on every response page, including phones. */
.response-page{background-image:linear-gradient(#23170d44,#23170d44),url('art/forest-wide-fast.webp');background-position:center bottom;background-size:cover}.sad-turkey{isolation:isolate}.sad-turkey:after{content:'';position:absolute;bottom:2%;left:27%;width:46%;height:4%;border-radius:50%;background:#49251245;filter:blur(3px);z-index:-1}
/* Only vetted poses: omit extra-pupil frames from the original sprite sheet. */
.turkey-flipbook{animation-duration:1.8s}@keyframes gobble{0%,100%{background-position:0 0}16.6667%{background-position:66.6667% 0}33.3333%{background-position:100% 0}50%{background-position:33.3333% 100%}66.6667%{background-position:66.6667% 100%}83.3333%{background-position:100% 100%}}

#notice{position:fixed;z-index:100;bottom:12px;left:5%;width:90%;background:#fff3d9;border:2px solid #a8491f;border-radius:8px;padding:14px;box-shadow:0 3px 20px #23170966}button:disabled{opacity:.6;cursor:wait}input,select{font-size:16px!important}#admin{overscroll-behavior:contain}#admin .close{position:sticky;float:right;top:0;background:var(--cream);border-radius:50%;z-index:2}
/* Keep the complete sky/treeline/clearing composition on wide displays. */
@media(min-width:601px){.invitation{background-size:100% 100%;background-position:center center;background-repeat:no-repeat}}
/* JS measures the turkey's feet; the forest clearing shares that anchor. */
@media(min-width:601px){.invitation{background-size:100% var(--forest-height,100%);background-position:center var(--forest-top,0px)}}

#edit-gate h2{font-size:26px;margin:4px 0 18px;text-align:center}.edit-choice{display:grid;gap:12px;margin-bottom:20px}.edit-choice button{min-height:50px;font-size:15px}.household-list{display:grid;gap:9px;max-height:320px;overflow-y:auto;overscroll-behavior:contain;margin:14px 0 8px}.household-list button{width:100%;min-height:49px;padding:13px 15px;text-align:left;overflow-wrap:anywhere;border:1px solid #c9aa7b;border-radius:6px;background:#fffaf0;color:var(--ink);font-size:16px}.household-list button:hover{background:#efdfbf}.selected-household{text-align:center;font:600 26px/1.35 var(--serif);overflow-wrap:anywhere;margin:24px 0 18px}.edit-own-note{text-align:center;font-size:14px;line-height:1.5;color:#805936}.edit-confirm-button{width:100%;font-size:19px;letter-spacing:0;padding:14px 22px;min-height:52px}#choose-household{display:block;margin:12px auto;font-size:14px}#edit-error{color:#a23118;font-size:14px;line-height:1.5}#edit-status{text-align:center;margin:20px 0}#edit-question,#edit-picker,#edit-confirm{padding-bottom:12px}
