:root{
  --ink:#e7e5df;
  --paper:#292929;
  --line:#4a4a4a;
  --soft:#333333;
  --accent:#c7ff00;
  --muted:#a9a9a4;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.5}
a{color:inherit}
.site-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:18px 4vw;background:rgba(41,41,41,.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.brand{display:flex;gap:12px;align-items:baseline;text-decoration:none}
.brand-main{font-weight:900;letter-spacing:.08em;font-size:1.05rem}
.brand-sub{font-size:.65rem;letter-spacing:.16em}
nav{display:flex;gap:24px;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
nav a{text-decoration:none}
nav a:hover{text-decoration:underline}
.hero{min-height:calc(100vh - 72px);max-width:var(--max);margin:auto;padding:8vw 5vw 7vw;display:grid;grid-template-columns:1.5fr .7fr;align-items:end;gap:7vw}
.eyebrow{font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin:0 0 20px}
h1{font-size:clamp(5rem,13vw,10.5rem);line-height:.76;margin:0 0 34px;letter-spacing:-.08em;font-weight:900}
h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.08em}
.lead{font-size:clamp(1.25rem,2.2vw,1.8rem);max-width:650px;font-weight:700;margin:0 0 18px}
.intro{max-width:650px;font-size:1rem;color:var(--muted)}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}
.button{display:inline-block;padding:13px 18px;border:1px solid var(--ink);text-decoration:none;font-weight:800;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}
.button.primary{background:#1d1d1d;color:var(--ink)}
.hero-note{border-left:2px solid var(--ink);padding:0 0 4px 26px;display:flex;flex-direction:column;gap:7px}
.hero-note span{font-weight:900;letter-spacing:.14em;font-size:.75rem}
.hero-note strong{font-family:Georgia,serif;font-style:italic;font-size:2.5rem;line-height:1}
.hero-note small{font-size:.8rem;color:var(--muted);max-width:240px}
.statement{background:#1d1d1d;color:var(--ink);padding:70px 7vw;text-align:center}
.statement p{margin:0;text-transform:uppercase;letter-spacing:.18em;font-size:.72rem}
.statement h2{font-family:Georgia,serif;font-style:italic;font-weight:400;font-size:clamp(2.5rem,6vw,5rem);margin:12px 0}
.statement span{color:#b0b0aa}
.section{max-width:var(--max);margin:auto;padding:110px 5vw}
.section.alt{max-width:none;background:#303030}
.section.alt>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.section-head{max-width:850px}
.section h2{font-size:clamp(2.4rem,5vw,4.8rem);line-height:.95;letter-spacing:-.055em;margin:0 0 24px}
.section-head>p:last-child{max-width:650px;color:var(--muted)}
.two-col,.idea-grid{display:grid;grid-template-columns:1.3fr .8fr;gap:8vw;margin-top:55px}
.big-copy{font-size:clamp(1.2rem,2vw,1.65rem);line-height:1.35;margin:0}
.facts{border-top:1px solid var(--ink)}
.facts div{padding:18px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column}
.facts b,.download-label{font-size:.7rem;letter-spacing:.14em}
.facts span{font-size:1.05rem}
.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:50px}
.project-card{min-height:300px;border:1px solid var(--line);padding:28px;display:flex;flex-direction:column;background:var(--paper)}
.project-card.featured{background:#1d1d1d;color:var(--ink)}
.project-tag{font-size:.68rem;font-weight:800;letter-spacing:.14em}
.project-card h3{font-size:1.8rem;margin:45px 0 12px}
.project-card p{color:#999}
.featured p{color:#b5b5b0}
.status{margin-top:auto;font-size:.68rem;font-weight:800;letter-spacing:.1em}
.download-box{margin-top:50px;border:1px solid var(--ink);padding:35px;display:flex;justify-content:space-between;align-items:center;gap:30px}
.download-box h3{font-size:2rem;margin:8px 0}
.download-box p{max-width:650px;color:var(--muted)}
.download-mark{width:100px;height:100px;border:1px solid var(--ink);display:grid;place-content:center;text-align:center;font-weight:900;font-size:1.8rem;line-height:.8}
.download-mark small{font-size:.55rem;letter-spacing:.12em}
.dark{max-width:none;background:#1d1d1d;color:var(--ink)}
.dark>*{max-width:var(--max);margin-left:auto;margin-right:auto}
.dark .eyebrow{color:#999}
.idea-grid .big-copy{max-width:650px}
.list{border-top:1px solid var(--line)}
.list div{padding:15px 0;border-bottom:1px solid var(--line);font-weight:700}
.list span{display:inline-block;width:45px;color:#888}
.license{max-width:780px;font-size:1.05rem}
.license p{margin:0 0 22px}
.muted{color:#999;font-size:.85rem}
.contact{display:flex;justify-content:space-between;gap:60px;align-items:end}
.contact-data{display:flex;flex-direction:column;align-items:flex-end;gap:9px;font-size:1.25rem;font-weight:700}
footer{display:flex;justify-content:space-between;gap:30px;padding:28px 5vw;border-top:1px solid var(--line);font-size:.75rem;color:var(--muted)}
@media(max-width:800px){
  .site-header{align-items:flex-start}
  nav{display:none}
  .hero,.two-col,.idea-grid{grid-template-columns:1fr}
  .hero{min-height:auto;padding-top:70px}
  .hero-note{margin-top:25px}
  .project-grid{grid-template-columns:1fr}
  .download-box,.contact{flex-direction:column;align-items:flex-start}
  .contact-data{align-items:flex-start}
  footer{flex-direction:column}
}

.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:50px}
.service-card{border-top:1px solid var(--ink);padding:24px 4px 30px}
.service-card span{font-size:.7rem;font-weight:800;color:#8f8f8a}
.service-card h3{font-size:1.7rem;margin:22px 0 10px}
.service-card p{max-width:500px;color:var(--muted);margin:0}
@media(max-width:800px){.service-grid{grid-template-columns:1fr}}

/* Dark-mode refinement */
.project-card{background:#2c2c2c}
.project-card.featured{background:#1d1d1d}
.download-box{background:#2c2c2c}
.service-card{background:#2c2c2c;padding:24px 20px 30px}
.statement{background:#1d1d1d}
footer{background:#242424}

/* ===== VanDock V4: one consistent content column ===== */
.section{
  width:100%;
  max-width:none;
  margin:0;
  padding:clamp(72px,9vw,110px) clamp(24px,5vw,70px);
  border-top:1px solid var(--line);
}
.section > .section-head,
.section > .two-col,
.section > .project-grid,
.section > .download-box,
.section > .idea-grid,
.section > .license,
.section > .service-grid{
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}
.section > .section-head{margin-bottom:0}
.section-head{ text-align:left; }
.section h2{ text-align:left; }

.section.alt{
  width:100%;
  max-width:none;
  background:#303030;
}
.section.dark{
  width:100%;
  max-width:none;
  background:#1d1d1d;
}
.section.alt > *,
.section.dark > *{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}

.two-col,.idea-grid{
  margin-top:clamp(38px,5vw,55px);
  align-items:start;
}
.project-grid,.download-box,.service-grid{
  margin-top:clamp(34px,4.5vw,50px);
}
.project-card,.download-box,.service-card{
  border:1px solid var(--line);
  background:#2c2c2c;
}
.project-card.featured{
  background:#1d1d1d;
  border-color:#555;
}
.download-box{padding:clamp(24px,3vw,35px);}
.service-card{padding:24px 20px 30px;}
.license{ text-align:left; }
.contact{
  display:flex;
  justify-content:space-between;
  gap:60px;
  align-items:end;
}
.contact-data{
  align-items:flex-end;
  text-align:right;
}

@media(max-width:900px){
  .hero{
    grid-template-columns:1fr;
    min-height:auto;
    padding-top:72px;
  }
  .hero-note{margin-top:20px;}
  .project-grid{grid-template-columns:1fr 1fr;}
  .two-col,.idea-grid{grid-template-columns:1fr;}
}

@media(max-width:680px){
  .site-header{padding:15px 20px;}
  .brand{gap:8px;}
  nav{display:none;}
  .hero{
    padding:58px 24px 64px;
  }
  h1{
    font-size:clamp(4.4rem,21vw,7rem);
  }
  .section{
    padding:68px 24px;
  }
  .section h2{
    font-size:clamp(2.25rem,11vw,3.5rem);
  }
  .project-grid{grid-template-columns:1fr;}
  .download-box{
    flex-direction:column;
    align-items:flex-start;
  }
  .contact{
    flex-direction:column;
    align-items:flex-start;
    gap:35px;
  }
  .contact-data{
    align-items:flex-start;
    text-align:left;
  }
  footer{
    flex-direction:column;
    padding:25px 24px;
  }
}

@media(min-width:681px) and (max-width:1100px){
  .site-header{padding-left:28px;padding-right:28px;}
  nav{gap:14px;font-size:.68rem;}
}

/* ===== V5: hero and navigation cleanup ===== */
.hero{
  align-items:center;
  padding-top:clamp(80px,10vw,125px);
  padding-bottom:clamp(70px,8vw,110px);
}
.hero-copy{padding-top:18px}
.hero h1{margin-top:8px}
@media(max-width:800px){
  .hero{align-items:start}
}

/* ===== V6: one visual left edge for the entire page ===== */

/* The hero and all sections now share the same 1180px content rail. */
.hero{
  padding-left:0;
  padding-right:0;
}

/* The statement band stays full width, but its text uses the same left edge. */
.statement{
  text-align:left;
}
.statement > p,
.statement > h2,
.statement > span{
  display:block;
  width:100%;
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}
.statement > h2{margin-top:12px;margin-bottom:12px}
.statement > span{max-width:1180px}

/* Section titles and their content use exactly the same rail. */
.section > .section-head,
.section > .two-col,
.section > .project-grid,
.section > .download-box,
.section > .idea-grid,
.section > .license,
.section > .service-grid{
  max-width:1180px;
  margin-left:auto;
  margin-right:auto;
}

/* Keep the section title and all content beneath it left aligned. */
.section-head,
.section-head h2,
.section-head p,
.license{
  text-align:left;
}

/* Do not add another inset inside the shared rail. */
.section-head{padding-left:0;padding-right:0}

/* On smaller screens the common rail becomes the viewport padding. */
@media(max-width:680px){
  .hero{
    padding-left:24px;
    padding-right:24px;
  }
  .statement{
    padding-left:24px;
    padding-right:24px;
  }
  .statement > p,
  .statement > h2,
  .statement > span{
    max-width:none;
  }
}

/* V6 exact fix: contact content follows the same 1180px left/right rail. */
.contact-inner{
  width:100%;
  max-width:1180px;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  gap:60px;
  align-items:end;
}
.contact-inner .contact-data{
  text-align:right;
  align-items:flex-end;
}
@media(max-width:680px){
  .contact-inner{
    flex-direction:column;
    align-items:flex-start;
    gap:35px;
  }
  .contact-inner .contact-data{
    align-items:flex-start;
    text-align:left;
  }
}
