:root{color-scheme:light;font-family:Georgia,'Times New Roman',serif;color:#fff5e9;background:#283044}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{height:100dvh;isolation:isolate}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ac7d8c;outline-offset:4px}[hidden]{display:none!important}.ambient{display:none}#world{position:absolute;inset:0;touch-action:none;user-select:none;cursor:crosshair;outline:none}.artboard,.landscape-picture,.landscape,#scene{position:absolute;inset:0;width:100%;height:100%}.artboard{overflow:hidden}.landscape{object-fit:cover;object-position:center}#scene{overflow:visible}#weather-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:20;pointer-events:none}header{position:fixed;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:max(22px,env(safe-area-inset-top)) 24px 16px;pointer-events:none;background:linear-gradient(#25233366,transparent);z-index:22}.brand{font-size:25px;text-shadow:0 2px 12px #322333}.brand span{display:block;font:7px Arial,sans-serif;letter-spacing:2.5px;margin-top:6px;color:#f4dfe0}#restart{pointer-events:auto;background:#fff6ed15;color:#fff5e9;border:1px solid #fff1d54d;border-radius:50%;width:43px;height:43px;font:25px Arial;backdrop-filter:blur(10px)}.welcome{position:absolute;top:max(108px,14vh);left:20px;right:20px;text-align:center;pointer-events:none;text-shadow:0 2px 14px #302540,0 1px 6px #302540;transition:opacity .8s,transform .8s;z-index:3}.welcome p{font:8px Arial;letter-spacing:1.7px}.welcome h1{font-size:clamp(32px,5.2vh,50px);font-weight:400;line-height:1.15;margin:20px 0}.welcome em{font-size:.72em;font-weight:400}.welcome>span{font-size:12px}.has-started>.welcome{opacity:0;transform:translateY(-15px)}.guide{position:absolute;left:16px;right:16px;bottom:max(22px,env(safe-area-inset-bottom));text-align:center;pointer-events:none;z-index:5}.guide p{display:table;margin:0 auto 10px;max-width:390px;font-size:12px;line-height:1.65;padding:11px 18px;color:#fff8ed;border:1px solid #ffefd24d;border-radius:30px;background:#493b4d99;backdrop-filter:blur(12px)}.guide>span{font:7px Arial;letter-spacing:2px;text-shadow:0 1px 6px #372a39}.guide button{pointer-events:auto;border:1px solid #f8e5cf;background:#fff0e8e8;border-radius:30px;padding:14px 25px;color:#844d5a}.gift-halo{animation:glow 2.6s ease-in-out infinite}#sparkles{opacity:0}.opening #lid{animation:unwrap 1.35s cubic-bezier(.22,.7,.3,1) forwards;transform-box:fill-box;transform-origin:center}.opening #sparkles{animation:sparkle 1.6s ease-out forwards}.opening .gift-halo{animation:reveal-light 1.7s ease-out forwards}#emerging-card{opacity:0;transform:translateY(42px) scale(.7);transform-origin:0 0}.opening #emerging-card{animation:invite-emerge 2.4s .45s cubic-bezier(.16,.7,.3,1) forwards}@keyframes invite-emerge{0%{opacity:0;transform:translateY(42px) scale(.7)}18%{opacity:1}70%,100%{opacity:1;transform:translateY(-185px) rotate(-5deg) scale(1.4)}}@keyframes glow{50%{opacity:.5;transform:scale(1.12)}}@keyframes unwrap{40%{transform:translate(0,-30px) rotate(-6deg)}100%{transform:translate(-30px,-160px) rotate(-22deg);opacity:0}}@keyframes sparkle{20%{opacity:0;transform:translateY(25px) scale(.7)}50%,75%{opacity:1}100%{opacity:0;transform:translateY(-100px) scale(1.3)}}@keyframes reveal-light{50%{opacity:1;transform:scale(2)}100%{opacity:.4;transform:scale(1.5)}}
body.invitation-mode{height:auto;min-height:100%;overflow:visible;background:#fcf2e9;color:#7b5663}html:has(body.invitation-mode){height:auto;overflow:auto;scroll-behavior:smooth;scroll-padding-top:0}.invitation-mode #world,.invitation-mode>.welcome,.invitation-mode>.guide{display:none}.invitation-mode>header{position:absolute}#invitation-site{animation:page-arrive .8s ease both}@keyframes page-arrive{from{opacity:0}to{opacity:1}}.invitation-hero{min-height:100svh;position:relative;display:grid;place-items:center;background:url(assets/winter-world.webp) center/cover;text-align:center;color:#fff3df}.hero-shade{position:absolute;inset:0;background:linear-gradient(#29263833,#38263b66 45%,#38263b88)}.hero-content{position:relative;z-index:1;padding:115px 24px 95px;text-shadow:0 2px 18px #2a1e35}.eyebrow{font:8px/1.8 Arial,sans-serif;letter-spacing:1.8px}.hero-content h1{font-weight:400;font-size:clamp(55px,10vw,95px);line-height:.95;margin:35px 0 30px;letter-spacing:-1.8px}.hero-content h1:focus{outline:none}.hero-content h1 em{font-size:.81em;font-weight:400}.hero-content h1>span{display:block;font:14px Arial;letter-spacing:5px;margin-top:27px}.hosts{font-size:20px;font-style:italic;margin:30px 0 20px}.hero-copy{font-size:13px;line-height:1.9;color:#f6e1d7}.scroll-cue{display:inline-flex;align-items:center;gap:20px;margin-top:30px;color:inherit;text-decoration:none;border:1px solid #f2ddbd77;padding:15px 20px;border-radius:40px;backdrop-filter:blur(8px);font-size:12px}.demo-label{position:absolute;bottom:20px;font:6px/1.8 Arial;letter-spacing:.6px;left:18px;right:18px;opacity:.8}.journey-chapter{position:relative;isolation:isolate;min-height:100svh;overflow:hidden}.chapter-image{position:relative;height:58svh;background-size:cover;background-position:center 34%}.date-chapter .chapter-image{background-image:url(assets/frozen-pond.webp)}.location-chapter .chapter-image{background-image:url(assets/cottage-door.webp);background-position:center 43%}.chapter-image:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 70%,#fcf3e9)}.chapter-copy{position:relative;text-align:center;padding:16px 24px 50px;background:radial-gradient(ellipse at top,#fffaf2,#fcf3e9)}.chapter-copy>.eyebrow{color:#b09281;margin-top:0}.chapter-copy h2,.rsvp-section h2{font-size:33px;line-height:1.2;font-weight:400;margin:20px 0;color:#855a69}.chapter-copy h2 em,.rsvp-section h2 em{font-weight:400}.chapter-copy>p:not(.eyebrow):not(.interaction-status){font-size:13px;line-height:1.95;color:#a18480;max-width:380px;margin:22px auto 30px}.scratch-wrap{width:min(100%,350px);height:220px;margin:30px auto 16px;position:relative;border-radius:100px 100px 16px 16px;overflow:hidden;border:1px solid #d5b695;box-shadow:0 14px 40px #93707412;background:linear-gradient(#fff7eb,#f3e0d8)}.scratch-prize{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:24px 15px;color:#8b5c6b}.small-heart{font-size:25px;color:#bd8b9e;display:block;margin:6px 0 16px}.scratch-prize small{font:7px Arial;letter-spacing:1.3px;color:#ae8c81}.scratch-prize p{font-size:25px;line-height:1.3;margin:14px 0}.scratch-prize strong{font:12px Arial;font-weight:400;letter-spacing:1px}#scratch{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .8s}.scratch-wrap.revealed #scratch{opacity:0;pointer-events:none}.interaction-status{font:10px/1.8 Arial;color:#ad8e82;min-height:20px;margin:15px auto;max-width:350px}.text-button{border:0;background:none;color:#aa7d8d;font:10px Arial;text-decoration:underline;text-underline-offset:4px;padding:12px}.soft-button{display:table;text-decoration:none;border:1px solid #cbb09d;border-radius:30px;background:#fff9ef99;color:#936978;font:11px Arial;padding:14px 20px;margin:20px auto}.soft-button span{margin-left:20px}.next-station{display:flex;justify-content:center;align-items:center;gap:17px;text-decoration:none;color:#a08279;font-size:11px;margin-top:35px}.next-station span{font:19px Arial}.address-interaction{min-height:270px;display:grid;place-items:center;margin:0 auto;max-width:370px}.present-button{width:230px;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;border:0;background:none;padding:10px 20px;color:#b28e80}.present-button>img{position:relative;width:100%;height:auto;z-index:1;filter:drop-shadow(0 15px 15px #94738222);transition:transform .4s;animation:present-wiggle 4.5s ease-in-out infinite}.present-button:hover>img{transform:rotate(-5deg) scale(1.05)}.present-glow{position:absolute;inset:10px -10px;background:radial-gradient(ellipse,#ffe2a88c,transparent 66%);animation:glow 3s infinite}.tap-label{font:10px Arial;letter-spacing:.5px;margin-top:12px}.address-card{width:100%;padding:25px 20px;background:#fff9ef;border:1px solid #dfc4b0;border-radius:80px 80px 12px 12px;animation:card-unfold .7s ease both;box-shadow:0 12px 40px #94738212}.address-card p{font-size:13px;line-height:1.7}.address-card h3{font-size:26px;font-weight:400;margin:15px 0}.address-card small{font:8px Arial;color:#b99c8e}.address-card>.small-heart{margin-top:14px}@keyframes card-unfold{from{opacity:0;transform:translateY(35px) rotate(-4deg) scale(.8)}to{opacity:1;transform:none}}@keyframes present-wiggle{0%,80%,100%{rotate:0deg}85%{rotate:-4deg}90%{rotate:4deg}95%{rotate:-2deg}}.treat-chapter{background:#eadddf}.treat-chapter .chapter-copy{padding:65px 24px;background:radial-gradient(ellipse at top,#faf0eb,#ecdcdf)}.feeding-scene{position:relative;max-width:380px;height:320px;margin:20px auto 0;isolation:isolate}.feeding-snow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 85%,#fdf9f1 0%,#f4efec 45%,transparent 69%)}.feeding-fawn{position:absolute;width:240px;height:240px;left:50%;top:0;transform:translateX(-50%);filter:drop-shadow(0 13px 10px #856c7c18)}.treat-button{position:absolute;bottom:0;left:50%;translate:-50% 0;background:#fff9edb8;border:1px solid #d5b6a5;border-radius:40px;display:flex;align-items:center;justify-content:center;gap:12px;padding:8px 18px;color:#9b7480;font-size:11px;touch-action:none;white-space:nowrap;transition:opacity .5s}.treat-button svg{width:46px;height:46px;pointer-events:none}.treat-button span{pointer-events:none}.feeding-hearts{position:absolute;top:70px;left:50%;translate:-50% 0;color:#bf8c9b;font-size:26px;opacity:0;pointer-events:none}.feeding-scene.fed .feeding-hearts{animation:hearts 2.4s ease forwards}.feeding-scene.fed .treat-button{opacity:0;pointer-events:none}.feeding-scene.dragging .treat-button{box-shadow:0 8px 20px #a4818f22}@keyframes hearts{20%,65%{opacity:1}100%{opacity:0;transform:translateY(-85px)}}.program-card{border-top:1px solid #d8bdb8;border-bottom:1px solid #d8bdb8;padding:22px 4px;margin:20px auto;max-width:400px;animation:card-unfold .7s ease}.program-card>p{font-size:22px;font-style:italic;color:#926c78}.program-card ul{list-style:none;padding:0;text-align:left}.program-card li{display:flex;gap:16px;padding:10px 0;font-size:12px;line-height:1.6;color:#a18285}.program-card li span{font:10px Arial;color:#b18a87;padding-top:3px}.rsvp-section{padding:70px 24px;background:radial-gradient(ellipse at top,#fff5ec,#f2e1dc);text-align:center}.rsvp-intro>.eyebrow{color:#af9181}.rsvp-intro>p:last-child{font-size:13px;line-height:1.9;color:#a28580}.rsvp-section form{max-width:430px;margin:35px auto 0;text-align:left}.answer-choice{border:0;margin:0 0 25px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:9px}.answer-choice legend{font:11px Arial;color:#896b6c;margin-bottom:12px}.answer-choice label{position:relative;display:block}.answer-choice input{position:absolute;left:12px;top:14px;opacity:0}.answer-choice span{display:flex;align-items:center;justify-content:center;min-height:49px;border:1px solid #d4b7b6;border-radius:10px;color:#9f7880;font-size:12px;text-align:center;padding:10px;background:#fff8ee44;cursor:pointer}.answer-choice input:checked+span{background:#ad7d8e;border-color:#ad7d8e;color:#fff4ea}.answer-choice input:focus-visible+span{outline:3px solid #a07556;outline-offset:3px}.field{display:block;margin:19px 0;font:11px Arial;color:#896b6c}.field>span{font-size:10px;opacity:.7}.field input,.field select,.field textarea{display:block;width:100%;margin-top:9px;padding:15px 13px;font:16px Arial;line-height:1.5;color:#775963;background:#fff8f0bd;border:1px solid #d9bfba;border-radius:9px;outline-color:#aa7c8d}.field textarea{resize:vertical;min-height:100px}.field input::placeholder,.field textarea::placeholder{color:#b49a97}.reply-info{font:10px/1.8 Arial;color:#aa8b88;margin:24px 0}.reply-submit{width:100%;display:flex;justify-content:space-between;padding:17px 20px;border:0;border-radius:9px;background:#a67486;color:#fff5ec;font:12px Arial}.reply-submit:disabled{opacity:.55;cursor:wait}#rsvp-status{font:12px/1.7 Arial;color:#805f6a;min-height:30px;padding:8px 0}.invite-footer{padding:65px 24px 35px;background:#fcf4ea;text-align:center;color:#a17c7e}.invite-footer>div{font-size:25px;font-style:italic;line-height:1.4}.invite-footer>div span{display:block;font:10px Arial;letter-spacing:1px;margin-top:22px}.invite-footer button{display:block;margin:30px auto;border:0;border-bottom:1px solid #cbb09a;padding:12px 0;font-size:11px;color:#a7837d;background:none}.invite-footer small{font:8px Arial;letter-spacing:1px;color:#b39b8c}@media(min-width:800px){header{padding:25px 40px}.welcome h1{font-size:56px}.welcome p{font-size:10px;letter-spacing:2px}.welcome>span{font-size:14px}.guide{bottom:28px}.invitation-hero{background-position:center 35%}.hero-content{padding:120px 24px}.hero-content h1{font-size:100px}.journey-chapter:not(.treat-chapter){display:grid;grid-template-columns:1fr 1fr;min-height:100svh}.chapter-image{height:auto;min-height:100svh;background-position:center}.chapter-image:after{background:linear-gradient(90deg,transparent 80%,#fcf3e9)}.chapter-copy{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 45px}.chapter-copy h2,.rsvp-section h2{font-size:45px}.chapter-copy>.eyebrow{font-size:9px}.chapter-copy>p:not(.eyebrow):not(.interaction-status){font-size:14px}.location-chapter .chapter-image{grid-column:2;grid-row:1}.location-chapter .chapter-copy{grid-column:1;grid-row:1}.location-chapter .chapter-image:after{background:linear-gradient(270deg,transparent 80%,#fcf3e9)}.scratch-wrap{width:350px}.address-interaction{width:350px}.treat-chapter .chapter-copy{padding:85px 40px}.feeding-scene{width:380px}.rsvp-section{padding:95px 30px}.invite-footer{padding:75px 24px 40px}}@media(max-height:600px) and (min-width:800px){.welcome{top:85px}.welcome h1{font-size:38px;margin:14px}.welcome p,.welcome>span{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html:has(body.invitation-mode){scroll-behavior:auto}.opening #lid{opacity:0}.opening #emerging-card{opacity:1;transform:translateY(-180px)}.feeding-scene.fed .feeding-hearts{opacity:1}}
.location-image .present-button{position:absolute;bottom:4px;left:50%;translate:-50% 0;width:160px;z-index:2;padding-bottom:12px}.location-image .tap-label{background:#7b566799;color:#fff1dc;border:1px solid #ffe7c36b;border-radius:30px;padding:8px 13px;font-size:9px;backdrop-filter:blur(8px)}.location-image:after{pointer-events:none}.address-interaction{min-height:0}.address-interaction:has(.address-card[hidden]){display:none}@media(min-width:800px){.location-image .present-button{width:240px;bottom:55px}}
.brand{color:#fff5e9}.address-card:focus{outline:none}
/* Rewards stay in the scene, at their trigger. No opposing text columns. */
.journey-chapter:not(.treat-chapter){display:block;position:relative;min-height:100svh;grid-template-columns:none}.journey-chapter:not(.treat-chapter)>.chapter-image{position:absolute;inset:0;height:100%;min-height:100%;background-position:center 40%}.journey-chapter:not(.treat-chapter)>.chapter-image:after{background:linear-gradient(#29243455,transparent 45%,#41303c55);pointer-events:none}.journey-chapter:not(.treat-chapter)>.chapter-copy{position:relative;min-height:100svh;padding:75px 24px 35px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:none;color:#fff3e5;pointer-events:none;text-shadow:0 2px 14px #3b293b}.chapter-copy button,.chapter-copy a,.chapter-copy canvas{pointer-events:auto}.journey-chapter:not(.treat-chapter) .chapter-copy>.eyebrow{color:#ffe9d4}.journey-chapter:not(.treat-chapter) .chapter-copy h2{color:#fff7e9;font-size:31px;margin:16px 0}.journey-chapter:not(.treat-chapter) .chapter-copy>p:not(.eyebrow):not(.interaction-status){color:#fff0e3;font-size:12px;line-height:1.85;max-width:330px;margin:14px auto 24px}.date-chapter .scratch-wrap{flex-shrink:0;margin:auto auto 12px;text-shadow:none}.date-chapter .interaction-status{color:#fff0df;text-shadow:0 1px 10px #35243a;max-width:300px;margin:8px auto}.date-chapter .text-button,.date-chapter .next-station{color:#fff0df}.date-chapter .soft-button{background:#fff6e8ed;text-shadow:none;margin:10px auto}.date-chapter .next-station{margin-top:16px}.location-chapter{min-height:100svh}.location-chapter .chapter-copy{z-index:1}.location-chapter .chapter-copy>.next-station{position:absolute;bottom:22px;left:20px;right:20px;color:#fff0dd}.location-chapter .interaction-status{display:none}.location-image .present-button{bottom:55px;width:170px;z-index:3;pointer-events:auto}.location-image .address-card{position:absolute;z-index:5;left:50%;translate:-50% 0;bottom:165px;width:min(330px,calc(100% - 40px));padding:22px 20px;border-radius:60px 60px 12px 12px;text-align:center;color:#825b69;box-shadow:0 18px 70px #30223555;pointer-events:auto;transform-origin:50% 100%;animation:address-emerge .65s cubic-bezier(.2,.8,.2,1)}.address-card p{margin:10px 0}.address-card .soft-button{margin:17px auto 0}.present-button.is-open img{animation:none;opacity:.55;transform:scale(.85)}.present-button.is-open .tap-label{opacity:0}.present-button.is-open{pointer-events:none}.address-interaction{display:none!important}@keyframes address-emerge{from{opacity:0;transform:translateY(70px) scale(.6)}to{opacity:1;transform:none}}.treat-chapter .chapter-copy{min-height:100svh;justify-content:flex-start;padding:75px 24px 40px;background:linear-gradient(#29243466,#43304322 50%,#32293d55),url(assets/entry-portrait.webp) center/cover;color:#fff3e4;text-shadow:0 2px 12px #38283b}.treat-chapter .chapter-copy>.eyebrow,.treat-chapter .chapter-copy h2,.treat-chapter .chapter-copy>p:not(.eyebrow):not(.interaction-status){color:#fff2df}.treat-chapter .feeding-scene{margin:35px auto 0;min-height:320px;flex-shrink:0}.feeding-snow{background:radial-gradient(ellipse at 50% 85%,#fbf6ef99,transparent 68%)}.treat-button{text-shadow:none}.treat-chapter .interaction-status,.treat-chapter .next-station{color:#fff0dd}.program-card{position:relative;z-index:3;background:#fff5e9f2;border:1px solid #dfc1b0;border-radius:30px 30px 12px 12px;padding:20px;box-shadow:0 15px 50px #30263833;text-shadow:none;margin:5px auto 15px}.program-card>p{font-size:20px}.program-card li{font-size:12px}.actor-motion{animation:animal-breath 4.4s ease-in-out infinite;transform-origin:0 0}.forest-actor:nth-child(2) .actor-motion{animation-delay:-1.6s}.forest-actor:nth-child(3) .actor-motion{animation-delay:-2.5s}@keyframes animal-breath{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}.feeding-fawn{animation:feeding-breath 4.2s ease-in-out infinite}@keyframes feeding-breath{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-2px)}}.opening #emerging-card{animation:invite-local 1.6s .35s cubic-bezier(.2,.8,.3,1) forwards}@keyframes invite-local{0%{opacity:0;transform:translateY(25px) scale(.7)}25%{opacity:1}100%{opacity:1;transform:translateY(-65px) rotate(-3deg) scale(1)}}#page-portal{position:fixed;z-index:50;overflow:hidden;pointer-events:none;box-shadow:0 10px 50px #30263866;background:url(assets/winter-world.webp) center/cover;border:1px solid #e6c7ae;will-change:left,top,width,height,opacity}.portal-shade{position:absolute;inset:0;background:linear-gradient(#29263855,#38263b77)}.portal-title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:#fff5e5;font:normal clamp(35px,8vw,88px)/1 Georgia;white-space:nowrap;opacity:0;text-shadow:0 3px 15px #2a2033}.portal-title em{font-size:.8em;font-weight:400}.portal-title span{font:12px Arial;letter-spacing:4px;margin-top:22px}@media(min-width:800px){.journey-chapter:not(.treat-chapter)>.chapter-copy{padding:90px 30px 40px}.journey-chapter:not(.treat-chapter) .chapter-copy h2{font-size:42px}.journey-chapter:not(.treat-chapter) .chapter-copy>p:not(.eyebrow):not(.interaction-status){font-size:14px;max-width:400px}.location-image .present-button{width:220px;bottom:40px}.location-image .address-card{bottom:185px;width:350px}.location-chapter .chapter-copy>.next-station{bottom:18px}.treat-chapter .chapter-copy{background-image:linear-gradient(#29243466,#43304322 50%,#32293d55),url(assets/entry-wide.webp);padding:80px 30px 40px}}@media(max-height:700px){.journey-chapter:not(.treat-chapter)>.chapter-copy{padding-top:70px;min-height:800px}.location-chapter,.location-chapter .chapter-image{min-height:800px!important}}@media(prefers-reduced-motion:reduce){.actor-motion,.feeding-fawn{animation:none}.opening #emerging-card{opacity:1;transform:translateY(-65px)}}
#rabbit-rig{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
copy-text{white-space:pre-line}
/* The apple rests on the snow; the whole clear hit area remains tappable. */
.treat-button{left:24%;bottom:42px;width:82px;height:76px;padding:8px;border:0;border-radius:50%;background:none;box-shadow:none;touch-action:manipulation;isolation:isolate;transition:opacity .4s,scale .25s}
.treat-button:before{content:'';position:absolute;z-index:-1;left:5px;right:0;bottom:5px;height:17px;border-radius:50%;background:radial-gradient(ellipse,#756b8155,#fff8ef88 55%,transparent 75%);filter:blur(3px)}
.treat-button svg{width:64px;height:64px;rotate:-17deg;filter:drop-shadow(1px 5px 3px #5b455e44)}
.treat-button span{position:absolute;top:78px;left:50%;translate:-50% 0;width:150px;color:#fff4df;font-size:10px;text-shadow:0 1px 8px #372d3d;white-space:normal}
.treat-button:hover{scale:1.07}.treat-button:active{scale:.95}.feeding-scene.fed .treat-button{animation:apple-to-fawn .8s cubic-bezier(.3,.6,.3,1) both;opacity:0}.feeding-scene.fed .treat-button span{visibility:hidden}
@keyframes apple-to-fawn{0%{opacity:1;transform:translate(0,0) rotate(0);scale:1}70%{opacity:1;transform:translate(80px,-140px) rotate(20deg);scale:.65}100%{opacity:0;transform:translate(90px,-145px);scale:.2}}
@media(prefers-reduced-motion:reduce){.feeding-scene.fed .treat-button{animation:none;opacity:0}}

/* Each incoming photograph fades directly over the preceding photograph.
   Text sits above this shared image stack; there is no solid joining strip. */
#invitation-site{--scene-overlap:150px;isolation:isolate;background:#2e2a3c url(assets/winter-world.webp) center bottom/cover no-repeat}
.invitation-hero,.journey-chapter,.rsvp-section{position:relative;isolation:auto;background:none;overflow:visible}
.invitation-hero:before{content:'';position:absolute;inset:0;z-index:0;background:url(assets/winter-world.webp) center/cover;mask-image:none;-webkit-mask-image:none}
.hero-shade{z-index:1;mask-image:none;-webkit-mask-image:none}.hero-content,.demo-label{z-index:3}
.journey-chapter,.rsvp-section{margin-top:calc(-1 * var(--scene-overlap));padding-top:var(--scene-overlap)}
.journey-chapter:not(.treat-chapter)>.chapter-image,.treat-chapter:before,.rsvp-section:before{position:absolute;inset:0;z-index:1;height:100%;min-height:100%;mask-image:linear-gradient(transparent,#000 var(--scene-overlap));-webkit-mask-image:linear-gradient(transparent,#000 var(--scene-overlap));pointer-events:none}
.journey-chapter .chapter-copy,.journey-chapter:not(.treat-chapter)>.chapter-copy{position:relative;z-index:3;background:none}
.treat-chapter:before{content:'';background:linear-gradient(#29243466,#43304322 50%,#32293d55),url(assets/entry-portrait.webp) center/cover}
.rsvp-section:before{content:'';background:linear-gradient(#29243488,#43304377),url(assets/winter-world.webp) center/cover}
.rsvp-section>*{position:relative;z-index:3}.rsvp-section{padding-bottom:80px}.rsvp-section h2,.rsvp-intro>.eyebrow,.rsvp-intro>p:last-child,.rsvp-section .field,.answer-choice legend,.reply-info,#rsvp-status{color:#fff2df;text-shadow:0 2px 12px #292337}
.answer-choice span{background:#fff8eecc;color:#775366;text-shadow:none}
.invite-footer{position:relative;z-index:3;background:linear-gradient(#332b3d99,#332b3dcc);color:#fff1df}.invite-footer small,.invite-footer button{color:#f4ded1}
.feeding-snow{display:none}.treat-button,.treat-button:hover,.treat-button:active{background:none;border:0;box-shadow:none}.treat-button:before{content:none}.treat-button svg{width:76px;height:84px;rotate:-12deg;filter:drop-shadow(1px 3px 2px #31203466)}.treat-button{width:94px;height:94px;bottom:32px}.treat-button span{top:97px}
.journey-chapter .next-station{background:none;border:0;border-radius:0;color:#fff0dd;text-shadow:0 2px 10px #33233d;padding:9px 0;width:fit-content;max-width:calc(100% - 40px);margin-left:auto;margin-right:auto;align-self:center}
.program-card{background:#fff9ef;border:1px solid #dfc4b0;box-shadow:0 18px 60px #30223544;border-radius:60px 60px 12px 12px;text-shadow:none;padding:30px 24px 22px;width:min(100%,400px);margin:14px auto 20px;color:#825b69}.program-card>p{color:#825b69;font-size:22px;margin:8px 0 20px}.program-card li{color:#896773;line-height:1.7}.program-card li span{color:#a07870;flex-shrink:0}.program-card ul{margin-bottom:0}
@media(min-width:800px){#invitation-site{--scene-overlap:220px}.treat-chapter:before{background-image:linear-gradient(#29243466,#43304322 50%,#32293d55),url(assets/entry-wide.webp)}}
/* Clip the shared winter background without creating an inner scroll container. */
#invitation-site{display:flow-root;overflow:clip}.rsvp-section:before{bottom:-650px;height:calc(100% + 650px)}.invite-footer{background:linear-gradient(transparent,#332b3d88)}
.scroll-cue,.location-image .tap-label{background:none;border:0;border-radius:0;backdrop-filter:none;box-shadow:none;color:#fff0dd;text-shadow:0 2px 10px #33233d}
#reveal-surprise:has(copy-text:empty){position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}#reveal-surprise:has(copy-text:empty):focus{position:relative;width:auto;height:auto;padding:12px;clip-path:none}.field>span{margin-left:.35em}

.location-image .address-card .interaction-status{display:block;color:#825b69;text-shadow:none;min-height:0;margin:12px auto 0;font:12px/1.6 Arial,sans-serif}.address-card .interaction-status:empty{display:none}.manual-address{display:block;width:100%;margin-top:12px;padding:10px;border:1px solid #dfc4b0;border-radius:8px;background:#fffdf7;color:#825b69;font:16px/1.5 Arial,sans-serif;resize:none}
