:root{--bg:#fff8ed;--panel:#ffffffd9;--panel-solid:#fff;--text:#2c1910;--muted:#765f52;--line:#4c2b1a1f;--coffee:#6f3d22;--accent:#ec8d27;--green:#03ac0e;--orange:#ee4d2d;--shadow:0 20px 50px #47281326;--radius-lg:20px;--radius-md:14px}*{box-sizing:border-box}html,body,#app{background:var(--bg);width:100%;height:100%;color:var(--text);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}button,input{font:inherit}button{cursor:pointer;border:0;transition:all .25s cubic-bezier(.4,0,.2,1)}.canvas-wrap{position:fixed;inset:0}.canvas-wrap canvas{width:100%;height:100%;display:block}.topbar{z-index:5;pointer-events:none;justify-content:space-between;align-items:flex-start;gap:16px;display:flex;position:fixed;top:20px;left:20px;right:20px}.brand,.character-panel,.theme-panel,.product-panel,.help-panel{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px)}.brand{border-radius:var(--radius-md);max-width:320px;padding:12px 14px}.brand p{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 4px;font-size:.7rem;font-weight:900}.brand h1{margin:0;font-size:clamp(1.2rem,2.5vw,1.6rem);font-weight:800;line-height:1.1}.brand span{color:var(--muted);margin-top:6px;font-size:.78rem;line-height:1.4;display:block}.control-row{pointer-events:auto;flex-direction:column;gap:10px;width:250px;display:flex}.character-panel,.theme-panel{border-radius:var(--radius-md);padding:10px 12px}.character-panel strong,.theme-panel strong{letter-spacing:.02em;margin-bottom:6px;font-size:.78rem;font-weight:700;display:block}.character-options{grid-template-columns:1fr 1fr;gap:6px;display:grid}.character-button{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-solid);min-height:34px;color:var(--text);font-size:.78rem;font-weight:800}.character-button.active{color:#fff;background:var(--coffee);box-shadow:0 4px 12px #6f3d2240}.character-button:hover:not(.active){background:#6f3d2214}.theme-options{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.theme-button{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--panel-solid);min-height:34px;color:var(--text);font-size:.78rem;font-weight:800}.theme-button.active{color:#fff;background:var(--coffee);box-shadow:0 4px 12px #6f3d2240}.theme-button:hover:not(.active){background:#6f3d2214}.product-panel{z-index:5;border-radius:var(--radius-lg);width:min(440px,100% - 40px);max-height:min(560px,100% - 220px);padding:22px;transition:all .3s;position:fixed;bottom:20px;right:20px;overflow-y:auto}.product-panel.hidden{display:none!important}.product-panel__eyebrow{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;margin:0 0 6px;font-size:.8rem;font-weight:900}.product-panel h2{margin:0;font-size:1.45rem;font-weight:800}.product-panel__hint{color:var(--muted);margin:8px 0 16px;font-size:.9rem;line-height:1.5}.product-list{gap:12px;display:grid}.product-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel-solid);padding:16px;transition:transform .2s,box-shadow .2s;position:relative}.product-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #47281314}.product-card__badge{background:var(--accent);color:#fff;text-transform:uppercase;z-index:2;border-radius:4px;padding:2px 6px;font-size:.65rem;font-weight:850;position:absolute;top:8px;right:8px;box-shadow:0 2px 6px #ec8d2759}.product-card__img-wrap{background:#1e1e1e;border-radius:6px;justify-content:center;align-items:center;width:100%;height:95px;margin-bottom:8px;display:flex;overflow:hidden}.product-card__img{object-fit:cover;width:100%;height:100%;transition:transform .3s}.product-card:hover .product-card__img{transform:scale(1.06)}.product-card h3{margin:0 0 6px;font-size:1.05rem;font-weight:700}.product-card p{color:var(--muted);margin:0;font-size:.88rem;line-height:1.5}.product-card__meta{justify-content:space-between;align-items:center;gap:10px;margin:12px 0;display:flex}.product-card__meta span{color:var(--coffee);font-size:.95rem;font-weight:800}.marketplace{color:#fff;letter-spacing:.02em;border-radius:999px;padding:4px 10px;font-size:.72rem;font-weight:800}.marketplace.tokopedia{background:var(--green)}.marketplace.shopee{background:var(--orange)}.buy-button{border-radius:var(--radius-md);color:#fff;background:var(--coffee);width:100%;min-height:44px;font-size:.9rem;font-weight:800;box-shadow:0 2px 6px #6f3d2226}.buy-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.product-panel.theme-indomaret{border-color:#00509d33}.product-panel.theme-indomaret .product-panel__eyebrow{color:#00509d}.product-panel.theme-indomaret .buy-button{background:#00509d;box-shadow:0 4px 12px #00509d40}.product-panel.theme-alfamart{border-color:#e51a2333}.product-panel.theme-alfamart .product-panel__eyebrow{color:#e51a23}.product-panel.theme-alfamart .buy-button{background:#e51a23;box-shadow:0 4px 12px #e51a2340}.product-panel.theme-excelso{border-color:#c49b454d}.product-panel.theme-excelso .product-panel__eyebrow{color:#c49b45}.product-panel.theme-excelso .buy-button{color:#c49b45;background:#1c1c1c;border:1px solid #c49b45;box-shadow:0 4px 12px #1c1c1c40}.product-panel.theme-excelso .buy-button:hover{color:#1a1a1a;background:#c49b45}.product-panel.theme-coffee .product-panel__eyebrow{color:#6f3d22}.product-panel.theme-coffee .buy-button{background:#6f3d22}.product-panel.theme-drink .product-panel__eyebrow{color:#2f8d80}.product-panel.theme-drink .buy-button{background:#2f8d80}.empty-products{border:1px dashed var(--line);border-radius:var(--radius-lg);color:var(--muted);text-align:center;background:#ffffff80;padding:24px;font-size:.9rem}.help-panel{z-index:5;border-radius:var(--radius-md);max-width:280px;color:var(--muted);padding:10px 12px;font-size:.76rem;line-height:1.4;position:fixed;bottom:20px;left:20px}.help-panel strong{color:var(--text)}.mobile-controls{z-index:6;grid-template-rows:repeat(3,54px);grid-template-columns:repeat(3,54px);gap:8px;display:none;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.mobile-controls button{border:1px solid var(--line);color:var(--text);background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:16px;font-size:1.1rem;font-weight:900}.mobile-controls button:active{background:var(--coffee);color:#fff}.mobile-controls .up{grid-column:2}.mobile-controls .left{grid-area:2/1}.mobile-controls .down{grid-area:2/2}.mobile-controls .right{grid-area:2/3}@media (width<=860px){.topbar{box-shadow:none;pointer-events:none;background:0 0;flex-direction:row;justify-content:space-between;align-items:center;gap:6px;top:8px;left:8px;right:8px}.brand{display:none}.control-row{pointer-events:auto;flex-direction:row;justify-content:space-between;gap:6px;width:100%}.character-panel,.theme-panel{-webkit-backdrop-filter:blur(8px);background:#121212bf;border:1px solid #ffffff1f;border-radius:12px;flex-direction:row;flex:1;align-items:center;gap:4px;padding:4px 6px;display:flex}.character-panel strong,.theme-panel strong{display:none}.character-buttons,.theme-buttons{flex-direction:row;gap:3px;width:100%;display:flex}.character-button,.theme-button{border-radius:8px;flex:1;min-height:28px;padding:2px 4px;font-size:.74rem}.brand span,.help-panel{display:none}.product-panel{background:#121212eb;border:1px solid #ffffff26;border-radius:16px;padding:10px 12px;bottom:12px;right:12px;box-shadow:0 8px 32px #0006;flex-direction:column!important;width:auto!important;max-height:42%!important;display:flex!important;left:136px!important;overflow:hidden!important}.product-panel h2{font-size:.95rem;color:#fff!important;margin:0 0 6px!important}.product-panel__hint,.product-panel__eyebrow{display:none!important}.product-list{-webkit-overflow-scrolling:touch;touch-action:pan-x!important;flex-direction:row!important;gap:10px!important;margin:0!important;padding-bottom:8px!important;display:flex!important;overflow:auto hidden!important}.product-card{touch-action:pan-x!important;background:#fff!important;border-radius:12px!important;flex-direction:column!important;flex:0 0 210px!important;justify-content:space-between!important;width:210px!important;max-height:100%!important;padding:10px!important;display:flex!important;box-shadow:0 4px 12px #0000001a!important}.product-card h3{color:#1a1a1a!important;margin:0 0 4px!important;font-size:.82rem!important;font-weight:800!important;line-height:1.2!important}.product-card p{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden;color:#555!important;margin:0 0 8px!important;font-size:.72rem!important;line-height:1.35!important}.product-card__meta{justify-content:space-between!important;align-items:center!important;margin:auto 0 8px!important;display:flex!important}.product-card__meta span{color:#e51a23!important;font-size:.8rem!important;font-weight:900!important}.buy-button{border-radius:8px!important;width:100%!important;min-height:32px!important;margin-top:auto!important;padding:6px!important;font-size:.74rem!important;font-weight:800!important}.joystick-container{display:block!important}}.joystick-container{z-index:100;touch-action:none;width:110px;height:110px;display:none;position:fixed;bottom:24px;left:24px}.joystick-base{-webkit-backdrop-filter:blur(8px);touch-action:none;background:#12121273;border:2px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;box-shadow:0 8px 32px #00000040}.joystick-knob{cursor:pointer;touch-action:none;background:#fff;border-radius:50%;width:42px;height:42px;transition:transform 50ms ease-out;position:absolute;box-shadow:0 4px 12px #00000059}.emote-panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);z-index:99;-webkit-backdrop-filter:blur(20px);pointer-events:auto;flex-direction:column;gap:12px;padding:10px;display:flex;position:fixed;top:170px;left:20px}.emote-button{background:var(--panel-solid);width:46px;height:46px;color:var(--text);border:1px solid var(--line);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 10px #0000000f}.emote-button:hover{background:var(--accent);color:#fff;transform:scale(1.18)translate(3px,-3px);box-shadow:0 6px 16px #ec8d2759}.emote-button:active{transform:scale(.92)}@media (width<=768px){.emote-panel{gap:10px;padding:8px;top:auto;bottom:145px;left:24px}.emote-button{width:42px;height:42px;font-size:1.2rem}}.donate-toast{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);max-width:320px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);z-index:105;opacity:0;pointer-events:none;flex-direction:column;gap:8px;padding:12px 14px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:90px;right:20px;transform:translateY(20px)}.donate-toast.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.donate-toast__icon{font-size:1.8rem;line-height:1}.donate-toast__content strong{margin-bottom:2px;font-size:.88rem;font-weight:800;display:block}.donate-toast__content p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.35}.donate-toast__actions{gap:8px;margin-top:4px;display:flex}.donate-toast__btn{border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:32px;font-size:.76rem;font-weight:800;display:flex}.donate-toast__btn.donate{background:var(--accent);color:#fff;border:1px solid #0000000d}.donate-toast__btn.donate:hover{transform:translateY(-2px);box-shadow:0 4px 10px #ec8d274d}.donate-toast__btn.close{color:var(--muted);border:1px solid var(--line);background:#0000000d}.donate-toast__btn.close:hover{background:#00000014}@media (width<=768px){.donate-toast{max-width:none;bottom:220px;left:20px;right:20px}}.arcade-prompt{background:var(--accent);color:#fff;z-index:102;pointer-events:auto;cursor:pointer;opacity:0;border-radius:20px;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;font-weight:800;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;bottom:85px;left:50%;transform:translate(-50%)translateY(20px);box-shadow:0 4px 15px #ec8d2766}.arcade-prompt.visible{opacity:1;transform:translate(-50%)translateY(0)}.arcade-prompt span.pulse{animation:1.2s infinite alternate pulseIcon}@keyframes pulseIcon{0%{transform:scale(1)}to{transform:scale(1.3)}}.game-overlay{-webkit-backdrop-filter:blur(8px);z-index:200;opacity:0;pointer-events:none;background:#000000a6;justify-content:center;align-items:center;width:100%;height:100%;transition:opacity .3s;display:flex;position:fixed;top:0;left:0}.game-overlay.visible{opacity:1;pointer-events:auto}.game-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-lg);width:90%;max-width:400px;box-shadow:var(--shadow);flex-direction:column;gap:16px;padding:24px;display:flex;position:relative}.game-close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1.8rem;line-height:1;position:absolute;top:16px;right:16px}.game-close:hover{color:var(--foreground)}.game-header{text-align:center}.game-badge{color:var(--accent);text-transform:uppercase;background:#ec8d2726;border-radius:12px;padding:4px 10px;font-size:.68rem;font-weight:800}.game-header h2{margin:6px 0 2px;font-size:1.4rem;font-weight:900}.game-header p{color:var(--muted);margin:0;font-size:.74rem}.game-container{border-radius:var(--radius-md);border:1px solid var(--line);background:#111118;height:380px;position:relative;overflow:hidden}.game-screen{box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:20px;display:none;position:absolute;top:0;left:0}.game-screen.active{display:flex}.game-intro{text-align:center;flex-direction:column;align-items:center;gap:12px;display:flex}.game-intro-icon{font-size:3.5rem;animation:2s ease-in-out infinite floatIcon}@keyframes floatIcon{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.game-intro p{color:#c0c0d0;margin:0;font-size:.8rem;line-height:1.5}.game-btn-start{background:var(--accent);color:#fff;border-radius:var(--radius-md);cursor:pointer;border:none;padding:10px 24px;font-size:.85rem;font-weight:800;transition:transform .2s,box-shadow .2s;box-shadow:0 4px 12px #ec8d274d}.game-btn-start:hover{transform:translateY(-2px);box-shadow:0 6px 16px #ec8d2766}.game-stats{color:#fff;z-index:10;justify-content:space-between;font-size:.85rem;font-weight:800;display:flex;position:absolute;top:12px;left:12px;right:12px}#mini-game-canvas{width:100%;height:100%;display:block}.game-reward{border:1px dashed var(--accent);background:#ec8d271f;border-radius:8px;margin:4px 0;padding:10px 14px;font-size:.8rem;animation:1s infinite alternate shineReward}@keyframes shineReward{0%{box-shadow:0 0 4px #ec8d271a}to{box-shadow:0 0 12px #ec8d2766}}@media (width<=768px){.arcade-prompt{font-size:.74rem;bottom:220px}}
