/* Variable font (Inter) optional preload in HTML */
@font-face {
  font-family: "Inter";
  src: url("inter-var.woff2") format("woff2-variations");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root{
  --bg:#ffffff;
  --ink:#0f172a;        /* slate-900 */
  --muted:#475569;      /* slate-600 */
  --line:#e2e8f0;       /* slate-200 */
  --brand:#C6A664;      /* gold-600 */
  --gold:#c08a2b;       /* wheat accent */
  --radius:14px;
  --shadow:0 10px 30px rgba(2,6,23,.08);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color:var(--ink);
  background:var(--bg);
  line-height:1.6;
}

.container{width:min(1100px, 92vw); margin-inline:auto; padding:24px}

/* Improved mobile viewport handling */
@media (max-width: 768px) {
  html {
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust: 100%;
  }
  
  body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
}

.site-header{display:flex; align-items:center; justify-content:space-between; gap:16px}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit}
.brand img{width:32px; height:32px; display:block}
.wordmark{font-weight:800; letter-spacing:.2px; font-size:1.15rem}

.nav{display:flex; gap:18px; align-items:center}
.nav a{color:var(--muted); text-decoration:none}
.nav a:hover{color:var(--ink)}
.btn{
  --btn-bg:transparent; --btn-ink:var(--ink); --btn-border:var(--line);
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.8rem 1.1rem; border-radius:calc(var(--radius) - 6px);
  border:1px solid var(--btn-border); text-decoration:none; font-weight:600;
  transition: all 0.2s ease;
  cursor: pointer;
  min-height: 44px; /* Touch-friendly minimum */
}
.btn.sm{padding:.55rem .9rem; font-size:.9rem}
.btn.primary{--btn-bg:var(--brand); --btn-ink:white; --btn-border:var(--brand); background:var(--btn-bg); color:var(--btn-ink)}
.btn.primary:hover{filter:saturate(1.1) brightness(1.02)}
.btn.ghost{background:transparent}

.hero{
  display:grid; grid-template-columns: 1.1fr .9fr; gap:32px; align-items:center;
  padding-top:28px; padding-bottom:10px;
}
.hero h1{font-size:clamp(2rem, 4.3vw, 3.2rem); line-height:1.1; margin:12px 0}
.hero .accent{color:var(--brand)}
.lead{color:var(--muted); font-size:1.1rem}
.cta{display:flex; gap:12px; margin-top:14px}
.hero-visual{margin:0}
.hero-visual img{width:100%; height:auto; border-radius:var(--radius); box-shadow:var(--shadow); border:1px solid var(--line)}

.strip{
  display:grid; grid-template-columns: repeat(4, 1fr);
  gap:12px; margin-top:18px; margin-bottom:10px;
}
.strip > div{
  border:1px dashed var(--line); border-radius:calc(var(--radius) - 6px);
  padding:10px 12px; color:var(--muted); text-align:center; font-weight:600; font-size:.95rem;
}

