:root{--bg:#fff3dc;--card:#fff;--ink:#33220f;--accent:#ff6b3d;--accent-deep:#e14e27;--teal:#16b8a6;--teal-deep:#0f9c8c;--green:#34c759;--green-deep:#24a347;--gold:#ffc53d;--gold-deep:#f0a800;--red:#ff5d5d;--warm:#ffe8c0;--cream:#fffaf0;--border:#e0d5c5;--radius:22px;--btn-radius:18px;--shadow:0 6px 18px #3d2b1f29;--dur-snap:.12s;--dur-fast:.24s;--dur-med:.48s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--text-xs:.8rem;--text-sm:.9rem;--text-base:1rem;--text-md:1.15rem;--text-lg:1.3rem;--text-xl:1.5rem;--text-2xl:2rem;--text-3xl:2.6rem;--text-4xl:3.4rem}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;height:100%}body{touch-action:manipulation;background:var(--bg);color:var(--ink);-webkit-user-select:none;user-select:none;min-height:100dvh;margin:0;font-family:ui-rounded,SF Pro Rounded,Segoe UI,system-ui,-apple-system,sans-serif;font-size:1.25rem}.shell{background:radial-gradient(circle at 20% 18%,#fff 0%,#0000 26%),linear-gradient(#bfe9ff 0%,#a6e0ff 34%,#ffe9b8 68%,#ffd98a 100%);flex-direction:column;width:100%;min-height:100dvh;margin:0 auto;padding:0;display:flex;position:relative;overflow:hidden}.scene{overscroll-behavior:contain;flex:1;padding:16px 18px 18px;position:relative;overflow-y:auto}#screen{max-width:720px;margin:0 auto;position:relative}.hud{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:10px 14px;padding-top:calc(10px + env(safe-area-inset-top,0px));z-index:5;border:3px solid #fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;min-width:0;margin:12px 16px 0;display:flex;position:relative}.badge{background:var(--warm);font-weight:800;font-size:var(--text-sm);border-radius:999px;padding:6px 12px}.home{background:var(--warm);width:34px;height:34px;color:var(--accent-deep);transition:transform .15s var(--ease-out), background .15s var(--ease-out);border-radius:10px;place-items:center;font-size:1.05rem;text-decoration:none;display:grid}.home:hover{background:var(--card);transform:scale(1.1)}.home[hidden]{display:none}.hud-left{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.cash{font-size:var(--text-lg);color:var(--green-deep);font-weight:800}.cashbox{flex-direction:column;align-items:flex-end;gap:2px;min-width:0;margin-left:auto;display:flex}.cash.flash{border-radius:8px;padding:2px 6px;animation:.6s greenflash}.cash.lose{border-radius:8px;padding:2px 6px;animation:.6s graydim}.countup{font-variant-numeric:tabular-nums}.coinstack{font-size:var(--text-lg);flex-wrap:wrap;justify-content:flex-end;gap:2px;line-height:1;display:flex}.coinstack .ck{animation:coin-in .28s var(--ease-bounce)}@keyframes coin-in{0%{opacity:0;transform:translateY(-8px)scale(.5)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.28)}to{transform:scale(1)}}.dock{padding:12px 16px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(180deg, #fff3dce6, var(--cream));border-top:3px solid #fff;flex-direction:column;gap:10px;display:flex;box-shadow:0 -6px 18px #3d2b1f1f}.dock:empty{box-shadow:none;background:0 0;border-top:none;padding-top:0;padding-bottom:0}button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);transition:transform var(--dur-fast) var(--ease-out), opacity var(--dur-fast) var(--ease-out);margin-bottom:16px;padding:18px}h1,h2{margin:0 0 12px}h1{font-size:var(--text-2xl)}.dock .dock-row{flex-direction:row;align-items:stretch;gap:10px;display:flex}.dock .dock-row .primary{flex:1}.dock .dock-row .primary.friend{flex:none}.dock .dock-row .secondary{min-height:56px;font-size:var(--text-base);flex:none;padding:12px 16px}.dock .primary,.dock .stepper{transition:transform var(--dur-snap) ease}.dock.pop-in{animation:dock-in .3s var(--ease-out)}@keyframes dock-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:scale(.86)}70%{transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes slide-fwd{0%{opacity:.4;transform:translate(46px)}to{opacity:1;transform:translate(0)}}@keyframes slide-back{0%{opacity:.4;transform:translate(-46px)}to{opacity:1;transform:translate(0)}}#screen.slide-fwd{animation:slide-fwd .34s var(--ease-out)}#screen.slide-back{animation:slide-back .34s var(--ease-out)}button{font-family:inherit}.stepper{align-items:center;gap:10px;display:flex}.stepper .val{text-align:center;min-width:48px;font-weight:900;font-size:var(--text-lg);animation:bump .26s var(--ease-bounce);display:inline-block}.stepper button{width:56px;height:56px;font-size:var(--text-xl);background:var(--accent);background:linear-gradient(180deg, #ff8a5e, var(--accent-deep));color:#fff;cursor:pointer;box-shadow:0 4px 0 var(--accent-deep), 0 8px 16px #e14e274d;transition:transform var(--dur-snap) ease;border:none;border-radius:16px;font-weight:900;position:relative;overflow:hidden}.stepper button:active{box-shadow:0 1px 0 var(--accent-deep);transform:translateY(3px)}.stepper button.teal{background:linear-gradient(180deg, #27d2c1, var(--teal-deep));box-shadow:0 4px 0 var(--teal-deep), 0 8px 16px #0f9c8c4d}.primary{width:100%;min-height:76px;font-size:var(--text-xl);border-radius:var(--btn-radius);background:var(--green);background:linear-gradient(180deg, #3fe26c, var(--green-deep));color:#fff;cursor:pointer;box-shadow:0 6px 0 var(--green-deep), 0 12px 20px #24a3474d;transition:transform var(--dur-snap) ease, box-shadow var(--dur-snap) ease;text-shadow:0 1px #00000026;border:none;justify-content:center;align-items:center;gap:12px;padding:16px 20px;font-weight:900;display:flex;position:relative;overflow:hidden}.primary:after{content:"";pointer-events:none;background:linear-gradient(#fff6,#0000 46%);position:absolute;inset:0}.primary:active{box-shadow:0 1px 0 var(--green-deep);transform:translateY(4px)}.primary:disabled{color:#8a8a80;cursor:not-allowed;text-shadow:none;background:linear-gradient(#dcdcd2,#c6c6ba);box-shadow:0 4px #aeae9f}.primary:disabled:after{display:none}.primary.teal{background:linear-gradient(180deg, #2ad2c2, var(--teal-deep));box-shadow:0 5px 0 var(--teal-deep), 0 10px 18px #0f9c8c47}.primary.teal:active{box-shadow:0 1px 0 var(--teal-deep)}.primary.friend{background:linear-gradient(180deg, #ffd257, var(--gold-deep));color:var(--ink);box-shadow:0 5px 0 var(--gold-deep), 0 10px 18px #f0a80047;margin-bottom:0}.primary.friend:active{box-shadow:0 1px 0 var(--gold-deep)}.primary.compact{min-height:56px;font-size:var(--text-md);box-shadow:0 4px 0 var(--gold-deep), 0 8px 14px #f0a80042}.primary.compact:active{box-shadow:0 1px 0 var(--gold-deep)}.secondary{min-height:76px;font-size:var(--text-xl);border:2px solid var(--border);border-radius:var(--btn-radius);background:var(--card);color:var(--ink);cursor:pointer;transition:transform var(--dur-snap) ease, box-shadow var(--dur-snap) ease;flex:1;justify-content:center;align-items:center;gap:12px;padding:16px 20px;font-weight:900;display:flex}.secondary:active{transform:translateY(3px)}.confetti{z-index:90;pointer-events:none;width:12px;height:18px;animation:linear forwards confetti-fall;position:fixed;top:-20px}@keyframes confetti-fall{0%{opacity:1;transform:translate(0,0)rotate(0)}to{transform:translate3d(var(--cx), 108vh, 0) rotate(720deg);opacity:.85}}.win-banner{font-size:var(--text-4xl);text-align:center;animation:pop .5s var(--ease-bounce);margin:4px 0 8px;line-height:1}.event-banner{font-size:var(--text-sm);background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #f59e0b;align-items:center;gap:8px;padding:10px 14px;display:flex}.event-icon{font-size:1.4em}.diff-row{justify-content:center;gap:8px;margin-top:12px;display:flex}.diff-btn{border:2px solid var(--border);background:var(--card);cursor:pointer;font-size:var(--text-sm);border-radius:20px;padding:6px 14px;font-weight:600;transition:all .15s}.diff-btn.selected{border-color:var(--accent);background:var(--accent);color:#fff}.diff-btn.q-correct{background:#d4f8e0;border-color:#2ecc71;animation:.4s q-pop}.diff-btn.q-wrong{background:#fdebd0;border-color:#e67e22;animation:.4s q-shake}.diff-btn.q-dim{opacity:.4}.q-feedback{margin-top:10px;animation:.3s q-pop}.q-answered{animation:.3s q-pop}@keyframes q-pop{0%{opacity:0;transform:scale(.9)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes q-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.icon{font-size:2.4rem}.product-row{border-bottom:1px solid #f0e3cd;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;display:flex}.product-row:last-child{border-bottom:none}.product-name{font-size:var(--text-lg);align-items:center;gap:8px;font-weight:700;display:flex}.stock-badge{color:#155724;background:#d4edda;border-radius:10px;padding:2px 8px;font-size:.7em;font-weight:700}.cost-hint{color:var(--muted);font-size:.65em;font-weight:500}.stall{margin:6px 0 14px;animation:.4s rise,4.5s ease-in-out infinite bob;position:relative}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.awning{background:repeating-linear-gradient(90deg, var(--accent) 0 26px, #fff 26px 52px);height:34px;box-shadow:var(--shadow);border-radius:14px 14px 0 0}.shelf{height:104px;box-shadow:var(--shadow);background:linear-gradient(#9c6b48,#7a4e33);border-radius:0 0 12px 12px;justify-content:center;align-items:flex-end;gap:10px;padding:10px;display:flex;position:relative}.shelf-flag{color:var(--accent);box-shadow:var(--shadow);font-weight:800;font-size:var(--text-2xl);background:#fff;border-radius:8px;padding:2px 10px;position:absolute;top:-28px;left:14px}.tile{width:70px;box-shadow:var(--shadow);text-align:center;background:#fff;border:2px solid #f0e3cd;border-radius:12px;padding:8px 4px 4px}.tile .t-emoji{font-size:var(--text-3xl);line-height:1}.tile .t-dots{justify-content:center;gap:3px;min-height:8px;margin-top:5px;display:flex}.tile .t-dots i{background:var(--teal);border-radius:50%;width:8px;height:8px;transition:opacity .3s,transform .3s;display:inline-block}.tile .t-dots i.out{opacity:.15;transform:scale(.7)}.tile.sold{animation:.5s deplete}.character{flex-direction:column;align-items:center;width:120px;margin:4px auto 12px;display:flex;position:relative}.character .face{border:3px solid var(--ink);width:72px;height:72px;transition:transform .3s var(--ease-bounce), filter .3s ease;background:#ffd9a0;border-radius:50%;justify-content:center;align-items:center;font-size:2.6rem;display:flex}.character .body{background:var(--teal);width:40px;height:34px;transition:transform .3s var(--ease-bounce), filter .3s ease;border-radius:16px 16px 6px 6px;margin-top:-8px}.character.hop .face,.character.hop .body{animation:customer-hop .5s var(--ease-bounce)}.character.droop .face,.character.droop .body{animation:.5s forwards customer-droop}@keyframes customer-hop{0%{transform:translateY(0)}40%{transform:translateY(-18px)}to{transform:translateY(0)}}@keyframes customer-droop{0%{opacity:1;transform:translateY(0)}to{opacity:.4;transform:translateY(8px)}}.think-bubble{background:var(--card);font-size:var(--text-md);box-shadow:var(--shadow);opacity:0;animation:think-in .3s var(--ease-out) .8s forwards;white-space:nowrap;z-index:10;border:2px solid #f0e3cd;border-radius:999px;padding:4px 12px;position:absolute;top:-28px;left:50%;transform:translate(-50%)scale(.6)}@keyframes think-in{to{opacity:1;transform:translate(-50%)scale(1)}}.reaction{background:var(--card);font-weight:800;font-size:var(--text-base);box-shadow:var(--shadow);opacity:0;z-index:60;pointer-events:none;white-space:nowrap;border-radius:999px;padding:8px 16px;transition:opacity .25s,transform .25s;position:fixed;top:34%;left:50%;transform:translate(-50%,-10px)scale(.8)}.reaction.show{opacity:1;transform:translate(-50%)scale(1)}.reaction.good{color:var(--green)}.reaction.bad{color:var(--red)}.coin{z-index:60;pointer-events:none;font-size:2.2rem;animation:.6s ease-in forwards coinfly;position:fixed}@keyframes deplete{0%{transform:scale(1)}40%{transform:scale(1.12)}to{transform:scale(1)}}@keyframes coinfly{to{opacity:0;transform:translate(-60px,140px)}}.c-queue{justify-content:center;align-items:center;gap:6px;margin-bottom:10px;display:flex}.c-queue-head{border:3px solid var(--ink);width:40px;height:40px;box-shadow:var(--shadow);background:#ffd9a0;border-radius:50%;justify-content:center;align-items:center;font-size:1.5rem;display:flex}.c-queue-arrow{font-size:var(--text-sm);color:#bfaa94}.c-queue-icon{opacity:.7;background:#f0e3cd;border:2px solid #d4c4ae;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;font-size:1.1rem;transition:all .3s;display:flex}.c-counter{font-size:var(--text-sm);color:#8a7560;text-align:center;margin-bottom:6px;font-weight:800}.price-hint{font-size:var(--text-sm);border-radius:8px;align-items:center;gap:4px;margin-top:4px;padding:3px 8px;font-weight:700;display:inline-flex}.price-hint.good{color:var(--green-deep);background:#eafff1}.price-hint.fair{color:#b8860b;background:#fff8e1}.customer{text-align:center;padding:20px}.customer .big{font-size:var(--text-4xl);margin:8px 0;line-height:1}.customer .wants{font-size:var(--text-lg);color:#6b5748}.customer .limit{font-weight:800;font-size:var(--text-md);margin-top:6px}@keyframes walk-in{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:translate(0)}}@keyframes walk-out-right{to{opacity:0;transform:translate(60px)}}@keyframes walk-out-left{to{opacity:0;transform:translate(-60px)}}.character.walk-in{animation:walk-in .35s var(--ease-out) both}.character.walk-out-right{animation:.4s ease-in forwards walk-out-right}.character.walk-out-left{animation:.4s ease-in forwards walk-out-left}.result-line{font-size:var(--text-md);border-bottom:1px solid #f0e3cd;justify-content:space-between;padding:10px 0;font-weight:700;display:flex}.result-line.profit{color:var(--green)}.result-line.loss{color:var(--red)}.goal{background:var(--teal);color:#fff;font-weight:700;font-size:var(--text-lg);border-radius:999px;padding:6px 14px;display:inline-block}.centered{text-align:center}.centered .emoji{font-size:var(--text-2xl)}.hint{color:var(--red);margin-top:10px;font-weight:700}.result-big{font-size:var(--text-3xl);text-align:center;margin-bottom:10px;font-weight:800}.result-big.profit{color:var(--green)}.result-big.loss{color:var(--red)}.insight{background:var(--warm);border-radius:14px;margin-top:14px;padding:12px;font-weight:700}.vendor-mood{background:var(--cream);box-shadow:var(--shadow);border:3px solid #fff;border-radius:16px;align-items:center;gap:10px;margin-bottom:12px;padding:10px 12px;animation:.3s rise;display:flex}.vendor-mood.bounce .vm-face{animation:vendor-bounce .6s var(--ease-bounce)}.vendor-mood.bounce .vm-bubble{animation:bubble-pop .4s var(--ease-bounce) .15s both}@keyframes vendor-bounce{0%{transform:scale(1)}30%{transform:scale(1.3)rotate(-5deg)}60%{transform:scale(1.1)rotate(3deg)}to{transform:scale(1)rotate(0)}}@keyframes bubble-pop{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}.vendor-mood .vm-face{font-size:var(--text-3xl);animation:pop .3s var(--ease-bounce);line-height:1}.vendor-mood .vm-bubble{font-weight:800;font-size:var(--text-base);background:var(--card);color:var(--ink);border-radius:999px;padding:6px 12px}.vendor-mood.profit .vm-bubble{color:var(--green-deep)}.vendor-mood.loss .vm-bubble{color:var(--accent-deep)}.day-sweep{z-index:80;pointer-events:none;opacity:0;background:linear-gradient(#ffe9b8 0%,#ffd98a 50%,#fff3dc 100%);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;transform:translateY(100%)}.day-sweep.show{animation:sweep-in-out 1s var(--ease-out) forwards}.day-sweep .sweep-text{font-size:var(--text-3xl);color:var(--ink);text-shadow:0 2px 8px #ffc83c66;font-weight:900}@keyframes sweep-in-out{0%{opacity:0;transform:translateY(100%)}20%{opacity:1;transform:translateY(0)}60%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-100%)}}@keyframes greenflash{0%{background:#eafff1}to{background:0 0}}@keyframes graydim{0%{opacity:1}to{opacity:.4}}.spark{pointer-events:none;color:#fff7e0;text-shadow:0 0 6px #ffe9a8;opacity:.45;content-visibility:auto;contain-intrinsic-size:20px 20px;z-index:0;line-height:1;position:absolute}.spark.s1{font-size:var(--text-lg);top:16%;left:12%}.spark.s2{font-size:var(--text-base);top:30%;right:14%}.spark.s3{font-size:var(--text-sm);top:58%;left:18%}.spark.s4{font-size:var(--text-md);bottom:12%;right:20%}.spark.s5{font-size:var(--text-sm);top:22%;left:60%}.spark.s6{font-size:var(--text-base);bottom:30%;left:10%}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.spark,.coin,.reaction{display:none}}[dir=rtl] .dock .dock-row{flex-direction:row-reverse}[dir=rtl] .cashbox{align-items:flex-start}[dir=rtl] .coinstack{justify-content:flex-start}[dir=rtl] .val,[dir=rtl] .cash,[dir=rtl] .countup,[dir=rtl] .result-big,[dir=rtl] .limit b,[dir=rtl] .goal{direction:ltr;unicode-bidi:isolate}@media (width<=420px){.shell{padding:8px}.hud{padding:8px 10px;padding-top:calc(8px + env(safe-area-inset-top,0px));border-radius:16px;gap:6px;margin:6px 8px 0}.badge{font-size:var(--text-xs);padding:4px 8px}.cash{font-size:var(--text-md)}.coinstack{font-size:var(--text-base)}.goal{font-size:var(--text-base);padding:4px 10px}.scene{padding:10px 10px 12px}.dock{padding:8px 10px calc(10px + env(safe-area-inset-bottom))}.primary{min-height:58px;font-size:var(--text-md);border-radius:14px;padding:12px 16px}.stepper button{width:48px;height:48px;font-size:var(--text-lg);border-radius:12px}.stepper .val{min-width:40px;font-size:var(--text-base)}.product-name,.result-line{font-size:var(--text-base)}.customer .big,.win-banner{font-size:var(--text-3xl)}.result-big{font-size:var(--text-2xl)}.card{margin-bottom:12px;padding:14px}.character{width:100px}.character .face{width:64px;height:64px;font-size:var(--text-2xl)}.character .body{width:34px;height:28px}h1{font-size:var(--text-xl)}.tile{width:72px;padding:6px 3px 3px}.tile .t-emoji{font-size:var(--text-3xl)}.shelf{height:100px}.insight{font-size:var(--text-sm);padding:10px}.vendor-mood .vm-bubble{font-size:var(--text-sm);padding:5px 10px}}
