:root{--bg:#05060d;--panel:#0b0f18;--bd:rgba(255,255,255,.08);--bd2:rgba(255,255,255,.16);--ink:#e7ebf5;--mute:#9aa4bf;--mute2:#6f7896;--acc:#0a84ff;--acc2:#6f9cff;--ok:#22c55e;--r:16px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scrollbar-gutter:stable}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:radial-gradient(1100px 600px at 50% -12%,rgba(111,156,255,.07),transparent 60%),var(--bg);color:var(--ink);font-family:'Hanken Grotesk',system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6}
a{color:var(--acc2)}
:focus-visible{outline:2px solid var(--acc2);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--acc);color:#04060c;padding:10px 16px;border-radius:0 0 10px 0;font-weight:600;text-decoration:none}
.skip:focus{left:0}
header.bar{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:center;padding:clamp(1.5rem,2.8vh,2.2rem) 0;pointer-events:none}
.nav-scrim{position:absolute;top:0;left:0;right:0;height:calc(100% + 2rem);pointer-events:none;backdrop-filter:blur(20px) saturate(125%);-webkit-backdrop-filter:blur(20px) saturate(125%);-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 50%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 50%,transparent 100%)}
.navrow{width:100%;max-width:150rem;margin:0 auto;padding:0 clamp(1rem,2.5vw,2.25rem);display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;z-index:1;pointer-events:none}
.brandlink{display:flex;align-items:center;text-decoration:none;pointer-events:auto}
.brandlink svg{height:3.4rem;width:auto;display:block}
.brandlink .brand-mark{display:flex;align-items:center}
.brand-atlas{height:clamp(1.45rem,3.4vh,1.75rem);width:auto;display:block;filter:brightness(0) invert(1);opacity:.95}
#nav-links{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:26px;font-family:'JetBrains Mono',monospace;font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;pointer-events:auto}
#nav-links a{color:#9aa4bf;text-decoration:none;padding:.25rem .15rem;transition:color .25s ease}
#nav-links a:hover{color:#dfe6f7}
#nav-links a[aria-current="page"],#nav-links a[data-active="1"]{color:#f3f6ff}
.nav-ul{position:absolute;top:0;left:0;height:.125rem;width:0;border-radius:.125rem;background:var(--acc);box-shadow:0 0 .5rem var(--acc);opacity:0;transform:translate(0,0);transition:transform .55s cubic-bezier(.34,1.55,.5,1),width .5s cubic-bezier(.34,1.55,.5,1),opacity .3s ease;pointer-events:none}
.navright{position:relative;display:flex;align-items:center;pointer-events:auto}
.acct{display:inline-flex;align-items:center;gap:.7rem;background:none;border:0;padding:.4rem 0;cursor:pointer;color:#cdd6ee;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;transition:color .2s ease}
.acct:hover{color:#fff}
.acct .ava{width:2.15rem;height:2.15rem;border-radius:50%;overflow:hidden;flex:0 0 auto;display:block;border:.0625rem solid var(--bd)}
.acct .ava svg,.acct-head .ava svg{width:100%;height:100%;display:block}
.acct-menu{position:absolute;top:calc(100% + .6rem);right:0;min-width:15rem;background:#0c1018;border:.0625rem solid var(--bd2);border-radius:.9rem;box-shadow:0 1.6rem 3.75rem -1.6rem rgba(0,0,0,.9);padding:.5rem;z-index:60}
.acct-menu[hidden]{display:none}
.acct-head{display:flex;align-items:center;gap:.7rem;padding:.62rem .7rem .75rem;border-bottom:.0625rem solid var(--bd);margin-bottom:.4rem}
.acct-head .ava{flex:0 0 auto;width:2.65rem;height:2.65rem;border-radius:50%;overflow:hidden;border:.0625rem solid var(--bd)}
.acct-head .nm{font-size:.875rem;font-weight:600;color:#f3f6ff;line-height:1.25}
.acct-head .em{font-size:.72rem;color:var(--mute);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:11rem}
.mi{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;background:none;border:0;color:#cdd6ee;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:.84rem;padding:.62rem .7rem;border-radius:.56rem;cursor:pointer;text-decoration:none;transition:background .15s ease,color .15s ease}
.mi:hover{background:rgba(255,255,255,.06);color:#fff}
.mi svg{width:1rem;height:1rem;opacity:.7;flex:0 0 auto}
.mi-logout{color:#ff8a6b}
.mi-logout:hover{background:rgba(255,120,90,.1);color:#ff9a7c}
.wrap{position:relative;z-index:1;width:100%;max-width:92rem;margin:0 auto;padding:clamp(5.5rem,11vh,7rem) clamp(1.25rem,3vw,2.5rem) clamp(4rem,9vh,6rem)}
.head{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,4.5vw,4.5rem);align-items:start;margin-bottom:3.4rem}
.intro{min-width:0}
.hud-wrap{position:relative;max-width:31rem;margin-left:auto;padding-top:.15rem}
.hud-aura{position:absolute;inset:-3rem -2.5rem -4rem -1rem;z-index:0;border-radius:50%;background:radial-gradient(46% 52% at 26% 24%,rgba(10,132,255,.5),transparent 70%),radial-gradient(46% 48% at 86% 82%,rgba(124,92,255,.4),transparent 72%),radial-gradient(38% 40% at 55% 104%,rgba(70,201,138,.15),transparent 70%);filter:blur(3.6rem);opacity:.55;pointer-events:none}
.hud{position:relative;z-index:1;background:none;border:0;border-radius:0;padding:.15rem 0 .15rem 1.7rem;box-shadow:none;overflow:visible}
.hud::before{content:"";position:absolute;left:0;top:.35rem;bottom:.35rem;width:.0625rem;background:linear-gradient(180deg,transparent,rgba(111,156,255,.5) 16%,rgba(124,92,255,.34) 72%,transparent);z-index:1}
.hud-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.3rem}
.hud-k{font-family:'JetBrains Mono',monospace;font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute2)}
.hud-live{display:inline-flex;align-items:center;gap:.5rem;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#9fc4b4}
.hud-live .d{width:.55rem;height:.55rem;border-radius:50%;background:#46c98a;box-shadow:0 0 .5rem rgba(70,201,138,.7);animation:pulse 2.8s ease-out infinite}
.hud-clock{display:flex;align-items:baseline;gap:.75rem;padding-bottom:1.4rem;border-bottom:.0625rem solid var(--bd);margin-bottom:1.4rem}
.hud-clock span{font-family:'JetBrains Mono',monospace;font-size:3rem;font-weight:500;letter-spacing:.01em;color:#f3f6ff;line-height:1;font-variant-numeric:tabular-nums}
.hud-clock small{font-size:.92rem;color:var(--mute);text-transform:capitalize}
.hud-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1.5rem;margin:0}
.hud-grid>div{display:flex;flex-direction:column;gap:.22rem;min-width:0}
.hud-grid dt{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute2)}
.hud-grid dd{margin:0;font-size:1.04rem;color:#eef2fb;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hud-grid dd.ok{color:#74d2a2}
.cosmos{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.grain{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.cosmos .glow{position:absolute;inset:0;background:radial-gradient(55rem 36rem at 80% 2%,rgba(10,132,255,.13),transparent 60%),radial-gradient(40rem 32rem at 6% 98%,rgba(124,92,255,.07),transparent 65%)}
.orbit{position:absolute;top:-20rem;right:-22rem;width:62rem;height:62rem;opacity:.45;filter:blur(.22rem)}
.orbit .ring{position:absolute;inset:0;margin:auto;border-radius:50%;border:.0625rem solid rgba(111,156,255,.13)}
.orbit .ring.r2{inset:8rem;border-color:rgba(111,156,255,.1)}
.orbit .ring.r3{inset:16rem;border-color:rgba(111,156,255,.08)}
.orbit .ring.r4{inset:24rem;border-color:rgba(124,92,255,.1)}
.orbit .core{position:absolute;inset:0;margin:auto;width:5rem;height:5rem;border-radius:50%;background:radial-gradient(circle,rgba(10,132,255,.5),transparent 70%)}
.orbit .spin{position:absolute;inset:0;margin:auto;border-radius:50%;animation:orbitspin 34s linear infinite}
.orbit .spin.s2{inset:8rem;animation-duration:22s;animation-direction:reverse}
.orbit .spin.s3{inset:16rem;animation-duration:48s}
.orbit .planet{position:absolute;top:-.35rem;left:50%;transform:translateX(-50%);width:.65rem;height:.65rem;border-radius:50%;background:var(--acc2);box-shadow:0 0 .9rem var(--acc2)}
.orbit .spin.s2 .planet{background:#7c5cff;box-shadow:0 0 .9rem #7c5cff;width:.5rem;height:.5rem}
.orbit .spin.s3 .planet{background:#cfe0ff;box-shadow:0 0 .7rem #cfe0ff;width:.45rem;height:.45rem}
@keyframes orbitspin{to{transform:rotate(360deg)}}
.eyebrow{display:inline-flex;align-items:center;gap:.8rem;font-family:'JetBrains Mono',monospace;font-size:.82rem;letter-spacing:.2em;text-transform:uppercase;color:#9aa4bf;margin:0 0 1.7rem;padding:0;border:0;background:none}
.eyebrow .dot{width:.52rem;height:.52rem;border-radius:50%;background:#46c98a;box-shadow:0 0 .6rem rgba(70,201,138,.9)}
.eyebrow::after{content:"";width:3.6rem;height:.0625rem;background:linear-gradient(90deg,rgba(255,255,255,.24),transparent)}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 7px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
h1{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(2.1rem,5vw,3rem);letter-spacing:-.01em;margin:0 0 12px;color:#f3f6ff}
.lead{color:#aab3cc;font-size:1.06rem;margin:0;max-width:52ch}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.chip{--c:var(--acc2);display:inline-flex;align-items:center;gap:8px;font-family:'JetBrains Mono',monospace;font-size:11.5px;letter-spacing:.03em;color:#dfe6f7;border:1px solid color-mix(in srgb,var(--c) 38%,transparent);background:color-mix(in srgb,var(--c) 13%,transparent);padding:7px 13px;border-radius:99px}
.chip .d{width:7px;height:7px;border-radius:50%;background:var(--c)}
.section-title{font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute2);margin:0 0 1.2rem}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1.15rem;list-style:none;padding:0;margin:0}
.app-card{--c:var(--acc2);--ty:0px;position:relative;display:flex;flex-direction:column;text-decoration:none;color:var(--ink);background:var(--panel);border-radius:1.1rem;overflow:hidden;box-shadow:0 1.6rem 3.2rem -1.6rem rgba(0,0,0,.78),0 .4rem 1rem -.6rem rgba(0,0,0,.5);transform:perspective(46rem) rotateX(calc(var(--my,0)*-6deg)) rotateY(calc(var(--mx,0)*6deg)) translateY(var(--ty));backface-visibility:hidden;will-change:transform;transition:transform .16s ease,box-shadow .22s ease}.app-card:hover{--ty:-6px;box-shadow:0 2.4rem 4.6rem -1.6rem rgba(0,0,0,.88),0 .7rem 2rem -1rem color-mix(in srgb,var(--c) 34%,transparent)}.ac-cover{position:relative;display:block;aspect-ratio:16/9;overflow:hidden;background:radial-gradient(135% 150% at 18% -12%,color-mix(in srgb,var(--c) 48%,var(--panel)),var(--panel) 68%)}.ac-cover img{width:100%;height:100%;object-fit:cover;display:block;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 38%,rgba(0,0,0,.5) 66%,rgba(0,0,0,.12) 85%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 38%,rgba(0,0,0,.5) 66%,rgba(0,0,0,.12) 85%,transparent 100%)}.ac-ico{position:relative;z-index:2;margin:-2.5rem 0 0 1.1rem;width:4.7rem;height:4.7rem;display:grid;place-items:center;filter:drop-shadow(0 .5rem .7rem rgba(0,0,0,.55)) drop-shadow(0 .12rem .3rem rgba(0,0,0,.4));transform:translate(calc(var(--mx,0)*.5rem),calc(var(--my,0)*.5rem));transition:transform .16s ease}.ac-ico img{width:100%;height:100%;object-fit:contain}.ac-ico .app-ico--ph{width:100%;height:100%;border-radius:1.15rem;display:grid;place-items:center;background:radial-gradient(120% 120% at 30% 25%,color-mix(in srgb,var(--c) 70%,#fff) 0%,var(--c) 45%,color-mix(in srgb,var(--c) 60%,#05060d) 100%);font-family:'Space Grotesk',sans-serif;font-weight:700;color:#fff;font-size:1.85rem}.ac-body{display:flex;flex-direction:column;flex:1;padding:.7rem 1.2rem 1.25rem;transform:translate(calc(var(--mx,0)*.28rem),calc(var(--my,0)*.28rem));transition:transform .16s ease}.ac-body .app-tag{align-self:flex-start;font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--c);border:.0625rem solid color-mix(in srgb,var(--c) 34%,transparent);background:color-mix(in srgb,var(--c) 10%,transparent);padding:.2rem .55rem;border-radius:99px;margin-bottom:.55rem}.app-card h3{font-family:'Space Grotesk',sans-serif;font-size:1.18rem;font-weight:600;margin:0 0 .35rem;color:#f3f6ff}.app-card p{color:var(--mute);font-size:.9rem;line-height:1.5;margin:0 0 1.05rem;flex:1}.ac-cta{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem;font-weight:600;color:var(--c);transition:gap .2s ease}.app-card:hover .ac-cta{gap:.7rem}.ac-cta svg{width:1rem;height:1rem}
.skel{pointer-events:none}.skel::before{display:none}
.sk{background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.09),rgba(255,255,255,.04));background-size:200% 100%;animation:sh 1.3s linear infinite;border-radius:8px}
.sk-cover{aspect-ratio:16/9}.sk-ico{width:3.4rem;height:3.4rem;border-radius:.9rem;margin:-1.9rem 0 .7rem 1.15rem}.sk-line{height:.8rem;margin:0 1.2rem .6rem}.sk-line.s{width:55%}.app-card.skel{padding:0}.skel .ac-body{padding:.7rem 0 1.1rem}
@keyframes sh{to{background-position:-200% 0}}
.state{grid-column:1/-1;border:1px dashed var(--bd2);border-radius:var(--r);padding:2.6rem;text-align:center;display:flex;flex-direction:column;gap:6px}
.state strong{color:#f3f6ff;font-size:1.05rem}.state span{color:var(--mute)}.state--err strong{color:#ff8a6b}
site-footer{display:block;margin-top:auto;position:relative;z-index:2;background:var(--bg)}
main{flex:1;width:100%;display:block}
.view-page{position:relative;z-index:1;background:var(--bg);min-height:100vh}
#view-home,#view-blog{position:relative}
[hidden]{display:none!important}
@supports (animation-timeline:scroll()){@media(prefers-reduced-motion:no-preference){.cover{animation:coverLeave linear both;animation-timeline:scroll(root);animation-range:0 85vh}@keyframes coverLeave{to{opacity:0;transform:translateY(-7%) scale(.965);filter:blur(.25rem)}}}}
.cover{position:sticky;top:0;min-height:100vh;display:grid;place-items:center;text-align:center;padding:7rem 1.5rem 5rem;z-index:0;overflow:hidden}
.cover::before{content:"";position:absolute;inset:0;background:radial-gradient(42rem 30rem at 50% 40%,rgba(10,132,255,.12),transparent 62%);pointer-events:none}
.cover-inner{position:relative;max-width:50rem;display:flex;flex-direction:column;align-items:center;gap:1.3rem}
.cover-kicker{font-family:'JetBrains Mono',monospace;font-size:.8rem;letter-spacing:.24em;text-transform:uppercase;color:var(--mute2);margin:0}
.cover-title{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(2.8rem,7.5vw,5.4rem);line-height:1.05;letter-spacing:-.025em;color:#f3f6ff;margin:0}
.cover-sub{font-size:clamp(1.02rem,2.2vw,1.25rem);color:#aab3cc;max-width:38ch;margin:.2rem 0 0;line-height:1.5}
.cover-actions{display:flex;gap:.9rem;flex-wrap:wrap;justify-content:center;margin-top:1rem}
.btn{display:inline-flex;align-items:center;gap:.55rem;font-size:.96rem;font-weight:600;text-decoration:none;padding:.9rem 1.5rem;border-radius:.75rem;transition:transform .18s ease,background .2s ease,border-color .2s ease}
.btn svg{width:1.05rem;height:1.05rem}
.btn-primary{background:var(--acc);color:#04060c;box-shadow:0 .8rem 2rem -.8rem rgba(10,132,255,.7)}
.btn-primary:hover{transform:translateY(-2px);background:#1f90ff}
.btn-ghost{background:rgba(255,255,255,.04);color:#dfe6f7;border:.0625rem solid var(--bd2)}
.btn-ghost:hover{transform:translateY(-2px);border-color:var(--acc2);color:#fff}
.scroll-hint{display:inline-flex;flex-direction:column;align-items:center;gap:.55rem;margin-top:2.4rem;font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute2)}
.scroll-hint .chev{width:.62rem;height:.62rem;border-right:.125rem solid currentColor;border-bottom:.125rem solid currentColor;transform:rotate(45deg);animation:bob 1.9s ease-in-out infinite}
@keyframes bob{0%,100%{transform:rotate(45deg) translate(0,0)}50%{transform:rotate(45deg) translate(.16rem,.16rem)}}
.sheet{position:relative;z-index:1;background:var(--bg);scroll-margin-top:4rem}
.apps-section>.wrap{flex:1;display:flex;flex-direction:column}
.apps-section{min-height:100vh;display:flex;flex-direction:column;border-radius:1.6rem 1.6rem 0 0;border-top:.0625rem solid var(--bd2);box-shadow:0 -1.4rem 3rem -1rem rgba(0,0,0,.6);background:linear-gradient(180deg,#080b14,#05060d 38%)}
.blog-section{min-height:100vh;background:linear-gradient(180deg,#05060d,#070912)}
.sec-title{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(1.9rem,4vw,2.6rem);letter-spacing:-.01em;color:#f3f6ff;margin:0 0 .6rem}
.eyebrow--blue .dot{background:var(--acc);box-shadow:0 0 .6rem rgba(10,132,255,.85)}
.blog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:1.15rem;margin-top:1.9rem}
.post{position:relative;display:flex;flex-direction:column;background:var(--panel);border:.0625rem solid var(--bd);border-radius:var(--r);padding:1.4rem;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}
.post:hover{transform:translateY(-3px);border-color:var(--bd2);box-shadow:0 1.1rem 2.6rem -1.4rem rgba(0,0,0,.85)}
.post-tag{align-self:flex-start;font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--acc2);border:.0625rem solid color-mix(in srgb,var(--acc2) 34%,transparent);background:color-mix(in srgb,var(--acc2) 10%,transparent);padding:.22rem .6rem;border-radius:99px;margin-bottom:.9rem}
.post h3{font-family:'Space Grotesk',sans-serif;font-size:1.12rem;font-weight:600;margin:0 0 .5rem;color:#f3f6ff}
.post p{color:var(--mute);font-size:.92rem;margin:0 0 1.2rem;flex:1}
.post-meta{display:flex;align-items:center;gap:.5rem;font-family:'JetBrains Mono',monospace;font-size:.66rem;color:var(--mute2);letter-spacing:.04em}
@keyframes riseIn{from{opacity:0;transform:translateY(1.3rem)}to{opacity:1;transform:none}}
#view-blog:not([hidden]) .eyebrow{animation:riseIn .5s ease both}
#view-blog:not([hidden]) .sec-title{animation:riseIn .5s ease .06s both}
#view-blog:not([hidden]) .lead{animation:riseIn .5s ease .12s both}
#view-blog:not([hidden]) .post{animation:riseIn .55s cubic-bezier(.2,.7,.2,1) both}
#view-blog:not([hidden]) .post:nth-child(1){animation-delay:.18s}
#view-blog:not([hidden]) .post:nth-child(2){animation-delay:.26s}
#view-blog:not([hidden]) .post:nth-child(3){animation-delay:.34s}
@keyframes appIn{from{opacity:0;transform:scale(.965)}to{opacity:1;transform:none}}
.apps-section.is-in .eyebrow{animation:appIn .5s ease backwards}
.apps-section.is-in .sec-title{animation:appIn .5s ease .06s backwards}
.apps-section.is-in .lead{animation:appIn .5s ease .12s backwards}
.apps-section.is-in .hud-wrap{animation:appIn .55s ease .17s backwards}
.apps-section.is-in .app-card{animation:appIn .5s cubic-bezier(.2,.7,.2,1) backwards}
.apps-section.is-in app-card:nth-child(1) .app-card{animation-delay:.22s}
.apps-section.is-in app-card:nth-child(2) .app-card{animation-delay:.3s}
.apps-section.is-in app-card:nth-child(3) .app-card{animation-delay:.38s}
.apps-section.is-in app-card:nth-child(n+4) .app-card{animation-delay:.44s}
@media(max-width:60rem){.head{grid-template-columns:1fr;gap:2.2rem}.hud-wrap{max-width:30rem;margin-left:0}.orbit{opacity:.32}}
@media(max-width:880px){#nav-links{display:none}.brandlink svg{height:2.8rem}.brand-atlas{height:1.4rem}}
@media(max-width:26.875rem){.acct-lbl{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.app-card:hover{transform:none}}
site-nav,site-cosmos{display:contents}
app-card{display:contents}

.atlas-loader{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.1rem;padding:5rem 1rem;min-height:38vh}
.ld-ring{position:relative;width:4.6rem;height:4.6rem;display:grid;place-items:center}
.ld-ring::before{content:"";position:absolute;inset:0;border-radius:50%;border:.16rem solid rgba(111,156,255,.14);border-top-color:var(--acc);animation:ldspin .85s linear infinite}
.ld-logo{width:2.3rem;height:auto;display:block;animation:ldpulse 1.6s ease-in-out infinite}
.ld-txt{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--mute2)}
@keyframes ldspin{to{transform:rotate(360deg)}}
@keyframes ldpulse{0%,100%{opacity:.55;transform:scale(.92)}50%{opacity:1;transform:scale(1)}}

body{opacity:0}
body.is-ready{opacity:1;transition:opacity .3s ease}

/* ===== Navbar: modo aplicación (detalle) ===== */
.nav-app{position:absolute;left:50%;transform:translateX(-50%);font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:1.05rem;letter-spacing:-.01em;color:#f3f6ff;white-space:nowrap;max-width:46vw;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.nav-back{display:inline-flex;align-items:center;gap:.45rem;font-family:'JetBrains Mono',monospace;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#cdd6ee;text-decoration:none;border:.0625rem solid var(--bd2);border-radius:.65rem;padding:.5rem .9rem;background:rgba(255,255,255,.04);transition:background .2s ease,border-color .2s ease,color .2s ease;pointer-events:auto}
.nav-back:hover{background:rgba(255,255,255,.09);border-color:var(--acc2);color:#fff}
.nav-back svg{width:1rem;height:1rem}

/* ===== Vista de descargas ===== */
#view-descargas .dl-wrap{max-width:72rem}
#view-descargas .dl-hero{position:relative;display:flex;align-items:flex-start;gap:clamp(1.4rem,3.5vw,2.8rem);padding:1rem 0 2.6rem;flex-wrap:wrap;border-bottom:.0625rem solid var(--bd);margin-bottom:2.8rem}
#view-descargas .dl-hero-glow{position:absolute;left:-6rem;top:-5rem;width:30rem;height:30rem;background:radial-gradient(circle,rgba(10,132,255,.22),rgba(124,92,255,.12) 45%,transparent 68%);filter:blur(2.6rem);z-index:0;pointer-events:none}
#view-descargas .dl-icon{position:relative;z-index:1;flex:0 0 auto;width:clamp(5.5rem,13vw,8rem);height:clamp(5.5rem,13vw,8rem);display:grid;place-items:center;filter:drop-shadow(0 1.4rem 2.2rem rgba(0,0,0,.6)) drop-shadow(0 .4rem .8rem rgba(0,0,0,.45))}
#view-descargas .dl-icon img{width:100%;height:100%;object-fit:contain}
#view-descargas .dl-ico-ph{width:100%;height:100%;border-radius:1.7rem;display:grid;place-items:center;background:radial-gradient(120% 120% at 30% 25%,color-mix(in srgb,var(--acc2) 70%,#fff),var(--acc2) 45%,color-mix(in srgb,var(--acc2) 60%,#05060d));font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:2.8rem;color:#fff}
#view-descargas .dl-headinfo{position:relative;z-index:1;min-width:min(100%,18rem);flex:1}
#view-descargas .dl-tag{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--acc2);border:.0625rem solid color-mix(in srgb,var(--acc2) 34%,transparent);background:color-mix(in srgb,var(--acc2) 10%,transparent);padding:.24rem .65rem;border-radius:99px;margin-bottom:.8rem}
#view-descargas .dl-title{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(2.2rem,5.5vw,3.4rem);letter-spacing:-.025em;color:#f3f6ff;margin:0 0 .5rem;line-height:1.02}
#view-descargas .dl-short{color:#aab3cc;font-size:clamp(1rem,2vw,1.15rem);margin:0 0 1.6rem;max-width:52ch;line-height:1.55}
#view-descargas .dl-cta{display:flex;margin-bottom:1.7rem}
#view-descargas .dl-split{position:relative;display:inline-flex;align-items:stretch}
#view-descargas .dl-main{display:inline-flex;align-items:center;gap:.6rem;background:linear-gradient(135deg,var(--acc),#5b8cff);color:#04060c;font-weight:600;font-size:1rem;padding:.95rem 1.6rem;border-radius:.95rem 0 0 .95rem;text-decoration:none;box-shadow:0 1rem 2.4rem -.8rem rgba(10,132,255,.75);transition:filter .2s ease}
#view-descargas .dl-main svg{width:1.15rem;height:1.15rem}
#view-descargas .dl-split:hover .dl-main,#view-descargas .dl-split:hover .dl-arrow{filter:brightness(1.08)}
#view-descargas .dl-arrow{display:grid;place-items:center;width:3rem;background:linear-gradient(135deg,#0a78e6,#4f80f0);color:#04060c;border:0;border-left:.0625rem solid rgba(0,0,0,.22);border-radius:0 .95rem .95rem 0;cursor:pointer;box-shadow:0 1rem 2.4rem -.8rem rgba(10,132,255,.75)}
#view-descargas .dl-arrow svg{width:1.05rem;height:1.05rem;transition:transform .2s ease}
#view-descargas .dl-arrow[aria-expanded="true"] svg{transform:rotate(180deg)}
#view-descargas .dl-disabled{display:inline-flex;align-items:center;background:rgba(255,255,255,.05);color:var(--mute);border:.0625rem solid var(--bd2);border-radius:.95rem;padding:.95rem 1.6rem;font-weight:600;font-size:.95rem}
#view-descargas .dl-menu{position:absolute;top:calc(100% + .55rem);left:0;min-width:18rem;background:#0c1018;border:.0625rem solid var(--bd2);border-radius:.85rem;box-shadow:0 1.8rem 3.8rem -1.4rem rgba(0,0,0,.9);padding:.4rem;z-index:20}
#view-descargas .dl-menu[hidden]{display:none}
#view-descargas .dl-menu-head{font-family:'JetBrains Mono',monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute2);padding:.5rem .7rem .3rem}
#view-descargas .dl-menu-list a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem .7rem;border-radius:.55rem;text-decoration:none;color:#dfe6f7;transition:background .15s ease}
#view-descargas .dl-menu-list a:hover{background:rgba(255,255,255,.06)}
#view-descargas .dl-menu-list .v{font-size:.86rem;font-weight:500}
#view-descargas .dl-menu-list .d{font-family:'JetBrains Mono',monospace;font-size:.7rem;color:var(--mute2)}
#view-descargas .dl-loading{padding:.7rem;color:var(--mute);font-size:.84rem}
#view-descargas .dl-meta{list-style:none;display:flex;flex-wrap:wrap;margin:0;padding:0}
#view-descargas .dl-meta li{display:flex;flex-direction:column;gap:.2rem;padding:0 1.3rem;border-left:.0625rem solid var(--bd)}
#view-descargas .dl-meta li:first-child{padding-left:0;border-left:0}
#view-descargas .dl-meta .k{font-family:'JetBrains Mono',monospace;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mute2)}
#view-descargas .dl-meta .v{font-size:.92rem;color:#eef2fb;font-weight:600}
#view-descargas .dl-gallery-wrap{margin:0 0 2.8rem}
#view-descargas .dl-gallery{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:.25rem .25rem 1.1rem;margin:0 -.25rem;scrollbar-width:thin;scrollbar-color:var(--bd2) transparent;scroll-padding:.25rem}
#view-descargas .dl-gallery::-webkit-scrollbar{height:.5rem}
#view-descargas .dl-gallery::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:99px}
#view-descargas .dl-shot{flex:0 0 auto;width:clamp(20rem,42vw,30rem);aspect-ratio:16/10;scroll-snap-align:start;padding:0;border-radius:1.1rem;overflow:hidden;background:var(--panel);cursor:zoom-in;box-shadow:0 1rem 2.4rem -1.2rem rgba(0,0,0,.7),inset 0 0 0 .0625rem rgba(255,255,255,.04);transition:transform .25s ease,box-shadow .25s ease}
#view-descargas .dl-shot:hover{transform:translateY(-4px) scale(1.01);box-shadow:0 1.7rem 3.4rem -1.4rem rgba(0,0,0,.85),inset 0 0 0 .0625rem rgba(255,255,255,.06)}
#view-descargas .dl-shot img{width:100%;height:100%;object-fit:cover;display:block}
#view-descargas .dl-about{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:clamp(1.6rem,4vw,3.4rem);align-items:start}
#view-descargas .dl-sec{font-family:'JetBrains Mono',monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mute2);margin:0 0 1.1rem}
#view-descargas .dl-prose{color:#c3cadd;font-size:1.04rem;line-height:1.78;max-width:62ch}
#view-descargas .dl-prose p{margin:0 0 1.1rem}
#view-descargas .dl-muted{color:var(--mute)}
#view-descargas .dl-info{background:linear-gradient(160deg,rgba(20,26,42,.5),rgba(10,14,22,.35));border-radius:1.1rem;padding:1.4rem 1.5rem;box-shadow:0 1.2rem 2.8rem -1.4rem rgba(0,0,0,.7),inset 0 0 0 .0625rem rgba(255,255,255,.05)}
#view-descargas .dl-info .dl-sec{margin-bottom:.6rem}
#view-descargas .dl-info-list{margin:0;display:flex;flex-direction:column}
#view-descargas .dl-info-list>div{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 0;border-bottom:.0625rem solid var(--bd)}
#view-descargas .dl-info-list>div:last-child{border-bottom:0}
#view-descargas .dl-info-list dt{font-size:.82rem;color:var(--mute)}
#view-descargas .dl-info-list dd{margin:0;font-size:.88rem;color:#eef2fb;font-weight:500;text-align:right}
#view-descargas .dl-notfound{padding:5rem 0;text-align:center}
#view-descargas .dl-notfound h2{font-family:'Space Grotesk',sans-serif;color:#f3f6ff;margin:0 0 .5rem}
#view-descargas .dl-back-link{display:inline-block;margin-top:1rem;color:var(--acc2);text-decoration:none}
.dl-lightbox{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:2.5rem;background:rgba(3,5,10,.88);-webkit-backdrop-filter:blur(.6rem);backdrop-filter:blur(.6rem);cursor:zoom-out}
.dl-lightbox[hidden]{display:none}
.dl-lightbox img{max-width:100%;max-height:100%;border-radius:.9rem;box-shadow:0 2.4rem 5rem -1rem rgba(0,0,0,.9)}
#view-descargas:not([hidden]) .dl-hero{animation:appIn .55s ease backwards}
#view-descargas:not([hidden]) .dl-gallery-wrap{animation:appIn .55s ease .1s backwards}
#view-descargas:not([hidden]) .dl-about{animation:appIn .55s ease .16s backwards}
@media(max-width:880px){#view-descargas .dl-about{grid-template-columns:1fr}}
@media(max-width:560px){#view-descargas .dl-menu{left:auto;right:0}.dl-lightbox{padding:1.2rem}#view-descargas .dl-meta li{padding:0 .9rem}}

/* ===== Avatares unificados ===== */
.ava img,.acct .ava img,.acct-head .ava img{width:100%;height:100%;object-fit:cover;display:block}
.ava-ini{width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:700;color:#fff;background:linear-gradient(150deg,color-mix(in srgb,var(--ac) 82%,#fff),var(--ac) 55%,color-mix(in srgb,var(--ac) 78%,#000));box-shadow:inset 0 .12em .35em rgba(255,255,255,.18);font-size:.9rem;text-shadow:0 .04em .12em rgba(0,0,0,.25)}
.acct-head .ava .ava-ini{font-size:1.1rem}

/* ===== Modal: editar perfil ===== */
.profile-modal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:rgba(3,5,10,.72);-webkit-backdrop-filter:blur(.5rem);backdrop-filter:blur(.5rem)}
.profile-modal[hidden]{display:none}
.profile-card{position:relative;width:min(26rem,100%);background:linear-gradient(160deg,#10151f,#0a0e16);border:.0625rem solid var(--bd2);border-radius:1.3rem;padding:1.9rem;box-shadow:0 2rem 5rem -1.4rem rgba(0,0,0,.9);animation:appIn .35s ease}
.profile-close{position:absolute;top:1rem;right:1rem;width:2rem;height:2rem;border-radius:50%;border:.0625rem solid var(--bd2);background:rgba(255,255,255,.04);color:#cdd6ee;cursor:pointer;font-size:.85rem;transition:background .2s ease}
.profile-close:hover{background:rgba(255,255,255,.1)}
.profile-title{font-family:'Space Grotesk',sans-serif;font-weight:600;color:#f3f6ff;margin:0 0 1.5rem;font-size:1.25rem}
.profile-avzone{display:flex;flex-direction:column;align-items:center;gap:.85rem;margin-bottom:1.6rem}
.profile-av{width:5.5rem;height:5.5rem;border-radius:50%;overflow:hidden;border:.0625rem solid var(--bd2);cursor:pointer;box-shadow:0 1rem 2rem -.8rem rgba(0,0,0,.8);transition:border-color .2s ease}
.profile-av:hover{border-color:var(--acc2)}
.profile-av img{width:100%;height:100%;object-fit:cover;display:block}
.profile-av .ava-ini{font-size:2rem}
.profile-avbtn{font-family:'JetBrains Mono',monospace;font-size:.68rem;letter-spacing:.06em;text-transform:uppercase;color:#cdd6ee;background:rgba(255,255,255,.05);border:.0625rem solid var(--bd2);border-radius:.6rem;padding:.45rem .9rem;cursor:pointer;transition:background .2s ease}
.profile-avbtn:hover{background:rgba(255,255,255,.1)}
.profile-field{margin-bottom:1rem}
.profile-field label{display:block;font-size:.75rem;color:var(--mute);margin-bottom:.4rem}
.profile-field input{width:100%;background:#0a0f18;border:.0625rem solid var(--bd2);border-radius:.7rem;color:#eef2fb;font:inherit;font-size:.95rem;padding:.7rem .85rem;transition:border-color .2s ease}
.profile-field input:focus{outline:none;border-color:var(--acc2)}
.profile-email{font-size:.9rem;color:var(--mute);padding:.2rem 0}
.profile-actions{display:flex;gap:.7rem;margin-top:1.6rem}
.profile-actions .btn{flex:1;justify-content:center;cursor:pointer;border:0;font-family:inherit}
.profile-msg{font-size:.82rem;margin-top:.85rem;min-height:1.1rem;text-align:center}

/* ===== Recortador de avatar (editar perfil) ===== */
.profile-cropper{width:9.5rem;height:9.5rem;border-radius:50%;overflow:hidden;position:relative;cursor:pointer;border:.0625rem solid transparent;background:#0a0f18;touch-action:none;box-shadow:0 1rem 2rem -.8rem rgba(0,0,0,.8)}
.profile-cropper.has{cursor:grab}
.profile-cropper.grabbing{cursor:grabbing}
.profile-cropper.drag{border-color:var(--acc2)}
.profile-cropper img{position:absolute;top:0;left:0;user-select:none;-webkit-user-drag:none}
.pf-static{width:100%;height:100%;object-fit:cover}
.profile-cropper .ava-ini{font-size:3rem}
.pf-hint{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;background:rgba(4,6,12,.55);color:#fff;font-family:'JetBrains Mono',monospace;font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity .2s ease;pointer-events:none}
.pf-hint svg{width:1.3rem;height:1.3rem}
.profile-cropper:not(.has):hover .pf-hint,.profile-cropper.drag .pf-hint{opacity:1}
.pf-zoom{width:9.5rem;accent-color:var(--acc);cursor:pointer}
.pf-avbtns{display:flex;gap:.5rem}
.pf-remove{color:#ff8a6b}

/* ===== Componente <user-avatar> ===== */
.nav-login{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1.1rem;border-radius:99px;text-decoration:none;font-weight:600;font-size:.88rem;color:#04060c;background:linear-gradient(135deg,var(--acc),#5b8cff);box-shadow:0 .7rem 1.6rem -.7rem rgba(10,132,255,.75);transition:filter .2s ease,transform .2s ease}.nav-login:hover{filter:brightness(1.08);transform:translateY(-1px)}.nav-login svg{width:1rem;height:1rem}.ac-lock{position:absolute;top:.85rem;right:.85rem;z-index:3;width:2rem;height:2rem;display:grid;place-items:center;border-radius:.65rem;background:rgba(5,7,13,.72);backdrop-filter:blur(.25rem);-webkit-backdrop-filter:blur(.25rem);color:#cdd6ee;box-shadow:inset 0 0 0 .0625rem rgba(255,255,255,.12)}.ac-lock svg{width:1.05rem;height:1.05rem}.app-card.is-locked .ac-cover img{filter:saturate(.55) brightness(.75)}user-avatar{display:inline-flex;width:var(--av-size,2.4rem);height:var(--av-size,2.4rem);border-radius:50%;overflow:hidden;flex:0 0 auto;line-height:0;background:#0a0e18;box-shadow:0 .3rem 1rem -.45rem var(--ac,transparent),inset 0 0 0 .07em rgba(255,255,255,.06)}
user-avatar img{width:100%;height:100%;object-fit:cover;display:block}
user-avatar .ua-ini{position:relative;overflow:hidden;width:100%;height:100%;display:flex;align-items:center;justify-content:center;line-height:1;font-family:'Space Grotesk',system-ui,sans-serif;font-weight:600;letter-spacing:-.01em;color:#fff;background:radial-gradient(115% 115% at 30% 24%,color-mix(in srgb,var(--ac) 88%,#fff) 0%,var(--ac) 38%,color-mix(in srgb,var(--ac) 58%,#05060d) 78%,color-mix(in srgb,var(--ac) 32%,#05060d) 100%);text-shadow:0 .03em .14em rgba(0,0,0,.45);font-size:calc(var(--av-size,2.4rem)*.52)}.ua-ini::after{content:"";position:absolute;inset:0;background:radial-gradient(58% 42% at 30% 16%,rgba(255,255,255,.4),transparent 62%);mix-blend-mode:screen;pointer-events:none}
.profile-cropper user-avatar{border:0;width:100%;height:100%}

.pf-avwrap{position:relative;display:inline-block;line-height:0}
.pf-cam{position:absolute;right:.15rem;bottom:.15rem;width:2.3rem;height:2.3rem;border-radius:50%;display:grid;place-items:center;background:var(--acc);color:#04060c;border:.2rem solid #0f1521;cursor:pointer;box-shadow:0 .5rem 1.3rem -.4rem rgba(10,132,255,.75);transition:transform .15s ease,filter .2s ease}
.pf-cam:hover{transform:scale(1.07);filter:brightness(1.08)}
.pf-cam:active{transform:scale(1)}
.pf-cam svg{width:1.15rem;height:1.15rem}
.pf-remove-link{background:none;border:0;color:var(--mute);font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:.8rem;cursor:pointer;text-decoration:underline;text-underline-offset:.2em;transition:color .2s ease}
.pf-remove-link:hover{color:#ff8a6b}
