
/* Cake upgrades and the birthday score. */
/* Every extra ingredient changes the cake, and the growing recipe adds layers. */

.birthday-cake{height:calc(210px + var(--cake-lift,0px))}
.cake-base{height:calc(86px + var(--cake-lift,0px));background:var(--cake-gradient,linear-gradient(#e8c799 0 48%,#faf0d3 48% 63%,#d9ad7e 63%));overflow:hidden}
.cake-icing{bottom:calc(91px + var(--cake-lift,0px))}.cake-candles{bottom:calc(113px + var(--cake-lift,0px))}
.has-butter .cake-base{border-color:#b18a44}.butter-ribbon{position:absolute;left:0;right:0;bottom:12px;height:7px;background:#f0ce79;border-block:1px solid #e7bf63}
.has-sugar .cake-icing{box-shadow:0 10px 0 #f4e9ce,0 14px 0 #e5cb9d}.cake-pearls{position:absolute;left:9px;right:9px;bottom:4px;display:flex;justify-content:space-between}.cake-pearls i{height:5px;width:5px;background:#fffbea;border:1px solid #dfc995;border-radius:50%}
.cake-vanilla{width:33px;height:33px;left:44px;top:2px}.cake-vanilla .symbol{height:29px;width:29px}
.has-berries .cake-vanilla{left:67px;top:-9px}.has-berries .cake-icing>span{opacity:.45}.cake-berries{z-index:2;inset:7px 14px}.cake-berries .symbol:nth-child(2n){transform:translateY(-2px)}
.chocolate-drips{position:absolute;left:0;right:0;top:0;height:23px;background:#865b45;border-radius:0 0 38% 22%;box-shadow:9px 7px 0 -6px #865b45,-17px 12px 0 -9px #865b45}
.cake-medallion{position:absolute;left:78px;top:43%;font-size:15px;font-weight:900;color:#8b6f31;background:#f2d795;border:1px solid #cba95e;border-radius:50%;padding:7px 9px;box-shadow:0 3px 0 #ba995533}
.cake-level-5 .cake-plate{background:#e2c178;border-color:#bd9b50;box-shadow:0 4px 0 #b1955966}.cake-sparkles{position:absolute;top:8px;left:5px;right:5px;text-align:center;letter-spacing:13px;color:#c9a04d;font-size:22px;pointer-events:none}
.cake-result-note{font-size:11px!important;font-weight:900;color:#9b7b40!important;padding:8px 12px;background:#f3e8c7;border:1px solid #ded0a6;border-radius:7px;margin:4px 0 17px;text-align:center}
.cake-preview-scene{position:relative;height:220px;background:radial-gradient(ellipse at 50% 90%,#e8d9b6,transparent 70%);margin:-3px 0 20px}
.cake-preview-scene .birthday-cake{position:absolute;left:50%;bottom:0;transform:translateX(-50%) scale(.85);transform-origin:bottom center}.recipe-incomplete .birthday-cake{opacity:.55;filter:saturate(.65)}
.cake-level-meter{display:grid;grid-template-columns:repeat(8,1fr);gap:5px;margin:21px 0}.cake-level-meter>span{display:grid;place-items:center;height:38px;border:1px dashed #d5d7bd;border-radius:6px;opacity:.35;background:#eeedde}.cake-level-meter .symbol{height:28px;width:28px}.cake-level-meter .collected{opacity:1;background:#f5e8c4;border-style:solid;border-color:#d9c38c}
.cake-enhancements{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}.cake-enhancements li{display:flex;align-items:center;gap:10px;border-radius:8px;padding:9px 12px;background:#efeddd;opacity:.5}.cake-enhancements li>.symbol{width:28px;height:28px}.cake-enhancements li>span{flex:1;display:flex;flex-direction:column;gap:3px}.cake-enhancements b{font-size:12px}.cake-enhancements small{font-size:10px;color:#7a8267;line-height:1.6}.cake-enhancements strong{color:#9c8246}.cake-enhancements .earned{opacity:1;background:#e8edda}
#cake-bake,#alyssia-cake{display:block;font-size:12px;margin:18px auto 10px;text-align:center}#alyssia-map{display:block;margin:16px auto 0;font-size:11px}
.score-card{margin:24px 0;border:1px solid #d8c48e;background:#f4e9c9;border-radius:14px;padding:18px;color:#6f633e}
.score-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:17px}.score-heading .eyebrow{font-size:7px;margin:0 0 6px;color:#977a43}.score-heading h2{font:29px Georgia,serif;letter-spacing:-.7px;margin:0;color:#4d6047}.score-heading>strong{font-size:39px;font-weight:900;line-height:1;text-align:right;color:#8e6f35;font-variant-numeric:tabular-nums}.score-heading strong small{font-size:9px;display:block;line-height:2.1;letter-spacing:.5px}
.score-breakdown{display:grid;grid-template-columns:1fr 1fr;gap:12px 19px;margin:0;padding:13px 0;border-top:1px solid #dacfaa;border-bottom:1px solid #dacfaa}.score-breakdown dt{display:flex;align-items:center;gap:5px;font-size:10px;color:#76805f;flex-wrap:wrap}.score-breakdown dt .symbol{width:18px;height:18px}.score-breakdown dt>b{margin-left:auto;color:#776538;font-size:11px}.score-breakdown dd{font-size:13px;font-weight:900;margin:5px 0 0 23px;color:#8c743f}.score-card>p{font-size:8px;line-height:1.8;color:#978454;margin:10px 0 0}
.birthday-end .end-copy>.birthday-message{font-size:20px;line-height:1.65;margin:23px 0}.birthday-end .end-copy>p{margin:20px 0}.birthday-end .end-copy h1{font-size:52px}
@media(max-width:760px){.cake-preview-scene{height:195px}.cake-preview-scene .birthday-cake{transform:translateX(-50%) scale(.76)}.cake-level-meter{gap:4px}.cake-level-meter .symbol{width:22px;height:22px}.cake-level-meter>span{height:32px}.cake-enhancements li{padding:9px 10px}.cake-enhancements b{font-size:11px}.cake-enhancements small{font-size:9px}.cake-result-note{font-size:10px!important;line-height:1.7;margin-top:3px}.score-card{padding:15px;margin:21px 0}.score-heading h2{font-size:27px}.score-heading>strong{font-size:35px}.score-heading .eyebrow{font-size:6px;letter-spacing:.8px}.score-heading strong small{font-size:8px}.score-breakdown{gap:12px}.score-breakdown dt{font-size:10px}.score-breakdown dd{font-size:12px}.score-card>p{font-size:8px}.birthday-end .end-copy h1{font-size:40px}.birthday-end .end-copy>.birthday-message{font-size:19px}.birthday-end-art.celebration{height:335px}}
@media(max-width:360px){.score-heading>strong{font-size:31px}.score-heading h2{font-size:25px}.score-breakdown{gap:10px 8px}.score-breakdown dt{font-size:9px}.score-breakdown dd{font-size:11px}.score-breakdown dt .symbol{height:16px;width:16px}.score-breakdown dt>b{font-size:10px}.cake-result-note{font-size:9px!important}}
.score-progress{height:6px;background:#ded3b0;border-radius:6px;overflow:hidden;margin:-4px 0 16px}.score-progress i{display:block;height:100%;background:#9da871;border-radius:6px}