@font-face{font-family:Noto Sans JP;src:url(noto-sans-jp.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
:root{--ink:#fffdf3;--ink2:#bcc3dc;--red:#ff73b6;--yellow:#f8ff51;--pink:#ff73b6;--paper:#020209;--body-font:'Noto Sans JP',sans-serif}
html,body{width:100%;height:100%;height:100dvh;min-height:0;overflow:hidden!important;overscroll-behavior:none;scroll-behavior:auto;background:#020209;color:#fffdf3;font-family:var(--body-font)}
button,a{-webkit-tap-highlight-color:transparent}button{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #81edff;outline-offset:4px}[hidden]{display:none!important}
#space-hero{position:fixed;inset:0;height:100%;height:100dvh;z-index:0;background:#020209;overflow:hidden;color:#fff}
.space-poster,.space-poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
#space-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;opacity:0;outline:none;cursor:grab;touch-action:none;transition:opacity .3s}
#space-canvas.is-ready{opacity:1}#space-canvas:active{cursor:grabbing}#space-canvas:focus-visible{outline:2px solid #81edff;outline-offset:-5px}
.space-shade{position:absolute;inset:65% 0 0;background:linear-gradient(transparent,#0006);pointer-events:none}
.space-controls{position:absolute;right:16px;top:max(16px,env(safe-area-inset-top));z-index:3;display:flex;gap:9px}.space-control{position:static;width:40px;height:40px;border-radius:0;border:1px solid #ddd;background:#1118;color:white;font:700 17px system-ui;backdrop-filter:none;display:grid;place-items:center}
.space-interaction-hint{position:absolute;bottom:max(104px,calc(env(safe-area-inset-bottom) + 90px));left:12px;right:12px;text-align:center;font:11px/1.6 var(--body-font);letter-spacing:.03em;color:#ddd;text-shadow:0 2px 6px #000;pointer-events:none}
.space-continue{position:absolute;left:50%;bottom:max(32px,calc(env(safe-area-inset-bottom) + 24px));display:flex;align-items:center;justify-content:center;gap:24px;min-width:180px;min-height:52px;padding:11px 23px;color:#111;background:var(--yellow);border:2px solid #111;outline:1px solid var(--yellow);border-radius:0;box-shadow:5px 5px 0 white;font:900 15px/1.5 var(--body-font);letter-spacing:.03em;text-shadow:none;transform:translateX(-50%) rotate(-2deg);cursor:pointer}
.space-continue span{display:inline;font:700 25px/1 system-ui}.space-continue:active{translate:3px 3px;box-shadow:2px 2px 0 white}
.space-postmark{position:fixed;left:20px;top:20px;z-index:5;pointer-events:none;color:#fff;font:900 17px/1.4 var(--body-font);text-shadow:2px 2px 0 #72284d;transform:rotate(-3deg)}
#overlay-tint{position:fixed;inset:0;z-index:5;background:#000;opacity:0;pointer-events:none;transition:opacity .2s}body[data-overlay-open=true] #overlay-tint{opacity:.10}body[data-overlay-open=true] .space-interaction-hint{opacity:0}
#birthday-app{position:fixed;inset:0;z-index:10;min-height:0;height:100%;height:100dvh;background:transparent;pointer-events:none;overflow:visible;isolation:auto}
#birthday-app,#birthday-app *,#dlg,#dlg *{font-family:var(--body-font)!important}#paper{display:none}#fx{pointer-events:none;position:fixed;inset:0;z-index:15}
.screen{position:absolute!important;inset:0!important;min-height:0!important;height:100%;height:100dvh;display:none;flex-direction:column;align-items:flex-start!important;justify-content:center!important;padding:74px 0 48px clamp(24px,5vw,80px)!important;opacity:1;pointer-events:none!important;overflow:visible!important;transition:none;background:transparent!important}
.screen.active{display:flex!important}.screen:focus{outline:none}
.popup-sheet{position:relative;flex-shrink:0;width:min(445px,calc(100vw - 72px));max-height:calc(100dvh - 132px);border:2px solid #fffdf3;background:#20214d;color:#fffdf3;box-shadow:7px 7px 0 #5158b8;pointer-events:auto;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#aaa3dc #20214d;transform:rotate(.45deg);animation:popup-in .2s steps(3,end);isolation:isolate;outline:none}
.popup-sheet:focus-visible{outline:none}.popup-bar{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:7px 9px 7px 16px;background:#4654ca;border-bottom:2px solid #fffdf3;color:#fffdf3}.popup-bar h2{margin:0;font-size:14px;line-height:1.4;font-weight:900}.popup-close{display:grid;place-items:center;flex:none;width:31px;height:29px;background:#22224b;border:1px solid white;color:white;font:700 23px/1 system-ui!important;padding:0}.popup-close:hover{background:#ba366b}.popup-content{padding:24px 24px 26px}
.tape,.intro-cats,.result-cats,.doodle,.underline,.title-wrap,.lottery::before,.lottery::after{display:none!important}
.btn{position:relative;padding:12px 18px;min-height:48px;font-size:15px;font-weight:800;background:#444cd1;color:#fffdf3;border:2px solid white;border-radius:0;box-shadow:4px 4px 0 #9d89e6;transform:none;transition:translate .08s;max-width:100%;line-height:1.55}
.btn.main,#spinBtn{background:var(--yellow);color:#111;border-color:#111;outline:1px solid var(--yellow);box-shadow:4px 4px 0 #fff}.btn.sub{background:#444cd1;color:white;border:2px solid white;border-radius:0;padding:10px 15px;font-size:13px;box-shadow:3px 3px 0 #9d89e6;min-height:44px}.btn:active{transform:none;translate:3px 3px;box-shadow:1px 1px 0 white}.btn:hover{filter:brightness(1.06)}.soft{opacity:0;transform:none;pointer-events:none}.soft.on{opacity:1;transform:none;pointer-events:auto}
.intro-content{width:100%;padding:5px 0 0;margin:0;max-width:none;flex-shrink:0}.env{width:100%;aspect-ratio:auto;min-height:130px;padding:2px 0;background:none;border-radius:0;box-shadow:none;transform:none}.env::before{content:none}.env-to{position:static;font-size:24px;font-weight:800;margin:0 0 24px;line-height:1.5}.sticker{position:static;display:inline-flex;align-items:center;justify-content:center;width:auto;height:auto;min-width:162px;min-height:53px;padding:11px 25px;border:2px solid #111;border-radius:0;background:var(--yellow);color:#111;outline:1px solid var(--yellow);box-shadow:5px 5px 0 #fff;font-size:18px;font-weight:900;line-height:1.5;transform:rotate(-2deg);animation:none}.sticker:active{translate:3px 3px;box-shadow:2px 2px 0 #fff}.intro-note{margin-top:14px;font-size:11px;color:#c6cce8}.resume-actions{gap:13px;margin-top:22px;width:100%}.resume-actions .btn{font-size:13px;padding:10px 13px}
.prelude{width:100%;padding:4px 0 7px;background:none;box-shadow:none;transform:none}.prelude h2{font-size:23px;font-weight:800;margin:0}.prelude p{font-size:12px;color:#c7cce3}.paw-loader{margin:15px 0;color:var(--pink);height:58px}.paw-loader svg{width:28px;height:32px}
.to-line{margin:0 0 18px;font-size:24px;line-height:1.4;font-weight:800}.to-line small{display:block;margin:8px 0 0;color:#c4caeb;font-size:11px;letter-spacing:.05em}.letter{width:100%;margin:0 0 24px;padding:0;background:none;box-shadow:none;transform:none;font-size:18px}.letter::before{display:none}.msg{white-space:pre-wrap;line-height:2;min-height:0;font-size:19px;letter-spacing:.02em;overflow-wrap:anywhere}.msg .ln{display:block;transform:none;line-height:2;transition:opacity .35s}.message-part{display:block}.sign{font-size:16px;font-weight:700;margin-top:20px;text-align:right}.sign::before{content:'— ';color:var(--pink)}#toWheel{font-size:14px;margin-bottom:3px}
.w-head{display:none}.lottery{position:relative;width:100%;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;transform:none;flex-shrink:0}.lottery-meta{font-size:9px;color:#c2c9eb;border-bottom:1px dashed #858bc2;padding-bottom:13px}.slot{margin:16px 0 12px;height:176px;border:2px solid #a9afec;border-radius:0;background:#11112e;box-shadow:none}.slot::before{inset:54px 0;border-color:#fa90c6;background:#6a36582b}.slot::after{top:78px;border-left-color:var(--yellow)}.slot-ghost{height:43px;line-height:43px;font-size:15px;color:#e6e8ff;opacity:.27}.slot-current{font-size:25px;line-height:1.35;min-height:70px;padding:8px 10px;color:white;font-weight:800}.slot-idle{font-size:32px;color:var(--yellow)}.lottery.running .slot-current{color:#fff}.collection-count{font-size:11px;color:#d0d4ed;gap:8px}.lottery .collection-count{border-top:1px dashed #858bc2;margin-top:12px;padding-top:11px}.lottery-bottom{border-top:0;margin-top:18px;padding-top:0}.lottery #spinBtn{min-width:175px;min-height:51px;padding:12px 21px;font-size:16px}
#s-result .popup-content{padding-top:18px}.reveal{margin:0;gap:0}.wait{font-size:30px;line-height:1.6;margin:35px 0}.gift-heading{font-size:24px;font-weight:900;line-height:1.5;color:var(--pink);transform:rotate(-2deg);animation:none;text-shadow:2px 2px 0 #152c9a}.polaroid{width:min(232px,90%);padding:9px;background:white;color:#15151c;margin:18px 0 17px;box-shadow:4px 4px 0 #827fc3;transform:rotate(-1.2deg);animation:none}.photo{width:100%;aspect-ratio:1;max-height:215px;background:#fff;overflow:hidden;font-size:70px}.photo img{object-fit:contain}.polaroid .cap{font-size:16px;line-height:1.45;margin:9px 0 3px;color:#15151c}.gift-brand{font-size:11px;font-weight:700;line-height:1.4;color:inherit}.gift-variant,.image-note{font-size:11px;line-height:1.5;margin-top:6px;color:inherit}.polaroid .official-name{font-size:12px;line-height:1.55}.polaroid.is-sample{width:min(200px,85%)}.prize-cmt{font-size:14px;line-height:1.8;margin-top:10px;max-width:100%}.result-count{margin:1px 0 18px}.row{width:100%;gap:13px}.row .btn{max-width:100%}.choices-heading{display:none}.choice-list{width:100%;gap:13px}.choice-item{width:100%;background:#f5f4dd;color:#141820;border:2px solid #111;border-radius:0;box-shadow:3px 3px 0 #807ec8;padding:12px;gap:12px}.choice-thumb{width:60px;height:60px;background:#fff}.choice-thumb img{object-fit:contain}.choice-brand,.choice-variant,.choice-note{font-size:10px;color:#344151}.choice-name{font-size:15px;font-weight:700;line-height:1.5}.choice-name.official-name{font-size:11px;line-height:1.5}.choice-note{color:#7a2149}#backFromChoices{margin-top:20px}
#s-ticket .popup-sheet{background:#baffd5;color:#11151b;border-color:#111;outline:1px solid #baffd5;box-shadow:7px 7px 0 #b8427e;scrollbar-color:#557562 #baffd5;transform:rotate(-.6deg)}#s-ticket .popup-bar{color:#111;background:#a0ebbf;border-color:#111}#s-ticket .popup-close{background:#baffd5;border-color:#111;color:#111}#s-ticket .popup-close:hover{background:#f4ff93}#s-ticket .popup-content{padding:19px 22px 24px}.ticket{width:100%;padding:0 0 14px;margin:0;background:none;border:0;border-radius:0;box-shadow:none;transform:none;animation:none}.tk-title{font-size:0;text-align:left;line-height:1.4}.tk-title small{font-size:18px;font-weight:800;color:#141a15;margin:0}.tk-item{gap:15px;padding:0;margin:21px 0 16px;background:none;border-radius:0}.tk-thumb{width:104px;height:104px;flex:none;padding:3px;border:2px solid #171b18;background:white;box-shadow:3px 3px 0 #649475;transform:rotate(-3deg);font-size:48px}.tk-thumb img{object-fit:contain}.tk-name{font-size:19px;font-weight:800;line-height:1.6;overflow-wrap:anywhere}.tk-name.official-name{font-size:12px;line-height:1.6}.tk-description .gift-brand{font-size:11px;color:#244f37}.tk-description .gift-variant,.tk-description .image-note{font-size:10px;color:#244f37}.tk-message{font-size:15px;line-height:1.9;text-align:left;font-weight:700;color:#15191a;margin:14px 0 18px}.tk-rows{border-top:2px solid #31553e;padding-top:13px;padding-right:65px;font-size:12px;line-height:2}.tk-rows b{color:#284733;width:6.5em;font-size:11px}.hanko{right:-4px;bottom:-17px;width:84px;height:84px;border:3px solid #c82548;border-radius:48% 52% 46% 53%;outline:1px solid #c82548;outline-offset:3px;color:#c82548;font-size:10px;font-weight:800;line-height:1.05;display:flex;flex-direction:column;justify-content:center;gap:3px;background:#baffd5dd;opacity:0}.hanko::before{content:'ずっと\a有効';white-space:pre;font-size:20px;font-weight:900;line-height:1.1}.cut{font-size:11px;line-height:1.8;color:#213b2b;margin:21px 0 0;text-align:left;width:100%}#toPlan{font-size:13px;margin-top:17px;padding:11px 14px;background:#f8ff51;color:#111;border-color:#111;box-shadow:4px 4px 0 #bd477e}#replayBtn{background:#4c54c9;color:white;border-color:white;font-size:12px;margin-top:17px!important}
.day-plan{width:100%;padding:0;margin:0;background:none;transform:none;box-shadow:none;border-radius:0}.plan-heading{display:none}.plan-date{margin:0 0 23px;font-size:13px;color:#c6cff2;text-align:left}.day-stops{padding-left:21px}.day-stops::before{top:9px;bottom:33px;border-left:2px dashed #8b91cd;left:4px}.day-stops li{padding-left:8px;margin-bottom:23px}.day-stops li::before{border:2px solid white;border-radius:0;background:#ff7fbd;transform:rotate(12deg);width:11px;height:11px;left:-22px;top:5px}.day-stops li:nth-child(2)::before{background:#f8ff51}.day-stops li:nth-child(3)::before{background:#80dfff}.day-stops time{font-size:14px;font-weight:800;color:#f8ff51}.day-stops h3{font-size:20px;font-weight:800;line-height:1.6;margin-top:5px;color:white}.plan-gift{background:#12132d;border:1px solid #656b9e;color:#d7ddf8;font-size:11px;padding:9px 10px;border-radius:0;line-height:1.7}.plan-phrase{display:inline-block}#backToTicket{margin-top:21px;font-size:13px}
#dlg{position:fixed;inset:0;z-index:90;background:#0007;pointer-events:auto;display:none;padding:24px}#dlg.on{display:grid}.dlg-box{background:#f8ff8a;color:#16151d;border:2px solid #111;border-radius:0;outline:1px solid #f8ff8a;box-shadow:6px 6px 0 #d04b8b;padding:26px 20px 23px;width:min(375px,100%);max-height:80dvh;overflow:auto;transform:rotate(-1.2deg);animation:popup-in .15s steps(2,end)}.dlg-txt{font-size:16px;font-weight:700;line-height:1.8;overflow-wrap:anywhere;color:#16151d;margin:0 0 23px}.dlg-btns{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:16px}.dlg-btns .btn{min-width:88px;font-size:14px}.dlg-btns .btn.main{background:#5159d6;color:white;border-color:white;outline:none;box-shadow:3px 3px 0 #202246}.dlg-btns .btn.sub{background:transparent;color:#111;border-color:#111;box-shadow:3px 3px 0 #858740}
#mute,.space-in-view #mute{position:absolute;left:auto;right:116px;top:max(16px,env(safe-area-inset-top));z-index:3;width:36px;height:40px;border:1px solid #ddd;border-radius:0;box-shadow:none;background:#1118;color:white;font-size:18px;pointer-events:auto}#mute.on{display:grid;place-items:center}
.space-credit{position:fixed;bottom:max(13px,env(safe-area-inset-bottom));left:17px;z-index:6;max-width:min(440px,calc(100% - 34px));font:10px/1.7 var(--body-font);color:#ddd;pointer-events:auto}.space-credit summary{cursor:pointer;text-shadow:0 1px 3px #000;padding:2px 0;list-style:revert}.space-credit[open]{background:#101021f5;border:1px solid #ccc;padding:10px 13px}.space-credit .model-credit{font:10px/1.7 var(--body-font);padding-top:10px}.space-credit p{margin-top:7px}body[data-overlay-open=true] .space-credit{visibility:hidden}
@keyframes popup-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@media(orientation:portrait),(max-width:720px){.screen{align-items:center!important;justify-content:flex-end!important;padding:74px 17px max(27px,calc(env(safe-area-inset-bottom) + 18px))!important}.popup-sheet{width:min(430px,100%);max-height:52dvh;box-shadow:5px 5px 0 #5158b8;transform:rotate(.35deg)}.popup-content{padding:20px 19px 22px}.popup-bar{min-height:41px;padding:6px 8px 6px 13px}.popup-bar h2{font-size:13px}.popup-close{width:30px;height:28px}.space-postmark{left:16px;top:20px;font-size:14px}.space-controls{right:14px;gap:8px}.space-control{width:36px;height:36px;font-size:16px}#mute,.space-in-view #mute{right:102px;width:34px;height:36px;font-size:16px}.space-interaction-hint{bottom:105px;font-size:10px}.space-continue{min-width:169px;min-height:49px;padding:10px 21px;font-size:14px}.env-to{font-size:22px;margin-bottom:20px}.env{min-height:116px}.sticker{font-size:17px;min-width:155px;min-height:49px}.intro-note{margin-top:13px;font-size:10px}.intro-content{padding-top:1px}.resume-actions{margin-top:19px;gap:12px}.to-line{font-size:22px;margin-bottom:15px}.to-line small{font-size:10px}.msg{font-size:18px}.sign{font-size:15px;margin-top:16px}.letter{margin-bottom:22px}.slot{height:156px}.slot::before{inset:43px 0}.slot::after{top:68px}.slot-current{font-size:24px}.slot-ghost{height:37px;line-height:37px;font-size:14px}.lottery-meta{font-size:8px}.lottery #spinBtn{font-size:15px;min-height:48px}.gift-heading{font-size:22px}.polaroid{width:min(200px,87%);margin-top:15px}.photo{max-height:184px}.polaroid.is-sample{width:min(180px,82%)}.polaroid .cap{font-size:15px}.polaroid .official-name{font-size:11px}.row .btn{font-size:14px}.row .btn.sub{font-size:12px}.choice-item{padding:10px;gap:10px}.choice-thumb{width:57px;height:57px}.choice-name{font-size:14px}.choice-name.official-name{font-size:10px}.choice-brand,.choice-variant,.choice-note{font-size:10px}#s-ticket .popup-content{padding:18px 18px 24px}.tk-title small{font-size:17px}.tk-thumb{width:88px;height:88px}.tk-item{gap:12px;margin:19px 0 15px}.tk-name.official-name{font-size:11px}.tk-name{font-size:18px}.tk-message{font-size:13px;line-height:1.85}.tk-rows{font-size:11px;padding-right:58px}.tk-rows b{font-size:10px;width:6.2em}.hanko{width:73px;height:73px;right:-1px;bottom:-15px;font-size:9px;gap:2px}.hanko::before{font-size:18px}.cut{font-size:10px;margin-top:19px}.day-stops h3{font-size:19px}.day-stops time{font-size:13px}.day-stops li{margin-bottom:20px}.plan-gift{font-size:10px}.space-credit{font-size:9px;left:14px;bottom:11px}.space-credit .model-credit{font-size:9px}.dlg-box{padding:24px 18px 21px}.dlg-txt{font-size:15px}}
@media(max-width:360px){.screen{padding-right:14px!important;padding-left:14px!important}.popup-content{padding:19px 16px 21px}.popup-bar h2{font-size:12px}.space-postmark{font-size:12px;left:13px;top:22px}.to-line{font-size:20px}.msg{font-size:17px}.btn{font-size:13px;padding:11px 14px}.popup-sheet{max-height:54dvh}.tk-thumb{width:74px;height:74px}.tk-name.official-name{font-size:10px}.tk-description .gift-brand{font-size:10px}.tk-rows{padding-right:55px;font-size:10px}.tk-rows b{font-size:9px}#s-ticket .popup-content{padding-left:16px;padding-right:16px}.hanko{width:66px;height:66px}.hanko::before{font-size:16px}.dlg-txt{font-size:14px}.space-controls{right:12px;gap:7px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}#fx{display:none}.hanko.on{opacity:1;transform:rotate(-14deg)}.msg .ln.on,.sign.on{opacity:1}.draw path{stroke-dashoffset:0}}

@media(orientation:portrait),(max-width:720px){#s-plan .popup-content{padding-top:16px;padding-bottom:18px}#s-plan .plan-date{margin-bottom:18px}#s-plan .day-stops li{margin-bottom:16px}#s-plan .day-stops li:last-child{margin-bottom:0}#backToTicket{margin-top:16px}}
.space-credit a{color:#b9ddff}
#fx{width:100%;height:100%;height:100dvh}

/* Fit the card to the viewport and use buttons to page any longer content. */
:root{--card-limit:calc(100dvh - 132px)}
.popup-sheet{display:flex;flex-direction:column;max-height:var(--card-limit);overflow:hidden;scrollbar-width:none}
.popup-bar{position:relative;flex:none}.popup-content{flex:none;min-height:0;padding:20px 22px 22px}
[data-card-off],[data-card-group-off]{display:none!important}
.card-pages{display:flex;align-items:center;justify-content:space-between;gap:8px;flex:none;min-height:57px;padding:7px 13px 10px;background:#181a3c;border-top:1px solid #848bc0}
.card-pages button{min-height:36px;padding:6px 9px;border:1px solid #fff;background:#454ec5;color:white;font:700 12px/1.5 var(--body-font);cursor:pointer;border-radius:0}
.card-pages button:disabled{opacity:.28;cursor:default}.card-page-count{font-size:11px;white-space:nowrap;color:white}
#s-ticket .card-pages{background:#a6e5bd;border-color:#5a8669}#s-ticket .card-page-count{color:#182b1b}
.ticket-details{position:relative;padding-bottom:10px}.ticket-details .hanko{right:2px;bottom:-2px}
.polaroid,.polaroid.is-sample{display:grid;grid-template-columns:108px 1fr;gap:12px;width:100%;margin:15px 0 14px;padding:9px;text-align:left;align-items:center}
.polaroid .photo{height:108px;aspect-ratio:1;font-size:50px}.polaroid .cap{margin:0;min-width:0}.polaroid .official-name{font-size:11px}.polaroid .gift-brand{font-size:10px}
#s-result .row{gap:12px}.result-count{margin-bottom:15px}.gift-heading{font-size:21px}
.tk-item{margin:16px 0 12px}.tk-message{margin:10px 0 13px}.cut{margin-top:13px}#toPlan{margin-top:13px}#replayBtn{margin-top:13px!important}
#space-hero[data-scene-state=loading] .space-poster{visibility:hidden}
@media(orientation:portrait),(max-width:720px){
 :root{--card-limit:calc(100dvh - 132px)}
 .screen{padding:94px 17px max(27px,calc(env(safe-area-inset-bottom) + 18px))!important}
 .popup-sheet{max-height:var(--card-limit)}.popup-content{padding:18px 18px 20px}
 .polaroid,.polaroid.is-sample{grid-template-columns:88px 1fr;gap:10px;margin:13px 0;padding:8px}
 .polaroid .photo{height:88px;max-height:none}.polaroid .cap{font-size:14px}.polaroid .official-name{font-size:10px;line-height:1.55}
 .gift-heading{font-size:20px}.tk-message{font-size:13px}.ticket{padding-bottom:9px}.tk-rows{font-size:11px}
 .day-stops li{margin-bottom:16px}.day-stops h3{font-size:18px}.plan-date{margin-bottom:16px}
 #s-ticket .popup-content{padding:17px 18px 19px}
 .choice-list{gap:10px}.choice-item{padding:9px;gap:10px}.choice-thumb{width:48px;height:48px}
}
@media(max-height:650px){
 :root{--card-limit:calc(100dvh - 102px)}
 .screen{padding-top:72px!important;padding-bottom:20px!important}
 .popup-content,#s-ticket .popup-content{padding:14px 16px 16px}
 .popup-bar{min-height:37px;padding:5px 8px 5px 12px}.popup-bar h2{font-size:12px}
 .card-pages{min-height:49px;padding:5px 10px 7px}.card-pages button{min-height:34px;font-size:11px}
 .to-line{font-size:21px;margin-bottom:12px}.to-line small{margin-top:5px}.msg,.msg .ln{font-size:16px;line-height:1.85}.sign{font-size:14px;margin-top:12px}.letter{margin-bottom:16px}
 .btn,.btn.sub{font-size:12px;min-height:40px;padding:9px 12px}.sticker{min-height:46px;font-size:16px}.env{min-height:100px}.env-to{margin-bottom:17px;font-size:21px}
 .slot{height:116px;margin:11px 0}.slot::before{inset:33px 0}.slot::after{top:46px}.slot-ghost{height:29px;line-height:29px;font-size:12px}.slot-current{font-size:21px;min-height:54px}
 .lottery-meta{padding-bottom:8px}.lottery .collection-count{padding-top:8px;margin-top:9px}.lottery-bottom{margin-top:12px}.lottery #spinBtn{min-height:42px;padding:9px 16px;font-size:14px}
 .tk-thumb{width:70px;height:70px}.tk-item{gap:10px;margin:13px 0 9px}.tk-title small{font-size:16px}.tk-name{font-size:17px}.tk-name.official-name{font-size:10px}.tk-description .gift-brand{font-size:9px}.tk-description .gift-variant,.tk-description .image-note{font-size:10px}.tk-rows{padding-top:9px;font-size:10px}.tk-rows b{font-size:9px}.tk-message{font-size:12px}.hanko{width:60px;height:60px}.hanko::before{font-size:15px}
 .day-stops h3{font-size:17px}.day-stops time{font-size:12px}.day-stops li{margin-bottom:13px}.plan-gift{font-size:10px;padding:7px 8px}.plan-date{font-size:12px;margin-bottom:13px}
 .polaroid,.polaroid.is-sample{grid-template-columns:75px 1fr;gap:9px;margin:10px 0}.polaroid .photo{height:75px}.gift-heading{font-size:18px}.result-count{margin-bottom:12px}.prize-cmt{font-size:12px}
 .choice-thumb{width:40px;height:40px}.choice-item{padding:8px;gap:9px}.choice-name{font-size:13px}.choice-name.official-name{font-size:10px}.choice-brand,.choice-variant,.choice-note{font-size:9px}#backFromChoices{margin-top:14px}
}
@media(orientation:landscape) and (max-height:500px){
 :root{--card-limit:calc(100dvh - 30px)}
 .screen{padding:14px 0 16px 22px!important;justify-content:center!important;align-items:flex-start!important}
 .popup-sheet{width:min(420px,58vw);max-height:var(--card-limit);transform:none}
 .popup-content,#s-ticket .popup-content{padding:12px 15px 14px}
 .popup-bar{min-height:35px}.popup-close{height:25px;width:28px}.env{min-height:88px}.env-to{font-size:20px;margin-bottom:11px}.intro-note{margin-top:9px}.resume-actions{margin-top:14px}
 .dlg-box{max-height:calc(100dvh - 32px);overflow:hidden;padding:17px}.dlg-txt{font-size:13px;margin-bottom:16px}
}

/* A plain, silent first screen. The 3D scene is created only after the tap. */
#sound-gate{position:fixed;inset:0;z-index:100;background:#000;color:#fff}
#sound-start{width:100%;height:100%;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;border:0;border-radius:0;box-shadow:none;background:#000;color:#fff;padding:28px;cursor:pointer;font-family:var(--body-font);transform:none}
#sound-start:disabled{opacity:1;cursor:wait}#sound-start:focus-visible{outline:2px solid #fff;outline-offset:-12px}
.sound-heading{font-size:clamp(20px,4.7vw,26px);font-weight:400;letter-spacing:.08em;line-height:1.7}.sound-caption{font-size:12px;font-weight:400;letter-spacing:.03em;line-height:1.7;color:#a9a9a9}
body[data-experience-started=false] #space-hero,body[data-experience-started=false] #birthday-app,body[data-experience-started=false] .space-credit,body[data-experience-started=false] #overlay-tint{visibility:hidden}
/* Only the entry into the letter is quiet; card actions keep their existing design. */
.space-continue{min-width:0;min-height:44px;gap:12px;padding:8px 16px;border:1px solid #ffffff42;border-radius:3px;outline:none;box-shadow:none;background:#11131dcc;color:#ececf2;font:500 12px/1.6 var(--body-font);letter-spacing:.035em;transform:translateX(-50%);text-shadow:none}
.space-continue span{font:400 17px/1 system-ui}.space-continue:hover{background:#202331df;border-color:#ffffff78}.space-continue:active{translate:0 1px;box-shadow:none}.space-continue:focus-visible{outline:2px solid #e6f7ff;outline-offset:4px}
/* The photo is exclusively a failure fallback, never a backdrop beneath the 3D fade-in. */
.space-poster{visibility:hidden}
#space-hero[data-scene-state=fallback] .space-poster{visibility:visible}

/* Faceted objects: the same warm gold, pink and cyan as the low-poly 3D scene.
   Shading is static CSS; the text stays full resolution and all game DOM stays intact. */
#birthday-app,#dlg{
 --object-face:#292832;--object-side:#101118;--object-ink:#fff3e1;
 --object-gold:#ffdf9b;--object-pink:#eda5c3;--object-cyan:#9ce0eb;
 --object-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath fill='%23fff' fill-opacity='.018' d='M0 0h2v2H0zm4 4h2v2H4z'/%3E%3Cpath fill='%23000' fill-opacity='.035' d='M4 0h2v2H4zM0 4h2v2H0z'/%3E%3C/svg%3E");
 color:var(--object-ink);
}
#birthday-app .popup-sheet,#dlg .dlg-box{
 background-color:var(--object-face);
 background-image:var(--object-grain),linear-gradient(145deg,#51404b 0 9%,transparent 9% 72%,#1b2530 72% 100%);
 border:2px solid #c8b8b1;border-right:6px solid #433845;border-bottom:7px solid #12141c;
 border-radius:2px;outline:none;color:var(--object-ink);
 box-shadow:2px 2px 0 #72586a,5px 5px 0 #222331,9px 11px 0 #0006,inset 2px 2px 0 #ffffff12;
 transform:rotate(-.55deg);animation:object-arrive .25s cubic-bezier(.2,.8,.2,1);
}
#s-wheel .popup-sheet{transform:rotate(.65deg)}
#s-result .popup-sheet{transform:rotate(-.8deg)}
#s-ticket .popup-sheet{transform:rotate(.45deg)}
#birthday-app .popup-bar{
 padding-top:9px;padding-bottom:10px;background:linear-gradient(155deg,#3f3540 0 55%,#302c36 55%);
 border-bottom:2px solid #17161e;box-shadow:0 1px 0 #75616b;color:var(--object-gold);
}
#birthday-app .popup-bar h2{font-size:17px;font-weight:900;letter-spacing:.035em;text-shadow:1px 1px 0 #b48358,2px 2px 0 #67432f,3px 3px 0 #11131b}
#birthday-app .popup-close{
 width:31px;height:30px;border:2px solid #f1bad0;border-right-color:#95677f;border-bottom-color:#643e59;
 background:#c589a6;color:#271e2a;box-shadow:2px 2px 0 #14131b;border-radius:1px;
}
#birthday-app .popup-close:hover{background:#f0b3d0}
#birthday-app .popup-content{position:relative}
#birthday-app .btn,#birthday-app .btn.sub,#birthday-app .sticker,#birthday-app #replayBtn,#dlg .btn{
 --button-face:#514b60;--button-light:#a69bad;--button-edge:#342d42;--button-deep:#181720;
 color:#fff1e0;background:var(--button-face);background-image:var(--object-grain),linear-gradient(155deg,#ffffff0c 0 17%,transparent 17% 80%,#00000012 80%);
 border:2px solid var(--button-light);border-right:4px solid var(--button-edge);border-bottom:5px solid var(--button-deep);
 border-radius:2px;outline:none;box-shadow:2px 2px 0 #0d0e17,3px 4px 0 #0005;text-shadow:1px 1px 0 #0006;transform:none;
 transition:translate .08s,background-color .08s;font-weight:800;
}
#birthday-app .btn.main,#birthday-app #spinBtn,#birthday-app .sticker,#birthday-app #toPlan,#dlg .btn.main{
 --button-face:#e9b875;--button-light:#ffe6ad;--button-edge:#ab764d;--button-deep:#674633;
 color:#332539;text-shadow:0 1px 0 #fff5;
}
#birthday-app .btn:hover,#birthday-app .sticker:hover,#dlg .btn:hover{filter:none;background-color:color-mix(in srgb,var(--button-face),white 9%)}
#birthday-app .btn:active,#birthday-app .sticker:active,#birthday-app .popup-close:active,#dlg .btn:active{translate:2px 2px;box-shadow:1px 1px 0 #0b0b12}
#birthday-app .btn:focus-visible,#birthday-app .sticker:focus-visible,#birthday-app .popup-close:focus-visible,#dlg button:focus-visible{outline:2px solid #b9f2f5;outline-offset:4px}
#birthday-app .btn.soft:not(.on){pointer-events:none}
/* A folded, chunky envelope. Its facets sit behind the original recipient/button. */
#birthday-app .env{
 position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;
 min-height:190px;padding:24px 14px 22px;background:#ceadc6;
 background-image:var(--object-grain),linear-gradient(32deg,#d9bbcf 0 34%,transparent 34%),linear-gradient(-32deg,#b991b0 0 34%,transparent 34%);
 border:2px solid #f3d7e6;border-right:6px solid #916b8a;border-bottom:7px solid #5c415e;
 border-radius:2px;box-shadow:4px 5px 0 #15121d;transform:rotate(-1.1deg);
}
#birthday-app .env::before{content:'';position:absolute;inset:0 0 28%;z-index:-1;background:linear-gradient(140deg,#f2d6e3 0 48%,#e1bed2 48%);clip-path:polygon(0 0,100% 0,50% 84%);border:0}
#birthday-app .env-to{color:#3b2945;font-weight:900;font-size:24px;text-shadow:1px 1px 0 #ffebf5;margin:0 0 24px;text-align:center}
#birthday-app .sticker{min-width:142px;min-height:48px;padding:9px 20px;transform:rotate(1.7deg);font-size:16px}
#birthday-app .intro-note{color:#bfb3bf;font-size:10px;letter-spacing:.04em;text-align:right;margin-top:14px}
#birthday-app .to-line,#birthday-app .prelude h2,#birthday-app .gift-heading,#birthday-app .tk-title small{
 color:var(--object-gold);font-weight:900;text-shadow:1px 1px 0 #b8885f,2px 2px 0 #62452f,3px 3px 0 #14121d;
}
#birthday-app .to-line small{color:#c6b8c8;text-shadow:none;letter-spacing:.04em;font-weight:500}
#birthday-app .msg{color:#fff3e3;font-weight:500;letter-spacing:.015em}
#birthday-app .msg .ln{line-height:1.95}
#birthday-app .sign{color:#edb2cc;text-shadow:1px 1px 0 #603d57}
#birthday-app .sign::before{color:#9edce5}
#birthday-app .paw-loader{color:var(--object-pink);filter:none}
#birthday-app .prelude p{color:#c6b8c8}
/* The lottery is an inset toy reel, with a bright, broad faceted surround. */
#birthday-app .lottery-meta{color:#bdb3c7;border-bottom:1px solid #605266;letter-spacing:.1em}
#birthday-app .slot{
 position:relative;margin-top:17px;border:6px solid #deba85;border-top-color:#ffe1a1;border-left-color:#edc996;
 border-right-color:#a57553;border-bottom:9px solid #6f4d3d;border-radius:2px;
 background:#141a25;background-image:var(--object-grain),linear-gradient(160deg,#394052 0 13%,#1d222f 13% 85%,#10141e 85%);
 box-shadow:2px 3px 0 #11121b,inset 4px 5px 0 #080b14;
}
#birthday-app .slot::before{inset:31% 0;border-top:2px solid #e7b0c2;border-bottom:3px solid #644055;background:#9e69762b;box-shadow:0 -2px 0 #0005}
#birthday-app .slot::after{top:calc(50% - 8px);border-left:10px solid #f5ca87;border-top:8px solid transparent;border-bottom:8px solid transparent}
#birthday-app .slot-current{color:#fff0d4;font-weight:900;text-shadow:1px 1px 0 #b48253,2px 2px 0 #755137,3px 3px 0 #0a0d17}
#birthday-app .slot-idle{color:#ffdea1;text-shadow:1px 1px 0 #b17c4d,2px 2px 0 #61452d,3px 3px 0 #090d17}
#birthday-app .slot-ghost{color:#a0bed2;opacity:.38;filter:none;text-shadow:1px 1px 0 #0a0e19}
#birthday-app .lottery.running .slot-current{color:#fff1db}
#birthday-app .collection-count{color:#cbbdd0}
#birthday-app .lottery .collection-count{border-top:1px solid #605266}
#birthday-app .collection-count .seen-types{color:#a7dfdf}
#birthday-app .gift-heading{transform:rotate(-1deg)}
/* Prize photos stay accurate; only their holders inherit the solid-object finish. */
#birthday-app .polaroid,#birthday-app .polaroid.is-sample,#birthday-app .choice-item{
 color:#fff1e0;background:#39333f;background-image:var(--object-grain),linear-gradient(145deg,#4d3d4c 0 13%,transparent 13%);
 border:2px solid #bba2ad;border-right:4px solid #665364;border-bottom:5px solid #1a1723;
 border-radius:2px;box-shadow:2px 3px 0 #0e111a;transform:none;
}
#birthday-app .polaroid .cap,#birthday-app .choice-name{color:#ffe7bf;text-shadow:1px 1px 0 #352531}
#birthday-app .polaroid .gift-brand,#birthday-app .polaroid .gift-variant,#birthday-app .polaroid .image-note,
#birthday-app .choice-brand,#birthday-app .choice-variant,#birthday-app .choice-note{color:#d1c1d2;text-shadow:none}
#birthday-app .photo,#birthday-app .choice-thumb,#birthday-app .tk-thumb{background:#ece7e6;border-radius:1px;box-shadow:inset 2px 2px 0 #0003;border:2px solid #b8a8b4}
#birthday-app .prize-cmt{color:#f5dbe5}
#birthday-app .choice-item:hover{background-color:#51404e}
#birthday-app .wait{color:#eac797;text-shadow:2px 2px 0 #69483b}
/* The ticket uses the same material, with a faceted gold seal instead of ink. */
#s-ticket .popup-sheet{color:var(--object-ink);outline:none;background-color:#302b35;background-image:var(--object-grain),linear-gradient(145deg,#56424b 0 9%,transparent 9% 72%,#242934 72%);border-color:#c8b8b1 #433845 #12141c #c8b8b1;box-shadow:2px 2px 0 #72586a,5px 5px 0 #222331,9px 11px 0 #0006}
#s-ticket .popup-bar{color:var(--object-gold);background:linear-gradient(155deg,#51404b 0 55%,#3b303c 55%);border-bottom-color:#17161e}
#s-ticket .tk-name{color:#ffe9ce;text-shadow:1px 1px 0 #5b3f43}
#s-ticket .tk-description .gift-brand,#s-ticket .tk-description .gift-variant,#s-ticket .tk-description .image-note{color:#cdbbce}
#s-ticket .tk-thumb{border:2px solid #d9c5cb;border-right:4px solid #8e7283;border-bottom:5px solid #554052;box-shadow:2px 3px 0 #15131d;transform:rotate(-1.5deg)}
#s-ticket .tk-message{color:#fff0df;font-weight:500}
#s-ticket .tk-rows{border-top:1px solid #806776;color:#f0dfdf}
#s-ticket .tk-rows b{color:#c4b3c8;font-weight:500}
#s-ticket .hanko{
 border:3px solid #ffdfa2;border-right-color:#a97348;border-bottom:5px solid #674831;
 border-radius:1px;outline:none;outline-offset:0;color:#4c3040;background:#e8b578;
 background-image:var(--object-grain),linear-gradient(135deg,#ffdea1 0 22%,transparent 22% 78%,#cc955e 78%);
 box-shadow:3px 3px 0 #17131f;text-shadow:0 1px 0 #fff5;transform:rotate(-8deg);
}
#s-ticket .hanko.on{animation:seal-settle .35s .25s both}
#s-ticket .cut{color:#cdb9c9}
#birthday-app .plan-date{color:#cab9ce;letter-spacing:.035em}
#birthday-app .day-stops::before{border-left:2px solid #65516d}
#birthday-app .day-stops li::before{
 width:12px;height:12px;border:2px solid #f9dba6;border-right-color:#a17656;border-bottom:3px solid #795742;
 border-radius:1px;background:#eac18a;transform:rotate(-10deg);box-shadow:2px 2px 0 #15151f;
}
#birthday-app .day-stops li:nth-child(2)::before{background:#eda9c7;border-color:#ffd0e5 #ae7397 #744a70 #ffd0e5;transform:rotate(12deg)}
#birthday-app .day-stops li:nth-child(3)::before{background:#9edbe5;border-color:#c8f3ef #6d9cae #3b5e78 #c8f3ef;transform:rotate(-6deg)}
#birthday-app .day-stops time{color:#eac493;font-weight:800}
#birthday-app .day-stops h3{color:#fff0e0;text-shadow:1px 1px 0 #785668,2px 2px 0 #14131e}
#birthday-app .plan-gift{color:#cddfe4;background:#1b222e;border:2px solid #6c8795;border-right-color:#415367;border-bottom:4px solid #111824;border-radius:1px;box-shadow:none}
#birthday-app .card-pages,#s-ticket .card-pages{background:#211e2a;background-image:var(--object-grain);border-top:1px solid #706070}
#birthday-app .card-page-count,#s-ticket .card-page-count{color:#cbbcd2}
#birthday-app .card-pages button{border:1px solid #9a8d9f;border-right:3px solid #4a4058;border-bottom:3px solid #14121e;border-radius:1px;background:#484051;color:#eee2ef;box-shadow:1px 1px 0 #10121b}
#birthday-app .card-pages button:disabled{opacity:.35}
#dlg{background:#06040b80}
#dlg .dlg-box{color:var(--object-ink);transform:rotate(-.6deg)}
#dlg .dlg-txt{color:#fff1df;font-weight:600}
#dlg .btn.sub{color:#eee1e9}
@keyframes object-arrive{from{opacity:0;translate:0 10px;scale:.975}to{opacity:1;translate:0 0;scale:1}}
@keyframes seal-settle{from{opacity:0;transform:translateY(-7px) rotate(-16deg) scale(1.1)}to{opacity:1;transform:translateY(0) rotate(-8deg) scale(1)}}
@media(orientation:portrait),(max-width:720px){
 #birthday-app .popup-bar h2{font-size:16px}
 #birthday-app .env{min-height:173px;padding:20px 12px}
 #birthday-app .env-to{font-size:23px;margin-bottom:21px}
 #birthday-app .sticker{font-size:16px}
 #birthday-app .slot{border-width:5px;border-bottom-width:8px}
 #birthday-app .popup-sheet{transform:rotate(-.35deg)}
 #s-wheel .popup-sheet{transform:rotate(.4deg)}
 #s-ticket .popup-sheet{transform:rotate(.3deg)}
}
@media(max-height:650px){
 #birthday-app .popup-bar{padding-top:5px;padding-bottom:6px}
 #birthday-app .popup-bar h2{font-size:14px}
 #birthday-app .env{min-height:144px;padding:15px 10px}
 #birthday-app .env-to{font-size:21px;margin-bottom:17px}
 #birthday-app .sticker{min-height:43px;font-size:15px;padding:7px 17px}
 #birthday-app .slot{border-width:4px;border-bottom-width:6px}
}
@media(orientation:landscape) and (max-height:500px){#birthday-app .popup-sheet{transform:none}#birthday-app .popup-bar h2{font-size:13px}}
@media(prefers-reduced-motion:reduce){
 #birthday-app .popup-sheet,#dlg .dlg-box{animation:none!important}
 #s-ticket .hanko.on{animation:none!important;opacity:1;transform:rotate(-8deg)}
}

/* R16: sample the whole UI on a coarse grid, rather than placing grain over sharp text. */
#birthday-app .popup-sheet,#dlg .dlg-box{filter:var(--ui-pixel-filter,none)}
/* Keep the smallest information legible after sampling; pagination measures these sizes. */
#birthday-app :is(.to-line small,.intro-note,.lottery-meta,.collection-count,.gift-brand,.gift-variant,.image-note,.choice-brand,.choice-variant,.choice-note,.choice-name.official-name,.polaroid .official-name,.tk-name.official-name,.tk-rows,.tk-rows b,.cut,.plan-date,.plan-gift,.card-page-count){font-size:12px;line-height:1.65}
