:root{
  --life-bg:#06122f;--life-panel:rgba(7,20,55,.88);--life-panel-2:rgba(12,27,69,.94);
  --life-line:rgba(122,167,255,.35);--life-text:#f5f7ff;--life-muted:#aebce3;
  --life-blue:#35c8ff;--life-violet:#7d5cff;--life-pink:#f24ee7;--life-green:#58e19b;
  --life-shadow:0 24px 70px rgba(0,0,0,.42);--life-radius:24px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,Segoe UI,Arial,sans-serif}button,input,a{font:inherit}button,a{touch-action:manipulation}.life-login-page,.life-map-page,.life-enter-page{background:#030b20;color:var(--life-text)}

/* LOGIN GATEWAY */
.life-login-page{min-height:100vh;background-image:linear-gradient(90deg,rgba(1,8,28,.08) 0%,rgba(1,7,24,.2) 48%,rgba(1,5,19,.75) 100%),url('../img/login-bg.webp');background-size:cover;background-position:center;background-attachment:fixed}
.life-login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(390px,.85fr);gap:clamp(24px,4vw,72px);align-items:center;padding:clamp(24px,5vw,76px);max-width:1760px;margin:auto}
.life-login-copy{align-self:end;max-width:650px;padding:34px 0 46px;text-shadow:0 5px 30px rgba(0,0,0,.5)}
.life-chip{display:inline-flex;padding:8px 12px;border:1px solid rgba(117,195,255,.45);background:rgba(5,18,55,.58);border-radius:999px;font-size:12px;font-weight:900;letter-spacing:.12em;backdrop-filter:blur(12px)}
.life-login-copy h1{font-size:clamp(48px,7vw,96px);line-height:.9;margin:16px 0 14px;font-weight:1000;letter-spacing:-.045em}.life-login-copy h1 span{display:block;color:#f6a4ef;text-shadow:0 0 28px rgba(242,78,231,.75)}
.life-login-copy p{max-width:580px;font-size:clamp(16px,1.7vw,21px);line-height:1.55;color:#eef3ff}.life-login-benefits{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.life-login-benefits span{background:rgba(3,13,42,.62);border:1px solid rgba(92,144,247,.3);padding:9px 12px;border-radius:12px;font-size:13px;font-weight:700;backdrop-filter:blur(10px)}
.life-auth-card{position:relative;width:min(100%,520px);justify-self:end;padding:34px;background:linear-gradient(155deg,rgba(13,26,72,.94),rgba(11,20,61,.82));border:1px solid rgba(119,157,255,.58);box-shadow:0 0 0 1px rgba(241,79,231,.15) inset,0 0 34px rgba(77,99,255,.24),var(--life-shadow);border-radius:30px;backdrop-filter:blur(22px);overflow:hidden}
.life-auth-card:before{content:"";position:absolute;inset:0;border-radius:30px;padding:1px;background:linear-gradient(135deg,#45d9ff,#8561ff,#f45be8,#45d9ff);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.auth-glow{position:absolute;width:250px;height:250px;right:-90px;top:-100px;background:radial-gradient(circle,rgba(242,78,231,.33),transparent 68%);pointer-events:none}
.auth-brand{font-weight:1000;letter-spacing:.04em;font-size:clamp(28px,3vw,42px);text-align:center;text-shadow:0 0 24px rgba(51,200,255,.42)}.auth-brand b{display:block;letter-spacing:.45em;margin-left:.45em;color:#bb9cff;font-size:.55em}.auth-kicker{text-align:center;margin:22px 0 5px;color:#fff}.life-auth-card h2{text-align:center;margin:0;font-size:clamp(28px,3vw,40px);background:linear-gradient(90deg,#ff9bf0,#84bcff);-webkit-background-clip:text;color:transparent}.auth-sub{text-align:center;color:var(--life-muted);line-height:1.45;margin:10px auto 24px;max-width:370px}
.life-error{padding:11px 13px;border-radius:12px;background:rgba(177,32,65,.25);border:1px solid rgba(255,123,156,.48);color:#ffdce6;margin:0 0 14px}
.life-auth-form{display:grid;gap:16px}.life-auth-form label>span{display:block;font-size:12px;font-weight:800;color:#c9d5f7;margin:0 0 7px}.life-input-wrap{height:58px;display:flex;align-items:center;gap:12px;border:1px solid rgba(125,155,255,.55);background:rgba(3,13,48,.7);border-radius:14px;padding:0 15px;transition:.18s}.life-input-wrap:focus-within{border-color:#49d6ff;box-shadow:0 0 0 3px rgba(73,214,255,.12),0 0 20px rgba(114,88,255,.2)}.life-input-wrap i{font-style:normal;color:#dce5ff}.life-input-wrap input{width:100%;border:0;outline:0;background:transparent;color:#fff;font-size:16px}.life-input-wrap input::placeholder{color:#8797c3}.password-eye{border:0;background:transparent;color:#a9b7df;padding:8px;cursor:pointer}.life-login-btn,.life-register-btn{height:58px;border:0;border-radius:14px;font-weight:1000;font-size:18px;color:#fff;text-decoration:none;display:flex;align-items:center;justify-content:center}.life-login-btn{cursor:pointer;background:linear-gradient(90deg,#ef4edb,#785eff,#34c8ff);box-shadow:0 0 26px rgba(97,94,255,.45)}.life-login-btn:hover{filter:brightness(1.08)}.auth-link{display:block;text-align:center;color:#bda7ff;margin:16px 0 13px}.auth-or{display:flex;align-items:center;gap:13px;color:#8fa1cc}.auth-or span{height:1px;background:rgba(152,177,233,.3);flex:1}.auth-or em{font-style:normal}.life-register-btn{margin-top:13px;border:1px solid rgba(125,155,255,.62);background:rgba(9,22,65,.68)}.life-register-btn:hover{background:rgba(29,46,99,.78)}.auth-security{text-align:center;color:#8da0cf;font-size:11px;line-height:1.45;margin-top:16px}

/* MAP */
.life-map-page{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at 50% 0,#0e2f68,#030918 58%)}.life-app{min-height:100vh;display:grid;grid-template-columns:286px minmax(0,1fr);background:#06122f}.life-legend-panel{height:100vh;position:sticky;top:0;overflow:auto;padding:13px 12px 20px;background:linear-gradient(180deg,#06152f,#071a39);border-right:1px solid rgba(78,131,222,.4);z-index:5;scrollbar-width:thin;scrollbar-color:#294d8b transparent}.life-logo{display:block;text-align:center;color:#fff;text-decoration:none;padding:10px 10px 15px;border-bottom:1px solid rgba(94,141,220,.28)}.life-logo strong{display:block;font-size:34px;line-height:1;font-style:italic;letter-spacing:-.05em;text-shadow:0 0 17px #6a5cff}.life-logo span{display:block;letter-spacing:.42em;margin-left:.42em;color:#cf9cff;font-size:17px;font-weight:1000}.life-logo small{display:block;margin-top:8px;font-size:8px;letter-spacing:.14em;color:#9fb2db}.life-legend-panel h2{font-size:13px;letter-spacing:.09em;margin:14px 5px 9px;color:#eaf0ff}.location-list{display:grid;grid-template-columns:1fr 1fr;gap:3px}.location-row{min-width:0;border:0;background:transparent;color:#dce6ff;display:flex;align-items:center;gap:6px;padding:5px 4px;border-radius:7px;text-align:left;cursor:pointer}.location-row:hover,.location-row.active{background:rgba(65,118,219,.25);box-shadow:0 0 0 1px rgba(82,156,255,.25) inset}.location-row span{flex:0 0 24px;width:24px;height:22px;border:1px solid rgba(107,168,255,.75);border-radius:6px;display:grid;place-items:center;color:#bdddff;font-size:9px;font-weight:900}.location-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px;font-weight:650}.location-row.is-locked{opacity:.58}.legend-mini{margin-top:14px;padding:12px;border:1px solid rgba(87,144,238,.28);border-radius:13px;background:rgba(4,15,42,.6)}.legend-mini h3{font-size:11px;letter-spacing:.08em;margin:0 0 8px}.legend-mini p{display:flex;align-items:center;gap:8px;margin:6px 0;color:#b8c7ea;font-size:10px}.you-dot,.building-dot,.bus-dot{display:inline-grid;place-items:center;width:20px;height:20px}.you-dot{width:11px;height:11px;border-radius:50%;background:#f458e7;box-shadow:0 0 12px #f458e7}.building-dot{border:1px solid #72bcff;border-radius:50%;font-size:7px;color:#fff}.bus-dot{border:1px solid #438cff;border-radius:5px;color:#5cb2ff;font-style:normal}
.life-map-main{min-width:0;display:flex;flex-direction:column;min-height:100vh}.life-map-topbar{height:66px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-bottom:1px solid rgba(94,141,220,.28);background:rgba(5,18,45,.96);backdrop-filter:blur(18px);z-index:4}.life-layer-tabs{display:flex;height:100%;align-items:center;overflow:auto;scrollbar-width:none}.life-layer-tabs button{height:100%;padding:0 18px;border:0;border-bottom:3px solid transparent;background:transparent;color:#9cadcf;font-size:12px;font-weight:850;letter-spacing:.06em;cursor:pointer}.life-layer-tabs button.active{color:#fff;border-bottom-color:#5c6cff;text-shadow:0 0 12px #6f5dff}.player-summary{display:flex;align-items:center;gap:9px}.player-summary>div:nth-child(2){display:grid}.player-summary strong{font-size:12px}.player-summary small{font-size:9px;color:#96a8d1}.player-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-weight:1000;background:linear-gradient(135deg,#f05adf,#605bff,#2fc8ff);border:2px solid rgba(255,255,255,.7)}.coin-pill{font-size:11px;color:#ffe08b;border:1px solid rgba(255,202,62,.25);background:rgba(69,50,6,.33);padding:8px 10px;border-radius:999px}.home-btn,.map-logout button{width:34px;height:34px;display:grid;place-items:center;border:1px solid rgba(115,153,230,.35);background:rgba(9,25,64,.7);border-radius:10px;color:#dce8ff;text-decoration:none;cursor:pointer}.map-logout{margin:0}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:10px;flex:1;min-height:0;padding:10px;background:#030b1c}.map-stage{position:relative;min-width:0;overflow:hidden;border:1px solid rgba(75,132,224,.42);border-radius:16px;background:#04102a;box-shadow:var(--life-shadow)}.map-canvas{position:relative;width:100%;height:100%;min-height:calc(100vh - 125px);overflow:hidden;transform-origin:50% 50%;transition:transform .2s ease}.map-canvas>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;user-select:none}.route-overlay{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.route-overlay line{stroke:#ff6ee9;stroke-width:.55;vector-effect:non-scaling-stroke;stroke-dasharray:2.3 1.6;filter:drop-shadow(0 0 4px #f656e7);display:none}.you-are-here{position:absolute;z-index:5;transform:translate(-50%,-92%);pointer-events:none}.you-are-here:after{content:"";display:block;width:13px;height:13px;border-radius:50%;background:#fc62e9;border:3px solid white;box-shadow:0 0 18px #f35bdd;margin:auto}.you-are-here span{display:block;background:#df4ed5;border:1px solid #ffb8f5;color:#fff;border-radius:8px;padding:5px 8px;font-size:8px;font-weight:1000;white-space:nowrap;box-shadow:0 0 18px rgba(242,78,231,.55)}.building-marker{position:absolute;z-index:4;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;border:2px solid #c7d9ff;background:linear-gradient(150deg,#482d8f,#15163c);color:white;font-size:10px;font-weight:1000;cursor:pointer;box-shadow:0 0 0 2px rgba(61,104,219,.35),0 0 13px rgba(96,91,255,.62);transition:.15s}.building-marker:hover,.building-marker.active{transform:translate(-50%,-50%) scale(1.2);background:linear-gradient(135deg,#f052df,#634fff);box-shadow:0 0 0 3px rgba(255,255,255,.3),0 0 22px #f052df}.building-marker.is-locked{filter:saturate(.45);opacity:.72}.building-marker.is-locked:after{content:"";position:absolute;right:-2px;bottom:-2px;width:8px;height:8px;border-radius:50%;background:#ffb34e;border:1px solid #fff}.map-zoom{position:absolute;z-index:7;left:14px;bottom:14px;display:grid;border:1px solid rgba(103,153,239,.45);border-radius:12px;overflow:hidden;background:rgba(5,18,52,.83);backdrop-filter:blur(10px)}.map-zoom button{width:38px;height:38px;border:0;background:transparent;color:#fff;font-size:20px;cursor:pointer}.map-zoom button+button{border-top:1px solid rgba(103,153,239,.25)}.map-toast{position:absolute;z-index:10;left:50%;bottom:18px;transform:translate(-50%,20px);opacity:0;pointer-events:none;max-width:min(90%,520px);padding:10px 14px;border-radius:999px;background:rgba(5,16,46,.92);border:1px solid rgba(108,158,243,.48);color:#eaf1ff;font-size:11px;font-weight:800;transition:.2s;box-shadow:0 12px 28px rgba(0,0,0,.3)}.map-toast.show{opacity:1;transform:translate(-50%,0)}
.building-panel{position:relative;background:linear-gradient(180deg,rgba(8,25,61,.98),rgba(7,17,46,.98));border:1px solid rgba(83,146,244,.5);border-radius:16px;padding:18px;box-shadow:var(--life-shadow);overflow:auto;transition:.2s}.building-panel.hidden{opacity:0;transform:translateX(14px);pointer-events:none}.panel-close{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#dbe6ff;font-size:27px;cursor:pointer}.building-heading{display:flex;align-items:center;gap:10px;padding-right:30px}.building-heading>span{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;border:2px solid #7bbdff;background:#14234b;font-weight:1000}.building-heading h2{font-size:21px;margin:0}.building-visual{height:150px;border-radius:14px;margin:15px 0;display:flex;align-items:flex-end;gap:14px;padding:17px;overflow:hidden;background:radial-gradient(circle at 70% 20%,rgba(243,78,226,.5),transparent 32%),linear-gradient(135deg,#111c50,#092f5c 55%,#38176b);border:1px solid rgba(125,155,255,.37);box-shadow:0 0 25px rgba(93,81,255,.14) inset}.visual-number{font-size:52px;font-weight:1000;color:rgba(255,255,255,.85);text-shadow:0 0 20px #5ba4ff}.building-visual small{display:block;color:#9fb7e8;font-size:9px;letter-spacing:.16em}.building-visual strong{display:block;margin-top:4px;font-size:21px}.building-description{color:#c3d0ee;font-size:12px;line-height:1.55;min-height:56px}.building-meta{margin:14px 0}.building-meta>div{display:grid;grid-template-columns:105px 1fr;gap:10px;padding:10px 0;border-top:1px solid rgba(115,152,226,.18)}.building-meta dt{font-size:10px;color:#8fa3d0}.building-meta dd{margin:0;font-size:11px;font-weight:800}.status-open{color:var(--life-green)}.status-locked{color:#ffb85c}.building-actions{display:grid;grid-template-columns:1fr 1.15fr;gap:9px}.route-btn,.enter-btn{height:48px;border-radius:11px;border:1px solid rgba(96,169,255,.55);display:flex;align-items:center;justify-content:center;color:#fff;font-size:12px;font-weight:1000;text-decoration:none;cursor:pointer}.route-btn{background:#0e315f}.enter-btn{background:linear-gradient(90deg,#d749d2,#5d59ff,#2ab9ef);border-color:#bf7bff}.enter-btn.disabled{filter:grayscale(.4);opacity:.45;pointer-events:none}.locked-reason{min-height:18px;margin:10px 0 0;color:#ffbd6b;font-size:10px;text-align:center}.life-map-footer{min-height:48px;display:flex;align-items:center;justify-content:center;gap:14px;padding:8px 16px;text-align:center;background:#06142f;border-top:1px solid rgba(76,133,225,.3)}.life-map-footer span{color:#d8e4ff;font-size:10px;font-weight:900;letter-spacing:.06em}.life-map-footer b{font-size:10px;color:#7ed5ff}

/* SCENE GATEWAY */
.life-enter-page{min-height:100vh;background:linear-gradient(rgba(2,8,28,.55),rgba(2,8,28,.86)),url('../img/map-island.webp') center/cover fixed}.scene-gateway{min-height:100vh;display:grid;place-items:center;padding:24px}.scene-card{width:min(700px,100%);padding:34px;border:1px solid rgba(112,157,244,.52);border-radius:28px;background:rgba(6,19,53,.91);box-shadow:var(--life-shadow);backdrop-filter:blur(18px);text-align:center}.scene-number{display:grid;place-items:center;width:76px;height:76px;margin:auto;border-radius:50%;background:linear-gradient(135deg,#e94ad9,#5f58ff,#2bc4f4);font-size:27px;font-weight:1000;box-shadow:0 0 35px rgba(99,84,255,.45)}.scene-eyebrow{font-size:10px;letter-spacing:.18em;color:#8fb9f5;margin-top:22px}.scene-card h1{font-size:clamp(34px,6vw,58px);margin:7px 0 12px}.scene-card>p{color:#c0cdeb;line-height:1.65}.scene-ready,.scene-locked{margin:20px auto;padding:13px;border-radius:12px;max-width:560px}.scene-ready{background:rgba(35,133,89,.19);border:1px solid rgba(88,225,155,.32);color:#a6f0ca}.scene-locked{background:rgba(146,87,17,.24);border:1px solid rgba(255,184,92,.35);color:#ffd195}.scene-ready code{background:#05122e;padding:3px 6px;border-radius:6px;color:#87ceff}.scene-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px}.scene-actions a{padding:11px 16px;border-radius:10px;border:1px solid rgba(111,158,242,.4);background:#102a56;color:#fff;text-decoration:none;font-weight:800}

@media(max-width:1200px){.life-app{grid-template-columns:235px minmax(0,1fr)}.map-layout{grid-template-columns:minmax(0,1fr) 285px}.location-row b{font-size:8px}.building-panel{padding:14px}.building-heading h2{font-size:18px}.player-summary .coin-pill{display:none}}
@media(max-width:900px){.life-login-shell{grid-template-columns:1fr;padding:20px;align-items:center}.life-login-copy{display:none}.life-auth-card{justify-self:center}.life-app{grid-template-columns:1fr}.life-legend-panel{position:fixed;left:0;top:66px;bottom:0;height:auto;width:270px;z-index:30;transform:translateX(-100%);transition:.2s}.life-legend-panel.open{transform:translateX(0)}.map-layout{grid-template-columns:1fr}.building-panel{position:fixed;z-index:25;right:10px;bottom:10px;width:min(360px,calc(100% - 20px));max-height:72vh}.map-canvas{min-height:calc(100vh - 114px)}.life-map-topbar{position:sticky;top:0}.life-layer-tabs button{padding:0 10px}.player-summary>div:nth-child(2),.player-avatar{display:none}.life-map-footer{display:none}}
@media(max-width:560px){.life-login-page{background-position:37% center}.life-auth-card{padding:24px 18px;border-radius:24px}.life-auth-card:before{border-radius:24px}.auth-brand{font-size:31px}.map-layout{padding:5px}.map-stage{border-radius:11px}.map-canvas{min-height:calc(100vh - 76px)}.life-map-topbar{height:60px;padding:0 8px}.life-layer-tabs{max-width:72vw}.life-layer-tabs button{font-size:9px;padding:0 8px}.home-btn,.map-logout button{width:31px;height:31px}.building-marker{width:26px;height:26px;font-size:8px}.you-are-here span{display:none}.building-panel{left:6px;right:6px;bottom:6px;width:auto;max-height:52vh}.building-visual{height:90px}.building-description{min-height:auto}.building-meta>div{padding:7px 0}.life-map-footer{display:none}}
.map-menu-btn{display:none;width:36px;height:36px;border:1px solid rgba(115,153,230,.35);background:rgba(9,25,64,.7);border-radius:10px;color:#fff;cursor:pointer}
@media(max-width:900px){.map-menu-btn{display:grid;place-items:center;flex:0 0 36px}.life-map-topbar{justify-content:flex-start}.player-summary{margin-left:auto}}

/* V90.21.1 CSP-SAFE MAP MARKERS
   Govista CSP is style-src self, so marker coordinates MUST live in this external stylesheet. */
.you-are-here{left:45%;top:43%}
.building-marker[data-building-id="1"]{left:45%;top:43%}
.building-marker[data-building-id="2"]{left:36%;top:28%}
.building-marker[data-building-id="3"]{left:42%;top:31%}
.building-marker[data-building-id="4"]{left:48%;top:29%}
.building-marker[data-building-id="5"]{left:52%;top:36%}
.building-marker[data-building-id="6"]{left:68%;top:39%}
.building-marker[data-building-id="7"]{left:31%;top:36%}
.building-marker[data-building-id="8"]{left:38%;top:40%}
.building-marker[data-building-id="9"]{left:45%;top:34%}
.building-marker[data-building-id="10"]{left:46%;top:14%}
.building-marker[data-building-id="11"]{left:68%;top:24%}
.building-marker[data-building-id="12"]{left:75%;top:32%}
.building-marker[data-building-id="13"]{left:78%;top:35%}
.building-marker[data-building-id="14"]{left:66%;top:51%}
.building-marker[data-building-id="15"]{left:61%;top:51%}
.building-marker[data-building-id="16"]{left:67%;top:49%}
.building-marker[data-building-id="17"]{left:73%;top:50%}
.building-marker[data-building-id="18"]{left:19%;top:70%}
.building-marker[data-building-id="19"]{left:92%;top:57%}
.building-marker[data-building-id="20"]{left:64%;top:61%}
.building-marker[data-building-id="21"]{left:70%;top:60%}
.building-marker[data-building-id="22"]{left:24%;top:73%}
.building-marker[data-building-id="23"]{left:30%;top:76%}
.building-marker[data-building-id="24"]{left:47%;top:81%}
.building-marker[data-building-id="25"]{left:75%;top:43%}
.building-marker[data-building-id="26"]{left:82%;top:44%}
.building-marker[data-building-id="27"]{left:88%;top:44%}
.building-marker[data-building-id="28"]{left:20%;top:15%}
.building-marker[data-building-id="29"]{left:57%;top:56%}
.building-marker[data-building-id="30"]{left:86%;top:53%}
.building-marker[data-building-id="31"]{left:17%;top:10%}
.building-marker[data-building-id="32"]{left:10%;top:29%}
.building-marker[data-building-id="33"]{left:14%;top:40%}
.building-marker[data-building-id="34"]{left:7%;top:55%}
.building-marker[data-building-id="35"]{left:13%;top:59%}
.building-marker[data-building-id="36"]{left:31%;top:59%}
.building-marker[data-building-id="37"]{left:15%;top:78%}
.building-marker[data-building-id="38"]{left:83%;top:12%}
.building-marker[data-building-id="39"]{left:94%;top:24%}
.building-marker[data-building-id="40"]{left:96%;top:39%}
.building-marker[data-building-id="41"]{left:78%;top:69%}
.building-marker[data-building-id="42"]{left:87%;top:74%}
.building-marker[data-building-id="43"]{left:68%;top:79%}
.building-marker[data-building-id="44"]{left:75%;top:82%}
.building-marker[data-building-id="45"]{left:82%;top:78%}
.building-marker[data-building-id="46"]{left:89%;top:82%}
.building-marker[data-building-id="47"]{left:94%;top:75%}

/* CSP-safe route / zoom / map-layer states */
.route-overlay.is-active line{display:block}
.map-canvas.zoom-100{transform:scale(1)}
.map-canvas.zoom-112{transform:scale(1.12)}
.map-canvas.zoom-124{transform:scale(1.24)}
.map-canvas.zoom-136{transform:scale(1.36)}
.map-canvas.zoom-148{transform:scale(1.48)}
.map-canvas.layer-bus .building-marker{opacity:.38}
.map-canvas.layer-secondary .building-marker{opacity:.55}
.map-canvas.layer-bus .building-marker.active,.map-canvas.layer-secondary .building-marker.active{opacity:1}
.building-marker{isolation:isolate}
.building-marker::before{content:attr(aria-label);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) scale(.92);padding:5px 8px;border-radius:7px;background:rgba(4,15,45,.96);border:1px solid rgba(104,172,255,.65);box-shadow:0 7px 20px rgba(0,0,0,.35);font-size:9px;line-height:1;white-space:nowrap;color:#fff;opacity:0;pointer-events:none;transition:.14s;z-index:20}
.building-marker:hover::before,.building-marker:focus-visible::before{opacity:1;transform:translateX(-50%) scale(1)}


/* Keep building numbers above YOU ARE HERE pin so marker 01 remains readable. */
.building-marker{z-index:6}
.building-marker.active{z-index:8}

/* V90.21.2 — DEDICATED GO VISTA LIFE LOGIN BACKGROUND
   This is scoped only to /Life/login.php. Academy/global Govista login is unchanged. */
.life-login-page-v90212{
  min-height:100vh;
  background-image:
    linear-gradient(90deg,rgba(1,7,26,.04) 0%,rgba(2,8,28,.08) 48%,rgba(1,5,19,.34) 70%,rgba(1,5,19,.58) 100%),
    url('../img/login-bg.webp?v=90.21.2');
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  background-attachment:fixed;
}
.life-login-page-v90212 .life-login-shell-form-only{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  max-width:none;
  padding:clamp(24px,5vw,82px);
}
.life-login-page-v90212 .life-auth-card-compact{
  width:min(470px,100%);
  justify-self:auto;
  padding:30px 32px 27px;
  background:linear-gradient(155deg,rgba(7,19,56,.88),rgba(7,17,51,.77));
  border-color:rgba(122,166,255,.58);
  box-shadow:0 0 0 1px rgba(241,79,231,.12) inset,0 0 34px rgba(77,99,255,.24),0 25px 70px rgba(0,0,0,.42);
}
.life-login-page-v90212 .life-form-brand{text-align:center;margin-bottom:12px;font-weight:1000;letter-spacing:.045em;text-shadow:0 0 22px rgba(68,202,255,.45)}
.life-login-page-v90212 .life-form-brand span{font-size:25px;color:#fff}
.life-login-page-v90212 .life-form-brand b{display:block;margin-top:2px;margin-left:.35em;letter-spacing:.35em;font-size:13px;color:#c3a4ff}
.life-login-page-v90212 .life-auth-card h1{margin:0;text-align:center;font-size:clamp(26px,3vw,36px);background:linear-gradient(90deg,#ffa1f1,#8ec5ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.life-login-page-v90212 .auth-sub{margin:9px auto 20px;max-width:380px;font-size:13px}
.life-login-page-v90212 .life-auth-form{gap:13px}
.life-login-page-v90212 .life-input-wrap{height:55px;background:rgba(3,13,48,.76)}
.life-login-page-v90212 .life-login-btn{height:55px}
.life-login-page-v90212 .life-auth-links{display:flex;align-items:center;justify-content:center;gap:9px;margin-top:13px;color:#8597c6;font-size:12px}
.life-login-page-v90212 .life-auth-links .auth-link{display:inline;margin:0;color:#c2adff}
.life-login-page-v90212 .auth-security{margin-top:13px}
@media(max-width:900px){
  .life-login-page-v90212{background-position:34% center;background-attachment:scroll}
  .life-login-page-v90212 .life-login-shell-form-only{justify-content:center;align-items:flex-end;padding:22px 18px 36px}
  .life-login-page-v90212 .life-auth-card-compact{width:min(500px,100%);background:linear-gradient(155deg,rgba(7,19,56,.94),rgba(7,17,51,.90))}
}
@media(max-width:560px){
  .life-login-page-v90212{background-position:31% center}
  .life-login-page-v90212 .life-login-shell-form-only{padding:15px 12px 20px}
  .life-login-page-v90212 .life-auth-card-compact{padding:22px 17px 18px;border-radius:22px}
  .life-login-page-v90212 .life-form-brand span{font-size:21px}
  .life-login-page-v90212 .life-input-wrap,.life-login-page-v90212 .life-login-btn{height:51px}
}

/* VIDEO TAB v90.30 */
.life-video-layer{position:absolute;inset:0;z-index:12;background:radial-gradient(circle at 20% 0,rgba(81,79,255,.28),transparent 35%),#020817;display:grid;place-items:center;padding:28px}.life-video-layer[hidden]{display:none}.life-video-layer video{width:min(100%,1180px);max-height:calc(100vh - 170px);aspect-ratio:16/9;object-fit:contain;background:#000;border-radius:18px;border:1px solid rgba(111,158,255,.42);box-shadow:0 28px 70px rgba(0,0,0,.45)}.life-video-brand{position:absolute;left:36px;top:30px;z-index:2;display:flex;align-items:baseline;gap:7px;padding:9px 13px;border-radius:12px;background:rgba(2,8,23,.72);border:1px solid rgba(120,160,255,.3);backdrop-filter:blur(10px)}.life-video-brand b{font-size:18px}.life-video-brand span{font-size:11px;color:#70cfff;font-weight:1000;letter-spacing:.15em}.life-video-caption{position:absolute;left:38px;bottom:34px;z-index:2;display:grid;padding:10px 14px;border-radius:12px;background:rgba(2,8,23,.75);backdrop-filter:blur(10px)}.life-video-caption strong{font-size:13px}.life-video-caption small{font-size:10px;color:#9fb3dc;margin-top:3px}@media(max-width:900px){.life-video-layer{padding:12px}.life-video-brand{left:18px;top:18px}.life-video-caption{left:18px;bottom:18px;right:18px}}


/* VIDEO SOUND FALLBACK v91.2.10 */
.life-video-sound-gate{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:5px;min-width:min(360px,80vw);padding:16px 22px;border:1px solid rgba(125,176,255,.55);border-radius:16px;background:rgba(4,12,31,.9);color:#fff;box-shadow:0 20px 55px rgba(0,0,0,.5);backdrop-filter:blur(14px);cursor:pointer;text-align:center}.life-video-sound-gate[hidden]{display:none}.life-video-sound-gate b{font-size:14px}.life-video-sound-gate span{font-size:10px;color:#aebfe5}.life-video-sound-gate:hover{border-color:#6fcfff;background:rgba(8,24,55,.95)}
