/* ===== Tokens ===== */
:root{
  --bg: #000000;
  --panel: #0c0d12;
  --panel-2: #101116;
  --blue: #0057ff;
  --blue-soft: #4d8bff;
  --ink: #f4f5f7;
  --ink-muted: #b9bcc6;
  --ink-faint: #7d808c;
  --border: rgba(255,255,255,0.14);
  --display: 'Cormorant Garamond', serif;
  --body: 'Inter', sans-serif;
  --wide: 0.35em;
}

*{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--body);
  font-weight: 300;
  -webkit-font-smoothing: antialiased;
}
img{ max-width:100%; display:block; }
h1,h2,h3{ margin:0; font-family: var(--display); font-weight:400; }
p{ margin:0; }
a{ color:inherit; text-decoration:none; }

.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}

/* ===== Header ===== */
.site-header{
  position: sticky; top:0; z-index:50;
  background: rgba(0,0,0,0.75);
  backdrop-filter: blur(10px);
}
.header-inner{
  max-width:1400px; margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding: 20px 32px;
}
.logo-symbol-link{ display:flex; align-items:center; }
.logo-symbol{ height:24px; width:auto; }
.logo-wordmark-link{ display:flex; align-items:center; }
.logo-wordmark{ height:16px; width:auto; }
.main-nav{ display:flex; gap:40px; }
.main-nav a{
  font-size:16px; letter-spacing: var(--wide); text-transform:lowercase;
  color: var(--blue-soft); font-weight:400;
  transition: color .2s ease;
  margin-left:40px;
}
.main-nav a:first-child{ margin-left:0; }
.main-nav a:hover, .main-nav a:focus-visible{ color: var(--ink); }

/* ===== Hero ===== */
.hero{
  position:relative;
  display:flex; flex-direction:column; align-items:center;
  text-align:center;
  padding: 90px 24px 40px;
  background:#000;
}
.hero-visual{
  position:relative;
  width: min(1400px, 98vw);
  aspect-ratio: 16 / 9;
  background-image: url('assets/hero-bg.jpg');
  background-size: contain;
  background-position: center;
  background-repeat: no-repeat;
  display:flex; align-items:center; justify-content:center;
}
.hero-title{
  position:relative;
  font-size: clamp(19px, 2.5vw, 34px);
  font-weight:300;
  letter-spacing: 0.18em;
  color: var(--ink);
  white-space: nowrap;
  text-shadow: 0 2px 20px rgba(0,0,0,0.6);
}
.hero-title em{
  font-style:italic; font-weight:600; color:#fff;
}
.hero-tag{
  margin-top: 4px;
  font-size:16px; letter-spacing: var(--wide);
  color: var(--blue-soft); text-transform:lowercase;
}

/* ===== Story: Born to create + Projects (shared background artwork) ===== */
.story{
  position:relative;
  background-size: 50% auto;
  background-position: center 30%;
  background-repeat: no-repeat;
  background-color:#000;
}

/* ---- Intro / Born to create ---- */
.intro{
  max-width: 760px; margin:0 auto;
  padding: 90px 24px 70px;
  text-align:center;
}
.intro h2{
  font-size: clamp(31px, 3.9vw, 42px);
  letter-spacing: 0.16em;
  margin-bottom: 32px;
  color:#fff;
}
.intro p{
  font-family: var(--display);
  font-size:21px; letter-spacing:0.03em; line-height:1.9; color: var(--ink-muted);
  max-width: 640px; margin: 0 auto 18px;
}
.intro p:last-child{ margin-bottom:0; }

/* ===== Projects ===== */
.projects{
  position:relative;
  padding: 40px 0 110px;
}
.projects-title{
  font-family: var(--display);
  color: var(--blue-soft);
  font-size: clamp(96px, 14vw, 160px);
  line-height:0.92;
  font-weight:700;
  letter-spacing: 0.02em;
  padding-left: 6vw;
  margin-bottom: 40px;
}
.projects-rule{
  display:inline-block;
  width: 1.1em;
  height: 2px;
  background: var(--blue-soft);
  margin-left: 0.3em;
  margin-bottom: 0.3em;
  vertical-align:middle;
}
.projects-track{
  display:flex; gap:24px;
  overflow-x:auto;
  padding: 0 6vw 24px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.projects-track::-webkit-scrollbar{ display:none; }

.project-card{
  flex: 0 0 auto;
  width: min(420px, 78vw);
  height: min(420px, 78vw);
  aspect-ratio: 1 / 1;
  scroll-snap-align:start;
  background: #fff;
  position:relative;
  overflow:hidden;
  transition: transform .35s ease, box-shadow .35s ease;
}
.project-card-image{
  width:100%; height:100%; object-fit:cover; display:block;
}
.project-card:hover, .project-card:focus-visible{
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0,0,0,0.45);
}
.projects-cta{
  display:flex; justify-content:center;
  margin-top: 48px;
}
.projects-cta a{
  display:inline-block;
  background: var(--blue);
  color:#fff;
  font-family: var(--body); font-size:14px; font-weight:500;
  letter-spacing: 0.14em; text-transform:lowercase;
  padding: 18px 44px;
  transition: background .2s ease, transform .2s ease;
}
.projects-cta a:hover, .projects-cta a:focus-visible{
  background:#0046d1;
  transform: translateY(-2px);
}

