:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#5d3327;background:#f8e9db;font-synthesis:none}html,body{overscroll-behavior:none;-webkit-overscroll-behavior:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% 0%,#fffaf3 0,#f9e8d8 48%,#efcfb8)}button{font:inherit;color:inherit}.app-shell{overscroll-behavior:none;width:100%;min-height:100vh;margin:0 auto;padding:14px 14px 22px;display:grid;grid-template-rows:auto minmax(360px,1fr) auto;gap:12px;box-sizing:border-box;overflow-x:hidden}.topbar{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:10px}.header-right{display:flex;align-items:center;gap:8px;justify-self:end}.preview-entry-link{display:inline-flex;align-items:center;padding:7px 10px;border-radius:12px;background:#fff0df;color:#a45a2a;font-size:12px;font-weight:700;text-decoration:none;border:1px solid rgba(164,90,42,.2);white-space:nowrap;transition:all .15s}.preview-entry-link:hover{background:#ffe4c8;border-color:#a45a2a}.icon-button,.saved,.mode-tab,.ingredient,.secondary,.primary,#clearWriting,.rotate-button,.intent-button,.flavor-choice,.ingredient-checks button{border:none;font:inherit}.icon-button{width:44px;height:44px;border-radius:14px;background:var(--surface);color:var(--text);box-shadow:var(--shadow);font-size:18px}.title-block{text-align:center}.eyebrow{margin:0;font-size:11px;letter-spacing:.08em;color:var(--muted);text-transform:uppercase}h1{margin:2px 0 0;font-size:20px}.progress{display:flex;justify-content:center;gap:6px;margin-top:6px}.progress i{width:22px;height:5px;border-radius:999px;background:var(--accent)}.progress i.muted{background:#e58b7a47}.saved{padding:8px 9px;border-radius:13px;background:#fff8ef;color:#6d8d50;font-size:12px;white-space:nowrap}.saved span{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:2px;border-radius:50%;color:#fff;background:#77a85b}@media(min-width:700px){body{padding:22px 0}.app-shell{min-height:calc(100vh - 44px);border-radius:34px;background:#ffffff2e}}@media(max-width:600px){.topbar{grid-template-columns:44px minmax(0,1fr) auto}.header-right .dev-mode-btn,.header-right .preview-entry-link{display:none}}.stage-card{position:relative;overflow:hidden;min-height:360px;border-radius:30px;background:linear-gradient(#fde5cc,#f5c7a7);box-shadow:0 18px 50px #76412b2e,inset 0 1px #fffc}#stage{position:absolute;inset:0;touch-action:none}#stage canvas{display:block;width:100%;height:100%}.stage-hint{position:absolute;left:50%;bottom:16px;transform:translate(-50%);width:max-content;max-width:calc(100% - 32px);padding:9px 14px;border-radius:100px;background:#fffaf4e6;color:#8b5947;font-size:12px;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.cream-gesture-guide{position:absolute;left:50%;top:45%;width:min(45%,180px);height:68px;transform:translate(-50%,-50%);pointer-events:none;z-index:4}.cream-gesture-guide[hidden]{display:none}.cream-gesture-path{position:absolute;inset:20px 0 auto;border-top:3px dashed rgba(255,255,255,.9);filter:drop-shadow(0 1px 2px rgba(91,48,32,.5))}.cream-gesture-finger{position:absolute;top:0;left:50%;font-size:42px;line-height:1;filter:drop-shadow(0 3px 4px rgba(91,48,32,.42));animation:creamSwipe 1.8s ease-in-out infinite alternate}@keyframes creamSwipe{0%{transform:translate(-85px) rotate(-18deg)}to{transform:translate(35px) rotate(12deg)}}@media(prefers-reduced-motion:reduce){.cream-gesture-finger{animation:none;transform:translate(-50%)}}.rotate-button{position:absolute;top:14px;right:14px;padding:8px 11px;border-radius:12px;background:#fffaf4eb;color:#8b5947;font-size:11px;cursor:grab}.rotate-button[aria-pressed=true]{background:#654134;color:#fff}.toast{position:absolute;top:16px;left:50%;transform:translate(-50%,-8px);padding:8px 13px;border-radius:12px;background:#654134;color:#fff;font-size:12px;opacity:0;transition:.2s ease;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.object-bubble{position:absolute;top:0;left:0;transform:translate(-50%,calc(-100% - 10px));display:flex;align-items:center;gap:7px;padding:5px 8px 5px 12px;background:#261812e6;border:1px solid rgba(255,255,255,.25);border-radius:999px;box-shadow:0 10px 28px #00000047,0 2px 8px #0000002e;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:30;pointer-events:auto;-webkit-user-select:none;user-select:none;animation:bubblePop .22s cubic-bezier(.175,.885,.32,1.275);transition:opacity .15s ease}.object-bubble[hidden]{display:none!important}.bubble-tag{font-size:12px;font-weight:600;color:#fff2ea;white-space:nowrap;letter-spacing:.3px}.bubble-delete{border:none;background:#ff5252;color:#fff;font-size:11px;font-weight:600;padding:5px 10px;border-radius:999px;cursor:pointer;box-shadow:0 2px 8px #ff525266;transition:background .15s ease,transform .15s ease;white-space:nowrap}.bubble-delete:hover{background:#e03838;transform:scale(1.05)}.bubble-delete:active{transform:scale(.96)}.bubble-close{border:none;background:#ffffff29;color:#e8ded8;font-size:11px;width:22px;height:22px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.bubble-close:hover{background:#ffffff52;color:#fff}@keyframes bubblePop{0%{opacity:0;transform:translate(-50%,calc(-100% - 2px)) scale(.82)}to{opacity:1;transform:translate(-50%,calc(-100% - 10px)) scale(1)}}.celebration-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:25}.app-shell.baking .tool-panel,.app-shell.baking .rotate-button{display:none}.app-shell.baking{grid-template-columns:minmax(0,1fr)}.app-shell.baking .stage-card{min-width:0}.bake-panel{width:100%;min-width:0;padding:12px;border-radius:26px;background:#fffaf4f5;box-shadow:0 12px 32px #76412b26}.bake-panel[hidden]{display:none}.bake-step{display:none;gap:10px;min-width:0}.bake-step.active{display:grid}.bake-step[data-bake-view=bake]>.choice-copy{min-height:44px}.ingredient-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.ingredient-retry{padding:3px 9px;border:1px solid #e8c9b6;border-radius:999px;background:#fff8f0;color:#945941;font-size:11px;font-weight:700;cursor:pointer}.ingredient-retry[hidden]{display:none}.flavor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.flavor-choice,.ingredient-checks button{min-height:48px;border:0;border-radius:15px;background:#fff4e8;color:#80513f;cursor:pointer}.flavor-choice.active{outline:2px solid #f66d65;background:#fff5f0;color:#c85e55;font-weight:800}.flavor-dot{display:block;width:20px;height:20px;margin:0 auto 4px;border-radius:50%;box-shadow:inset -3px -4px #562b1a1f}.flavor-dot.vanilla{background:#ffe0a4}.flavor-dot.cocoa{background:#8b5542}.flavor-dot.strawberry{background:#f59aa7}.flavor-dot.matcha{background:#9fc772}.bake-next{width:100%}.bake-next:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.15)}#finishBakeButton:not(:disabled){animation:bakeFinishPulse 1.8s infinite ease-in-out}@keyframes bakeFinishPulse{0%,to{box-shadow:0 4px 14px #f66d6566;transform:translateY(0)}50%{box-shadow:0 6px 20px #f66d65b3;transform:translateY(-1px)}}.ingredient-checks{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;overflow:visible}.ingredient-checks button{min-width:0;min-height:74px;position:relative;border:1px solid #edd8c5;background:#fff9f2;box-shadow:0 2px 6px #74482f0f;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;gap:4px;transition:transform .12s ease,background-color .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ingredient-checks button.done{border-color:#a5ca91;background:#f0f8e8;color:#4d7544;box-shadow:inset 0 0 0 1px #679e5624;font-weight:800}.ingredient-checks button.done:after{content:"✓";position:absolute;top:5px;right:6px;display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:#77a961;color:#fff;font-size:11px}.ingredient-checks button:focus-visible{outline:2px solid #d46e50;outline-offset:2px}.ingredient-checks button:active{transform:scale(.92)}.ingredient-checks button .ing-icon{font-size:24px;line-height:1.1;pointer-events:none}.ingredient-checks button .ing-name{font-size:12px;line-height:1.2;white-space:nowrap;pointer-events:none}@media(max-width:600px){.ingredient-checks{grid-template-columns:repeat(6,minmax(0,1fr))}.ingredient-checks button{grid-column:span 2;min-height:70px}.ingredient-checks button:nth-child(n+4){grid-column:span 3}}@media(max-width:600px)and (max-height:740px){.app-shell.baking{grid-template-rows:auto minmax(250px,1fr) auto}.app-shell.baking .stage-card{min-height:250px}.ingredient-checks button{min-height:58px;padding:5px 4px;gap:1px}.ingredient-checks button .ing-icon{font-size:20px}.ingredient-checks button .ing-name{font-size:11px}}.mix-status-bar{display:flex;align-items:center;gap:10px}.mix-status-bar .mix-progress{flex:1}.quick-mix-btn{padding:7px 14px;border:0;border-radius:999px;background:linear-gradient(135deg,#ffb852,#f76757);color:#fff;font-size:13px;font-weight:800;cursor:pointer;white-space:nowrap;box-shadow:0 4px 12px #f7675759;transition:transform .1s ease,filter .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.quick-mix-btn:hover{filter:brightness(1.06);box-shadow:0 5px 15px #f7675773}.quick-mix-btn:active{transform:scale(.93)}.mix-progress{height:16px;overflow:hidden;border-radius:999px;background:#f2dfcb;box-shadow:inset 0 2px 5px #6336221f}.mix-progress span{display:block;width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffce68,#f7776d);transition:width .16s ease}.pour-actions,.bake-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.bake-actions button{min-width:0}.oven-controls{min-width:0;display:grid;gap:10px;padding:12px 16px;border:1px solid #e9cbb5;border-radius:20px;background:linear-gradient(135deg,#fff7ed,#f9e9d9)}.oven-recipe{display:flex;justify-content:space-between;gap:12px;color:#8e6956;font-size:12px}.oven-recipe strong{color:#9b4e33}.oven-dials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:100%;max-width:520px;margin:0 auto}.oven-dial-control{display:grid;justify-items:center;gap:4px;min-width:0}.oven-dial-title{color:#765443;font-size:12px;font-weight:700}.oven-dial{width:78px;height:78px;display:grid;place-items:center;border-radius:50%;border:7px solid #b99b83;background:conic-gradient(from 225deg,#f6c675,#fff2dc 65%,#e6b46c);box-shadow:0 5px 9px #8b63402b,inset 0 2px 4px #8a5c3a40;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.oven-dial:active{cursor:grabbing}.oven-dial:focus-visible{outline:3px solid #d8704a;outline-offset:3px}.oven-dial.locked{cursor:default;opacity:.72}.oven-dial-face{width:51px;height:51px;display:block;position:relative;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff9e9,#eed5ad 70%,#b58d62);box-shadow:inset 0 2px 4px #fff9e4,0 2px 5px #6c4b302e;transform:rotate(var(--dial-angle, -135deg))}.oven-dial-needle{position:absolute;top:4px;left:calc(50% - 3px);width:6px;height:17px;border-radius:3px;background:#985b38}.oven-dial-value{color:#633c2c;font-size:15px}.oven-dial-feedback{min-height:16px;color:#a46e52;font-size:11px;text-align:center}.oven-dial-feedback.ready{color:#4f8b4e;font-weight:700}.oven-controls-tip{color:#9b7a67;font-size:11px;text-align:center}.oven-status-bar{display:flex;align-items:center;gap:10px;padding:4px 6px}.oven-temp-badge{padding:4px 10px;border-radius:999px;background:#ffe4dc;color:#e64a19;font-size:12px;font-weight:800;white-space:nowrap}.oven-status-bar .mix-progress{flex:1}.oven-timer-text{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px;font-weight:800;color:#8d4f3b;white-space:nowrap}#startBakeButton:disabled,.primary:disabled{background:#d8c7b8!important;color:#8c7365!important;box-shadow:none!important;cursor:not-allowed!important;pointer-events:none!important;filter:grayscale(1)!important;opacity:.65!important}.tool-panel{width:100%;min-width:0;box-sizing:border-box;padding:10px 10px 12px;border-radius:26px;background:#fffaf4f5;box-shadow:0 12px 32px #76412b26;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);overflow:hidden;animation:toolPanelSlideIn .45s cubic-bezier(.16,1,.3,1)}.app-shell:not(.baking):not(.showcase):not(.recipient){grid-template-columns:minmax(0,1fr)}.app-shell:not(.baking):not(.showcase):not(.recipient) .stage-card{min-width:0}@keyframes toolPanelSlideIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.mode-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%;height:44px;box-sizing:border-box}.mode-tab{min-width:0;display:flex;align-items:center;justify-content:center;gap:5px;height:44px;padding:0 4px;border:none;border-radius:13px;background:#f4e3d4;color:#6d4233;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .18s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none}.mode-tab:disabled{cursor:not-allowed;opacity:.42}.mode-tab.completed:not(.active){background:#f4ead9;color:#557a4b}.mode-tab.completed:not(.active):after{content:"✓";font-size:11px}.tool-step-guide{display:flex;align-items:center;gap:8px;min-height:26px;padding:3px 5px 0;color:#7f5847;font-size:12px}.tool-step-guide span:first-child{flex:none;color:#c05f4d;font-weight:800}.tool-step-guide span:last-child{min-width:0}.mode-tab .tab-icon{font-size:15px;line-height:1}.mode-tab.active{background:linear-gradient(135deg,#ff7e71,#ef5350);color:#fff;box-shadow:0 3px 10px #ef535059}.tool-view{display:none;width:100%;height:148px;min-height:148px;max-height:148px;margin-top:10px;box-sizing:border-box;border-radius:18px;background:#fff5eb;padding:8px;overflow:hidden}.tool-view.active{display:flex;flex-direction:column}.deck-single-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;height:100%;box-sizing:border-box}.deck-single-row.piping-deck{grid-template-columns:repeat(4,1fr);height:calc(100% - 36px);gap:6px}.deck-grid-vertical{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));grid-auto-rows:62px;gap:7px;width:100%;height:100%;overflow-y:auto;overflow-x:hidden;padding-right:3px;box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#e0bfa9 transparent;-webkit-overflow-scrolling:touch}.deck-grid-vertical::-webkit-scrollbar{width:4px}.deck-grid-vertical::-webkit-scrollbar-track{background:transparent}.deck-grid-vertical::-webkit-scrollbar-thumb{background:#e0bfa9;border-radius:4px}.visual-card{display:flex;flex-direction:column;align-items:center;justify-content:center;border:none;border-radius:14px;background:#fff;box-shadow:0 2px 6px #6d423314;cursor:pointer;transition:all .16s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;padding:4px;box-sizing:border-box;position:relative}.visual-card:hover{transform:translateY(-1px);box-shadow:0 4px 10px #6d423324}.visual-card.active{background:#fff8f5;outline:2.5px solid #ef5350;box-shadow:0 3px 12px #ef535047;transform:translateY(-1px)}.visual-card.large{padding:8px 6px;gap:4px}.visual-card.large .card-icon-wrap{width:52px;height:52px}.visual-card.large .card-title{font-size:13px;font-weight:700;color:#4a2818}.visual-card.large .card-desc{font-size:10px;color:#a47661}.deck-single-row.piping-deck .visual-card{padding:5px 3px;gap:2px}.deck-single-row.piping-deck .visual-card .card-icon-wrap{width:40px;height:40px}.deck-single-row.piping-deck .visual-card .card-title{font-size:11px;font-weight:700;color:#4a2818}.deck-single-row.piping-deck .visual-card .card-desc{font-size:9px;color:#a47661;white-space:nowrap}.visual-card.mini{padding:4px 2px;gap:2px;height:62px}.visual-card.mini .card-icon-wrap{width:32px;height:32px}.visual-card.mini .card-title{font-size:11px;font-weight:600;color:#5c3524;white-space:nowrap;line-height:1.1}.card-icon-wrap{display:flex;align-items:center;justify-content:center;flex-shrink:0}.card-svg{width:100%;height:100%;display:block}.piping-shelf-container{display:flex;flex-direction:column;width:100%;height:100%;gap:6px;box-sizing:border-box}.piping-header-bar{display:flex;align-items:center;justify-content:space-between;height:30px;padding:0 4px}.technique-switch{display:flex;gap:4px;background:#dcbeaa59;padding:2px;border-radius:10px}.technique-btn{border:none;background:transparent;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;color:#7d4d3c;cursor:pointer;transition:all .15s ease;white-space:nowrap}.technique-btn.active{background:#fff;color:#ef5350;box-shadow:0 1px 4px #0000001a;font-weight:700}.piping-swatches,.swatches{display:flex;align-items:center;gap:7px}.swatch{width:25px;height:25px;padding:0;border:2.5px solid #ffffff;border-radius:50%;box-shadow:0 2px 6px #58312429;cursor:pointer;transition:all .15s ease}.swatch.active{outline:2.5px solid #ef5350;transform:scale(1.12);box-shadow:0 3px 8px #ef535059}.swatch.vanilla{background:#fff0d8}.swatch.strawberry-cream{background:#f5a0a7}.swatch.chocolate-cream{background:#8b5542}.actions{display:grid;grid-template-columns:68px 82px minmax(0,1fr);gap:8px;margin-top:10px;height:48px;box-sizing:border-box}.actions button{min-width:0}@media(max-width:600px){.mode-tabs,.mode-tab{height:52px}.mode-tab{flex-direction:column;gap:1px;font-size:11px;line-height:1.2}.mode-tab .tab-icon{font-size:18px}.deck-grid-vertical{grid-template-columns:none;grid-template-rows:repeat(2,62px);grid-auto-columns:72px;grid-auto-flow:column;overflow-x:auto;overflow-y:hidden;padding-right:0;padding-bottom:2px;scroll-snap-type:x proximity}.deck-grid-vertical .visual-card{scroll-snap-align:start}.deck-single-row{grid-template-columns:repeat(3,minmax(0,1fr))}.deck-single-row.piping-deck{grid-template-columns:repeat(4,minmax(0,1fr))}.visual-card.large .card-desc,.deck-single-row.piping-deck .card-desc{display:none}.tool-view{margin-top:7px}.actions{margin-top:8px}}@media(max-width:600px)and (max-height:740px){.app-shell:not(.baking):not(.showcase):not(.recipient){grid-template-rows:auto minmax(250px,1fr) auto}.app-shell:not(.baking):not(.showcase):not(.recipient) .stage-card{min-height:250px}.mode-tabs,.mode-tab{height:48px}.tool-view{height:124px;min-height:124px;max-height:124px}.deck-grid-vertical{grid-template-rows:repeat(2,50px)}.visual-card.mini{height:50px}.visual-card.mini .card-icon-wrap{width:25px;height:25px}.visual-card.mini .card-title{font-size:10px}.actions,.actions button{height:44px}}.secondary,.primary{height:48px;border-radius:15px;border:none;cursor:pointer;font:inherit;transition:all .15s ease}.secondary{background:#f3e5d6;color:#5d3327;font-size:12px;font-weight:600}.secondary:hover{background:#ebd8c6}.secondary:disabled{opacity:.45;cursor:not-allowed}.primary{display:flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(145deg,#ffc344,#f5a818);color:#623217;font-weight:800;box-shadow:0 4px 14px #f5a81859}.primary:hover{background:linear-gradient(145deg,#ffd05a,#f7b22a);transform:translateY(-1px)}.primary:disabled{background:#d8c7b8!important;color:#8c7365!important;box-shadow:none!important;cursor:not-allowed!important;pointer-events:none!important;filter:grayscale(1)!important;opacity:.65!important}.app-shell.showcase{grid-template-rows:auto minmax(500px,1fr) auto}.app-shell.showcase .tool-panel{display:none}.app-shell.showcase .stage-card{min-height:500px;box-shadow:0 22px 58px #76412b38,inset 0 1px #fffc}.app-shell.showcase .stage-hint,.app-shell.showcase .rotate-button{display:none}.showcase-panel{padding:18px;border-radius:25px;background:#fffaf4f5;text-align:center;box-shadow:0 14px 36px #76412b29}.showcase-panel[hidden]{display:none}.showcase-kicker{margin:0 0 4px;color:#d27765;font-size:11px;letter-spacing:.14em}.showcase-panel h2{margin:0 0 7px;font-size:21px}.showcase-panel p:not(.showcase-kicker){margin:0;color:#986b59;font-size:12px}.showcase-actions{display:grid;grid-template-columns:86px 1fr;gap:8px;margin-top:14px}.showcase-actions .primary{grid-column:1 / -1}.showcase-actions [hidden],.project-actions [hidden]{display:none}.project-status{color:#9c6557;font-size:12px;white-space:nowrap}.project-actions{display:flex;gap:8px;margin-top:10px}.project-actions button{flex:1;min-height:42px}.share-link{display:grid;grid-template-columns:1fr auto;gap:7px;align-items:center;margin-top:12px;text-align:left}.share-link[hidden]{display:none}.share-link label{grid-column:1 / -1;font-size:12px;color:#865644}.share-link input{min-width:0;height:40px;padding:0 10px;border:1px solid #e6c8b7;border-radius:10px;background:#fff;color:#744a3c}.share-link button{height:40px}.app-shell.project-finished .voice-record-card{display:none}.app-shell.project-finished .showcase-actions{display:block}.app-shell.project-finished .showcase-actions .replay-button{width:100%;min-height:44px}.app-shell.recipient #projectStatus,.app-shell.recipient #exitGiftButton{display:none}@media(max-width:600px){.project-status{font-size:10px}.project-actions{flex-direction:column}}.replay-button{border:0;border-radius:15px;background:linear-gradient(145deg,#ff8175,#ee5e59);color:#fff;font-weight:700;box-shadow:0 6px 16px #c34a4533;cursor:pointer}.replay-button:disabled{opacity:.55;cursor:wait}.gift-curtain{position:absolute;inset:0;z-index:20;display:grid;place-content:center;justify-items:center;padding:28px;text-align:center;color:#6b352a;background:radial-gradient(circle at 50% 38%,#fffdf0fa,#f8beaafa);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gift-curtain[hidden]{display:none}.gift-box-icon{font-size:78px;filter:drop-shadow(0 12px 14px rgba(131,68,45,.18));animation:giftBob 1.8s ease-in-out infinite}.gift-curtain p{margin:12px 0 4px;color:#c36f62;font-size:12px;letter-spacing:.12em}.gift-curtain h2{margin:0 0 22px;font-size:24px}.gift-curtain .primary{width:180px}.gift-curtain [hidden]{display:none}@keyframes giftBob{50%{transform:translateY(-8px) rotate(2deg)}}.app-shell.recipient{grid-template-rows:minmax(500px,1fr) auto;padding-top:22px}.app-shell.recipient .topbar,.app-shell.recipient .bake-panel,.app-shell.recipient .tool-panel,.app-shell.recipient .showcase-panel,.app-shell.recipient .stage-hint,.app-shell.recipient .rotate-button{display:none}.app-shell.recipient .stage-card{min-height:500px;box-shadow:0 24px 64px #76412b3d}.gift-panel{padding:18px;border-radius:26px;background:#fffaf4f7;text-align:center;box-shadow:0 14px 36px #76412b29}.gift-panel[hidden]{display:none}.gift-panel h2{margin:4px 0 7px;font-size:21px}.gift-panel>p:not(.showcase-kicker){margin:0 auto;max-width:390px;color:#986b59;font-size:12px;line-height:1.65}.gift-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.gift-actions[hidden]{display:none}.gift-actions .replay-button,.gift-actions .secondary{height:46px}.gift-actions .primary{grid-column:1 / -1}.text-button{margin-top:11px;border:0;background:transparent;color:#a17361;font-size:11px;cursor:pointer}.card-modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:#4d29206b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card-modal[hidden]{display:none}.birthday-card{position:relative;width:min(100%,410px);padding:48px 34px 38px;border:8px solid #fff6eb;border-radius:22px;background:linear-gradient(145deg,#fffaf0,#ffe5de);text-align:center;box-shadow:0 28px 80px #451f184d}.birthday-card>p:first-of-type{color:#d27569;font-size:11px;letter-spacing:.22em}.birthday-card h2{margin:18px 0;color:#713f34;font-family:Georgia,Songti SC,serif;font-size:25px;line-height:1.45}.card-divider{color:#e87c76;font-size:25px}.birthday-card .card-copy{color:#96675a;font-size:13px;line-height:1.9}.birthday-card span{display:block;margin-top:22px;color:#b27b6a;font-size:11px}.card-close{position:absolute;top:12px;right:14px;width:32px;height:32px;border:0;border-radius:50%;background:#ffffffbf;font-size:22px;cursor:pointer}.voice-record-card{margin-top:12px;padding:12px 14px;border-radius:18px;background:#fff5eb;border:1px dashed #e8bfae;text-align:left;transition:all .2s ease}.voice-card-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:#8b4736}.voice-timer{font-family:ui-monospace,monospace;font-size:11px;color:#ee5e59;font-weight:800;background:#ee5e591f;padding:2px 7px;border-radius:8px}.voice-tip{margin:4px 0 8px!important;font-size:11px!important;color:#a4705c!important;line-height:1.4}.voice-actions{display:flex;flex-wrap:wrap;gap:6px}.voice-action-btn{padding:6px 11px;border-radius:12px;font-size:11px;font-weight:700;border:0;cursor:pointer;transition:all .15s ease}.voice-action-btn:hover{filter:brightness(1.05)}.voice-action-btn:active{transform:scale(.96)}.voice-action-btn.record-start{background:#ff5252;color:#fff;box-shadow:0 4px 10px #ff525240}.voice-action-btn.record-stop{background:#333;color:#fff;animation:recordPulse .9s ease-in-out infinite alternate}@keyframes recordPulse{0%{opacity:.85;transform:scale(.98)}to{opacity:1;transform:scale(1.03)}}.voice-action-btn.voice-preview{background:#52c41a;color:#fff;box-shadow:0 3px 8px #52c41a33}.voice-action-btn.voice-rerecord{background:#f0ddd0;color:#7b4f40}.voice-action-btn.voice-preset{background:#ffe3a8;color:#834f18}.card-audio-player{display:flex;align-items:center;justify-content:space-between;margin:14px 0 10px;padding:8px 14px;border-radius:999px;background:#ffffffe6;border:1px solid #ffd0c7;box-shadow:0 4px 14px #de6b6226}.card-audio-btn{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:#cf4d44;font-weight:700;font-size:12px;cursor:pointer;padding:0}.card-audio-wave{display:flex;align-items:center;gap:3px;height:16px}.card-audio-wave span{display:block;width:3px;height:5px;background:#f27267;border-radius:2px;transition:height .15s ease}.card-audio-player.playing .card-audio-wave span:nth-child(1){animation:waveBar .6s infinite ease-in-out alternate}.card-audio-player.playing .card-audio-wave span:nth-child(2){animation:waveBar .4s infinite ease-in-out .1s alternate}.card-audio-player.playing .card-audio-wave span:nth-child(3){animation:waveBar .7s infinite ease-in-out .2s alternate}.card-audio-player.playing .card-audio-wave span:nth-child(4){animation:waveBar .5s infinite ease-in-out .15s alternate}.card-audio-player.playing .card-audio-wave span:nth-child(5){animation:waveBar .65s infinite ease-in-out .25s alternate}@keyframes waveBar{0%{height:4px}to{height:16px}}.card-audio-status{font-size:11px;color:#a4705c}.dev-mode-btn{border:1px solid rgba(220,110,90,.4);border-radius:999px;padding:5px 11px;background:#fff5ee;color:#8c3b28;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .2s ease;box-shadow:0 2px 8px #8c3b2814}.dev-mode-btn:hover{background:#ffe3d5;transform:translateY(-1px)}.dev-mode-btn.active{background:#ff7043;color:#fff;border-color:#ff7043;box-shadow:0 4px 12px #ff704359}.tuning-panel{position:fixed;z-index:100;right:12px;bottom:12px;width:min(340px,calc(100vw - 24px));max-height:82vh;overflow-y:auto;padding:12px;border-radius:20px;background:#2e1c16f0;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,225,195,.2);color:#fff8ef;box-shadow:0 20px 50px #1e0c0666;font-size:12px;display:flex;flex-direction:column;gap:10px}.tuning-panel[hidden]{display:none!important}.tuning-header{display:flex;align-items:center;justify-content:space-between}.tuning-title{display:flex;flex-direction:column;gap:2px}.tuning-badge{display:inline-block;background:#ff7043;color:#fff;font-weight:800;font-size:12px;padding:2px 8px;border-radius:999px;width:fit-content}.tuning-step-badge{display:inline-block;background:#ffffff29;color:#ffe0b2;font-weight:700;font-size:11px;padding:2px 7px;border-radius:999px;border:1px solid rgba(255,224,178,.3)}.tuning-step-switcher{display:flex;gap:4px;overflow-x:auto;flex:1}.tuning-step-switcher button{border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:5px 6px;background:#ffffff1a;color:#fff6ee;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;transition:all .15s}.tuning-step-switcher button:hover{background:#ffffff3d}.tuning-step-switcher button.active{background:#ff7043;border-color:#ff7043;color:#fff;box-shadow:0 2px 8px #ff704366}.tuning-sub{font-size:10px;color:#e0b8a2}.tuning-close{border:0;background:#ffffff26;color:#fff;width:26px;height:26px;border-radius:50%;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center}.tuning-close:hover{background:#ffffff4d}.tuning-guide{background:#ffffff12;border-radius:10px;padding:8px 10px;font-size:11px;line-height:1.5;color:#ffecd1}.tuning-guide p{margin:0 0 3px}.tuning-guide p:last-child{margin-bottom:0}.tuning-guide strong{color:#ffa654}.tuning-card{background:#ffffff17;border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:6px}.tuning-card-row{display:flex;align-items:center;gap:8px}.tuning-label{font-weight:700;font-size:11px;color:#ffcba4;white-space:nowrap}.tuning-card select{flex:1;border:0;border-radius:8px;padding:6px 8px;color:#52271c;background:#fff8ef;font-size:12px;font-weight:600}.tuning-actions-row{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.tuning-actions-row button{border:0;border-radius:8px;padding:6px 2px;background:#ffe3b3;color:#5a2c16;font-size:11px;font-weight:700;cursor:pointer}.tuning-actions-row button:hover{background:#ffd38a}.tuning-dpad{display:flex;flex-direction:column;align-items:center;gap:4px;background:#ffffff0d;border-radius:12px;padding:6px}.dpad-row{display:flex;gap:6px;justify-content:center}.dpad-row button,.dpad-row-sub button{border:0;border-radius:8px;padding:6px 10px;background:#ffffff24;color:#fff6ee;font-size:11px;font-weight:700;cursor:pointer;min-width:48px}.dpad-row button:hover,.dpad-row-sub button:hover{background:#ffffff40}.dpad-row-sub{display:flex;gap:5px;justify-content:center;margin-top:2px}.dpad-row-sub button{padding:5px 8px;font-size:10px;min-width:auto}.tuning-footer-actions{display:flex;flex-direction:column;gap:6px}.btn-save-layout{border:0;border-radius:12px;padding:10px 14px;background:linear-gradient(135deg,#ff7043,#f4511e);color:#fff;font-weight:800;font-size:13px;cursor:pointer;box-shadow:0 4px 14px #f4511e61;transition:all .2s}.btn-save-layout:hover{transform:translateY(-1px);filter:brightness(1.08)}.btn-save-layout:active{transform:translateY(1px)}.tuning-btn-group{display:grid;grid-template-columns:1fr 1fr;gap:6px}.btn-reset-layout,.btn-copy-json{border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:7px 8px;background:#ffffff1a;color:#fed;font-size:11px;font-weight:700;cursor:pointer}.btn-reset-layout:hover,.btn-copy-json:hover{background:#ffffff2e}.tuning-json-details{font-size:10px;color:#d1b5a5}.tuning-json-details summary{cursor:pointer;padding:2px 0}.tuning-json-details textarea{width:100%;min-height:80px;border:0;border-radius:8px;padding:6px;margin-top:5px;background:#20130f;color:#ffd8b8;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:9px;resize:vertical}
