:root{--bg:#070b12;--panel:#0e1423;--text:#f0f4fd;--muted:#a9b6e7;--neon1:#00ffff;--neon2:#00ff77;--radius:18px;--shadow:0 40px 120px -24px rgba(0,255,220,.20);--ease:.33s cubic-bezier(.22,.08,.54,1);--maxw:1180px;--pad:16px;--header-h:64px;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,'Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:#070b12;color:var(--text);-webkit-font-smoothing:antialiased}.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}a{color:inherit;text-decoration:none}
header{position:sticky;top:0;z-index:1000;background:rgba(15,18,32,.75);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,255,255,.14)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0}
.logo{font-weight:900;letter-spacing:.5px}.logo span{color:var(--neon2);font-weight:700}
nav ul{display:flex;gap:18px;list-style:none;margin:0;padding:0}nav a{padding:8px 10px;border-radius:10px;font-weight:700;transition:var(--ease)}
nav a.active,nav a:hover{background:linear-gradient(135deg,var(--neon1),var(--neon2));color:#001;box-shadow:0 0 22px rgba(0,255,255,.35)}
.hamburger{display:none;flex-direction:column;gap:4px;width:30px;cursor:pointer;border:0;background:none}.hamburger span{height:3px;background:#fff;border-radius:2px}
@media (max-width:860px){.hamburger{display:flex}nav{display:none}body.nav-open nav{display:block !important;position:fixed !important;inset:0;height:100dvh;min-height:100dvh;z-index:99990;background:rgba(7,12,18,.96);backdrop-filter:blur(12px) saturate(110%);padding: calc(env(safe-area-inset-top) + var(--header-h) + 16px) 16px calc(env(safe-area-inset-bottom) + 28px);overflow-y:auto}nav ul{flex-direction:column;gap:16px}nav a{display:flex;align-items:center;min-height:56px;padding:16px 20px;border-radius:16px;font-size:18px;font-weight:800;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}nav a:hover{background:rgba(0,255,208,.10);border-color:rgba(0,255,208,.38);transform:translateY(-1px)}}
.hero{padding:64px 0 18px}.hero h1{margin:0;font-size:2rem}.hero p{color:var(--muted)}.section{padding:22px 0 40px}.panel{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.card{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:14px}.dim{opacity:.9;color:var(--muted)}.badge{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.2px;padding:6px 10px;border-radius:999px;background:rgba(0,255,119,.15);border:1px solid rgba(0,255,119,.4);color:#bfffe1}
footer .footer-inner{display:flex;flex-direction:column;align-items:center;gap:14px;padding: 26px 0 28px}footer .footer-social a{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background: rgba(255,255,255,.03);border: 1px solid rgba(0,255,255,.14);font-weight:700}footer .copy{opacity:.85;font-size:.92rem}.btn-outline{display:inline-block;margin-top:8px;padding:10px 14px;border-radius:12px;border:1px solid rgba(0,255,255,.35)}#toTop{position:fixed;right:18px;bottom:18px;opacity:.9;border:0;border-radius:12px;padding:10px 14px;background:linear-gradient(135deg,#00ffff,#00ff77);color:#001;font-weight:900;cursor:pointer}
/* custom cursor */
#custom-cursor, #cursor-ring {
  position: fixed;
  top: 0;
  left: 0;
  transform: translate(-50%, -50%);
  pointer-events: none;
  border-radius: 50%;
  z-index: 10000;
  mix-blend-mode: screen;
}
#custom-cursor {
  width: 14px;
  height: 14px;
  background: radial-gradient(circle at 30% 30%, #fff, var(--neon1));
  border: 2px solid rgba(0,255,255,0.85);
  box-shadow: 0 0 8px rgba(0,255,255,0.9),
              0 0 20px rgba(0,255,255,0.55),
              0 0 40px rgba(0,255,255,0.25);
  transition: transform .12s linear;
}
#cursor-ring {
  width: 38px;
  height: 38px;
  border: 2px solid rgba(0,255,255,0.45);
  box-shadow: 0 0 18px rgba(0,255,255,0.45),
              0 0 42px rgba(0,255,255,0.25);
  transition: transform .15s ease, border-color .15s ease;
}
.cursor-hot #custom-cursor {
  transform: translate(-50%, -50%) scale(1.28);
}
.cursor-hot #cursor-ring {
  transform: translate(-50%, -50%) scale(1.12);
  border-color: #00ffff;
}
@media (pointer:coarse){
  body {cursor:auto}
  #custom-cursor,#cursor-ring{display:none}
}
