:root {
  color-scheme: dark;
  --bg: #07111f;
  --surface: #101d31;
  --surface-2: #16263d;
  --text: #f5fbff;
  --muted: #9bb3c9;
  --primary: #00e5ff;
  --secondary: #ff4fd8;
  --accent: #ffe66d;
  --border: rgba(255, 255, 255, 0.14);
  --shadow: 0 18px 60px rgba(0, 0, 0, 0.32);
  --radius: 8px;
  --hero-tint: rgba(7, 17, 31, 0.56);
}

* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: Inter, Roboto, Arial, sans-serif;
  line-height: 1.6;
}
body.intro-active {
  overflow: hidden;
}
body.intro-active > :not(.intro-gate):not(.intro-screen):not(.intro-reveal) {
  visibility: hidden;
}
body.intro-active > .intro-gate {
  visibility: visible;
}
body.intro-active > .intro-reveal {
  visibility: visible;
}
body.nav-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}
.intro-gate,
.intro-screen,
.intro-reveal {
  align-items: center;
  background: #000;
  display: flex;
  inset: 0;
  justify-content: center;
  opacity: 1;
  overflow: hidden;
  position: fixed;
  transition:
    opacity 520ms ease,
    visibility 520ms ease;
  visibility: visible;
  z-index: 9999;
}
.intro-gate {
  background:
    radial-gradient(circle at 50% 45%, rgba(229, 9, 20, 0.22), transparent 34%),
    #000;
}
.intro-gate-content {
  max-width: 840px;
  padding: 2rem;
  text-align: center;
}
.intro-gate-content p {
  color: #fff;
  font-size: clamp(2.4rem, 8vw, 6.4rem);
  font-weight: 900;
  letter-spacing: 0;
  line-height: 0.95;
  margin: 0 0 2rem;
  text-shadow:
    0 0 18px rgba(229, 9, 20, 0.5),
    0 0 40px rgba(255, 255, 255, 0.16);
}
.intro-gate-content p span {
  display: block;
}
.intro-ready {
  background: #e50914;
  border: 1px solid #ff5a63;
  border-radius: var(--radius);
  box-shadow: 0 12px 32px rgba(229, 9, 20, 0.34);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-weight: 800;
  padding: 0.95rem 1.35rem;
}
.intro-ready:hover,
.intro-ready:focus-visible {
  background: #ff1722;
}
.intro-screen.intro-finished {
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
}
.intro-screen[hidden],
.intro-reveal[hidden] {
  display: none;
}
.intro-video {
  height: 100%;
  object-fit: cover;
  width: 100%;
}
.intro-skip {
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.32);
  border-radius: var(--radius);
  color: #fff;
  cursor: pointer;
  font: inherit;
  padding: 0.75rem 1rem;
  position: fixed;
  z-index: 10000;
}
.intro-skip {
  right: 1rem;
  top: 1rem;
}
.intro-reveal {
  background:
    radial-gradient(circle at 50% 52%, rgba(120, 255, 206, 0.12), transparent 36%),
    #000;
  opacity: 0;
  pointer-events: none;
}
.intro-reveal.intro-reveal-visible {
  opacity: 1;
}
.intro-reveal.intro-reveal-finished {
  opacity: 0;
  visibility: hidden;
}
.intro-reveal-content {
  display: grid;
  gap: 1.1rem;
  padding: 2rem;
  text-align: center;
}
.intro-reveal-line {
  color: #78ffce;
  font-family: Arial, sans-serif;
  font-size: clamp(2.4rem, 9vw, 7rem);
  font-weight: 900;
  letter-spacing: 0.12em;
  line-height: 0.95;
  text-shadow:
    0 0 10px rgba(120, 255, 206, 0.86),
    0 0 28px rgba(185, 131, 255, 0.62),
    0 0 64px rgba(120, 255, 206, 0.36);
  white-space: nowrap;
}
.intro-reveal-right {
  color: #f8e16c;
  font-size: clamp(1.35rem, 4.7vw, 3.7rem);
  letter-spacing: 0.1em;
  text-shadow:
    0 0 10px rgba(248, 225, 108, 0.82),
    0 0 26px rgba(120, 255, 206, 0.36),
    0 0 42px rgba(185, 131, 255, 0.42);
}
.intro-letter {
  display: inline-block;
  opacity: 0;
  transform: translateX(var(--intro-letter-offset)) scale(0.72);
}
.intro-space {
  width: 0.35em;
}
.intro-reveal-visible .intro-letter {
  animation: introLetterReveal 620ms cubic-bezier(0.2, 0.9, 0.16, 1) forwards;
  animation-delay: var(--intro-letter-delay);
}
.intro-reveal-visible .intro-reveal-right .intro-letter {
  animation-delay: calc(var(--intro-letter-delay) + 420ms);
}
@keyframes introLetterReveal {
  0% {
    filter: blur(10px);
    opacity: 0;
    transform: translateX(var(--intro-letter-offset)) scale(0.72);
  }
  70% {
    filter: blur(0);
    opacity: 1;
    transform: translateX(0) scale(1.08);
  }
  100% {
    filter: blur(0);
    opacity: 1;
    transform: translateX(0) scale(1);
  }
}
.app-bar {
  --mdc-theme-primary: var(--surface);
  --mdc-theme-on-primary: var(--text);
  border-bottom: 1px solid var(--border);
  background: color-mix(in srgb, var(--surface) 88%, transparent) !important;
  backdrop-filter: blur(16px);
}
.app-bar .mdc-icon-button,
.app-bar .material-icons {
  color: var(--text);
}
.app-bar .mdc-icon-button:hover,
.app-bar .mdc-icon-button:focus-visible {
  background: color-mix(in srgb, var(--primary) 14%, transparent);
  color: var(--primary);
}
.brand {
  color: var(--text);
  font-weight: 800;
  letter-spacing: 0;
  margin-left: 0.35rem;
}
.brand:hover,
.brand:focus-visible {
  color: var(--primary);
}
.desktop-nav {
  display: flex;
  gap: 0.35rem;
  margin-right: 0.5rem;
}
.desktop-nav a {
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.92rem;
  padding: 0.45rem 0.75rem;
}
.desktop-nav a.active,
.desktop-nav a:hover {
  background: color-mix(in srgb, var(--primary) 16%, transparent);
  color: var(--text);
}
.menu-button {
  display: none;
}
.app-drawer {
  --mdc-theme-surface: var(--surface);
  --mdc-theme-on-surface: var(--text);
  background: var(--surface);
  border-right: 1px solid var(--border);
  bottom: 0;
  box-shadow: var(--shadow);
  display: flex !important;
  flex-direction: column;
  height: 100dvh;
  left: 0;
  max-width: min(82vw, 320px);
  position: fixed !important;
  top: 0;
  transform: translateX(-100%) !important;
  transition:
    transform 220ms ease,
    visibility 220ms ease;
  visibility: hidden;
  width: min(82vw, 320px);
  z-index: 31;
}
.app-drawer.nav-drawer-open {
  transform: translateX(0) !important;
  visibility: visible !important;
}
.mdc-drawer-scrim {
  background-color: rgba(0, 0, 0, 0.54);
  display: block;
  inset: 0;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  transition: opacity 225ms cubic-bezier(0.4, 0, 0.6, 1);
  z-index: 30;
}
.mdc-drawer-scrim.nav-scrim-visible {
  opacity: 1;
  pointer-events: auto;
}
.app-drawer .mdc-drawer__header {
  flex: 0 0 auto;
}
.app-drawer .mdc-drawer__content {
  flex: 1 1 auto;
  overflow-y: auto;
}
.drawer-nav {
  list-style: none;
  padding: 0;
  margin: 0;
}
.drawer-nav a {
  color: var(--text);
  transition:
    background-color 150ms ease,
    color 150ms ease;
}
.drawer-nav a:hover {
  background: color-mix(in srgb, var(--primary) 12%, transparent);
}
.drawer-nav a.mdc-list-item--activated {
  background: color-mix(in srgb, var(--primary) 16%, transparent);
  color: var(--primary);
}

