:root {
  --bg:#25272b;
  --bg2:#32363c;
  --glass:rgba(55,58,64,0.58);
  --line:rgba(200,206,216,0.20);
  --cyan:#4be3ff;
  --cyan-bright:#a7f6ff;
  --violet:#b39dff;
  --magenta:#ff5fc2;
  --mint:#5cffc0;
  --amber:#ffd166;
  --text:#f0f2f7;
  --muted:#9aa3b2;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:'Rajdhani',sans-serif;overflow-x:hidden;}
body{
  background-image:
    linear-gradient(135deg, rgba(255,255,255,0.045) 0%, transparent 40%),
    linear-gradient(315deg, rgba(255,255,255,0.025) 0%, transparent 38%),
    repeating-linear-gradient(52deg, rgba(255,255,255,0.022) 0px, rgba(255,255,255,0.022) 2px, transparent 2px, transparent 9px),
    repeating-linear-gradient(-38deg, rgba(0,0,0,0.20) 0px, rgba(0,0,0,0.20) 2px, transparent 2px, transparent 11px),
    radial-gradient(ellipse at 18% -10%, rgba(75,227,255,0.07), transparent 45%),
    radial-gradient(ellipse at 100% 10%, rgba(179,157,255,0.06), transparent 42%),
    radial-gradient(ellipse at 50% 120%, rgba(200,205,215,0.06), transparent 50%),
    linear-gradient(180deg,var(--bg),var(--bg2));
  min-height:100vh; position:relative;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.55;
  background:repeating-linear-gradient(0deg, rgba(255,255,255,0.025) 0px, rgba(255,255,255,0.025) 1px, transparent 1px, transparent 3px);
}
.scan-bar{position:fixed;top:0;left:0;width:100%;height:2px;z-index:5;
  background:linear-gradient(90deg,transparent,var(--cyan-bright),var(--violet),transparent);
  box-shadow:0 0 12px var(--cyan);
  animation:scanmove 7s linear infinite;
}
@keyframes scanmove{0%{top:0;opacity:0;}5%{opacity:.8;}95%{opacity:.8;}100%{top:100%;opacity:0;}}
.wrap{max-width:1180px;margin:0 auto;padding:34px 20px 90px;position:relative;z-index:2;}
header{text-align:center;padding:26px 10px 22px;}
.eyebrow{font-size:11px;letter-spacing:.4em;color:var(--muted);text-transform:uppercase;font-family:'JetBrains Mono',monospace;}
h1{
  font-family:'Orbitron',sans-serif;font-weight:900;
  font-size:clamp(40px,7.5vw,78px);letter-spacing:.1em;margin:10px 0 2px;
  background:linear-gradient(90deg,var(--cyan-bright),var(--violet) 60%,var(--cyan-bright));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 22px rgba(75,227,255,.35));
}
.subtitle{font-family:'Rajdhani',sans-serif;font-weight:600;font-size:15px;color:var(--cyan-bright);letter-spacing:.12em;text-transform:uppercase;}
.acronym{font-size:11px;color:var(--muted);margin-top:8px;letter-spacing:.1em;font-family:'JetBrains Mono',monospace;}
.clock-tick{
  margin-top:18px;display:inline-flex;gap:10px;align-items:center;font-size:11.5px;
  color:var(--mint);border:1px solid var(--line);border-radius:2px;padding:7px 18px;
  background:rgba(92,255,192,.05);font-family:'JetBrains Mono',monospace;letter-spacing:.05em;
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
}
.clock-dot{width:6px;height:6px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint);animation:pulse 1.6s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.25;}}
.hud{
  background:var(--glass); backdrop-filter:blur(10px);
  border:1px solid var(--line); border-radius:2px;
  padding:26px; position:relative;
}
.hud::before, .hud::after{
  content:"";position:absolute;width:16px;height:16px;pointer-events:none;
  border:1.5px solid var(--cyan-bright); opacity:.7;
}
.hud::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.hud::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.console{margin-top:26px;}
.console-label{font-family:'Orbitron',sans-serif;font-size:11.5px;letter-spacing:.25em;color:var(--cyan-bright);text-transform:uppercase;margin-bottom:20px;display:flex;align-items:center;gap:10px;}
.console-label::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent);}
.fields{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:16px;}
@media(max-width:720px){.fields{grid-template-columns:1fr 1fr;}}
.field label{display:block;font-size:10.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-family:'JetBrains Mono',monospace;}
.field input{
  width:100%;background:rgba(18,20,24,.78);border:1px solid var(--line);border-radius:2px;
  color:var(--text);font-family:'JetBrains Mono',monospace;font-size:15px;padding:11px 12px;
  outline:none;transition:border-color .15s, box-shadow .15s;
}
.field input:focus{border-color:var(--cyan-bright);box-shadow:0 0 0 2px rgba(75,227,255,.18), 0 0 14px rgba(75,227,255,.25);}
.field .hint{font-size:9px;color:var(--muted);margin-top:4px;opacity:.75;letter-spacing:.05em;}
.field textarea{
  width:100%;background:rgba(18,20,24,.78);border:1px solid var(--line);border-radius:2px;
  color:var(--text);font-family:'Rajdhani',sans-serif;font-size:14px;padding:11px 12px;
  outline:none;resize:vertical;
}
.run-row{display:flex;justify-content:space-between;align-items:center;margin-top:22px;flex-wrap:wrap;gap:12px;}
.err{color:var(--magenta);font-size:12px;min-height:16px;font-family:'JetBrains Mono',monospace;}
.decrypt-btn{
  font-family:'Orbitron',sans-serif;font-weight:700;letter-spacing:.15em;font-size:13.5px;
  background:linear-gradient(135deg,var(--cyan),var(--violet));
  color:#101114;border:none;border-radius:2px;padding:15px 36px;cursor:pointer;
  text-transform:uppercase;box-shadow:0 0 22px rgba(75,227,255,.35);
  transition:transform .12s, box-shadow .12s;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}
