/* ========== LANDING / ACCESSO ========== */
#scene{position:fixed;inset:0;z-index:0;pointer-events:none}
#scene canvas{display:block;width:100%;height:100%}
.veil{position:fixed;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(5,8,14,.06) 42%,rgba(5,8,14,.44) 67%,rgba(5,8,14,.67) 100%)}

.shell{position:relative;z-index:2;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto;padding:clamp(22px,3.7vw,58px) clamp(22px,5vw,84px);max-width:1800px;margin:auto}
.topbar,.foot{display:flex;justify-content:space-between;align-items:center;gap:16px}
.private-tag,.foot{font-size:10px;letter-spacing:.17em;color:#899bb0;text-transform:uppercase}
.private-tag{display:flex;align-items:center;gap:9px}

.hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,410px);align-items:center;gap:clamp(40px,8vw,150px);padding-block:40px}
.story{align-self:end;margin-bottom:clamp(30px,8vh,120px);max-width:510px;pointer-events:none}
.story h1{font:300 clamp(36px,4.4vw,76px)/1.08 var(--font-title);letter-spacing:-.035em;margin:18px 0 16px}
.story p{color:#b1becc;font-size:14px;line-height:1.8;letter-spacing:.015em}
.story-line{width:44px;height:1px;background:var(--accent);opacity:.75;margin-top:28px}

.login-card{width:100%;padding:clamp(27px,3.1vw,44px);border:1px solid rgba(201,232,249,.14);border-radius:var(--radius);background:linear-gradient(145deg,rgba(22,33,48,.70),rgba(8,14,23,.72));-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);box-shadow:0 24px 100px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.055);animation:enter 850ms cubic-bezier(.19,1,.22,1) both}
.login-card .eyebrow{font-size:9px}
.login-card h2{font:400 32px/1.2 var(--font-title);letter-spacing:-.045em;margin:13px 0 9px}
.intro{font-size:12px;color:#a6b6c6;line-height:1.7;margin:0 0 31px}
.field{margin-bottom:18px}
.field-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}
label{font-size:11px;color:#d8e4ef;font-weight:600}
.field-wrap{position:relative}
.field input{display:block;width:100%;height:52px;border-radius:12px;background:rgba(5,12,22,.65);border:1px solid rgba(172,196,220,.18);color:var(--text);padding:0 16px;outline:none;transition:border-color .2s,box-shadow .2s}
.field input::placeholder{color:#728297}
.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.12),0 0 18px rgba(var(--accent-rgb),.06)}
.field input[aria-invalid=true]{border-color:var(--danger)}
.password-input{padding-right:61px!important}
.show-password{position:absolute;right:8px;top:8px;height:36px;padding:0 9px;border:0;background:transparent;color:#a9bacb;border-radius:8px;font-size:11px}
.show-password:hover,.show-password:focus-visible{color:var(--text);outline:1px solid rgba(var(--accent-rgb),.45)}
.forgot{font-size:11px;color:#adc0d0;text-decoration:none}
.forgot:hover{text-decoration:underline;color:var(--accent)}
.submit{height:53px;width:100%;border:1px solid var(--accent);border-radius:12px;background:var(--accent);color:var(--accent-ink);font-weight:700;font-size:12px;letter-spacing:.095em;text-transform:uppercase;display:flex;align-items:center;justify-content:center;gap:12px;transition:transform .2s,filter .2s,box-shadow .2s}
.submit:hover{filter:brightness(1.08);box-shadow:0 0 30px rgba(var(--accent-rgb),.20)}
.submit:active{transform:scale(.985)}
.submit:focus-visible{outline:3px solid white;outline-offset:3px}
.submit:disabled{opacity:.7;cursor:wait}
.button-arrow{font-size:19px;font-weight:400;line-height:1}
.message{font-size:11px;line-height:1.7;min-height:21px;margin:11px 0 7px;color:#b4c3d2}
.message.error{color:#ff9da5}
.message.success{color:#a1e7c3}
.secure-note{display:flex;align-items:center;gap:8px;margin-top:18px;color:#8497a8;font-size:10px}
.secure-note svg{width:13px;height:13px;flex:none}
.foot{padding-top:20px}
.foot span:last-child{opacity:.8}
@keyframes enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}

@media(max-width:900px){.shell{padding:24px}.hero{gap:28px;grid-template-columns:1fr minmax(300px,390px)}.story h1{font-size:clamp(34px,5vw,52px)}}
@media(max-width:700px){
  .shell{padding:21px 20px;min-height:100svh}
  .private-tag{font-size:8px}
  .hero{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:28px;padding:42px 0 28px}
  .story{align-self:stretch;margin:0;max-width:380px}
  .story h1{font-size:clamp(34px,9vw,49px);margin:12px 0 8px}
  .story p{font-size:12px;margin:0}
  .story-line{display:none}
  .login-card{max-width:450px;margin:0 auto;padding:27px 23px}
  .login-card h2{font-size:28px}
  .intro{margin-bottom:21px}
  .veil{background:linear-gradient(180deg,rgba(5,8,14,.17),rgba(5,8,14,.47) 35%,rgba(5,8,14,.75) 100%)}
  .foot{font-size:8px;letter-spacing:.08em}
  .foot span:last-child{display:none}
}
@media(max-width:360px){.login-card{padding:23px 18px}.hero{padding-block:24px}}
@media(prefers-reduced-motion:reduce){#scene{display:none}body{background:radial-gradient(ellipse 62% 52% at 30% 42%,rgba(var(--accent-rgb),.13),transparent 75%),#05080e}}

/* Link secondario sotto i moduli (invito / ritorno all'accesso) */
.alt-link{margin:18px 0 0;font-size:11px;color:#8fa1b3;text-align:center}
.alt-link a{color:var(--accent);text-underline-offset:3px}
