:root{--font:-apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--ink:#eef0f6;--ink-dim:#9aa2b4;--glass:#0e1018b8;--glass-light:#ffffff0f;--stroke:#ffffff1f;--accent:#7c8cff;--radius:14px;--shadow:0 12px 40px #00000073}*{box-sizing:border-box}html,body,#root{height:100%;font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;background:#0b0d12;margin:0;overflow:hidden}.app-root{position:fixed;inset:0}.app-root>canvas{touch-action:none;position:absolute;inset:0}.muted{color:var(--ink-dim)}.btn{border:1px solid var(--stroke);background:var(--glass);color:var(--ink);font:600 13.5px var(--font);cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);-webkit-user-select:none;user-select:none;border-radius:11px;align-items:center;gap:8px;padding:9px 16px;transition:background .18s,border-color .18s,transform .12s,opacity .18s;display:inline-flex}.btn:hover{background:#282c3cd9;border-color:#ffffff38}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:default;transform:none}.btn-primary{background:var(--accent);color:#0c0e16;border-color:#0000}.btn-primary:hover{filter:brightness(1.1);background:var(--accent)}.btn-ghost.active{border-color:var(--accent);color:var(--accent)}.btn-sm{padding:6px 12px;font-size:12.5px}.btn-block{justify-content:center;width:100%;padding:12px 16px;font-size:14px}.btn-icon{background:var(--glass-light);color:var(--ink-dim);cursor:pointer;border:none;border-radius:9px;width:30px;height:30px;font-size:13px;line-height:1;transition:background .15s,color .15s}.btn-icon:hover{color:var(--ink);background:#ffffff24}.btn-icon.sm{width:24px;height:24px;font-size:11px}.row{justify-content:space-between;align-items:center;gap:12px;display:flex}.row.total{border-top:1px solid var(--stroke);margin-top:6px;padding-top:10px;font-size:16px;font-weight:700}.panel-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.panel-head h2{letter-spacing:.2px;margin:0;font-size:17px}.hud-top{pointer-events:none;z-index:40;justify-content:space-between;align-items:center;padding:16px 20px;display:flex;position:absolute;top:0;left:0;right:0}.hud-left,.hud-right{pointer-events:auto;align-items:center;gap:12px;display:flex}.hud-logo{letter-spacing:.4px;background:var(--glass);border:1px solid var(--stroke);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:9px;padding:9px 15px;font-size:16.5px;font-weight:800;display:flex}.hud-store-chip{background:var(--glass);border:1px solid var(--stroke);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);align-items:center;gap:9px;padding:8px 14px;font-size:13.5px;font-weight:600;animation:.35s rise-in;display:flex}.hud-store-dot{border-radius:50%;flex:none;width:9px;height:9px}.hud-store-dot.big{width:12px;height:12px}.badge-local{letter-spacing:1px;color:#7fe0a8;background:#7fe0a829;border:1px solid #7fe0a866;border-radius:6px;padding:2px 6px;font-size:9.5px;font-weight:800}.btn-cart{position:relative}.cart-badge{background:var(--accent);color:#0c0e16;border-radius:10px;justify-content:center;align-items:center;min-width:19px;height:19px;padding:0 5px;font-size:11px;font-weight:800;display:flex;position:absolute;top:-7px;right:-7px;box-shadow:0 2px 8px #0006}.hud-hint{z-index:40;background:var(--glass);border:1px solid var(--stroke);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);color:var(--ink-dim);pointer-events:none;padding:9px 15px;font-size:12.5px;animation:.4s rise-in;position:absolute;bottom:18px;left:20px}.price-tag{background:var(--glass);border:1px solid var(--stroke);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;animation:.18s pop-in;display:flex;transform:translateZ(0)}.price-tag-name{color:var(--ink);font-size:12px;font-weight:600}.price-tag-price{font-size:13.5px;font-weight:800}.hotspot{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a0c1299;border:2px solid;border-radius:50%;justify-content:center;align-items:center;width:25px;height:25px;animation:2.2s ease-in-out infinite hotspot-pulse;display:flex;box-shadow:0 2px 10px #0006,0 0 0 3px #ffffff1a}.hotspot span{border-radius:50%;width:9px;height:9px;display:block;box-shadow:0 0 6px #ffffff59}@keyframes hotspot-pulse{0%,to{opacity:.92;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}.dim-label{color:#cfe2ff;white-space:nowrap;background:#0a0e18cc;border:1px solid #9fd0ff59;border-radius:7px;padding:3px 8px;font-size:11px;font-weight:700}.info-panel,.directory-panel,.room-panel{background:var(--glass);border:1px solid var(--stroke);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:330px;max-height:calc(100% - 110px);box-shadow:var(--shadow);z-index:45;opacity:0;pointer-events:none;border-radius:18px;padding:18px;transition:opacity .28s,transform .28s;position:absolute;top:76px;right:20px;overflow-y:auto;transform:translate(24px)}.room-panel{left:20px;right:auto;transform:translate(-24px)}.info-panel.open,.directory-panel.open,.room-panel.open{opacity:1;pointer-events:auto;transform:translate(0)}.info-store{letter-spacing:1.4px;text-transform:uppercase;font-size:11.5px;font-weight:800}.info-name{margin:2px 0 8px;font-size:21px;line-height:1.2}.info-rating{align-items:center;gap:8px;margin-bottom:10px;font-size:12.5px;display:flex}.stars .star{color:#ffffff38;font-size:13px}.stars .star.on{color:#ffd166}.info-price{margin-bottom:10px;font-size:24px;font-weight:800}.info-desc{color:#c6ccda;margin:0 0 14px;font-size:13.5px;line-height:1.55}.info-dims{color:var(--ink-dim);background:var(--glass-light);border-radius:11px;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;padding:10px 12px;font-size:12.5px;display:flex}.info-label{letter-spacing:1px;text-transform:uppercase;color:var(--ink-dim);margin-bottom:8px;font-size:11.5px;font-weight:700;display:block}.info-variants{margin-bottom:16px}.swatch-row{align-items:center;gap:9px;display:flex}.swatch{cursor:pointer;border:2px solid #ffffff2e;border-radius:50%;width:30px;height:30px;transition:transform .15s,border-color .15s,box-shadow .15s}.swatch:hover{transform:scale(1.1)}.swatch.selected{border-color:#fff;box-shadow:0 0 0 3px #ffffff2e}.swatch-label{margin-top:7px;font-size:12px;display:inline-block}.info-actions{flex-direction:column;gap:9px;display:flex}.directory-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.directory-item{border-radius:12px;align-items:center;gap:12px;padding:11px 10px;transition:background .15s;display:flex}.directory-item:hover{background:var(--glass-light)}.directory-info{flex:1;min-width:0}.directory-name{align-items:center;gap:8px;font-size:13.5px;font-weight:700;display:flex}.directory-meta{margin-top:2px;font-size:11.5px}.drawer-scrim{opacity:0;pointer-events:none;z-index:50;background:#05060a73;transition:opacity .3s;position:absolute;inset:0}.drawer-scrim.on{opacity:1;pointer-events:auto}.cart-drawer{border-left:1px solid var(--stroke);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);z-index:55;background:#0d0f16eb;flex-direction:column;width:390px;max-width:94vw;padding:22px;transition:transform .34s cubic-bezier(.25,.9,.3,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(102%)}.cart-drawer.open{transform:translate(0)}.cart-empty{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:14px;display:flex}.cart-empty-icon{margin-bottom:8px;font-size:40px}.cart-lines{flex-direction:column;flex:1;gap:12px;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.cart-line{background:var(--glass-light);border-radius:13px;align-items:flex-start;gap:12px;padding:12px;display:flex}.cart-thumb{border:1px solid;border-radius:11px;flex:none;justify-content:center;align-items:center;width:46px;height:46px;font-size:21px;display:flex}.cart-line-info{flex:1;min-width:0}.cart-line-name{font-size:13px;font-weight:700;line-height:1.3;display:block}.cart-line-variant{color:var(--ink-dim);margin-top:1px;font-size:11.5px;display:block}.qty-stepper{background:#ffffff12;border-radius:9px;align-items:center;gap:10px;margin-top:8px;padding:3px 6px;display:inline-flex}.qty-stepper button{width:22px;height:22px;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:7px;font-size:15px;line-height:1}.qty-stepper button:hover{background:#ffffff1f}.qty-stepper span{text-align:center;min-width:14px;font-size:13px;font-weight:700}.cart-line-right{flex-direction:column;align-items:flex-end;gap:8px;display:flex}.cart-line-price{font-size:13.5px;font-weight:800}.cart-line-remove{color:var(--ink-dim);cursor:pointer;background:0 0;border:none;padding:0;font-size:11.5px}.cart-line-remove:hover{color:#ff8d9d}.cart-summary{border-top:1px solid var(--stroke);flex-direction:column;gap:8px;margin-top:14px;padding-top:14px;font-size:13.5px;display:flex}.modal-scrim{z-index:60;opacity:0;pointer-events:none;background:#05060a8c;justify-content:center;align-items:center;transition:opacity .25s;display:flex;position:absolute;inset:0}.modal-scrim.on{opacity:1;pointer-events:auto}.modal{border:1px solid var(--stroke);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);width:440px;max-width:92vw;max-height:90vh;box-shadow:var(--shadow);background:#0f1119f0;border-radius:20px;padding:24px;animation:.32s cubic-bezier(.2,.9,.3,1.2) rise-in;overflow-y:auto}.checkout-section{margin-bottom:18px}.checkout-section h3{letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-dim);margin:0 0 10px;font-size:12px;font-weight:800}.form-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.form-grid label{color:var(--ink-dim);flex-direction:column;gap:5px;font-size:11.5px;font-weight:600;display:flex}.form-grid label.span-2{grid-column:span 2}.form-grid input{border:1px solid var(--stroke);color:var(--ink);font:500 13px var(--font);background:#ffffff0f;border-radius:9px;outline:none;padding:9px 11px;transition:border-color .15s}.form-grid input:focus{border-color:var(--accent)}.payment-row{background:var(--glass-light);border:1px solid var(--stroke);border-radius:11px;align-items:center;gap:12px;padding:12px 14px;font-size:13.5px;font-weight:600;display:flex}.payment-brand{letter-spacing:.5px;color:#fff;background:#1a3a8f;border-radius:5px;padding:3px 7px;font-size:12px;font-style:italic;font-weight:900}.checkout-total{font-size:19px;font-weight:800}.checkout-fineprint{text-align:center;color:var(--ink-dim);margin:12px 0 0;font-size:11px}.spinner-row{align-items:center;gap:9px;display:inline-flex}.spinner{border:2px solid #0c0e164d;border-top-color:#0c0e16;border-radius:50%;width:15px;height:15px;animation:.7s linear infinite spin}.success-scrim{background:#05060ab3}.success-modal{text-align:center;width:400px}.success-check{color:#7fe0a8;background:#7fe0a826;border:2px solid #7fe0a8;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;margin:6px auto 16px;font-size:30px;font-weight:800;animation:.45s cubic-bezier(.2,1.4,.4,1) pop-in;display:flex}.success-modal h2{margin:0 0 6px}.success-order{letter-spacing:1px;color:var(--accent);margin:0 0 10px;font-size:14px;font-weight:800}.success-modal .muted{margin:0 0 18px;font-size:13px;line-height:1.55}.confetti-layer{pointer-events:none;position:absolute;inset:0;overflow:hidden}.confetti{border-radius:2px;animation:linear forwards confetti-fall;position:absolute;top:-20px}@keyframes confetti-fall{to{opacity:.6;transform:translateY(110vh)rotate(660deg)}}.room-tip{margin:0 0 14px;font-size:12.5px;line-height:1.5}.room-placing{background:#7c8cff1a;border:1px solid #7c8cff59;border-radius:11px;align-items:flex-start;gap:10px;margin-bottom:14px;padding:11px 13px;font-size:12.5px;line-height:1.5;display:flex}.room-placing-pulse{background:var(--accent);border-radius:50%;flex:none;width:9px;height:9px;margin-top:4px;animation:1.4s infinite pulse}.room-list{flex-direction:column;gap:5px;margin:0 0 4px;padding:0;list-style:none;display:flex}.room-item{background:var(--glass-light);border-radius:9px;align-items:center;gap:9px;padding:8px 10px;font-size:12.5px;display:flex}.room-item-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.room-item-price{color:var(--ink-dim);font-weight:700}.room-total{margin-bottom:10px;font-size:13.5px!important}.room-actions{flex-direction:column;gap:9px;margin-top:6px;display:flex}.room-actions-row{justify-content:space-between;gap:9px;display:flex}.onboarding{background:var(--glass);border:1px solid var(--stroke);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);width:430px;max-width:92vw;box-shadow:var(--shadow);z-index:46;border-radius:18px;gap:16px;padding:18px 20px;animation:.45s cubic-bezier(.2,.9,.3,1.15) rise-in;display:flex;position:absolute;bottom:64px;left:50%;transform:translate(-50%)}.onboarding-icon{margin-top:3px;font-size:30px;line-height:1}.onboarding-body{flex:1}.onboarding-body h3{margin:0 0 4px;font-size:15px}.onboarding-body p{color:var(--ink-dim);margin:0 0 12px;font-size:12.5px;line-height:1.5}.onboarding-row{justify-content:space-between;align-items:center;display:flex}.onboarding-dots{gap:6px;display:flex}.dot{background:#ffffff2e;border-radius:50%;width:7px;height:7px;transition:background .2s}.dot.on{background:var(--accent)}.onboarding-actions{gap:8px;display:flex}.xr-buttons{z-index:40;gap:10px;display:flex;position:absolute;bottom:18px;right:20px}.btn-xr{color:#b9c2ff;border-color:#7c8cff80;font-weight:700}.fade-overlay{opacity:0;pointer-events:none;z-index:70;background:#f4f3f0;transition:opacity .48s;position:absolute;inset:0}.fade-overlay.on{opacity:1;pointer-events:auto}.intro-overlay{pointer-events:none;z-index:69;background:#0b0d12;animation:1.1s .2s forwards intro-out;position:absolute;inset:0}@keyframes intro-out{to{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.onboarding{animation-name:onboarding-in}@keyframes onboarding-in{0%{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%)}}@keyframes pop-in{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.78)}}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#ffffff24;border-radius:4px}::-webkit-scrollbar-track{background:0 0}
