/* Stormfield — Architectural Silence
   Stark white space, razor-thin black lines, minimal serif type */

:root{
  --ink:#0a0a0a;
  --paper:#ffffff;
  --line:#0a0a0a;
  --hair:rgba(10,10,10,.16);
  --muted:#6b6b6b;
  --pad:clamp(1.4rem,5vw,5rem);
  --serif:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --mono:"IBM Plex Mono",ui-monospace,"Courier New",monospace;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.02rem,.6vw + .9rem,1.18rem);
  line-height:1.55;
  letter-spacing:.01em;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}

/* ---- type ---- */
h1,h2,h3,h4{font-weight:400;line-height:1.04;letter-spacing:-.01em}
.label{
  font-family:var(--mono);
  font-size:.66rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--muted);
  font-weight:400;
}
.serif-xl{font-size:clamp(2.6rem,7vw,6.4rem)}
.serif-l{font-size:clamp(1.9rem,4.4vw,3.6rem)}
.serif-m{font-size:clamp(1.5rem,2.6vw,2.3rem)}
.italic{font-style:italic}

/* ---- structural frame ---- */
.frame{max-width:1500px;margin:0 auto;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.pad{padding-left:var(--pad);padding-right:var(--pad)}
.rule{border-top:1px solid var(--line)}
.hair{border-top:1px solid var(--hair)}

/* ---- nav ---- */
header.nav{
  position:sticky;top:0;z-index:50;
  background:var(--paper);
  border-bottom:1px solid var(--line);
}
.nav-in{
  display:flex;align-items:center;justify-content:space-between;
  min-height:64px;
}
.brand{display:flex;align-items:baseline;gap:.6rem;font-size:1.32rem;letter-spacing:.02em}
.brand .dot{font-family:var(--mono);font-size:.6rem;letter-spacing:.3em;color:var(--muted);transform:translateY(-.35em)}
.menu{display:flex;align-items:center;gap:clamp(.9rem,2vw,2rem);list-style:none}
.menu a{font-family:var(--mono);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;padding:.4rem 0;border-bottom:1px solid transparent;transition:border-color .25s}
.menu a:hover,.menu a[aria-current="page"]{border-bottom-color:var(--line)}
.burger{display:none;background:none;border:1px solid var(--line);font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;padding:.55rem .8rem;cursor:pointer;text-transform:uppercase}

@media(max-width:860px){
  .menu{
    position:fixed;inset:64px 0 auto 0;
    flex-direction:column;align-items:flex-start;gap:0;
    background:var(--paper);border-bottom:1px solid var(--line);
    padding:0;max-height:0;overflow:hidden;transition:max-height .35s ease;
  }
  .menu.open{max-height:80vh}
  .menu li{width:100%;border-top:1px solid var(--hair)}
  .menu a{display:block;padding:1.1rem var(--pad);width:100%}
  .burger{display:block}
}

/* ---- hero ---- */
.hero{display:grid;grid-template-columns:1.15fr .85fr;min-height:78vh}
.hero-text{padding:clamp(2.5rem,6vw,6rem) var(--pad);display:flex;flex-direction:column;justify-content:center;gap:1.6rem}
.hero-text h1{margin:.2rem 0}
.hero-img{border-left:1px solid var(--line);overflow:hidden;background:#f3f3f3}
.hero-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04)}
.lede{max-width:46ch;color:#2a2a2a}
@media(max-width:860px){.hero{grid-template-columns:1fr}.hero-img{border-left:0;border-top:1px solid var(--line);min-height:46vh}}

/* ---- buttons ---- */
.btn{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--mono);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;
  border:1px solid var(--line);padding:.95rem 1.6rem;background:var(--paper);
  cursor:pointer;transition:background .25s,color .25s;
}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn .arr{font-family:var(--serif);font-size:1.1rem;letter-spacing:0}

/* ---- section scaffolding ---- */
section{padding:clamp(3rem,7vw,7rem) 0}
.sec-head{display:grid;grid-template-columns:auto 1fr;gap:2rem;align-items:baseline;margin-bottom:clamp(2rem,5vw,4rem)}
.sec-head .idx{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;color:var(--muted)}
@media(max-width:620px){.sec-head{grid-template-columns:1fr;gap:.6rem}}

