html {
  scroll-behavior: smooth;
}

html, body {
  min-height: 100%;
  margin: 0;
  padding: 0;
  color: #F3F2EF;
  font-family: 'Inter', sans-serif;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background: #0B0B0D;
}

*, *::before, *::after {
  box-sizing: border-box;
}

body {
  line-height: 1.6;
  background: #0B0B0D;
}

::selection {
  background: #3D5FFF;
  color: #fff;
}

.noise {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.035'/%3E%3C/svg%3E");
  pointer-events: none;
}
.glass {
  background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02));
  backdrop-filter: blur(18px);
  border: 1px solid rgba(255,255,255,0.09);
}
.grad-text {
  background: linear-gradient(100deg, #F3F2EF 30%, #6E85FF 90%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.glow-blue { box-shadow: 0 0 0 1px rgba(61,95,255,0.35), 0 8px 40px -10px rgba(61,95,255,0.45); }
.glow-copper { box-shadow: 0 0 0 1px rgba(224,141,69,0.35), 0 8px 40px -10px rgba(224,141,69,0.4); }
.caret::after{
  content: '';
  display:inline-block;
  width:8px; height:1.1em;
  background:#3D5FFF;
  margin-left:2px;
  vertical-align: -2px;
  animation: blink 1s steps(1) infinite;
}
@keyframes blink { 50% { opacity:0; } }
.reveal { opacity:0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform: translateY(0); }
.card-hover { transition: transform .35s cubic-bezier(.2,.8,.2,1), border-color .35s ease, background .35s ease; }
.card-hover:hover { transform: translateY(-4px); border-color: rgba(61,95,255,0.5); }
.bento-line { background: radial-gradient(circle at 20% 20%, rgba(61,95,255,0.10), transparent 60%); }
nav a { position:relative; }
nav a.navlink::after{
  content:''; position:absolute; left:0; bottom:-4px; width:0%; height:1px; background:#3D5FFF;
  transition: width .3s ease;
}
nav a.navlink:hover::after{ width:100%; }
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:#0B0B0D; }
::-webkit-scrollbar-thumb{ background:#26262B; border-radius:8px; }
@media (prefers-reduced-motion: reduce){
  .reveal { opacity:1 !important; transform:none !important; transition:none !important; }
  .caret::after{ animation:none; }
}

a {
  color: inherit;
  text-decoration: none;
}

img, svg {
  max-width: 100%;
  height: auto;
}

input, select, textarea, button {
  font: inherit;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}

::placeholder {
  color: rgba(243, 242, 239, 0.65);
}

section {
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}

@media (max-width: 1023px) {
  .max-w-7xl {
    padding-left: 1rem;
    padding-right: 1rem;
  }

  .glass {
    background: linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.03));
  }

  nav a {
    font-size: 0.95rem;
  }
}

@media (max-width: 767px) {
  html {
    font-size: 15px;
  }

  header {
    padding-top: 0.6rem;
  }

  #mobile-menu {
    margin-top: 0.9rem;
    padding: 1rem 1rem 1.25rem;
    background: rgba(11, 11, 13, 0.98);
    border: 1px solid rgba(255,255,255,0.1);
    color: #F3F2EF;
  }

  #mobile-menu a,
  #mobile-menu .mobile-link {
    color: #F3F2EF !important;
  }

  #mobile-menu .mobile-link {
    padding: 0.85rem 1rem;
    border-radius: 0.95rem;
    display: block;
    width: 100%;
    align-items: center;
    justify-content: flex-start;
    color: #F3F2EF !important;
  }

  #mobile-menu .mobile-link:hover {
    color: #fff !important;
    background: rgba(61,95,255,0.08);
  }

  button#menu-btn {
    width: 2.75rem;
    height: 2.75rem;
  }

  .glass {
    border-radius: 1rem;
    background: linear-gradient(180deg, rgba(255,255,255,0.07), rgba(255,255,255,0.03));
  }

  .text-mute {
    color: rgba(243, 242, 239, 0.8);
  }

  .text-ink,
  .text-white {
    color: #F3F2EF;
  }

  .font-display {
    letter-spacing: -0.02em;
  }

  .text-4xl {
    font-size: 2.4rem;
  }

  .text-5xl,
  .lg\:text-5xl {
    font-size: 3rem;
  }

  .text-xl,
  .sm\:text-2xl,
  .lg\:text-3xl {
    line-height: 1.2;
  }

  .grad-text {
    font-size: 2.35rem;
    line-height: 1.05;
  }

  .grid,
  .flex {
    gap: 1rem;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }

  .card-hover {
    transition: transform 0.2s ease, border-color 0.2s ease, background 0.2s ease;
  }

  .glass p,
  .glass label,
  .glass input,
  .glass select,
  .glass button {
    color: #F3F2EF;
  }

  .glass input,
  .glass select {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255,255,255,0.12);
  }

  input:focus,
  select:focus,
  button:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(61,95,255,0.16);
  }

  pre#typer {
    min-height: 220px;
    white-space: pre-wrap;
    word-break: break-word;
  }

  .h-64 {
    min-height: 16rem;
  }

  .bg-surface,
  .bg-surface2 {
    background-color: rgba(255, 255, 255, 0.04);
  }

  .border-line {
    border-color: rgba(255, 255, 255, 0.12);
  }

  .bg-[#111115] {
    background-color: #111115;
  }
}

header {
  position: relative;
  z-index: 50;
}

main {
  display: block;
}

main {
  display: block;
}

button,
input,
select,
textarea {
  border: none;
  background: none;
}

button {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.65;
}
