/* Small details share the birthday's paper, ink and quiet colour. */
.physics-secret{display:inline-flex;align-items:center;gap:12px;width:auto;height:auto;min-height:42px;border:1px solid var(--line);border-radius:30px;background:var(--surface);font:13px/1.4 var(--sans);padding:9px 19px;margin:7px 0 2px;letter-spacing:.02em;box-shadow:0 6px 24px #b3899b12}.physics-secret>span:first-child{font:25px Georgia}.physics-secret:hover{transform:translateY(-2px);background:var(--surface)}.physics-orbit{display:flex;justify-content:center;align-items:center;gap:30px;height:170px}.physics-orbit b{font:italic 80px Georgia;color:#e1c9a4;font-weight:400}.physics-orbit span{font:italic 21px Georgia;color:#b3a4c7;transform:rotate(-10deg)}.physics-orbit span:last-child{transform:rotate(9deg)}.physics-caption{font-size:17px}.physics-intro{padding-bottom:22px}.physics-intro h3{font-size:25px}
.memory-shelf{gap:18px;margin:34px 0 25px;max-width:900px}.memory-token,.egg-tile{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:24px;background:color-mix(in srgb,var(--surface) 75%,transparent);padding:30px 14px 35px;min-height:205px;isolation:isolate}.memory-token:after,.egg-tile:after{content:'';position:absolute;inset:0;z-index:-1;opacity:.35;background:radial-gradient(circle at 0 0,var(--tone),transparent 72%);pointer-events:none}.card-character-peek{position:absolute;bottom:-25px;right:-3px;display:flex;align-items:flex-end;width:78px;height:70px;opacity:.75;transition:transform .6s cubic-bezier(.2,.8,.25,1),opacity .3s;pointer-events:none}.card-character-peek img{width:46px;height:67px;object-fit:contain;filter:drop-shadow(0 2px 4px #00000010)}.card-character-peek img+img{margin-left:-18px;height:53px;transform:rotate(13deg)}.memory-token:hover .card-character-peek,.memory-token:focus-visible .card-character-peek,.egg-tile:hover .card-character-peek{transform:translateY(-15px) rotate(-6deg);opacity:1}.memory-token[data-egg=friends] .card-character-peek{right:-12px;transform:rotate(-9deg)}.memory-token[data-egg=bubbles]:before{content:'';position:absolute;width:13px;height:13px;right:20px;top:21px;border:1px solid #a6cbce77;border-radius:50%;box-shadow:-22px 9px 0 3px #d4eaea22,4px 33px 0 -3px #c0ded777}.memory-name{font-size:15px}.memory-state{font-size:11px}
.bubble-transition,.bubble-transition.playing{background:none!important;backdrop-filter:none!important}.bubble-lens{backdrop-filter:none;background:radial-gradient(circle at 25% 20%,#ffffffb0,transparent 14%,transparent 70%,#b8d8f31a 85%,#f3def944 96%);border:1px solid #e4d4ef80;box-shadow:inset -7px -5px 18px #d5eafa17}.playing .bubble-lens{animation:gentle-lens 2.3s ease-out both}.playing .bubble-performer{animation:peek-and-blow 2.3s both}.playing .blowing-cheek{animation:cheek-breath 2.3s both}.playing .transition-bubbles i{animation:small-bubble 1.55s var(--delay) cubic-bezier(.16,.5,.25,1) both}
@keyframes gentle-lens{0%,20%{opacity:0;transform:scale(.1)}38%{opacity:.7;transform:translate(40px,-50px) scale(.55)}70%{opacity:.45;transform:translate(350px,-240px) scale(1.65)}100%{opacity:0;transform:translate(580px,-380px) scale(2.2)}}
@keyframes peek-and-blow{0%{opacity:0;transform:translate(-45px,60px) rotate(-12deg)}18%{opacity:1;transform:translate(0,4px) rotate(-3deg)}30%{transform:scale(1.025,.975)}43%{transform:scale(.98,1.02) rotate(3deg)}65%{opacity:1;transform:none}100%{opacity:0;transform:translate(-20px,60px) rotate(-7deg)}}
.firework-world{isolation:isolate;border:1px solid #c5bfde20}.spark-igniter{position:absolute;transform:translate(-50%,-50%);width:66px;height:70px;background:transparent;color:#ffdfac;touch-action:none;user-select:none;border-radius:50%;z-index:2}.spark-igniter i{position:absolute;left:27px;top:23px;width:12px;height:22px;background:radial-gradient(ellipse at 50% 80%,#e7b89c 0,#fff6d7 26%,#fac176 50%,#ee8540 72%,transparent 80%);border-radius:70% 30% 55% 45%;filter:drop-shadow(0 0 10px #ffcb65);transform:rotate(-14deg) scale(calc(.8 + var(--charge,0) * .7));animation:igniter-flame .65s infinite alternate}.spark-igniter:after{content:'';position:absolute;inset:1px;border-radius:50%;border:1px dashed #f6d7a96b;transform:scale(calc(.84 + var(--charge,0) * .14));opacity:.7}.spark-igniter span{position:absolute;top:74px;left:50%;transform:translateX(-50%);white-space:nowrap;font-size:12px;color:#e4cbb1;letter-spacing:.07em}.spark-igniter:focus-visible{outline:2px solid #ffdfac;outline-offset:4px}.spark-tip{font-size:12px;color:var(--muted)}.firework-caption{bottom:14px;font:11px Georgia;letter-spacing:.28em}
@keyframes igniter-flame{to{rotate:8deg;filter:drop-shadow(0 0 15px #ffbd67)}}
.magic-cover{padding:20px 0 35px;text-align:center}.magic-cover>p{font:20px var(--serif);color:var(--muted)}.magic-cover-orbit{font:60px Georgia;color:var(--rose);display:block;margin:9px auto 17px;width:115px;height:100px;border:1px solid var(--line);border-radius:50%;line-height:100px;transform:rotate(-12deg)}.moment-choices{gap:24px;margin-top:26px}.moment-choices>button{border:1px solid var(--line);border-radius:80px 80px 18px 18px;background:var(--surface);padding:24px 30px;min-width:210px;color:var(--ink);display:flex;flex-direction:column;align-items:center;gap:13px;transition:transform .4s,box-shadow .4s}.moment-choices>button:hover{transform:translateY(-5px);box-shadow:0 15px 45px #9a738916}.moment-choices>button>span{font:44px Georgia;color:#bd9e75}.moment-choices>button>b{font:20px var(--serif);font-weight:400}.moment-choices>button>small{color:var(--muted);font-size:12px}.magic-back{font-size:12px;padding:4px 8px;min-height:30px}.moon-filling-note{position:absolute;z-index:2;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-3deg);width:210px;padding:23px 12px;background:#fff7e9;color:#775456;box-shadow:0 10px 26px #5b3b2826;border:1px solid #e4cab1;text-align:center;animation:filling-letter .65s ease-out both;pointer-events:none}.moon-filling-note:before,.moon-filling-note:after{content:'◡';position:absolute;top:-14px;width:28px;height:28px;border-radius:50%;background:#ebbfbc;border:1px solid #bd9690;font:19px Georgia;line-height:24px;left:38px}.moon-filling-note:after{left:auto;right:38px;rotate:12deg;background:#ddcadf}.moon-filling-note>span{font-size:10px;letter-spacing:.18em;color:#ab8c79}.moon-filling-note strong{display:block;font:27px var(--serif);margin:12px 0}.moon-filling-note p{font-size:12px;line-height:1.9;margin:0}.moon-filling-note i{display:block;font-size:10px;margin-top:14px;color:#b19786;font-style:normal}.moon-world[data-open=true] .moon-secret{opacity:.4}.moon-secret{min-height:36px;padding:8px}
@keyframes filling-letter{from{opacity:0;transform:translate(-50%,-35%) rotate(2deg) scale(.7)}to{opacity:1;transform:translate(-50%,-50%) rotate(-3deg)}}
.cake-stage.is-3d{height:min(68vh,600px);max-width:none;overflow:visible}.cake-view{inset:0 0 46px;border-radius:0}.cake-controls{bottom:0}.cake-copy{position:relative;z-index:3}.cake-copy .mic-note{line-height:1.6}.cake-layout{isolation:isolate}.clap-reply>span:not(.reply-mark){font:21px Georgia;color:var(--rose)}
.journey-gift-preview{font:48px Georgia;color:var(--rose);width:125px;height:92px;text-align:center}.journey-gift-preview small{display:block;font:12px var(--sans);color:var(--muted);margin-top:10px}.birthday-diary #journey-rewards{display:block;margin:18px auto 0}.birthday-diary{min-height:230px}.keepsake-scene .section-title{font-size:clamp(24px,3vw,36px)}#gift-list{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.gift-card{padding:20px 16px;border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--paper) 80%,var(--surface));display:flex;flex-direction:column;text-align:center}.gift-preview{font:46px Georgia;height:68px;display:block;color:var(--rose)}.gift-card h3{font:17px/1.6 var(--serif);font-weight:400;margin:6px 0 9px}.gift-card p{font:12px/1.8 var(--sans);color:var(--muted);min-height:44px;margin:0 0 18px}.gift-card .button{font-size:11px;padding:10px 13px;margin-top:auto;min-height:38px}.gift-card .button:disabled{opacity:.4;cursor:default}.reward-record{margin-top:22px;color:var(--muted);font-size:12px}.reward-record summary{cursor:pointer;padding:10px 0}.reward-record p{font-size:11px;line-height:1.8}.flower-note img{width:70px;height:70px}.flower-note{gap:18px}.flower-note h3{font-size:22px}.flower-note p{font-size:12px}#flower-total{font:40px Georgia;color:var(--rose);margin-left:20px}.gift-trail-bubble{position:fixed;z-index:270;pointer-events:none;width:16px;height:16px;border:1px solid #c1dce9aa;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff9,transparent 20%,#b5d3e711 70%,#f2d4e755);animation:gift-bubble 1.6s ease-out forwards}
@keyframes gift-bubble{from{opacity:.8;transform:translate(-50%,-50%) scale(.3)}to{opacity:0;transform:translate(calc(-50% + var(--drift)),-100px) scale(1.35)}}
.sticker-workspace{max-width:700px;margin:auto;border-radius:12px;overflow:hidden;box-shadow:0 12px 38px #9b7e8b14}.sticker-workspace canvas{display:block;width:100%;height:auto;max-height:45vh;object-fit:contain;touch-action:none;cursor:grab!important}.card-instruction,.card-status{font-size:12px;color:var(--muted);text-align:center;line-height:1.8}.sticker-palette{display:flex;justify-content:center;gap:15px;margin:16px 0 12px}.sticker-palette button{width:50px;height:50px;border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:5px}.sticker-palette img{width:100%;height:100%;object-fit:contain}.sticker-palette button[aria-pressed=true]{border-color:var(--rose);background:var(--rose-light)}.card-tools{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap}.card-tools .text-button{font-size:12px;min-height:36px}.card-tools .button{font-size:12px;min-height:38px;padding:9px 16px}
.friends-mount{width:min(680px,100%);text-align:center;margin-top:14px}.friend-theatre{height:270px;position:relative;overflow:hidden;border-radius:140px 140px 22px 22px;background:radial-gradient(ellipse at 35% 65%,#f8e9ad30,transparent 65%),linear-gradient(135deg,#dce8e230,#e5d4e632);border:1px solid var(--line)}.friend-theatre[data-friend=patrick]{background:radial-gradient(ellipse at 35% 65%,#ebc6d74a,transparent 65%),linear-gradient(135deg,#e5eee030,#f2dce232)}.friend-theatre[data-friend=shinchan]{background:radial-gradient(ellipse at 35% 65%,#f1ce8350,transparent 65%),linear-gradient(135deg,#f1e2c430,#efdbe232)}.theatre-stars{position:absolute;top:25px;left:20%;right:20%;display:flex;justify-content:space-between;color:#c6af7c;font-size:22px;opacity:.75}.theatre-stars i{font-style:normal;font-size:12px;margin-top:5px}.friend-spotlight{position:absolute;left:14%;bottom:0;width:37%;height:27px;border-radius:50%;background:#a28a8822;filter:blur(8px)}.friend-actor-wrap{position:absolute;left:15%;bottom:17px;width:180px;height:195px;transform-origin:50% 90%}.friend-actor{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 6px 5px #64505b14)}.friend-party-hat{position:absolute;top:0;left:48%;width:29px;height:37px;clip-path:polygon(50% 0,100% 100%,0 100%);background:repeating-linear-gradient(-20deg,#c6aa99 0 7px,#fae3b1 7px 14px);transform:rotate(9deg)}.friend-theatre[data-friend=patrick] .friend-party-hat{top:-9px;left:53%}.friend-theatre[data-friend=shinchan] .friend-party-hat{top:13px;left:43%}.friend-speech{position:absolute;left:49%;top:36%;right:6%;border-radius:23px 23px 23px 3px;padding:18px 20px;background:var(--surface);border:1px solid var(--line);text-align:left;box-shadow:0 8px 30px #8e7d8709}.friend-speech small{font-size:10px;color:var(--muted);letter-spacing:.07em}.friend-speech p{font:18px/1.8 var(--serif);margin:9px 0 0;min-height:58px;color:var(--ink)}.friend-cast{display:flex;justify-content:center;gap:8px;margin:13px 0}.friend-cast button{font-size:12px;padding:8px 18px;border:1px solid var(--line);border-radius:20px;background:none;color:var(--muted)}.friend-cast [aria-pressed=true]{background:var(--surface);color:var(--rose);border-color:var(--rose)}.friend-play{min-height:40px;font-size:13px;padding:10px 25px}.friend-voice-note{font-size:11px;color:var(--muted);margin:8px 0}.speaking .friend-actor-wrap{animation:friend-says 1.4s ease-in-out infinite}.speaking .friend-speech{animation:speech-pop .5s ease-out both}.friend-floaters{position:absolute;inset:0;pointer-events:none}.friend-floaters i{position:absolute;bottom:18%;left:var(--x);width:17px;height:17px;border:1px solid #d4c4e488;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff9,transparent 40%,#bad4e544 80%);opacity:0}.speaking .friend-floaters i{animation:theatre-bubbles 3s calc(var(--i) * .26s) both}.rest-scene>.section-title{font-size:32px}.rest-scene>.eyebrow{margin-bottom:10px}.rest-scene>.text-button{margin-top:7px}
@keyframes friend-says{0%,100%{transform:translateY(0) rotate(-3deg)}25%{transform:translateY(-6px) rotate(3deg) scale(.985,1.02)}50%{transform:translateY(0) rotate(-2deg)}75%{transform:translateY(-2px) rotate(2deg)}}@keyframes speech-pop{from{opacity:0;transform:scale(.93) translateY(7px)}to{opacity:1;transform:none}}@keyframes theatre-bubbles{15%{opacity:.6}to{opacity:0;transform:translate(25px,-230px) scale(1.8)}}
@media(max-height:650px) and (orientation:landscape){.memory-shelf{margin:18px 0 10px;gap:12px;max-width:780px}.memory-token{min-height:145px;padding:17px 9px 28px}.card-character-peek{height:50px;bottom:-29px;scale:.8}.physics-secret{min-height:32px;font-size:11px;padding:4px 15px;margin:2px 0}.physics-secret>span:first-child{font-size:20px}.physics-orbit{height:100px}.physics-intro h3{font-size:21px}.physics-note{margin-bottom:7px}.physics-caption{font-size:14px}.magic-cover{padding:0 0 15px}.magic-cover-orbit{height:60px;width:70px;font-size:38px;line-height:60px;margin:0 auto 12px}.magic-cover>p{font-size:17px}.moment-choices{margin-top:15px;gap:15px}.moment-choices>button{padding:15px 25px;gap:8px}.moment-choices>button>span{font-size:30px}.moment-choices>button>b{font-size:17px}.spark-tip{font-size:11px}.moon-filling-note{width:165px;padding:10px 8px}.moon-filling-note strong{font-size:22px;margin:9px 0}.moon-filling-note p{font-size:11px}.moon-filling-note i{font-size:9px;margin-top:8px}.moon-filling-note:before,.moon-filling-note:after{display:none}.cake-view{inset:0 0 38px}.cake-stage.is-3d{height:66vh;max-width:none}.friend-theatre{height:34vh;min-height:155px}.friend-actor-wrap{height:calc(34vh - 30px);max-height:180px;width:145px;bottom:12px}.friend-speech{top:27%;padding:12px 15px}.friend-speech p{font-size:14px;min-height:35px;line-height:1.6;margin-top:5px}.friend-cast{margin:7px 0}.friend-cast button{padding:6px 16px}.friend-play{min-height:32px;padding:7px 20px;font-size:12px}.friend-voice-note{margin:4px 0;font-size:10px}.rest-scene>.section-title{font-size:24px}.friends-mount{margin-top:9px;max-width:600px}.gift-card{padding:13px 12px}.gift-preview{height:45px;font-size:34px}.gift-card h3{font-size:15px}.gift-card p{font-size:11px}.flower-note{margin:8px 0 15px}.flower-note img{height:48px;width:48px}.journey-gift-preview{height:65px;font-size:35px}.journey-gift-preview small{font-size:11px}.birthday-diary{min-height:160px}.birthday-diary #journey-rewards{margin:10px auto 0;min-height:32px;font-size:12px;padding:7px 18px}}
@media(orientation:portrait) and (max-width:700px){.memory-shelf{margin:20px 0;gap:12px}.memory-token{min-height:145px;padding:18px 9px 27px}.memory-name{font-size:13px}.memory-state{font-size:10px}.moment-choices{gap:10px}.moment-choices>button{min-width:130px;padding:20px 15px}.moment-choices>button>b{font-size:16px}.moon-filling-note{width:155px;padding:18px 10px}.moon-filling-note strong{font-size:23px}.moon-filling-note p{font-size:11px}.moon-filling-note i{font-size:8px}.spark-tip{font-size:10px}.cake-view{inset:0 0 40px}.cake-stage.is-3d{height:39vh;min-height:260px;max-width:none}.physics-secret{font-size:12px}.gift-card{padding:14px;display:grid;grid-template-columns:45px 1fr;gap:5px;text-align:left}.gift-preview{font-size:35px;grid-row:1/3}.gift-card h3{font-size:16px;margin:0}.gift-card p{font-size:11px;min-height:0;margin:5px 0}.gift-card .button{grid-column:2;width:fit-content}.flower-note{gap:10px}.flower-note img{height:50px;width:50px}.flower-note h3{font-size:20px}.flower-note p{font-size:11px}#gift-list{grid-template-columns:1fr;gap:10px}#flower-total{font-size:28px;margin-left:0}.journey-gift-preview{width:85px;font-size:37px}.journey-gift-preview small{font-size:10px}.friend-theatre{height:245px}.friend-actor-wrap{left:2%;width:135px;height:160px;bottom:12px}.friend-speech{left:40%;right:4%;top:34%;padding:13px}.friend-speech p{font-size:14px;min-height:70px}.friend-cast{gap:5px}.friend-cast button{font-size:11px;padding:8px 11px}.rest-scene>.section-title{font-size:27px}.card-tools{gap:7px}.card-tools .text-button{padding:8px}.sticker-workspace canvas{max-height:none}.sticker-palette{gap:10px}}
@media(prefers-reduced-motion:reduce){.spark-igniter i,.speaking .friend-actor-wrap,.speaking .friend-floaters i,.moon-filling-note,.speaking .friend-speech{animation:none}.card-character-peek{transition:none}.physics-secret:hover{transform:none}}

.sticker-workspace{width:min(700px,100%,71vh)}.sticker-workspace canvas{max-height:none;object-fit:initial}.card-export-preview{font-size:12px;color:var(--muted);text-align:center;margin-top:10px}.card-export-preview summary{cursor:pointer;padding:10px}.card-export-preview img{display:block;max-width:100%;height:auto;margin:10px auto}
@media(orientation:portrait) and (max-width:700px){.sticker-workspace{width:100%}}

.dialog-top .dialog-sound{flex:0 0 34px;width:34px;height:34px;min-height:34px;margin-left:auto;font-size:18px;letter-spacing:0}.dialog-top .dialog-sound+button{margin-left:0}.dialog-top h2{min-width:0}
