:root{--cream:#fff8f0;--cream-2:#fff1e4;--pink:#ff9ec4;--pink-deep:#f06a9e;--pink-soft:#ffd9e6;--mint:#9fe3cf;--mint-deep:#4fbf9f;--butter:#ffe08a;--butter-deep:#f2b93b;--lavender:#c9b6ff;--sky:#a8d8ff;--cocoa:#5b3a2e;--cocoa-soft:#8a6556;--ink:#3a2320;--white:#fff;--font-display:"Fredoka", "Nunito", system-ui, sans-serif;--font-ui:"Nunito", system-ui, sans-serif;--radius-s:12px;--radius-m:20px;--radius-l:28px;--shadow-soft:0 6px 0 #5b3a2e1f, 0 12px 24px #5b3a2e1f;--shadow-pop:0 5px 0 #5b3a2e33;--spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*,:before,:after{box-sizing:border-box}html,body{background:var(--pink-soft);height:100%;color:var(--cocoa);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0}#app{min-height:100%}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0}button:focus-visible{outline:3px solid var(--pink-deep);outline-offset:3px}h1,h2,h3{font-family:var(--font-display);margin:0;line-height:1.1}.donut{width:100%;height:auto;display:block;overflow:visible}.donut .flame,.donut .glow,.donut .twinkle,.donut .zzz text,.donut .glaze-pour,.donut .sprinkle-drop,.donut .topper-plop,.donut .face-pop{transform-box:fill-box}.donut .flame{transform-origin:50% 100%;animation:.9s ease-in-out infinite alternate flicker}.donut .glow{transform-origin:50%;animation:1.6s ease-in-out infinite alternate glow}.donut .twinkle{transform-origin:50%;animation:2.4s ease-in-out infinite twinkle}.donut .zzz text{animation:2.6s ease-in-out infinite zzz}.donut .zzz text:nth-child(2){animation-delay:.6s}.donut.animated .glaze-pour{transform-origin:50% 30%;animation:pour .55s var(--spring) both}.donut.animated .sprinkle-drop{animation:drop .5s var(--spring) both}.donut.animated .topper-plop{transform-origin:50% 100%;animation:plop .6s var(--spring) both}.donut.animated .face-pop{transform-origin:50%;animation:facepop .5s var(--spring) both}.donut.animated .drizzle-draw path{stroke-dasharray:1;animation:draw .8s var(--ease-out) both}@keyframes pour{0%{opacity:0;transform:translateY(-10px)scale(.9,.75)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes drop{0%{opacity:0;transform:translateY(-26px)}40%{opacity:1}to{opacity:1;transform:none}}@keyframes plop{0%{opacity:0;transform:translateY(-40px)scale(.7)}50%{opacity:1;transform:translateY(2px)scale(1.12,.9)}to{transform:none}}@keyframes facepop{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes flicker{0%{transform:scale(1)rotate(-3deg)}to{transform:scale(.9,1.1)rotate(3deg)}}@keyframes glow{0%{opacity:.6;transform:scale(.85)}to{opacity:1;transform:scale(1.15)}}@keyframes twinkle{0%,to{opacity:1;transform:scale(1)rotate(0)}50%{opacity:.6;transform:scale(.45)rotate(45deg)}}@keyframes zzz{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.6;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background-color:var(--pink-soft);background-image:radial-gradient(circle at 25% 25%,#ffffffb3 0 5px,#0000 6px),radial-gradient(circle at 75% 75%,#ffffffb3 0 5px,#0000 6px);background-size:56px 56px}.app{min-height:100dvh}.screen-wrap{animation:screen-in .45s var(--ease-out) backwards}@keyframes screen-in{0%{opacity:0;transform:translateY(14px)scale(.99)}to{opacity:1;transform:none}}.screen{flex-direction:column;min-height:100dvh;display:flex}.btn{font-family:var(--font-display);background:var(--white);color:var(--cocoa);transition:transform .12s var(--ease-out), box-shadow .12s, filter .2s;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:1rem;font-weight:600;display:inline-flex;position:relative;box-shadow:0 4px #5b3a2e29}.btn svg{width:20px;height:20px}.btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px #5b3a2e29}.btn:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #5b3a2e29}.btn:disabled{opacity:.5;cursor:default}.btn-big{padding:16px 30px;font-size:1.2rem}.btn-primary{background:linear-gradient(180deg, #ff8fbb, var(--pink-deep));color:var(--white);text-shadow:0 1px #a0285a59;box-shadow:0 5px #c94d7e}.btn-primary:hover:not(:disabled){box-shadow:0 7px #c94d7e}.btn-primary:active:not(:disabled){box-shadow:0 2px #c94d7e}.btn-mint{background:linear-gradient(180deg, #b7f0de, var(--mint));box-shadow:0 5px #5fbfa0}.btn-lavender{background:linear-gradient(180deg, #ddd0ff, var(--lavender));box-shadow:0 5px #9a83e6}.btn-treat{background:linear-gradient(180deg, #fff0b8, var(--butter));box-shadow:0 5px #e0ae3a}.btn-ghost{box-shadow:none;color:var(--cocoa-soft);background:0 0}.btn-ghost:hover:not(:disabled){box-shadow:none;background:#ffffff80}.round-btn{background:var(--white);width:44px;height:44px;color:var(--cocoa);transition:transform .15s var(--spring), opacity .2s;border-radius:50%;flex:none;place-items:center;display:grid;box-shadow:0 3px #5b3a2e24}.round-btn svg{width:22px;height:22px}.round-btn:hover:not(:disabled){transform:scale(1.08)}.round-btn:active:not(:disabled){transform:scale(.92)}.round-btn:disabled{opacity:.35;cursor:default}.round-btn.off{opacity:.45}.count-chip{background:var(--white);color:#8b6be8;border-radius:999px;margin-left:4px;padding:1px 8px;font-size:.8rem}.topbar{z-index:20;padding:max(10px, env(safe-area-inset-top)) 16px 10px;background:linear-gradient(var(--pink-soft) 70%, #ffd9e600);grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;display:grid;position:sticky;top:0}.topbar-left,.topbar-right{align-items:center;gap:8px;display:flex}.topbar-right{justify-content:flex-end}.topbar-center{text-align:center}.topbar-title{font-family:var(--font-display);font-size:1.25rem;font-weight:700}.progress-dots{justify-content:center;gap:6px;margin-top:4px;display:flex}.progress-dots .dot{width:10px;height:10px;transition:background .3s, transform .3s var(--spring);background:#fffc;border-radius:50%}.progress-dots .dot.done{background:var(--pink-deep)}.progress-dots .dot.now{background:var(--butter-deep);transform:scale(1.3)}.pill{background:var(--white);font-family:var(--font-display);border-radius:999px;align-items:center;gap:6px;padding:6px 12px 6px 8px;font-weight:700;display:inline-flex;box-shadow:0 3px #5b3a2e1f}.title-screen{justify-content:center;align-items:center;padding:24px 16px;position:relative;overflow:hidden}.title-sound{top:max(12px, env(safe-area-inset-top));z-index:3;gap:8px;display:flex;position:absolute;right:16px}.title-inner{z-index:2;background:var(--cream);text-align:center;border-radius:40px;width:min(460px,100%);padding:64px 28px 28px;position:relative;box-shadow:0 10px #f06a9e40,0 30px 60px #a03c5a2e}.awning{background:repeating-linear-gradient(90deg, var(--pink) 0 40px, var(--white) 40px 80px);border-radius:20px 20px 0 0;height:58px;position:absolute;top:-18px;left:-14px;right:-14px;box-shadow:0 4px #f06a9e40}.awning:after{content:"";background:radial-gradient(circle at 20px 0, var(--pink) 19px, transparent 20px) 0 0 / 80px 20px repeat-x, radial-gradient(circle at 60px 0, var(--white) 19px, transparent 20px) 0 0 / 80px 20px repeat-x;filter:drop-shadow(0 3px #f06a9e33);height:20px;position:absolute;bottom:-18px;left:0;right:0}.logo{flex-direction:column;align-items:center;margin-top:10px;display:flex}.logo-small{color:var(--cocoa-soft);letter-spacing:.3em;text-transform:uppercase;font-size:1.1rem;font-weight:600}.logo-big{color:var(--pink-deep);letter-spacing:-.01em;text-shadow:0 4px #c94d7e33;-webkit-text-stroke:0;font-size:clamp(2.8rem,12vw,3.8rem);font-weight:700}.logo-big span{color:var(--cocoa)}.hero-donut{width:min(300px,78vw);margin:4px auto 8px;animation:3s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-8px)rotate(1.5deg)}}.title-buttons{flex-direction:column;gap:12px;display:flex}.title-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.title-row .btn-big{padding:14px 12px;font-size:1.05rem}.title-stats{color:var(--cocoa-soft);flex-wrap:wrap;justify-content:center;gap:6px 14px;margin-top:18px;font-size:.9rem;font-weight:700;display:flex}.title-stats span{align-items:center;gap:4px;display:inline-flex}.title-foot{z-index:2;font-family:var(--font-display);color:var(--pink-deep);opacity:.8;margin-top:20px;font-weight:600;position:relative}.floaters{pointer-events:none;position:absolute;inset:0}.floater{opacity:.95;width:130px;animation:7s ease-in-out infinite float;position:absolute}.floater.f1{animation-delay:-1s;top:10%;left:4%}.floater.f2{width:150px;animation-delay:-3s;top:16%;right:5%}.floater.f3{width:110px;animation-delay:-5s;bottom:12%;left:9%}.floater.f4{width:140px;animation-delay:-2s;bottom:8%;right:8%}.floater.f5{width:100px;animation-delay:-4s;top:46%;left:22%}@keyframes float{0%,to{transform:translateY(0)rotate(-6deg)}50%{transform:translateY(-18px)rotate(6deg)}}@media (width<=720px){.floater{opacity:.6;width:90px}.floater.f2,.floater.f4{width:100px}.floater.f5{display:none}}.build-layout{flex:1;grid-template-columns:minmax(0,1fr);align-content:start;gap:12px;width:100%;max-width:1180px;margin:0 auto;padding:0 16px 16px;display:grid}@media (width>=900px){.build-layout{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);grid-template-areas:"scene side""stage side";column-gap:24px}.build-layout>.scene{grid-area:scene}.build-layout>.stage{grid-area:stage}.build-layout>.side{grid-area:side}.build-layout.free{grid-template-rows:auto 1fr auto;grid-template-areas:"head trays""stage trays""stage act"}.build-layout.free>.free-head{grid-area:head}.build-layout.free>.stage{grid-area:stage}.build-layout.free>.trays{grid-area:trays}.build-layout.free>.action-row{grid-area:act}}.free-head{text-align:center}.free-head h2{color:var(--pink-deep);font-size:1.8rem}.free-head p{color:var(--cocoa-soft);margin:4px 0 0;font-weight:700}.scene{border-radius:var(--radius-l);height:210px;box-shadow:var(--shadow-soft);position:relative;overflow:hidden}@media (width>=900px){.scene{height:260px}}.scene-wall{background:radial-gradient(circle,#ffffff80 0 3px,#0000 4px) 0 0/28px 28px,repeating-linear-gradient(90deg,#ffe7ef 0 26px,#fff3f7 26px 52px);position:absolute;inset:0}.scene-window{border:6px solid var(--white);opacity:.9;background:linear-gradient(#bfe6ff,#e6f6ff);border-radius:45px 45px 12px 12px;width:90px;height:90px;position:absolute;top:16px;right:18px;box-shadow:inset 0 -10px #fff9}.scene-counter{z-index:2;background:linear-gradient(#f6c1a0,#e9a883);height:34px;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -6px #fff4ec,0 -10px #5b3a2e14}.scene-counter:before{content:"";background:repeating-linear-gradient(90deg,#0000 0 60px,#5b3a2e14 60px 62px);position:absolute;inset:12px 0 0}.scene-customer{width:170px;animation:customer-in .7s var(--spring) both;z-index:1;position:absolute;bottom:-18px;left:4%}.scene-customer .customer{transform-origin:50% 100%;animation:2.6s ease-in-out infinite idle}.scene-customer.reacting .customer{animation:react .6s var(--spring)}@media (width>=900px){.scene-customer{width:200px;left:6%}}@keyframes customer-in{0%{transform:translate(-140%)rotate(-8deg)}to{transform:none}}@keyframes idle{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-3px)scale(1.01,.99)}}@keyframes react{0%{transform:scale(1)}30%{transform:translateY(-14px)scale(.96,1.06)}60%{transform:translateY(0)scale(1.05,.95)}to{transform:none}}.customer{width:100%;height:auto;display:block;overflow:visible}.customer .blink{transform-box:fill-box;transform-origin:50%;animation:4.2s infinite blink}.customer .chew{transform-box:fill-box;transform-origin:50%;animation:.3s ease-in-out infinite alternate chew}.customer .propeller{animation:.6s linear infinite spin}.customer .heart-eye{transform-box:fill-box;transform-origin:50%;animation:.7s ease-in-out infinite heartbeat}@keyframes blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes chew{0%{transform:scaleY(.4)}to{transform:scale(1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes heartbeat{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.bubble{z-index:3;background:var(--white);max-height:calc(100% - 60px);animation:bubble-in .4s var(--spring) .25s both;transform-origin:0 70%;border-radius:22px;padding:10px 14px 12px;position:absolute;top:14px;left:calc(4% + 150px);right:12px;overflow:auto;box-shadow:0 4px #5b3a2e1a,0 10px 24px #5b3a2e1a}.bubble:before{content:"";border:10px solid #0000;border-right-color:var(--white);border-left:0;position:absolute;top:38px;left:-10px}@media (width>=900px){.bubble{padding:14px 18px 16px;top:22px;left:calc(6% + 185px)}}@keyframes bubble-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.bubble-name{font-family:var(--font-display);color:var(--pink-deep);flex-wrap:wrap;align-items:baseline;gap:6px;font-size:.95rem;font-weight:700;display:flex}.bubble-title{font-family:var(--font-ui);color:var(--white);background:var(--lavender);border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:800}.bubble-text{margin:4px 0 0;font-size:1rem;font-weight:700;line-height:1.35}@media (width>=900px){.bubble-text{font-size:1.1rem}}.bubble-ghost{visibility:hidden}.stage{place-items:center;padding:4px 0;display:grid;position:relative}.stage-donut{transform-origin:50% 80%;width:min(280px,72vw)}@media (width>=900px){.stage-donut{width:min(400px,100%)}}.stage-tools{flex-direction:column;gap:8px;display:flex;position:absolute;top:8px;right:0}.tip{background:var(--butter);border-radius:var(--radius-m);animation:bubble-in .4s var(--spring) both;margin-bottom:10px;padding:10px 14px;font-weight:700;box-shadow:0 3px #e0ae3a80}.side{flex-direction:column;display:flex}.trays{background:var(--white);border-radius:var(--radius-l);box-shadow:var(--shadow-soft);flex-direction:column;min-height:0;padding:12px;display:flex}.tray-tabs{scrollbar-width:none;gap:6px;padding:2px 2px 10px;display:flex;overflow-x:auto}.tray-tabs::-webkit-scrollbar{display:none}.tray-tab{font-family:var(--font-display);background:var(--cream-2);color:var(--cocoa-soft);transition:background .2s, color .2s, transform .2s var(--spring);border-radius:999px;flex:none;align-items:center;gap:6px;padding:8px 14px;font-size:.95rem;font-weight:600;display:inline-flex}.tray-tab:hover{transform:translateY(-1px)}.tray-tab.active{background:var(--pink-deep);color:var(--white)}.tab-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--white);border-radius:50%}.tray-options{scrollbar-width:thin;scrollbar-color:var(--pink) transparent;scroll-snap-type:x proximity;gap:10px;padding:4px 2px 8px;display:flex;overflow-x:auto}@media (width>=900px){.tray-options{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));display:grid;overflow:visible}}.option{background:var(--cream);scroll-snap-align:start;width:104px;transition:transform .2s var(--spring), border-color .2s, background .2s;border:3px solid #0000;border-radius:22px;flex-direction:column;flex:none;align-items:center;gap:2px;padding:8px 6px 10px;display:flex;position:relative}@media (width>=900px){.option{width:auto}}.option:hover:not(:disabled){transform:translateY(-3px)}.option:active:not(:disabled){transform:scale(.95)}.option.selected{border-color:var(--pink-deep);background:#fff0f6}.option-art{aspect-ratio:1;place-items:center;width:100%;display:grid}.option-name{text-align:center;font-size:.8rem;font-weight:800;line-height:1.15}.option-check{background:var(--pink-deep);width:26px;height:26px;color:var(--white);animation:facepop .3s var(--spring);border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-6px;box-shadow:0 2px #c94d7e}.option-check svg{width:16px;height:16px}.option.locked{cursor:default;opacity:.6}.option-lock{color:var(--cocoa-soft);place-items:center;gap:2px;font-size:.8rem;font-weight:800;display:grid}.option-lock svg{width:30px;height:30px}.tray-next{font-family:var(--font-display);color:var(--pink-deep);align-self:flex-end;padding:6px 8px 0;font-weight:600}.action-row{justify-content:center;padding-top:12px;display:flex}.action-row .btn{width:min(420px,100%)}@media (width<=899px){.action-row{z-index:10;padding:12px 0 max(12px, env(safe-area-inset-bottom));background:linear-gradient(#ffd9e600, var(--pink-soft) 35%);position:sticky;bottom:0}}.result-backdrop,.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#5b3a2e47;justify-content:center;align-items:flex-end;animation:.3s both fade;display:flex;position:fixed;inset:0}@media (width>=700px){.result-backdrop,.modal-backdrop{align-items:center}}.result-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#5b3a2e2e}@keyframes fade{0%{opacity:0}}.result-card,.modal{background:var(--cream);width:min(480px,100%);max-height:92dvh;padding:20px 20px max(20px, env(safe-area-inset-bottom));animation:sheet-in .5s var(--spring) both;border-radius:32px 32px 0 0;flex-direction:column;gap:14px;display:flex;position:relative;overflow:auto;box-shadow:0 -10px 40px #5b3a2e33}@media (width>=700px){.result-card,.modal{border-radius:32px;padding-bottom:24px}}@keyframes sheet-in{0%{opacity:0;transform:translateY(60%)}to{opacity:1;transform:none}}.result-top{align-items:center;gap:14px;display:flex}.result-donut{flex:none;width:112px;position:relative}.stamp{background:var(--butter);color:var(--cocoa);font-family:var(--font-display);animation:stamp .5s var(--spring) .9s both;border-radius:999px;padding:4px 10px;font-size:.85rem;font-weight:700;position:absolute;top:-4px;right:-10px;transform:rotate(12deg);box-shadow:0 3px #e0ae3a}@keyframes stamp{0%{opacity:0;transform:rotate(40deg)scale(2.2)}to{opacity:1;transform:rotate(12deg)scale(1)}}.result-head h2{color:var(--pink-deep);font-size:1.7rem}.hearts{gap:4px;margin:6px 0;display:flex}.heart-slot{display:inline-block}.heart-slot.pop{animation:heartpop .4s var(--spring)}@keyframes heartpop{0%{transform:scale(.4)}60%{transform:scale(1.35)}to{transform:scale(1)}}.heart-icon path{fill:#eedde3;transition:fill .2s}.heart-icon.on path{fill:#ff5c8d}.result-coins{font-family:var(--font-display);color:#c98a17;align-items:center;gap:6px;font-size:1.15rem;font-weight:700;display:inline-flex}.meant{background:var(--white);border-radius:22px;padding:12px 14px}.meant-title{font-family:var(--font-display);color:var(--cocoa-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px;font-size:.85rem;font-weight:700}.meant ul{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.meant-line{animation:bubble-in .35s var(--spring) both;align-items:flex-start;gap:10px;display:flex}.meant-line:nth-child(2){animation-delay:80ms}.meant-line:nth-child(3){animation-delay:.16s}.meant-line:nth-child(4){animation-delay:.24s}.meant-line:nth-child(5){animation-delay:.32s}.meant-badge{width:26px;height:26px;color:var(--white);border-radius:50%;flex:none;place-items:center;display:grid}.meant-badge svg{width:15px;height:15px}.meant-line.ok .meant-badge{background:var(--mint-deep)}.meant-line.miss .meant-badge{background:#ff7b8f}.meant-line.kind-bonus .meant-badge{background:var(--butter-deep)}.meant-main{flex-wrap:wrap;align-items:baseline;gap:2px 8px;display:flex}.meant-quote{color:var(--cocoa-soft);font-size:.9rem;font-style:italic}.meant-detail{color:var(--cocoa-soft);font-size:.85rem;font-weight:700}.meant-line.miss .meant-detail{color:#d9536b}.new-note{text-align:center;font-weight:800}.new-chip{background:var(--lavender);color:var(--white);border-radius:999px;margin-right:6px;padding:2px 10px;font-size:.8rem;display:inline-block}.summary{flex:1;justify-content:center;padding:8px 16px 28px;display:flex}.summary-card{background:var(--cream);text-align:center;width:min(640px,100%);box-shadow:var(--shadow-soft);animation:sheet-in .6s var(--spring) both;border-radius:36px;padding:36px 22px 24px;position:relative;overflow:hidden}.summary-sun{pointer-events:none;background:radial-gradient(#ffe08ab3,#0000 65%);width:360px;height:240px;position:absolute;top:-120px;left:50%;transform:translate(-50%)}.summary-card h1{color:var(--pink-deep);font-size:2.2rem;position:relative}.summary-rating{margin:6px 0 16px;font-weight:800}.summary-stats{justify-content:center;gap:16px;display:flex}.stat{background:var(--white);border-radius:22px;flex-direction:column;align-items:center;min-width:120px;padding:12px 22px;display:flex;box-shadow:0 3px #5b3a2e14}.stat b{font-family:var(--font-display);font-size:1.6rem}.stat span{color:var(--cocoa-soft);font-size:.8rem;font-weight:800}.summary-donuts{flex-wrap:wrap;justify-content:center;gap:10px;margin:20px 0;display:flex}.summary-donut{width:92px;animation:bubble-in .4s var(--spring) both}.summary-who{color:var(--cocoa-soft);font-size:.75rem;font-weight:800}.mini-hearts{justify-content:center;gap:1px;display:inline-flex}.unlocks{background:var(--white);border-radius:24px;margin-bottom:18px;padding:14px}.unlocks-title{font-family:var(--font-display);color:#8b6be8;margin-bottom:8px;font-size:1.1rem;font-weight:700}.unlocks-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.unlock{flex-direction:column;align-items:center;width:96px;font-size:.8rem;display:flex}.unlock span{color:var(--cocoa-soft);font-size:.72rem;font-weight:700}.unlock-art{width:80px}.summary-actions{flex-direction:column;align-items:center;gap:12px;display:flex}.summary-actions .btn-big{width:min(360px,100%)}.eat{text-align:center;flex-direction:column;flex:1;align-items:center;padding:0 16px 24px;display:flex}.eat-head h2{color:var(--pink-deep);font-size:2rem}.eat-sub{color:var(--cocoa-soft);margin:4px 0 0;font-weight:800}.eat-stage{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;width:min(440px,90vw);margin:12px 0;position:relative}.eat-stage:active .donut-body{filter:brightness(1.02)}.eat-stage.done{cursor:default}.tap-hint{background:var(--butter);font-family:var(--font-display);pointer-events:none;border-radius:999px;padding:6px 14px;font-size:1.2rem;font-weight:700;animation:1s ease-in-out infinite tap;position:absolute;top:8%;right:6%;box-shadow:0 3px #e0ae3a}@keyframes tap{0%,to{transform:rotate(8deg)scale(1)}50%{transform:rotate(-4deg)scale(1.12)}}.eat-meter{background:var(--white);border-radius:999px;width:min(320px,80vw);height:14px;overflow:hidden;box-shadow:inset 0 2px #5b3a2e14}.eat-meter-fill{background:linear-gradient(90deg, var(--pink), var(--pink-deep));height:100%;transition:width .3s var(--ease-out);border-radius:999px}.eat-after{animation:bubble-in .5s var(--spring) .3s both}.after-buttons{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.collection-inner{width:100%;max-width:1100px;margin:0 auto;padding:0 16px 32px}.collection-hero{justify-content:center;gap:12px;margin:4px 0 16px;display:flex}.big-count{background:var(--white);text-align:center;box-shadow:var(--shadow-soft);border-radius:24px;min-width:150px;padding:12px 22px}.big-count b{font-family:var(--font-display);color:var(--pink-deep);font-size:2rem;display:block}.big-count.gold b{color:#d99a1c}.big-count span{color:var(--cocoa-soft);font-size:.8rem;font-weight:800}.seg{background:var(--white);border-radius:999px;width:fit-content;margin:0 auto 14px;padding:4px;display:flex;box-shadow:0 3px #5b3a2e1a}.seg button{font-family:var(--font-display);color:var(--cocoa-soft);border-radius:999px;padding:8px 18px;font-weight:600;transition:background .2s,color .2s}.seg button.on{background:var(--pink-deep);color:var(--white)}.sort-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-bottom:14px;font-size:.85rem;font-weight:800;display:flex}.chip{background:#ffffffb3;border-radius:999px;padding:5px 12px;font-size:.8rem;font-weight:800}.chip.on{background:var(--cocoa);color:var(--white)}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;display:grid}@media (width<=420px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.card{background:var(--white);text-align:center;transition:transform .2s var(--spring), box-shadow .2s;animation:bubble-in .4s var(--spring) both;border-radius:24px;flex-direction:column;align-items:center;gap:4px;padding:10px 10px 12px;display:flex;box-shadow:0 4px #5b3a2e14}.card:hover{transform:translateY(-4px)rotate(-1deg);box-shadow:0 8px #5b3a2e14}.card-art{width:100%;padding:4px 8px}.card-name{font-family:var(--font-display);font-size:.92rem;font-weight:600;line-height:1.15}.card-meta{color:var(--cocoa-soft);align-items:center;gap:6px;min-height:14px;font-size:.75rem;font-weight:800;display:flex}.card-hint{color:var(--cocoa-soft);font-size:.75rem;font-weight:700;line-height:1.25}.card.sig.got{background:linear-gradient(180deg, #fff9e6, var(--white));box-shadow:0 4px #f2b93b59}.card.sig.locked .card-art,.detail.locked .detail-art{filter:brightness(0)opacity(.12)}.empty{text-align:center;color:var(--cocoa-soft);padding:40px 16px;font-weight:800}.modal{text-align:center;align-items:center}.modal.small{width:min(380px,100%)}.modal h2,.modal h3{color:var(--pink-deep)}.modal h2{font-size:1.6rem}.modal p{color:var(--cocoa-soft);margin:0;font-weight:700}.modal-close{position:absolute;top:14px;right:14px}.detail-art{width:min(300px,75vw)}.detail-sub{font-style:italic}.detail-stats{font-size:.85rem}.chips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.ing-chip{background:var(--white);border-radius:999px;align-items:center;gap:6px;padding:4px 10px 4px 6px;font-size:.8rem;font-weight:800;display:inline-flex}.ing-chip i{border-radius:50%;width:14px;height:14px;box-shadow:inset 0 0 0 1.5px #5b3a2e26}.modal-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.toasts{top:max(12px, env(safe-area-inset-top));z-index:200;pointer-events:none;flex-direction:column;gap:8px;width:min(380px,100% - 32px);display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--white);animation:toast-in .5s var(--spring) both;border-radius:22px;align-items:center;gap:12px;padding:10px 16px 10px 10px;display:flex;box-shadow:0 6px #5b3a2e1a,0 16px 30px #5b3a2e2e}.toast-gold{background:linear-gradient(135deg,#fff6d6,#ffe7a3)}.toast-donut{flex:none;width:58px}.toast-title{font-family:var(--font-display);color:#b7780c;font-size:.85rem;font-weight:700}.toast-body{font-family:var(--font-display);font-size:1.15rem;font-weight:700}@keyframes toast-in{0%{opacity:0;transform:translateY(-120%)scale(.8)}to{opacity:1;transform:none}}.particle-layer{pointer-events:none;z-index:300;position:fixed;inset:0;overflow:hidden}.particle{will-change:transform, opacity;position:absolute}.particle-crumb{border-radius:40% 60% 50% 45%}.particle-confetti,.particle-sprinkle{border-radius:3px}.camera-btn{z-index:2;background:var(--butter);position:absolute;top:8px;left:0;box-shadow:0 3px #e0ae3a}.eat-stage .camera-btn{top:0}.camera-flash{z-index:400;pointer-events:none;background:#fff;animation:.45s ease-out forwards flash;position:fixed;inset:0}@keyframes flash{0%{opacity:.95}to{opacity:0}}.photo-modal h3{font-size:1.4rem}.polaroid{animation:develop .8s var(--ease-out) both;background:#fff;border-radius:12px;padding:10px;transform:rotate(-2deg);box-shadow:0 10px 30px #5b3a2e33}.polaroid img{border-radius:6px;width:min(300px,70vw);height:auto;display:block}@keyframes develop{0%{filter:brightness(1.6)saturate(.3);opacity:0;transform:rotate(-8deg)translateY(30px)scale(.9)}to{filter:none;opacity:1;transform:rotate(-2deg)}}.save-link{align-self:center;padding:8px 16px;font-size:.95rem}.save-menu{width:min(440px,100%)}.save-summary{background:var(--white);border-radius:999px;flex-wrap:wrap;justify-content:center;gap:6px 14px;padding:8px 16px;font-size:.9rem;font-weight:800;display:flex}.save-summary span{align-items:center;gap:4px;display:inline-flex}.save-section{background:var(--white);border-radius:24px;flex-direction:column;align-items:center;gap:10px;width:100%;padding:14px 16px 16px;display:flex}.save-section h3{color:var(--cocoa);font-size:1.1rem}.save-section p{font-size:.9rem}.save-section .btn{background:var(--cream-2)}.save-section .btn-mint{background:linear-gradient(180deg, #b7f0de, var(--mint))}.save-section .btn-lavender{background:linear-gradient(180deg, #ddd0ff, var(--lavender))}.modal p.save-warn{color:#d9536b}.modal p.save-note{font-size:.8rem}.save-compare{flex-direction:column;align-items:center;gap:6px;display:flex}.save-label{font-family:var(--font-display);color:var(--cocoa-soft);text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;font-size:.8rem;font-weight:700}.save-arrow{color:var(--pink-deep);font-size:1.4rem}.art-toggle{background:var(--white);border-radius:999px;justify-content:center;align-self:center;align-items:center;gap:6px;margin-top:4px;padding:4px;display:flex;box-shadow:0 3px #5b3a2e14}.art-label{color:var(--cocoa-soft);padding:0 6px 0 10px;font-size:.8rem;font-weight:800}.art-toggle button{font-family:var(--font-display);color:var(--cocoa-soft);border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 4px;font-size:.9rem;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.art-toggle button.on{background:var(--pink-deep);color:var(--white)}.art-face{background:var(--pink-soft);border-radius:50%;place-items:start center;width:30px;height:30px;display:grid;overflow:hidden}.art-face .customer{width:40px;margin-top:-2px}
