/* FONTS */
@font-face{font-family:"Founders Grotesk";src:url('fonts/founders-grotesk-regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Ogg";src:url('fonts/Ogg-Regular.woff2') format('woff2'),url('fonts/Ogg-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Meno Banner";src:url('fonts/MenoBanner-Regular.woff2') format('woff2'),url('fonts/MenoBanner-Regular.woff') format('woff');font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Meno Banner";src:url('fonts/MenoBanner-RegularItalic.woff2') format('woff2'),url('fonts/MenoBanner-RegularItalic.woff') format('woff');font-weight:400;font-style:italic;font-display:swap;}

/* RESET */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
[hidden]{display:none!important;}

/* TOKENS */
:root{
  --paper:#F7F8F5;--ink:#141414;--cream:#F8F3E8;
  --stone:#6B6356;--accent:#2E5DA2;--dark:#1C1B18;
  --hairline:rgba(26,28,25,.14);
  --ann-left:clamp(20px,3.5vw,48px);
  --font-body:"Founders Grotesk",system-ui,sans-serif;
}

/* BASE */
html{scroll-behavior:smooth;}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .rise{opacity:1!important;transform:none!important;}
}
body{
  background:var(--paper);color:var(--ink);
  font-family:var(--font-body);
  font-size:18px;font-weight:400;line-height:1.65;
  -webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;min-height:100vh;
  position:relative;
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  background:url('assets/texture.jpg') top center / cover no-repeat;
  pointer-events:none;
}
main{flex:1;}
a{color:inherit;}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;}
::selection{background:#EDE0C4;color:var(--dark);}

/* NAV — solid state (default for all interior pages; index.html overrides for hero) */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 40px;
  background:var(--paper);
  border-bottom:1px solid var(--hairline);
}
.nav-name{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);text-decoration:none;}
.nav-contact{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);text-decoration:none;transition:color .2s;}
.nav-contact:hover{color:var(--ink);}
.nav-links{display:flex;align-items:center;gap:clamp(16px,2vw,28px);}
.nav-link{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--stone);text-decoration:none;transition:color .2s;}
.nav-link:hover{color:var(--ink);}

/* CONTACT / LEDGER */
.contact{background:var(--dark);padding:clamp(72px,10vw,120px) 0 clamp(64px,9vw,112px);}
.inner{max-width:680px;margin:0 auto;padding:0 32px;}
.ledger{max-width:500px;}
.ledger-rule{height:1px;background:rgba(248,243,232,.14);margin-bottom:0;}
.ledger-row{display:grid;grid-template-columns:96px 1fr;column-gap:2rem;align-items:baseline;padding:.68rem 0;border-bottom:1px solid rgba(248,243,232,.07);}
.ledger-key{font-size:10px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:rgba(248,243,232,.32);}
.ledger-val{font-size:.93rem;font-weight:400;color:rgba(248,243,232,.72);line-height:1.65;}
.ledger-link{color:rgba(248,243,232,.72);text-decoration:none;border:none;border-bottom:1px solid rgba(248,243,232,.2);padding-bottom:1px;transition:color .2s,border-color .2s;background:none;font:inherit;cursor:pointer;padding-left:0;padding-right:0;-webkit-appearance:none;appearance:none;outline:none;}
.ledger-link:hover{color:var(--cream);border-bottom-color:rgba(248,243,232,.55);}
.ledger-link:focus-visible{outline:2px solid rgba(248,243,232,.6);outline-offset:4px;border-radius:1px;}
.cf-wrap{max-width:500px;display:grid;grid-template-rows:0fr;opacity:0;visibility:hidden;transition:grid-template-rows .52s ease,opacity .38s ease,margin-top .38s ease,visibility 0s .52s;margin-top:0;}
.cf-wrap.open{grid-template-rows:1fr;opacity:1;margin-top:2.4rem;visibility:visible;transition:grid-template-rows .52s ease,opacity .38s ease,margin-top .38s ease,visibility 0s 0s;}
.cf-wrap-inner{min-height:0;overflow:hidden;}
.cf-form{display:flex;flex-direction:column;gap:26px;}
.cf-field{display:flex;flex-direction:column;gap:7px;}
.cf-label{font-size:10px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:rgba(248,243,232,.32);transition:color .22s ease;}
.cf-field.is-focused .cf-label{color:rgba(248,243,232,.72);}
.cf-input{background:transparent;border:none;border-radius:0;border-bottom:1px solid rgba(248,243,232,.18);padding:3px 0 11px;width:100%;box-sizing:border-box;font-family:var(--font-body);font-size:.93rem;font-weight:400;color:rgba(248,243,232,.72);outline:none;transition:border-color .22s ease;}
.cf-input:focus{border-bottom-color:rgba(248,243,232,.6);}
.cf-input:focus-visible{outline:2px solid rgba(248,243,232,.45);outline-offset:3px;border-radius:1px;}
.cf-textarea{resize:none;min-height:68px;line-height:1.8;}
.cf-actions{padding-top:6px;}
.cf-submit{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-body);font-size:.7rem;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,243,232,.52);background:none;border:none;padding:0 0 4px;cursor:pointer;position:relative;transition:color .22s ease;}
.cf-submit::after{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:rgba(248,243,232,.18);transition:background .22s ease;}
.cf-submit:hover{color:rgba(248,243,232,.88);}
.cf-submit:hover::after{background:rgba(248,243,232,.45);}
.cf-arrow{display:inline-block;transition:transform .22s cubic-bezier(.25,0,0,1);}
.cf-submit:hover .cf-arrow{transform:translateX(4px);}
.ledger-close{max-width:500px;margin-top:2rem;font-size:.93rem;font-weight:400;line-height:1.65;color:rgba(248,243,232,.62);}
.cf-sent{font-size:.93rem;font-weight:400;color:rgba(248,243,232,.38);letter-spacing:.04em;}