/* ===== Solutions ===== */
.solutions{ padding: 100px 24px 140px; text-align:center; background:#000; }
.solutions > h2{
  font-size: clamp(34px, 4.4vw, 47px);
  letter-spacing:0.16em;
  color:#fff;
  margin-bottom: 90px;
}
.solutions-grid{
  max-width: 1200px; margin:0 auto;
  display:grid; grid-template-columns: repeat(3, 1fr);
  gap: 56px;
  text-align:center;
}
.solution h3{
  font-family: var(--display); font-weight:500;
  font-size: clamp(26px, 2.6vw, 34px); letter-spacing: 0.12em;
  color: var(--blue-soft);
  margin-bottom:32px;
}
.solution p{
  font-family: var(--display);
  font-size:20px; letter-spacing:0.02em; line-height:1.9; color: var(--ink-faint);
  margin-bottom:20px;
}
.solution p:last-child{ margin-bottom:0; }

/* ===== Contact ===== */
.contact{
  position:relative;
  padding: 90px 24px 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  background-color:#000;
}
.contact > h2{
  text-align:center;
  font-size: clamp(36px,4.7vw,52px);
  letter-spacing:0.16em;
  color:#fff;
  margin-bottom: 64px;
}
.contact-form{
  max-width: 1100px; margin:0 auto;
  display:grid; grid-template-columns: 1fr 1.7fr;
  gap: 24px;
  padding-bottom: 90px;
}
.contact-fields{ display:flex; flex-direction:column; }
.contact-fields input{
  width:100%;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--ink);
  font-family: var(--body); font-size:17px; letter-spacing:0.08em;
  padding: 18px 20px;
  margin-bottom: 22px;
}
.contact-message textarea{
  width:100%; height:100%; min-height:220px; resize:vertical;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--ink);
  font-family: var(--body); font-size:17px; letter-spacing:0.08em;
  padding: 18px 20px;
}
.contact-fields input::placeholder,
.contact-message textarea::placeholder{ color: var(--ink-muted); }
.contact-fields-spacer{ flex:1; min-height:24px; }
.contact-fields button{
  background: transparent;
  border: 1px solid var(--border);
  color: var(--ink); font-family: var(--body); font-size:17px;
  letter-spacing: 0.08em; text-transform:lowercase;
  padding: 18px 20px; cursor:pointer;
  transition: background .2s ease, color .2s ease;
}
.contact-fields button:hover{ background: var(--blue); border-color: var(--blue); color:#fff; }

/* ===== Footer ===== */
.site-footer{
  display:flex; align-items:center; justify-content:center; gap:14px;
  padding: 28px 24px;
  border-top: 1px solid var(--border);
  background: var(--panel-2);
}
.site-footer p{ font-size:14px; color: var(--ink-faint); letter-spacing:0.04em; }
.footer-logo{ height:16px; width:auto; opacity:.8; }

.contact-feedback{
  text-align:center;
  font-family: var(--body); font-size:14px; letter-spacing:0.04em;
  margin: -20px auto 30px;
  padding: 14px 20px;
  max-width: 500px;
  border: 1px solid var(--border);
}
.contact-feedback-ok{ color:#6fe0a0; border-color:#6fe0a0; }
.contact-feedback-error{ color:#ff8a8a; border-color:#ff8a8a; }

/* ===== Accessibility ===== */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline: 2px solid var(--blue-soft);
  outline-offset: 3px;
}

/* ===== Scroll reveal ===== */
/* Content is visible by default (progressive enhancement).
   Only hidden pre-animation once the "js-ready" class confirms JS ran. */
.js-ready .reveal{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity .8s ease, transform .8s ease;
}
.reveal.in-view{
  opacity: 1 !important;
  transform: translateY(0) !important;
}
.solutions-grid .solution.reveal:nth-child(1){ transition-delay: 0s; }
.solutions-grid .solution.reveal:nth-child(2){ transition-delay: .12s; }
.solutions-grid .solution.reveal:nth-child(3){ transition-delay: .24s; }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .project-card{ transition:none; }
  .js-ready .reveal{ opacity:1; transform:none; transition:none; }
}

/* ===== Responsive ===== */
@media (max-width: 900px){
  .solutions-grid{ grid-template-columns:1fr; gap:48px; }
  .contact-form{ grid-template-columns:1fr; }
  .contact-message textarea{ min-height:140px; }
}
@media (max-width: 600px){
  .header-inner{ padding:16px 20px; }
  .main-nav{ gap:22px; }
  .intro{ padding:60px 24px 50px; }
  .projects-title{ padding-left:24px; }
  .projects-track{ padding-left:24px; padding-right:24px; }
  .hero-title{ white-space:normal; letter-spacing:0.08em; font-size:13px; }
}
