/* Nebula Dominion — pagine ospiti, direzione B "Plancia olografica". Prefisso gx-, autonomo (senza app.css).
   URL relativi a questo file (fonts/…, guest/…). Telefono < 700 · tablet 700–1199 · desktop ≥ 1200. Contratto: MARKUP.md */

/* == font == */
@font-face{font-family:"Tektur";font-weight:500;font-display:swap;src:url("fonts/tektur-500-latin.woff") format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Tektur";font-weight:500;font-display:swap;src:url("fonts/tektur-500-latin-ext.woff") format("woff");unicode-range:U+0100-02AF,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Tektur";font-weight:500;font-display:swap;src:url("fonts/tektur-500-cyrillic.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-weight:400;font-display:swap;src:url("fonts/inter-400.woff") format("woff")}
@font-face{font-family:"Inter";font-weight:600;font-display:swap;src:url("fonts/inter-600.woff") format("woff")}
@font-face{font-family:"Inter";font-weight:400;font-display:swap;src:url("fonts/inter-cyr-400.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-weight:600;font-display:swap;src:url("fonts/inter-cyr-600.woff") format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}

/* == gettoni == */
.gx{
  --gx-hull:#0A1629;--gx-panel:#14264A;--gx-line:#3B5F96;--gx-line-2:#2B4A7A;
  --gx-amber:#FFB224;--gx-ember:#FF6A2B;--gx-ice:#E8F1FB;--gx-sky:#8FBAFF;--gx-teal:#36D6BF;--gx-ink:#0B1426;
  --gx-ice-86:rgb(232 241 251/.86);--gx-ice-72:rgb(232 241 251/.74);--gx-ice-56:rgb(232 241 251/.6);
  --gx-hair:rgb(120 160 225/.3);
  --gx-display:"Tektur","Inter",system-ui,sans-serif;
  --gx-text:"Inter",system-ui,sans-serif;
  --gx-pad:clamp(16px,4.444vw,64px);
  --gx-max:1600px;
}

/* == base == */
:root:has(>body.gx){background:#10234A;color-scheme:dark}
.gx{position:relative;isolation:isolate;margin:0;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;color:var(--gx-ice);font:400 16px/1.5 var(--gx-text);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.gx *,.gx *::before,.gx *::after{box-sizing:border-box}
.gx::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,rgb(255 255 255/.018) 0 1px,transparent 1px 3px),url("guest/sky.svg") 50% 0/cover no-repeat,linear-gradient(180deg,#27508F,#1B3C70 50%,#10234A)}
:where(.gx) a,:where(.gx) a:hover{color:inherit;text-decoration:none}
:where(.gx) :focus-visible{outline:2px solid var(--gx-amber);outline-offset:3px}
.gx-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.gx-hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}

/* == angoli smussati: ::after riempimento --gx-ff, ::before filetto --gx-fb, smusso --c, spessore --t == */
:is(.gx-lang,.gx-btn,.gx-pillars,.gx-control,.gx-tag,.gx-term,.gx-notice,.gx-card){position:relative;isolation:isolate;--c:8px;--t:1px}
:is(.gx-lang,.gx-btn,.gx-pillars,.gx-control,.gx-tag,.gx-term,.gx-notice,.gx-card)::after,
:is(.gx-lang,.gx-btn,.gx-pillars,.gx-control,.gx-tag,.gx-term,.gx-notice,.gx-card)::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;background:var(--gx-ff,transparent);clip-path:polygon(var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c))}
:is(.gx-lang,.gx-btn,.gx-pillars,.gx-control,.gx-tag,.gx-term,.gx-notice,.gx-card)::before{z-index:-1;background:var(--gx-fb,var(--gx-line));clip-path:polygon(evenodd,var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c),var(--c) 0,calc(var(--c) + var(--t)*.414) var(--t),calc(100% - var(--t)) var(--t),calc(100% - var(--t)) calc(100% - var(--c) - var(--t)*.414),calc(100% - var(--c) - var(--t)*.414) calc(100% - var(--t)),var(--t) calc(100% - var(--t)),var(--t) calc(var(--c) + var(--t)*.414),calc(var(--c) + var(--t)*.414) var(--t))}

/* == pulsanti == */
.gx-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;margin:0;padding:8px 22px;border:0;background:none;font:500 15px/1.15 var(--gx-display);letter-spacing:.01em;color:var(--gx-ice);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;--c:12px;transition:filter .15s}
.gx-btn svg{width:1.18em;height:1.18em;flex:none}
.gx-btn:focus-visible{outline:0}
.gx-primary{color:var(--gx-ink);--gx-ff:linear-gradient(180deg,#FFCB5C,#FFB224 52%,#FF9A1A);--gx-fb:transparent;filter:drop-shadow(0 8px 20px rgb(255 150 30/.34))}
.gx-primary::after{box-shadow:inset 0 1px 0 rgb(255 244 214/.85),inset 0 -3px 0 rgb(190 84 0/.3)}
.gx-primary:hover{filter:drop-shadow(0 8px 20px rgb(255 150 30/.42)) brightness(1.07)}
.gx-primary:active{filter:drop-shadow(0 4px 12px rgb(255 150 30/.3)) brightness(.97)}
.gx-primary:focus-visible::before{inset:-5px;--t:2px;--c:15px;background:var(--gx-amber)}
.gx-lg{min-height:64px;padding:10px 34px 10px 28px;font-size:22px;--c:14px}
.gx-lg:focus-visible::before{--c:17px}
.gx-ghost{--c:8px;--gx-fb:rgb(232 241 251/.42);--gx-ff:rgb(10 22 44/.5)}
.gx-ghost:hover{--gx-fb:var(--gx-amber)}
.gx-ghost:focus-visible{--t:2px;--gx-fb:var(--gx-amber);filter:drop-shadow(0 0 8px rgb(255 178 36/.45))}
.gx-block{display:flex;width:100%}
.gx-btn:disabled,.gx-btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;filter:none}

/* == barra in alto (telefono: lingua su riga propria) == */
.gx-top{position:relative;z-index:4;width:100%;max-width:var(--gx-max);margin:0 auto;padding:12px var(--gx-pad) 0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 12px}
.gx-brand{display:inline-flex;align-items:center;gap:10px;min-height:44px;justify-self:start;font:500 17px/1.1 var(--gx-display);letter-spacing:.012em;color:var(--gx-ice)}
.gx-brand svg{width:32px;height:32px;flex:none;filter:drop-shadow(0 0 10px rgb(255 178 36/.35))}
.gx-top-r{display:contents}
.gx-top-r>.gx-btn{grid-column:2;grid-row:1;padding:8px 16px;font-size:14px}
.gx-lang{grid-column:1/-1;justify-self:start;width:100%;max-width:420px;display:flex;align-items:center;height:44px;padding:0 3px 0 10px;--gx-fb:rgb(120 160 225/.5);--gx-ff:rgb(10 22 44/.62)}
.gx-lang>svg{width:18px;height:18px;flex:none;margin-right:4px;color:var(--gx-sky)}
.gx-lang ul{display:flex;flex:1;margin:0;padding:0;list-style:none}
.gx-lang li{flex:1 1 0}
.gx-lang a{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;min-width:44px;height:44px;font:500 13px/1 var(--gx-display);letter-spacing:.02em;color:var(--gx-ice-72)}
.gx-lang a::before{content:"";position:absolute;z-index:-1;inset:8px max(4px,calc(50% - 17px))}
.gx-lang a::before,.gx .gx-control .pw-toggle::before{clip-path:polygon(5px 0,100% 0,100% calc(100% - 5px),calc(100% - 5px) 100%,0 100%,0 5px)}
.gx-lang a:hover{color:var(--gx-ice)}
.gx-lang a:hover::before{background:rgb(143 186 255/.14)}
.gx-lang a[aria-current]{color:var(--gx-ink)}
.gx-lang a[aria-current]::before{background:var(--gx-amber)}
.gx-lang a:focus-visible{outline-offset:-3px}

/* == palco (telefono: una colonna) == */
.gx-stage{position:relative;z-index:1;flex:1 0 auto;width:100%;max-width:var(--gx-max);margin:0 auto;padding:26px var(--gx-pad) 36px;display:grid;grid-template-columns:minmax(0,1fr);align-content:start;overflow-x:clip;container-type:inline-size}
.gx-hero,.gx-planet{display:contents}
/* titolo: misura del mockup in italiano, altre lingue -12,5% (--gx-tk) */
.gx-title{margin:0;max-width:9.6em;font:500 calc(var(--gx-tk,1)*clamp(34px,10.2vw,48px))/1.04 var(--gx-display);letter-spacing:-.012em;color:var(--gx-ice);text-shadow:0 2px 26px rgb(8 17 36/.55);text-wrap:balance;overflow-wrap:break-word}
.gx-title:not(:lang(it)){--gx-tk:.875}
.gx-lede{margin:22px 0 0;max-width:34em;font:400 16px/1.62 var(--gx-text);color:var(--gx-ice-86);text-wrap:pretty}
.gx-cta{margin-top:22px}
.gx-micro{display:flex;gap:10px;align-items:flex-start;max-width:410px;margin:14px 0 0;font:400 14px/1.45 var(--gx-text);color:var(--gx-ice-72);text-wrap:balance;text-shadow:0 1px 10px rgb(8 17 36/.7)}
.gx-micro::before{content:"";flex:none;width:8px;height:8px;margin-top:6px;background:var(--gx-amber);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
/* pilastri: a capo, i filetti sx/alto in eccesso li taglia overflow */
.gx-pillars{justify-self:start;display:flex;flex-wrap:wrap;margin:24px 0 0;padding:1px 0 0;list-style:none;overflow:hidden;--gx-fb:rgb(120 160 225/.42);--gx-ff:rgb(10 22 44/.52)}
.gx-pillars li{flex:1 0 auto;display:flex;align-items:center;justify-content:center;gap:8px;min-height:45px;margin:-1px 0 0 -1px;padding:0 clamp(10px,1.18vw,17px);border:solid var(--gx-hair);border-width:1px 0 0 1px;font:600 clamp(13px,.97vw,14px)/1.15 var(--gx-text);color:var(--gx-ice-86)}
.gx-pillars svg{width:19px;height:19px;flex:none;color:var(--gx-amber)}

/* == pianeta: 3 strati (davanti, terra, dietro) + linee guida in ::before dove ci sono i cartellini == */
.gx-planet-art{position:absolute;z-index:-1;pointer-events:none;top:-130px;left:calc(100% - 30px - 74vw);width:148vw;opacity:.8;aspect-ratio:1000/910;background:url("guest/planet.svg") 0 0 no-repeat,url("guest/land.webp") no-repeat,url("guest/planet-back.svg") 0 0 no-repeat}
.gx-orb,.gx-ping,.gx-ship{position:absolute;pointer-events:none}
.gx-orb>i,.gx-orb>i::after{position:absolute;animation-timing-function:linear;animation-iteration-count:infinite}
/* braccio alto 0 (non allarga la pagina), puntino in cima */
.gx-orb>i{left:50%;top:50%;width:50%;height:0;transform-origin:0 0}
.gx-orb>i::after{content:"";left:100%;top:0;aspect-ratio:1;border-radius:50%}
.gx-orb-1>i::after{background:#F2F8FF;box-shadow:0 0 6px 3px rgb(191 217 255/.32)}
.gx-orb-2>i::after{opacity:.55;background:radial-gradient(circle at 32% 28%,#FFF4D2,#FFC24A 35%,#B8651E 72%,#2A2A58);box-shadow:0 0 0 1px rgb(255 227 160/.45),0 0 9px 4px rgb(255 178 36/.18)}
.gx-ping{display:none;width:1.1%;aspect-ratio:1;margin:-.55% 0 0 -.55%;border:1.2px solid var(--ac);border-radius:50%;opacity:0;animation:gx-ping 2.8s ease-out infinite}
.gx-ping-eco{--ac:var(--gx-amber)}
.gx-ping-research{--ac:var(--gx-sky);animation-delay:-.7s}
.gx-ping-fleet{--ac:var(--gx-ember);animation-delay:-1.4s}
.gx-ping-coords{--ac:var(--gx-ice);animation-delay:-2.1s}
@keyframes gx-ping{0%{transform:scale(1);opacity:.75}75%,100%{transform:scale(3);opacity:0}}
.gx-ship{left:0;top:0;filter:drop-shadow(0 0 3px rgb(255 140 80/.8));background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-12 -12 24 24'%3E%3Cpath d='M9 0L-6.5-6-2.5 0-6.5 6Z' fill='%23FFC9A8' stroke='%23fff' stroke-opacity='.85' stroke-width='.9'/%3E%3C/svg%3E") 50% 50%/100% 100% no-repeat}

/* == dati dell'universo (telefono: etichette) == */
.gx-tags{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0}
.gx-tag{--ac:var(--gx-amber);--c:7px;display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 12px 6px 10px;--gx-fb:color-mix(in srgb,var(--ac) 60%,transparent);--gx-ff:linear-gradient(125deg,color-mix(in srgb,var(--ac) 18%,transparent),rgb(8 18 38/.86) 60%)}
.gx-tag dt{display:flex;align-items:center;gap:7px;font:400 13px/1.2 var(--gx-text);color:var(--gx-ice)}
.gx-tag dt svg{width:18px;height:18px;flex:none;color:var(--ac)}
.gx-tag dd{margin:0;font:500 16px/1 var(--gx-display);color:var(--ac);letter-spacing:.01em}
.gx-tag-research{--ac:var(--gx-sky)}
.gx-tag-fleet{--ac:var(--gx-ember)}
.gx-tag-coords{--ac:var(--gx-ice)}
.gx-coord{letter-spacing:.02em;font-variant-numeric:tabular-nums}
.gx-coord::before{content:"[";color:var(--gx-amber)}
.gx-coord::after{content:"]";color:var(--gx-amber)}
.gx-tag-cap{display:none}

/* == terminale == */
.gx-term{margin-top:30px;align-self:start;--c:24px;--gx-fb:linear-gradient(135deg,rgb(255 196 84/.95),rgb(110 152 222/.55) 26%,rgb(96 138 210/.4) 66%,rgb(255 178 36/.85));--gx-ff:linear-gradient(180deg,rgb(22 42 82/.9),rgb(11 23 46/.93));filter:drop-shadow(0 22px 40px rgb(2 6 16/.45))}
.gx-term-bar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 14px;min-height:46px;padding:11px 16px 12px 20px;border-bottom:1px solid var(--gx-hair)}
.gx-term-bar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:repeating-linear-gradient(90deg,rgb(143 186 255/.55) 0 1px,transparent 1px 8px);opacity:.55}
.gx-term-bar::before,.gx-term-body::after{content:"";position:absolute;width:13px;height:13px;border:1.5px solid var(--gx-amber);pointer-events:none}
.gx-term-bar::before{right:-5px;top:-5px;border-left:0;border-bottom:0}
.gx-term-body::after{left:-5px;bottom:-5px;border-right:0;border-top:0}
.gx-term-title,.gx-term-uni{display:flex;align-items:center;gap:10px;margin:0;font:500 13px/1.25 var(--gx-display);color:var(--gx-ice-86)}
.gx-term-uni{gap:8px;font-size:12px;color:var(--gx-ice-72)}
.gx-led{display:inline-block;flex:none;width:8px;height:8px;background:var(--gx-teal);clip-path:polygon(2px 0,100% 0,100% calc(100% - 2px),calc(100% - 2px) 100%,0 100%,0 2px)}
.gx-chip{display:inline-flex;align-items:center;height:22px;padding:0 9px 0 8px;font:500 12px/1 var(--gx-display);color:var(--gx-teal);background:rgb(54 214 191/.12);white-space:nowrap;clip-path:polygon(6px 0,100% 0,100% 16px,calc(100% - 6px) 100%,0 100%,0 6px)}
.gx-chip.is-maint{color:#FF8A57;background:rgb(255 106 43/.15)}
.gx-term-bar.is-maint .gx-led{background:var(--gx-ember)}
.gx-term-body{position:relative;padding:24px 20px}
.gx-h1{margin:0;font:500 28px/1.08 var(--gx-display);letter-spacing:-.005em;color:var(--gx-ice);overflow-wrap:break-word}
.gx-sub,.gx-text{margin:8px 0 0;font:400 15px/1.45 var(--gx-text);color:var(--gx-ice-86);text-wrap:pretty}
.gx-sub{text-wrap:balance}
.gx-text{margin-top:16px}
.gx-small{margin-top:0;font-size:14px}
.gx-notices{display:grid;gap:10px;margin-top:18px}
.gx-notices:empty{display:none}
.gx-notice{--c:8px;--ac:var(--gx-sky);display:flex;gap:10px;align-items:flex-start;padding:11px 14px 11px 12px;font:400 14px/1.45 var(--gx-text);color:var(--gx-ice);--gx-fb:color-mix(in srgb,var(--ac) 65%,transparent);--gx-ff:linear-gradient(90deg,color-mix(in srgb,var(--ac) 20%,transparent),color-mix(in srgb,var(--ac) 7%,transparent))}
.gx-notice>svg{width:18px;height:18px;flex:none;margin-top:1px;color:var(--ac)}
.gx-notice.error{--ac:var(--gx-ember)}
.gx-notice.ok{--ac:var(--gx-teal)}
.gx-notice a{color:var(--gx-amber);text-decoration:underline}

/* == campi == */
.gx-form{margin:0}
.gx-field{margin-top:20px}
.gx-label{display:block;margin:0 0 7px;font:400 14px/1.3 var(--gx-text);color:var(--gx-ice-86)}
.gx-label-row{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:0 12px;margin-bottom:7px}
.gx-label-row .gx-label{margin:0}
.gx .gx-label-link{display:inline-block;padding:14px 0;margin:-14px 0;font:400 13px/1.3 var(--gx-text);color:var(--gx-amber)}
.gx .gx-label-link:hover{text-decoration:underline}
.gx-control{--c:7px;display:flex;align-items:center;gap:10px;min-height:48px;padding:0 6px 0 14px;--gx-fb:rgb(110 150 215/.6);--gx-ff:#07122A;transition:filter .15s}
.gx-control>svg{width:18px;height:18px;flex:none;color:rgb(143 186 255/.75)}
.gx-control:focus-within{--t:2px;--gx-fb:var(--gx-amber);filter:drop-shadow(0 0 9px rgb(255 178 36/.35))}
.gx-control:focus-within>svg{color:var(--gx-amber)}
.gx-control:has([aria-invalid="true"]){--gx-fb:var(--gx-ember)}
.gx-control:has([aria-invalid="true"])>svg{color:var(--gx-ember)}
.gx-control:has(:disabled){opacity:.5;cursor:not-allowed}
.gx .gx-input{flex:1;min-width:0;width:100%;height:46px;margin:0;padding:0 4px 0 0;border:0;border-radius:0;outline:0;background:transparent;box-shadow:none;color:var(--gx-ice);font:400 16px/1.2 var(--gx-text);caret-color:var(--gx-amber)}
.gx .gx-input::placeholder{color:rgb(232 241 251/.55)}
.gx .gx-input:-webkit-autofill{-webkit-text-fill-color:var(--gx-ice);-webkit-box-shadow:0 0 0 40px #07122A inset;caret-color:var(--gx-amber)}
.gx-hint,.gx-err{margin:7px 0 0;font:400 13px/1.4 var(--gx-text);color:var(--gx-ice-72)}
.gx-err{display:flex;gap:7px;font-weight:600;color:#FF9A6B}
.gx-err svg{width:16px;height:16px;flex:none;margin-top:1px}
/* password: app.js crea div.pw-wrap > input + button.pw-toggle */
.gx .gx-control .pw-wrap{position:static;display:flex;align-items:center;flex:1;min-width:0;align-self:stretch}
.gx .gx-control .pw-toggle{position:relative;isolation:isolate;flex:none;top:auto;right:auto;transform:none;display:flex;align-items:center;justify-content:center;min-width:52px;height:44px;margin:0;padding:0 11px;border:0;border-radius:0;background:none;font:600 12px/1 var(--gx-text);color:var(--gx-ice-86);cursor:pointer;white-space:nowrap}
.gx .gx-control .pw-toggle::before{content:"";position:absolute;z-index:-1;inset:8px 0;background:rgb(143 186 255/.16)}
.gx .gx-control .pw-toggle:hover{color:var(--gx-ice)}
.gx .gx-control .pw-toggle:hover::before,.gx .gx-control .pw-toggle[aria-pressed="true"]::before{background:rgb(143 186 255/.28)}
.gx .gx-control .pw-toggle:focus-visible{outline-offset:-2px}
/* casella condizioni */
.gx-check{display:flex;gap:12px;align-items:flex-start;margin-top:17px;font:400 13px/1.5 var(--gx-text);color:var(--gx-ice-86)}
.gx .gx-check input{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;margin:2px 0 0;border:1px solid rgb(143 186 255/.7);border-radius:0;background:#07122A;cursor:pointer}
.gx .gx-check input:checked{border-color:var(--gx-amber);background:var(--gx-amber) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2.5 7.2l3 3 6-6.4' fill='none' stroke='%230B1426' stroke-width='2.2'/%3E%3C/svg%3E") 50% 50%/14px no-repeat}
.gx .gx-check input:focus-visible{outline:2px solid var(--gx-amber);outline-offset:3px}
.gx-check label{padding:12.5px 0;margin:-10px 0;cursor:pointer}
.gx-check a{color:var(--gx-amber);text-decoration:underline;text-underline-offset:2px}
.gx-term .gx-primary{min-height:54px;margin-top:24px;font-size:19px}
.gx-term .gx-ghost{min-height:50px;font-size:16px;--c:10px}
.gx-gap{margin-top:20px}
.gx-or{display:flex;align-items:center;gap:12px;margin:20px 0 14px;font:400 13px/1.3 var(--gx-text);color:var(--gx-ice-72);text-align:center}
.gx-or::before,.gx-or::after{content:"";flex:1 1 16px;min-width:16px;height:1px;background:linear-gradient(90deg,rgb(120 160 225/0),rgb(120 160 225/.55))}
.gx-or::after{transform:scaleX(-1)}

/* == barra di stato == */
.gx-status{position:relative;z-index:3;background:linear-gradient(180deg,rgb(18 38 72/.62),rgb(10 22 46/.86));border-top:1px solid rgb(110 150 215/.4)}
.gx-status::before{content:"";position:absolute;left:0;right:0;top:0;height:9px;pointer-events:none;background:repeating-linear-gradient(90deg,rgb(143 186 255/.6) 0 1px,transparent 1px 80px) 0 0/100% 9px no-repeat,repeating-linear-gradient(90deg,rgb(143 186 255/.32) 0 1px,transparent 1px 16px) 0 0/100% 5px no-repeat}
.gx-status-in{max-width:var(--gx-max);margin:0 auto;padding:24px var(--gx-pad) 14px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 32px}
.gx-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0;width:100%;margin:0}
.gx-stat{display:flex;flex-direction:column-reverse;justify-content:flex-end;min-width:0;padding:0 16px;border-left:1px solid rgb(120 160 225/.26)}
.gx-stat:nth-child(odd){padding-left:0;border-left:0}
.gx-stat dd{display:flex;align-items:center;gap:9px;margin:0;font:500 26px/1 var(--gx-display);color:var(--gx-amber);text-shadow:0 0 14px rgb(255 178 36/.28);font-variant-numeric:tabular-nums}
.gx-stats-note{width:100%;margin:0;font:400 12px/1.4 var(--gx-text);color:var(--gx-ice-72)}
.gx-stats-note a{color:inherit;text-decoration:underline}
.gx-stat dt{margin-top:6px;font:400 13px/1.25 var(--gx-text);color:var(--gx-ice-72)}
.gx-stat .gx-led{width:7px;height:7px}
.gx-legal{display:flex;flex-wrap:wrap;align-items:center;gap:0 24px;margin:0;padding:0;list-style:none;font:400 13px/1.3 var(--gx-text);color:var(--gx-ice-56)}
.gx-legal li,.gx-legal a{display:flex;align-items:center;min-height:44px}
.gx-legal a{color:var(--gx-ice-72)}
.gx-legal a:hover{color:var(--gx-ice);text-decoration:underline}

/* == telefono: ordine per il pollice == */
@media (max-width:699.98px){
  .gx-title{order:1}.gx-cta{order:2}.gx-term{order:3}.gx-pillars{order:4}.gx-tags{order:5}.gx-lede{order:6}
  .gx-lg{display:flex;width:100%;max-width:420px;padding-inline:16px;font-size:clamp(18px,5.6vw,22px)}
}
@media (max-width:379.98px){
  .gx-lang{justify-self:stretch;width:auto;max-width:none;margin-inline:-6px;padding-left:8px}
  .gx-lang>svg{width:16px;height:16px;margin-right:2px}
  .gx-brand{font-size:16px;gap:8px}
  .gx-brand svg{width:28px;height:28px}
  .gx-top-r>.gx-btn{padding:8px 12px}
}

/* == ≥ 700: barra su una riga, testo | terminale == */
@media (min-width:700px){
  .gx{--gx-col-term:clamp(320px,36vw,380px);--gx-gap:clamp(24px,3.5vw,48px)}
  .gx-top{display:flex;justify-content:space-between;min-height:72px;padding-top:0}
  .gx-brand{gap:12px;font-size:21px}
  .gx-brand svg{width:38px;height:38px}
  .gx-top-r{display:flex;align-items:center;gap:14px}
  .gx-top-r>.gx-btn{padding:8px 22px}
  .gx-lang{width:auto;max-width:none;padding:0 4px 0 12px}
  .gx-lang>svg{margin-right:2px}
  .gx-lang ul,.gx-lang li{flex:none}
  .gx-stage{grid-template-columns:minmax(0,1fr) var(--gx-col-term);column-gap:var(--gx-gap);padding-top:8px;padding-bottom:28px}
  .gx-hero{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;grid-column:1;grid-row:1;min-width:0}
  .gx-title{font-size:calc(var(--gx-tk,1)*clamp(40px,5.4vw,58px));max-width:6.6em}
  .gx-lede{margin-top:24px}
  .gx-cta{margin-top:32px}
  .gx-pillars{margin-top:32px}
  .gx-pillars li{padding:0 17px}
  .gx-term{grid-column:2;grid-row:1;margin-top:0;z-index:2}
  .gx-term-body{padding:26px 28px 28px}
  .gx-h1{font-size:31px}
  .gx-stats{display:flex;width:auto}
  .gx-stat,.gx-stat:nth-child(odd){padding:0 clamp(16px,2.1vw,30px);border-left:1px solid rgb(120 160 225/.26)}
  .gx-stat:first-child{padding-left:0;border-left:0}
  .gx-stat dd{font-size:27px}
}
/* == scena del pianeta: scatola 900x820 del mockup, 1cqw = 9px a 1440 == */
@media (min-width:700px){
  .gx-planet{display:block;position:relative;z-index:1;grid-column:1/-1;grid-row:2;justify-self:center;pointer-events:none;container-type:inline-size;aspect-ratio:900/820;--gx-art-w:min(100cqw,860px);width:var(--gx-art-w);margin:calc(var(--gx-art-w)*-.03) 0 calc(var(--gx-art-w)*-.07)}
  .gx-planet-art{z-index:0;opacity:1;aspect-ratio:auto}
  .gx-planet-art::before{content:"";position:absolute;inset:0;background:url("guest/leaders.svg") 0 0/100% 100% no-repeat}
  .gx-ping{display:block}
  .gx-tags{position:absolute;inset:0;z-index:1;display:block;margin:0}
  .gx-tag{position:absolute;--c:10px;display:grid;align-content:space-between;gap:.5cqw;min-width:19.11cqw;min-height:8.667cqw;max-width:22cqw;padding:max(9px,1.22cqw) max(11px,1.56cqw) max(8px,1.11cqw) max(14px,2.11cqw);--gx-fb:color-mix(in srgb,var(--ac) 80%,transparent);--gx-ff:linear-gradient(var(--ac),var(--ac)) 0 12px/3px calc(100% - 12px) no-repeat,repeating-linear-gradient(90deg,color-mix(in srgb,var(--ac) 55%,transparent) 0 1px,transparent 1px 5px) right 12px bottom 9px/44px 5px no-repeat,linear-gradient(125deg,color-mix(in srgb,var(--ac) 26%,rgb(8 18 38/.9)),rgb(8 18 38/.9) 58%);filter:drop-shadow(0 6px 14px rgb(3 8 20/.35))}
  .gx-tag dt{gap:max(6px,.9cqw);font-size:max(12px,1.6cqw);line-height:1.15}
  .gx-tag dt svg{width:max(16px,2.22cqw);height:max(16px,2.22cqw)}
  .gx-tag dd{font-size:max(24px,4cqw);text-shadow:0 0 18px color-mix(in srgb,var(--ac) 50%,transparent)}
  .gx-tag-coords{min-width:26.22cqw;min-height:11.33cqw;max-width:28cqw;--gx-ff:linear-gradient(var(--ac),var(--ac)) 0 12px/3px calc(100% - 12px) no-repeat,linear-gradient(125deg,rgb(143 186 255/.14),rgb(8 18 38/.9) 58%)}
  .gx-tag-coords dd{display:grid;gap:max(4px,.5cqw);font-size:max(21px,3.2cqw);text-shadow:0 0 14px rgb(232 241 251/.25)}
  .gx-tag-cap{display:block;font:400 max(12px,1.39cqw)/1.25 var(--gx-text);color:var(--gx-ice-86);text-shadow:none;letter-spacing:0;text-wrap:balance}
}
/* tablet orizzontale, o verticale con modulo lungo (.gx-long): scena sotto al testo, nella colonna sinistra */
@media (min-width:700px) and (max-width:1199.98px) and (min-aspect-ratio:5/4){
  .gx-planet{grid-column:1;justify-self:start;--gx-art-w:min(calc((100cqw - var(--gx-col-term) - var(--gx-gap))*1.3),860px);margin:calc(var(--gx-art-w)*-.035 + 16px) 0 calc(var(--gx-art-w)*-.07) calc((100cqw - var(--gx-col-term) - var(--gx-gap) - var(--gx-art-w))/2)}
  .gx-term{grid-row:1/span 2}
}
@media (min-width:700px) and (max-width:1199.98px) and (max-aspect-ratio:5/4){
  .gx-long .gx-planet{grid-column:1;justify-self:start;--gx-art-w:min(calc((100cqw - var(--gx-col-term) - var(--gx-gap))*1.65),860px);margin:calc(var(--gx-art-w)*-.035 + 16px) 0 calc(var(--gx-art-w)*-.07) calc((100cqw - var(--gx-col-term) - var(--gx-gap) - var(--gx-art-w))/2)}
  .gx-long .gx-term{grid-row:1/span 2}
}

/* == ≥ 1200: tre zone; il pianeta segue colonna centrale e altezza == */
@media (min-width:1200px){
  .gx{--gx-col-text:clamp(330px,27.5vw,430px);--gx-col-term:clamp(350px,26.67vw,420px)}
  .gx-top{min-height:80px}
  .gx-stage{grid-template-columns:var(--gx-col-text) minmax(0,1fr) var(--gx-col-term);column-gap:0;padding-top:17px;padding-bottom:40px}
  .gx-hero{grid-column:1;grid-row:1;align-self:stretch}
  .gx-title{font-size:calc(var(--gx-tk,1)*clamp(48px,min(4.444vw,7.111vh),72px));max-width:6.8em}
  .gx-lede{margin-top:min(28px,3.1vh);max-width:25.2em}
  .gx-cta{margin:min(36px,4vh) 0 min(38px,4.2vh)}
  .gx-pillars{margin-top:auto}
  .gx-pillars li{padding:0 clamp(9px,3.125vw - 28px,17px)}
  .gx-planet{grid-column:2;grid-row:1;align-self:center;--gx-art-w:min(calc((100cqw - var(--gx-col-text) - var(--gx-col-term))*1.6917),calc((max(100svh,700px) - 213px)*1.31),1130px);margin:calc(var(--gx-art-w)*-.0456) 0 calc(var(--gx-art-w)*-.1022);left:calc(var(--gx-art-w)*-.0044)}
  .gx-term{grid-column:3;margin-top:11px}
  .gx-status-in{min-height:75px;padding-top:6px;padding-bottom:0}
}
@media (min-width:1200px) and (max-height:820px){
  .gx-term-body{padding-block:20px 22px}
  .gx-h1{font-size:28px}
  .gx-field{margin-top:14px}
  .gx-term .gx-primary{margin-top:18px}
  .gx-or{margin:14px 0 10px}
}

/* == generato da tools/build_art.py: non modificare a mano == */
/*@art:begin*/
.gx-planet-art{background-size:100% 100%,47.8% 52.53%,100% 100%;background-position:0 0,50% 60.42%,0 0}
.gx-orb-1{left:17.9%;top:19.67%;width:64.19%;height:70.54%;transform:rotate(15deg) scaleY(0.4067)}
.gx-orb-1>i{transform:rotate(125deg);animation-name:gx-orb1-arm;animation-duration:125.7s}
@keyframes gx-orb1-arm{to{transform:rotate(485deg)}}
.gx-orb-1>i::after{width:2.62%;transform:translate(-50%,-50%) rotate(-125deg) scaleY(2.4586);animation-name:gx-orb1-dot,gx-orb1-vis;animation-duration:125.7s}
@keyframes gx-orb1-dot{to{transform:translate(-50%,-50%) rotate(-485deg) scaleY(2.4586)}}
@keyframes gx-orb1-vis{0%{opacity:1}3.6%{opacity:.38}6.7%{opacity:0}20.6%{opacity:0}27.1%{opacity:.55}28.1%{opacity:.53}28.7%{opacity:0}51.8%{opacity:0}52.5%{opacity:.53}52.6%{opacity:.55}65.3%{opacity:.55}65.4%{opacity:1}100%{opacity:1}}
.gx-orb-2{left:9.41%;top:10.34%;width:81.18%;height:89.21%;transform:rotate(30deg) scaleY(0.6428)}
.gx-orb-2>i{transform:rotate(250deg);animation-name:gx-orb2-arm;animation-duration:184.8s}
@keyframes gx-orb2-arm{to{transform:rotate(-110deg)}}
.gx-orb-2>i::after{width:4.04%;transform:translate(-50%,-50%) rotate(-250deg) scaleY(1.5557);animation-name:gx-orb2-dot,gx-orb2-vis;animation-duration:184.8s}
@keyframes gx-orb2-dot{to{transform:translate(-50%,-50%) rotate(110deg) scaleY(1.5557)}}
@keyframes gx-orb2-vis{0%{opacity:.55}9.3%{opacity:.55}13.8%{opacity:0}36.5%{opacity:0}41%{opacity:1}69.4%{opacity:1}69.6%{opacity:.55}100%{opacity:.55}}
.gx-ping-eco{left:42.92%;top:40.42%}
.gx-ping-research{left:60.38%;top:41.46%}
.gx-ping-fleet{left:56.83%;top:65.44%}
.gx-ping-coords{left:39.11%;top:58.39%}
.gx-ship{width:2.4%;height:2.64%;transform:translate(2317.84%,2431.19%) rotate(5.4deg)}
.gx-ship{animation:gx-ship 16s linear -9.71s infinite}
@keyframes gx-ship{0%{transform:translate(1945.43%,2346.13%) rotate(19.3deg);opacity:0}16.67%{transform:translate(2051.07%,2379.52%) rotate(15.8deg);opacity:1}33.33%{transform:translate(2156.52%,2405.8%) rotate(12.1deg)}50%{transform:translate(2257.32%,2423.96%) rotate(8.2deg)}66.67%{transform:translate(2349.64%,2433.72%) rotate(3.7deg)}83.33%{transform:translate(2430.75%,2435.54%) rotate(-1.4deg);opacity:1}100%{transform:translate(2499.38%,2430.52%) rotate(-7.2deg);opacity:0}}
@media (min-width:700px){
.gx-planet-art{left:-5.56%;top:-10.98%;width:111.11%;height:110.98%}
.gx-tag-eco{left:24.89%;bottom:81.22%}
.gx-tag-research{right:22.22%;bottom:84.15%}
.gx-tag-fleet{right:22.22%;top:79.27%}
.gx-tag-coords{left:24.89%;top:76.34%}
}
/*@art:end*/

/* == movimento ridotto, contrasto, colori forzati == */
@media (prefers-reduced-motion:reduce){
  .gx-orb>i,.gx-orb>i::after,.gx-ping,.gx-ship{animation:none!important}
  .gx *{transition:none!important}
}
@media (prefers-contrast:more){
  .gx{--gx-ice-86:var(--gx-ice);--gx-ice-72:rgb(232 241 251/.92);--gx-ice-56:rgb(232 241 251/.88)}
  .gx-control{--gx-fb:var(--gx-sky)}
  .gx-tag{--gx-ff:rgb(8 18 38/.96)}
  .gx-term{--gx-ff:#0B1730}
}
@media (forced-colors:active){
  .gx::before,.gx-planet-art,:is(.gx-lang,.gx-btn,.gx-pillars,.gx-control,.gx-tag,.gx-term,.gx-notice,.gx-card)::before,:is(.gx-lang,.gx-btn,.gx-pillars,.gx-control,.gx-tag,.gx-term,.gx-notice,.gx-card)::after{display:none}
  .gx-btn,.gx-control,.gx-term,.gx-lang,.gx-tag,.gx-notice,.gx-pillars,.gx-card{border:1px solid CanvasText}
  .gx-primary{border-width:2px}
  .gx-lang a[aria-current]{outline:2px solid Highlight;outline-offset:-4px}
  .gx-control:focus-within,.gx-btn:focus-visible{outline:2px solid Highlight;outline-offset:2px}
  .gx .gx-control .pw-toggle{border:1px solid ButtonText}
  .gx-title,.gx-tag dd,.gx-stat dd,.gx-micro{text-shadow:none}
  .gx-term,.gx-tag,.gx-btn,.gx-control,.gx-brand svg{filter:none!important}
}

/* == v54 (porting nel gioco): pagine di contenuto, home, errori, pagina offline. Solo il minimo, stesso stile == */
/* pagine di contenuto (guida, condizioni, statistiche, profili e rapporti pubblici, errori): i componenti di app.css prendono la tavolozza
   della plancia ridefinendo le sue variabili; i riquadri (.panel) diventano pannelli scuri e leggibili sul cielo */
.gx-doc::before,.gx-home::before{position:fixed}
.gx-main{position:relative;z-index:1;flex:1 0 auto;width:100%;max-width:1180px;margin:0 auto;padding:16px var(--gx-pad) 44px}
.gx-page{font:400 15px/1.55 var(--gx-text);
  --panel:rgb(12 26 54/.94);--panel-2:rgb(232 241 251/.07);--panel-3:rgb(232 241 251/.12);--ink:rgb(5 13 31/.72);--glass:rgb(12 26 54/.94);--glass-2:rgb(232 241 251/.06);
  --line:rgb(120 160 225/.34);--line-soft:rgb(120 160 225/.18);--text:var(--gx-ice);--muted:rgb(232 241 251/.76);--faint:rgb(232 241 251/.62);
  --accent:var(--gx-amber);--accent-2:var(--gx-amber);--gold:var(--gx-amber);--radius:6px;--radius-sm:5px;--font:var(--gx-text);--display:var(--gx-display)}
.gx-page :is(h1,h2){font-family:var(--gx-display);font-weight:500;letter-spacing:0}
.gx-page h1{font-size:clamp(26px,3vw,34px);line-height:1.12}
.gx-page .page-head:not(.has-banner) :is(h1,p){text-shadow:0 1px 14px rgb(8 17 36/.7)}
.gx-page .page-head.has-banner{border-radius:6px}
.gx-page :where(a:not(.btn,.gx-btn)){color:var(--gx-amber)}
.gx-page :where(a:not(.btn,.gx-btn)):hover{text-decoration:underline}
.gx .gx-page .btn{min-width:44px;min-height:44px;border-radius:6px}
.gx .gx-page .btn-primary{border-color:transparent;background:linear-gradient(180deg,#FFCB5C,#FFB224 52%,#FF9A1A);box-shadow:0 6px 16px rgb(255 150 30/.3);color:var(--gx-ink);font-family:var(--gx-display);font-weight:500}
.gx .gx-page .btn-primary:hover{border-color:transparent;background:linear-gradient(180deg,#FFD47A,#FFBD3D 52%,#FFA530)}
.gx-page .prose{margin-inline:auto;max-width:76ch}
.gx-page .prose p,.gx-page .prose li{color:var(--gx-ice-86)}
.gx-page .stats-grid .stat{border-radius:6px;background:var(--panel);border-color:var(--line)}
.gx-page .stats-grid .stat b{font-family:var(--gx-display);font-weight:500;color:var(--gx-amber)}
.gx-page>.gx-notices{margin:0 0 18px}
.gx-error{display:grid;justify-items:center;gap:16px;max-width:640px;margin:clamp(16px,6vh,64px) auto 0;padding:clamp(28px,5vw,48px) clamp(18px,4vw,40px);text-align:center}
.gx-error-code{margin:0;font:500 clamp(64px,12vw,120px)/1 var(--gx-display);color:var(--gx-amber);text-shadow:0 0 30px rgb(255 178 36/.35)}
.gx-error .gx-h1{max-width:26ch}
@media (min-width:700px){.gx-status-in>.gx-legal:only-child{margin-left:auto}}
/* home: dopo la scena, la presentazione del gioco */
.gx-more{position:relative;z-index:1;width:100%;max-width:1180px;margin:0 auto;padding:clamp(32px,5vw,56px) var(--gx-pad) clamp(36px,6vw,64px)}
.gx-more>*+*{margin-top:clamp(40px,6vw,64px)}
.gx-more-h{margin:0 0 20px;font:500 clamp(24px,3vw,32px)/1.15 var(--gx-display);color:var(--gx-ice);text-align:center;text-wrap:balance}
.gx-more-sub{max-width:62ch;margin:-6px auto 20px;font-size:15px;color:var(--gx-ice-86);text-align:center;text-wrap:pretty}
.gx-more-sub a{display:inline-block;padding:12px 0;color:var(--gx-amber)}
.gx-more-sub a:hover{text-decoration:underline}
.gx-card{--c:12px;--gx-fb:rgb(120 160 225/.38);--gx-ff:linear-gradient(180deg,rgb(18 36 72/.9),rgb(9 20 42/.93))}
.gx-steps,.gx-feats,.gx-perks{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.gx-steps{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
.gx-step{padding:20px 20px 18px}
.gx-step-n{position:absolute;top:12px;right:16px;font:500 34px/1 var(--gx-display);color:rgb(255 178 36/.4)}
.gx-step-i{display:block;width:56px;height:56px;margin-bottom:12px}
.gx-step h3,.gx-feat h3{margin:0 0 4px;font:500 18px/1.2 var(--gx-display);color:var(--gx-ice)}
.gx-step p,.gx-feat p{margin:0;font-size:15px;line-height:1.5;color:var(--gx-ice-86)}
.gx-shots{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:16px}
.gx-shot{margin:0}
.gx-shot a{display:block;padding:6px;--c:10px}
.gx-shot img{display:block;width:100%;height:auto;aspect-ratio:8/5;object-fit:cover}
.gx-shot figcaption{margin-top:8px;font-size:14px;color:var(--gx-ice-72);text-align:center}
.gx-feats{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.gx-feat{display:flex;gap:14px;align-items:flex-start;padding:16px 18px}
.gx-feat-i{flex:none;display:grid;place-items:center;width:44px;height:44px;color:var(--gx-amber);background:rgb(255 178 36/.1);border:1px solid rgb(255 178 36/.35)}
.gx-season{max-width:760px;margin-inline:auto}
.gx-season .gx-notice{--ac:var(--gx-amber);font-size:15px}
.gx-season b{font:500 17px/1.3 var(--gx-display)}
.gx-season p{margin:4px 0 0}
.gx-season .countdown{font-family:var(--gx-display);color:var(--gx-amber);font-variant-numeric:tabular-nums}
.gx-more-cta{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:22px}
.gx-perks{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:10px 28px;width:100%;max-width:960px}
.gx-perks li{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--gx-ice-86)}
.gx-perks li::before{content:"";flex:none;width:8px;height:8px;margin-top:7px;background:var(--gx-amber);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%)}
.gx-more-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 16px}
.gx-more-btns .gx-ghost{min-height:64px;padding-inline:26px;font-size:17px}
.gx-more-btns .gx-ghost svg{width:20px;height:20px}
@media (max-width:699.98px){.gx-more-btns{display:grid;width:100%;max-width:420px}.gx-more-btns .gx-btn{width:100%}}
/* pagina offline (public/assets/offline.html) */
.gx-offline{display:grid;gap:12px}
.gx-offline .gx-card{padding:12px 16px}
.gx-offline h2{margin:0 0 2px;font:500 13px/1.3 var(--gx-display);letter-spacing:.04em;text-transform:uppercase;color:var(--gx-sky)}
.gx-offline p{margin:0;color:var(--gx-ice-86)}
.gx-offline-act{display:flex;flex-wrap:wrap;align-items:center;gap:8px 20px;margin-top:8px}
.gx-offline-act a:not(.gx-btn){display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--gx-ice-72)}
.gx-offline-act a:not(.gx-btn):hover{color:var(--gx-ice);text-decoration:underline}
/* v57: iscrizione ferma per doppio account: campo di testo lungo (motivo) e contatti alternativi */
.gx-control-area{align-items:flex-start}
.gx .gx-input.gx-area{height:auto;min-height:120px;padding:12px 6px 12px 0;resize:vertical;font:400 16px/1.45 var(--gx-text)}
.gx-contact{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.gx-contact .gx-btn{min-height:50px;text-align:center;overflow-wrap:anywhere}