/* COLOPHON */
.colophon{background:var(--dark);border-top:1px solid rgba(248,243,232,.05);padding:18px 32px;text-align:left;font-size:10px;font-weight:400;letter-spacing:.06em;color:rgba(248,243,232,.52);}

/* REVEAL */
.rise{opacity:0;transform:translateY(10px);transition:opacity .5s ease,transform .5s ease;}
.rise.in{opacity:1;transform:translateY(0);}

/* SR ONLY */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;}
.sr-only--focusable:focus{width:auto;height:auto;clip:auto;overflow:visible;white-space:normal;margin:0;padding:8px 16px;background:var(--paper);color:var(--ink);z-index:200;border-bottom:1px solid var(--hairline);}

/* INTERIOR NAV — hairline border */
.interior .nav{border-bottom-color:var(--hairline);}

/* ACTIVE NAV STATE */
.nav-link[aria-current="page"]{color:var(--ink);}

/* MOBILE NAV TOGGLE */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;padding:4px 0;cursor:pointer;color:inherit;-webkit-appearance:none;appearance:none;}
.nav-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:1px;}
.nav-toggle-line{display:block;width:22px;height:1px;background:currentColor;}

/* MOBILE NAV OVERLAY */
.nav-overlay{position:fixed;inset:0;z-index:200;background:var(--dark);display:flex;flex-direction:column;padding:20px clamp(24px,5vw,48px) clamp(40px,7vh,64px);opacity:0;pointer-events:none;visibility:hidden;transition:opacity .4s ease,visibility 0s .4s;}
.nav-overlay.open{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .4s ease,visibility 0s 0s;}
.nav-overlay-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:clamp(48px,10vh,80px);}
.nav-overlay-name{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:rgba(248,243,232,.55);text-decoration:none;}
.nav-overlay-close{background:none;border:none;padding:0;cursor:pointer;font-family:var(--font-body);font-size:11px;font-weight:400;letter-spacing:.18em;text-transform:uppercase;color:rgba(248,243,232,.45);transition:color .2s;-webkit-appearance:none;appearance:none;}
.nav-overlay-close:hover{color:rgba(248,243,232,.88);}
.nav-overlay-close:focus-visible{outline:2px solid rgba(248,243,232,.6);outline-offset:4px;border-radius:1px;}
.nav-overlay-links{display:flex;flex-direction:column;gap:clamp(4px,2vh,12px);}
.nav-overlay-link{font-family:"Meno Banner",serif;font-weight:400;font-size:clamp(2.2rem,10vw,3.6rem);line-height:1.15;color:rgba(248,243,232,.45);text-decoration:none;transition:color .2s;}
.nav-overlay-link:hover{color:rgba(248,243,232,.9);}
.nav-overlay-link[aria-current="page"]{color:rgba(248,243,232,.9);}

/* ARTICLE SHARED */
.reading-progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:101;width:0%;pointer-events:none;}
.article-end-mark{max-width:660px;text-align:center;color:var(--stone);font-size:1rem;font-family:var(--font-body);margin:clamp(44px,5.5vw,64px) 0;}

/* NAV CONTEXT TITLE */
.nav-context-title{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;font-weight:400;letter-spacing:.15em;text-transform:uppercase;color:var(--stone);opacity:0;transition:opacity .3s ease;pointer-events:none;white-space:nowrap;max-width:40%;overflow:hidden;text-overflow:ellipsis;}
.nav-context-title.visible{opacity:1;}
@media(max-width:700px){.nav-context-title{display:none;}}

/* MOBILE */
@media(max-width:700px){
  .nav{padding:13px 20px;}
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
  .inner{padding:0 20px;}
}
