:root{--bg-1: #ffeef2;--bg-2: #ede1ff;--bg-3: #d9f3ff;--card: #ffffff;--card-soft: #faf7ff;--fg: #1f1b3a;--fg-soft: #4a4670;--muted: #8b87a8;--brand: #8b5cf6;--brand-2: #ec4899;--brand-3: #f59e0b;--accent: #06b6d4;--good: #10b981;--warn: #f59e0b;--danger: #ef4444;--radius: 22px;--radius-sm: 14px;--shadow-sm: 0 2px 8px rgba(80, 50, 140, .08);--shadow: 0 8px 28px rgba(120, 70, 200, .14);--shadow-lg: 0 20px 50px rgba(120, 70, 200, .18);--gradient: linear-gradient(135deg, #8b5cf6 0%, #ec4899 50%, #f59e0b 100%);--gradient-soft: linear-gradient(135deg, #ffeef2 0%, #ede1ff 50%, #d9f3ff 100%)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(900px 500px at -10% -10%,rgba(236,72,153,.2) 0%,transparent 60%),radial-gradient(900px 600px at 110% 10%,rgba(139,92,246,.18) 0%,transparent 60%),radial-gradient(700px 500px at 50% 110%,rgba(6,182,212,.15) 0%,transparent 60%),var(--gradient-soft);background-attachment:fixed;color:var(--fg);font-family:Nunito,Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.app-shell{display:flex;flex-direction:column;height:100dvh}.app-main{flex:1;overflow:auto;padding-bottom:88px}.center{display:grid;place-items:center;height:100%;color:var(--muted)}.page{padding:20px 18px;max-width:720px;margin:0 auto}.page h1{margin:8px 0 18px;font-size:26px;font-weight:800;letter-spacing:-.01em;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.page h2{margin:20px 0 10px;font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700}.card{background:var(--card);border:1px solid rgba(139,92,246,.08);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.card+.card{margin-top:14px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 18px;border-radius:999px;border:none;background:var(--gradient);color:#fff;font-weight:700;font-size:15px;cursor:pointer;width:100%;box-shadow:0 8px 20px #ec489952;transition:transform .15s ease,box-shadow .15s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px #ec48996b}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn.secondary{background:#fff;color:var(--fg);border:1.5px solid rgba(139,92,246,.22);box-shadow:var(--shadow-sm)}.btn.ghost{background:transparent;color:var(--fg-soft);box-shadow:none}.btn.danger{background:linear-gradient(135deg,#ef4444,#f97316);box-shadow:0 8px 20px #ef444452}.btn-row{display:flex;gap:10px}.btn-row .btn{flex:1}.input,.select{width:100%;background:var(--card-soft);border:1.5px solid rgba(139,92,246,.15);color:var(--fg);padding:14px 16px;border-radius:var(--radius-sm);font-size:15px;font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 4px #8b5cf626}label{display:block;font-size:12px;color:var(--fg-soft);font-weight:700;margin:12px 0 6px;text-transform:uppercase;letter-spacing:.05em}.row{display:flex;align-items:center;gap:12px}.row.between{justify-content:space-between}.pill{font-size:11px;padding:5px 10px;border-radius:999px;background:#8b5cf61f;color:var(--brand);border:1px solid rgba(139,92,246,.25);font-weight:700}.pill.good{background:#10b9811f;color:var(--good);border-color:#10b9814d}.pill.warn{background:#f59e0b26;color:var(--warn);border-color:#f59e0b59}.nav{position:fixed;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(5,1fr);background:#ffffffeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(139,92,246,.1);padding:10px env(safe-area-inset-right) calc(10px + env(safe-area-inset-bottom)) env(safe-area-inset-left);z-index:30;box-shadow:0 -8px 30px #7846c814}.nav a{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--muted);font-size:11px;font-weight:700;padding:6px 0;border-radius:12px;transition:color .15s ease,transform .15s ease}.nav a.active{color:var(--brand);transform:translateY(-2px)}.nav a.active .ico{transform:scale(1.15)}.nav .ico{font-size:22px;transition:transform .18s ease}.login{display:grid;place-items:center;min-height:100dvh;padding:24px;text-align:center}.login .logo-img{width:240px;height:240px;object-fit:contain;background:transparent;margin-bottom:8px;filter:drop-shadow(0 12px 28px rgba(124,58,237,.25));animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes pulseDot{0%{box-shadow:0 0 #ffffffb3}70%{box-shadow:0 0 0 8px #fff0}to{box-shadow:0 0 #fff0}}@keyframes joinSlideIn{0%{opacity:0;transform:translate(24px) scale(.95)}to{opacity:1;transform:translate(0) scale(1)}}.login h1{font-size:38px;margin:0 0 6px;font-weight:900;letter-spacing:-.02em;background:var(--gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.login .tagline{color:var(--fg-soft);margin:0 0 28px;font-size:16px;font-weight:600}.login .card{max-width:380px;width:100%;text-align:left}.login .signin-btn{max-width:360px;background:#fff;color:var(--fg);border:1.5px solid rgba(139,92,246,.18);box-shadow:var(--shadow)}.login .signin-btn:hover{box-shadow:var(--shadow-lg)}.login .signin-btn .g-icon{width:22px;height:22px}.login .footnote{color:var(--muted);font-size:12px;margin-top:28px;max-width:320px;font-weight:600}.map-wrap{position:relative;height:100%}.map-overlay{position:absolute;left:14px;right:14px;top:14px;display:flex;gap:10px;justify-content:space-between;z-index:5}.map-card{background:#fffffff2;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:999px;padding:10px 16px;border:1px solid rgba(139,92,246,.12);font-size:13px;font-weight:700;color:var(--fg);box-shadow:var(--shadow-sm)}.share-toggle{background:#fff;color:var(--fg);width:auto;padding:10px 16px;border-radius:999px;border:1.5px solid rgba(139,92,246,.18);font-weight:700;font-size:13px;cursor:pointer;box-shadow:var(--shadow-sm)}.share-toggle.on{background:var(--gradient);color:#fff;border-color:transparent;box-shadow:0 6px 16px #ec489952}.share-toggle.small{padding:6px 12px;font-size:11px}.share-toggle:disabled{opacity:.5;cursor:not-allowed}.share-stack{display:flex;flex-direction:column;gap:6px;align-items:flex-end}.modal.tutorial{max-width:460px;padding:22px}.tutorial-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.tutorial-icon{font-size:36px;background:var(--gradient-soft);width:56px;height:56px;border-radius:16px;display:grid;place-items:center}.tutorial-dots{display:flex;gap:6px}.tutorial-dots .dot{width:8px;height:8px;border-radius:50%;background:#8b5cf633;transition:all .2s}.tutorial-dots .dot.active{background:var(--brand);width:22px;border-radius:4px}.tutorial-dots .dot.done{background:var(--brand-2)}.tutorial-body{font-size:14px;line-height:1.5;color:var(--fg-soft);max-height:50vh;overflow-y:auto}.tutorial-body ol,.tutorial-body ul{padding-left:20px;margin:8px 0}.tutorial-body li{margin-bottom:6px}.tutorial-body code{background:#8b5cf614;padding:1px 6px;border-radius:4px;font-size:12px}.tutorial-body a{color:var(--brand);font-weight:700}.tutorial-body .muted.small{font-size:12px;color:var(--muted)}.chip-inline{display:inline-block;padding:1px 8px;border-radius:999px;background:#8b5cf61f;color:var(--brand);font-weight:700;font-size:12px}.tutorial-skip{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--muted);cursor:pointer;font-size:12px;font-weight:700}.tutorial-skip:hover{color:var(--fg)}.modal.tutorial{position:relative}.avatar{width:140px;height:140px;border-radius:50%;background:linear-gradient(135deg,#ffd9a8,#ffb38a);display:grid;place-items:center;margin:0 auto;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}.avatar svg{width:100%;height:100%}.swatches{display:flex;flex-wrap:wrap;gap:10px}.swatch{width:40px;height:40px;border-radius:14px;border:3px solid transparent;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s ease}.swatch:hover{transform:scale(1.06)}.swatch.active{border-color:var(--brand);transform:scale(1.08)}.avatar-page{padding-bottom:32px}.avatar-preview{border-radius:28px;padding:16px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;box-shadow:var(--shadow-lg);min-height:240px}.tab-bar{display:flex;gap:6px;overflow-x:auto;padding:4px 0 8px;margin-bottom:8px;scrollbar-width:none}.tab-bar::-webkit-scrollbar{display:none}.tab{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 14px;border-radius:16px;border:2px solid transparent;background:var(--card);color:var(--fg);font-size:12px;cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .15s ease,border-color .15s ease}.tab .tab-icon{font-size:20px;line-height:1}.tab.active{border-color:var(--brand);transform:translateY(-2px)}.editor-card h3{margin:14px 0 8px;font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.editor-card h3:first-child{margin-top:0}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 14px;border-radius:999px;border:2px solid transparent;background:#8b5cf614;color:var(--fg);font-weight:600;font-size:13px;cursor:pointer;transition:all .15s ease}.chip:hover{background:#8b5cf62e}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chip.locked{opacity:.5;cursor:not-allowed}.layer-toggle{display:flex;gap:6px;flex-wrap:wrap}.fab{position:absolute;right:18px;bottom:18px;width:60px;height:60px;border-radius:50%;border:none;background:linear-gradient(135deg,#ec4899,#8b5cf6);color:#fff;font-size:32px;font-weight:300;line-height:1;cursor:pointer;box-shadow:0 8px 24px #8b5cf673;z-index:5;transition:transform .15s ease}.fab:hover{transform:scale(1.06)}.fab:disabled{opacity:.5;cursor:not-allowed}.fab.active{background:linear-gradient(135deg,#22c55e,#0ea5e9);box-shadow:0 8px 24px #22c55e80}.drop-banner{position:absolute;left:50%;transform:translate(-50%);bottom:92px;z-index:6;background:#0f0c20eb;color:#fff;padding:10px 14px;border-radius:999px;display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;box-shadow:0 8px 24px #0000004d;max-width:92vw}.drop-banner .chip{background:#ffffff26;color:#fff;padding:6px 12px;font-size:12px}.drop-banner .chip.active{background:#22c55e}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f0c208c;display:flex;align-items:center;justify-content:center;z-index:100;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{background:var(--card);border-radius:var(--radius);padding:20px;width:100%;max-width:420px;box-shadow:var(--shadow-lg);max-height:90vh;overflow-y:auto}.modal h2{margin-bottom:8px}.modal label{display:block;margin-top:10px;font-size:12px;font-weight:600;color:var(--muted)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.badge{background:var(--card);border-radius:var(--radius);padding:16px 12px;text-align:center;border:1px solid rgba(139,92,246,.08);box-shadow:var(--shadow-sm);transition:transform .15s ease}.badge:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.badge .ico{font-size:36px}.badge.locked{opacity:.4;filter:grayscale(1)}.badge .name{font-size:13px;margin-top:6px;font-weight:800;color:var(--fg)}.list{display:flex;flex-direction:column;gap:10px}.list-item{display:flex;align-items:center;gap:12px;background:var(--card);padding:14px;border-radius:var(--radius);border:1px solid rgba(139,92,246,.08);box-shadow:var(--shadow-sm)}.list-item .avatar-mini{width:44px;height:44px;border-radius:50%;background:var(--gradient);display:grid;place-items:center;font-weight:800;color:#fff;font-size:16px;box-shadow:0 4px 12px #ec489947}.empty{color:var(--muted);text-align:center;padding:28px 16px;font-weight:600}.error{color:var(--danger);font-size:13px;font-weight:600}.commercial-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#070516d9;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);animation:commercial-fade .24s ease-out}@keyframes commercial-fade{0%{opacity:0}to{opacity:1}}.commercial{position:relative;width:100%;max-width:520px;aspect-ratio:9 / 14;max-height:92vh;border-radius:24px;overflow:hidden;background:#0b0820;box-shadow:0 30px 80px #0009,0 0 0 1px #8b5cf64d inset;display:flex;flex-direction:column}.commercial-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:999px;border:none;background:#ffffff1f;color:#fff;font-size:16px;cursor:pointer;z-index:5;display:grid;place-items:center}.commercial-close:hover{background:#ffffff38}.commercial-stage{flex:1 1 auto;position:relative;overflow:hidden;background:linear-gradient(160deg,#1e1b4b,#3b0764,#0b0820)}.commercial-progress{display:flex;gap:6px;padding:10px 14px 6px;background:#0006;justify-content:center}.commercial-dot{width:28px;height:4px;border:none;background:#ffffff38;border-radius:2px;cursor:pointer;transition:background .2s}.commercial-dot.done{background:#8b5cf699}.commercial-dot.active{background:#f97316;box-shadow:0 0 8px #f97316b3}.commercial-controls{display:flex;gap:8px;justify-content:center;padding:10px 14px 14px;background:#0006}.commercial-controls .chip{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.16)}.commercial-controls .chip:hover{background:#ffffff2e}.scene{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 20px;animation:scene-in .52s cubic-bezier(.2,.8,.2,1)}@keyframes scene-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.caption{color:#fff;font-weight:800;text-align:center;letter-spacing:.3px;text-shadow:0 2px 12px rgba(0,0,0,.5);animation:caption-rise .6s ease-out both}.caption.top{position:absolute;top:24px;font-size:13px;color:#c4b5fd;text-transform:uppercase;letter-spacing:1.4px}.caption.bottom{position:absolute;bottom:28px;font-size:18px}.caption.big{font-size:22px}@keyframes caption-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.face{border-radius:50%;display:grid;place-items:center;color:#fff;font-weight:900;font-family:ui-monospace,Menlo,monospace;font-size:18px;position:relative}.face .eyes{transform:translateY(-2px);letter-spacing:4px}.scene-1 .hero-avatar{position:relative;animation:hero-bounce 1.6s ease-in-out infinite}@keyframes hero-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.scene-1 .bubble{position:absolute;bottom:calc(100% + 14px);left:50%;transform:translate(-50%);background:#fff;color:#1f1b3a;font-weight:800;font-size:16px;padding:10px 14px;border-radius:16px;white-space:nowrap;box-shadow:0 10px 30px #0006;animation:bubble-pop .6s cubic-bezier(.2,1.6,.4,1) both;animation-delay:.32s}.scene-1 .bubble:after{content:"";position:absolute;left:50%;bottom:-8px;transform:translate(-50%);border:8px solid transparent;border-top-color:#fff;border-bottom:0}@keyframes bubble-pop{0%{opacity:0;transform:translate(-50%) scale(.4)}to{opacity:1;transform:translate(-50%) scale(1)}}.scene-2 .rally-stage{position:relative;width:100%;flex:1;max-height:360px}.scene-2 .pulse-source{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.pulse-ring{position:absolute;top:50%;left:50%;width:64px;height:64px;border-radius:50%;border:2px solid #8b5cf6;transform:translate(-50%,-50%);animation:pulse-ring 2.2s ease-out infinite}.pulse-ring.d2{animation-delay:.7s}.pulse-ring.d3{animation-delay:1.4s}@keyframes pulse-ring{0%{opacity:.9;width:64px;height:64px}to{opacity:0;width:320px;height:320px}}.scene-2 .friend{position:absolute;transform:translate(-50%,-50%) scale(.3);opacity:0;animation:friend-pop .5s cubic-bezier(.2,1.6,.4,1) forwards}@keyframes friend-pop{to{transform:translate(-50%,-50%) scale(1);opacity:1}}.scene-2 .reply{position:absolute;top:-12px;right:-14px;background:#22c55e;color:#fff;font-size:14px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;opacity:0;transform:scale(.4);animation:reply-pop .48s cubic-bezier(.2,1.6,.4,1) forwards;box-shadow:0 4px 12px #22c55e99}@keyframes reply-pop{to{opacity:1;transform:scale(1)}}.scene-3 .map-svg{width:100%;max-width:460px;border-radius:18px;box-shadow:0 20px 50px #00000080;border:1px solid rgba(139,92,246,.4)}.scene-4 .storefront{width:100%;max-width:380px;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 20px 60px #00000080;animation:store-rise .52s cubic-bezier(.2,.8,.2,1) both}@keyframes store-rise{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.scene-4 .awning{background:repeating-linear-gradient(90deg,#ef4444 0,#ef4444 24px,#fff 24px,#fff 48px);padding:12px;text-align:center}.scene-4 .awning span{display:inline-block;background:#111;color:#fde047;font-weight:900;letter-spacing:2px;padding:4px 12px;border-radius:6px;font-size:14px}.scene-4 .window{padding:20px 18px;background:linear-gradient(180deg,#fef3c7,#fff)}.scene-4 .ping{background:#fff;border:2px solid #f97316;border-radius:14px;padding:14px;box-shadow:0 8px 24px #f9731640;animation:ping-arrive .6s cubic-bezier(.2,1.4,.4,1) .3s both}@keyframes ping-arrive{0%{opacity:0;transform:scale(.85) rotate(-2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.scene-4 .ping-head{font-weight:900;color:#f97316;font-size:13px;letter-spacing:1.2px;display:flex;align-items:center;gap:8px;margin-bottom:8px}.scene-4 .ping-head .dot{width:10px;height:10px;border-radius:50%;background:#22c55e;box-shadow:0 0 #22c55e99;animation:pinging 1.6s ease-out infinite}@keyframes pinging{0%{box-shadow:0 0 #22c55eb3}to{box-shadow:0 0 0 14px #22c55e00}}.scene-4 .ping-body{color:#1f1b3a;font-size:14px;line-height:1.45}.scene-4 .ping-sub{color:var(--muted);font-size:12px;margin-top:4px}.scene-4 .ping-cta{margin-top:10px;background:#1f1b3a;color:#fde047;font-weight:800;padding:8px 10px;border-radius:8px;font-size:13px;text-align:center}.scene-5{background:radial-gradient(circle at 50% 40%,rgba(139,92,246,.3),transparent 60%)}.scene-5 .logo-pop{animation:logo-pop .7s cubic-bezier(.2,1.6,.4,1) both;margin-bottom:18px}.scene-5 .logo-pop img{width:96px;height:96px;object-fit:contain;filter:drop-shadow(0 10px 24px rgba(139,92,246,.6))}@keyframes logo-pop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.scene-5 .tagline{display:flex;flex-direction:column;align-items:center;text-align:center;color:#fff}.scene-5 .tagline .t1{font-size:22px;font-weight:700;opacity:0;animation:tagline-in .5s ease-out .5s forwards}.scene-5 .tagline .t2{font-size:56px;font-weight:900;margin-top:4px;background:linear-gradient(90deg,#f97316,#ec4899,#8b5cf6);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0;transform:translateY(12px);animation:tagline-in .6s cubic-bezier(.2,1.4,.4,1) 1.1s forwards}@keyframes tagline-in{to{opacity:1;transform:translateY(0)}}.scene-5 .brand{position:absolute;bottom:28px;color:#c4b5fd;font-weight:900;letter-spacing:3px;font-size:13px;opacity:0;animation:tagline-in .5s ease-out 1.8s forwards}.scene-5 .brand-sub{color:var(--muted);font-weight:600;letter-spacing:1px}.about-cta{margin-top:14px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.btn.watch-commercial{background:linear-gradient(135deg,#f97316,#ec4899);color:#fff;border:none;font-weight:900;letter-spacing:.4px;box-shadow:0 8px 20px #ec489959}.btn.watch-commercial:hover{transform:translateY(-1px)}.btn.sim-labs-btn{background:linear-gradient(135deg,#0ea5e9,#8b5cf6);color:#fff;border:none;font-weight:900;letter-spacing:.4px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;box-shadow:0 8px 20px #0ea5e959}.btn.sim-labs-btn:hover{transform:translateY(-1px)}.sim-banner{background:linear-gradient(135deg,#0b0820,#1e1b4b,#3b0764);color:#fff;border:1px solid rgba(139,92,246,.4)}.sim-banner-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.sim-pill{background:linear-gradient(135deg,#f97316,#ec4899);color:#fff;font-weight:900;font-size:11px;letter-spacing:1.4px;padding:4px 10px;border-radius:999px}.sim-banner-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(108px,1fr));gap:10px}.sim-stat{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px 12px}.sim-stat-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#ffffff8c;font-weight:800}.sim-stat-value{font-size:22px;font-weight:900;margin-top:2px;font-variant-numeric:tabular-nums}.sim-stat-suffix{font-size:12px;font-weight:700;color:#ffffff80;margin-left:2px}.sim-map-wrap{position:relative;background:#0b0820}.sim-map{width:100%;display:block}.sim-controls{position:absolute;bottom:10px;left:10px;right:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#0b0820b3;border:1px solid rgba(139,92,246,.3);padding:8px 10px;border-radius:12px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.sim-controls .chip{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.18)}.sim-controls .chip:hover{background:#fff3}.sim-speed{display:flex;align-items:center;gap:8px;color:#fff;font-size:12px;margin-left:auto}.sim-speed input[type=range]{width:90px;accent-color:#8b5cf6}.sim-row{background:var(--card);border:1px solid rgba(139,92,246,.08);border-radius:12px;padding:10px 12px}.sim-row-head{display:flex;align-items:center;gap:10px}.sim-avatar{width:36px;height:36px;border-radius:999px;color:#fff;font-weight:900;display:grid;place-items:center;flex:0 0 36px;box-shadow:0 4px 10px #00000026}.sim-bar{margin-top:8px;width:100%;height:8px;border-radius:4px;background:#8b5cf61f;overflow:hidden}.sim-bar-fill{height:100%;border-radius:4px;transition:width .12s linear}.sim-row-stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.sim-log .sim-log-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px;border-bottom:1px dashed rgba(139,92,246,.12)}.sim-log .sim-log-row:last-child{border-bottom:none}.sim-log-dot{width:8px;height:8px;border-radius:999px;flex:0 0 8px}.btn.storefront-cta-btn{background:linear-gradient(135deg,#f97316,#ec4899);color:#fff;border:none;font-weight:900;letter-spacing:.4px;text-decoration:none;display:inline-flex;align-items:center;gap:6px;box-shadow:0 8px 20px #ec489959}.btn.storefront-cta-btn:hover{transform:translateY(-1px)}.storefront-cover{padding:0;overflow:hidden;position:relative}.storefront-cover-img{position:relative;height:160px;background:linear-gradient(135deg,#8b5cf6,#ec4899,#f97316);background-size:cover;background-position:center}.storefront-cover-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#ffffffd9;font-weight:800;letter-spacing:.4px;text-shadow:0 2px 12px rgba(0,0,0,.4)}.storefront-cover-edit{position:absolute;right:10px;bottom:10px;background:#0000008c;color:#fff;border:none;border-radius:999px;padding:6px 12px;font-weight:700;font-size:12px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.storefront-header{display:flex;align-items:flex-end;gap:14px;padding:0 16px 16px;margin-top:-32px;position:relative}.storefront-logo{width:84px;height:84px;border-radius:18px;background:#fff;background-size:cover;background-position:center;display:grid;place-items:center;border:4px solid var(--card);box-shadow:0 8px 20px #00000026;position:relative;flex:0 0 84px}.storefront-logo-edit{position:absolute;right:-6px;bottom:-6px;width:26px;height:26px;border-radius:50%;background:#111;color:#fff;border:2px solid #fff;cursor:pointer;font-size:12px;display:grid;place-items:center}.storefront-name-input{font-size:18px;font-weight:800;margin-top:0;background:transparent}.storefront-tagline-input{font-size:13px;background:transparent;margin-top:4px}.storefront-badge{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:4px 12px;border:1.5px solid currentColor;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.4px;background:#ffffffe6;position:relative;overflow:hidden}.storefront-badge .sparkle{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.7) 50%,transparent 70%);background-size:200% 100%;animation:sf-sparkle 3s linear infinite;pointer-events:none}@keyframes sf-sparkle{0%{background-position:200% 0}to{background-position:-200% 0}}.storefront-glow{box-shadow:0 0 0 2px #fde04773,0 0 40px #ec489959,0 0 90px #8b5cf659;animation:sf-glow 4s ease-in-out infinite}@keyframes sf-glow{0%,to{box-shadow:0 0 0 2px #fde04773,0 0 40px #ec489959,0 0 90px #8b5cf659}50%{box-shadow:0 0 0 3px #fde047a6,0 0 60px #ec48998c,0 0 120px #8b5cf68c}}.storefront-promo{border-top:3px solid #fde047}.storefront-promo-glow{background:linear-gradient(135deg,#fef3c7,#fff 60%)}.promo-result{margin-top:10px;padding:10px 12px;border-radius:10px;font-size:13px;font-weight:700}.promo-result.ok{background:#dcfce7;color:#166534;border:1px solid #86efac}.promo-result.bad{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.perks-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin-top:10px}.perk-chip{display:flex;flex-direction:column;padding:8px 12px;border-radius:10px;background:#fff;border:1.5px solid #fde047;font-size:12px}.perk-chip strong{font-size:11px;text-transform:uppercase;letter-spacing:.8px;color:var(--muted)}.perk-chip span{font-weight:700;margin-top:2px}.inventory-list{display:grid;gap:10px;margin-top:8px}.inventory-row{display:flex;gap:10px;padding:10px;border:1px solid rgba(139,92,246,.12);border-radius:12px;background:#fff;align-items:flex-start}.inventory-img{width:78px;height:78px;border-radius:10px;background-color:#f1f5f9;background-size:cover;background-position:center;display:grid;place-items:center;font-size:24px;color:#94a3b8;cursor:pointer;flex:0 0 78px;border:1px dashed #cbd5e1}.inventory-img:hover{border-color:#8b5cf6}.storefront-toast-wrap{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:300;display:flex;flex-direction:column;gap:8px;width:min(420px,calc(100vw - 24px));pointer-events:none}.storefront-toast{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;background:#0b0820f2;color:#fff;border:2px solid #8b5cf6;box-shadow:0 14px 40px #00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:sf-toast-in .36s cubic-bezier(.2,1.4,.4,1)}.storefront-toast.promo{background:linear-gradient(135deg,#1e1b4b,#3b0764);border-color:#fde047}.storefront-toast.opened{border-color:#22c55e}@keyframes sf-toast-in{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.storefront-toast-icon{font-size:28px;flex:0 0 32px;text-align:center;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}.storefront-toast-body{flex:1;min-width:0}.storefront-toast-head{font-size:10px;letter-spacing:1.4px;color:#fff9;font-weight:800}.storefront-toast-name{font-weight:900;font-size:15px;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storefront-toast-loc{font-weight:600;color:#ffffffb3;font-size:12px;margin-left:4px}.storefront-toast-meta{font-size:12px;color:#ffffffbf;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.storefront-toast-close{background:#ffffff1a;border:none;color:#fff;width:26px;height:26px;border-radius:999px;cursor:pointer;font-size:12px}.storefront-board{margin-top:12px}.storefront-board-list{display:grid;gap:8px;margin-top:10px}.storefront-board-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--card);border:1px solid rgba(139,92,246,.08);border-radius:12px}.storefront-board-row.glow{border-color:#fde047;box-shadow:0 0 0 1px #fde047,0 6px 18px #ec489940;animation:sf-glow 4s ease-in-out infinite}.storefront-board-rank{width:32px;text-align:center;font-weight:800;color:#64748b;font-size:13px}.storefront-board-logo{width:44px;height:44px;border-radius:12px;background-color:#f1f5f9;background-size:cover;background-position:center;display:grid;place-items:center;font-size:20px;flex:0 0 44px}
