/* One storybook surface: sea flowers, bubble glass and a few pajama shapes. */
:root{--story-ease:cubic-bezier(.18,.85,.25,1);--serif:"Songti SC","STSong","Noto Serif CJK SC",serif}
.story-motifs{position:fixed;inset:0;z-index:1;overflow:hidden;pointer-events:none;color:var(--rose);opacity:.7;transition:opacity 1.2s}.sea-flower{position:absolute;width:170px;fill:none;stroke:currentColor;stroke-width:.65;opacity:.14;animation:sea-flower-drift 28s ease-in-out infinite alternate}.flower-one{left:-65px;top:27%;transform:rotate(-18deg)}.flower-two{right:-18px;bottom:5%;width:230px;opacity:.09;animation-delay:-16s}.motif-star{position:absolute;right:9%;top:16%;font:33px Georgia;color:#c09c96;opacity:.35;animation:motif-hover 11s ease-in-out infinite}.motif-bubble{position:absolute;width:43px;height:43px;border-radius:50%;border:1px solid #acd0d633;box-shadow:inset 3px 3px 7px #ffffff70;background:radial-gradient(circle at 75% 75%,#e8bbd122,transparent 60%);animation:motif-hover 14s ease-in-out infinite}.b-one{left:8%;bottom:19%}.b-two{right:14%;top:33%;width:17px;height:17px;animation-delay:-5s}.motif-pajamas{position:absolute;left:14%;top:15%;width:85px;height:35px;transform:rotate(-17deg);opacity:.24}.motif-pajamas i{position:absolute;left:5px;top:0;width:12px;height:12px;border:1px solid #9aacb9;transform:rotate(45deg)}.motif-pajamas i:nth-child(2){left:40px;top:16px;border-radius:50%;border-color:#caa799}.motif-pajamas i:nth-child(3){left:66px;top:3px;width:9px;height:9px;background:#a1bcba;border:0;clip-path:polygon(50% 0,100% 100%,0 100%)}
.ambient .orbit{opacity:.48}.halo{animation:motif-hover 19s ease-in-out infinite alternate}.topbar{z-index:12}.scene{z-index:2;transition:opacity .55s ease,transform .85s var(--story-ease),filter .65s;filter:blur(0)}.scene.is-leaving{filter:blur(4px);transform:translateY(-9px) scale(.99)}.scene.is-active>.section-title,.scene.is-active>.eyebrow{animation:story-arrive 1s var(--story-ease) both}.scene.is-active>.section-title{animation-delay:.08s}.scene.is-active>.moment-mount,.scene.is-active>.friends-mount{animation:story-arrive 1.2s .08s var(--story-ease) both}.button{transition:background .3s,box-shadow .4s,transform .4s var(--story-ease);box-shadow:0 6px 20px #7350680b,inset 0 1px #ffffff26}.button:hover{box-shadow:0 9px 22px #73506813,inset 0 1px #ffffff40}.button.secondary{background:color-mix(in srgb,var(--paper) 72%,transparent);border-color:var(--line)}.section-title{letter-spacing:.06em}.eyebrow{color:var(--muted);opacity:.85;font-size:10px;letter-spacing:.26em}.text-button{letter-spacing:.025em}.top-actions{gap:11px}.sound-control,.page-navigation{background:color-mix(in srgb,var(--paper) 77%,transparent);border-color:var(--line);box-shadow:0 4px 22px #69546c05,inset 0 1px #fff8}.page-navigation .chapter-dot.current:after{border-radius:1px;transform:rotate(45deg);box-shadow:0 0 0 4px color-mix(in srgb,var(--rose) 10%,transparent)}.sound-control .sound-icon{color:var(--rose)}.wordmark .brand-star{color:#bb9d93;transform:rotate(-11deg)}.memory-token{border:1px solid var(--line);border-radius:90px 90px 22px 22px;background:linear-gradient(160deg,#fff8,#fff0);position:relative;overflow:hidden}.memory-token:hover{background:var(--surface);transform:translateY(-6px) rotate(-.5deg)}.memory-token:before{content:'';position:absolute;inset:9px;border:1px solid color-mix(in srgb,var(--line) 45%,transparent);border-radius:inherit;pointer-events:none}.card-character-peek{opacity:.7;transform:translateY(14px);transition:transform .7s var(--story-ease),opacity .7s}.memory-token:hover .card-character-peek{opacity:1;transform:translateY(5px)}.eggs-dialog{box-shadow:0 35px 110px #41334829;border:1px solid var(--line);background:var(--paper)}.eggs-dialog::backdrop{background:#36324245;backdrop-filter:blur(13px)}.dialog-top h2{font:400 22px/1.5 var(--serif);letter-spacing:.02em}.letter-paper{border-radius:5px 5px 20px 5px;box-shadow:0 14px 38px #6651600a,inset 0 0 40px #f7ead329}.letter-paper p{font-size:16px;line-height:1.95}.letter-paper h3{margin-bottom:18px}.letter-paper .letter-last{margin-top:17px}.letter-date{margin-bottom:20px}
body[data-scene=wish] .story-motifs{opacity:.12}body[data-scene=fireworks] .story-motifs{opacity:.25}.cake-stage.is-3d{height:min(62dvh,570px)}.cake-view{inset:8px 0 54px;overflow:visible}.cake-controls{bottom:7px}.cake-layout{overflow:visible}.cake-copy{padding-left:3vw}.cake-stage{filter:none}body[data-scene=wish] .ambient{background:radial-gradient(ellipse at 28% 75%,#493d4b50,transparent 42%),linear-gradient(#0d1628,#232339 73%,#302b3c)}body[data-scene=wish]{background:#121b2b}body[data-scene=wish] .halo{opacity:.3;background:#92736c;filter:blur(80px)}
@keyframes sea-flower-drift{to{transform:translate(10px,-17px) rotate(18deg)}}@keyframes motif-hover{50%{transform:translateY(-15px) rotate(3deg)}}@keyframes story-arrive{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}
/* Character movement is articulated, including a separate face performance. */
.toon{width:100%;height:100%;overflow:visible;display:block;filter:drop-shadow(0 6px 5px #42506010)}.toon-blow-mouth,.shin-happy-eyes,.shin-blush,.shin-grin{opacity:0}.toon-eyes{transform-box:fill-box;transform-origin:50% 50%;animation:toon-blink 8s 2s infinite}.toon-body,.shin-body{transform-origin:50% 90%}.sponge-arm.arm-right,.patrick-wave{transform-box:fill-box;transform-origin:5% 90%}.shin-head{transform-box:fill-box;transform-origin:52% 90%;transition:transform 1.1s var(--story-ease)}.shin-blush{transition:opacity 1s}.shin-open-eyes,.shin-happy-eyes,.shin-mouth,.shin-grin{transition:opacity .4s}.inhaling .toon-sponge .toon-smile,.inhaling .toon-sponge .toon-teeth,.exhaling .toon-sponge .toon-smile,.exhaling .toon-sponge .toon-teeth{opacity:0}.inhaling .toon-blow-mouth,.exhaling .toon-blow-mouth{opacity:1}@keyframes toon-blink{0%,42%,45%,100%{transform:scaleY(1)}43%,44%{transform:scaleY(.08)}}@keyframes toon-wave{30%{transform:rotate(-17deg)}60%{transform:rotate(8deg)}}
/* A sealed letter carried by a bubble: nothing is spelled out before it arrives. */
.bubble-post{background:radial-gradient(ellipse at 20% 100%,#9fcac938,transparent 65%),linear-gradient(#dceaf0,#e8f2ef);height:clamp(260px,47vh,430px)}.bubble-post .sponge-actor{left:3%;bottom:3%;width:22%;height:64%}.bubble-post .patrick-actor{right:1%;height:63%;width:23%;transform:none;transition:top .15s linear}.bubble-post .game-wand{right:-4%;top:18%;width:18px;height:18px;border-width:2px}.bubble-post .game-wand:after{top:15px;width:2px;left:6px;height:24px}.bubble-post .game-score{font-size:12px;right:16px;top:15px;background:#fffffc80}.sealed-letter{position:absolute;bottom:9%;left:45%;width:72px;height:49px;transform:rotate(-8deg);background:#fff5e3;border:1px solid #c9b897;box-shadow:0 4px 15px #9a796b0a;transition:transform .8s,opacity .8s;pointer-events:none}.sealed-letter:before{content:'';position:absolute;left:0;right:0;top:0;height:29px;background:#f2e6d3;clip-path:polygon(0 0,100% 0,50% 100%)}.sealed-letter i{display:block;font:25px Georgia;color:#b79387;position:absolute;left:28px;top:15px}.sealed-letter.opening{transform:translateY(-60px) rotate(0) scale(1.5);opacity:0}.bubble-letter-reveal{position:absolute;inset:10% 21% 12%;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:#fffdf4eb;border:1px solid #cbbb9c60;box-shadow:0 15px 55px #78848814;border-radius:7px 7px 45px 7px;transform:rotate(-2deg);animation:letter-delivery 1.8s var(--story-ease) both;text-align:center;padding:20px}.bubble-letter-reveal small{font:9px var(--sans);letter-spacing:.16em;color:#9b8890}.bubble-letter-reveal strong{font:italic clamp(24px,4vw,47px)/1.25 Georgia;color:#87657b;font-weight:400}.bubble-letter-reveal>span{font-size:12px;line-height:1.8;color:#8d8185}.sea-current{position:absolute;left:51%;top:7%;font:36px Georgia;color:#7c9eae40;pointer-events:none}.bubble-post-controls{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:12px 0 0}.bubble-post-controls label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.bubble-post-controls input{width:110px;accent-color:var(--rose)}.bubble-post-controls .button{font-size:13px;touch-action:none;user-select:none;min-width:143px}.bubble-post-controls .text-button{font-size:12px}.bubble-power{height:3px;width:60px;border-radius:4px;overflow:hidden;background:var(--line)}.bubble-power span{display:block;background:var(--rose);height:100%;transform:scaleX(0);transform-origin:left}@keyframes letter-delivery{from{opacity:0;transform:translateY(40px) rotate(-9deg) scale(.6)}to{opacity:1;transform:rotate(-2deg)}}
/* Shinchan: peek, offer a snack, then blush and tilt. */
.shin-vignette{position:relative;height:clamp(255px,43vh,390px);overflow:hidden;border:1px solid var(--line);border-radius:25px;background:radial-gradient(ellipse at 40% 100%,#e7cbb333,transparent 70%),#f6eee3}.shin-room-pattern{position:absolute;inset:14% 10%;font:30px Georgia;letter-spacing:50px;color:#b3c7cc55;transform:rotate(-10deg)}.shin-performer{position:absolute;bottom:0;left:23%;height:88%;width:40%;transition:transform 1.3s var(--story-ease);transform:translateX(-12%) rotate(-7deg)}.shin-curtain{position:absolute;left:0;top:0;bottom:0;width:52%;background:repeating-linear-gradient(90deg,#b6c6c2 0%,#d5dfd6 14%,#e2e5d9 20%,#c7d3ca 32%);box-shadow:10px 0 15px #707c7720;transform-origin:0 0;border-radius:0 0 55px 0;transition:transform 1.6s var(--story-ease)}.shin-peek{position:absolute;left:51%;top:35%;width:54px;height:54px;border-radius:50%;background:#fffaf0ed;color:#9e7d7d;box-shadow:0 3px 20px #a98d8520;font:25px var(--serif);animation:motif-hover 4s infinite}.shin-line{position:absolute;left:61%;right:5%;top:29%;font:400 clamp(16px,2vw,23px)/1.9 var(--serif);color:#886a6b;transition:opacity .6s;min-height:75px}.shin-vignette:not([data-act=peek]) .shin-curtain{transform:translateX(-67%) rotate(5deg)}.shin-vignette:not([data-act=peek]) .shin-performer{transform:translateX(3%)}.shin-vignette[data-act=gift] .shin-head{transform:rotate(-6deg) translateY(-2px)}.shin-vignette[data-act=wishing] .shin-head{animation:shin-speaking 1.8s ease both}.shin-vignette[data-act=shy] .shin-head{transform:rotate(14deg) translate(4px,4px)}.shin-vignette[data-act=shy] .shin-blush,.shin-vignette[data-act=shy] .shin-grin,.shin-vignette[data-act=shy] .shin-happy-eyes{opacity:1}.shin-vignette[data-act=shy] .shin-open-eyes,.shin-vignette[data-act=shy] .shin-mouth{opacity:0}.shin-vignette[data-act=shy] .shin-line{animation:speech-pop .7s both}.shin-offering{position:absolute;left:51%;bottom:16%;width:60px;height:66px;transform:rotate(-9deg);pointer-events:none}.shin-offering img{width:100%;height:100%;object-fit:contain}.shin-offering>*{animation:offering-arrive 1.2s var(--story-ease) both}.chocobi-box{display:block;width:47px;height:63px;background:#a8ba83;clip-path:polygon(10% 0,90% 0,100% 10%,96% 98%,5% 100%,0 12%);border:2px solid #819961;color:#f7e6a1;text-align:center;padding-top:10px;font-size:23px}.chocobi-box small{display:block;font:7px Georgia;color:#687d53;letter-spacing:.06em}.tiny-bow{font-size:48px;color:#c4889c}.shin-props{text-align:center;margin:12px auto 0}.shin-props p{font-size:12px;color:var(--muted);margin:0 0 9px}.shin-props button{padding:10px 21px;border:1px solid var(--line);border-radius:22px;font-size:13px;background:var(--surface);margin:0 5px}.shin-again{display:block;margin:10px auto 0}@keyframes shin-speaking{40%{transform:translateY(-5px) rotate(-5deg)}70%{transform:translateY(0) rotate(2deg)}}@keyframes offering-arrive{from{opacity:0;transform:translate(90px,30px) rotate(10deg)}to{opacity:1;transform:none}}
/* The surprise behind the pineapple door. No detached hat, no generic voice. */
.friends-mount{width:min(740px,100%)}.door-theatre{position:relative;height:clamp(250px,40vh,350px);overflow:hidden;border-radius:150px 150px 25px 25px;border:1px solid #bcd1d060;background:radial-gradient(ellipse at 50% 100%,#ddcfad33,transparent 60%),linear-gradient(#e1eced,#edf2e9)}.undersea-flower{position:absolute;right:12%;top:0;font:140px Georgia;color:#b6d1d121;transform:rotate(20deg)}.pineapple-house{position:absolute;left:12%;bottom:-14%;height:87%;width:29%;background:repeating-linear-gradient(45deg,transparent 0 23px,#b7a38128 24px 25px),repeating-linear-gradient(-45deg,transparent 0 23px,#b7a38128 24px 25px),#dcc39b;border-radius:50% 50% 36% 36%;box-shadow:inset -15px 0 25px #b0a27c18}.pineapple-leaves{position:absolute;width:88%;height:35%;bottom:91%;left:5%;background:#a4bbaa;clip-path:polygon(5% 3%,34% 35%,38% 0,51% 38%,80% 0,70% 50%,100% 40%,68% 90%,35% 100%)}.house-window{position:absolute;right:18%;top:19%;width:29px;height:29px;border:4px double #faf3de;border-radius:50%;background:#7fabb460}.pineapple-door{position:absolute;left:18%;bottom:9%;height:47%;width:14%;background:#97b3b5;border:5px double #c6dddb;border-radius:50% 50% 8px 8px;box-shadow:0 3px 12px #6e939026;color:#f8f5e9;transform-origin:0 50%;transition:transform 1.3s var(--story-ease),opacity .6s;z-index:4}.pineapple-door i{position:absolute;right:10%;top:57%;width:9px;height:9px;border-radius:50%;background:#dcd8b8}.pineapple-door span{font-size:12px;letter-spacing:.25em}.house-sponge{position:absolute;left:12%;bottom:6%;width:23%;height:73%;opacity:0;transform:translate(-8%,10%) scale(.85);transition:transform 1.4s var(--story-ease),opacity .6s;z-index:3}.rock-house{position:absolute;left:39%;bottom:6%;width:21%;height:60%}.pink-rock{position:absolute;bottom:0;left:-12%;right:-12%;height:35%;background:radial-gradient(ellipse at 30% 10%,#d9c0bb,#b69a9c);border-radius:100% 100% 4px 4px;transform-origin:0 100%;transition:transform 1.3s var(--story-ease)}.house-patrick{height:100%;opacity:0;transform:translateY(75%) scale(.75);transition:transform 1.3s var(--story-ease),opacity .8s}.door-message{position:absolute;left:59%;right:6%;top:21%;text-align:left;z-index:6}.door-message small{font-size:9px;letter-spacing:.09em;color:#8fa3a3}.door-message p{font:18px/1.8 var(--serif);color:#607c83;min-height:70px;margin:12px 0 0}.door-theatre[data-act=rustle] .pineapple-door{animation:door-knock .4s both}.door-theatre:not([data-act=waiting]):not([data-act=rustle]) .pineapple-door{transform:perspective(400px) rotateY(-110deg);opacity:.6}.door-theatre:not([data-act=waiting]):not([data-act=rustle]) .house-sponge{opacity:1;transform:none}.door-theatre:is([data-act=patrick],[data-act=blow],[data-act=birthday],[data-act=together]) .pink-rock{transform:rotate(-115deg)}.door-theatre:is([data-act=patrick],[data-act=blow],[data-act=birthday],[data-act=together]) .house-patrick{opacity:1;transform:none}.door-theatre[data-act=open] .sponge-arm.arm-right{animation:toon-wave 1s 2}.door-theatre[data-act=blow] .toon-smile,.door-theatre[data-act=blow] .toon-teeth{opacity:0}.door-theatre[data-act=blow] .toon-blow-mouth{opacity:1}.door-bubble-message{position:absolute;top:17%;right:6%;width:35%;aspect-ratio:1.25;border:1px solid #b4cdd680;border-radius:50%;background:radial-gradient(circle at 32% 23%,#fffffdda,transparent 25%,#d3c2dd22 70%,#fff9 100%);font:italic clamp(18px,3vw,29px)/1.4 Georgia;color:#648294;display:flex;align-items:center;justify-content:center;text-align:center;z-index:7;box-shadow:inset 5px 5px 15px #fff8;animation:birthday-bubble-arrives 1.8s var(--story-ease) both}.door-theatre:is([data-act=birthday],[data-act=together]) .door-message{top:73%;left:60%;right:3%}.door-theatre:is([data-act=birthday],[data-act=together]) .door-message small{display:none}.door-theatre:is([data-act=birthday],[data-act=together]) .door-message p{font-size:13px;margin:0}.door-theatre[data-act=together] .patrick-wave{animation:toon-wave 1.2s 2}.friend-stage-note{font-size:12px;line-height:1.8;color:var(--muted);min-height:20px;margin:11px 0 2px}.friend-replay{font-size:12px}.rest-scene>.text-button{margin-top:8px}@keyframes door-knock{20%,60%{transform:translateX(3px)}40%,80%{transform:translateX(-2px)}}@keyframes birthday-bubble-arrives{0%{opacity:0;transform:translate(-210px,50px) scale(.04)}25%{opacity:.5}100%{opacity:1;transform:none}}
/* Small gift first; a continuous burning point follows the metal wire. */
.spark-package{position:absolute;left:50%;top:50%;width:132px;height:68%;max-height:245px;transform:translate(-50%,-50%) rotate(-12deg);border-radius:6px;background:linear-gradient(98deg,#dcd0ba,#f0e5cb 20%,#e7dac0 83%,#c5b89e);box-shadow:15px 22px 35px #0003,inset 2px 0 #fff7;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9c866f;transition:opacity 1.0s,transform 1.3s var(--story-ease);z-index:6;cursor:pointer!important}.spark-package:before{content:'';position:absolute;inset:9px;border:1px solid #ad998241;border-radius:3px}.spark-package:after{content:'';position:absolute;top:25%;left:-5%;width:110%;height:1px;background:#aa736e;box-shadow:0 4px #aa736e55}.package-thread{position:absolute;top:18%;left:50%;width:26px;height:17px;border:1px solid #ae7976;transform:rotate(-35deg);border-radius:60%;box-shadow:15px 10px 0 -1px #dfd1b9,15px 10px #ae7976}.spark-package span{font:13px Georgia;letter-spacing:.15em;margin-top:22px}.spark-package small{font:11px var(--sans);margin-top:32px;letter-spacing:.1em}.spark-package.unwrapped{opacity:0;transform:translate(-60%,95%) rotate(-30deg);pointer-events:none}.spark-match{position:absolute;left:18%;top:78%;width:100px;height:44px;background:none;color:#d5bfa5;transform:translate(-50%,-50%);z-index:5;cursor:grab!important;touch-action:none;user-select:none}.spark-match>i{position:absolute;width:9px;height:20px;border-radius:70% 35% 55% 45%;background:radial-gradient(ellipse at 50% 78%,#ffffe9 5%,#ffdb8b 38%,#d38e59 80%,transparent);box-shadow:0 0 20px #ffc17b78;left:46px;top:12px;transform:translateY(-12px);animation:match-flicker .7s ease-in-out infinite alternate}.spark-match>i:after{content:'';position:absolute;top:19px;left:2px;width:4px;height:28px;background:linear-gradient(#72564c,#c5aa88)}.spark-match span{position:absolute;top:43px;white-space:nowrap;left:21px;font-size:10px}.spark-igniter{width:30px;height:30px;min-width:0;border:1px solid #dac8b54d;background:#dccab308;box-shadow:0 0 10px #d4bb9622}.spark-igniter i{width:4px;height:4px;border-radius:50%;background:#d3be9d;box-shadow:none;animation:none}.spark-igniter:focus-visible{outline-color:#edce92}.spark-tip{font-size:11px}.firework-world{box-shadow:0 22px 55px #45344a15}@keyframes match-flicker{to{transform:translateY(-12px) skewX(-7deg) scale(.9,1.05)}}
/* Snow: tools without fixed snowman recipes. */
.snow-world{background:#dce7ef;border-color:#cedde2}.snow-status{background:#f4faff80;backdrop-filter:blur(8px);color:#587686;font-size:12px;max-width:480px}.snow-builder{padding-top:8px}.snow-builder-main{display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap}.snow-builder-main label{font-size:12px;color:var(--muted);display:flex;align-items:center;gap:8px}.snow-builder-main input{width:96px;accent-color:#859fac}.snow-builder-main .button,.snow-builder-main .text-button{font-size:12px;min-height:35px;padding:8px 15px}.snow-accessories{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin:9px 0}.snow-accessories button{background:var(--surface);border:1px solid var(--line);padding:7px 12px;border-radius:20px;font-size:11px;min-height:32px}.snow-accessories button[aria-pressed=true]{background:var(--rose-light);border-color:var(--rose)}.snow-accessories button:disabled,.snow-builder-main button:disabled{opacity:.35}.snow-builder-note{font-size:11px;text-align:center;color:var(--muted);margin:6px 0}.snow-world:has(+.snow-tools+.snow-builder:not([hidden])){height:clamp(240px,41vh,360px)}
/* A separate, spacious closing page. */
.farewell-scene{position:absolute;text-align:center;padding-top:15px}.farewell-scene>.section-title{font:400 clamp(30px,3.5vw,48px)/1.55 var(--serif)}.farewell-scene>.eyebrow{margin:16px 0}.farewell-wish{font:16px/1.9 var(--serif);color:var(--muted);margin:19px 0 12px}.farewell-rest{font:13px/1.9 var(--sans);color:var(--muted);margin:0 0 20px}.farewell-extras{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:5px 16px;max-width:650px}.farewell-extras .secret-book-open,.farewell-extras .text-button{font-size:11px;padding:7px 10px;min-height:34px;margin:0}.farewell-extras .final-actions{width:100%;margin-top:3px}.night-window{width:92px;height:94px;border:1px solid var(--line);border-radius:48px 48px 0 0;position:relative;background:linear-gradient(#bbc3d428,#f5e5d316);box-shadow:inset 0 0 18px #d7c5d11c}.night-window:before,.night-window:after{content:'';position:absolute;background:var(--line)}.night-window:before{left:50%;top:4px;bottom:0;width:1px}.night-window:after{height:1px;left:0;right:0;top:60%}.window-moon{position:absolute;left:55%;top:16%;width:23px;height:23px;border-radius:50%;background:#d7c6a4;box-shadow:0 0 20px #f2d19b28}.window-moon:before{content:'';position:absolute;left:-4px;top:-3px;width:22px;height:22px;border-radius:50%;background:var(--paper)}.window-sill{height:4px;border:1px solid var(--line);position:absolute;left:-8px;right:-8px;bottom:-4px}.night-window i{position:absolute;left:23%;top:30%;width:2px;height:2px;background:#b8aebd;border-radius:50%;animation:twinkle 4s infinite alternate}.night-window i:nth-of-type(2){left:75%;top:62%}.night-window i:nth-of-type(3){left:18%;top:74%;animation-delay:-2s}.finale-scene .highfive-area{margin:10px 0}.finale-scene .clap-help{margin-bottom:5px}#highfive-next{margin-top:5px}#gift-list{grid-template-columns:repeat(2,minmax(0,1fr))}
/* Free layout on the final little paper. */
.sticker-workspace{max-width:780px;aspect-ratio:1200/760;max-height:none}.sticker-workspace canvas{width:100%;height:100%;max-height:none;object-fit:fill;touch-action:none}.sticker-palette{gap:9px;flex-wrap:wrap;margin:12px 0}.sticker-palette button{width:41px;height:41px}.sticker-palette svg{width:100%;height:100%}.sticker-adjust{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.sticker-adjust label{display:flex;gap:6px;align-items:center}.sticker-adjust input[type=range]{width:90px;accent-color:var(--rose)}.sticker-adjust button{font-size:11px;padding:7px 12px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.sticker-caption{display:flex;justify-content:center;align-items:center;gap:12px;margin:12px 0;font-size:11px;color:var(--muted)}.sticker-caption input{max-width:270px;width:70%;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:8px 12px;border-radius:9px;font:13px var(--sans)}.card-status{margin:9px 0 0;font-size:11px}
@media(max-height:650px) and (orientation:landscape){.story-motifs .flower-one{width:120px}.story-motifs .flower-two{width:150px}.story-motifs .motif-star{right:6%;top:20%}.top-actions{gap:6px}.cake-stage.is-3d{height:calc(100dvh - 145px);min-height:205px}.cake-view{inset:0 4px 37px}.cake-controls{bottom:0}.cake-copy .section-title{font-size:27px}.cake-copy .wish-progress{min-height:20px}.cake-copy .manual-blow{min-height:34px}.door-theatre{height:clamp(185px,43vh,290px)}.friends-mount{max-width:650px}.friend-stage-note{margin-top:7px;font-size:11px}.door-message p{font-size:16px}.bubble-post{height:44vh;min-height:210px}.shin-vignette{height:44vh;min-height:210px}.shin-props button{font-size:12px;padding:8px 16px}.shin-props{margin-top:8px}.bubble-post-controls{gap:12px;margin-top:8px}.snow-world:has(+.snow-tools+.snow-builder:not([hidden])){height:36vh;min-height:180px}.farewell-scene{padding:6px 0}.night-window{width:63px;height:63px}.window-moon{width:16px;height:16px}.window-moon:before{width:15px;height:15px}.farewell-scene>.section-title{font-size:30px}.farewell-wish{font-size:14px;margin:12px 0 8px}.farewell-rest{font-size:12px;margin-bottom:12px}.farewell-scene>.eyebrow{margin:12px 0}.farewell-extras{gap:0 8px}.letter-paper{padding:25px 32px 20px}.letter-paper p{font-size:14px}.letter-paper h3{font-size:21px}.sticker-workspace{max-width:min(670px,65vw)}.sticker-palette{margin:9px 0}.sticker-palette button{width:36px;height:36px}}
@media(max-height:430px) and (orientation:landscape){.scene{inset:60px 6vw 46px}.cake-stage.is-3d{height:calc(100dvh - 115px)}.cake-copy .section-title{font-size:22px}.cake-copy .section-subtitle{font-size:12px}.door-theatre{height:49vh;min-height:175px}.rest-scene>.section-title{font-size:24px}.rest-scene>.eyebrow{margin-bottom:5px}.friends-mount{margin-top:8px;max-width:610px}.door-message p{font-size:14px}.friend-stage-note{font-size:10px}.rest-scene>.text-button{min-height:30px;font-size:11px;padding:6px;margin:0}.bubble-post,.shin-vignette{height:46vh;min-height:170px}.bubble-post-controls input{width:80px}.bubble-post-controls .button{min-height:33px;padding:7px 13px}.bubble-letter-reveal{inset:6% 23%;gap:6px}.bubble-letter-reveal strong{font-size:25px}.bubble-letter-reveal>span{font-size:10px}.snow-accessories{margin:5px 0}.snow-builder-main{gap:10px}.snow-builder-main label{font-size:11px}.snow-builder-main input{width:75px}.snow-accessories button{padding:5px 9px;min-height:27px}.snow-world:has(+.snow-tools+.snow-builder:not([hidden])){height:43vh;min-height:165px}.snow-builder-note{display:none}.farewell-scene{display:grid;grid-template-columns:92px 1fr 1fr;column-gap:25px;max-width:840px;margin:auto;align-content:center;justify-content:center}.farewell-scene .night-window{grid-column:1;grid-row:1/4;justify-self:center}.farewell-scene>.eyebrow{display:none}.farewell-scene>.section-title{grid-column:2;grid-row:1/3;font-size:26px;text-align:left}.farewell-wish{grid-column:3;grid-row:1;font-size:12px;text-align:left}.farewell-rest{grid-column:3;grid-row:2;font-size:11px;text-align:left;margin-bottom:0}.farewell-extras{grid-column:2/4;grid-row:3;margin-top:13px}.farewell-extras .final-actions{margin:0}.finale-scene .section-title{font-size:25px}.finale-scene>.eyebrow{margin-bottom:3px}.finale-scene .highfive-area{margin:2px 0}.finale-scene .highfive-message{margin:5px 0}.shin-line{font-size:15px}.shin-props p{display:none}.sticker-workspace{max-width:440px}.sticker-palette button{width:31px;height:31px}}
@media(orientation:portrait) and (max-width:700px){.story-motifs .flower-one{left:-85px}.story-motifs .flower-two{right:-90px}.motif-pajamas{left:6%;top:18%}.topbar{left:18px;right:18px}.top-actions{gap:4px}.sound-control{font-size:11px;padding:7px 10px}.cake-stage.is-3d{height:37vh;min-height:250px}.cake-view{inset:0 0 38px}.cake-copy{padding:9px 0}.cake-copy .section-title{font-size:25px}.door-theatre{height:285px;border-radius:90px 90px 22px 22px}.pineapple-house{width:40%;left:4%;height:68%}.pineapple-door{left:12%;width:22%;height:36%}.house-sponge{left:4%;width:36%;height:53%}.rock-house{left:37%;width:29%;height:46%}.door-message{left:45%;right:8%;top:12%}.door-message p{font-size:15px}.door-bubble-message{top:9%;right:8%;width:42%;font-size:22px}.door-theatre:is([data-act=birthday],[data-act=together]) .door-message{top:63%;left:65%;right:2%}.door-theatre:is([data-act=birthday],[data-act=together]) .door-message p{font-size:11px}.bubble-post{height:38vh;min-height:255px}.bubble-post .sponge-actor{width:28%;left:0;height:55%}.bubble-post .patrick-actor{width:28%;right:-1%;height:58%}.bubble-letter-reveal{inset:17% 13% 13%;padding:12px}.bubble-letter-reveal strong{font-size:30px}.bubble-letter-reveal>span{font-size:11px}.bubble-post-controls{gap:7px 12px}.bubble-post-controls input{width:95px}.bubble-power{width:43px}.bubble-post-controls .text-button{font-size:11px;min-height:31px}.shin-vignette{height:310px}.shin-performer{left:13%;width:65%;height:74%}.shin-line{left:53%;right:5%;top:7%;font-size:16px}.shin-curtain{width:46%}.shin-vignette:not([data-act=peek]) .shin-performer{transform:translateX(-4%)}.shin-offering{left:60%;bottom:13%;width:42px;height:53px}.shin-props button{font-size:12px;padding:9px 14px;margin:0 2px}.snow-builder-main{gap:5px 12px}.snow-builder-main label{font-size:11px}.snow-builder-main input{width:80px}.snow-world:has(+.snow-tools+.snow-builder:not([hidden])){height:37vh;min-height:245px}.snow-accessories{gap:6px}.snow-accessories button{font-size:10px;padding:7px 10px}.farewell-scene>.section-title{font-size:29px}.farewell-wish{font-size:14px;margin:15px 0 10px}.farewell-rest{font-size:12px}.night-window{width:71px;height:78px}.farewell-extras{gap:1px 6px}.farewell-extras .text-button,.farewell-extras .secret-book-open{font-size:10px}.sticker-adjust{gap:8px}.sticker-adjust input[type=range]{width:72px}.sticker-caption input{font-size:12px}.card-tools{gap:7px}.card-tools .text-button{font-size:11px}.card-tools .button{font-size:11px}.sticker-workspace{max-width:100%}.spark-package{width:107px;height:68%}.spark-match span{font-size:9px}#gift-list{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.story-motifs *, .toon *, .shin-vignette *, .door-theatre *, .spark-match *, .night-window *, .scene>*{animation:none!important}.scene,.shin-head,.shin-curtain,.shin-performer,.house-sponge,.house-patrick,.pink-rock,.pineapple-door,.spark-package{transition:none!important}.scene.is-leaving{filter:none}}

body[data-scene=wish] .sound-control,body[data-scene=wish] .page-navigation,body[data-scene=wish] .appearance-open{background:#242839a8;color:#e8d8c1;border-color:#d6c5ae29;box-shadow:inset 0 1px #ffffff08}body[data-scene=wish] .sound-control[aria-pressed=true]{background:#11192799}body[data-scene=wish] .scene{filter:none}

.door-theatre:not([data-act=waiting]):not([data-act=rustle]) .pineapple-door{opacity:0}.door-theatre:is([data-act=patrick],[data-act=blow],[data-act=birthday],[data-act=together]) .pink-rock{transform:translate(-50%,50%) rotate(-65deg);opacity:.2}

.farewell-extras .final-actions{justify-content:center}
