/* ===== Tokens — dark (default): white on black ===== */
:root, [data-theme="dark"]{
  --bg: #0B0B0C;
  --bg-soft: #1A1A1C;
  --text: #F5F5F5;
  --text-dim: #9A9A9E;
  --text-faint: #5C5C60;
  --line: rgba(245,245,245,0.14);
  --canvas-opacity: .8;
}
/* light: black on white */
[data-theme="light"]{
  --bg: #FFFFFF;
  --bg-soft: #F1F1F1;
  --text: #0B0B0C;
  --text-dim: #5C5C60;
  --text-faint: #9A9A9E;
  --line: rgba(11,11,12,0.14);
  --canvas-opacity: .55;
}

:root{
  --font-display: 'Big Shoulders Display', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
  --ease: cubic-bezier(.16,.84,.32,1);
  --pad-x: clamp(20px, 6vw, 64px);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important;}
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  transition:background .4s var(--ease), color .4s var(--ease);
}
a{color:inherit; text-decoration:none;}
.mono{font-family:var(--font-mono);}

.noise{
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.035;
  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)'/%3E%3C/svg%3E");
}

/* ===== Nav ===== */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:50;
  display:flex; align-items:center; justify-content:space-between;
  padding:20px var(--pad-x);
  border-bottom:1px solid transparent;
  transition:background .35s var(--ease), border-color .35s var(--ease);
}
.nav.nav-scrolled{
  background:var(--bg);
  border-bottom-color:var(--line);
}
.nav-mark-img{height:32px; display:block;}
.nav-links{display:flex; align-items:center; gap:24px; font-size:14px; font-weight:500;}
.nav-links a{
  position:relative;
  color:var(--text); opacity:.7;
  padding-bottom:3px;
  transition:opacity .2s var(--ease);
}
.nav-links a::after{
  content:"";
  position:absolute; left:0; bottom:0;
  width:0; height:1px;
  background:var(--text);
  transition:width .3s var(--ease);
}
.nav-links a:hover{opacity:1;}
.nav-links a:hover::after, .nav-links a.active::after{width:100%;}
.nav-links a.active{opacity:1;}
.nav-cta::after{display:none;}
.nav-cta{
  opacity:1 !important;
  border:1px solid var(--line);
  padding:8px 16px;
  border-radius:100px;
  font-size:13px;
}

.theme-toggle{
  background:none; border:none; padding:0; cursor:pointer;
  display:flex; align-items:center;
}
.theme-toggle-track{
  width:44px; height:24px;
  border-radius:100px;
  border:1px solid var(--line);
  background:var(--bg-soft);
  position:relative;
  transition:background .3s var(--ease);
  display:block;
}
.theme-toggle-thumb{
  position:absolute;
  top:2px; left:2px;
  width:18px; height:18px;
  border-radius:50%;
  background:var(--text);
  transition:transform .35s var(--ease), background .3s var(--ease);
  display:flex; align-items:center; justify-content:center;
}
[data-theme="light"] .theme-toggle-thumb{transform:translateX(20px);}
.theme-toggle-thumb svg{
  position:absolute;
  width:11px; height:11px;
  color:var(--bg);
  transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.icon-sun{opacity:0; transform:rotate(-80deg) scale(.4);}
.icon-moon{opacity:1; transform:rotate(0) scale(1);}
[data-theme="light"] .icon-sun{opacity:1; transform:rotate(0) scale(1);}
[data-theme="light"] .icon-moon{opacity:0; transform:rotate(80deg) scale(.4);}

/* ===== Hero ===== */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  padding:0 var(--pad-x);
  overflow:hidden;
}
.hero-canvas{
  position:absolute;
  inset:0;
  width:100%; height:100%;
  z-index:0;
  opacity:var(--canvas-opacity);
}
.hero-inner{
  position:relative; z-index:2;
  max-width:900px;
}
.hero-mark{
  height:64px;
  margin-bottom:28px;
  opacity:.9;
}
.kicker{
  font-family:var(--font-mono);
  font-size:12.5px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--text-dim);
  margin:0 0 20px;
}
.hero-name{
  font-family:var(--font-display);
  font-weight:900;
  text-transform:uppercase;
  line-height:.86;
  margin:0 0 28px;
  font-size:clamp(64px, 13vw, 168px);
  letter-spacing:-0.01em;
}
.hero-name .line{display:block;}
.line-outline{
  color:transparent;
  -webkit-text-stroke:1.5px var(--text);
}
.hero-sub{
  font-size:clamp(16px,1.8vw,20px);
  color:var(--text-dim);
  max-width:36ch;
  margin:0 0 40px;
}
.hero-actions{display:flex; flex-wrap:wrap; gap:14px;}
.btn{
  display:inline-flex; align-items:center;
  padding:15px 26px;
  border-radius:100px;
  font-size:14px; font-weight:600;
  transition:transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
  will-change:transform;
}
.btn-fill{background:var(--text); color:var(--bg);}
.btn-line{border:1px solid var(--line);}
.btn-line:hover{border-color:var(--text-dim);}