.hero-section {
  align-items: center;
  display: flex;
  min-height: calc(100vh - 64px);
  overflow: hidden;
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 6vw, 6rem);
  position: relative;
}
#hero-canvas {
  inset: 0;
  position: absolute;
  width: 100%;
  height: 100%;
}
.hero-section::after {
  background: linear-gradient(90deg, var(--hero-tint), transparent 78%);
  content: "";
  inset: 0;
  pointer-events: none;
  position: absolute;
}
.hero-overlay {
  max-width: 780px;
  position: relative;
  z-index: 1;
}
.hero-greeting {
  color: var(--primary);
  font-size: clamp(1rem, 2vw, 1.25rem);
  font-weight: 700;
  margin: 0 0 0.4rem;
}
.hero-name {
  font-size: clamp(3.2rem, 9vw, 8.6rem);
  line-height: 0.92;
  margin: 0;
}
.hero-title {
  color: var(--secondary);
  font-size: clamp(1.5rem, 4vw, 3.2rem);
  line-height: 1.05;
  margin: 1rem 0 0;
}
.hero-summary {
  color: var(--muted);
  font-size: clamp(1rem, 2vw, 1.22rem);
  max-width: 660px;
}
.hero-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.7rem;
  margin-top: 1.5rem;
}
.about-content {
  align-items: center;
  display: grid;
  gap: 2rem;
  grid-template-columns: minmax(220px, 320px) minmax(0, 1fr);
}
.about-text {
  min-width: 0;
}
.about-image {
  aspect-ratio: 1;
  border-radius: 12px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
  justify-self: start;
  object-fit: cover;
  width: min(100%, 320px);
}
@media (max-width: 768px) {
  .about-content {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  .about-image {
    justify-self: start;
    width: 100%;
  }
}
.mdc-button {
  --mdc-theme-primary: var(--primary);
  border-radius: var(--radius);
  color: var(--primary);
}
.mdc-button--raised {
  --mdc-theme-primary: var(--primary);
  color: #07111f;
}

.page-section {
  padding: clamp(4rem, 8vw, 7rem) clamp(1.25rem, 6vw, 6rem);
}
.section-inner {
  margin: 0 auto;
  max-width: 1180px;
}
.section-kicker {
  color: var(--primary);
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.section-title {
  font-size: clamp(2rem, 5vw, 4rem);
  line-height: 1;
  margin: 0.35rem 0 1rem;
}
.section-copy {
  color: var(--muted);
  max-width: 760px;
}
.grid {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  margin-top: 1.5rem;
}
.card {
  background: color-mix(in srgb, var(--surface) 88%, transparent);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 1.2rem;
}
.card h3 {
  line-height: 1.18;
  margin: 0 0 0.45rem;
}
.card p,
.card li {
  color: var(--muted);
}
.meta {
  color: var(--primary);
  font-weight: 700;
}
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.9rem;
}
.chip {
  background: color-mix(in srgb, var(--accent) 16%, transparent);
  border: 1px solid color-mix(in srgb, var(--accent) 36%, transparent);
  border-radius: 999px;
  color: var(--text);
  font-size: 0.8rem;
  padding: 0.26rem 0.58rem;
}
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity 520ms ease,
    transform 520ms ease;
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}
.scroll-top {
  --mdc-theme-secondary: var(--primary);
  bottom: 1.25rem;
  opacity: 0;
  pointer-events: none;
  position: fixed;
  right: 1.25rem;
  transform: translateY(16px);
  transition:
    opacity 180ms ease,
    transform 180ms ease;
  z-index: 8;
}
.scroll-top.visible {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

.theme-dialog {
  align-items: center;
  background: rgba(0, 0, 0, 0.54);
  display: none;
  inset: 0;
  justify-content: center;
  padding: 1rem;
  position: fixed;
  z-index: 20;
}
.theme-dialog.open {
  display: flex;
}
.theme-panel {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  max-height: min(760px, 92vh);
  max-width: 980px;
  overflow: auto;
  padding: 1rem;
  width: 100%;
}
.theme-panel-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}
.theme-panel h2 {
  margin: 0;
}
.theme-grid {
  display: grid;
  gap: 0.7rem;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-top: 1rem;
}
.theme-option {
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text);
  cursor: pointer;
  min-height: 86px;
  padding: 0.8rem;
  text-align: left;
}
.theme-option.active {
  outline: 2px solid var(--primary);
}
.swatches {
  display: flex;
  gap: 0.3rem;
  margin-top: 0.65rem;
}
.swatch {
  border-radius: 999px;
  height: 16px;
  width: 16px;
}