/* ---- grids ---- */
.cols-3{display:grid;grid-template-columns:repeat(3,1fr)}
.cols-2{display:grid;grid-template-columns:repeat(2,1fr)}
.cols-3>*,.cols-2>*{border-left:1px solid var(--hair);padding:clamp(1.6rem,3vw,2.6rem)}
.cols-3>*:first-child,.cols-2>*:first-child{border-left:0}
@media(max-width:860px){
  .cols-3,.cols-2{grid-template-columns:1fr}
  .cols-3>*,.cols-2>*{border-left:0;border-top:1px solid var(--hair)}
  .cols-3>*:first-child,.cols-2>*:first-child{border-top:0}
}
.item h3{margin-bottom:.7rem}
.item .num{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;color:var(--muted);display:block;margin-bottom:1.4rem}
.item p{color:#333}

/* ---- pricing ---- */
.price-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.plan{border-left:1px solid var(--hair);padding:clamp(1.8rem,3vw,2.8rem);display:flex;flex-direction:column;gap:1.4rem}
.plan:first-child{border-left:0}
.plan .tier{font-family:var(--mono);font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.plan .amt{font-size:clamp(2.4rem,4vw,3.4rem);line-height:1}
.plan .amt small{font-size:.9rem;font-family:var(--mono);letter-spacing:.1em;color:var(--muted);display:block;margin-top:.5rem}
.plan ul{list-style:none;display:flex;flex-direction:column;gap:.75rem;flex:1}
.plan ul li{padding-left:1.3rem;position:relative;color:#333;font-size:1rem}
.plan ul li::before{content:"—";position:absolute;left:0;color:var(--ink)}
.plan.feature{background:var(--ink);color:var(--paper)}
.plan.feature .tier,.plan.feature .amt small,.plan.feature ul li{color:#c9c9c9}
.plan.feature ul li::before{color:var(--paper)}
.plan.feature .btn{border-color:var(--paper);color:var(--paper);background:transparent}
.plan.feature .btn:hover{background:var(--paper);color:var(--ink)}
@media(max-width:860px){.price-grid{grid-template-columns:1fr}.plan{border-left:0;border-top:1px solid var(--hair)}.plan:first-child{border-top:0}}

/* ---- forms ---- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.form-grid .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;border:1px solid var(--hair);border-collapse:collapse;margin:-.5px 0 0 -.5px}
.field label{font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);padding:1rem 1.1rem .2rem}
.field input,.field textarea,.field select{
  border:0;background:transparent;font-family:var(--serif);font-size:1.05rem;
  padding:.2rem 1.1rem 1.1rem;color:var(--ink);outline:none;resize:vertical;width:100%;
}
.field:focus-within{outline:1px solid var(--line);outline-offset:-1px}
@media(max-width:620px){.form-grid{grid-template-columns:1fr}}
.form-note{color:var(--muted);font-size:.92rem;margin-top:1.2rem}
.form-status{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;margin-top:1rem;min-height:1.2em}

/* ---- list rows ---- */
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:auto 1fr auto;gap:1.6rem;align-items:baseline;padding:1.5rem 0;border-bottom:1px solid var(--hair)}
.row .k{font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;color:var(--muted)}
.row .v{font-size:1.15rem}
@media(max-width:620px){.row{grid-template-columns:1fr;gap:.4rem}}

/* ---- prose (legal) ---- */
.prose{max-width:74ch}
.prose h2{margin:2.4rem 0 .9rem;font-size:clamp(1.4rem,2.4vw,1.9rem)}
.prose h3{margin:1.8rem 0 .6rem;font-size:1.2rem}
.prose p,.prose li{color:#262626;margin-bottom:.9rem;font-size:1.06rem}
.prose ul{padding-left:1.3rem;margin-bottom:1rem}
.prose a{border-bottom:1px solid var(--line)}
.toc{font-family:var(--mono);font-size:.74rem;letter-spacing:.05em;line-height:2}
.toc a{display:block;color:var(--muted);border-bottom:1px solid transparent}
.toc a:hover{color:var(--ink)}

/* ---- figure ---- */
figure{margin:0;border:1px solid var(--line);overflow:hidden;background:#f3f3f3}
figure img{width:100%;object-fit:cover;filter:grayscale(1) contrast(1.05)}
figcaption{font-family:var(--mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:.9rem 1.1rem;border-top:1px solid var(--line);background:var(--paper)}

/* ---- footer ---- */
footer{border-top:1px solid var(--line);margin-top:0}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:0}
.foot-grid>div{padding:clamp(2rem,4vw,3.4rem) var(--pad);border-left:1px solid var(--hair)}
.foot-grid>div:first-child{border-left:0}
.foot-grid h4{font-family:var(--mono);font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2rem}
.foot-grid ul{list-style:none;line-height:2}
.foot-grid a:hover{border-bottom:1px solid var(--line)}
.foot-bar{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1.4rem var(--pad);border-top:1px solid var(--line);font-family:var(--mono);font-size:.64rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr}.foot-grid>div{border-left:0;border-top:1px solid var(--hair)}.foot-grid>div:first-child{border-top:0}}

/* ---- reveal ---- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ---- cookie ---- */
#cookie{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  background:var(--ink);color:var(--paper);
  display:none;grid-template-columns:1fr auto;gap:1.4rem;align-items:center;
  padding:1.1rem var(--pad);
}
#cookie.show{display:grid}
#cookie p{font-size:.94rem;color:#dcdcdc;max-width:70ch}
#cookie .cookie-actions{display:flex;gap:.7rem;flex-wrap:wrap}
#cookie .btn{border-color:#444;color:var(--paper);background:transparent;padding:.7rem 1.2rem}
#cookie .btn.accept{background:var(--paper);color:var(--ink);border-color:var(--paper)}
#cookie .btn:hover{background:#222;color:var(--paper)}
#cookie .btn.accept:hover{background:#e9e9e9;color:var(--ink)}
@media(max-width:620px){#cookie{grid-template-columns:1fr}}

/* ---- misc ---- */
.kicker{margin-bottom:1.2rem}
.split{display:grid;grid-template-columns:1fr 1fr;gap:0}
.split>*{padding:clamp(2rem,4vw,4rem) var(--pad)}
.split>*:nth-child(2){border-left:1px solid var(--line)}
@media(max-width:860px){.split{grid-template-columns:1fr}.split>*:nth-child(2){border-left:0;border-top:1px solid var(--line)}}
.big-quote{font-size:clamp(1.6rem,3.4vw,2.8rem);line-height:1.18;max-width:24ch}
.meta{font-family:var(--mono);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