.scroll-hint{
  position:absolute;
  bottom:28px; left:50%;
  transform:translateX(-50%);
  z-index:2;
  font-size:11px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--text-faint);
}
.scroll-hint::after{
  content:"";
  display:block;
  width:1px; height:24px;
  margin:10px auto 0;
  background:var(--text-faint);
  animation:scrolldrop 2s ease infinite;
}
@keyframes scrolldrop{
  0%{transform:scaleY(0); transform-origin:top;}
  50%{transform:scaleY(1); transform-origin:top;}
  50.01%{transform-origin:bottom;}
  100%{transform:scaleY(0); transform-origin:bottom;}
}

/* ===== Shared section rhythm ===== */
section, footer{
  position:relative; z-index:2;
  padding:clamp(80px,14vh,160px) var(--pad-x);
  border-top:1px solid var(--line);
}
.idx{
  font-size:12px;
  color:var(--text-faint);
  letter-spacing:.1em;
  margin:0 0 18px;
}
.section-head{
  font-family:var(--font-display);
  font-weight:800;
  text-transform:uppercase;
  font-size:clamp(32px,4.5vw,52px);
  line-height:1;
  margin:0 0 48px;
}

/* ===== Terminal / AI Q&A ===== */
.terminal-section{max-width:1000px; margin:0 auto;}
.term-window{
  border:1px solid var(--line);
  border-radius:10px;
  overflow:hidden;
  background:var(--bg-soft);
}
.term-bar{
  display:flex; align-items:center; gap:8px;
  padding:14px 18px;
  border-bottom:1px solid var(--line);
}
.term-dot{
  width:9px; height:9px;
  border-radius:50%;
  background:var(--text-faint);
  opacity:.5;
}
.term-bar-title{
  margin-left:10px;
  font-size:12px;
  color:var(--text-faint);
}
.term-body{
  padding:clamp(24px,4vw,40px);
}
.term-line{
  margin:0 0 22px;
  font-size:clamp(14.5px,1.6vw,16.5px);
  line-height:1.7;
}
.term-line:last-child{margin-bottom:0;}
.term-prompt{color:var(--text-dim);}
.term-response{color:var(--text);}
.term-prefix{
  color:var(--text-faint);
  margin-right:10px;
}
.term-prefix-answer{color:var(--text);}
.caret{
  display:inline-block;
  width:8px; height:1em;
  vertical-align:text-bottom;
  background:var(--text);
  margin-left:2px;
  animation:blink 1s step-end infinite;
}
.caret[hidden]{display:none;}
@keyframes blink{
  0%, 100%{opacity:1;}
  50%{opacity:0;}
}

/* ===== Stack ticker ===== */
.stack{max-width:1200px; margin:0 auto; padding-top:clamp(48px,8vh,80px); padding-bottom:clamp(48px,8vh,80px);}
.marquee{
  overflow:hidden;
  border-top:1px solid var(--line);
  padding:22px 0;
  mask-image:linear-gradient(90deg, transparent, black 8%, black 92%, transparent);
}
.marquee-track{
  display:flex;
  width:max-content;
  animation:marquee 32s linear infinite;
}
.marquee-reverse .marquee-track{animation-direction:reverse; animation-duration:40s;}
.marquee-track span{
  font-family:var(--font-display);
  font-weight:600;
  font-size:clamp(20px,3vw,34px);
  text-transform:uppercase;
  color:var(--text-dim);
  padding:0 28px;
  white-space:nowrap;
  border-right:1px solid var(--line);
}
@keyframes marquee{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}
@media (prefers-reduced-motion: reduce){
  .marquee-track{animation:none;}
}

/* ===== Contact ===== */
.contact{max-width:1100px; margin:0 auto; padding-bottom:64px;}
.contact-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px,1fr));
  border-top:1px solid var(--line);
  border-left:1px solid var(--line);
}
.contact-item{
  display:flex; flex-direction:column; gap:10px;
  padding:28px 26px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  transition:background .3s var(--ease);
}
.contact-item:hover{background:var(--bg-soft);}
.contact-icon{
  width:32px; height:32px;
  border-radius:50%;
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  font-size:15px;
  color:var(--text);
}
.contact-icon svg{width:16px; height:16px;}
.c-label{font-size:11px; color:var(--text-faint); letter-spacing:.08em; text-transform:uppercase;}
.c-val{font-size:15px; word-break:break-word;}
.footer-bottom{
  display:flex; align-items:center; justify-content:space-between;
  flex-wrap:wrap; gap:16px;
  margin-top:56px;
}
.footer-logo{height:32px; opacity:.85;}
.footer-note{font-size:11px; color:var(--text-faint);}
.footer-link{color:var(--text-faint); text-decoration:underline; text-underline-offset:2px;}
.footer-link:hover{color:var(--text);}
