:root{--pink:#ff5c8f;--deep-pink:#d83268;--blue:#075ebc;--yellow:#ffd83d;--ink:#08203d}
.cake-page{overflow-x:hidden;background:#fff7e9;color:var(--ink)}.cake-page .nav{color:var(--ink)}.cake-page .nav-links a.active:after{right:0;background:var(--pink)}
.cake-intro{position:relative;padding:145px 20px 42px;text-align:center;background:radial-gradient(circle at 12% 25%,#fff 0 6%,transparent 24%),linear-gradient(145deg,#fff8e8,#ffe8f1);overflow:hidden}.back-games{display:inline-flex;margin-bottom:14px;color:var(--blue);font-size:13px;font-weight:900;text-decoration:none}.cake-kicker{display:flex;justify-content:center;align-items:center;gap:10px;color:var(--blue);font-size:11px;font-weight:1000;letter-spacing:2px;text-transform:uppercase}.cake-kicker b{width:9px;height:9px;border-radius:50%;background:var(--pink);box-shadow:0 0 0 7px #ff5c8f21}.cake-intro h1{margin:17px 0 10px;font:800 clamp(52px,6.5vw,92px)/.84 "Baloo 2";letter-spacing:-4px}.cake-intro h1 em{position:relative;color:var(--pink);font-style:normal}.cake-intro h1 em:after{content:"";position:absolute;z-index:-1;left:0;right:0;bottom:4px;height:9px;border-radius:50%;background:var(--yellow);transform:rotate(-1deg)}.cake-intro p{max-width:720px;margin:auto;color:#607185;font-size:17px}
.factory-shell{width:min(1400px,calc(100% - 32px));margin:0 auto 30px;padding:13px;border:1px solid #e8dacd;border-radius:34px;background:#ffffffc9;box-shadow:0 32px 90px #835e7140}.game-steps{display:grid;grid-template-columns:auto 1fr auto 1fr auto 1fr auto;align-items:center;gap:12px;padding:8px 20px 18px}.game-steps>div{display:flex;align-items:center;gap:8px;color:#969aa2;font-size:9px;font-weight:1000;letter-spacing:1px;text-transform:uppercase}.game-steps b{display:grid;width:31px;height:31px;place-items:center;border:2px solid #d8d9dd;border-radius:50%;background:white;font:900 13px "Baloo 2"}.game-steps i{height:2px;border-radius:10px;background:#e4e2df}.game-steps .is-active,.game-steps .is-complete{color:var(--blue)}.game-steps .is-active b{border-color:var(--pink);background:var(--pink);color:white;box-shadow:0 0 0 6px #ff5c8f1c}.game-steps .is-complete b{border-color:#4cc692;background:#4cc692;color:white}
.game-layout{display:grid;grid-template-columns:370px minmax(0,1fr);min-height:720px;overflow:hidden;border-radius:24px;background:white}.creator-panel{position:relative;z-index:10;padding:22px;background:linear-gradient(150deg,#fffdf9,#fff6ed);border-right:1px solid #eee3d8;transition:.35s}.panel-heading{padding-bottom:16px;margin-bottom:15px;border-bottom:1px solid #e9e1d8}.panel-heading>span{color:var(--pink);font-size:8px;font-weight:1000;letter-spacing:2px}.panel-heading h2{margin:3px 0 2px;font:800 26px/1 "Baloo 2"}.panel-heading p{margin:0;color:#7b8793;font-size:11px;line-height:1.45}.builder-section{padding-bottom:14px;margin-bottom:13px;border-bottom:1px solid #ece5de}.builder-section h3{display:flex;align-items:center;gap:7px;margin:0 0 9px;font:800 13px "Baloo 2"}.builder-section h3 b{color:var(--pink);font-size:9px}.drag-tray{touch-action:none}.drag-item{position:relative;user-select:none;-webkit-user-select:none;cursor:grab;touch-action:none}.drag-item:active{cursor:grabbing}.big-options{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.big-options .drag-item{display:grid;min-height:79px;place-content:center;padding:7px 3px;border:2px solid #e5e2df;border-radius:13px;background:linear-gradient(145deg,#fff,#f7f2ed);color:#687583;text-align:center;font:900 9px Nunito;box-shadow:0 6px 0 #ded7d0,0 10px 18px #49301c16;transition:.2s}.big-options .drag-item:hover{transform:translateY(-2px)}.big-options .drag-item.is-selected{border-color:var(--blue);background:linear-gradient(145deg,#fff,#ddecfa);color:var(--blue);box-shadow:0 6px 0 #abc8df}.big-options small,.candle-item small{position:absolute;right:5px;top:5px;color:var(--pink);font-size:5px;letter-spacing:1px}.tier-icon{position:relative;display:block;width:43px;height:34px;margin:0 auto 4px;filter:drop-shadow(0 5px 3px #79234235)}.tier-icon:before,.tier-icon:after{content:"";position:absolute;left:50%;bottom:0;width:42px;height:13px;border-radius:8px 8px 3px 3px;background:linear-gradient(90deg,#c63769,#ff8bad 38%,#ffb4ca 54%,#d43d70);border-top:2px solid #ffd7e3;translate:-50%;box-shadow:inset -4px -3px 4px #a72f5c3d}.tier-icon:after{bottom:12px;width:30px}.tier-icon.two:after{display:none}.tier-icon.grand:after{bottom:13px;width:31px;box-shadow:0 -12px 0 -2px #ff8bad,inset -4px -3px 4px #a72f5c3d}
.color-options{display:flex;gap:10px}.color-options .drag-item{width:42px;height:42px;border:4px solid white;border-radius:50%;background:radial-gradient(circle at 30% 23%,#fff 0 8%,var(--color) 18% 62%,color-mix(in srgb,var(--color),#000 27%));box-shadow:0 0 0 1px #d8d3ce,0 8px 0 color-mix(in srgb,var(--color),#000 22%),0 11px 15px #3f2e2622}.color-options .drag-item.is-selected{box-shadow:0 0 0 3px var(--ink),0 8px 0 color-mix(in srgb,var(--color),#000 22%)}.color-options .drag-item.is-selected:after{content:"✓";position:absolute;inset:0;display:grid;place-items:center;color:white;font-weight:1000;text-shadow:0 2px 4px #0006}.topping-options{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.topping-options .drag-item{display:flex;align-items:center;gap:8px;min-height:48px;padding:6px 8px;border:2px solid #e7e2dc;border-radius:12px;background:linear-gradient(145deg,#fff,#f3eee9);color:#566779;font:900 9px Nunito;box-shadow:0 5px 0 #ddd6cf,0 9px 12px #49301c12}.topping-options .drag-item:hover{transform:translateY(-2px)}.topping-options i{position:relative;display:grid;width:31px;height:31px;place-items:center;border-radius:9px;background:#eef4f8;color:var(--pink);font:900 20px/1 Nunito;font-style:normal;text-shadow:1px 2px 0 #a91e5035;transform:perspective(60px) rotateX(-7deg) rotateY(10deg);box-shadow:inset -5px -5px 7px #18334820,0 5px 5px #172d3b20}.decor-sprinkle i{display:flex;align-items:center;justify-content:center;gap:2px}.decor-sprinkle u{width:4px;height:18px;border-radius:4px;background:#ff4f82;transform:rotate(25deg);box-shadow:2px 2px 1px #a91e50}.decor-sprinkle u:nth-child(2){height:14px;background:#268ee9;transform:rotate(-25deg)}.decor-sprinkle u:nth-child(3){background:#ffd127}.decor-candy i:after{content:"";width:19px;height:19px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff 0 10%,#56cbff 18%,#0874d1 67%);box-shadow:inset -4px -5px 5px #044f90,0 4px 5px #0b365a42}.decor-star i{color:#ffd32e}.decor-heart i{color:#ff3971}.candle-section{border:0;margin-bottom:10px}.candle-tools{display:flex;align-items:center;gap:10px}.candle-item{display:flex;min-width:108px;min-height:48px;align-items:center;gap:9px;padding:5px 9px;border:2px solid #e7e2dc;border-radius:12px;background:linear-gradient(145deg,#fff,#f3eee9);font:900 9px Nunito;box-shadow:0 5px 0 #ddd6cf}.candle-item i{position:relative;width:10px;height:33px;margin-left:8px;border-radius:5px;background:repeating-linear-gradient(-30deg,#0d75d0 0 6px,#fff 6px 9px);box-shadow:inset -3px -2px 3px #003c745c,2px 4px 4px #16345136}.candle-item i:before{content:"";position:absolute;left:0;top:-14px;width:10px;height:17px;border-radius:80% 20% 65% 35%;background:radial-gradient(circle at 50% 60%,#fff7b5 0 17%,#ff9a25 25% 65%,#ff435d);filter:drop-shadow(0 0 4px #ffad31)}.design-actions{display:flex;gap:5px;margin-left:auto}.design-actions button{padding:8px 9px;border:1px solid #dfe5e9;border-radius:9px;background:white;color:#647486;font:900 8px Nunito;cursor:pointer}.invite-calinou{display:flex;width:100%;min-height:56px;align-items:center;justify-content:space-between;padding:0 12px 0 19px;border:0;border-radius:15px;background:linear-gradient(135deg,#ff5c8f,#ef3c63);color:white;font:1000 13px Nunito;box-shadow:0 8px 0 #b82149,0 18px 28px #cc31534d;cursor:pointer}.invite-calinou b{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;background:white;color:var(--pink);font-size:18px}.invite-calinou:hover{transform:translateY(-2px)}.invite-calinou:active{transform:translateY(6px);box-shadow:0 2px 0 #b82149}
.game-stage{position:relative;isolation:isolate;min-width:0;min-height:720px;overflow:hidden;background:#d9f1ff}.stage-background{position:absolute;z-index:-5;inset:0;background:url("assets/cake-factory-kitchen-3d.webp") center/cover no-repeat;transform:scale(1.015)}.stage-background:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#ffffff08 58%,#5e2e0015),radial-gradient(circle at 50% 48%,transparent 0 35%,#4b2c1516 100%)}#cake-3d{position:absolute;z-index:2;inset:0;width:100%;height:100%;touch-action:none;cursor:grab}#cake-3d:active{cursor:grabbing}.cake-shadow{position:absolute;z-index:1;left:50%;bottom:7%;width:43%;height:10%;border-radius:50%;background:#4a290640;filter:blur(16px);translate:-50%}.stage-label{position:absolute;z-index:8;left:18px;top:17px;padding:10px 13px;border:1px solid #ffffff;border-radius:12px;background:#ffffffe6;box-shadow:0 10px 28px #1b466325}.stage-label span{display:block;color:var(--pink);font-size:7px;font-weight:1000;letter-spacing:1.7px}.stage-label strong{font:800 16px/1 "Baloo 2"}.drag-coach{position:absolute;z-index:9;left:50%;top:50%;display:grid;min-width:210px;place-items:center;padding:15px 18px;border:2px solid white;border-radius:19px;background:#075ebce8;color:white;text-align:center;box-shadow:0 18px 48px #00325a52;translate:-50% -50%;pointer-events:none;animation:coachOut .7s 4.3s forwards}.drag-coach i{font-style:normal;font-size:33px;animation:fingerDrag 1.4s ease-in-out infinite}.drag-coach span{font:800 17px/1 "Baloo 2"}.drag-coach b{color:var(--yellow);font-size:9px}.drop-feedback{position:absolute;z-index:25;left:50%;top:15%;padding:8px 14px;border-radius:999px;background:#ff4e75;color:white;font:900 10px Nunito;opacity:0;translate:-50% -8px;pointer-events:none}.drop-feedback.is-visible{animation:dropMessage .9s ease}.drag-ghost{position:fixed;z-index:99999;display:grid;width:74px;height:74px;place-items:center;border:3px solid white;border-radius:20px;background:#fffffff2;box-shadow:0 18px 45px #132a3b55;pointer-events:none;transform:translate(-50%,-50%) rotate(-5deg) scale(1.08)}.drag-ghost .tier-icon{scale:1.18}.drag-ghost[data-type="color"]{border-radius:50%;background:var(--ghost-color)}.drag-ghost[data-type="decor"]{font-size:38px}.drag-ghost[data-type="candle"]{font-size:40px}.game-stage.is-drag-target:after{content:"DROP IT ON THE CAKE";position:absolute;z-index:6;inset:12px;border:4px dashed #ff4e75;border-radius:23px;display:grid;place-items:end center;padding:0 0 26px;color:#ff3a69;font:1000 12px Nunito;letter-spacing:1px;background:#fff4;pointer-events:none}.cake-pop{animation:itemPop .36s cubic-bezier(.18,.89,.32,1.4)}
.mobile-drag-dock{display:none}
.calinou-walk-path{position:absolute;z-index:7;left:-28%;bottom:1%;width:26%;height:61%;opacity:0;pointer-events:none}.calinou-walk-path:after{content:"";position:absolute;left:13%;right:10%;bottom:1%;height:7%;border-radius:50%;background:#3a230a44;filter:blur(9px);transform:scaleX(.8)}.calinou-runner{position:relative;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 10px #3a230a35);transform-origin:50% 90%}.game-stage.is-inviting .calinou-walk-path{opacity:1;animation:walkAcross 4.5s linear forwards}.game-stage.is-inviting .calinou-runner{animation:walkingBody .22s ease-in-out infinite alternate}.game-stage.is-arrived .calinou-walk-path{left:auto;right:-1%;bottom:0;width:46%;height:81%;opacity:1;animation:none}.game-stage.is-arrived .calinou-runner{object-position:center bottom;animation:calinouCelebrate 1.6s ease-in-out infinite}.invite-message{position:absolute;z-index:20;left:50%;top:5%;display:none;min-width:min(480px,88%);padding:13px 20px;text-align:center;border:2px solid white;border-radius:18px;background:#075ebce8;color:white;box-shadow:0 18px 45px #002e5a55;translate:-50%}.invite-message.is-visible{display:block;animation:messagePop .45s ease-out}.invite-message span{display:block;color:var(--yellow);font-size:8px;font-weight:1000;letter-spacing:2px}.invite-message strong{font:800 19px/1.1 "Baloo 2"}
.celebration-balloons{display:none}.game-stage.is-inviting .celebration-balloons,.game-stage.is-arrived .celebration-balloons{display:block}.celebration-balloons i{position:absolute;z-index:5;width:49px;height:62px;border-radius:50%;background:radial-gradient(circle at 31% 24%,#fff 0 7%,var(--balloon) 13% 65%,#075ebc 115%);box-shadow:inset -7px -10px 13px #0002;animation:balloonFloat 3s ease-in-out infinite}.celebration-balloons i:after{content:"";position:absolute;left:50%;top:60px;width:1px;height:76px;background:white}.celebration-balloons i:nth-child(1){--balloon:#ff5687;left:4%;top:13%}.celebration-balloons i:nth-child(2){--balloon:#ffd83d;left:12%;top:7%;animation-delay:-1s}.celebration-balloons i:nth-child(3){--balloon:#55bdf2;right:14%;top:7%;animation-delay:-2s}.celebration-balloons i:nth-child(4){--balloon:#8c6ce5;right:5%;top:18%;animation-delay:-.6s}.celebration-balloons i:nth-child(5){--balloon:#55d59f;right:24%;top:4%;width:38px;height:48px;animation-delay:-1.5s}.confetti-layer{position:absolute;z-index:30;inset:0;overflow:hidden;pointer-events:none}.confetti-layer i{position:absolute;top:-8%;width:10px;height:18px;border-radius:3px;background:var(--confetti);animation:confettiFall 2s linear forwards}
.blow-card,.finish-card{position:absolute;z-index:22;left:50%;bottom:15px;display:none;width:min(710px,94%);align-items:center;gap:12px;padding:12px 14px;border:2px solid white;border-radius:19px;background:#fffffff2;box-shadow:0 18px 45px #173c523b;translate:-50%}.blow-card.is-visible,.finish-card.is-visible{display:flex;animation:cardUp .4s ease-out}.wish-icon{font-size:31px}.blow-card small,.finish-card small{color:var(--pink);font-size:7px;font-weight:1000;letter-spacing:2px}.blow-card h3,.finish-card h3{margin:0;font:800 20px/1 "Baloo 2"}.blow-card p,.finish-card p{margin:2px 0 0;color:#6c7884;font-size:9px}.blow-card>button,.finish-card>button{min-height:40px;padding:0 13px;border:0;border-radius:11px;background:var(--blue);color:white;font:900 9px Nunito;cursor:pointer}.blow-card>button:first-of-type{margin-left:auto}.sound-meter{display:none;width:80px;height:12px;overflow:hidden;border-radius:99px;background:#dce7ee}.sound-meter.is-listening{display:block}.sound-meter i{display:block;width:3%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4cc692,#ffd83d,#ff4b68)}.magic-blow{display:none!important;background:#fff1d2!important;color:#825700!important}.magic-blow.is-visible{display:block!important}.finish-card>div{min-width:150px}.finish-card label{display:grid;gap:2px;flex:1}.finish-card label span{font-size:7px;font-weight:1000;letter-spacing:1px;text-transform:uppercase}.finish-card input{width:100%;height:39px;padding:0 11px;border:2px solid #dde5eb;border-radius:10px;background:white;font:800 11px Nunito;outline:0}.finish-card input:focus{border-color:var(--blue)}.finish-card #download-picture{background:linear-gradient(135deg,#ff5c8f,#ef3c63)}.finish-card .restart-game{background:#eaf3fa;color:var(--blue)}
.factory-shell.is-celebrating .creator-panel{opacity:.22;pointer-events:none;filter:saturate(.4)}.factory-shell.is-celebrating #cake-3d{pointer-events:none}.how-to-play{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;width:min(1100px,calc(100% - 32px));margin:0 auto 80px}.how-to-play article{display:flex;align-items:center;gap:13px;padding:17px;border:1px solid #eaded4;border-radius:19px;background:white;box-shadow:0 13px 30px #79553412}.how-to-play article>b{display:grid;min-width:47px;height:47px;place-items:center;border-radius:14px;background:var(--blue);color:white;font:900 19px "Baloo 2"}.how-to-play h3{margin:0;font:800 17px "Baloo 2"}.how-to-play p{margin:0;color:#687888;font-size:11px;line-height:1.4}.cake-page footer{background:var(--ink)}
@keyframes walkAcross{0%{left:-35%;transform:scale(.82)}8%{transform:scale(.85)}90%{left:70%;transform:scale(1)}100%{left:76%;opacity:1;transform:scale(1)}}@keyframes calinouRunFrames{from{background-position:0 50%}to{background-position:100% 50%}}@keyframes walkingBody{from{transform:translateY(3px) rotate(-1.5deg)}to{transform:translateY(-8px) rotate(1.5deg)}}@keyframes calinouCelebrate{50%{transform:translateY(-7px) rotate(1deg)}}@keyframes balloonFloat{50%{transform:translateY(-11px) rotate(3deg)}}@keyframes confettiFall{to{transform:translate(var(--drift),115vh) rotate(760deg)}}@keyframes messagePop{from{opacity:0;transform:translateY(-15px) scale(.92)}}@keyframes cardUp{from{opacity:0;transform:translate(-50%,18px)}}@keyframes fingerDrag{0%,100%{transform:translate(-25px,8px) rotate(-8deg)}50%{transform:translate(27px,-18px) rotate(8deg)}}@keyframes coachOut{to{opacity:0;visibility:hidden;transform:scale(.9)}}@keyframes dropMessage{0%{opacity:0;translate:-50% 10px}20%,70%{opacity:1;translate:-50% 0}100%{opacity:0;translate:-50% -8px}}@keyframes itemPop{from{transform:scale(.05)}to{transform:scale(1)}}
@media(max-width:1020px){.game-layout{grid-template-columns:315px 1fr}.calinou-walk-path{width:36%}.game-stage.is-arrived .calinou-walk-path{width:52%}}
@media(max-width:760px){.cake-intro{padding:115px 16px 31px}.cake-intro h1{font-size:48px;letter-spacing:-2px}.cake-intro p{font-size:14px}.factory-shell{width:calc(100% - 12px);padding:5px;border-radius:22px}.game-steps{gap:4px;padding:10px 7px 13px}.game-steps>div span{display:none}.game-steps>div{justify-content:center}.game-steps i{min-width:8px}.game-layout{display:flex;min-height:0;flex-direction:column}.game-stage{order:1;min-height:550px}.creator-panel{order:2;padding:18px;border-right:0;border-top:1px solid #eee3d8}.builder-section{padding-bottom:13px;margin-bottom:13px}.big-options{grid-template-columns:repeat(3,1fr)}.topping-options{grid-template-columns:repeat(4,1fr)}.topping-options .drag-item{justify-content:center;padding:5px}.topping-options .drag-item span{display:none}.mobile-drag-dock{position:absolute;z-index:12;left:8px;right:8px;bottom:9px;display:flex;gap:7px;overflow-x:auto;padding:8px;border:2px solid white;border-radius:17px;background:#ffffffe8;box-shadow:0 13px 35px #133d5961;scrollbar-width:none;touch-action:pan-x}.mobile-drag-dock::-webkit-scrollbar{display:none}.mobile-drag-dock .drag-item{display:grid;min-width:45px;height:45px;place-items:center;border-radius:12px;background:linear-gradient(145deg,#fff,#e9eef2);color:var(--pink);font:1000 21px "Baloo 2";box-shadow:0 4px 0 #cad2d8}.mobile-drag-dock .dock-cake{background:linear-gradient(145deg,#ff96b8,#cf386d);color:white}.mobile-drag-dock .dock-color{min-width:45px;border:4px solid white;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff 0 8%,var(--color) 18% 65%,color-mix(in srgb,var(--color),#000 24%));box-shadow:0 0 0 1px #cbd4da,0 4px 0 color-mix(in srgb,var(--color),#000 22%)}.factory-shell.is-celebrating .mobile-drag-dock{display:none}.calinou-walk-path{width:38%;height:60%}.game-stage.is-arrived .calinou-walk-path{right:-11%;bottom:37px;width:69%;height:72%}.blow-card,.finish-card{bottom:7px;flex-wrap:wrap;gap:7px;padding:9px 10px}.blow-card>div{flex:1}.blow-card>button:first-of-type{margin-left:0}.finish-card>div{width:100%;text-align:center}.finish-card label{min-width:150px}.finish-card>button{flex:1}.how-to-play{grid-template-columns:1fr}}
@media(max-width:470px){.cake-intro h1{font-size:41px}.game-stage{min-height:500px}.stage-label{left:8px;top:8px}.stage-label strong{font-size:13px}.creator-panel{padding:15px}.color-options{gap:9px}.color-options .drag-item{width:39px;height:39px}.drag-coach{top:53%;min-width:185px}.game-stage.is-arrived .calinou-walk-path{right:-17%;bottom:40px;width:77%;height:69%}.invite-message{top:4%;padding:10px}.invite-message strong{font-size:15px}.celebration-balloons i:nth-child(5){display:none}.blow-card h3,.finish-card h3{font-size:16px}.blow-card p,.finish-card p{font-size:8px}.sound-meter{width:55px}}
@media(prefers-reduced-motion:reduce){.celebration-balloons i,.game-stage.is-arrived .calinou-walk-path img{animation:none!important}}
