
/* A birthday story told in the same warm, illustrated garden. */

.birthday-hero .alyssia{width:50%;height:72%;left:49%;bottom:11%;z-index:3}
.birthday-hero .anya{left:8%;height:60%;bottom:11%}
.birthday-hero .pandora{left:33%;bottom:8%;height:23%}
.alyssia-label{right:0;bottom:3%;transform:rotate(4deg)}
.birthday-hero .speech-bubble{top:4%;left:4%;max-width:165px}
.birthday-hero .birthday-sticker{right:-1%;top:6%}
.birthday-hero .anya-label{left:6%;bottom:3%}
.birthday-hero .pandora-label{left:30%;bottom:-3%}
.storybook-house{position:relative;width:220px;height:240px;--growth:0}
.house-walls{position:absolute;bottom:10px;left:15px;width:190px;height:143px;border:14px solid #dbbd89;border-bottom-width:8px;border-radius:5px;background:#a89d7b;box-shadow:inset 0 5px 12px #77593c33;overflow:hidden}
.house-walls img{height:calc(125px + var(--growth)*5px);position:absolute;bottom:-4px;left:50%;transform:translateX(-50%);object-fit:contain;max-width:none}
.house-roof{position:absolute;top:24px;left:-4px;width:228px;height:83px;background:#c7886c;clip-path:polygon(50% 0,100% 100%,0 100%);z-index:2;transform-origin:center bottom;filter:drop-shadow(0 3px #9c7052)}
.house-ground{position:absolute;bottom:0;width:240px;height:15px;border-radius:50%;background:#5f7c5330;left:-10px}
.house-crack{font-size:50px;color:#977b5b;position:absolute;left:-9px;bottom:30px;opacity:0}
.clock-fill{display:block;height:100%;border-radius:9px;background:#9aab78;transition:width .25s linear}
.time-urgent .clock-fill{background:#c2806a}
.candle-tray{display:grid;grid-template-columns:repeat(8,1fr);gap:3px}
.candle-slot{height:36px;border:1px dashed #cdd4bd;border-radius:5px;display:flex;align-items:center;justify-content:center;background:#eef0e1}
.candle-slot .symbol{width:21px;height:26px;opacity:.27;filter:grayscale(1)}
.candle-slot.collected{background:#f9ecc9;border-style:solid;border-color:#dfc480}
.candle-slot.collected .symbol{opacity:1;filter:none}
.ingredient-heading{margin-top:18px}
.required-ingredients{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.food-slot{display:flex;align-items:center;flex-direction:column;padding:8px 2px;border:1px dashed #cdd4bd;border-radius:8px;gap:3px;opacity:.55}
.food-slot .symbol{height:30px;width:30px}
.food-slot b{font-size:10px}.food-slot small{font-size:8px}
.food-slot.collected{opacity:1;border:1px solid #b7c6a0;background:#edf1e3}
.extra-count{font-size:9px;color:#8d8b72;margin-top:9px;line-height:1.7}
[hidden]{display:none!important}
.panel-clock{display:flex;align-items:center;gap:6px;padding-right:26px;margin:-9px 0 20px;color:#8d7951;font-size:10px;min-height:27px}
.panel-clock .symbol{width:15px;height:15px}.panel-clock .live-time{font-size:15px;font-weight:900;font-variant-numeric:tabular-nums;color:#7b633e}.panel-clock>span:nth-of-type(2){margin-left:5px}
.panel-clock .text-button{margin-left:auto;font-size:10px;padding:4px 0}
.prize-preview{display:flex;align-items:center;gap:9px;padding:9px 12px;border:1px solid #e2dcc3;border-radius:8px;background:#f8edcf;margin:-4px 0 16px;font-size:11px}
.prize-preview .symbol{width:23px;height:23px}
.reward-actions{display:flex;flex-direction:column;gap:14px;align-items:center;margin-top:10px}.reward-actions .button{margin-top:12px}.reward-actions .text-button{font-size:12px}
.station-levels{display:flex;flex-direction:column;gap:11px;margin:24px 0}
.station-level{display:flex;gap:15px;align-items:center;padding:16px;border:1px solid #d2dcc2;background:#eef1e2;border-radius:11px;text-align:left;color:var(--ink);width:100%}
.station-level>.symbol{width:37px;height:37px}.station-level>span{display:flex;flex-direction:column;gap:3px;flex:1}.station-level small{font-size:8px;letter-spacing:1px;color:#8c7d57}.station-level b{font-size:15px}.station-level em{font-size:11px;font-style:normal;color:#7c866e}.station-level>strong{font-size:22px}.station-level:disabled{opacity:.45;cursor:default}.station-level.done{opacity:.75;background:#e3ebd5}.station-level:hover:not(:disabled){background:#e4ebd6;border-color:#9caf84}
.station-number{border-radius:50%;width:30px;height:30px;background:#fff7df;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:#8c753f;font-size:15px;font-weight:900}
.station-food{display:flex;align-items:center;gap:5px;font-size:9px;color:#897a55;margin:9px 0 12px}.station-food .symbol{height:20px;width:20px}
.zone-quests button{align-items:center;gap:10px}.zone-quests button>span:first-child{width:23px;flex-shrink:0}.zone-quests button>div{flex:1;text-align:left}.zone-quests button small{display:block;font-size:9px;font-weight:700;color:#95825a;margin-bottom:3px}.zone-quests button>div>b{font-size:11px;font-weight:800}.zone-quests button>span .symbol{width:22px;height:22px}
.zone-quests button:disabled{opacity:.43}.zone-card-heading h3{font-size:21px}.zone-card-heading{gap:9px}.map-alyssia{display:flex;align-items:center;gap:7px;margin:15px 0 23px;font-size:12px}
.alyssia-greeting{display:flex;gap:18px;align-items:center;margin-top:5px}.alyssia-greeting>img{width:116px;height:205px;object-fit:contain;flex-shrink:0}.alyssia-greeting h2{font-size:30px!important;margin-bottom:12px}.alyssia-greeting p{font-size:13px;line-height:1.8;color:var(--muted)}
.alyssia-checklist{display:flex;flex-wrap:wrap;gap:7px;margin:20px 0}.alyssia-checklist>span{display:flex;align-items:center;gap:5px;font-size:11px;padding:8px 10px;border:1px dashed #d8d8bf;border-radius:8px}.alyssia-checklist .symbol{width:23px;height:23px}.alyssia-checklist .checked{background:#e8eedb;border-style:solid;border-color:#b5c59d}
.guide-tip{padding:14px 17px;background:#eee9d5;border-left:3px solid #bdab71;border-radius:0 7px 7px 0;font-size:12px!important;line-height:1.9}.guide-tip .symbol{width:18px;height:18px;margin-right:5px}
.food-album{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:28px}.food-album>span{display:flex;flex-direction:column;align-items:center;gap:5px;padding:13px 6px;background:#efeddd;border:1px dashed #d6d6bd;opacity:.5;border-radius:9px}.food-album .symbol{height:38px;width:38px}.food-album b{font-size:11px}.food-album small{font-size:9px;color:#8d7b53}.food-album .found{opacity:1;background:#f3e8c8;border-style:solid;border-color:#dac68c}
/* Alyssia bakes; Anya chooses and blows out her eight candles. */

.baking-scene{height:240px;position:relative;background:radial-gradient(ellipse at 65% 90%,#efdbad,transparent 65%)}
.baking-scene>img{height:235px;position:absolute;left:40px;bottom:0;animation:mixing 1s ease-in-out infinite}
.baking-bowl{position:absolute;right:18px;top:75px;display:flex;gap:8px}.baking-bowl .symbol{height:40px;width:40px;animation:ingredients-fall 1s ease-in-out infinite}.baking-bowl .symbol:nth-child(2){animation-delay:.2s}.baking-bowl .symbol:nth-child(3){animation-delay:.4s}
.oven-glow{position:absolute;right:40px;bottom:10px;width:130px;height:80px;background:#b98b65;border-radius:10px;border:8px solid #d1a87c}.oven-glow:after{content:'';position:absolute;inset:8px;border-radius:7px;background:#6f6550;box-shadow:inset 0 -15px 15px #ecb058;animation:oven 1s ease-in-out infinite alternate}
.baking-progress{height:6px;border-radius:8px;background:#dedec8;margin-top:23px;overflow:hidden}.baking-progress i{height:100%;display:block;background:#c39c58;animation:bake 2.8s linear forwards}
.birthday-cake{width:260px;height:210px;position:relative;--cake-color:#c3946b}
.cake-plate{position:absolute;left:0;bottom:8px;width:260px;height:23px;border-radius:50%;background:#c4cbb5;border:1px solid #abb79c;box-shadow:0 4px 0 #778f7144}
.cake-base{position:absolute;left:19px;bottom:24px;width:222px;height:86px;border-radius:0 0 35% 35%;background:linear-gradient(var(--cake-bread,#e8c799) 0 48%,#faf0d3 48% 63%,#d9ad7e 63%);border:1px solid #b38f68;z-index:1}
.cake-icing{position:absolute;left:19px;bottom:91px;width:222px;height:43px;border-radius:50%;background:var(--cake-top,#f4dbd0);border:1px solid #d0a493;z-index:2;box-shadow:0 11px 0 #edc4b3}.cake-icing span{position:absolute;left:96px;top:0;font:italic 33px Georgia,serif;color:#b98a6c;opacity:.6;transform:rotate(-10deg)}
.cake-candles{position:absolute;left:34px;right:34px;bottom:113px;display:flex;gap:11px;z-index:3;align-items:flex-end;justify-content:center}
.cake-candle{height:43px;width:9px;position:relative;transform:translateY(0)}
.cake-candle b{position:absolute;inset:0;border-radius:2px;background:repeating-linear-gradient(30deg,#cf8d7d 0 6px,#fff0c9 6px 9px);border:1px solid #b7876b}
.flame{position:absolute;width:11px;height:19px;bottom:49px;left:-1px;background:#f4c459;border-radius:60% 40% 60% 40%;transform-origin:center bottom;box-shadow:0 0 13px #f2c66177;opacity:0}
.lit .flame{opacity:1;animation:candle-flicker 1s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.2s)}
.blown .flame{animation:blow-out .45s both;animation-delay:calc(var(--i)*.12s)}
.wish-scene{height:260px;position:relative;background:radial-gradient(ellipse at 40% 80%,#ecd6a366,transparent 70%)}
.wish-scene .birthday-cake{position:absolute;left:-10px;bottom:0;transform:scale(.88);transform-origin:bottom left}.wish-scene>img{position:absolute;height:238px;right:0;bottom:15px}.wish-spark{font-size:48px;color:#c8a253;position:absolute;left:52%;top:5px;animation:gentle-bob 2s infinite}
.wish-choice{display:flex;gap:12px;align-items:center;padding:17px;background:#edeedc;border:1px solid #cdd6b8;border-radius:11px;margin-top:24px;font-size:14px;font-weight:800;cursor:pointer}.wish-choice input{accent-color:#72915d;min-width:20px;height:20px}.wish-choice small{font-size:11px;font-weight:500;color:#7c856b;line-height:2}.blow-button{font-size:14px!important}.wish-granted .wish-spark{animation:wish-away 1.9s ease-out forwards}
.birthday-end-art{height:490px;position:relative;background:radial-gradient(ellipse at 50% 88%,#dce5c8 0,transparent 70%)}
.family-line{display:flex;align-items:flex-end;justify-content:center;gap:0;height:350px;position:absolute;left:0;right:0;bottom:72px;z-index:2}.family-line img{width:28%;height:auto;object-fit:contain;max-width:none;flex:none;margin-left:-8px}.family-line img:first-child{width:34%}.family-line img:nth-child(3){width:23%}.family-line img:last-child{width:14%;margin-left:-20px}.birthday-end-art .birthday-cake{position:absolute;left:50%;bottom:8px;transform:translateX(-50%) scale(.7);transform-origin:bottom center;z-index:3}
.celebration-eight{position:absolute;left:22%;top:-10px;font:italic 210px Georgia,serif;color:#e2be6e;opacity:.22;z-index:0}
.end-garden-flower{position:absolute;right:0;bottom:40px;transform:rotate(14deg)}.end-garden-flower .symbol{width:70px;height:70px}
.collapse-scene .storybook-house{position:absolute;left:50%;bottom:45px;transform:translateX(-50%) scale(1.45);transform-origin:bottom center}.broken-house .house-walls{overflow:visible;background:transparent;border-left-color:transparent;border-right-color:transparent;border-top-color:transparent}.broken-house .house-walls:before,.broken-house .house-walls:after{content:'';position:absolute;width:24px;height:140px;background:#dbbd89;bottom:0;transform-origin:center bottom}.broken-house .house-walls:before{left:-15px;animation:wall-left 1.2s ease-out forwards}.broken-house .house-walls:after{right:-15px;animation:wall-right 1.2s ease-out forwards}.broken-house .house-walls img{height:250px;bottom:0;animation:last-stretch 1s ease-out}.broken-house .house-roof{animation:roof-fly 1.7s ease-out forwards}.last-mission{padding:14px 17px;background:#eee7d2;font-size:12px;line-height:1.9;border-radius:9px;margin:23px 0}

@keyframes gentle-bob{50%{transform:translateY(-5px)}}

@keyframes mixing{50%{transform:rotate(2deg)}}
@keyframes ingredients-fall{0%{transform:translateY(-12px);opacity:0}50%{opacity:1}100%{transform:translateY(30px);opacity:0}}
@keyframes oven{to{box-shadow:inset 0 -23px 20px #f5c66b}}
@keyframes bake{from{width:0}to{width:100%}}
@keyframes candle-flicker{to{transform:scale(.9,1.12) rotate(6deg)}}
@keyframes blow-out{from{opacity:1;transform:rotate(0)}to{opacity:0;transform:rotate(65deg) scale(.1)}}
@keyframes wish-away{to{transform:translateY(-150px) scale(3);opacity:0}}
@keyframes wall-left{to{transform:rotate(-72deg)}}
@keyframes wall-right{to{transform:rotate(72deg)}}
@keyframes roof-fly{to{transform:translate(45px,-145px) rotate(25deg);opacity:.6}}
@keyframes last-stretch{from{height:185px}to{height:250px}}
@media(max-width:1100px) and (min-width:761px){.candle-slot{height:31px}.candle-slot .symbol{width:18px}}
@media(max-width:760px){.candle-tray{grid-column:1/-1;margin-bottom:4px}.candle-slot{height:40px}.candle-slot .symbol{height:29px;width:24px}.ingredient-heading{grid-column:1/-1}.required-ingredients{grid-column:1/-1}.food-slot{padding:11px}.food-slot b{font-size:12px}.food-slot small{font-size:10px}.extra-count{grid-column:1/-1;font-size:10px}.panel-clock{font-size:9px;margin-top:0}.panel-clock .text-button{font-size:10px}.panel-clock .live-time{font-size:15px}#adventure-dialog .eyebrow{font-size:8px}#adventure-dialog h2{font-size:28px}#adventure-dialog>p{font-size:13px}
 .alyssia-greeting{gap:12px}.alyssia-greeting>img{width:90px;height:170px}.alyssia-greeting h2{font-size:25px!important}.alyssia-greeting p{font-size:12px}.alyssia-checklist{gap:5px}.alyssia-checklist>span{font-size:10px;padding:6px 8px}.guide-tip{font-size:11px!important;padding:12px}.station-level{padding:13px;gap:10px}.station-level>.symbol{width:30px;height:30px}.station-level b{font-size:13px}.station-level em{font-size:10px}.station-level small{font-size:7px}.zone-card-heading h3{font-size:21px}.zone-quests button{min-height:58px}.zone-quests button>div>b{font-size:12px}.zone-quests button small{font-size:10px}.station-food{font-size:10px}.map-alyssia{font-size:11px}.food-album{grid-template-columns:repeat(4,1fr);gap:5px}.food-album b{font-size:10px}.food-album small{font-size:8px}.food-album .symbol{width:32px;height:32px}.food-album>span{padding:12px 3px}
 .wish-scene{height:230px}.wish-scene .birthday-cake{transform:scale(.68);left:-7px}.wish-scene>img{height:210px;right:-7px}.wish-spark{font-size:38px}.wish-choice{font-size:12px;padding:13px;gap:9px}.wish-choice small{font-size:10px}.baking-scene>img{left:6px;height:220px}.baking-bowl{right:0;gap:4px}.baking-bowl .symbol{width:32px;height:32px}.oven-glow{right:10px;width:115px}
 .birthday-hero .alyssia{left:49%;height:72%}.birthday-hero .speech-bubble{max-width:127px;font-size:10px}.birthday-hero .birthday-sticker{right:1%;top:0}.alyssia-label{font-size:9px;bottom:1%;right:-5px}.birthday-hero .anya-label{font-size:9px}.birthday-hero .pandora-label{font-size:9px;bottom:-6%;left:28%}.birthday-end-art{height:390px;order:-1}.family-line{height:280px;bottom:60px}.birthday-end-art .birthday-cake{transform:translateX(-50%) scale(.55)}.collapse-scene .storybook-house{transform:translateX(-50%) scale(1.25);bottom:50px}.celebration-eight{font-size:170px;top:0}.birthday-end{gap:20px}.birthday-end .end-copy h1{font-size:40px}.end-badge{font-size:9px}.end-garden-flower .symbol{width:45px;height:45px}}
@media(max-width:360px){.wish-scene .birthday-cake{transform:scale(.6)}.wish-scene>img{height:195px}.wish-choice{font-size:11px}.food-album{grid-template-columns:repeat(2,1fr)}.alyssia-greeting>img{width:77px}.alyssia-greeting h2{font-size:23px!important}.alyssia-greeting p{font-size:11px}.birthday-hero .speech-bubble{max-width:102px;top:0;font-size:9px}.alyssia-label{font-size:8px;padding:5px 8px}.birthday-hero .anya-label{font-size:8px;padding:5px 8px}.birthday-hero .pandora-label{font-size:8px;padding:5px 8px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}.broken-house .house-roof{transform:translate(45px,-145px) rotate(25deg)}.broken-house .house-walls:before{transform:rotate(-72deg)}.broken-house .house-walls:after{transform:rotate(72deg)}}

.cake-berries{position:absolute;inset:10px 13px;display:flex;justify-content:space-between;pointer-events:none}.cake-berries .symbol{height:18px;width:18px}.cake-vanilla{font:25px Georgia,serif;color:#c8a353;position:absolute;left:44px;top:7px}

.cake-candle:nth-child(even){transform:translateY(4px)}
.puzzle-content .math-garden.grouped{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.puzzle-content .grouped .bunch{max-width:none;min-width:0;align-self:stretch;align-content:center}

.game-paused .baking-scene *,.game-paused .baking-progress i{animation-play-state:paused}
.collapse-scene{overflow:hidden;border-radius:20px}