/* 067: access to Night City. Styles restricted to login/registration. */
/* Registration is a light, translucent surface within the same city backdrop. */
#access-gate .access-gate-shell.is-registering {
  width:min(860px,calc(100vw - 36px));
  max-height:calc(100dvh - 36px);
  padding:26px clamp(20px,4vw,42px) 30px;
  border:1px solid rgba(116,180,245,.13);border-radius:24px;
  background:linear-gradient(145deg,rgba(6,21,42,.76),rgba(4,16,32,.72));
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 18px 80px rgba(2,10,23,.25);
  scrollbar-width:thin;scrollbar-color:rgba(121,178,238,.3) transparent;
}
#access-gate .access-gate-shell.is-registering::before,
#access-gate .access-gate-shell.is-registering::after,
#access-gate .access-gate-shell.is-registering .access-gate-kicker,
#access-gate .access-gate-shell.is-registering .access-gate-footer,
#access-gate .access-gate-shell.is-registering .access-gate-orbit { display:none; }
#access-gate .access-gate-shell.is-registering .access-gate-core {
  width:48px;height:48px;margin:0 auto 12px;
}
#access-gate .access-gate-shell.is-registering .access-gate-mark {
  width:48px;height:48px;transform:none;border:0;background:transparent;box-shadow:none;
}
#access-gate .access-gate-shell.is-registering .access-gate-mark b,
#access-gate .access-gate-shell.is-registering .access-gate-mark span { transform:none; }
#access-gate .access-gate-shell.is-registering .access-gate-mark.has-site-logo::after {
  inset:0;transform:none;border-radius:0;background-image:var(--nc-access-logo);background-size:contain;box-shadow:none;
}
#access-gate .access-gate-shell.is-registering .access-gate-title { gap:6px;margin-bottom:22px; }
#access-gate .access-gate-shell.is-registering .access-gate-title small { color:#ffe100;letter-spacing:.14em; }
#access-gate .access-gate-shell.is-registering .access-gate-title strong { color:#f1f7ff;text-shadow:none; }
#access-gate .access-gate-shell.is-registering .access-gate-title strong::before,
#access-gate .access-gate-shell.is-registering .access-gate-title strong::after { display:none; }
#access-gate .access-gate-shell.is-registering .access-gate-title span { font-size:13px;line-height:1.6;color:#a6bfdb;letter-spacing:0; }
#access-register-panel .register-progress { max-width:650px;margin:0 auto 26px;gap:8px; }
#access-register-panel .register-progress span {
  width:auto;height:36px;padding:0 12px;flex:1;border-radius:10px;
  border:1px solid rgba(116,180,245,.14);background:rgba(255,255,255,.025);
  color:#8eaaca;font-size:14px;white-space:nowrap;
}
#access-register-panel .register-progress i { width:12px;background:rgba(116,180,245,.2);flex:0 0 12px; }
#access-register-panel .register-progress span.is-active {
  color:#fff0a8;border-color:rgba(255,225,0,.5);background:rgba(49,151,255,.2);box-shadow:none;
}
#access-register-panel .register-progress span.is-complete { color:#d3e8ff;border-color:rgba(85,161,237,.4); }
#access-register-panel .register-step-code { font-size:12px;color:#89bbef;letter-spacing:.08em;margin-bottom:6px; }
#access-register-panel .register-step h2 { font-size:26px;letter-spacing:.02em;color:#f1f7ff;margin-bottom:16px; }
#access-register-panel .register-legal-terminal {
  max-height:240px;padding:20px;border:1px solid rgba(116,180,245,.12);border-radius:14px;
  background:rgba(3,13,27,.25);scrollbar-width:thin;scrollbar-color:rgba(121,178,238,.3) transparent;
}
#access-register-panel .register-legal-terminal strong { color:#ffe100;font-size:15px;letter-spacing:.035em; }
#access-register-panel .register-legal-terminal p { color:#bfd2e9;font-size:13px;line-height:1.75; }
#access-register-panel .register-check { color:#d3e4f7;font-size:13px;line-height:1.6;letter-spacing:0;gap:12px;margin:12px 0; }
#access-register-panel .register-check input { flex:0 0 auto;width:17px;height:17px;accent-color:#ffe100; }
#access-register-panel .register-field label { font-size:15px;letter-spacing:.015em;color:#d5e7ff; }
#access-register-panel .register-field input {
  height:48px;padding:0 15px;border:1px solid rgba(116,180,245,.2);border-radius:12px;
  background:rgba(4,18,36,.4);color:#eef6ff;font-size:18px;letter-spacing:0;
}
#access-register-panel .register-field input::placeholder { color:#8aa6c5; }
#access-register-panel .register-field input:focus { border-color:rgba(255,225,0,.72);background:rgba(7,26,49,.7);box-shadow:0 0 0 3px rgba(255,225,0,.13); }
#access-register-panel .register-field input:-webkit-autofill {
  -webkit-text-fill-color:#eef6ff;-webkit-box-shadow:0 0 0 1000px #071c35 inset;caret-color:#ffe100;
}
#access-register-panel .ncid-explanation { gap:6px;padding:16px;border-radius:12px;border:1px solid rgba(116,180,245,.12);background:rgba(49,151,255,.07); }
#access-register-panel .ncid-explanation span { color:#ffe100;font-size:13px;letter-spacing:.06em; }
#access-register-panel .ncid-explanation strong { color:#d5e7ff;font-size:16px; }
#access-register-panel .ncid-explanation small,
#access-register-panel .ncid-state { color:#a3bcda;font-size:14px;letter-spacing:0; }
#access-register-panel .ncid-state.is-available { color:#ade9d2; }
#access-register-panel .ncid-state.is-unavailable { color:#ffb4c3; }
#access-register-panel .register-navigation { gap:12px;margin-top:24px; }
#access-register-panel .register-navigation button {
  min-height:46px;padding:10px 20px;border:1px solid rgba(116,180,245,.24);border-radius:12px;
  background:rgba(255,255,255,.04);color:#dceaff;font-size:16px;font-weight:600;letter-spacing:.03em;
}
#access-register-panel .register-navigation .register-next,
#access-register-panel .register-navigation .register-create {
  border-color:rgba(255,225,0,.48) !important;color:#ffe100 !important;
  background:linear-gradient(115deg,rgba(35,115,203,.64),rgba(11,52,106,.6));
  animation:none;box-shadow:none;
}
#access-register-panel .register-navigation button:hover:not(:disabled) { border-color:#ffe100;color:#fff;box-shadow:0 4px 18px rgba(49,151,255,.13); }
#access-register-panel .register-navigation button:disabled { opacity:.4; }
#access-register-panel :is(button,input):focus-visible { outline:2px solid #ffe100;outline-offset:3px; }
#access-register-panel .attribute-header { gap:16px; }
#access-register-panel #attribute-calibration-state { color:#a3bcda;font-size:14px;letter-spacing:0; }
#access-register-panel .attribute-points-core { width:110px;height:90px;border:1px solid rgba(116,180,245,.18);border-radius:16px;background:rgba(49,151,255,.08);box-shadow:none; }
#access-register-panel .attribute-points-core :is(small,span) { font-size:11px;letter-spacing:.03em;color:#a6bfdb; }
#access-register-panel .attribute-points-core strong { font-size:32px;color:#ffe100;text-shadow:none; }
#access-register-panel .attribute-grid { gap:12px; }
#access-register-panel .attribute-module { padding:15px;border:1px solid rgba(116,180,245,.14);border-radius:16px;background:rgba(255,255,255,.035);grid-template-columns:40px minmax(0,1fr);gap:12px; }
#access-register-panel .attribute-module:hover { border-color:rgba(255,225,0,.4);box-shadow:none; }
#access-register-panel .attribute-code { border:0;border-radius:10px;background:rgba(49,151,255,.12);color:#ffe100;font-size:15px; }
#access-register-panel .attribute-copy strong { font-size:15px;letter-spacing:.025em;color:#e2eeff; }
#access-register-panel .attribute-copy small { font-size:12px;line-height:1.55;color:#a3bcda; }
#access-register-panel .attribute-control { grid-column:1/-1;justify-content:center;grid-template-columns:36px 50px 36px; }
#access-register-panel .attribute-control button { width:36px;height:36px;border:1px solid rgba(116,180,245,.24);border-radius:10px;background:rgba(255,255,255,.04);color:#ffe100;font-size:22px; }
#access-register-panel .attribute-control button:hover:not(:disabled) { border-color:#ffe100;color:#fff; }
#access-register-panel .attribute-control b { font-size:24px;color:#f1f7ff; }
#access-register-panel .attribute-energy { border-radius:5px;background:linear-gradient(90deg,#ffe100 0%,#3197ff var(--stat-fill,15%),rgba(116,180,245,.08) var(--stat-fill,15%),rgba(116,180,245,.08) 100%);box-shadow:none; }
#access-gate .access-gate-shell.is-registering .register-message,
#access-gate .access-gate-shell.is-registering .access-gate-message { border:0;background:none;font-size:14px;line-height:1.5;letter-spacing:0;color:#a3bcda;padding:0; }
#access-gate .access-gate-shell.is-registering :is(.register-message,.access-gate-message).is-error { color:#ffb4c3; }
#access-gate .access-gate-shell.is-registering :is(.register-message,.access-gate-message).is-success { color:#ade9d2; }
#access-gate .access-gate-shell.is-registering :is(.register-message,.access-gate-message):not(.is-error):not(.is-success):not(.is-loading) { display:none; }
@media(max-width:600px) {
  #access-gate .access-gate-shell.is-registering { width:calc(100vw - 20px);max-height:calc(100dvh - 20px);padding:22px 18px;border-radius:18px; }
  #access-register-panel .register-progress { gap:5px;flex-wrap:wrap; }
  #access-register-panel .register-progress span { flex:1 1 40%;font-size:13px; }
  #access-register-panel .register-progress i { display:none; }
  #access-register-panel .attribute-grid { grid-template-columns:1fr; }
  #access-register-panel .register-navigation button { padding-inline:12px; }
}
/* Cinematic access composition. */
html #access-gate { color:#eafaff;display:flex;align-items:center;justify-content:flex-end;padding:32px clamp(24px,6vw,110px);font-family:Oxanium,"Segoe UI",sans-serif !important; }
html #access-gate .access-gate-shell :where(*) { font-family:Oxanium,"Segoe UI",sans-serif !important; }
#access-gate .access-gate-bg { inset:-12px;background-image:linear-gradient(90deg,#02081122,transparent 35%,#02081180),var(--nc-login-bg-image,url('../assets/images/city/night-city-street.webp')) !important;background-size:cover !important;background-position:center !important;transform:translate3d(var(--scene-x,0px),var(--scene-y,0px),0); }
#access-gate .access-gate-grid,#access-gate .access-gate-scan { display:none; }
#access-gate .access-gate-vignette { box-shadow:none;background:linear-gradient(180deg,#02081133,transparent 25%,#02081199); }
#access-gate .access-city-story { position:absolute;left:6vw;bottom:12vh;width:48%;pointer-events:none;animation:cyber-reveal .9s .2s ease both; }
#access-gate .access-city-story .cyber-wordmark { font-size:clamp(40px,5.3vw,90px);line-height:1.1;margin-top:20px; }
#access-gate .access-city-story p { color:#e3f4ff;font:400 17px/1.7 Oxanium,sans-serif;letter-spacing:.025em;margin:30px 0;text-shadow:0 2px 15px #020811; }
#access-gate .access-city-coordinate { display:block;font:9px Oxanium,sans-serif;letter-spacing:.2em;color:#b9d5e6;border-left:2px solid #54efff;padding:8px 12px;background:linear-gradient(90deg,#02081199,transparent); }
#access-gate .access-gate-shell:not(.is-registering) { isolation:isolate;width:min(430px,100%);max-height:calc(100dvh - 64px);padding:32px 30px;border:0;border-top:2px solid #54efff;border-bottom:1px solid #54efff55;border-radius:0;background:linear-gradient(135deg,#04101dd9,#03111e99);backdrop-filter:blur(12px);box-shadow:0 0 50px #228dff22,inset 1px 0 #54efff44;clip-path:none;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#228dff66 transparent;text-align:left;animation:cyber-reveal .65s ease both; }
#access-gate .access-gate-shell:not(.is-registering)::before { content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 100% 0,#54efff12,transparent 50%);pointer-events:none; }
#access-gate .access-gate-shell:not(.is-registering)::after { content:"NC / IDENTITY ACCESS";position:absolute;top:11px;right:15px;font:8px Oxanium,sans-serif;letter-spacing:.17em;color:#54efff;width:auto;height:auto;background:none; }
#access-gate .access-gate-kicker,#access-gate .access-gate-footer,#access-gate .access-gate-orbit { display:none; }
#access-gate .access-gate-shell:not(.is-registering) .access-gate-core { width:70px;height:48px;margin:0 0 20px; }
#access-gate .access-gate-shell:not(.is-registering) .access-gate-mark { width:70px;height:48px;border:0;border-left:2px solid #fcee09;transform:none;background:#fcee0908;box-shadow:none;color:#fcee09; }
#access-gate .access-gate-mark b,#access-gate .access-gate-mark span { transform:none; }
#access-gate .access-gate-mark.has-site-logo::after { inset:0;transform:none;background-image:var(--nc-access-logo);background-size:contain;background-repeat:no-repeat;filter:drop-shadow(0 0 8px #54efff55); }
#access-gate .access-gate-title { align-items:flex-start;gap:12px;margin-bottom:28px; }
#access-gate .access-gate-title small { color:#54efff;font-size:10px;letter-spacing:.17em;text-transform:uppercase; }
html #access-gate .access-gate-title strong { font-family:Orbitron,Impact,sans-serif !important;font-size:clamp(23px,2.3vw,30px);font-weight:700;line-height:1.35;letter-spacing:-.04em;color:#f9fdff;text-shadow:0 0 22px #228dff33; }
#access-gate .access-gate-title strong::before,#access-gate .access-gate-title strong::after { display:none; }
#access-gate .access-gate-title span { font-size:12px;line-height:1.7;color:#b1c9da;letter-spacing:0;max-width:32ch; }
#access-login-panel .access-gate-form { gap:8px;text-align:left; }
#access-login-panel .access-gate-form label { margin:5px 0;color:#c6e8f7;font-size:10px;letter-spacing:.13em;text-transform:uppercase; }
#access-login-panel .access-gate-form input { height:50px;width:100%;border:1px solid #228dff77;border-left:2px solid #54efff;border-radius:0;background:#020d19b3;color:#f1fbff;caret-color:#fcee09;padding:0 15px;font-size:15px;letter-spacing:.07em;box-shadow:inset 0 0 18px #228dff0f;transition:border-color .2s,box-shadow .2s; }
#access-login-panel .access-gate-form input::placeholder { color:#759aac; }
#access-login-panel .access-gate-form input:focus { border-color:#fcee09;box-shadow:0 0 20px #fcee0926;background:#041422; }
#access-login-panel .access-gate-form input:-webkit-autofill { -webkit-text-fill-color:#eafaff;-webkit-box-shadow:0 0 0 1000px #041422 inset;caret-color:#fcee09; }
#access-login-panel .access-gate-submit { width:100%;height:51px;margin-top:17px;border:1px solid #fcee09;border-radius:0;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));background:linear-gradient(110deg,#fcee092d,#228dff18);color:#fcee09;font-size:13px;font-weight:700;letter-spacing:.12em;box-shadow:inset 3px 0 #fcee09;cursor:pointer;transition:background .2s,color .2s; }
#access-login-panel .access-gate-submit:hover:not(:disabled) { background:#fcee09;color:#020811;box-shadow:0 0 25px #fcee0933; }
#access-login-panel .access-register-link { width:100%;margin-top:19px;border:0;border-radius:0;background:transparent;text-align:center;color:#a7bfcd;font-size:11px;letter-spacing:.015em;padding:9px 0;cursor:pointer; }
#access-login-panel .access-register-link b { color:#54efff;display:inline;margin-left:6px; }
#access-login-panel .access-register-link:hover b { color:#fcee09;text-shadow:0 0 14px #fcee0966; }
#access-login-panel .access-register-link::after { display:none; }
#access-gate .access-gate-message { background:none;border:0;padding:0;margin:14px 0 0;font-size:11px;line-height:1.7;letter-spacing:0;color:#b1c9da; }
#access-login-panel .access-gate-message:empty { display:none; }
#access-gate .access-gate-message.is-error { color:#ffb5b5; }
#access-gate:has(.is-registering) { justify-content:center; }
#access-gate:has(.is-registering) .access-city-story { display:none; }
#access-gate .access-gate-shell.is-registering { max-height:calc(100dvh - 48px);border-radius:0;border:1px solid #54efff55;border-top:2px solid #54efff;background:linear-gradient(135deg,#03101ded,#03111ed9);box-shadow:0 0 50px #228dff22; }
#access-gate .access-gate-shell.is-registering .access-gate-title { align-items:center; }
#access-register-panel :is(.register-progress span,.register-legal-terminal,.register-field input,.ncid-explanation,.register-navigation button,.attribute-card,.attribute-value,.register-result,.attribute-module,.attribute-code,.attribute-points-core,.attribute-control button,.attribute-energy) { border-radius:0; }
#access-register-panel .register-progress span.is-active { color:#fcee09;border-color:#fcee09;background:#fcee0910;box-shadow:0 0 12px #fcee0915; }
#access-register-panel .register-step h2 { font-family:Orbitron,sans-serif !important;font-size:21px;letter-spacing:-.025em; }
#access-register-panel :is(.register-next,.register-create) { clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));border-color:#fcee09 !important;background:linear-gradient(100deg,#fcee091a,#228dff22); }
#access-register-panel .register-field input:focus { border-color:#fcee09;box-shadow:0 0 16px #fcee0922; }
#access-register-panel :is(.register-legal-terminal p,.register-check span,.attribute-copy small) { font-family:"Segoe UI",sans-serif !important; }
@media(max-width:1000px) { #access-gate .access-city-story { left:4vw;width:42%; } #access-gate .access-city-story .cyber-wordmark { font-size:clamp(35px,5vw,60px); } html #access-gate { padding-inline:4vw; } }
@media(max-width:760px) { html #access-gate { justify-content:center;padding:18px; } #access-gate .access-city-story { display:none; } #access-gate .access-gate-shell:not(.is-registering) { max-height:calc(100dvh - 36px);padding:26px 24px;width:min(430px,100%); } #access-gate .access-gate-shell.is-registering { width:100%;max-height:calc(100dvh - 36px);padding:24px 18px; } }
@media(max-height:620px) { #access-gate .access-gate-shell:not(.is-registering) { padding-block:22px; } #access-gate .access-gate-shell:not(.is-registering) .access-gate-core { display:none; } #access-gate .access-gate-title { margin-bottom:18px; } #access-gate .access-city-story { bottom:9vh; } }
#access-gate .access-gate-shell:not(.is-registering) { clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,18px 100%,0 calc(100% - 18px)); }
