/* NeonRoute — alien architecture skin (visual only) */
:root{--c:#2dfcd6;--p:#a64dff;--k:#b6ff3b;--hull:rgba(8,14,22,.9);--hull2:rgba(18,8,34,.9);--irid:linear-gradient(115deg,#2dfcd6,#7a5cff 35%,#b6ff3b 65%,#2dfcd6);--rib:repeating-linear-gradient(90deg,rgba(45,252,214,.10) 0 2px,transparent 2px 9px)}
body{font-family:'Exo 2','Space Grotesk',sans-serif}
.brand,h1,h2,h3,.greet,#nstreet,#hstep,.hhead{font-family:'Audiowide','Orbitron',sans-serif;letter-spacing:.08em}
.brand{background:var(--irid);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;animation:irid 8s linear infinite;filter:drop-shadow(0 0 10px rgba(45,252,214,.6))}
.brand::after{content:" ⟟⏃⌰";font-family:'Megrim',sans-serif;font-size:.7em;opacity:.7;-webkit-text-fill-color:var(--k)}
@keyframes irid{to{background-position:300% 0}}
@keyframes breathe{0%,100%{box-shadow:0 0 14px rgba(45,252,214,.35),inset 0 0 18px rgba(166,77,255,.18)}50%{box-shadow:0 0 30px rgba(182,255,59,.45),inset 0 0 26px rgba(45,252,214,.28)}}
@keyframes ooze{0%,100%{border-radius:58% 42% 55% 45%/48% 60% 40% 52%}50%{border-radius:44% 56% 42% 58%/58% 42% 60% 40%}}
/* hull panels: asymmetric carved shells with ribbing */
.sheet,.panel,.bcard,.toast,.top input,#q{background:var(--rib),linear-gradient(160deg,var(--hull),var(--hull2))!important;border:1px solid transparent!important;border-image:none;box-shadow:0 0 0 1px rgba(45,252,214,.35),0 0 26px rgba(166,77,255,.3),inset 0 1px 0 rgba(182,255,59,.25)!important}
.sheet{border-radius:46px 14px 0 0/34px 10px 0 0!important;animation:breathe 6s ease-in-out infinite}
.sheet::before{content:"";position:sticky;display:block;top:0;height:3px;margin:0 18% 4px 8%;border-radius:9px;background:var(--irid);background-size:300% 100%;animation:irid 6s linear infinite;opacity:.8}
.panel,.bcard{border-radius:30px 8px 30px 8px/22px 8px 22px 8px!important}
.toast{border-radius:24px 6px 24px 6px!important}
.nav{border-radius:38px 12px 38px 12px/30px 10px 30px 10px!important;background:var(--rib),linear-gradient(90deg,var(--hull2),var(--hull),var(--hull2))!important;border:0!important;animation:breathe 7s ease-in-out infinite}
.nav button.on{background:radial-gradient(ellipse at 50% 120%,rgba(182,255,59,.35),rgba(45,252,214,.12) 60%,transparent)!important;border-radius:50% 50% 40% 40%/60% 60% 40% 40%!important;color:var(--k)!important;text-shadow:0 0 8px var(--k)}
/* buttons: seed/pod shapes */
.fab button,.recenter,.vorb,.orb{border-radius:58% 42% 55% 45%/48% 60% 40% 52%!important;background:radial-gradient(circle at 35% 30%,rgba(45,252,214,.35),rgba(18,8,34,.95) 70%)!important;border:1px solid rgba(45,252,214,.5)!important;animation:ooze 5s ease-in-out infinite,breathe 4s ease-in-out infinite}
.chips button{border-radius:16px 4px 16px 4px!important;border-color:rgba(45,252,214,.35)!important}
.chips button.on,button.big,.btn:not(.ghost),#go,#startBtn{background:linear-gradient(120deg,#0f6e63,#5b2bb3 55%,#5f8f12)!important;border-radius:22px 6px 22px 6px!important;box-shadow:0 0 18px rgba(45,252,214,.45)!important}
.repbtn,.rgrid button{border-radius:26px 8px 26px 8px/20px 8px 20px 8px!important;border:1px solid rgba(182,255,59,.35)!important;background:var(--rib),rgba(10,20,24,.8)!important}
/* curved alien turn banner */
#nbanner{border-radius:0 0 60% 40%/0 0 38px 26px!important;background:var(--rib),radial-gradient(ellipse at 30% 0,rgba(45,252,214,.45),transparent 60%),linear-gradient(170deg,#06201e,#1a0838 70%)!important;border:0!important;box-shadow:0 6px 0 -3px rgba(182,255,59,.55),0 10px 40px rgba(45,252,214,.45)!important;animation:breathe 3.5s ease-in-out infinite}
#nbanner::after{content:"⏁⟒⌖⟟⍜⋏";position:absolute;right:16px;bottom:6px;font-family:'Megrim',sans-serif;font-size:11px;letter-spacing:.3em;color:var(--k);opacity:.55;pointer-events:none}
#narrow{filter:drop-shadow(0 0 10px var(--c)) drop-shadow(0 0 18px var(--k))}
#ndist{font-family:'Audiowide',sans-serif;color:var(--k);text-shadow:0 0 12px var(--k)}
/* markers */
.pin{border-radius:62% 38% 60% 0/58% 44% 56% 0!important;background:radial-gradient(circle at 40% 40%,#e6c9ff,var(--p) 55%,#2a0a55)!important;border:1.5px solid var(--c)!important;box-shadow:0 0 14px var(--p),0 0 4px var(--c)!important}
.rmk{border-radius:58% 42% 55% 45%/48% 60% 40% 52%!important;background:radial-gradient(circle,rgba(30,8,10,.95) 50%,rgba(249,115,22,.4))!important;animation:bz 2s ease-in-out infinite,ooze 4s ease-in-out infinite!important}
.me .dot{border-radius:55% 45% 52% 48%/45% 55% 45% 55%!important;background:radial-gradient(circle at 35% 30%,#eafffa,var(--c) 50%,#0b6b5c)!important;border:2px solid var(--k)!important;animation:ooze 3s ease-in-out infinite}
.me .pulse{border-color:var(--k)!important}
.maplibregl-popup-content{border-radius:26px 6px 26px 6px!important;border-color:rgba(182,255,59,.4)!important}
.status,small,.foot{font-family:'Exo 2',sans-serif}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}
/* nav view toggle */
.vbtn{display:none;position:fixed;right:12px;top:calc(max(10px,env(safe-area-inset-top)) + 150px);z-index:950;align-items:center;gap:6px;padding:9px 14px 9px 10px;color:#eafffa;font:600 .78rem 'Audiowide',sans-serif;letter-spacing:.05em;border:1px solid rgba(182,255,59,.5);border-radius:28px 8px 28px 8px/22px 8px 22px 8px;background:var(--rib),linear-gradient(140deg,#06201e,#1a0838);animation:breathe 4s ease-in-out infinite}
.vbtn i{font-style:normal;font-family:'Megrim',sans-serif;color:var(--k);font-size:1rem}
body.navOn .vbtn{display:flex}
/* 3rd-person: alien craft marker */
body.navOn:not(.vBird) .me .dot{inset:3px 9px;border-radius:50% 50% 38% 38%/70% 70% 30% 30%!important;background:radial-gradient(ellipse at 50% 25%,#eafffa,var(--c) 35%,#5b2bb3 75%,#120626)!important;box-shadow:0 0 16px var(--c),0 6px 10px rgba(0,0,0,.6),inset 0 -4px 6px rgba(182,255,59,.6)!important;animation:none}
/* GPS marker = alien-glow car (top-down, nose up; rotates via existing heading transform) */
.me{width:30px!important;height:46px!important}
.me .dot,.me .cone,body.navOn:not(.vBird) .me .dot{display:none!important}
.me .pulse{inset:-6px -14px!important;border-radius:50%!important;border-color:rgba(45,252,214,.55)!important}
.me::after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 46'%3E%3Cdefs%3E%3ClinearGradient id='b' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%232dfcd6'/%3E%3Cstop offset='.55' stop-color='%237a5cff'/%3E%3Cstop offset='1' stop-color='%23b6ff3b'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M15 1C8 1 4 6 3.5 12L3 34c0 6 4 11 12 11s12-5 12-11l-.5-22C26 6 22 1 15 1z' fill='url(%23b)' stroke='%23eafffa' stroke-width='1.4'/%3E%3Cpath d='M7 14c2-3 14-3 16 0l-1.5 7h-13z' fill='%23061a22' stroke='%232dfcd6' stroke-width='.8'/%3E%3Cpath d='M8.5 33h13l1.5 5c-3 2-13 2-16 0z' fill='%23061a22' stroke='%232dfcd6' stroke-width='.8'/%3E%3Crect x='8' y='23' width='14' height='8' rx='3' fill='%23140a2e' opacity='.75'/%3E%3Ccircle cx='8' cy='4.5' r='1.8' fill='%23eafffa'/%3E%3Ccircle cx='22' cy='4.5' r='1.8' fill='%23eafffa'/%3E%3Crect x='6' y='42' width='4' height='1.6' rx='.8' fill='%23ff3b6b'/%3E%3Crect x='20' y='42' width='4' height='1.6' rx='.8' fill='%23ff3b6b'/%3E%3C/svg%3E") center/contain no-repeat;filter:drop-shadow(0 0 6px #2dfcd6) drop-shadow(0 0 12px rgba(182,255,59,.55));animation:carGlow 2.4s ease-in-out infinite}
@keyframes carGlow{50%{filter:drop-shadow(0 0 9px #b6ff3b) drop-shadow(0 0 18px rgba(122,92,255,.7))}}
/* live location sharing */
.peer{position:relative;width:22px;height:22px}
.peer i{position:absolute;inset:0;border-radius:58% 42% 55% 45%/48% 60% 40% 52%;background:radial-gradient(circle at 35% 30%,#f0e6ff,var(--p) 55%,#2a0a55);border:1.5px solid var(--c);box-shadow:0 0 12px var(--p),0 0 4px var(--c);animation:ooze 4s ease-in-out infinite}
.peer.grp i{background:radial-gradient(circle at 35% 30%,#f4ffe0,var(--k) 55%,#2f4a05);border-color:var(--k);box-shadow:0 0 14px var(--k)}
.peer span{position:absolute;top:24px;left:50%;transform:translateX(-50%);white-space:nowrap;font:600 11px 'Exo 2',sans-serif;color:#eafffa;text-shadow:0 0 4px #000,0 0 8px var(--p);pointer-events:none}
.lsopts{display:grid;gap:8px;margin-top:10px}.lsopts label{display:grid;grid-template-columns:auto 1fr;column-gap:8px;padding:10px 12px;border:1px solid rgba(45,252,214,.3);border-radius:18px 6px 18px 6px;background:var(--rib),rgba(10,20,24,.6)}
.lsopts small{grid-column:2;color:#a9a3cf;font-size:.75rem}.lsgrp{margin-top:10px}.lscons{display:flex;gap:8px;align-items:flex-start;margin-top:10px;font-size:.82rem;color:#cfd3ff}
.lspill{display:none;position:fixed;left:50%;transform:translateX(-50%);top:calc(max(10px,env(safe-area-inset-top)) + 96px);z-index:880;align-items:center;gap:6px;padding:6px 8px 6px 12px;font:600 .75rem 'Exo 2',sans-serif;color:#eafffa;border:1px solid rgba(182,255,59,.5);border-radius:20px 6px 20px 6px;background:var(--rib),linear-gradient(140deg,#06201e,#1a0838);box-shadow:0 0 16px rgba(182,255,59,.35)}
.lspill.on{display:flex}.lspill{white-space:nowrap}.lspill button{padding:4px 10px!important;font-size:.72rem!important;border-radius:12px 4px 12px 4px!important;background:#5a1030!important}
body.navOn .lspill{top:auto;bottom:calc(max(8px,env(safe-area-inset-bottom)) + 84px)}
#lsb.on{color:var(--k)!important;box-shadow:0 0 16px var(--k)!important}
/* social layer */
.sochandle{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(max(10px,env(safe-area-inset-bottom)) + 66px);z-index:890;display:flex;align-items:center;gap:6px;padding:5px 14px;font:600 .72rem 'Exo 2',sans-serif;color:#cfeee9;border:1px solid rgba(45,252,214,.35);border-radius:16px 6px 16px 6px;background:rgba(10,14,26,.85)}
.sochandle i{width:26px;height:4px;border-radius:4px;background:var(--irid);background-size:300% 100%;animation:irid 6s linear infinite}
body.navOn .sochandle,body.socOn .sochandle,body[data-v=home] .sochandle,body[data-v=pins] .sochandle,body[data-v=style] .sochandle{display:none}
.soc{position:fixed;left:0;right:0;bottom:0;top:12vh;z-index:880;transform:translateY(105%);transition:transform .35s cubic-bezier(.2,.8,.2,1);background:var(--rib),linear-gradient(160deg,var(--hull),var(--hull2));border-radius:46px 14px 0 0/34px 10px 0 0;box-shadow:0 0 0 1px rgba(45,252,214,.35),0 -10px 40px rgba(166,77,255,.3);display:flex;flex-direction:column}
body.socOn .soc{transform:none}body.navOn .soc{display:none}
.sgrab{height:22px;flex:0 0 auto;cursor:pointer}.sgrab::after{content:"";display:block;width:54px;height:5px;margin:9px auto;border-radius:5px;background:var(--irid);background-size:300% 100%;animation:irid 6s linear infinite}
.swrap{overflow:auto;padding:0 14px 96px;flex:1}.shd{display:flex;align-items:center;justify-content:space-between;gap:8px}.shd h2{margin:4px 0;font-family:'Audiowide',sans-serif;letter-spacing:.08em}.shd button{font-size:.78rem!important;padding:7px 12px!important}
.stories{display:flex;gap:12px;overflow-x:auto;padding:8px 2px 12px;scrollbar-width:none}.stories::-webkit-scrollbar{display:none}
.story{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;width:62px}.story small{font-size:.66rem;color:#cfd3ff;max-width:62px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.story .av.big{padding:3px;box-shadow:0 0 0 2px #0b0718,0 0 0 4px var(--c),0 0 14px var(--c)}.story.grp .av.big{box-shadow:0 0 0 2px #0b0718,0 0 0 4px var(--k),0 0 14px var(--k)}.story.ev .av.big{box-shadow:0 0 0 2px #0b0718,0 0 0 4px #f472b6,0 0 14px #f472b6}.story.mine .av.big{box-shadow:0 0 0 2px #0b0718,0 0 0 4px var(--p)}
.av{display:inline-grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:58% 42% 55% 45%/48% 60% 40% 52%;background:radial-gradient(circle at 35% 30%,rgba(45,252,214,.4),#1a0838 70%);color:#eafffa;font:700 1rem 'Audiowide',sans-serif;border:1px solid rgba(45,252,214,.5)}
.av.big{width:54px;height:54px;font-size:1.5rem}.av.grp{background:radial-gradient(circle at 35% 30%,rgba(182,255,59,.5),#16260a 70%);border-color:var(--k)}.av.event{background:radial-gradient(circle,#f472b6,#3a0a2e 70%)}.av.report{background:radial-gradient(circle,rgba(249,115,22,.6),#2a0e05 70%);border-color:#f97316}
.pc{margin:10px 0;padding:12px;border-radius:24px 6px 24px 6px/20px 6px 20px 6px;background:rgba(6,14,20,.7);box-shadow:0 0 0 1px rgba(45,252,214,.22),inset 0 1px 0 rgba(182,255,59,.15)}
.pch{display:flex;gap:10px;align-items:center}.pct{flex:1;min-width:0}.pct b{display:block;color:#eafffa}.pct small{display:block;color:#a9a3cf;font-size:.75rem;overflow:hidden;text-overflow:ellipsis}
.pc .go{padding:7px 12px!important;font-size:.75rem!important;border-radius:14px 4px 14px 4px!important}
.pca{display:flex;gap:8px;margin-top:10px}.pca button{flex:0 0 auto;padding:6px 12px!important;font-size:.8rem!important;background:rgba(255,255,255,.05)!important;border:1px solid rgba(45,252,214,.25)!important;border-radius:14px 4px 14px 4px!important;box-shadow:none!important;color:#cfd3ff!important}
.pca .lk.on{color:#ff4d8d!important;border-color:#ff4d8d!important;text-shadow:0 0 8px #ff4d8d}
.cms{margin-top:10px;border-top:1px solid rgba(45,252,214,.15);padding-top:8px}.cmt{display:flex;gap:8px;margin:6px 0;font-size:.85rem;color:#e8e6ff}.cmt .av{width:28px;height:28px;font-size:.8rem}.cmt small{display:block;color:#8a86ad;font-size:.68rem}.cms .row input{flex:1}
.prof{display:flex;gap:12px;align-items:center;margin:8px 0}.pav{width:72px!important;height:72px!important;font-size:2.2rem!important;padding:0!important;border-radius:58% 42% 55% 45%/48% 60% 40% 52%!important;background:radial-gradient(circle at 35% 30%,rgba(45,252,214,.45),#1a0838 70%)!important;animation:ooze 5s ease-in-out infinite}
.emos{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 10px}.emo{width:42px;height:42px;padding:0!important;font-size:1.3rem!important;background:rgba(255,255,255,.05)!important;border:1px solid rgba(45,252,214,.2)!important;border-radius:50%!important;box-shadow:none!important}.emo.on{border-color:var(--k)!important;box-shadow:0 0 10px var(--k)!important}
.sh3{font-family:'Audiowide',sans-serif;letter-spacing:.06em;margin:14px 0 4px}
/* upgrades */
.shb{display:flex;gap:6px}.shb button{padding:7px 10px!important}
.campusBar{display:flex;gap:6px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}.campusBar:empty{display:none}.campusBar button{flex:0 0 auto;padding:6px 10px!important;font-size:.75rem!important}.campusBar button.on{color:var(--k)!important;border-color:var(--k)!important}.cb{flex:0 0 auto;align-self:center;font:600 .75rem 'Exo 2';color:var(--k);margin-right:4px}
.pimg{display:block;width:100%;max-height:340px;object-fit:cover;margin-top:10px;border-radius:20px 6px 20px 6px;background:#000}
.pmk{width:40px;height:40px;border-radius:58% 42% 55% 45%/48% 60% 40% 52%;overflow:hidden;border:2px solid var(--k);box-shadow:0 0 14px var(--k);background:#120626;display:grid;place-items:center;color:var(--k);cursor:pointer}.pmk img{width:100%;height:100%;object-fit:cover}
.pca .chk.on{color:var(--k)!important;border-color:var(--k)!important;text-shadow:0 0 8px var(--k)}
.walkb{align-self:center;font-size:.72rem;color:var(--k)}
#bellb{position:relative}#bellb em{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:#ff2d6f;color:#fff;font:700 10px/16px 'Exo 2';font-style:normal;box-shadow:0 0 8px #ff2d6f}#bellb em:empty{display:none}#bellb.hot{box-shadow:0 0 18px #ff2d6f!important}
.fab .sosb{color:#fff!important;font:700 .7rem 'Audiowide',sans-serif!important;background:radial-gradient(circle at 35% 30%,#ff6b8b,#7a0a2a 70%)!important;border-color:#ff2d6f!important}
#heatb.on{box-shadow:0 0 16px #ff8a3d!important}
.rmem>div{display:flex;gap:6px;align-items:center;padding:6px 0;border-bottom:1px solid rgba(45,252,214,.12);font-size:.85rem}.rmem span{margin-left:auto;color:var(--c);font-size:.78rem}
.pts{display:flex;justify-content:space-around;text-align:center}.pts b{display:block;font:700 1.4rem 'Audiowide',sans-serif;color:var(--k);text-shadow:0 0 10px var(--k)}.pts small{color:#a9a3cf;font-size:.7rem}
.badges{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 6px}.bdg{display:flex;flex-direction:column;align-items:center;font-size:1.5rem;opacity:.28;filter:grayscale(1)}.bdg.on{opacity:1;filter:drop-shadow(0 0 6px var(--c))}.bdg small{font-size:.6rem;color:#cfd3ff;text-align:center}
.lb>div{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid rgba(45,252,214,.12)}.lb span{width:30px;color:#a9a3cf}.lb em{margin-left:auto;font-style:normal;color:var(--k)}.lb .me1{color:var(--k)}
.frow{display:flex;gap:6px;align-items:center;padding:4px 0}.frow a,.cmt a,#upProfile a{color:var(--c);cursor:pointer;margin-left:auto}
#notes .pc{cursor:pointer}#notes .pc.unread{box-shadow:0 0 0 1px var(--k),0 0 12px rgba(182,255,59,.25)}#notes .pc.sos{box-shadow:0 0 0 1px #ff2d6f,0 0 16px rgba(255,45,111,.5)}#notes small{display:block;color:#a9a3cf;font-size:.72rem}
.walkp{top:auto!important;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 100px)!important}
.sosc{box-shadow:0 0 0 1px rgba(255,45,111,.5)!important}
body.socOn .lspill{display:none!important}
body.orb3d .me{opacity:0!important}
/* music */
.mbar{display:none;position:fixed;left:10px;right:10px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 66px);z-index:885;align-items:center;gap:6px;padding:6px 8px 6px 12px;border-radius:26px 8px 26px 8px/20px 8px 20px 8px;background:var(--rib),linear-gradient(140deg,#06201e,#1a0838);box-shadow:0 0 0 1px rgba(45,252,214,.35),0 0 18px rgba(166,77,255,.35)}
.mbar.on{display:flex}.mbar .mt{flex:1;min-width:0}.mbar .mt b{display:block;font-size:.8rem;color:#eafffa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mbar .mt small{font-size:.65rem;color:#a9a3cf}
.mbar button{width:34px;height:34px;padding:0!important;font-size:.9rem!important;border-radius:50%!important;background:rgba(255,255,255,.06)!important;box-shadow:none!important;border:1px solid rgba(45,252,214,.3)!important}
.mviz{display:flex;gap:2px;align-items:flex-end;height:16px;width:14px}.mviz b{flex:1;background:var(--k);height:30%;border-radius:2px}.mbar.live .mviz b{animation:mv 1s ease-in-out infinite}.mviz b:nth-child(2){animation-delay:.2s!important}.mviz b:nth-child(3){animation-delay:.4s!important}@keyframes mv{50%{height:100%}}
body.navOn .mbar{bottom:calc(max(8px,env(safe-area-inset-bottom)) + 84px);left:10px;right:84px}body.socOn .mbar{display:none}body.navOn .sochandle{display:none}
.vmute{display:none;position:fixed;left:12px;top:calc(max(10px,env(safe-area-inset-top)) + 150px);z-index:950;width:48px;height:48px;padding:0!important;font-size:1.3rem!important;border-radius:58% 42% 55% 45%/48% 60% 40% 52%!important;background:radial-gradient(circle at 35% 30%,rgba(45,252,214,.35),rgba(18,8,34,.95) 70%)!important;border:1px solid rgba(182,255,59,.5)!important;box-shadow:0 0 14px rgba(45,252,214,.4)!important}
body.navOn .vmute{display:block}.vmute.off{border-color:#ff2d6f!important;box-shadow:0 0 14px rgba(255,45,111,.5)!important}
.mtabs{display:flex;gap:6px;margin:8px 0}.mtabs button{flex:1;padding:8px 4px!important;font-size:.78rem!important;background:rgba(255,255,255,.05)!important;border:1px solid rgba(45,252,214,.25)!important;box-shadow:none!important}.mtabs button.on{color:var(--k)!important;border-color:var(--k)!important}
.mrow{cursor:pointer;padding:10px 12px!important}.mrow small{display:block;color:#a9a3cf;font-size:.72rem}.mrow.on{box-shadow:0 0 0 1px var(--k),0 0 12px rgba(182,255,59,.3)!important}
.mchips{position:static!important;display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.ytbox{margin-top:10px;border-radius:18px 6px 18px 6px;overflow:hidden}.ytbox iframe{display:block;width:100%;border:0}
.npl{margin-top:6px;font-size:.75rem;color:var(--k)}#musb.on{box-shadow:0 0 16px var(--k)!important}
.truckRow{margin:6px 0}.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.tgrid label{display:flex;flex-direction:column;font-size:.68rem;color:#a9a3cf;gap:2px}.tgrid input{padding:6px 8px!important;font-size:.85rem!important}
/* cruise */
.cruiseb{position:fixed;left:12px;bottom:calc(max(10px,env(safe-area-inset-bottom)) + 108px);z-index:760;display:flex;align-items:center;gap:6px;padding:10px 16px!important;font:600 .85rem 'Audiowide',sans-serif!important;color:#eafffa!important;border:1px solid rgba(182,255,59,.55)!important;border-radius:28px 8px 28px 8px/22px 8px 22px 8px!important;background:var(--rib),linear-gradient(140deg,#06201e,#1a0838)!important;animation:breathe 4s ease-in-out infinite}
.cruiseb i{font-style:normal;font-family:'Megrim',sans-serif;color:var(--k)}
body.navOn .cruiseb,body.cruise .cruiseb,body.socOn .cruiseb,body[data-v=home] .cruiseb,body[data-v=pins] .cruiseb,body[data-v=style] .cruiseb{display:none}
body.mbarOn .cruiseb{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 160px)}
.cruisex{display:none;position:fixed;left:50%;transform:translateX(-50%);bottom:calc(max(10px,env(safe-area-inset-bottom)) + 16px);z-index:960;padding:10px 18px!important;font:600 .8rem 'Exo 2',sans-serif!important;border-radius:22px 6px 22px 6px!important;background:#5a1030!important;border:1px solid #ff2d6f!important;color:#fff!important}
body.cruise .cruisex{display:block}body.cruise .vbtn,body.cruise .vmute{display:flex}body.cruise .vmute{display:block}
body.cruise .top,body.cruise .chips,body.cruise .nav,body.cruise .sochandle,body.cruise .fab,body.cruise .sheet{display:none!important}
body.cruise .mbar{bottom:calc(max(10px,env(safe-area-inset-bottom)) + 66px)}
.cpops{position:fixed;left:10px;right:10px;top:calc(max(10px,env(safe-area-inset-top)) + 10px);z-index:955;display:flex;flex-direction:column;gap:8px;pointer-events:none}
.cpop{pointer-events:auto;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:26px 8px 26px 8px/20px 8px 20px 8px;background:var(--rib),linear-gradient(140deg,rgba(6,32,30,.94),rgba(26,8,56,.94));box-shadow:0 0 0 1px rgba(45,252,214,.4),0 0 20px rgba(166,77,255,.35);animation:cin .45s cubic-bezier(.2,.8,.2,1) both;transition:opacity .45s,transform .45s}
.cpop.out{opacity:0;transform:translateY(-16px)}.cpop.warn{box-shadow:0 0 0 1px #f97316,0 0 22px rgba(249,115,22,.5)}
@keyframes cin{from{opacity:0;transform:translateY(-18px) scale(.96)}to{opacity:1;transform:none}}
.cpop img,.cic{width:42px;height:42px;flex:0 0 auto;border-radius:58% 42% 55% 45%/48% 60% 40% 52%;object-fit:cover;display:grid;place-items:center;font-size:1.4rem;background:radial-gradient(circle at 35% 30%,rgba(45,252,214,.35),#1a0838 70%)}
.cpop .ct{flex:1;min-width:0}.cpop b{display:block;color:#eafffa;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpop small{display:block;color:#a9a3cf;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cpop button{padding:7px 12px!important;font-size:.75rem!important;border-radius:14px 4px 14px 4px!important}
/* glowing ball marker everywhere (fallback + 2D views) */
.me{width:34px!important;height:34px!important}
.me .dot,.me .cone{display:none!important}
.me .pulse{display:none!important}
.me::after{content:"";position:absolute;inset:3px;border-radius:50%;background:radial-gradient(circle at 34% 28%,#ffffff 0,#eafffa 8%,#2dfcd6 32%,#7a5cff 68%,#2a0f5e 100%)!important;box-shadow:0 0 10px #2dfcd6,0 0 22px rgba(182,255,59,.55),0 0 34px rgba(122,92,255,.5),inset -4px -5px 9px rgba(10,4,30,.7),inset 3px 3px 6px rgba(255,255,255,.35)!important;filter:none!important;animation:ballGlow 2.4s ease-in-out infinite!important}
@keyframes ballGlow{50%{box-shadow:0 0 14px #2dfcd6,0 0 30px rgba(182,255,59,.75),0 0 44px rgba(122,92,255,.65),inset -4px -5px 9px rgba(10,4,30,.7),inset 3px 3px 6px rgba(255,255,255,.35)}}
/* Neon co-pilot */
.neonb{position:fixed;left:14px;bottom:170px;width:54px;height:54px;border-radius:50%;border:0;background:none;padding:0;z-index:30;cursor:pointer}
.norb{display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 34% 28%,#fff 0,#eafffa 8%,#2dfcd6 32%,#7a5cff 68%,#2a0f5e 100%);box-shadow:0 0 12px #2dfcd6,0 0 26px rgba(182,255,59,.5),0 0 40px rgba(122,92,255,.45),inset -5px -6px 10px rgba(10,4,30,.7);animation:ballGlow 2.6s ease-in-out infinite}
.norb.sm{width:22px;height:22px;flex:none}
.neonb.hear .norb{animation:nHear .6s ease-in-out infinite alternate}.neonb.think .norb{animation:nThink 1s linear infinite}.neonb.talk .norb{animation:nTalk .35s ease-in-out infinite alternate}.neonb.ping .norb{box-shadow:0 0 18px #b6ff3b,0 0 40px #b6ff3b}
@keyframes nHear{to{transform:scale(1.15);box-shadow:0 0 20px #b6ff3b,0 0 44px #2dfcd6}}@keyframes nThink{to{filter:hue-rotate(360deg)}}@keyframes nTalk{to{transform:scale(1.08)}}
.neonp{position:fixed;left:10px;right:10px;bottom:84px;max-height:62vh;display:none;flex-direction:column;z-index:1000;background:rgba(10,6,28,.94);border:1px solid rgba(45,252,214,.45);border-radius:28px 28px 28px 8px;box-shadow:0 0 30px rgba(122,92,255,.45),inset 0 0 24px rgba(45,252,214,.08);backdrop-filter:blur(10px);color:#eafffa;font-family:inherit}
.neonp.on{display:flex}
.nh{display:flex;align-items:center;gap:8px;padding:12px 14px 6px}.nh b{flex:1;font-size:17px;letter-spacing:.06em;color:#2dfcd6;text-shadow:0 0 8px #2dfcd6}
.nh select{max-width:140px;background:#140a2e;color:#eafffa;border:1px solid #7a5cff;border-radius:12px;padding:4px 8px}.nh button{background:none;border:0;color:#eafffa;font-size:18px}
.nopts{display:flex;gap:10px;flex-wrap:wrap;padding:0 14px 6px;font-size:12px;opacity:.85}.nopts input{accent-color:#2dfcd6}
.nmsgs{flex:1;overflow:auto;padding:6px 12px;display:flex;flex-direction:column;gap:6px;min-height:80px}
.nm{max-width:86%;padding:8px 12px;border-radius:18px;font-size:14px;line-height:1.35}.nm.u{align-self:flex-end;background:linear-gradient(135deg,#7a5cff,#4b2a9e);border-bottom-right-radius:6px}
.nm.a{align-self:flex-start;background:rgba(45,252,214,.1);border:1px solid rgba(45,252,214,.35);border-bottom-left-radius:6px}.nm.alert{border-color:#b6ff3b;box-shadow:0 0 10px rgba(182,255,59,.3)}.nm.sos{border-color:#ff3b6b}.nm.sos button{margin-left:8px;background:#ff3b6b;color:#fff;border:0;border-radius:10px;padding:4px 10px}
.nm.th i{display:inline-block;width:7px;height:7px;margin:0 2px;border-radius:50%;background:#2dfcd6;animation:nTalk .5s infinite alternate}.nm.th i:nth-child(2){animation-delay:.15s}.nm.th i:nth-child(3){animation-delay:.3s}
.npick{display:flex;align-items:center;gap:8px;padding:3px 0}.npick b{flex:1}.npick small{display:block;opacity:.7;flex-basis:100%;order:3}.npick{flex-wrap:wrap}.npick button{background:linear-gradient(135deg,#2dfcd6,#7a5cff);border:0;border-radius:10px;padding:4px 12px;color:#061a22;font-weight:700}
.nchips{display:flex;gap:6px;overflow-x:auto;padding:4px 12px}.nchips button{flex:none;background:#140a2e;border:1px solid rgba(122,92,255,.6);color:#eafffa;border-radius:14px;padding:5px 10px;font-size:12px}
.nin{display:flex;gap:6px;padding:8px 10px 12px}.nin input{flex:1;background:#0b0620;border:1px solid rgba(45,252,214,.4);border-radius:18px;padding:9px 14px;color:#eafffa;font-size:15px}
.nin button{width:40px;height:40px;border-radius:50%;border:1px solid rgba(45,252,214,.5);background:#140a2e;color:#eafffa;font-size:16px}.nin button.on{background:#b6ff3b;color:#061a22;box-shadow:0 0 14px #b6ff3b}
body.cruise .neonb{bottom:250px}body.navOn .neonb{bottom:230px}
body.neonOpen .cruiseb{display:none!important}
/* perf: pause decorative glow/morph animations while the map moves, the tab is hidden, or on low-end phones */
body.fxpause *,body.fxpause *::after,body.fxpause *::before{animation-play-state:paused!important}
body.fxpause .neonb.hear .norb,body.fxpause .neonb.think .norb,body.fxpause .neonb.talk .norb,body.fxpause .nm.th i{animation-play-state:running!important}
body.fxhidden *{animation-play-state:paused!important}
/* no lines: plain black cards + search */
.sheet,.panel,.bcard,.card,.toast,.top input,#q{background:#000!important;border:0!important;outline:0!important;box-shadow:none!important}
.sheet{animation:none!important}.sheet::before{display:none!important}
#q:focus,.top input:focus{outline:0!important;box-shadow:none!important;border:0!important}
.sbar{border:0!important;outline:0!important;box-shadow:none!important;background:#000!important}
/* bottom bar: plain black, no lines */
.nav,.sochandle{background:#000!important;border:0!important;outline:0!important;box-shadow:none!important;animation:none!important}
.nav::before,.nav::after,.sochandle::before,.sochandle::after{display:none!important}
.nav button{border:0!important;box-shadow:none!important;outline:0!important}
#cruiseb,#rep{background:#000!important;border:0!important;outline:0!important;box-shadow:none!important}