.decrypt-btn:hover{transform:translateY(-1px);box-shadow:0 0 30px rgba(169,139,255,.55);}
.decrypt-btn:active{transform:translateY(0);}
.decrypt-btn:disabled{opacity:.5;cursor:wait;}
#results{display:none;margin-top:34px;}
.reveal{animation:reveal .5s ease forwards;}
@keyframes reveal{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:translateY(0);}}
.ref-line{text-align:center;font-size:20px;color:var(--cyan-bright);letter-spacing:.05em;margin-bottom:26px;font-family:'Orbitron',sans-serif;font-weight:500;}
.ref-line .small{display:block;font-family:'JetBrains Mono',monospace;font-size:10.5px;color:var(--muted);margin-top:6px;letter-spacing:.2em;text-transform:uppercase;}
.verse-nav{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:14px;flex-wrap:wrap;}
.nav-btn{
  font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  background:rgba(75,227,255,.08);color:var(--cyan-bright);border:1px solid rgba(75,227,255,.4);
  border-radius:2px;padding:6px 14px;cursor:pointer;transition:background .15s,border-color .15s,transform .12s;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px);
}
.nav-btn:hover{background:rgba(75,227,255,.18);border-color:var(--cyan-bright);}
.nav-btn:active{transform:translateY(1px);}
.nav-btn:disabled{opacity:.35;cursor:not-allowed;}
.grid2{display:grid;grid-template-columns:400px 1fr;gap:24px;}
@media(max-width:880px){.grid2{grid-template-columns:1fr;}}
.panel{background:var(--glass);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:2px;padding:20px;position:relative;margin-bottom:0;}
.panel::before,.panel::after{content:"";position:absolute;width:12px;height:12px;border:1px solid rgba(75,227,255,.45);pointer-events:none;}
.panel::before{top:-1px;left:-1px;border-right:none;border-bottom:none;}
.panel::after{bottom:-1px;right:-1px;border-left:none;border-top:none;}
.panel h3{font-family:'Orbitron',sans-serif;font-size:11px;letter-spacing:.2em;color:var(--cyan-bright);text-transform:uppercase;margin:0 0 16px;display:flex;align-items:center;gap:10px;}
.panel h3::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--line),transparent);}
.panel-stack{display:flex;flex-direction:column;gap:20px;}
#wheelPanel{display:flex;flex-direction:column;align-items:center;}
.wheel-frame{position:relative;width:280px;height:280px;}
.wheel-frame .sweep{
  position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from 0deg, rgba(75,227,255,.28), transparent 30%);
  animation:spin 4s linear infinite; opacity:.55;
}
.wheel-frame.done .sweep{animation-duration:14s;opacity:.25;}
@keyframes spin{to{transform:rotate(-360deg);}}
svg{position:relative;z-index:2;max-width:100%;height:auto;}
.node-label{font-family:'JetBrains Mono',monospace;font-size:8.5px;fill:var(--muted);}
.node-label.active{fill:var(--cyan-bright);font-weight:700;}
.node circle{fill:#1a1c21;stroke:var(--line);stroke-width:1.4;transition:all .3s;}
.node.active circle{stroke:var(--cyan-bright);fill:rgba(75,227,255,.18);filter:drop-shadow(0 0 7px rgba(167,246,255,.9));}
.node.partner circle{stroke:var(--violet);stroke-dasharray:2 2;}
.node.cumset circle{stroke:var(--amber);}
.node.cumset-partner circle{stroke:var(--amber);}
.spoke{stroke:rgba(120,175,255,.14);stroke-width:1;}
.spoke.active{stroke:var(--cyan);stroke-width:1.6;opacity:.85;}
.wheel-center{font-family:'Orbitron',sans-serif;font-size:10px;fill:var(--muted);text-anchor:middle;}
.valid-badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--mint);margin-top:14px;font-family:'JetBrains Mono',monospace;}
.valid-dot{width:7px;height:7px;border-radius:50%;background:var(--mint);box-shadow:0 0 8px var(--mint);}
.valid-badge.mismatch{color:var(--magenta);}
.valid-badge.mismatch .valid-dot{background:var(--magenta);box-shadow:0 0 8px var(--magenta);}
.legend{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:10px;font-size:9.5px;color:var(--muted);font-family:'JetBrains Mono',monospace;}
.legend span{display:inline-flex;align-items:center;gap:5px;}
.legend i{width:8px;height:8px;border-radius:50%;display:inline-block;}
.trace-line{display:flex;justify-content:space-between;font-size:13px;padding:8px 0;border-bottom:1px dashed var(--line);font-family:'JetBrains Mono',monospace;}
.trace-line:last-child{border-bottom:none;}
.trace-line .k{color:var(--muted);}
.trace-line .v{color:var(--text);font-weight:600;}
.steps{font-size:10.5px;color:var(--muted);word-break:break-all;margin-top:6px;line-height:1.6;font-family:'JetBrains Mono',monospace;}
.quality-badge{display:inline-block;padding:3px 10px;border-radius:2px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:600;font-family:'JetBrains Mono',monospace;}
.q-judgment{background:rgba(255,95,194,.14);color:var(--magenta);border:1px solid rgba(255,95,194,.5);}
.q-righteousness{background:rgba(75,227,255,.14);color:var(--cyan-bright);border:1px solid rgba(75,227,255,.5);}
.q-lovingkindness{background:rgba(92,255,192,.14);color:var(--mint);border:1px solid rgba(92,255,192,.5);}
.match-title{font-family:'Orbitron',sans-serif;font-weight:700;font-size:24px;color:var(--cyan-bright);margin:2px 0 2px;}
.match-sub{font-size:12px;color:var(--muted);margin-bottom:12px;font-family:'JetBrains Mono',monospace;}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:12.5px;margin-top:10px;}
.kv .k{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:10px;padding-top:2px;font-family:'JetBrains Mono',monospace;}
.dict-list{margin-top:8px;}
.dict-item{padding:10px 0;border-bottom:1px solid var(--line);}
.dict-item:last-child{border-bottom:none;}
.dict-term{color:var(--cyan-bright);font-weight:600;font-size:13px;font-family:'Rajdhani',sans-serif;}
.dict-term .tag{font-size:9px;color:var(--mint);border:1px solid rgba(92,255,192,.4);border-radius:2px;padding:1px 7px;margin-left:8px;letter-spacing:.05em;font-family:'JetBrains Mono',monospace;}
.dict-def{font-size:12.5px;color:var(--text);opacity:.88;margin-top:3px;line-height:1.5;}
.sef-terms-scroll{max-height:236px;overflow-y:auto;padding-right:8px;margin-top:2px;}
.sef-terms-scroll::-webkit-scrollbar{width:6px;}
.sef-terms-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.sef-terms-scroll::-webkit-scrollbar-track{background:transparent;}
.lexicon-toggle{
  margin-top:16px;background:none;border:1px solid var(--line);color:var(--muted);
  font-family:'JetBrains Mono',monospace;font-size:11px;padding:8px 14px;border-radius:2px;cursor:pointer;letter-spacing:.08em;
}
.lexicon-toggle:hover{border-color:var(--cyan-bright);color:var(--cyan-bright);}
#fullLexicon{display:none;margin-top:14px;max-height:320px;overflow-y:auto;padding-right:6px;}
#fullLexicon::-webkit-scrollbar{width:6px;}
#fullLexicon::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px;}
.verse-block{
  font-family:'Rajdhani',sans-serif;font-size:19px;line-height:1.6;color:var(--cyan-bright);
  border-left:2px solid var(--cyan);padding:4px 0 4px 18px;font-weight:500;font-style:italic;min-height:28px;
}
.verse-block mark.noun-hit{
  background:rgba(255,209,102,.16);color:var(--amber);border-bottom:1px solid var(--amber);
  padding:0 2px;font-style:normal;font-weight:700;
}
.verse-block mark.noun-general{
  background:rgba(75,227,255,.09);color:var(--cyan-bright);border-bottom:1px dotted var(--cyan);
  padding:0 1px;font-style:normal;font-weight:600;
}
.verse-source{font-size:10px;color:var(--muted);margin-top:10px;letter-spacing:.15em;text-transform:uppercase;font-family:'JetBrains Mono',monospace;}
.loading-line{font-family:'JetBrains Mono',monospace;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:10px;}
.loading-bar{flex:1;height:2px;background:var(--line);position:relative;overflow:hidden;}
.loading-bar::after{content:"";position:absolute;left:-40%;top:0;height:100%;width:40%;
  background:linear-gradient(90deg,transparent,var(--cyan-bright),transparent);animation:loadsweep 1.1s linear infinite;}
@keyframes loadsweep{to{left:100%;}}
.api-err{color:var(--magenta);font-size:12px;margin-top:10px;font-family:'JetBrains Mono',monospace;}
.set-table{width:100%;border-collapse:collapse;margin-top:8px;font-size:12px;}
.set-table th{text-align:left;font-family:'JetBrains Mono',monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line);}
.set-table td{padding:8px;border-bottom:1px solid var(--line);font-family:'JetBrains Mono',monospace;}
.set-table tr.active td{background:rgba(75,227,255,.08);color:var(--cyan-bright);}
.set-table tr:last-child td{border-bottom:none;}
footer{text-align:center;margin-top:50px;font-size:10px;color:var(--muted);letter-spacing:.12em;font-family:'JetBrains Mono',monospace;}