[data-theme="glassmorphism"] {
  --bg: #dce9f7;
  --surface: rgba(255, 255, 255, 0.46);
  --surface-2: rgba(255, 255, 255, 0.64);
  --text: #102033;
  --muted: #52677d;
  --primary: #2e6cf6;
  --secondary: #12a894;
  --accent: #ffb02e;
  --border: rgba(30, 54, 84, 0.2);
  --hero-tint: rgba(220, 233, 247, 0.74);
  color-scheme: light;
}
[data-theme="warm-neutral"] {
  --bg: #17120e;
  --surface: #241b15;
  --surface-2: #34271f;
  --text: #fff5ea;
  --muted: #c7ab92;
  --primary: #f1b46d;
  --secondary: #ef6f61;
  --accent: #7bd3b2;
  --border: rgba(255, 245, 234, 0.16);
  --hero-tint: rgba(23, 18, 14, 0.68);
}
[data-theme="neo-brutalist"] {
  --bg: #f8f13d;
  --surface: #ffffff;
  --surface-2: #111111;
  --text: #111111;
  --muted: #343434;
  --primary: #ff3b30;
  --secondary: #0057ff;
  --accent: #13d66f;
  --border: #111111;
  --shadow: 8px 8px 0 #111;
  --hero-tint: rgba(248, 241, 61, 0.68);
  color-scheme: light;
}
[data-theme="aurora"] {
  --bg: #071a2c;
  --surface: #0e2b3d;
  --surface-2: #153b47;
  --text: #f1fff9;
  --muted: #9dc8c4;
  --primary: #78ffce;
  --secondary: #b983ff;
  --accent: #f8e16c;
  --hero-tint: rgba(7, 26, 44, 0.58);
}
[data-theme="saas-light"] {
  --bg: #f7f9fc;
  --surface: #ffffff;
  --surface-2: #eef3fa;
  --text: #182235;
  --muted: #637086;
  --primary: #2457d6;
  --secondary: #13a47f;
  --accent: #ffb224;
  --border: rgba(24, 34, 53, 0.13);
  --hero-tint: rgba(247, 249, 252, 0.78);
  color-scheme: light;
}
[data-theme="bento-paper"] {
  --bg: #fbf7ef;
  --surface: #ffffff;
  --surface-2: #eee7da;
  --text: #211d18;
  --muted: #756c61;
  --primary: #264f9e;
  --secondary: #bf4d3a;
  --accent: #2d9c73;
  --border: rgba(33, 29, 24, 0.14);
  --hero-tint: rgba(251, 247, 239, 0.75);
  color-scheme: light;
}
[data-theme="neon-noir"] {
  --bg: #060609;
  --surface: #101014;
  --surface-2: #191923;
  --text: #f7f4ff;
  --muted: #a19aae;
  --primary: #fbff12;
  --secondary: #ff2fd6;
  --accent: #00ff9d;
  --hero-tint: rgba(6, 6, 9, 0.66);
}
[data-theme="obsidian"] {
  --bg: #080a0d;
  --surface: #11151a;
  --surface-2: #1d232b;
  --text: #f1f4f7;
  --muted: #9aa4ad;
  --primary: #9bd4ff;
  --secondary: #d7a9ff;
  --accent: #ffcf70;
  --hero-tint: rgba(8, 10, 13, 0.7);
}
[data-theme="slate-executive"] {
  --bg: #111827;
  --surface: #182233;
  --surface-2: #243044;
  --text: #f8fafc;
  --muted: #a5b4c8;
  --primary: #7dd3fc;
  --secondary: #f97316;
  --accent: #facc15;
  --border: rgba(248, 250, 252, 0.15);
  --hero-tint: rgba(17, 24, 39, 0.7);
}
[data-theme="ai-research-white"] {
  --bg: #ffffff;
  --surface: #f5f7fb;
  --surface-2: #e9eef6;
  --text: #111827;
  --muted: #68758a;
  --primary: #006adc;
  --secondary: #7846d9;
  --accent: #00a36f;
  --border: rgba(17, 24, 39, 0.12);
  --hero-tint: rgba(255, 255, 255, 0.82);
  color-scheme: light;
}
[data-theme="liquid-glass-light"] {
  --bg: #e8f5ff;
  --surface: rgba(255, 255, 255, 0.6);
  --surface-2: rgba(218, 238, 255, 0.68);
  --text: #102235;
  --muted: #5d738a;
  --primary: #008ce3;
  --secondary: #de4386;
  --accent: #19ad8c;
  --border: rgba(16, 34, 53, 0.14);
  --hero-tint: rgba(232, 245, 255, 0.72);
  color-scheme: light;
}
[data-theme="spatial-minimal"] {
  --bg: #f9fafb;
  --surface: #ffffff;
  --surface-2: #eef0f3;
  --text: #181a1f;
  --muted: #666d79;
  --primary: #111827;
  --secondary: #4762ff;
  --accent: #f05d23;
  --border: rgba(24, 26, 31, 0.12);
  --hero-tint: rgba(249, 250, 251, 0.83);
  color-scheme: light;
}
[data-theme="soft-neumorphism-pro"] {
  --bg: #e9edf3;
  --surface: #e9edf3;
  --surface-2: #f7f9fc;
  --text: #202734;
  --muted: #667386;
  --primary: #2f6fe4;
  --secondary: #ef5a7a;
  --accent: #1d9a7b;
  --border: rgba(255, 255, 255, 0.75);
  --shadow:
    10px 10px 24px rgba(163, 177, 198, 0.55),
    -10px -10px 24px rgba(255, 255, 255, 0.9);
  --hero-tint: rgba(233, 237, 243, 0.75);
  color-scheme: light;
}
[data-theme="editorial-grid-light"] {
  --bg: #fdfdfb;
  --surface: #ffffff;
  --surface-2: #f1f1ed;
  --text: #151515;
  --muted: #64645f;
  --primary: #c3262f;
  --secondary: #174a7c;
  --accent: #d4a72c;
  --border: rgba(21, 21, 21, 0.18);
  --hero-tint: rgba(253, 253, 251, 0.82);
  color-scheme: light;
}
[data-theme="bento-ai-dashboard"] {
  --bg: #0d1220;
  --surface: #151c2d;
  --surface-2: #202b42;
  --text: #f8fbff;
  --muted: #9ba8bd;
  --primary: #60a5fa;
  --secondary: #34d399;
  --accent: #fbbf24;
  --hero-tint: rgba(13, 18, 32, 0.62);
}
[data-theme="ai-command-center"] {
  --bg: #030712;
  --surface: #0b1120;
  --surface-2: #111c31;
  --text: #eff6ff;
  --muted: #9fb1ca;
  --primary: #22d3ee;
  --secondary: #a78bfa;
  --accent: #f43f5e;
  --hero-tint: rgba(3, 7, 18, 0.66);
}
[data-theme="obsidian-depth"] {
  --bg: #050507;
  --surface: #0e0f13;
  --surface-2: #191b22;
  --text: #f5f7fb;
  --muted: #a2a7b2;
  --primary: #7dd3fc;
  --secondary: #f0abfc;
  --accent: #fde68a;
  --hero-tint: rgba(5, 5, 7, 0.72);
}
[data-theme="infra-cloud"] {
  --bg: #eef7ff;
  --surface: #ffffff;
  --surface-2: #dfeeff;
  --text: #102033;
  --muted: #60758d;
  --primary: #0f6bff;
  --secondary: #00a884;
  --accent: #ff9f1c;
  --border: rgba(16, 32, 51, 0.13);
  --hero-tint: rgba(238, 247, 255, 0.76);
  color-scheme: light;
}
[data-theme="dark-cyber-neo"] {
  --bg: #040d12;
  --surface: #071a20;
  --surface-2: #0d2830;
  --text: #effcff;
  --muted: #91b7bf;
  --primary: #00f5d4;
  --secondary: #ff006e;
  --accent: #fee440;
  --hero-tint: rgba(4, 13, 18, 0.64);
}

@media (max-width: 767px) {
  .desktop-nav {
    display: none;
  }
  .menu-button {
    display: inline-flex;
  }
  .brand {
    margin-left: 0;
  }
  .app-drawer {
    width: min(82vw, 320px);
  }
  .hero-section {
    min-height: calc(92vh - 56px);
    padding-top: 5rem;
  }
  .hero-section::after {
    background: linear-gradient(
      180deg,
      var(--hero-tint),
      color-mix(in srgb, var(--bg) 50%, transparent)
    );
  }
  .page-section {
    padding: 3.25rem 1rem;
  }
}

@media (max-width: 900px) {
  .theme-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .theme-grid {
    grid-template-columns: 1fr;
  }
}
