*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;overflow:hidden;background:#14120f;color:#f2ede4;font-family:system-ui,-apple-system,Segoe UI,sans-serif;overscroll-behavior:none;-webkit-text-size-adjust:100%;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}#app{position:fixed;inset:0;height:100dvh}canvas{touch-action:none;display:block}.crosshair{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);font-size:20px;color:rgba(255,255,255,.85);text-shadow:0 0 4px rgba(0,0,0,.8);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.hud-label{left:50%;top:calc(50% + 34px);transform:translateX(-50%);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:6px 14px;pointer-events:none}.cart-badge,.hud-label{position:fixed;background:rgba(20,18,15,.85);font-size:14px}.cart-badge{top:18px;right:18px;z-index:30;border:1px solid rgba(255,255,255,.2);border-radius:10px;padding:10px 16px;line-height:1.5}.cart-badge strong{font-size:16px}.hint{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);font-size:13px;color:rgba(242,237,228,.65);pointer-events:none}.touch-stick{position:fixed;left:24px;bottom:24px;width:120px;height:120px;border-radius:50%;background:rgba(20,18,15,.35);border:1px solid rgba(255,255,255,.25);z-index:15;touch-action:none;display:flex;align-items:center;justify-content:center}.touch-stick-knob{width:52px;height:52px;border-radius:50%;background:rgba(232,176,75,.85);border:1px solid rgba(255,255,255,.35);pointer-events:none}.overlay{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(10,9,7,.72);z-index:20}.overlay.subtle{background:rgba(10,9,7,.12);align-items:flex-end;padding-bottom:12vh;pointer-events:none}.panel.compact{width:auto;padding:14px 18px;background:rgba(32,29,24,.92);pointer-events:auto;display:flex;gap:10px;align-items:center}.panel{background:#201d18;border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:28px;width:min(440px,92vw);max-height:88vh;overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,.5)}.panel h1{font-size:26px;margin-bottom:8px}.panel h2{font-size:20px;margin-bottom:12px}.panel p.muted{color:rgba(242,237,228,.65);font-size:14px;margin-bottom:16px}.panel img.product-photo{width:96px;height:96px;object-fit:cover;border-radius:12px;background:#2b2722;display:block;margin-bottom:12px}.price{font-size:20px;font-weight:700;margin:10px 0}.row{display:flex;gap:10px;align-items:center;margin:12px 0}button{font:inherit;border:none;border-radius:10px;padding:10px 18px;cursor:pointer;background:#e8b04b;color:#221c10;font-weight:700}button.secondary{background:transparent;color:#f2ede4;border:1px solid rgba(255,255,255,.25)}button:disabled{opacity:.5;cursor:default}button.qty{width:38px;padding:8px 0}input,select{font:inherit;width:100%;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.2);background:#16130f;color:#f2ede4;margin-bottom:10px}label.field{font-size:13px;color:rgba(242,237,228,.7);display:block}.cart-lines{border-top:1px solid rgba(255,255,255,.12);margin-top:8px;padding-top:8px}.cart-line{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;font-size:14px}.error{color:#ff9d7a;font-size:14px;margin:8px 0}.ship-option{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid rgba(255,255,255,.18);border-radius:10px;margin-bottom:8px;cursor:pointer}.ship-option input{width:auto;margin:0}.cart-badge{top:calc(18px + env(safe-area-inset-top));right:calc(18px + env(safe-area-inset-right))}.hint{bottom:calc(16px + env(safe-area-inset-bottom))}.touch-stick{left:calc(24px + env(safe-area-inset-left));bottom:calc(24px + env(safe-area-inset-bottom))}.panel{touch-action:pan-y;-webkit-overflow-scrolling:touch}.panel input,.panel textarea{-moz-user-select:text;user-select:text;-webkit-user-select:text}@media (max-width:640px){.panel{width:min(440px,100vw - 16px);max-height:88dvh;padding:20px}button{min-height:44px}button.qty{width:44px;height:44px}input,select{font-size:16px}.cart-badge{font-size:13px;padding:8px 12px}.row{flex-wrap:wrap}.hint{top:calc(12px + env(safe-area-inset-top));bottom:auto;left:calc(12px + env(safe-area-inset-left));transform:none;text-align:left;max-width:52vw;font-size:12px;line-height:1.35}}@media (orientation:landscape) and (max-height:500px){.panel{max-height:92dvh;padding:14px 18px}.panel h1{font-size:20px}.panel p.muted{margin-bottom:8px}.panel img.product-photo{width:64px;height:64px}.touch-stick{transform:scale(.82);transform-origin:bottom left}}.progress-track{height:6px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;margin-top:4px}.progress-bar{height:100%;background:#e8b04b;border-radius:999px;transition:width .2s ease-out}.design-bar{position:fixed;top:calc(12px + env(safe-area-inset-top));left:12px;right:12px;z-index:40;display:flex;gap:8px;align-items:center;background:rgba(32,29,24,.94);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:10px 14px;font-size:14px}.design-bar .muted-inline,.muted-inline{color:rgba(242,237,228,.65);font-size:13px}.design-message{left:12px;background:rgba(32,29,24,.94);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:8px 12px}.design-errors,.design-message{position:fixed;top:calc(68px + env(safe-area-inset-top));z-index:40;font-size:13px}.design-errors{right:12px;max-width:380px;background:rgba(60,22,18,.95);border:1px solid rgba(255,128,110,.5);color:#ffb4a3;border-radius:10px;padding:10px 12px}.design-panel{position:fixed;top:calc(112px + env(safe-area-inset-top));right:12px;bottom:12px;width:300px;z-index:35;overflow-y:auto;background:rgba(32,29,24,.94);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:14px;font-size:13px}.design-panel h3{margin:10px 0 6px;font-size:14px}.design-panel .drow{display:flex;gap:6px;align-items:center;margin-bottom:6px}.design-panel input[type=number]{width:64px;padding:6px 8px;margin:0}.design-panel input:not([type]),.design-panel input[type=text]{padding:6px 8px;margin:0}.design-panel button{padding:6px 10px;min-height:0}