:root{
  --ink:#161d2b;
  --ink2:#1e2635;
  --ink3:#2a3242;
  --paper:#efe8da;
  --paper2:#e4dbc8;
  --ember:#b5502a;
  --ember-bright:#d1663a;
  --moss:#5b6b54;
  --bone:#ede8de;
  --charcoal:#211d19;
  --line:rgba(239,232,218,0.14);
  --line-dark:rgba(33,29,25,0.12);
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--bone);
  font-family:'Manrope', sans-serif;
  font-size:16px;
  line-height:1.6;
  overflow-x:hidden;
}
h1,h2,h3,.display{
  font-family:'Bricolage Grotesque', sans-serif;
  font-weight:700;
  letter-spacing:-0.015em;
}
.eyebrow{
  font-family:'IBM Plex Mono', monospace;
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ember-bright);
}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
.wrap{max-width:1120px; margin:0 auto; padding:0 28px;}
section{position:relative;}

/* NAV */
header.site{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(20,24,29,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px; max-width:1120px; margin:0 auto;
}
.brand{
  font-family:'Bricolage Grotesque', sans-serif; font-weight:700; font-size:1.05rem;
  color:var(--bone);
  display:flex; align-items:center; gap:8px;
}
.brand span{color:var(--ember-bright);}
.brand-icon{width:26px; height:26px; display:block;}
.nav-links{display:flex; gap:26px; align-items:center;}
.nav-links a{
  font-size:0.86rem; font-weight:600; color:var(--bone); opacity:0.75;
  transition:opacity .2s;
}
.nav-links a:hover, .nav-links a.active{opacity:1; color:var(--ember-bright);}
.nav-cta{
  padding:9px 18px; border:1px solid var(--ember-bright); border-radius:8px;
  font-size:0.82rem; font-weight:700; opacity:1 !important; color:var(--bone) !important;
}
.nav-toggle{display:none; background:none; border:none; color:var(--bone); font-size:1.5rem; cursor:pointer;}

@media (max-width:900px){
  .nav-links{
    position:fixed; top:60px; left:0; right:0; background:var(--ink);
    flex-direction:column; align-items:flex-start; padding:20px 28px; gap:18px;
    border-bottom:1px solid var(--line); display:none;
  }
  .nav-links.open{display:flex;}
  .nav-toggle{display:block;}
}

/* PAGE HEADER (non-landing pages) */
.page-header{
  padding:150px 0 60px;
}
.page-header .eyebrow{margin-bottom:16px;}
.page-header h1{font-size:clamp(2rem,4.4vw,3.2rem); max-width:20ch; line-height:1.1;}
.page-header p{margin-top:18px; max-width:56ch; font-size:1.05rem; color:rgba(239,232,218,0.78);}

/* SWORD DIVIDER */
.line-divider{width:100%; height:100px; margin:0 auto; display:block; overflow:visible;}
.line-divider .sword{
  opacity:0; transform:translateY(6px);
  transition:opacity .8s ease, transform .8s cubic-bezier(.16,.84,.44,1);
}
.line-divider.in-view .sword{opacity:1; transform:translateY(0);}
.line-divider .sword *{fill:var(--ember-bright);}
.line-divider.dark .sword *{fill:var(--ember);}
.line-divider .fuller{opacity:0.5;}

/* SECTION LIGHT */
.section-light{background:var(--paper); color:var(--charcoal);}
.section-light .eyebrow{color:var(--ember);}

/* BUTTONS */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:14px 26px; font-size:0.92rem; font-weight:700; border-radius:8px;
  transition:transform .2s ease, background .2s ease;
  cursor:pointer; border:none; font-family:'Manrope';
}
.btn-primary{background:var(--ember); color:var(--bone);}
.btn-primary:hover{background:var(--ember-bright); transform:translateY(-1px);}
.btn-ghost{border:1px solid rgba(239,232,218,0.35); color:var(--bone); background:none;}
.btn-ghost:hover{border-color:var(--bone); transform:translateY(-1px);}
.btn-ghost-dark{border:1px solid var(--ember); color:var(--bone); background:var(--ember);}
.btn-ghost-dark:hover{background:var(--ember-bright); transform:translateY(-1px);}

