:root{
  --ink:#171b22;
  --stone:#eee8dc;
  --paper:#f8f5ee;
  --brass:#a1791f;
  --brass-dim:#a1791f33;
  --slate:#5b6270;
  --line:#171b2224;
}

*{box-sizing:border-box; margin:0; padding:0;}

html{scroll-behavior:smooth;}

body{
  background:var(--stone);
  color:var(--ink);
  font-family:'Public Sans', sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}

a{color:inherit; text-decoration:none;}

.mono{
  font-family:'IBM Plex Mono', monospace;
  letter-spacing:.06em;
  text-transform:uppercase;
}

/* ---------- background blueprint grid ---------- */
.grid-bg{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:0;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:64px 64px;
  opacity:.5;
}

.wrap{
  position:relative;
  z-index:1;
  max-width:1180px;
  margin:0 auto;
  padding:0 32px;
}

/* ---------- drafting corner brackets ---------- */
.drafted{
  position:relative;
}
.drafted::before,
.drafted::after,
.drafted .tick-br,
.drafted .tick-bl{
  content:"";
  position:absolute;
  width:22px;
  height:22px;
  border:2px solid var(--brass);
}
.drafted::before{ top:-1px; left:-1px; border-right:none; border-bottom:none; }
.drafted::after{ top:-1px; right:-1px; border-left:none; border-bottom:none; }
.drafted .tick-bl{ bottom:-1px; left:-1px; border-right:none; border-top:none; }
.drafted .tick-br{ bottom:-1px; right:-1px; border-left:none; border-top:none; }

/* ---------- header ---------- */
header{
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(238,232,220,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 32px;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:1.15rem;
}
.logo .mark-img{
  width:36px; height:36px;
  object-fit:contain;
  flex-shrink:0;
}
.nav-right{
  display:flex;
  align-items:center;
  gap:14px;
}
.icon-btn{
  width:38px; height:38px;
  border:1px solid var(--line);
  display:flex; align-items:center; justify-content:center;
  border-radius:2px;
  background:transparent;
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.icon-btn:hover{ border-color:var(--ink); background:var(--paper); }
.icon-btn svg{ width:16px; height:16px; stroke:var(--ink); }

.btn-login{
  font-family:'IBM Plex Mono', monospace;
  font-size:.78rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  border:1px solid var(--ink);
  padding:10px 18px;
  border-radius:2px;
  background:transparent;
  cursor:pointer;
  transition:background .2s ease, color .2s ease;
}
.btn-login:hover{ background:var(--ink); color:var(--stone); }

.menu-btn{
  display:flex; flex-direction:column; gap:4px;
  background:none; border:none; cursor:pointer; padding:8px;
}
.menu-btn span{ width:20px; height:1.5px; background:var(--ink); display:block; }

.nav-menu-wrap{ position:relative; }
.nav-menu{
  position:absolute;
  top:calc(100% + 10px);
  right:0;
  min-width:180px;
  background:var(--paper);
  border:1px solid var(--ink);
  display:none;
  flex-direction:column;
  z-index:20;
}
.nav-menu.open{ display:flex; }
.nav-menu a{
  padding:13px 18px;
  font-family:'IBM Plex Mono', monospace;
  font-size:.78rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink);
  border-bottom:1px solid var(--line);
  transition:background .15s ease;
}
.nav-menu a:last-child{ border-bottom:none; }
.nav-menu a:hover{ background:var(--stone); }

/* ---------- shared buttons ---------- */
.btn{
  font-family:'IBM Plex Mono', monospace;
  font-size:.8rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  padding:16px 30px;
  border-radius:2px;
  cursor:pointer;
  border:1px solid var(--ink);
  transition:transform .18s ease, background .2s ease, color .2s ease;
  display:inline-block;
}
.btn-primary{
  background:var(--ink);
  color:var(--paper);
}
.btn-primary:hover{ transform:translateY(-2px); background:var(--brass); border-color:var(--brass);}
.btn-secondary{
  background:transparent;
  color:var(--ink);
}
.btn-secondary:hover{ transform:translateY(-2px); background:var(--ink); color:var(--paper); }

/* ---------- simple sub-page layout ---------- */
.page-wrap{
  position:relative;
  z-index:1;
  max-width:640px;
  margin:0 auto;
  padding:64px 32px 100px;
}
.page-back{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'IBM Plex Mono', monospace;
  font-size:.75rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--slate);
  margin-bottom:32px;
}
.page-back:hover{ color:var(--ink); }
.page-eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--brass);
  margin-bottom:10px;
  display:block;
}
.page-title{
  font-family:'Fraunces', serif;
  font-weight:500;
  font-size:2.1rem;
  margin-bottom:36px;
}
.page-title em{ font-style:italic; color:var(--brass); }
.page-card{
  position:relative;
  background:var(--paper);
  padding:40px;
  border:1px solid var(--line);
}
