
:root{
  --bg:#0a0908;
  --bg-soft:#12110f;
  --bg-panel:#151311;
  --text:#ece7df;
  --muted:#c9c1b8;
  --faint:#8f877e;
  --line:rgba(255,255,255,.08);
  --accent:#c8b89a;
  --accent-soft:rgba(200,184,154,.18);
  --serif:'Cormorant Garamond',serif;
  --sans:'Montserrat',system-ui,sans-serif;
  --max:1180px;
  --max-mid:980px;
  --max-narrow:760px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);line-height:1.75;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.site{min-height:100vh}
.container,.container-mid,.container-narrow{margin:0 auto;padding:0 32px}
.container{max-width:var(--max)}
.container-mid{max-width:var(--max-mid)}
.container-narrow{max-width:var(--max-narrow)}
.site-header{position:sticky;top:0;z-index:20;background:rgba(10,9,8,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-row{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{font-family:var(--serif);font-size:1.15rem;letter-spacing:.04em;color:var(--text)}
.nav{display:flex;gap:28px;flex-wrap:wrap}
.nav a,.footer-nav a{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);transition:color .2s ease}
.nav a:hover,.nav a.active,.footer-nav a:hover{color:var(--text)}
main{overflow:hidden}
.hero{min-height:calc(100vh - 72px);display:grid;grid-template-columns:minmax(320px,.95fr) minmax(320px,1.05fr);background:var(--bg-soft);border-bottom:1px solid var(--line)}
.hero-image{position:relative;min-height:540px}
.hero-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:grayscale(100%)}
.hero-image::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,9,8,.10) 0%,rgba(10,9,8,.04) 35%,rgba(10,9,8,.70) 100%),linear-gradient(180deg,rgba(10,9,8,.08) 0%,rgba(10,9,8,.28) 100%)}
.hero-copy{display:flex;align-items:center;padding-top:96px;padding-bottom:80px}
.role-line,.eyebrow{display:block;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.06;letter-spacing:.01em;margin:0}
h1{font-size:clamp(2.35rem,5vw,4.55rem);max-width:13ch}
h2{font-size:clamp(2rem,4vw,3.1rem);max-width:16ch;margin-bottom:18px}
h3{font-size:1.7rem;margin-bottom:12px}
h4{font-size:1.18rem;margin-bottom:10px}
p{margin:0 0 18px;color:var(--muted);font-size:1rem}
.lead{font-size:1.08rem;max-width:56ch;color:#ddd5ca}
.text p:last-child{margin-bottom:0}
.button-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}
.button{display:inline-flex;align-items:center;justify-content:center;padding:14px 24px;border:1px solid var(--accent-soft);font-size:.78rem;letter-spacing:.17em;text-transform:uppercase;color:var(--text);transition:.22s ease;background:transparent}
.button:hover{background:var(--accent);color:#0b0a09;border-color:var(--accent)}
.button.secondary{border-color:var(--line)}
.section{padding:88px 0;border-bottom:1px solid var(--line)}
.surface{background:var(--bg-soft)}
.cards-4,.cards-2{display:grid;gap:2px}
.cards-4{grid-template-columns:repeat(4,1fr);margin-top:38px}
.cards-2{grid-template-columns:repeat(2,1fr);margin-top:34px}
.card{display:block;background:var(--bg-panel);padding:34px 30px;border-top:2px solid transparent;transition:.22s ease;min-height:100%}
.card:hover{border-top-color:var(--accent);background:#191714}
.card .num{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-bottom:14px}
.card p{margin-bottom:0}
.framework-home h2{margin-bottom:12px}
.framework-intro{font-family:var(--serif);font-size:1.5rem;line-height:1.3;color:var(--text);max-width:24ch;margin-bottom:30px}
.framework-close{max-width:680px;margin-top:26px}
.model-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;margin-top:34px}
.model-card{background:var(--bg-panel);padding:32px 28px;border-top:2px solid transparent;transition:.22s ease}
.model-card:hover{border-top-color:var(--accent);background:#191714}
.index-links{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin-top:28px}
.index-links a{display:block;background:var(--bg-panel);padding:28px 24px;border-top:2px solid transparent;transition:.22s ease}
.index-links a:hover{border-top-color:var(--accent);background:#191714}
.index-links strong{display:block;font-size:1rem;color:var(--text);margin-bottom:8px;font-weight:500}
.page-hero{position:relative;min-height:58vh;display:flex;align-items:flex-end;background:var(--bg-soft);border-bottom:1px solid var(--line)}
.page-hero.image-hero{min-height:72vh}
.page-hero .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(100%)}
.page-hero::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,9,8,.12) 0%,rgba(10,9,8,.42) 54%,rgba(10,9,8,.94) 100%)}
.page-hero .hero-inner{position:relative;z-index:1;padding:110px 32px 76px;max-width:var(--max-mid);margin:0 auto;width:100%}
.grid-2{display:grid;grid-template-columns:1.2fr .8fr;gap:78px;align-items:start}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:38px}
.info-block{padding-top:18px;border-top:1px solid var(--line)}
.small{font-size:.74rem;letter-spacing:.20em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.quote{font-family:var(--serif);font-size:1.65rem;line-height:1.45;color:var(--text);padding-left:26px;border-left:1px solid var(--accent);margin:34px 0}
.cred-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:30px}
.cred{padding-top:16px;border-top:1px solid var(--line)}
.cred strong{display:block;color:var(--text);margin-bottom:4px;font-weight:500}
.list{display:grid;gap:22px;margin-top:30px}
.list-item{padding-top:18px;border-top:1px solid var(--line)}
.list-item p:last-child{margin-bottom:0}
.service-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}
.service-step{padding-top:18px;border-top:1px solid var(--line)}
.faq{display:grid;gap:18px;margin-top:34px}
.faq-item{padding-top:16px;border-top:1px solid var(--line)}
.media-list{display:grid;gap:2px;margin-top:34px}
.media-item{display:block;background:var(--bg-panel);padding:28px;border-top:2px solid transparent;transition:.22s ease}
.media-item:hover{border-top-color:var(--accent);background:#191714}
.media-item .tags{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.media-item .tag{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
.footer{padding:46px 0 58px;background:#090807}
.footer-row{display:flex;justify-content:space-between;gap:32px;align-items:flex-end;flex-wrap:wrap}
.footer-brand{font-family:var(--serif);font-size:1.15rem;color:var(--text)}
.footer-tag{font-size:.83rem;color:var(--faint);margin-top:4px}
.footer-nav{display:flex;gap:22px;flex-wrap:wrap}
.text-muted{color:var(--faint)}
.linkline{display:inline-block;padding-bottom:2px;border-bottom:1px solid rgba(200,184,154,.35)}
@media (max-width:1080px){
  .cards-4{grid-template-columns:repeat(2,1fr)}
  .index-links{grid-template-columns:repeat(2,1fr)}
  .model-grid{grid-template-columns:1fr}
  .info-grid,.service-steps,.cred-grid{grid-template-columns:1fr}
  .grid-2{grid-template-columns:1fr;gap:40px}
}
@media (max-width:860px){
  .hero{grid-template-columns:1fr}
  .hero-image{min-height:48vh;order:1}
  .hero-copy{order:2;padding-top:46px}
  h1{max-width:unset}
  .nav{display:none}
}
@media (max-width:640px){
  .container,.container-mid,.container-narrow,.page-hero .hero-inner{padding-left:22px;padding-right:22px}
  .cards-4,.cards-2,.index-links{grid-template-columns:1fr}
  .section{padding:72px 0}
  .button-row{gap:12px}
}

.section-links{padding-top:64px;padding-bottom:72px}
.index-links-minimal{display:flex;justify-content:center;gap:34px;flex-wrap:wrap;margin-top:0}
.index-links-minimal a{display:inline-block;background:transparent;padding:0;border-top:none;font-family:var(--serif);font-size:1.65rem;line-height:1.1;color:var(--text);transition:color .2s ease, opacity .2s ease}
.index-links-minimal a:hover{color:var(--accent);background:transparent}
@media (max-width:640px){.index-links-minimal{gap:18px 24px}.index-links-minimal a{font-size:1.35rem}}
