:root { --nx-void:#050612; --nx-panel:#111329; --nx-line:rgba(255,255,255,.13); --nx-cyan:#57ddff; --nx-pink:#ff6eb9; --nx-gold:#ffd45d; --nx-violet:#b075ff; }
.nx-launcher{position:fixed;right:max(13px,var(--safe-right));bottom:max(15px,calc(var(--safe-bottom) + 9px));z-index:230;display:inline-flex;align-items:center;gap:9px;min-height:47px;padding:8px 14px 8px 8px;border:1px solid #ffffff55;border-radius:999px;color:#fff;background:linear-gradient(135deg,#221a55f2,#511c65f2);box-shadow:0 15px 42px #03030bbb,inset 0 1px #ffffff2b;font:800 13px/1 Inter,system-ui,sans-serif;letter-spacing:.04em;cursor:pointer}.nx-launcher b{display:grid;place-items:center;width:31px;height:31px;border-radius:50%;background:radial-gradient(circle,#fff 0 5%,#57ddff 8% 17%,#b075ff 42%,#170b35 72%);box-shadow:0 0 18px #57ddffaa;font-size:15px}.nx-launcher:hover{transform:translateY(-2px)}.nx-launcher:focus-visible,.nx-console button:focus-visible,.nx-console input:focus-visible{outline:3px solid var(--nx-cyan);outline-offset:3px}
.nx-console{position:fixed;inset:0;z-index:410;display:none;grid-template-rows:auto auto 1fr;color:#f5f3ff;background:radial-gradient(circle at 13% 12%,#512a894f,transparent 31%),radial-gradient(circle at 90% 86%,#116b7b38,transparent 32%),linear-gradient(145deg,#050612,#0c1026 52%,#101329);font:400 16px/1.48 Inter,system-ui,sans-serif;overscroll-behavior:contain}.nx-console[data-open="true"]{display:grid}.nx-console *{box-sizing:border-box}.nx-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:max(12px,var(--safe-top)) max(17px,var(--safe-right)) 11px max(17px,var(--safe-left));border-bottom:1px solid var(--nx-line);background:#060717d9;backdrop-filter:blur(20px)}.nx-brand{display:flex;align-items:center;gap:12px;min-width:0}.nx-brand-mark{display:grid;flex:none;place-items:center;width:45px;height:45px;border:1px solid #ffffff31;border-radius:50%;background:conic-gradient(from 45deg,#b075ff,#57ddff,#ff6eb9,#ffd45d,#b075ff);color:#08091a;font-weight:1000;box-shadow:0 0 27px #805bd45e}.nx-brand small{display:block;color:#aaa5c4;font-size:.68rem;font-weight:850;letter-spacing:.15em}.nx-brand strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(1rem,2.7vw,1.32rem)}.nx-close{width:44px;height:44px;border:1px solid var(--nx-line);border-radius:50%;color:#fff;background:#ffffff0d;cursor:pointer;font-size:1.45rem!important}.nx-tabs{display:flex;gap:7px;overflow-x:auto;padding:10px max(17px,var(--safe-right)) 9px max(17px,var(--safe-left));border-bottom:1px solid #ffffff12;background:#07081dcc;scrollbar-width:thin}.nx-tab{flex:0 0 auto;min-height:40px;padding:8px 14px;border:1px solid var(--nx-line);border-radius:999px;color:#b4afcb;background:#ffffff0a;cursor:pointer;font:800 13px Inter,system-ui,sans-serif}.nx-tab[aria-selected="true"]{color:#080917;border-color:transparent;background:linear-gradient(135deg,var(--nx-cyan),#d8c8ff)}.nx-body{min-height:0;overflow:auto;padding:15px max(17px,var(--safe-right)) max(27px,calc(var(--safe-bottom) + 15px)) max(17px,var(--safe-left))}.nx-inner{width:min(1230px,100%);margin:auto}.nx-view{display:none}.nx-view[data-active="true"]{display:block;animation:nx-in .34s ease both}@keyframes nx-in{from{opacity:0;transform:translateY(8px)}}.nx-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:2px 0 15px}.nx-heading h2{margin:0;font-size:clamp(1.7rem,5vw,3.35rem);line-height:1;letter-spacing:-.045em}.nx-heading p{max-width:560px;margin:0;color:#ada8c5}.nx-card{border:1px solid var(--nx-line);border-radius:24px;background:linear-gradient(145deg,#ffffff12,#ffffff07);box-shadow:0 23px 58px #00000036;backdrop-filter:blur(17px)}.nx-kicker{color:var(--nx-cyan);font-size:.71rem;font-weight:900;letter-spacing:.14em;text-transform:uppercase}.nx-action{min-height:42px;padding:9px 13px;border:1px solid var(--nx-line);border-radius:14px;color:#fff;background:#ffffff0b;cursor:pointer;font-weight:800}.nx-action--primary{color:#090a18;border-color:transparent;background:linear-gradient(135deg,var(--nx-cyan),#d6c8ff)}.nx-actions{display:flex;flex-wrap:wrap;gap:8px}.nx-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}body.nx-lock{overflow:hidden!important}
.nx-creature-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(290px,.82fr);gap:14px}.nx-creatures{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.nx-creature{position:relative;min-height:155px;overflow:hidden;padding:15px;border:1px solid #ffffff14;border-radius:21px;color:#fff;background:radial-gradient(circle at 90% 15%,var(--creature-glow),transparent 48%),#ffffff08;text-align:left;cursor:pointer;transition:.2s}.nx-creature:hover{transform:translateY(-2px);border-color:#ffffff58}.nx-creature[aria-current="true"]{outline:3px solid #fff;outline-offset:3px}.nx-creature::after{content:attr(data-glyph);position:absolute;right:9px;bottom:-23px;color:#ffffff15;font-size:84px;font-weight:900}.nx-creature small{display:block;margin-bottom:5px;color:#aaa5c1;font-size:.67rem;font-weight:850;letter-spacing:.1em}.nx-creature b{display:block;font-size:1.08rem}.nx-creature span{display:block;max-width:80%;margin-top:7px;color:#bbb5d1;font-size:.78rem}.nx-creature-detail{position:sticky;top:0;align-self:start;padding:22px;overflow:hidden}.nx-creature-sigil{display:grid;place-items:center;width:126px;height:126px;margin:0 auto 17px;border:1px solid #ffffff35;border-radius:50%;background:radial-gradient(circle,#ffffff22,transparent 66%),var(--creature-glow);box-shadow:0 0 55px var(--creature-glow);font-size:3.3rem}.nx-creature-detail h3{margin:4px 0;font-size:1.65rem}.nx-creature-detail p{color:#b5b0c9}.nx-rule-trial{min-height:135px;margin-top:15px;padding:14px;border:1px solid #ffffff12;border-radius:17px;background:#05071388}.nx-rule-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.nx-rule-token{min-width:48px;min-height:48px;border:1px solid #ffffff20;border-radius:14px;color:#fff;background:#ffffff0c;cursor:pointer;font-size:1.15rem!important}.nx-rule-token[data-ready="true"]{box-shadow:0 0 22px var(--nx-cyan);border-color:var(--nx-cyan)}
.nx-codex-shell{padding:19px}.nx-search{display:grid;grid-template-columns:1fr auto;gap:8px;margin-bottom:14px}.nx-search input{min-height:48px;padding:10px 14px;border:1px solid var(--nx-line);border-radius:15px;color:#fff;background:#05071399;font:inherit}.nx-codex-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nx-entry{padding:16px;border:1px solid #ffffff11;border-radius:19px;background:#ffffff08}.nx-entry h3{margin:0 0 6px;font-size:1.05rem}.nx-entry p{margin:0;color:#b4aec8;font-size:.88rem}.nx-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.nx-tags span{padding:4px 7px;border-radius:999px;color:#cfc8e4;background:#ffffff0b;font-size:.69rem;font-weight:800}.nx-empty{grid-column:1/-1;padding:35px;text-align:center;color:#aaa5be}
.nx-system-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(350px,1.2fr);gap:14px}.nx-reactor{position:relative;display:grid;place-items:center;min-height:510px;overflow:hidden}.nx-reactor-orbit{position:absolute;width:min(73%,420px);aspect-ratio:1;border:1px solid #ffffff25;border-radius:50%;animation:nx-orbit 12s linear infinite}.nx-reactor-orbit::before,.nx-reactor-orbit::after{content:"";position:absolute;border:1px solid #57ddff55;border-radius:50%}.nx-reactor-orbit::before{inset:17%;transform:rotate(45deg)}.nx-reactor-orbit::after{inset:-14% 30%;border-color:#ff6eb955}@keyframes nx-orbit{to{transform:rotate(360deg)}}.nx-reactor-core{position:relative;z-index:2;display:grid;place-items:center;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,#fff 0 4%,#57ddff 7% 12%,#6939a7 31%,#090b25 68%);box-shadow:0 0 calc(35px + var(--reactivity,0)*.5px) #8258e088;transition:.35s}.nx-reactor-core b{font-size:2.2rem}.nx-reactor-label{position:absolute;bottom:22px;text-align:center}.nx-reactor-label b{display:block;font-size:1.2rem}.nx-reactor-label span{color:#aaa5c1;font-size:.79rem}.nx-diagnostics{padding:21px}.nx-meters{display:grid;gap:13px;margin:16px 0}.nx-meter-head{display:flex;justify-content:space-between;gap:10px;color:#bbb5cd;font-size:.78rem}.nx-meter-head b{color:#fff}.nx-meter-track{height:10px;overflow:hidden;margin-top:5px;border-radius:999px;background:#ffffff0b}.nx-meter-track i{display:block;width:var(--meter);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--nx-violet),var(--nx-cyan),var(--nx-gold));transition:width .45s}.nx-history{display:grid;gap:6px;margin-top:14px}.nx-history li{padding:8px 10px;border-radius:12px;color:#b9b3cc;background:#ffffff08;font-size:.78rem}
.nx-thresholds{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.nx-threshold{position:relative;min-height:220px;overflow:hidden;padding:17px;border:1px solid #ffffff15;border-radius:22px;color:#fff;background:radial-gradient(circle at 50% 18%,var(--threshold-color),transparent 42%),#ffffff07;cursor:pointer;text-align:left}.nx-threshold::after{content:attr(data-symbol);position:absolute;right:5px;bottom:-28px;color:#ffffff17;font-size:95px;font-weight:900}.nx-threshold small{display:block;color:#b3adc4;font-weight:850;letter-spacing:.1em}.nx-threshold b{display:block;margin:13px 0 7px;font-size:1.08rem}.nx-threshold span{display:block;color:#bcb6cd;font-size:.78rem}.nx-threshold[data-cleared="true"]{border-color:#70ffc277;box-shadow:inset 0 0 0 1px #70ffc244}.nx-threshold[data-cleared="true"] small{color:#70ffc2}
.nx-keeper-layout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(290px,.8fr);gap:14px}.nx-keeper-stage{position:relative;display:grid;place-items:center;min-height:525px;overflow:hidden;background:radial-gradient(circle,#6a3ac04a,transparent 36%),#04061299}.nx-keeper-ring{position:absolute;width:min(66%,410px);aspect-ratio:1;border:2px solid #ffffff20;border-radius:50%;animation:nx-orbit 9s linear infinite}.nx-keeper-ring::before,.nx-keeper-ring::after{content:"";position:absolute;border:1px solid #57ddff66;border-radius:50%}.nx-keeper-ring::before{inset:14%;transform:rotate(63deg)}.nx-keeper-ring::after{inset:-17% 31%;border-color:#ff6eb966}.nx-keeper-eye{position:relative;z-index:2;display:grid;place-items:center;width:190px;height:190px;border-radius:50%;background:radial-gradient(ellipse,#050612 0 10%,#fff 12% 15%,#ff6eb9 17% 23%,#502781 36%,#07091f 68%);box-shadow:0 0 75px #b075ff77;font-size:2.7rem}.nx-keeper-stage[data-phase="2"]{filter:hue-rotate(70deg)}.nx-keeper-stage[data-phase="3"]{animation:nx-jolt .4s steps(2) infinite}@keyframes nx-jolt{50%{transform:translateX(2px)}}.nx-keeper-caption{position:absolute;bottom:19px;text-align:center}.nx-keeper-caption b{display:block;font-size:1.2rem}.nx-keeper-panel{padding:21px}.nx-phase-list{display:grid;gap:8px;margin:15px 0}.nx-phase{padding:11px;border:1px solid #ffffff11;border-radius:15px;background:#ffffff07}.nx-phase[data-active="true"]{border-color:var(--nx-gold);background:#ffd45d18}.nx-phase b{display:block}.nx-phase span{color:#b7b1c8;font-size:.78rem}
.nx-cinema-extra{position:fixed;inset:0;z-index:450;display:grid;place-items:center;pointer-events:none;color:#fff;background:radial-gradient(circle,#733fb344,rgba(3,4,14,.96));animation:nx-cinema 1.45s ease forwards}.nx-cinema-extra div{text-align:center}.nx-cinema-extra b{display:block;font-size:clamp(4rem,14vw,9rem);text-shadow:0 0 70px var(--cinema-color)}.nx-cinema-extra span{display:block;font-size:clamp(1.1rem,4vw,2.4rem);font-weight:900;letter-spacing:.12em}@keyframes nx-cinema{0%{opacity:0;transform:scale(1.15)}25%,75%{opacity:1;transform:none}100%{opacity:0;transform:scale(.94)}}
@media(max-width:930px){.nx-heading{display:block}.nx-heading p{margin-top:8px}.nx-creature-layout,.nx-system-layout,.nx-keeper-layout{grid-template-columns:1fr}.nx-creature-detail{position:static}.nx-thresholds{grid-template-columns:repeat(2,1fr)}.nx-reactor,.nx-keeper-stage{min-height:420px}}
@media(max-width:620px){.nx-launcher{right:8px;bottom:max(76px,calc(var(--safe-bottom) + 70px));padding:8px}.nx-launcher span{display:none}.nx-header{padding-inline:11px}.nx-tabs{padding-inline:10px}.nx-body{padding-inline:9px}.nx-creatures,.nx-codex-results{grid-template-columns:1fr}.nx-thresholds{grid-template-columns:1fr}.nx-creature{min-height:135px}.nx-search{grid-template-columns:1fr}.nx-reactor,.nx-keeper-stage{min-height:66dvh}.hud{position:fixed!important;left:max(6px,var(--safe-left));right:max(6px,var(--safe-right));bottom:max(6px,var(--safe-bottom));z-index:205!important;display:flex!important;gap:4px!important;overflow-x:auto;padding:6px!important;border:1px solid #ffffff22;border-radius:15px;background:#08091dde;backdrop-filter:blur(16px);box-shadow:0 9px 28px #0008}.hud div,.hud div:nth-child(2),.hud div:nth-child(3),.hud div:nth-child(4),.hud div:nth-child(5){display:block!important;flex:1 0 61px;min-width:61px!important;text-align:center!important}.hud span{font-size:7px!important}.hud b{font-size:12px!important}.sensory-controls{margin-bottom:58px}.screen{padding-bottom:76px}}
@media(prefers-reduced-motion:reduce){.nx-console *,.nx-console *::before,.nx-console *::after{animation-duration:.01ms!important;animation-iteration-count:1!important}.nx-launcher:hover,.nx-creature:hover{transform:none}}

/* Il Codex non deve coprire ECO/MAPPA né la barra HUD sui display stretti. */
.nx-tab,.nx-action{min-height:44px}
body:has(#screenSurface.active) .nx-launcher,
body:has(#screenMicro.active) .nx-launcher,
body:has(#screenBoss.active) .nx-launcher{bottom:max(112px,calc(var(--safe-bottom) + 106px))}

@media(max-width:620px){
  body:has(#screenIntro.active) .nx-launcher{display:none}
  body:has(#screenIntro.active) #screenIntro{scroll-padding-bottom:calc(88px + var(--safe-bottom))}
  #screenSurface .mission-panel,
  #screenMicro .micro-status-panel,
  #screenBoss .micro-status-panel{bottom:calc(72px + var(--safe-bottom))}
  #screenSurface .round-btn,
  #screenMicro .round-btn,
  #screenBoss .round-btn{bottom:calc(72px + var(--safe-bottom))}
  body:has(#screenSurface.active) .nx-launcher,
  body:has(#screenMicro.active) .nx-launcher,
  body:has(#screenBoss.active) .nx-launcher{bottom:max(166px,calc(var(--safe-bottom) + 160px))}
}
