:root{--ink:#31596e;--blue:#84abc1;--paper:#fcfaf3;--hand:'Caveat',cursive;--serif:'Cormorant Garamond',serif}
*{box-sizing:border-box}
html{scrollbar-gutter:stable}

body{margin:0;color:var(--ink);background:#82b5d1;font-family:Manrope,sans-serif;font-size:13px;overflow-x:hidden}
button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
button:focus-visible{outline:2px solid #31596e;outline-offset:8px}
button:disabled{cursor:wait}
button,a{-webkit-user-select:none;user-select:none}
[hidden]{display:none!important}
.sky{position:fixed;inset:0;overflow:hidden;z-index:0;pointer-events:none;background:radial-gradient(ellipse at 50% 35%,#a9ccdf 0,#8cbad4 48%,#6c9fbe 100%)}
main{position:relative;z-index:1}
.halo{position:absolute;inset:10%;background:#e7f3fb0d;filter:blur(80px);border-radius:100%}
.grain{position:absolute;inset:0;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.3' filter='url(%23n)'/%3E%3C/svg%3E");pointer-events:none}
#flowers>.flower{position:absolute;top:var(--top);opacity:.65;transform:translate3d(var(--hover-x,0px),var(--hover-y,0px),0) rotate(var(--hover-angle,0deg));transition:transform .8s ease-out;width:var(--size);height:var(--size)}
#flowers>.flower svg{display:block;width:100%;height:100%}
.intro{position:relative;min-height:max(450px,100svh);display:grid;place-items:center}
#enter:disabled{cursor:default}
#introTitle{display:inline-block;transform-origin:center}


.dedication{position:relative;border:0;background:none;font-family:var(--hand);font-size:clamp(76px,13vw,146px);font-weight:400;color:#fffef3;text-shadow:0 2px 5px #31596e30,0 0 20px #ffffff35;animation:arrive 2.3s both;transition:text-shadow .55s ease,color .55s ease;padding:30px;line-height:1.2}
.dedication:hover,.dedication:focus-visible{color:#fffef9;text-shadow:0 0 12px #ffffffa6,0 0 30px #ffffff80,0 0 60px #ffffff40}
.intro-line{position:absolute;bottom:22px;left:30%;width:42%;height:1px;background:#fff9;transform:rotate(-5deg);animation:line 2s 1s both}
@keyframes line{from{width:0}
}
@keyframes arrive{from{opacity:0;transform:translateY(15px)}
to{opacity:1;transform:translateY(0)}
}

.experience{max-width:1320px;margin:auto;padding:30px 60px 22px}
.text-button{border:0;background:none;padding:8px;font-size:10px;letter-spacing:.6px}
.eyebrow{font-size:9px;letter-spacing:2.8px;font-weight:500}
.time-wrap{position:relative;isolation:isolate;display:grid;place-items:center;max-width:1000px;min-height:460px;margin:95px auto 0;padding:40px 45px;text-align:center;background:radial-gradient(ellipse at center,#eef7fb33,transparent 70%);scroll-margin-top:25px}
.time-wrap:before{content:'';position:absolute;inset:4.347826% 2%;z-index:-1;border-radius:50%;background:radial-gradient(ellipse,#e7f5fc18,transparent 70%);box-shadow:0 12px 0 -2px #77a6bd55,0 28px 45px -20px #31596e44,inset 0 1px 0 #ffffff40;pointer-events:none}
.timer-orbit{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;fill:none;stroke:#fff9df80;stroke-width:1;vector-effect:non-scaling-stroke}
.timer-orbit-inner{stroke:#426e8526;stroke-dasharray:2 13}
.timer-orbit-point{transition:transform 1.05s linear;stroke:none;fill:#fffdf1}
.orbit-aura{opacity:.18}.orbit-spark{filter:drop-shadow(0 0 5px #fff8db)}
.timer-content{position:relative;width:100%;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center}
.timer-emblem{display:block;width:35px;height:35px;margin:0 auto 16px;fill:#fff9e4;filter:drop-shadow(0 2px 5px #3c68792b)}
.timer-star{fill:#fffaf0;opacity:.85}
.timer-title{margin:0;font:italic 48px/1.1 var(--serif);font-weight:400;color:#31586e}
.timer{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;max-width:760px;margin:30px auto 26px}
.time-unit{position:relative;display:flex;flex-direction:column;align-items:center;gap:13px;min-width:0}
.timer strong{display:block;font-family:var(--serif);font-size:clamp(66px,8.3vw,104px);line-height:.95;font-weight:400;font-variant-numeric:tabular-nums;color:#274e66;text-shadow:0 2px 0 #ffffff26;letter-spacing:-2px}
.timer span{font-size:10px;letter-spacing:2.5px;color:#476f83}
.time-unit:not(:last-child):after{content:':';position:absolute;right:-18px;top:9px;font:35px var(--serif);color:#668ba14d}
.date{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin:0;font:italic 20px/1.4 var(--serif);color:#466b7e}
.date-dash{width:24px;height:1px;background:#63889d66}
.scene{--closed-height:calc(100svh - 60px);--paper-lift:-150px;--paper-rest:-80px;position:relative;min-height:var(--closed-height);padding-top:max(150px,calc((100svh - 60px - var(--envelope-height,344px))/2));padding-bottom:50px;perspective:1200px;transition:min-height 3.2s cubic-bezier(.4,0,.2,1)}
.envelope{position:relative;width:min(560px,100%);aspect-ratio:44/27;margin:0 auto;filter:drop-shadow(0 25px 22px #4e7c922b);transition:transform 1s,opacity .8s}
.envelope-shell{position:absolute;inset:0;transform-origin:center;opacity:1}
.envelope-back{position:absolute;inset:0;background:#e6dbc8;border:1px solid #cdbfa8;border-radius:5px;box-shadow:inset 0 2px 8px #77644718}
.envelope-front{position:absolute;inset:0;z-index:3;border-radius:4px;overflow:hidden;clip-path:polygon(0 0,50% 54%,100% 0,100% 100%,0 100%)}
.envelope-front>svg{display:block;width:100%;height:100%}
.flap{position:absolute;inset:0;transform-origin:top;z-index:4;filter:drop-shadow(0 4px 3px #715a3e40);transition:transform 3.6s cubic-bezier(.3,0,.2,1);pointer-events:none}
.flap>svg{display:block;width:100%;height:100%;overflow:visible}
.seal{--seal-size:76px;position:absolute;z-index:5;left:calc(50% - var(--seal-size)/2);top:calc(54% - var(--seal-size)/2);width:var(--seal-size);height:var(--seal-size);padding:0;border:0;background:none;border-radius:50%;filter:drop-shadow(0 3px 4px #31596e40);transition:filter .4s}

.seal:hover{filter:drop-shadow(0 3px 8px #31596e60)}

.wax-half{position:absolute;inset:0;display:block;border-radius:48% 47% 45% 49%;border:2px solid #83a6ba;background:radial-gradient(circle at 35% 25%,#a0bdcd,#648ba4);box-shadow:inset 0 0 0 4px #a9c3d04d,inset 0 0 0 6px #567f9726}

.seal-moon{position:absolute;inset:18% 23%;width:54%;height:64%;fill:#eaf3f6;stroke:#60879d;stroke-width:.7;filter:drop-shadow(0 1px 1px #31596e55)}
.wax-left{clip-path:polygon(0 0,53% 0,45% 20%,57% 34%,42% 50%,55% 63%,46% 82%,53% 100%,0 100%)}

.wax-right{clip-path:polygon(53% 0,100% 0,100% 100%,53% 100%,46% 82%,55% 63%,42% 50%,57% 34%,45% 20%)}

.seal-crack{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:#354f61;stroke-width:1.8;stroke-linecap:round;stroke-dasharray:120;stroke-dashoffset:120;opacity:0;pointer-events:none}

.address{position:absolute;bottom:30px;width:100%;z-index:4;text-align:center;font:22px var(--hand);opacity:.7}
.envelope-light{position:absolute;z-index:6;pointer-events:none;left:-25%;top:-88%;width:150%;height:190%;opacity:0;transform-origin:50% 80%;transform:scale(.35);background:radial-gradient(ellipse at 50% 68%,#fff 0%,#fffef4fa 13%,#fff3cce6 28%,#fff7da99 43%,#fffbe73d 58%,#fff9dd00 72%);filter:blur(10px);border-radius:50%;mix-blend-mode:screen}
.envelope-light:before{content:'';position:absolute;left:35%;top:52%;width:30%;height:32%;border-radius:50%;background:#fffef7;box-shadow:0 0 35px 18px #fffef2cc,0 0 85px 35px #fff0bb99;filter:blur(8px)}

.opening .seal{animation:sealFall 2.7s 3.1s cubic-bezier(.45,0,.75,.5) both;pointer-events:none}

.opening .seal-crack{animation:sealCrack 2.2s .3s ease-in-out both}

.opening .wax-left{animation:waxSplitLeft 2.2s 2s ease-in-out both}

.opening .wax-right{animation:waxSplitRight 2.2s 2s ease-in-out both}

.opening .flap{transform:rotateX(180deg);transition-delay:5.3s;animation:flapBehind 0s 7.2s forwards}

.opening .envelope-light{animation:letterLight 4.8s 6.3s ease-in-out both}

@keyframes sealCrack{0%{stroke-dashoffset:120;opacity:0}
15%{opacity:.85}
85%{stroke-dashoffset:0;opacity:.95}
100%{stroke-dashoffset:0;opacity:0}
}

@keyframes waxSplitLeft{0%{transform:translate(0,0) rotate(0)}
100%{transform:translate(-5px,2px) rotate(-9deg)}
}

@keyframes waxSplitRight{0%{transform:translate(0,0) rotate(0)}
100%{transform:translate(5px,4px) rotate(9deg)}
}

@keyframes sealFall{0%{transform:translate(0,0) rotate(0);opacity:1}
30%{transform:translate(5px,24px) rotate(12deg);opacity:1}
70%{transform:translate(17px,135px) rotate(45deg);opacity:1}
100%{transform:translate(30px,330px) rotate(95deg);opacity:0}
}

@keyframes flapBehind{to{z-index:1}}

@keyframes letterLight{0%{opacity:0;transform:scale(.35)}
22%{opacity:.85}
48%{opacity:1;transform:scale(1)}
76%{opacity:1;transform:scale(1.12)}
100%{opacity:0;transform:scale(1.2)}
}

.letter{position:absolute;top:12px;left:20px;width:calc(100% - 40px);margin:0;padding:34px 48px 26px;height:260px;min-height:0;overflow:hidden;background:var(--paper);box-shadow:0 20px 55px #426c8124,1px 1px 0 #fff9;transform:translate(0,0);transform-origin:50% 0;z-index:2;opacity:1;visibility:visible;background-image:linear-gradient(90deg,#d4c9a108,transparent 20%,#d4c9a108);perspective:1000px}
.scene.opened .letter{box-shadow:0 25px 55px #31596e3d}
.letter-content{position:relative;visibility:hidden;pointer-events:none}
.scene.opened .letter-content{visibility:visible;pointer-events:auto}
.folded-dedication{position:absolute;top:19%;left:0;width:100%;text-align:center;font:35px var(--hand);pointer-events:none;transform-origin:center}
.scene.opened .folded-dedication{visibility:hidden}
.writing{position:relative;color:#3f6072;min-height:0;white-space:normal}
.ink-canvas{display:block;width:100%;height:auto;overflow:visible}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.drawing-pen{position:fixed;z-index:60;width:54px;height:100.8px;pointer-events:none;transform:rotate(-12deg);transform-origin:9px 95.5px;filter:drop-shadow(3px 4px 3px #31596e44)}
.drawing-pen svg{display:block;width:100%;height:100%}
.drawing-pen.lifted{filter:drop-shadow(5px 8px 4px #31596e33)}
.skip{display:block;margin:8px 0 10px auto;opacity:.6}
.memories{text-align:center;margin:max(160px,calc(100svh - 420px)) 0 40px}
.section-heading h2{font:italic 49px var(--serif);margin:12px 0 8px;font-weight:400}
.section-heading p{font:17px var(--serif);opacity:.8}
.little-surprise{margin:38px auto 0;border:0;border-bottom:1px solid #668a9d55;padding:9px 0;background:none;font:20px var(--hand)}
.secret{font:27px/1.5 var(--hand);animation:arrive 1s both;margin:25px auto}
@media(max-width:600px){.experience{padding:24px 20px 22px}

.eyebrow{font-size:8px;letter-spacing:2px}





.scene{--closed-height:calc(100svh - 48px);--paper-lift:-110px;--paper-rest:-60px;padding-top:max(130px,calc((100svh - 48px - var(--envelope-height,221px))/2))}
.envelope{width:min(360px,100%)}
.seal{--seal-size:64px}
.address{font-size:18px;bottom:23px}
.letter{margin-top:0;padding:25px 27px 22px}


.section-heading h2{font-size:43px}
.section-heading p{font-size:15px}
.secret{font-size:25px}
}
/* Keep the requested, click-initiated envelope sequence in both modes.
   Only automatic decoration and repeated pen movement are reduced. */
@media(prefers-reduced-motion:reduce){
.dedication,.intro-line,.experience,.secret{animation:none}
.dedication{opacity:1}

.photo{transition:none}
}


html.scroll-locked,html.scroll-locked body{overflow:hidden;overscroll-behavior:none;touch-action:none}
.scroll-cue{position:fixed;z-index:30;bottom:15px;left:50%;translate:-50% 0;display:flex;align-items:center;flex-direction:column;gap:5px;border:0;background:none;padding:12px 28px;color:#fffdf3;text-shadow:0 0 8px #fff,0 0 22px #ffffffa6;font:34px var(--hand);cursor:pointer}
.scroll-cue svg{width:28px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;filter:drop-shadow(0 0 5px #fff9);animation:scrollNudge 2.8s ease-in-out infinite}
@keyframes scrollNudge{0%,100%{translate:0 0}50%{translate:0 5px}}

.table-stage{position:relative;max-width:1080px;margin:38px auto 0;padding:18px 12px 65px;perspective:1450px}
.table-assembly{position:relative;transform:rotateX(10deg) rotateZ(-.6deg) scale(.97);transform-origin:50% 55%;transform-style:preserve-3d}
.table-leg{position:absolute;bottom:-44px;width:36px;height:80px;border-radius:0 0 7px 7px;background:linear-gradient(90deg,#765033,#b18559 42%,#855b38);box-shadow:5px 8px 12px #31596e33;transform:translateZ(-18px)}
.table-leg-left{left:8%}.table-leg-right{right:8%}
.table-coordinate{position:absolute;width:0;height:0;pointer-events:none;visibility:hidden}
.table-coordinate-origin{left:0;top:0}.table-coordinate-x{left:100%;top:0}.table-coordinate-corner{left:100%;top:100%}.table-coordinate-y{left:0;top:100%}
.photo-center{position:absolute;left:50%;top:50%;width:0;height:0;pointer-events:none}
.memory-table{--photo-width:clamp(104px,14vw,166px);position:relative;isolation:isolate;width:100%;max-width:1050px;height:650px;margin:0;overflow:hidden;border-radius:18px;border:10px solid #bc9470;box-shadow:0 3px 0 #b1845d,0 7px 0 #9c704a,0 12px 0 #835b3b,0 16px 0 #68462e,0 38px 48px #31596e45,inset 0 2px 1px #fff4d6,inset 0 0 0 2px #e6c49b,inset 0 0 55px #8b624b30;background:repeating-linear-gradient(2deg,#a97b4f0d 0 2px,transparent 2px 24px),repeating-linear-gradient(91deg,#d7b38a 0,#e6c9a7 115px,#d7b38a 118px,#cba27c 120px,#dfbf9b 123px,#ead0ae 235px)}
.table-runner{position:absolute;inset:-10px 15%;background:repeating-linear-gradient(0deg,#ffffff0c 0 2px,#d5c8ad0c 2px 4px),#f4eedfe8;border-left:2px dashed #d4c5a7;border-right:2px dashed #d4c5a7;box-shadow:0 0 0 5px #fbf5e88c,0 3px 15px #694a3720;pointer-events:none}
.table-note{position:absolute;right:32px;bottom:24px;font:23px var(--hand);color:#8a735c;pointer-events:none}
.album{position:absolute;left:50%;top:49%;width:min(560px,84%);height:360px;transform:translate(-75%,-50%) rotate(-3deg);perspective:1400px;transform-style:preserve-3d;z-index:3}
.album-pages{position:absolute;top:0;bottom:0;left:50%;right:0;border-radius:0 5px 5px 0}
.album-page{position:relative;background:#fffaf0;border:1px solid #ddd2b9;box-shadow:inset 0 0 0 6px #f4ead7,inset 0 0 0 7px #e1d5bc}
.album-page-right{position:absolute;inset:0;border-radius:0 5px 5px 0;background:linear-gradient(90deg,#e8ddca,#fffaf0 12%);box-shadow:2px 8px 18px #67544345,0 0 0 3px #99b5c5,0 0 0 7px #688ba1}
.album-spine{position:absolute;left:calc(50% - 5px);top:0;bottom:0;width:10px;z-index:4;background:linear-gradient(90deg,#96816a20,#705b4833,#fffaf055);pointer-events:none}
.album-pocket{position:absolute;inset:0}
.album-cover{position:absolute;left:50%;top:0;width:50%;height:100%;padding:0;border:0;background:none;transform:rotateY(0deg);transform-origin:0 50%;transform-style:preserve-3d;z-index:40;border-radius:2px 7px 7px 2px;text-align:center}
.album-cover:disabled{cursor:default}
.cover-front,.cover-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;backface-visibility:hidden;border-radius:2px 7px 7px 2px}
.cover-front{color:#fff9e8;background:repeating-linear-gradient(0deg,#ffffff08 0 1px,transparent 1px 4px),repeating-linear-gradient(90deg,#ffffff08 0 1px,transparent 1px 4px),linear-gradient(110deg,#688da4,#8eafc1 55%,#7497af);border:1px solid #52758d;box-shadow:inset 0 0 0 9px #7c9daf,inset 0 0 0 10px #e8e1c57a,5px 5px 9px #5e55423b}
.cover-front:after{content:'';position:absolute;inset:20px;border:1px solid #eee3bf80;border-radius:46% 46% 4px 4px;pointer-events:none}
.cover-corner{position:absolute;top:28px;font-size:28px;color:#f5e6bd}
.album-title{font:italic 83px var(--serif);margin:3px 0 10px;text-shadow:0 2px 3px #31596e33}
.album-invitation{position:absolute;bottom:32px;font:21px var(--hand)}
.cover-back{transform:rotateY(180deg);border:1px solid #d6c8ae;background:radial-gradient(ellipse at 30% 15%,#fffdf5,#f0e6d3);box-shadow:inset 0 0 0 8px #e2d4bb,inset 0 0 0 9px #cdbb99;font:25px/1.1 var(--hand);color:#8296a0;gap:22px}
.album.is-open .album-cover{pointer-events:none}
.table-photos{position:absolute;inset:0;z-index:10;pointer-events:none}
.photo{position:absolute;width:var(--photo-width);height:calc(var(--photo-width)*1.46);padding:8px 8px 10px;background:#fffdf6;box-shadow:0 8px 13px #45392c40,0 0 0 1px #d9cebb77;user-select:none;-webkit-user-select:none;touch-action:none;cursor:grab;transition:box-shadow .2s,scale .2s;transform-origin:center;pointer-events:none}
.table-photos>.photo{pointer-events:auto}
.photo.held{translate:0 -3px;scale:1.035;box-shadow:0 19px 25px #45392c44,0 0 0 1px #e4d8c4;cursor:grabbing}
.photo:focus-visible{outline:2px solid #517a92;outline-offset:4px}
.photo-image,.photo-art{display:block;width:100%;height:calc(var(--photo-width) - 16px);object-fit:cover;pointer-events:none}
.photo-art{position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse at 50% 20%,#e8ece2,#b8d2dc);color:#fffdf2;font:64px var(--serif)}
.photo-art.flower{background:linear-gradient(#e3e8d7,#b4c9b9)}
.photo-art.stars{background:radial-gradient(ellipse at 50% 0,#b4c9dd,#6b88a3);font-size:43px}
.photo-art small{position:absolute;bottom:7px;left:4px;right:4px;text-align:center;font:9px var(--serif);color:#416479}
.photo-art.stars small{color:#fffaf0}
.photo-caption{margin:8px 0 0;font:19px/1 var(--hand);text-align:center;pointer-events:none}
@media(max-width:600px){
.memory-table{--photo-width:clamp(100px,27vw,130px);height:620px;border-width:6px;border-radius:12px;margin-top:0}
.album{height:260px;width:86%;top:47%}
.album-title{font-size:58px}
.album-invitation{font-size:16px;bottom:24px}
.cover-front:after{inset:13px}.cover-corner{top:18px;font-size:22px}
.cover-back{font-size:19px;gap:14px}
.table-note{font-size:18px;right:15px;bottom:15px}
.photo-caption{font-size:16px}.photo-art{font-size:48px}.photo-art.stars{font-size:28px}
.photo-art small{font-size:7px}
.scroll-cue{font-size:30px;bottom:10px}
}
@media(prefers-reduced-motion:reduce){.scroll-cue svg{animation:none}}

@media(max-width:600px){
.time-wrap{min-height:410px;margin-top:60px;padding:48px 10px}
.timer-title{font-size:37px}.timer-emblem{width:29px;height:29px;margin-bottom:12px}
.timer{gap:8px;margin:28px auto 25px}.time-unit{gap:12px}
.timer strong{font-size:clamp(40px,11vw,62px);letter-spacing:-1px}
.timer span{font-size:8px;letter-spacing:1.4px}
.time-unit:not(:last-child):after{right:-6px;top:1px;font-size:24px}
.date{font-size:18px;gap:6px;flex-direction:column}.date-dash{width:18px}
.timer-orbit-inner{opacity:.65}
}
@media(prefers-reduced-motion:reduce){.timer-orbit-point{transition:none}}

.chicken-mascot{--mascot-size:64px;--sprite-align:0px;position:absolute;right:34px;bottom:76px;z-index:20000;width:var(--mascot-size);height:var(--mascot-size);padding:0;border:0;background:none;cursor:pointer;transform:none;transform-origin:50% 90%;-webkit-tap-highlight-color:transparent}
.chicken-shadow{position:absolute;left:20%;right:12%;bottom:8%;height:13%;border-radius:50%;background:#5d442c50;filter:blur(5px);transform:rotate(-5deg)}
.chicken-sprite{position:absolute;inset:0;background-image:url('assets/luna-chicken-3d-flap-v1.png');background-size:300% 100%;background-position:0% 0%;background-repeat:no-repeat;image-rendering:pixelated;filter:drop-shadow(1px 3px 1px #55402e44)}
.chicken-mascot.is-flapping .chicken-sprite{animation:chickenFlap .64s steps(1,end) infinite}
.chicken-mascot:focus-visible{outline:2px solid #577f96;outline-offset:5px;border-radius:50%}
@keyframes chickenFlap{0%,100%{background-position:0% 0%}25%,75%{background-position:calc(50% + var(--sprite-align)) 0%}50%{background-position:calc(100% + var(--sprite-align)) 0%}}
@media(max-width:600px){.table-stage{margin-top:28px;padding:10px 4px 48px}.table-assembly{transform:rotateX(5deg) rotateZ(-.35deg) scale(.96)}.table-leg{width:25px;height:65px;bottom:-36px}.chicken-mascot{--mascot-size:48px;right:13px;bottom:62px;transform:none}}

.chicken-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;image-rendering:auto}
.chicken-mascot.is-3d .chicken-sprite,.chicken-mascot.is-3d .chicken-shadow{display:none}

.table-prop{position:absolute;z-index:2;pointer-events:none}
.prop-fallback,.prop-canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.table-prop-flowers{right:12px;top:10px;width:150px;height:185px}
.table-prop-sprig{left:15px;top:15px;width:145px;height:105px}
.table-prop-refreshments{left:0;bottom:2px;width:330px;height:216px;z-index:4}
.prop-steam{position:absolute;z-index:1;left:53.2%;top:13.4%;width:25%;height:45%;overflow:visible;fill:none;stroke:#fffdf0;stroke-width:4;stroke-linecap:round;filter:blur(.7px) drop-shadow(0 1px 2px #69859280);opacity:.9}
.prop-steam path{stroke-dasharray:48 22;animation:herbalSteam 4.8s linear infinite}
.prop-steam path:nth-child(2){animation-delay:-1.6s}.prop-steam path:nth-child(3){animation-delay:-3.2s}
@keyframes herbalSteam{0%{stroke-dashoffset:0;opacity:.55}50%{opacity:.95}100%{stroke-dashoffset:-140;opacity:.55}}
.table-prop.is-3d .prop-fallback{display:none}
@media(max-width:600px){.table-prop-flowers{right:0;top:5px;width:94px;height:135px}.table-prop-sprig{left:4px;top:13px;width:88px;height:68px}.table-prop-refreshments{left:0;bottom:2px;width:210px;height:138px}}
@media(prefers-reduced-motion:reduce){.prop-steam path{animation-duration:8s}}

.sparkle-layer{position:fixed;inset:0;z-index:45;pointer-events:none;overflow:hidden}
.surprise-sparkle{position:absolute;width:var(--size);height:var(--size);border-radius:50%;background:#fff9dd;box-shadow:0 0 5px 2px #fff5c8c0,0 0 15px 3px #fff9df60;pointer-events:none;will-change:transform,opacity}
.surprise-sparkle.is-star::before,.surprise-sparkle.is-star::after{content:"";position:absolute;left:50%;top:50%;width:1px;height:calc(var(--size) * 3);background:#fffbe9;transform:translate(-50%,-50%);border-radius:50%}
.surprise-sparkle.is-star::after{transform:translate(-50%,-50%) rotate(90deg)}
