:root{font-family:Inter,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:#5d3327;background:#f8e9db;font-synthesis: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{width:min(100%,520px);min-height:100vh;margin:0 auto;padding:14px 14px 22px;display:grid;grid-template-rows:auto minmax(360px,1fr) auto;gap:12px}.topbar{display:grid;grid-template-columns:52px 1fr 86px;align-items:center;gap:10px}.icon-button,.saved,.mode-tab,.ingredient,.secondary,.primary,#clearWriting,.rotate-button,.intent-button{border:0;box-shadow:0 5px 14px #7a452d1f,inset 0 1px #fffc}.icon-button{width:48px;height:48px;border-radius:16px;background:#fff8ef;font-size:26px;cursor:pointer}.title-block{text-align:center}.eyebrow{margin:0 0 2px;color:#c77d60;font-size:11px;letter-spacing:.16em}h1{margin:0;font-size:22px;letter-spacing:.08em}.progress{display:flex;justify-content:center;gap:6px;margin-top:5px}.progress i{width:24px;height:4px;border-radius:9px;background:#f17168}.progress i.muted{background:#e8d5c4}.saved{justify-self:end;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}.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}.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%)}.tool-panel{padding:10px;border-radius:26px;background:#fffaf4f0;box-shadow:0 12px 32px #76412b26}.mode-tabs{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.mode-tabs::-webkit-scrollbar{display:none}.mode-tab{flex:1 0 58px;min-width:0;padding:8px 2px;border-radius:14px;background:#f5e5d5;font-size:10px;cursor:pointer}.mode-tab span{display:block;margin-bottom:3px;font-size:17px}.mode-tab.active{background:linear-gradient(145deg,#ff8175,#f05c56);color:#fff}.mode-tab.remove-tab.active{background:linear-gradient(145deg,#855c50,#654134)}.tool-view{display:none;min-height:78px;margin-top:9px}.tool-view.active{display:flex}.fruit-tools{gap:8px}.ingredient{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 6px;border-radius:16px;background:#fff;cursor:pointer}.ingredient.active{outline:2px solid #f76e65;background:#fff5f0}.fruit-dot{width:22px;height:22px;display:inline-block;box-shadow:inset -3px -4px #501e141f}.fruit-dot.strawberry{border-radius:55% 55% 65% 65%;background:#ee4e48;transform:rotate(45deg)}.fruit-dot.blueberry{border-radius:50%;background:#4c5f9c}.fruit-dot.mango{border-radius:6px;background:#ffb52d}.cream-tools,.smooth-tools,.dollop-tools,.line-tools,.candle-tools,.remove-tools{align-items:center;justify-content:space-between;gap:9px;padding:10px 13px;border-radius:16px;background:#fff4e8}.choice-copy{min-width:102px}.mini-choices{display:grid;justify-items:end;gap:7px}.swatches,.shape-pills{display:flex;align-items:center;gap:7px}.swatches.compact{flex-direction:column;gap:4px}.swatch{width:27px;height:27px;padding:0;border:3px solid white;border-radius:50%;box-shadow:0 2px 8px #58312429;cursor:pointer}.swatch.active{outline:2px solid #ef6e65;transform:scale(1.08)}.swatch.vanilla{background:#fff0d8}.swatch.strawberry-cream{background:#f5a0a7}.swatch.chocolate-cream{background:#8b5542}.shape-pill{padding:6px 8px;border:0;border-radius:9px;background:#fff;color:#956553;font-size:10px;box-shadow:0 3px 8px #7a452d1a;cursor:pointer}.shape-pill.active{background:#f66d65;color:#fff}.piping-copy{min-width:0}.intent-switch{display:flex;gap:5px;flex-shrink:0}.intent-button{padding:8px 9px;border-radius:10px;background:#fff;color:#8b5947;font-size:10px;cursor:pointer}.intent-button.active{background:#f66d65;color:#fff}.tool-view strong,.tool-view small{display:block}.tool-view small{margin-top:3px;color:#a27664;font-size:11px}.nozzle{display:grid;place-items:center;width:45px;height:45px;border-radius:14px;background:#ffd6c2;color:#c85e55;font-size:22px}.write-tools{display:none;flex-direction:column;gap:8px}.write-tools.active{display:flex}.writing-head{display:flex;align-items:center;justify-content:space-between}#clearWriting{padding:7px 11px;border-radius:10px;background:#fff;font-size:11px;cursor:pointer}#writingPad{width:100%;height:86px;border:2px dashed #edb6a1;border-radius:16px;background:#fff9ef;touch-action:none;cursor:crosshair}.actions{display:grid;grid-template-columns:82px 66px 1fr;gap:8px;margin-top:10px}.secondary,.primary{height:48px;border-radius:15px;cursor:pointer}.secondary{background:#f3e5d6;font-size:12px}.primary{display:flex;align-items:center;justify-content:center;gap:15px;background:linear-gradient(145deg,#ffc344,#f5a818);color:#623217;font-weight:800}.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}.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}@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 .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}@media(min-width:700px){body{padding:22px 0}.app-shell{min-height:calc(100vh - 44px);border-radius:34px;background:#ffffff2e}}
