:root{color-scheme:dark;--gold:#f4cf55;--muted:#bdc7df;--ink:#f5f6fa;--panel:#10182b}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:#080d18;color:var(--ink);font:16px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:inherit}button,input{font:inherit}button,a,input,summary{-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:5px}
.skip{position:absolute;left:16px;top:-100px;z-index:100;background:var(--gold);color:#10182b;padding:12px;border-radius:8px}
.skip:focus{top:12px}
.portal-nav{max-width:1160px;margin:auto;padding:18px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #ffffff18}
.portal-brand{display:flex;align-items:center;gap:10px;font-weight:800;text-decoration:none;letter-spacing:.04em;white-space:nowrap}
.portal-brand img{border-radius:10px}
.portal-links{display:flex;gap:20px;flex-wrap:wrap}.portal-links a{font-size:.9rem;color:var(--muted);text-decoration:none;padding:8px 0}.portal-links a:hover{color:var(--gold)}
.hub{text-align:center;padding:34px 24px 22px;background:radial-gradient(ellipse at 50% 0%,#82632130,transparent 65%)}
.hub .home-logo{display:inline-block;border-radius:24px}.hub .hl{display:block;width:128px;height:128px;object-fit:contain;filter:drop-shadow(0 10px 24px #e8b84a25)}
.eyebrow{color:var(--gold);font-weight:800;letter-spacing:.18em;text-transform:uppercase;font-size:.72rem;margin:12px 0 8px}
.hub h1{font-size:clamp(2.3rem,7vw,4rem);line-height:1.1;letter-spacing:-.04em;margin:10px 0 14px}.hub h1 span{color:var(--gold)}
.hub p{max-width:560px;margin:0 auto 24px;color:var(--muted)}
.srch{display:flex;align-items:center;gap:12px;max-width:580px;margin:auto;padding:6px 18px;background:var(--panel);border:1px solid #ffffff35;border-radius:16px;text-align:left}
.srch:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px #f4cf5518}
.srch input{width:100%;min-width:0;padding:12px 0;border:0;background:transparent;color:var(--ink);outline:0}.srch input::placeholder{color:#9aa7c0}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.tools{max-width:1100px;margin:20px auto 0;display:flex;gap:12px;align-items:center;justify-content:space-between}
.project-count{font-size:.85rem;color:var(--muted);text-align:left}.views{display:flex;gap:6px;flex:none}
.views button{border:1px solid #ffffff30;background:var(--panel);color:var(--muted);border-radius:10px;min-width:44px;min-height:44px;cursor:pointer;font-weight:700}
.views button.on{background:var(--gold);border-color:var(--gold);color:#10182b}
main{max-width:1150px;margin:auto;padding:0 24px 90px}
.feat{display:block;position:relative;min-height:250px;margin:10px 0 36px;border:1px solid #b8933f;border-radius:24px;overflow:hidden;text-decoration:none;background:#17140f}
.feat .fimg{position:absolute;inset:0;background:url('/assets/projects/vm-location/img/hero.webp') center/cover}
.feat:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#000e,#0004)}
.feat .ftxt{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:9px;max-width:600px;padding:28px}
.feature-logo{width:60px;height:60px;object-fit:contain;border-radius:12px;background:#080d18}
.feat small{color:var(--gold);font-weight:800;letter-spacing:.07em}.feat b{font-size:clamp(1.8rem,6vw,2.5rem);line-height:1.1}.feat .ftxt>span{color:#e0e4eb}
.feat em{font-style:normal;font-weight:800;padding:10px 16px;border-radius:10px;background:var(--gold);color:#10182b;margin-top:4px}
.grp{margin:0 0 28px;border-bottom:1px solid #ffffff20;padding-bottom:24px;scroll-margin-top:24px}
.grp>summary{cursor:pointer;display:flex;align-items:center;gap:12px;padding:12px 0 18px;list-style:none}.grp>summary::-webkit-details-marker{display:none}
.grp>summary span{flex:1;min-width:0}.grp>summary b{display:block;font-size:1.2rem}.grp>summary small{display:block;color:var(--muted);font-size:.85rem;margin-top:4px}
.grp>summary em{font-style:normal;font-size:.8rem;background:#ffffff0c;border:1px solid #ffffff20;padding:3px 10px;border-radius:999px}
.grp>summary:after{content:'+';color:var(--gold);font-size:1.5rem;width:20px;text-align:center}.grp[open]>summary:after{content:'−'}
.apps{display:grid;gap:18px}.apps.big{grid-template-columns:minmax(0,1fr)}
.ap{display:flex;flex-direction:column;min-width:0;border:1px solid #ffffff24;border-radius:18px;overflow:hidden;background:var(--panel);text-decoration:none;transition:transform .18s,border-color .18s}
a.ap:hover{transform:translateY(-4px);border-color:var(--gold)}
.ai{display:block;aspect-ratio:16/9;background-size:cover;background-position:center top;background-color:#0d1321}
.ab{display:flex;align-items:flex-start;flex-wrap:wrap;gap:12px;padding:16px;flex:1}
.ab img{width:44px;height:44px;border-radius:12px;object-fit:contain;flex:none;background:#080d18}
.ab>span:nth-child(2){flex:1;min-width:0}.ab b{display:block;font-size:1rem;line-height:1.35}.ab small{display:block;font-size:.83rem;color:var(--muted);line-height:1.5;margin-top:5px}
.go{display:block;width:100%;margin-top:auto;padding-top:12px;font-size:.85rem;font-weight:800;color:var(--gold)}
.soon .go{color:var(--muted)}.soon .ai{opacity:.7}
.apps.grid4{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.apps.grid4 .ai{aspect-ratio:4/3}.apps.grid4 .ab{padding:12px;gap:8px}.apps.grid4 .ab img{width:32px;height:32px}.apps.grid4 .ab b{font-size:.85rem}.apps.grid4 .ab small{display:none}
.none{padding:30px 16px;text-align:center;color:var(--muted)}
.cta{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:36px;padding:24px;border:1px solid #f4cf5540;border-radius:18px;background:#171a22}
.cta b{font-size:1.1rem}.cta p{margin:6px 0 0;color:var(--muted)}.btn{display:inline-block;padding:12px 16px;border-radius:10px;background:var(--gold);color:#10182b;font-weight:800;text-decoration:none;overflow-wrap:anywhere;max-width:100%}
.note{color:var(--muted);font-size:.8rem;margin:28px 0 0}.note a{text-underline-offset:3px}
@media(min-width:640px){.apps.big{grid-template-columns:repeat(2,minmax(0,1fr))}.apps.grid4{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(min-width:1024px){.apps.big{grid-template-columns:repeat(3,minmax(0,1fr))}.apps.grid4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:550px){.portal-nav{padding:14px 16px;flex-wrap:wrap;gap:8px}.portal-links{width:100%;justify-content:space-between;gap:8px}.hub{padding:24px 16px 16px}.hub .hl{width:100px;height:100px}.hub p{font-size:.95rem}main{padding:0 16px 90px}.feat .ftxt{padding:22px}.feat{margin-bottom:24px}.cta{padding:18px}.cta .btn{font-size:.85rem}.grp>summary b{font-size:1.08rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ap{transition:none}a.ap:hover{transform:none}}
