:root{
  --paper:#F1ECE0;
  --paper-2:#E6DFCE;
  --card:#FFFDF8;
  --ink:#20303A;
  --ink-soft: rgba(32,48,58,0.72);
  --brick:#B5503B;
  --brick-dark:#8F4030;
  --brass:#7C5A32;
  --line: rgba(32,48,58,0.14);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Public Sans', sans-serif;
  font-weight:300;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
a{ color:inherit; }
img,svg{ max-width:100%; }

.container{
  max-width:1180px;
  margin:0 auto;
  padding:0 7vw;
}

/* NAV */
.site-header{
  border-bottom:1px solid var(--line);
  padding:1.6rem 0;
  animation:fadeUp 0.8s ease both;
}
.site-header .container{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:1rem;
}
.mark{ display:flex; align-items:center; gap:0.6rem; text-decoration:none; }
.mark svg{ width:22px; height:22px; flex-shrink:0; }
.mark-label{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.13em;
  text-transform:uppercase;
  color:var(--ink);
}
nav.primary-nav{ display:flex; gap:2rem; }
nav.primary-nav a{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  text-decoration:none;
  color:var(--ink-soft);
  padding-bottom:3px;
  border-bottom:1px solid transparent;
  transition:color 0.2s ease, border-color 0.2s ease;
}
nav.primary-nav a:hover, nav.primary-nav a.active{
  color:var(--brick);
  border-color:var(--brick);
}

/* HERO / MAIN CONTENT BLOCKS */
main{ display:block; }
.hero{
  max-width:820px;
  padding:7vh 0 4vh 0;
  animation:fadeUp 1s ease both;
  animation-delay:0.06s;
}
.page-header{
  max-width:820px;
  padding:7vh 0 3vh 0;
  animation:fadeUp 1s ease both;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.74rem;
  letter-spacing:0.15em;
  text-transform:uppercase;
  color:var(--brick);
  margin-bottom:1.3rem;
  display:flex;
  align-items:center;
  gap:0.6rem;
}
.eyebrow::before{
  content:'';
  width:26px; height:1px;
  background:var(--brick-dark);
  display:inline-block;
}
h1{
  font-family:'Newsreader', serif;
  font-weight:500;
  font-size:clamp(2.2rem, 5.4vw, 3.8rem);
  line-height:1.1;
  letter-spacing:-0.01em;
  color:var(--ink);
}
h1 em{ font-style:italic; font-weight:400; color:var(--brick); }
h2.section-title{
  font-family:'Newsreader', serif;
  font-weight:500;
  font-size:clamp(1.5rem, 3vw, 2rem);
  color:var(--ink);
  margin-bottom:1.6rem;
}
.lede{
  margin-top:1.4rem;
  max-width:56ch;
  font-size:1.05rem;
  line-height:1.65;
  color:var(--ink-soft);
}
.divider{
  margin-top:2rem;
  width:100%;
  max-width:320px;
  height:1px;
  background:var(--line);
}

.btn{
  display:inline-block;
  margin-top:1.8rem;
  padding:0.85rem 1.7rem;
  background:var(--brick);
  color:#FBF8F1;
  text-decoration:none;
  font-family:'IBM Plex Mono', monospace;
  font-size:0.75rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  border-radius:2px;
  transition:background 0.2s ease;
}
.btn:hover{ background:var(--brick-dark); }
.btn-outline{
  background:transparent;
  color:var(--brick);
  border:1px solid var(--brick-dark);
}
.btn-outline:hover{ background:var(--brick); color:#FBF8F1; }

/* SECTIONS */
section{ padding:5vh 0; }
section.alt{ background:var(--paper-2); }

.steps{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:2rem;
  margin-top:1rem;
}
.step{
  border-top:2px solid var(--brick);
  padding-top:1rem;
}
.step .num{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.75rem;
  color:var(--brick);
  letter-spacing:0.1em;
}
.step h3{
  font-family:'Newsreader', serif;
  font-weight:500;
  font-size:1.25rem;
  margin:0.5rem 0 0.5rem 0;
}
.step p{
  font-size:0.95rem;
  line-height:1.6;
  color:var(--ink-soft);
}

.chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:0.7rem;
  margin-top:1.6rem;
}
.chip{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.05em;
  padding:0.5rem 0.9rem;
  border:1px solid var(--line);
  border-radius:2px;
  color:var(--ink-soft);
  background:var(--card);
}

.card-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:1.4rem;
  margin-top:1rem;
}
.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:3px;
  padding:1.5rem 1.6rem;
}
.card .tag{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--brick);
  display:block;
  margin-bottom:0.5rem;
}
.card h3{
  font-family:'Newsreader', serif;
  font-weight:500;
  font-size:1.15rem;
  margin-bottom:0.5rem;
}
.card p{
  font-size:0.93rem;
  line-height:1.6;
  color:var(--ink-soft);
}

.note-box{
  margin-top:2.5rem;
  padding:1.4rem 1.6rem;
  border-left:3px solid var(--brick);
  background:var(--card);
  font-size:0.95rem;
  line-height:1.65;
  color:var(--ink-soft);
}

/* CONTACT / ABOUT BLOCKS */
.contact-grid{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap:2.5rem;
  margin-top:1rem;
}
.contact-card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:3px;
  padding:2rem;
}
.contact-card h3{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.68rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--brick);
  margin-bottom:0.9rem;
}
.contact-card .name{
  font-family:'Newsreader', serif;
  font-size:1.4rem;
  font-weight:500;
  margin-bottom:0.6rem;
}
.contact-card a, .contact-card p{
  display:block;
  font-size:1rem;
  text-decoration:none;
  color:var(--ink);
  line-height:1.9;
  opacity:0.9;
}
.contact-card a{
  border-bottom:1px solid var(--line);
  width:fit-content;
  transition:border-color 0.2s ease, color 0.2s ease;
}
.contact-card a:hover{ color:var(--brick); border-color:var(--brick); }

/* SKYLINE SIGNATURE */
.skyline{ width:100%; line-height:0; }
.skyline svg{ display:block; width:100%; height:auto; }

/* FOOTER */
footer{
  border-top:1px solid var(--line);
  padding:2.4rem 0 3rem 0;
}
footer .foot-grid{
  display:grid;
  grid-template-columns: 1.3fr 1fr 1fr;
  gap:2rem;
}
.foot-block h4{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.64rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--brick);
  margin-bottom:0.6rem;
}
.foot-block a, .foot-block p{
  font-size:0.9rem;
  color:var(--ink);
  text-decoration:none;
  line-height:1.7;
  opacity:0.82;
}
.foot-block a{ border-bottom:1px solid var(--line); }
.foot-block a:hover{ color:var(--brick); border-color:var(--brick); }
.legal{
  grid-column:1/-1;
  margin-top:1.2rem;
  padding-top:1.1rem;
  border-top:1px solid var(--line);
  font-family:'IBM Plex Mono', monospace;
  font-size:0.66rem;
  color:var(--ink);
  opacity:0.5;
}

@keyframes fadeUp{
  from{ opacity:0; transform:translateY(12px); }
  to{ opacity:1; transform:translateY(0); }
}
@media (prefers-reduced-motion: reduce){
  .site-header, .hero, .page-header{ animation:none; }
}

@media (max-width: 820px){
  .steps{ grid-template-columns:1fr; }
  .card-grid{ grid-template-columns:1fr; }
  .contact-grid{ grid-template-columns:1fr; }
  footer .foot-grid{ grid-template-columns:1fr 1fr; row-gap:1.6rem; }
  nav.primary-nav{ gap:1.2rem; }
}