/* LANDING PAGE */
.landing{
  min-height:100svh; display:flex; align-items:center; justify-content:center;
  text-align:center; padding:120px 28px 60px;
}
.landing-inner{max-width:700px;}
.landing-brand{
  font-family:'Bricolage Grotesque', sans-serif; font-weight:800;
  font-size:clamp(1.3rem,2.6vw,1.7rem); margin-bottom:34px; letter-spacing:-0.01em;
}
.landing-brand span{color:var(--ember-bright);}
.landing h1{
  font-size:clamp(2rem,5vw,3.4rem); line-height:1.14; margin-bottom:22px;
}
.landing h1 em{font-style:italic; font-weight:500; color:var(--ember-bright);}
.landing p{
  font-size:1.08rem; color:rgba(239,232,218,0.78); max-width:48ch; margin:0 auto 40px;
}
.landing-ctas{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* GENERIC CONTENT BLOCKS */
.content{padding:70px 0;}
.content-head{max-width:640px; margin-bottom:44px;}
.content-head h2{font-size:clamp(1.7rem,3.2vw,2.3rem); margin-top:12px;}
.content-head p{margin-top:14px; font-size:1.02rem; color:rgba(239,232,218,0.75);}
.section-light .content-head p{color:rgba(33,29,25,0.75);}

.grid-cards{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:40px;}
.card{background:var(--ink); padding:30px;}
.card h3{font-size:1.08rem; margin-bottom:8px; color:var(--bone);}
.card p{font-size:0.93rem; color:rgba(239,232,218,0.72);}

.tag-list{display:flex; flex-wrap:wrap; gap:10px; margin-top:6px;}
.tag-list span{
  font-family:'Manrope', sans-serif; font-size:0.82rem; font-weight:700; letter-spacing:0.01em;
  padding:8px 16px; border:none; border-radius:999px; background:var(--ink3); color:var(--bone);
}

.disclosure{
  border-left:3px solid var(--ember);
  background:var(--ink2);
  padding:20px 24px;
  font-size:0.9rem;
  color:rgba(239,232,218,0.8);
  max-width:760px;
}
.disclosure strong{color:var(--bone);}

.info-strip{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin:36px 0;}
.info-strip div{background:var(--ink2); padding:24px;}
.info-strip b{
  display:block; font-family:'IBM Plex Mono', monospace; font-size:0.7rem;
  text-transform:uppercase; letter-spacing:0.08em; color:var(--ember-bright); margin-bottom:6px;
}
.info-strip span{font-size:0.98rem; color:var(--bone);}

.timeline{display:flex; flex-direction:column;}
.tl-item{
  display:grid; grid-template-columns:60px 1fr; gap:20px;
  padding:24px 0; border-top:1px solid var(--line-dark);
}
.tl-item:last-child{border-bottom:1px solid var(--line-dark);}
.tl-mark{font-family:'IBM Plex Mono', monospace; font-size:0.8rem; color:var(--ember); padding-top:4px;}
.tl-body h3{font-size:1.12rem; font-weight:700; margin-bottom:6px;}
.tl-body p{font-size:0.96rem; color:rgba(33,29,25,0.75); max-width:60ch;}

.verse{
  font-family:'Bricolage Grotesque', sans-serif; font-style:italic; font-weight:500;
  font-size:1.2rem; line-height:1.6; max-width:62ch; color:var(--bone);
  border-left:3px solid var(--ember-bright); padding-left:24px;
}
.section-light .verse{color:var(--charcoal); border-left-color:var(--ember);}
.verse cite{display:block; margin-top:14px; font-family:'IBM Plex Mono', monospace; font-style:normal; font-size:0.75rem; letter-spacing:0.06em; color:var(--ember-bright); text-transform:uppercase;}

/* FORMS */
.form-panel{background:var(--paper2); padding:36px; border:1px solid rgba(33,29,25,0.1);}
.path-toggle{display:flex; gap:0; margin-bottom:24px; border:1px solid var(--charcoal);}
.path-toggle button{
  flex:1; padding:13px; background:none; border:none; font-family:'Manrope'; font-weight:700;
  font-size:0.86rem; cursor:pointer; color:var(--charcoal); opacity:0.5;
}
.path-toggle button.active{background:var(--charcoal); color:var(--paper); opacity:1;}
form{display:flex; flex-direction:column; gap:14px;}
form label{display:block; margin-bottom:6px; font-size:0.76rem; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; color:rgba(33,29,25,0.6);}
form input, form textarea, form select{
  width:100%; padding:12px 14px; border:1px solid rgba(33,29,25,0.25); background:#fff;
  font-family:'Manrope'; font-size:0.95rem; color:var(--charcoal); border-radius:6px;
}
form textarea{min-height:180px; resize:vertical;}
.radio-row{display:flex; gap:22px; align-items:center; margin-top:2px;}
.radio-row label{display:flex; align-items:center; gap:7px; font-size:0.86rem; text-transform:none; font-weight:600; color:var(--charcoal); letter-spacing:0;}
.radio-row input{width:auto; padding:0;}
.form-submit{
  margin-top:6px; align-self:flex-start; padding:14px 30px; background:var(--ember); color:var(--bone);
  border:none; font-weight:700; font-size:0.92rem; border-radius:8px; cursor:pointer; font-family:'Manrope';
}
.form-submit:hover{background:var(--ember-bright);}
.form-note{font-size:0.8rem; color:rgba(33,29,25,0.55); margin-top:10px;}

footer{background:var(--ink); padding:36px 0; border-top:1px solid var(--line);}
.foot-row{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px;}
.foot-row span{font-size:0.82rem; color:rgba(239,232,218,0.55);}
.foot-links{display:flex; gap:18px;}
.foot-links a{font-size:0.82rem; color:rgba(239,232,218,0.55);}
.foot-links a:hover{color:var(--ember-bright);}

@media (max-width:820px){
  .grid-cards, .info-strip{grid-template-columns:1fr;}
  .tl-item{grid-template-columns:1fr; gap:4px;}
}
.about-grid{display:grid; grid-template-columns:1fr 1fr; gap:40px;}
@media (max-width:820px){
  .about-grid{grid-template-columns:1fr; gap:32px;}
}
.two-col-panel{display:grid; grid-template-columns:0.9fr 1.1fr; gap:60px;}
@media (max-width:820px){
  .two-col-panel{grid-template-columns:1fr; gap:32px;}
}
