:root{
  --cy:#00f0ff; --mg:#ff2bd6; --vi:#b14aff;
  --bg0:#04060a; --ink:#d4f3ff; --ink-dim:#8fb6c8;
  --panel:rgba(5,9,14,.62);
}

*{ box-sizing:border-box; }
html,body{ margin:0; padding:0; background:#04060a; }
body{
  font-family:'Rajdhani','Segoe UI',sans-serif; color:var(--ink);
  min-height:100vh; overflow-x:hidden;
  cursor:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24'><g fill='none' stroke='%2300f0ff' stroke-width='1.6'><path d='M12 3v5M12 16v5M3 12h5M16 12h5'/></g><circle cx='12' cy='12' r='1.6' fill='%23ff2bd6'/></svg>") 12 12, auto;
}
button,a,input,label,summary{
  cursor:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='26' height='26'><g fill='none' stroke='%23ff2bd6' stroke-width='2'><path d='M13 3v6M13 17v6M3 13h6M17 13h6'/><circle cx='13' cy='13' r='4'/></g></svg>") 13 13, pointer;
}
h1,h2,h3,h4{ font-family:'Orbitron',sans-serif; color:#eafdff; letter-spacing:1.2px;
  text-shadow:0 0 10px rgba(0,240,255,.32), 0 0 26px rgba(0,240,255,.12); }
code,pre{ font-family:'Share Tech Mono',monospace; color:#bff7ff; background:rgba(0,240,255,.07); padding:1px 5px; border-radius:0; }
a{ color:#41e9ff; text-shadow:0 0 6px rgba(0,240,255,.4); text-decoration:none; }
a:hover{ color:var(--mg); text-shadow:0 0 8px rgba(255,43,214,.6); text-decoration:underline; }

/* ---------- background: matrix canvas + scanlines ---------- */
#matrix{ position:fixed; inset:0; width:100vw; height:100vh; z-index:0; pointer-events:none; }
.scanlines{
  position:fixed; inset:0; z-index:1; pointer-events:none; opacity:.55;
  background:repeating-linear-gradient(0deg, rgba(0,0,0,0) 0 2px, rgba(0,12,9,.16) 3px 4px);
}

/* ---------- lagging neon cursor ring ---------- */
.cursor-ring{
  position:fixed; top:0; left:0; width:34px; height:34px; margin:-17px 0 0 -17px;
  border:1px solid rgba(0,240,255,.85); border-radius:50%;
  box-shadow:0 0 12px rgba(0,240,255,.7), inset 0 0 8px rgba(0,240,255,.4);
  pointer-events:none; z-index:9999; mix-blend-mode:screen;
  transition:width .15s, height .15s, border-color .15s, box-shadow .15s;
}
.cursor-ring.hot{ width:50px; height:50px; margin:-25px 0 0 -25px;
  border-color:var(--mg); box-shadow:0 0 18px rgba(255,43,214,.85), inset 0 0 10px rgba(255,43,214,.4); }

/* ---------- layout ---------- */
.container{ position:relative; z-index:3; max-width:920px; margin:0 auto; padding:28px 20px 60px; }
.panel{
  background:var(--panel); border:1px solid rgba(0,240,255,.18); backdrop-filter:blur(3px);
  box-shadow:0 0 50px rgba(0,0,0,.5), inset 0 0 30px rgba(0,255,140,.02);
  padding:18px 20px; margin:16px 0;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
}

/* ---------- hero / glitch title ---------- */
.hero{ padding:.4rem 0 0; }
.eyebrow{ font-family:'Share Tech Mono',monospace; color:var(--cy); letter-spacing:4px; font-size:.78rem; opacity:.85; text-shadow:0 0 8px rgba(0,240,255,.6); }
.title{ position:relative; display:inline-block; margin:.2rem 0 .4rem; font-weight:900;
  font-size:clamp(2rem,6vw,3.6rem); line-height:1.04; letter-spacing:3px;
  text-shadow:0 0 10px rgba(0,240,255,.7), 0 0 30px rgba(0,240,255,.4); }
.title::before,.title::after{ content:attr(data-text); position:absolute; left:0; top:0; width:100%; pointer-events:none; mix-blend-mode:screen; }
.title::before{ color:var(--mg); animation:glitch1 2.8s infinite steps(2) alternate-reverse; }
.title::after{ color:var(--cy); animation:glitch2 2.2s infinite steps(2) alternate-reverse; }
@keyframes glitch1{ 0%{clip-path:inset(0 0 82% 0);transform:translate(-2px,-1px);} 25%{clip-path:inset(40% 0 40% 0);transform:translate(2px,1px);} 50%{clip-path:inset(70% 0 10% 0);transform:translate(-1px,1px);} 100%{clip-path:inset(10% 0 60% 0);transform:translate(2px,-1px);} }
@keyframes glitch2{ 0%{clip-path:inset(60% 0 20% 0);transform:translate(2px,1px);} 35%{clip-path:inset(15% 0 55% 0);transform:translate(-2px,-1px);} 70%{clip-path:inset(48% 0 35% 0);transform:translate(1px,1px);} 100%{clip-path:inset(78% 0 8% 0);transform:translate(-2px,1px);} }
.sub{ color:var(--ink-dim); max-width:62ch; font-size:1.02rem; }
.rule{ height:2px; margin:.7rem 0 0; background:linear-gradient(90deg,transparent,var(--cy),var(--vi),var(--mg),transparent); box-shadow:0 0 14px rgba(0,240,255,.6); background-size:200% 100%; animation:ruleflow 6s linear infinite; }
@keyframes ruleflow{ from{background-position:0 0;} to{background-position:200% 0;} }

/* ---------- controls ---------- */
.sliders{ display:flex; flex-wrap:wrap; gap:24px; margin-bottom:14px; }
.sliders label{ display:flex; flex-direction:column; gap:6px; font-family:'Share Tech Mono',monospace; font-size:.82rem; color:#9fe9ff; flex:1 1 220px; }
.sliders b{ color:var(--cy); }
input[type=range]{ -webkit-appearance:none; appearance:none; height:4px; background:rgba(0,240,255,.25); outline:none; }
input[type=range]::-webkit-slider-thumb{ -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:var(--cy); box-shadow:0 0 10px rgba(0,240,255,.9), 0 0 22px rgba(0,240,255,.4); }
input[type=range]::-moz-range-thumb{ width:16px; height:16px; border:none; border-radius:50%; background:var(--cy); box-shadow:0 0 10px rgba(0,240,255,.9); }

.selects{ display:flex; flex-wrap:wrap; gap:24px; margin-bottom:14px; }
.selects label{ display:flex; flex-direction:column; gap:6px; font-family:'Share Tech Mono',monospace; font-size:.82rem; color:#9fe9ff; flex:1 1 220px; }
.selects select{ background:rgba(7,16,28,.7); color:var(--ink); border:1px solid rgba(0,240,255,.4); padding:9px 10px; font-family:'Share Tech Mono',monospace; }
.selects select:focus{ outline:none; border-color:var(--cy); box-shadow:0 0 12px rgba(0,240,255,.5); }
.selects option{ background:#06101c; color:var(--ink); }

.keys{ display:flex; flex-wrap:wrap; gap:24px; margin-bottom:8px; }
.keys label{ display:flex; flex-direction:column; gap:6px; font-family:'Share Tech Mono',monospace; font-size:.82rem; color:#9fe9ff; flex:1 1 220px; }
.keys input{ background:rgba(7,16,28,.7); color:var(--ink); border:1px solid rgba(0,240,255,.4); padding:9px 10px; font-family:'Share Tech Mono',monospace; }
.keys input:focus{ outline:none; border-color:var(--cy); box-shadow:0 0 12px rgba(0,240,255,.5); }
.keys-note{ font-size:.78rem; color:var(--ink-dim); margin:2px 0 14px; line-height:1.5; }
.keys-note b{ color:#9dffc4; }
.lock-ic{ display:inline-block; width:15px; height:15px; vertical-align:-2px; margin-right:6px;
  background:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300ff9c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='4' y='10' width='16' height='10' rx='2'/><path d='M8 10V7a4 4 0 018 0v3'/><circle cx='12' cy='14.5' r='1.2' fill='%2300ff9c' stroke='none'/><path d='M12 15.5v2'/></svg>") center/contain no-repeat;
  filter:drop-shadow(0 0 4px rgba(0,255,156,.85)); }

.presets-label{ font-family:'Share Tech Mono',monospace; color:#9fe9ff; font-size:.8rem; margin:6px 0; }
.presets{ display:flex; flex-wrap:wrap; gap:10px; }

.btn{
  font-family:'Orbitron',sans-serif; text-transform:uppercase; letter-spacing:1px;
  font-size:.74rem; font-weight:600; color:#bff7ff; background:rgba(7,16,28,.55);
  border:1px solid rgba(0,240,255,.5); padding:10px 14px; position:relative; overflow:hidden;
  clip-path:polygon(11px 0,100% 0,100% calc(100% - 11px),calc(100% - 11px) 100%,0 100%,0 11px);
  transition:all .25s ease;
}
.btn::before{ content:''; position:absolute; top:0; left:-130%; width:55%; height:100%; background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent); transform:skewX(-20deg); transition:left .55s ease; }
.btn:hover{ color:#04121b; background:var(--cy); border-color:var(--cy); box-shadow:0 0 18px rgba(0,240,255,.85),0 0 44px rgba(0,240,255,.4); transform:translateY(-1px); }
.btn:hover::before{ left:150%; }
.btn:disabled{ opacity:.5; pointer-events:none; }
.btn.primary{ color:#0a0410; background:linear-gradient(135deg,var(--cy),var(--mg)); border-color:var(--mg); box-shadow:0 0 20px rgba(255,43,214,.5); }
.btn.primary:hover{ background:linear-gradient(135deg,var(--mg),var(--vi)); box-shadow:0 0 26px rgba(255,43,214,.85),0 0 60px rgba(177,74,255,.45); }

.ask{ display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
.ask input{ flex:1 1 260px; background:rgba(7,16,28,.7); color:var(--ink); border:1px solid rgba(0,240,255,.4); padding:10px 12px; font-family:'Share Tech Mono',monospace; }
.ask input:focus{ outline:none; border-color:var(--cy); box-shadow:0 0 14px rgba(0,240,255,.55); }
.ask input::placeholder{ color:#5f8698; }

/* ---------- status ---------- */
.status{ margin:14px 0; font-family:'Share Tech Mono',monospace; color:#9fe9ff; display:flex; align-items:center; gap:10px; }
.status.err{ color:#ff6b8f; }
.spinner{ width:16px; height:16px; border:2px solid rgba(0,240,255,.25); border-top-color:var(--cy); border-radius:50%; animation:spin .8s linear infinite; box-shadow:0 0 8px rgba(0,240,255,.6); }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ---------- briefing markdown ---------- */
.briefing h1,.briefing h2,.briefing h3{ font-size:1.05rem; margin:1.1rem 0 .4rem; }
.briefing ul{ padding-left:1.1rem; }
.briefing li{ margin:.5rem 0; }
.briefing p{ line-height:1.5; }

/* ---------- disclosures (details/summary) ---------- */
.disclosure{ padding:0; }
.disclosure summary{ list-style:none; display:flex; align-items:center; gap:9px; padding:14px 18px; font-family:'Orbitron',sans-serif; letter-spacing:1px; color:#9fe9ff; font-size:.85rem; }
.disclosure summary::-webkit-details-marker{ display:none; }
.disclosure summary:hover{ color:var(--cy); }
.disclosure[open] summary{ border-bottom:1px solid rgba(0,240,255,.18); }
.disclosure-body{ padding:14px 18px; }
.disclosure-body .src{ padding:10px 0; border-bottom:1px solid rgba(0,240,255,.12); }
.disclosure-body .src:last-child{ border-bottom:none; }
.disclosure-body .meta{ color:var(--ink-dim); font-size:.85rem; font-family:'Share Tech Mono',monospace; }
.pass{ padding:8px 0; border-bottom:1px solid rgba(0,240,255,.12); }
.pass:last-child{ border-bottom:none; }
.pass b{ font-family:'Orbitron',sans-serif; color:#bff7ff; }
.muted{ color:var(--ink-dim); }
.legend{ line-height:2.2; }

/* header icons */
.ic{ width:18px; height:18px; flex:0 0 18px; background-size:contain; background-repeat:no-repeat; background-position:center; filter:drop-shadow(0 0 4px var(--cy)); }
.ic-sources{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300f0ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M4 5a2 2 0 012-2h6v16H6a2 2 0 00-2 2zM20 5a2 2 0 00-2-2h-6v16h6a2 2 0 012 2z'/></svg>"); }
.ic-reasoning{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300f0ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 12a9 9 0 0115-6.7L21 7M21 3v4h-4M21 12a9 9 0 01-15 6.7L3 17M3 21v-4h4'/></svg>"); }
.ic-about{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300f0ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><rect x='3' y='4' width='18' height='16' rx='2'/><path d='M7 9l3 2.5L7 14M12.5 14H16'/></svg>"); }

/* ---------- cyberpunk substance-tag badges ---------- */
.cyber-tag{ display:inline-flex; align-items:center; gap:6px; vertical-align:middle;
  font-family:'Share Tech Mono',monospace; font-size:.7rem; font-weight:700; letter-spacing:1.5px;
  line-height:1; text-transform:uppercase; white-space:nowrap; padding:3px 9px 3px 7px; margin:0 4px 1px 0;
  border:1px solid currentColor; background:rgba(0,0,0,.35); text-shadow:0 0 6px currentColor;
  clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px); }
.cyber-tag::before{ content:''; width:14px; height:14px; flex:0 0 14px; background-size:contain; background-repeat:no-repeat; background-position:center; filter:drop-shadow(0 0 3px currentColor); }
.tag-shipped{ color:#00ff9c; box-shadow:0 0 9px rgba(0,255,156,.35); }
.tag-announced{ color:#ffb300; box-shadow:0 0 9px rgba(255,179,0,.35); }
.tag-research{ color:#b14aff; box-shadow:0 0 9px rgba(177,74,255,.35); }
.tag-hype{ color:#ff2b5e; box-shadow:0 0 9px rgba(255,43,94,.40); }
.tag-shipped::before{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300ff9c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2l8 4.6v9.2L12 22l-8-4.6V6.6z'/><path d='M8.5 12.5l3.5-3.5 3.5 3.5M12 9v8'/></svg>"); }
.tag-announced::before{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffb300' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='2'/><path d='M7.8 7.8a6 6 0 000 8.4M16.2 7.8a6 6 0 010 8.4M5 5a10 10 0 000 14M19 5a10 10 0 010 14'/></svg>"); }
.tag-research::before{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b14aff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='12' cy='12' r='2.3'/><circle cx='5' cy='6' r='1.5'/><circle cx='19' cy='6' r='1.5'/><circle cx='12' cy='20' r='1.5'/><path d='M10.4 10.7L6.2 7.1M13.6 10.7L17.8 7.1M12 14.3V18.5'/></svg>"); }
.tag-hype::before{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff2b5e' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l9 16H3z'/><path d='M12 9v4.5'/><circle cx='12' cy='16.5' r='1' fill='%23ff2b5e' stroke='none'/></svg>"); }

/* ---------- tech cards ---------- */
.cyber-tech-grid{ display:flex; flex-wrap:wrap; gap:10px; margin:.3rem 0 .6rem; }
.cyber-tech{ display:flex; align-items:center; gap:10px; flex:1 1 200px; min-width:165px; padding:10px 12px;
  background:rgba(7,16,28,.55); border:1px solid rgba(0,240,255,.22);
  clip-path:polygon(8px 0,100% 0,100% calc(100% - 8px),calc(100% - 8px) 100%,0 100%,0 8px);
  transition:border-color .2s, box-shadow .2s, transform .2s; }
.cyber-tech:hover{ border-color:currentColor; box-shadow:0 0 16px rgba(0,240,255,.18); transform:translateY(-1px); }
.cyber-tech .tic{ flex:0 0 26px; width:26px; height:26px; background-size:contain; background-repeat:no-repeat; background-position:center; filter:drop-shadow(0 0 4px currentColor); }
.cyber-tech .tx{ display:flex; flex-direction:column; line-height:1.18; }
.cyber-tech .tx b{ font-family:'Orbitron',sans-serif; font-size:.78rem; letter-spacing:1px; color:#eafdff; }
.cyber-tech .tx small{ font-family:'Rajdhani',sans-serif; font-size:.74rem; color:#8fb6c8; }
.tech-python{ color:#00f0ff; } .tech-langgraph{ color:#00ff9c; } .tech-langchain{ color:#ffb300; }
.tech-openai{ color:#b14aff; } .tech-tavily{ color:#ff2bd6; } .tech-streamlit{ color:#41e9ff; }
.tech-python .tic{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300f0ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M8 4C5.6 4 5 5.5 5 8c0 2-1 2.5-2 2.5 1 0 2 .5 2 2.5 0 2.5.6 4 3 4'/><path d='M16 4c2.4 0 3 1.5 3 4 0 2 1 2.5 2 2.5-1 0-2 .5-2 2.5 0 2.5-.6 4-3 4'/></svg>"); }
.tech-langgraph .tic{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300ff9c' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='6' cy='7' r='2'/><circle cx='18' cy='7' r='2'/><circle cx='12' cy='17' r='2'/><path d='M7.7 8.4l2.6 7M16.3 8.4l-2.6 7M8 7h8'/></svg>"); }
.tech-langchain .tic{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffb300' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M9.5 12a3 3 0 013-3h2.5'/><path d='M14.5 12a3 3 0 01-3 3H9'/><rect x='3' y='9.5' width='5' height='5' rx='2.5'/><rect x='16' y='9.5' width='5' height='5' rx='2.5'/></svg>"); }
.tech-openai .tic{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23b14aff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 2l8 4.6v9.2L12 22l-8-4.6V6.6z'/><path d='M12 8v8M8 12h8M9.5 9.5l5 5M14.5 9.5l-5 5'/></svg>"); }
.tech-tavily .tic{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff2bd6' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='6'/><path d='M20.5 20.5l-4.7-4.7M11 8.5v5M8.5 11h5'/></svg>"); }
.tech-streamlit .tic{ background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2341e9ff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M12 3l9 5-9 5-9-5z'/><path d='M3 13l9 5 9-5'/></svg>"); }

/* ---------- floating music toggle ---------- */
.music-btn{ position:fixed; right:18px; bottom:18px; z-index:9999;
  font-family:'Orbitron',sans-serif; font-size:.72rem; letter-spacing:1px; color:#bff7ff;
  background:rgba(7,16,28,.82); border:1px solid rgba(0,240,255,.6); padding:9px 13px; backdrop-filter:blur(4px);
  box-shadow:0 0 14px rgba(0,240,255,.3);
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  transition:color .25s, box-shadow .25s, background .25s, border-color .25s; }
.music-btn:hover{ color:#fff; box-shadow:0 0 20px rgba(0,240,255,.75); }
.music-btn.on{ color:#0a0410; background:linear-gradient(135deg,var(--cy),var(--mg)); border-color:var(--mg); animation:musicpulse 1.5s ease-in-out infinite; }
@keyframes musicpulse{ 0%,100%{ box-shadow:0 0 16px rgba(255,43,214,.5); } 50%{ box-shadow:0 0 30px rgba(255,43,214,.95); } }

.footer{ text-align:center; color:var(--ink-dim); font-family:'Share Tech Mono',monospace; font-size:.78rem; margin-top:28px; letter-spacing:1px; }

::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:#05060a; }
::-webkit-scrollbar-thumb{ background:linear-gradient(var(--cy),var(--vi)); }
