@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400;1,6..72,500;1,6..72,600&family=Space+Mono:wght@400;700&family=Inter:wght@400;500;600;700&display=swap');

:root{
  --bg:#0A0D1D;
  --bg-2:#12152B;
  --bg-3:#181C38;
  --ink:#F3F4FB;
  --ink-soft:#9AA0C7;
  --ink-faint:#666D9C;
  --line:rgba(255,255,255,0.09);
  --line-strong:rgba(255,255,255,0.16);
  --night:#7C87FF;
  --night-deep:#5D6BFF;
  --periwinkle:#7C87FF;
  --dawn:#FFB454;
  --dawn-soft:#FFD9A0;
  --card:rgba(255,255,255,0.035);
  --card-strong:rgba(255,255,255,0.055);
  --glow-cool:rgba(93,107,255,0.35);
  --glow-warm:rgba(255,180,84,0.28);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:
    radial-gradient(1100px 760px at 12% -8%, rgba(124,135,255,0.20), transparent 60%),
    radial-gradient(900px 680px at 88% 8%, rgba(255,180,84,0.10), transparent 58%),
    radial-gradient(1000px 800px at 78% 108%, rgba(93,60,190,0.16), transparent 62%),
    linear-gradient(180deg, #0C1026 0%, #0A0D1D 45%, #0E0B1E 100%);
  background-attachment:fixed;
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
/* film grain overlay */
body::before{
  content:'';position:fixed;inset:0;z-index:2000;pointer-events:none;
  opacity:0.035;mix-blend-mode:overlay;
  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");
}
::selection{background:var(--periwinkle);color:#0A0D1D;}
img{max-width:100%;display:block;}
a{color:inherit;}

.wrap{max-width:1180px;margin:0 auto;padding:0 32px;position:relative;z-index:1;}
@media(max-width:720px){.wrap{padding:0 20px;}}

h1,h2,h3{font-family:'Newsreader',serif;font-weight:500;margin:0;letter-spacing:-0.01em;}

.eyebrow{
  font-family:'Space Mono',monospace;
  font-size:11px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--dawn);
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.eyebrow::before{content:'';width:18px;height:1px;background:var(--dawn);display:inline-block;}

/* ---------- ambient glow orbs ---------- */
.orb{
  position:fixed;border-radius:50%;filter:blur(90px);pointer-events:none;z-index:0;
  animation:drift 22s ease-in-out infinite;
}
@keyframes drift{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(30px,-40px) scale(1.15);}
}
@media (prefers-reduced-motion: reduce){.orb{animation:none;}}

/* ---------- NAV ---------- */
.topbar{
  position:sticky;top:0;z-index:50;
  background:rgba(10,13,29,0.7);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;}
.brand{font-family:'Newsreader',serif;font-style:normal;font-weight:500;font-size:19px;letter-spacing:0;text-decoration:none;color:var(--ink);}
.brand .dot{color:var(--dawn);}
.nav-links{display:flex;gap:30px;align-items:center;}
.nav-links a{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:0.05em;
  text-decoration:none;color:var(--ink-soft);transition:color .2s ease;
  position:relative;
}
.nav-links a:not(.btn):after{
  content:'';position:absolute;left:0;bottom:-4px;width:0;height:1px;background:var(--night);
  transition:width .25s ease;
}
.nav-links a:not(.btn):hover:after{width:100%;}
.nav-links a:hover{color:var(--ink);}
.back-link{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:0.05em;
  text-decoration:none;color:var(--ink-soft);display:flex;align-items:center;gap:6px;
  transition:color .2s ease;
}
.back-link:hover{color:var(--night);}

/* ---------- SECTION SCAFFOLDING ---------- */
section{padding:110px 0;border-top:1px solid var(--line);position:relative;}
section.hero{border-top:none;}
.section-head{max-width:660px;margin-bottom:64px;}
.section-head h2{font-size:clamp(30px,4.2vw,48px);margin-top:18px;line-height:1.06;color:var(--ink);}

/* ---------- CARDS / GRIDS ---------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
@media(max-width:820px){.grid-3,.grid-2{grid-template-columns:1fr;}}
.card{
  background:var(--card);padding:34px;position:relative;
  transition:background .3s ease;
}
.card:hover{background:var(--card-strong);}
.card .num{font-family:'Space Mono',monospace;font-size:12px;color:var(--dawn);display:block;margin-bottom:20px;}
.card h3{font-size:20px;margin-bottom:10px;color:var(--ink);}
.card p{font-size:14.5px;line-height:1.65;color:var(--ink-soft);margin:0;}

/* ---------- BUTTONS / LINKS ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:0.05em;
  text-decoration:none;color:#0A0D1D;background:var(--dawn);
  padding:15px 24px;border-radius:30px;transition:transform .25s ease, box-shadow .25s ease, background .25s ease;
  box-shadow:0 0 0 0 rgba(255,180,84,0);
}
.btn:hover{transform:translateY(-2px);box-shadow:0 8px 30px rgba(255,180,84,0.35);}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-strong);}
.btn.ghost:hover{border-color:var(--night);color:var(--night);box-shadow:0 8px 24px rgba(124,135,255,0.2);}

.text-link{
  font-family:'Space Mono',monospace;font-size:12px;letter-spacing:0.05em;
  text-decoration:none;color:var(--ink-soft);border-bottom:1px solid var(--line-strong);padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}
.text-link:hover{color:var(--night);border-color:var(--night);}

/* ---------- WORK GRID (home) ---------- */
.work-list{border-top:1px solid var(--line);}
.work-item{
  display:grid;grid-template-columns:60px 1fr auto;gap:28px;align-items:center;
  padding:34px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);
  transition:padding-left .25s ease, background .25s ease;
}
.work-item:hover{padding-left:14px;background:linear-gradient(90deg, rgba(124,135,255,0.07), transparent);}
.work-item .idx{font-family:'Space Mono',monospace;font-size:12px;color:var(--dawn);}
.work-item .meta h3{font-size:clamp(20px,3vw,32px);color:var(--ink);}
.work-item .meta p{margin:8px 0 0;font-size:13.5px;color:var(--ink-soft);}
.work-item .tags{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
.work-item .tag{
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:0.06em;text-transform:uppercase;
  color:var(--ink-soft);border:1px solid var(--line-strong);padding:6px 12px;border-radius:20px;white-space:nowrap;
}
.work-item .year{font-family:'Space Mono',monospace;font-size:12px;color:var(--ink-faint);}
@media(max-width:720px){
  .work-item{grid-template-columns:36px 1fr;}
  .work-item .tags{grid-column:2/3;justify-content:flex-start;margin-top:8px;}
}

/* ---------- reveal on scroll ---------- */
[data-reveal]{
  opacity:0;transform:translateY(26px) scale(0.985);filter:blur(6px);
  transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1), filter .9s cubic-bezier(.16,1,.3,1);
}
[data-reveal].in{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
@media (prefers-reduced-motion: reduce){
  [data-reveal]{opacity:1;transform:none;filter:none;transition:none;}
  html{scroll-behavior:auto;}
}

/* ---------- starfield canvas ---------- */
#starfield{position:fixed;inset:0;z-index:0;pointer-events:none;}

/* ---------- cursor spotlight ---------- */
.hero-spotlight{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(560px circle at var(--sx,50%) var(--sy,20%), rgba(124,135,255,0.14), transparent 70%);
  transition:background .3s ease;
}

/* ---------- tilt + magnetic interactivity ---------- */
.card, .bento-card, .bento-feature{will-change:transform;transform-style:preserve-3d;}
.btn{will-change:transform;}

/* ---------- FOOTER ---------- */
footer{padding:90px 0 60px;}
.footer-cta h2{font-size:clamp(28px,4vw,42px);max-width:600px;color:var(--ink);}
.footer-links{display:flex;gap:28px;margin-top:32px;flex-wrap:wrap;}
