:root{
  --bg:#040805;
  --green:#3dff6e;
  --green-dim:#1b7a37;
  --amber:#ffb020;
  --red:#ff3b3b;
  --glow: 0 0 6px rgba(61,255,110,0.75), 0 0 14px rgba(61,255,110,0.35);
}
*{box-sizing:border-box;}
html,body{
  margin:0; padding:0;
  background:var(--bg);
  color:var(--green);
  font-family:'Courier New','Consolas',monospace;
  min-height:100vh;
}
body::before{
  content:"";
  position:fixed; inset:0;
  background:repeating-linear-gradient(to bottom, rgba(0,0,0,0) 0px, rgba(0,0,0,0) 2px, rgba(0,0,0,0.25) 3px);
  pointer-events:none; z-index:5; mix-blend-mode:multiply;
}
.wrap{max-width:760px; margin:0 auto; padding:48px 20px 100px; position:relative; z-index:1;}
.header{
  display:flex; justify-content:space-between;
  font-size:12px; color:var(--green-dim); letter-spacing:1px;
  border-bottom:1px solid var(--green-dim); padding-bottom:10px; margin-bottom:30px;
}
.title{font-size:22px; letter-spacing:3px; text-shadow:var(--glow); margin-bottom:6px;}
.sub{font-size:13px; color:var(--green-dim); margin-bottom:36px;}
.line{font-size:15px; line-height:1.9; white-space:pre-wrap; text-shadow:0 0 3px rgba(61,255,110,0.4);}
.divergence{font-size:34px; letter-spacing:1px; margin:26px 0; text-shadow:var(--glow);}
.divergence span{color:var(--amber);}
.flicker{animation:flicker 3.6s infinite;}
@keyframes flicker{0%,100%{opacity:1;} 92%{opacity:1;} 93%{opacity:0.4;} 94%{opacity:1;} 96%{opacity:0.6;} 97%{opacity:1;}}
.q-block{margin-bottom:28px;}
.q-label{font-size:13px; color:var(--amber); letter-spacing:1px; margin-bottom:8px;}
input.field, input#codeInput, input#pw{
  width:100%;
  background:transparent; border:none; border-bottom:1px solid var(--green-dim);
  color:var(--green); font-family:inherit; font-size:15px; padding:8px 4px; outline:none;
}
input#codeInput, input#pw{width:280px; letter-spacing:2px; text-transform:uppercase; text-align:left;}
input.field:focus, input#codeInput:focus, input#pw:focus{border-bottom:1px solid var(--green); text-shadow:var(--glow);}
.prompt-row{display:flex; align-items:center; margin-top:40px; font-size:16px; flex-wrap:wrap; gap:12px;}
.prompt-row span.tag{color:var(--green-dim); margin-right:6px;}
.btn{
  background:transparent; border:1px solid var(--green-dim); color:var(--green);
  font-family:inherit; font-size:13px; letter-spacing:2px; padding:9px 18px;
  cursor:pointer; transition:all .15s ease;
}
.btn:hover{border-color:var(--green); background:rgba(61,255,110,0.08); text-shadow:var(--glow);}
.msg{margin-top:18px; font-size:13px; letter-spacing:1px; min-height:20px;}
.msg.err{color:var(--red);}
.msg.ok{color:var(--green);}
#result{margin-top:40px; border-top:1px solid var(--green-dim); padding-top:24px; display:none;}
#result.show{display:block; animation:fadein 1s ease;}
@keyframes fadein{from{opacity:0;} to{opacity:1;}}
.log-title{color:var(--amber); font-size:13px; letter-spacing:1px; margin-bottom:14px;}
.log-body{font-size:14.5px; line-height:1.9; white-space:pre-wrap; text-shadow:0 0 3px rgba(61,255,110,0.35);}
.coords{font-size:22px; color:var(--amber); letter-spacing:1px; margin:16px 0; text-shadow:var(--glow);}
.maplink{
  display:inline-block; margin-top:10px; color:var(--green); border:1px solid var(--green-dim);
  padding:8px 16px; text-decoration:none; font-size:13px; letter-spacing:1px;
}
.maplink:hover{border-color:var(--green); text-shadow:var(--glow);}
.footer{margin-top:60px; font-size:11px; color:var(--green-dim); letter-spacing:1px; border-top:1px solid var(--green-dim); padding-top:14px;}
.converged{font-size:26px; letter-spacing:2px; color:var(--amber); text-shadow:var(--glow); margin-bottom:14px; text-align:center;}
.kongroo{font-size:15px; color:var(--green-dim); letter-spacing:2px; margin-bottom:30px; text-align:center;}
.keybox{display:inline-block; border:1px solid var(--amber); padding:20px 32px; font-size:20px; letter-spacing:3px; color:var(--amber); text-shadow:0 0 8px rgba(255,176,32,0.6);}
.keylabel{font-size:11px; color:var(--green-dim); letter-spacing:2px; margin-bottom:10px; text-align:center;}
.center{text-align:center;}
