:root{
  --bg:#0f1420;
  --panel:#161c29;
  --text:#e5ecff;
  --muted:#9fb0d3;
  --ring:rgba(107,173,255,.35);
  --radius:16px;
  --hairline:#1c2436;
  --accent:#6badff;
  --accent-2:#8b5cf6;
  --ease-smooth:cubic-bezier(.22,1,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --shadow:0 12px 26px rgba(0,0,0,.35);
  --shadow-lg:0 16px 34px rgba(0,0,0,.45);
  --dur-fast:.16s;
  --dur:.28s;
  --dur-slow:.6s;
  --space-1:4px;
  --space-2:8px;
  --space-3:12px;
  --space-4:16px;
  --space-5:20px;
  --space-6:24px;
  --container:1200px
}
*,:before,:after{box-sizing:border-box}
html,body{height:100%}
:root{color-scheme:dark}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,Segoe UI,Roboto,Arial,sans-serif;
  background:#0d1220;
  color:var(--text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility
}
::selection{background:rgba(107,173,255,.25)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button{font:inherit;color:inherit}
.container{max-width:var(--container);margin-inline:auto;padding-inline:var(--space-5)}

.site-header{
  position:sticky;top:0;z-index:10;
  background:rgba(15,20,32,.82);
  border-bottom:1px solid var(--hairline);
  backdrop-filter:blur(10px);
  transition:background var(--dur) var(--ease-smooth),border-color var(--dur) var(--ease-smooth)
}
@supports not (backdrop-filter:blur(10px)){.site-header{background:#0f1420}}
.header-row{display:flex;align-items:center;gap:var(--space-4);padding-block:14px}

.brand{display:flex;align-items:center;gap:10px;color:var(--text)}
.brand-logo{width:34px;height:34px;flex:0 0 34px;filter:drop-shadow(0 6px 16px rgba(107,173,255,.12))}
.brand-name{font-weight:800;letter-spacing:.4px}

.nav{margin-left:auto;display:flex;align-items:center;gap:14px}
.nav-toggle{
  display:none;background:transparent;border:0;cursor:pointer;
  inline-size:40px;block-size:40px;border-radius:12px;position:relative;
  transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur) var(--ease-out)
}
.nav-toggle:focus-visible{outline:0;box-shadow:0 0 0 3px var(--ring)}
.nav-toggle:active{transform:scale(.98)}
.nav-toggle .bar{display:block;width:22px;height:2px;background:#b9c8ea;margin:4px 0;border-radius:2px;transition:background var(--dur-fast) linear}

.nav-menu{display:flex;gap:12px;list-style:none;margin:0;padding:0}
.nav-menu a{
  position:relative;display:block;padding:10px 14px;border-radius:12px;
  color:var(--muted);font-weight:700;
  transition:
    transform var(--dur) var(--ease-smooth),
    background var(--dur) var(--ease-smooth),
    box-shadow var(--dur) var(--ease-smooth),
    color var(--dur) var(--ease-smooth),
    letter-spacing var(--dur) var(--ease-smooth)
}
.nav-menu a::after{
  content:"";
  position:absolute;left:12px;right:12px;bottom:6px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--accent),transparent);
  transform:scaleX(0);transform-origin:center;
  transition:transform var(--dur) var(--ease-out)
}
@media(hover:hover){
  .nav-menu a:hover{background:#1a2236;color:var(--text);transform:translateY(-2px);letter-spacing:.2px}
  .nav-menu a:hover::after{transform:scaleX(1)}
}
.nav-menu a:focus-visible{outline:0;box-shadow:0 0 0 2px var(--ring)}
.nav-menu a:focus-visible::after{transform:scaleX(1)}
.nav-menu a.active{
  background:#1b2232;color:var(--text);
  box-shadow:0 0 0 2px var(--ring) inset
}
.nav-menu a.active::after{transform:scaleX(1)}

main{min-height:calc(100vh - 140px);display:flex;flex-direction:column;justify-content:center;gap:24px}

.hero{
  background:
    radial-gradient(900px 500px at 0% -10%,rgba(107,173,255,.12),transparent 40%),
    radial-gradient(900px 500px at 100% 110%,rgba(139,92,246,.12),transparent 40%),
    linear-gradient(180deg,#0d1220,#0f1420);
  background-size:160% 160%,160% 160%,100% 100%;
  animation:hero-pan 38s linear infinite paused;
  animation-play-state:running;
  transition:background var(--dur-slow) var(--ease-smooth)
}
.hero:before{
  content:"";
  position:fixed;inset:auto auto 8% 50%;width:46vw;max-width:560px;aspect-ratio:3/1;border-radius:999px;
  background:radial-gradient(60% 120% at 50% 50%,rgba(107,173,255,.12),transparent 60%);
  filter:blur(24px);transform:translateX(-50%) translateZ(0);
  pointer-events:none;opacity:.7;
  transition:opacity var(--dur) var(--ease-smooth),filter var(--dur) var(--ease-smooth)
}
.hero-inner{display:flex;justify-content:center;padding-inline:var(--space-5)}
.hero-text{text-align:center;max-width:900px;margin-inline:auto}
.hero-text h1{
  margin:0 0 10px;
  font-size:clamp(28px,3.5vw,44px);
  letter-spacing:.2px;
  opacity:0;transform:translateY(10px) scale(.985);
  animation:rise var(--dur-slow) var(--ease-smooth) .04s both
}
.hero-text p{
  margin:0;color:var(--muted);font-weight:600;
  opacity:0;transform:translateY(8px);
  animation:rise var(--dur-slow) var(--ease-smooth) .14s both
}

.modes{padding:0 0 var(--space-6)}
.mode-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:20px;
  width:min(100%,900px);
  margin:0 auto
}
.mode-card{
  position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:18px;border-radius:var(--radius);
  background:var(--panel);border:1px solid #212a42;color:var(--text);font-weight:800;
  box-shadow:var(--shadow);
  transition:
    transform var(--dur) var(--ease-smooth),
    box-shadow var(--dur) var(--ease-smooth),
    filter var(--dur) var(--ease-smooth),
    outline-color var(--dur) var(--ease-smooth),
    background var(--dur) var(--ease-smooth),
    border-color var(--dur) var(--ease-smooth);
  overflow:hidden;
  opacity:0;transform:translateY(8px) scale(.985);
  animation:rise var(--dur-slow) var(--ease-smooth) both
}
.mode-card:nth-child(1){animation-delay:.05s}
.mode-card:nth-child(2){animation-delay:.1s}
.mode-card:nth-child(3){animation-delay:.15s}
.mode-card:nth-child(4){animation-delay:.2s}
.mode-card:nth-child(5){animation-delay:.25s}
.mode-card:nth-child(6){animation-delay:.3s}
.mode-card img{width:50px;height:50px;filter:drop-shadow(0 10px 24px rgba(107,173,255,.12));transition:transform var(--dur) var(--ease-smooth),filter var(--dur) var(--ease-smooth)}
@media(hover:hover){
  .mode-card:hover{
    outline:3px solid var(--ring);
    transform:translateY(-4px) scale(1.015);
    box-shadow:var(--shadow-lg),0 0 0 1px rgba(107,173,255,.12),0 30px 60px rgba(107,173,255,.08)
  }
  .mode-card:hover img{transform:translateY(-2px);filter:drop-shadow(0 16px 34px rgba(107,173,255,.16))}
}
.mode-card:focus-visible{outline:3px solid var(--ring)}
.mode-card.disabled{opacity:.55;pointer-events:none;filter:saturate(.8)}
.mode-card:after{
  content:"";
  position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;
  background:linear-gradient(120deg,transparent 40%,rgba(107,173,255,.22) 50%,transparent 60%);
  transform:translateX(-120%);
  transition:transform .9s var(--ease-out)
}
@media(hover:hover){.mode-card:hover:after{transform:translateX(120%)}}

.site-footer{border-top:1px solid var(--hairline);background:#0e1220}
.footer-row{
  display:flex;align-items:center;justify-content:center;padding:18px 0;color:var(--muted);font-weight:600;
  opacity:0;animation:fade var(--dur-slow) var(--ease-smooth) .2s both
}

@media(max-width:900px){
  .nav-toggle{display:inline-block}
  .nav-menu{
    position:absolute;top:64px;right:20px;background:var(--panel);
    border:1px solid #24314d;border-radius:14px;flex-direction:column;min-width:220px;padding:8px;display:none;
    box-shadow:var(--shadow-lg);transform-origin:top right
  }
  .nav-menu.open{
    display:flex;opacity:0;transform:translateY(-6px) scale(.98);
    animation:pop var(--dur) var(--ease-out) both
  }
  .nav-menu a{padding:12px 14px}
}

@media(max-width:600px){
  .container{padding-inline:16px}
  .hero-inner{padding-inline:0}
  .hero-text h1{font-size:clamp(24px,6vw,36px)}
}

@media(prefers-reduced-motion:reduce){
  *{animation:none !important;transition:none !important;scroll-behavior:auto !important}
}

@keyframes hero-pan{
  0%{background-position:0% 0%,100% 100%,0 0}
  50%{background-position:100% 0%,0% 100%,0 0}
  100%{background-position:0% 0%,100% 100%,0 0}
}
@keyframes rise{
  0%{opacity:0;transform:translateY(10px) scale(.985)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes pop{
  0%{opacity:0;transform:scale(.98) translateY(-6px)}
  100%{opacity:1;transform:scale(1) translateY(0)}
}
@keyframes fade{
  0%{opacity:0}
  100%{opacity:1}
}
