/* =========================================================================
   PRIVATE ACCESS SCREEN — index
   ========================================================================= */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body,h1,p,form{margin:0}
button,input{font:inherit;color:inherit}

:root{
  --obsidian:#0B0D0F;
  --porcelain:#F5F3EE;
  --lime:#C7F000;
  --cobalt:#384152;
  --graphite:#17191C;
  --soft:#FAFAF7;
  --ff-display:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --ff-body:"Manrope","Helvetica Neue",Helvetica,Arial,sans-serif;
}

body{
  min-height:100vh;
  min-height:100svh;
  background:var(--obsidian);
  color:var(--soft);
  font-family:var(--ff-body);
  font-size:1rem;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  display:flex;
  flex-direction:column;
  overflow-x:hidden;
}

/* the horizon: a single hairline that recedes across the screen */
.horizon{
  position:fixed;
  left:0;right:0;top:50%;
  height:1px;
  background:linear-gradient(to right,rgba(250,250,247,0) 0%,rgba(250,250,247,.22) 22%,rgba(250,250,247,.22) 78%,rgba(250,250,247,0) 100%);
  pointer-events:none;
}
.horizon::after{
  content:"";
  position:absolute;left:0;top:-3px;width:7px;height:7px;background:var(--lime);
  animation:drift 9s cubic-bezier(.55,0,.45,1) infinite;
}
@keyframes drift{
  0%{left:0;opacity:0}
  12%{opacity:1}
  88%{opacity:1}
  100%{left:calc(100% - 7px);opacity:0}
}
/* the monolith: a slim solid column anchored to the left edge */
.monolith{
  position:fixed;left:0;top:0;bottom:0;width:clamp(6px,3.4vw,58px);
  background:#07090A;
  border-right:1px solid rgba(250,250,247,.08);
  pointer-events:none;
}
.monolith::before{
  content:"";position:absolute;left:0;right:0;top:0;height:34%;
  background:var(--lime);opacity:.9;
}

.access{
  position:relative;z-index:2;
  flex:1;
  display:flex;flex-direction:column;justify-content:center;
  padding:56px clamp(26px,7vw,120px) 56px calc(clamp(6px,3.4vw,58px) + clamp(26px,7vw,120px));
  width:100%;
  max-width:1180px;
}

.access__label{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--ff-display);font-weight:600;
  font-size:.688rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--lime);
  margin-bottom:clamp(22px,3vw,42px);
}
.access__label::before{content:"";width:26px;height:2px;background:var(--lime)}

.access__name{
  font-family:var(--ff-display);font-weight:800;text-transform:uppercase;
  font-size:clamp(2.05rem,7.4vw,5.4rem);
  line-height:.86;letter-spacing:-.045em;
  color:var(--soft);
}
.access__name span{display:block}
.access__name span:nth-child(2){color:var(--cobalt)}

.access__rule{
  height:1px;background:rgba(250,250,247,.18);
  margin-block:clamp(30px,4vw,58px);
  max-width:640px;
}

.access__form{max-width:520px;width:100%}
.access__legend{
  font-family:var(--ff-display);font-weight:600;
  font-size:.688rem;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(250,250,247,.6);
  margin-bottom:14px;display:block;
}
.access__row{display:flex;flex-wrap:wrap;gap:12px}
.access__input{
  flex:1 1 220px;
  min-width:0;
  min-height:58px;
  background:transparent;
  border:1px solid rgba(250,250,247,.3);
  border-radius:0;
  padding:16px 18px;
  color:var(--soft);
  font-family:var(--ff-body);font-size:1.05rem;letter-spacing:.16em;
  transition:border-color .24s ease,box-shadow .24s ease;
  -webkit-appearance:none;appearance:none;
}
.access__input::placeholder{color:rgba(250,250,247,.34);letter-spacing:.1em}
.access__input:hover{border-color:rgba(250,250,247,.55)}
.access__input:focus{
  outline:none;
  border-color:var(--lime);
  box-shadow:inset 0 -3px 0 0 var(--lime);
}
.access__input:focus-visible{outline:2px solid var(--lime);outline-offset:2px}

.access__btn{
  flex:0 0 auto;
  min-height:58px;
  padding:16px 30px;
  background:var(--lime);
  color:var(--graphite);
  border:1px solid var(--lime);
  border-radius:0;
  font-family:var(--ff-display);font-weight:700;
  font-size:.688rem;letter-spacing:.2em;text-transform:uppercase;
  cursor:pointer;
  display:inline-flex;align-items:center;gap:11px;
  transition:background .24s ease,transform .24s cubic-bezier(.16,1,.3,1);
}
.access__btn svg{width:18px;height:9px;fill:currentColor;transition:transform .28s cubic-bezier(.16,1,.3,1)}
.access__btn:hover{background:#d6ff22}
.access__btn:hover svg{transform:translateX(5px)}
.access__btn:focus-visible{outline:2px solid var(--soft);outline-offset:3px}

.access__msg{
  margin-top:18px;
  min-height:22px;
  font-size:.9rem;line-height:1.5;
  color:#FF8E8E;
  display:none;
  align-items:flex-start;gap:9px;
}
.access__msg.is-shown{display:flex}
.access__msg.is-ok{color:var(--lime)}
.access__msg::before{
  content:"";flex:none;width:8px;height:8px;background:currentColor;margin-top:7px;
}

.access__shake{animation:shake .38s ease}
@keyframes shake{
  0%,100%{transform:translateX(0)}
  22%{transform:translateX(-7px)}
  46%{transform:translateX(6px)}
  72%{transform:translateX(-3px)}
}
@media (prefers-reduced-motion:reduce){
  .horizon::after{animation:none;left:calc(100% - 7px);opacity:1}
  .access__shake{animation:none}
  .access__btn,.access__input{transition:none}
}