.features{
  display:grid; grid-template-columns: repeat(4, 1fr); gap:18px; margin-top:22px;
}
.features article{
  padding:18px; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
  background:linear-gradient(180deg, #fff, #f8fafc);
}
.features h3{margin:.2rem 0 .3rem; font-size:1.05rem}
.features p{color:var(--muted); margin:0}

.how{margin-top:8px}
.how ol{margin:0; padding-left:1.2rem}
.how li{margin:.4rem 0}

.waitlist{
  margin-top:18px; padding:24px; border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow);
}
.waitlist form{display:flex; flex-wrap:wrap; gap:10px; align-items:center}
.waitlist input{
  flex:1 1 280px; padding:.9rem 1rem; border-radius:calc(var(--radius) - 6px);
  border:1px solid var(--line); outline:0; font-size:1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  min-height: 44px; /* Touch-friendly */
}
.waitlist input:focus{border-color:var(--brand); box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.form-note{margin:0; font-size:.9rem; color:var(--muted); flex-basis:100%}
.status{margin:.2rem 0 0; min-height:1.2rem; font-size:.95rem; transition: all 0.3s ease}
.status.ok{color:#0a7d2b; background:#f0f9f0; padding:8px 12px; border-radius:6px; border:1px solid #d1f7d1}
.status.err{color:#b42318; background:#fef2f2; padding:8px 12px; border-radius:6px; border:1px solid #fecaca}

/* Form loading states */
.btn:disabled{opacity:0.6; cursor:not-allowed}
.waitlist input:disabled{opacity:0.6; cursor:not-allowed; background:#f8f9fa}

/* Enhanced form focus states */
.waitlist input:focus{border-color:var(--brand); box-shadow:0 0 0 3px rgba(198,166,100,.15); background:#fff}
.waitlist input:invalid:not(:placeholder-shown){border-color:#b42318; box-shadow:0 0 0 3px rgba(180,35,24,.15)}
.waitlist input:valid:not(:placeholder-shown){border-color:#0a7d2b; box-shadow:0 0 0 3px rgba(10,125,43,.15)}

.site-footer{
  display:flex; justify-content:space-between; align-items:center; gap:12px;
  border-top:1px solid var(--line); margin-top:28px; padding-top:18px;
}
.site-footer a{color:var(--muted); text-decoration:none}
.site-footer a:hover{color:var(--ink)}
.tag{background:#fef7e8; color:#8b5e18; padding:.35rem .6rem; border-radius:999px; font-weight:700; border:1px solid #f3e3bf}

.legal{padding-block:20px; color:var(--muted)}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}

/* Mobile-first responsive design */
@media (max-width: 768px) {
  .container {
    padding: 16px;
  }
  
  /* Header mobile optimization */
  .site-header {
    flex-wrap: wrap;
    gap: 12px;
  }
  
  .nav {
    gap: 12px;
    flex-wrap: wrap;
  }
  
  .nav a {
    font-size: 0.9rem;
  }
  
  .btn.sm {
    padding: 0.5rem 0.8rem;
    font-size: 0.85rem;
  }
  
  .brand img {
    width: 28px;
    height: 28px;
  }
  
  /* Hero section mobile */
  .hero {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 24px;
    padding-top: 20px;
    padding-bottom: 16px;
  }
  
  .hero h1 {
    font-size: clamp(1.8rem, 6vw, 2.5rem);
    margin: 8px 0;
  }
  
  .lead {
    font-size: 1rem;
    line-height: 1.5;
  }
  
  .cta {
    justify-content: center;
    flex-direction: column;
    gap: 10px;
    margin-top: 20px;
  }
  
  .btn {
    padding: 0.9rem 1.2rem;
    font-size: 1rem;
    min-height: 44px; /* Touch-friendly */
    width: 100%;
    max-width: 280px;
  }
  
  /* Trust strip mobile */
  .strip {
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 16px;
    margin-bottom: 16px;
  }
  
  .strip > div {
    padding: 8px 10px;
    font-size: 0.85rem;
  }
  
  /* Features mobile */
  .features {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 20px;
  }
  
  .features article {
    padding: 16px;
  }
  
  .features h3 {
    font-size: 1rem;
  }
  
  /* How it works mobile */
  .how {
    margin-top: 16px;
  }
  
  .how ol {
    padding-left: 1rem;
  }
  
  .how li {
    margin: 0.5rem 0;
    line-height: 1.5;
  }
  
  /* Waitlist form mobile */
  .waitlist {
    margin-top: 16px;
    padding: 20px;
  }
  
  .waitlist form {
    flex-direction: column;
    gap: 12px;
  }
  
  .waitlist input {
    flex: none;
    width: 100%;
    padding: 0.9rem 1rem;
    font-size: 1rem;
    min-height: 44px; /* Touch-friendly */
  }
  
  .waitlist .btn {
    width: 100%;
    max-width: none;
  }
  
  .form-note {
    text-align: center;
    font-size: 0.85rem;
  }
  
  /* Footer mobile */
  .site-footer {
    flex-direction: column;
    text-align: center;
    gap: 16px;
    margin-top: 24px;
    padding-top: 16px;
  }
  
  .site-footer .left {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  
  .site-footer .right {
    order: -1;
  }
  
  /* Legal sections mobile */
  .legal {
    padding-block: 16px;
  }
}

@media (max-width: 480px) {
  .container {
    padding: 12px;
  }
  
  .site-header {
    flex-direction: column;
    align-items: center;
    gap: 16px;
  }
  
  .nav {
    justify-content: center;
  }
  
  .hero h1 {
    font-size: clamp(1.6rem, 8vw, 2.2rem);
  }
  
  .lead {
    font-size: 0.95rem;
  }
  
  .strip {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  
  .strip > div {
    padding: 6px 8px;
    font-size: 0.8rem;
  }
  
  .features article {
    padding: 14px;
  }
  
  .waitlist {
    padding: 16px;
  }
  
  .btn {
    padding: 0.8rem 1rem;
    font-size: 0.95rem;
  }
}

/* Landscape mobile optimization */
@media (max-width: 768px) and (orientation: landscape) {
  .hero {
    padding-top: 12px;
    padding-bottom: 12px;
  }
  
  .hero h1 {
    font-size: clamp(1.6rem, 4vw, 2.2rem);
  }
  
  .cta {
    flex-direction: row;
    justify-content: center;
    gap: 12px;
  }
  
  .btn {
    width: auto;
    min-width: 140px;
  }
}
