:root{
    --ink:#0B0D10;
    --steel:#161A1F;
    --paper:#FAFAF8;
    --mist:#EEF2F5;
    --slate:#5B6570;
    --line:#D8DCDF;
    --blue:#005EB8;
    --blue-deep:#00448A;
    --font-display:'Fraunces', serif;
    --font-body:'Inter', -apple-system, sans-serif;
    --font-mono:'IBM Plex Mono', monospace;
}

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

html{scroll-behavior:smooth;}

body{
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--paper);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
}

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

img,svg{display:block;max-width:100%;}

.eyebrow{
    font-family:var(--font-mono);
    font-size:0.72rem;
    letter-spacing:0.18em;
    text-transform:uppercase;
    color:var(--blue);
    display:flex;
    align-items:center;
    gap:0.6rem;
    font-weight: bolder;
}
.eyebrow::before{
    content:"";
    display:inline-block;
    width:28px;
    height:1px;
    background:var(--blue);
}

h1,h2,h3{
    font-family:var(--font-display);
    font-weight:500;
    letter-spacing:-0.01em;
    line-height:1.08;
}

.container{
    max-width:1200px;
    margin:0 auto;
    padding: 1rem;
}

/* ---------- NAV ---------- */
header{
    position:fixed;
    top:0;left:0;right:0;
    z-index:100;
    padding:0.5rem 6vw;
    display:flex;
    align-items:center;
    justify-content:space-between;
    transition:background 0.4s ease, padding 0.4s ease, border-color 0.4s ease;
    border-bottom:1px solid transparent;
    background: black;
}
header.scrolled{
    background:black;
    backdrop-filter:blur(10px);
    padding:1.1rem 6vw;
    border-bottom:1px solid var(--line);
}
.brand{
    font-family:var(--font-display);
    font-size:1.15rem;
    font-weight:500;
    color:var(--paper);
    letter-spacing:0.01em;
    transition:color 0.4s ease;
}
header.scrolled .brand{color:var(--ink);}
.brand span{color:var(--blue);}

nav ul{
    list-style:none;
    display:flex;
    gap:2.4rem;
}
nav a{
    font-size:0.88rem;
    color:rgba(250,250,248,0.85);
    transition:color 0.3s ease;
    position:relative;
}
header.scrolled nav a{color:rgba(250,250,248,0.85);;}
nav a:hover{color:var(--paper);}
header.scrolled nav a:hover{color:var(--ink);}
.nav-links{display:flex;}
.nav-cta{
    font-size:0.85rem;
    padding:0.55rem 1.3rem;
    border:1px solid rgba(250,250,248,0.5);
    border-radius:2px;
    color:var(--paper) !important;
    transition:all 0.3s ease;
}
header.scrolled .nav-cta{border-color:var(--ink); color:var(--ink) !important;}
.nav-cta:hover{background:var(--blue); border-color:var(--blue); color:#fff !important;}

.menu-toggle{display:none;background:none;border:none;cursor:pointer;}

/* ---------- HERO ---------- */
.hero{
    position:relative;
    min-height:100vh;
    background:linear-gradient(180deg,#0B0D10 0%,#12161B 60%,#161A1F 100%);
    color:var(--paper);
    display:flex;
    align-items:flex-end;
    overflow:hidden;
}
.hero-horizon{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}
.hero-inner{
    position:relative;
    z-index:2;
    width:100%;
    padding: 5rem 10vw 7vw;
}
.hero h1{
    font-size:clamp(2.6rem, 6vw, 5rem);
    color:var(--paper);
}
.hero h1 em{
    font-style:italic;
    color:var(--blue);
    font-weight:400;
}
.hero-sub{
    margin-top:2rem;
    font-size:1.05rem;
    color:rgba(250,250,248,0.72);
    font-weight:300;
}
.hero-sub p + p{margin-top:1rem;}
.hero-actions{
    margin-top:2.6rem;
    display:flex;
    gap:1.1rem;
    flex-wrap:wrap;
}
.btn{
    font-family:var(--font-body);
    font-size:0.88rem;
    font-weight:500;
    padding:0.95rem 1.9rem;
    border-radius:2px;
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    transition:all 0.3s ease;
    cursor:pointer;
    border:1px solid transparent;
}
.btn-primary{background:var(--blue); color:#fff;}
.btn-primary:hover{background:var(--blue-deep); transform:translateY(-1px);}
.btn-ghost{border-color:rgba(250,250,248,0.4); color:var(--paper);}
.btn-ghost:hover{border-color:var(--paper); background:rgba(250,250,248,0.08);}
.btn-ghost.dark{border-color:rgba(11,13,16,0.3); color:var(--ink);}
.btn-ghost.dark:hover{border-color:var(--ink); background:rgba(11,13,16,0.05);}

.scroll-cue{
    position:absolute;
    right:6vw;
    bottom:2.4rem;
    display:flex;
    align-items:center;
    gap:0.8rem;
    font-family:var(--font-mono);
    font-size:0.7rem;
    letter-spacing:0.14em;
    color:rgba(250,250,248,0.5);
    z-index:2;
}
.scroll-cue .line{width:1px;height:36px;background:rgba(250,250,248,0.35);position:relative;overflow:hidden;}
.scroll-cue .line::after{
    content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;
    background:var(--blue);
    animation:scrollpulse 2.4s ease-in-out infinite;
}
@keyframes scrollpulse{
    0%{top:-100%;} 50%{top:0;} 100%{top:100%;}
}

/* ---------- GENERIC SECTION ---------- */
section{
    padding:8rem 0;
    position:relative;
}
.section-dark{background:var(--ink); color:var(--paper);}
.section-mist{background:var(--mist);}

.section-head{
    max-width:760px;
    margin-bottom:4rem;
}
.section-head h2{
    font-size:clamp(1.9rem, 3.2vw, 2.7rem);
    margin-top:1rem;
}
.section-dark .section-head h2{color:var(--paper);}
.section-lede{
    margin-top:1.5rem;
    font-size:1.05rem;
    color:var(--slate);
    font-weight:300;
}
.section-dark .section-lede{color:rgba(250,250,248,0.68);}

.reveal{
    opacity:0;
    transform:translateY(24px);
    transition:opacity 0.8s ease, transform 0.8s ease;
}
.reveal.visible{opacity:1; transform:translateY(0);}

/* horizon divider */
.horizon-divider{
    width:100%;
    height:56px;
    display:block;
}

/* ---------- FEATURE GRID (Section 2) ---------- */
.feature-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
}
.feature-box{
    background:var(--paper);
    padding:2.6rem 2.2rem;
}
.feature-box .num{
    font-family:var(--font-mono);
    font-size:0.75rem;
    color:var(--blue);
    letter-spacing:0.1em;
}
.feature-box h3{
    font-size:1.25rem;
    margin-top:1.1rem;
    font-weight:500;
}
.feature-box p{
    margin-top:0.9rem;
    color:var(--slate);
    font-size:0.95rem;
}

/* ---------- INVEST CATEGORIES (Section 3) ---------- */
.invest-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:2.6rem;
}
.invest-col .eyebrow{margin-bottom:1.4rem;}
.invest-col ul{list-style:none;}
.invest-col li{
    padding:0.65rem 0;
    border-bottom:1px solid rgba(250,250,248,0.12);
    font-size:0.96rem;
    color:rgba(250,250,248,0.82);
}
.invest-col li:first-child{padding-top:0;}

/* ---------- PHILOSOPHY (Section 4) ---------- */
.philosophy-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:3rem;
    margin-top:1rem;
}
.philosophy-item .mark{
    width:38px;height:38px;
    border:1px solid var(--blue);
    border-radius:50%;
    position:relative;
    margin-bottom:1.6rem;
}
.philosophy-item .mark::after{
    content:"";
    position:absolute;
    top:50%;left:50%;
    width:8px;height:8px;
    background:var(--blue);
    border-radius:50%;
    transform:translate(-50%,-50%);
}
.philosophy-item h3{font-size:1.1rem; font-weight:500;}
.philosophy-item p{margin-top:0.8rem; color:var(--slate); font-size:0.94rem;}

/* ---------- CRITERIA (Section 5) ---------- */
.criteria-wrap{
    display:grid;
    grid-template-columns:1.1fr 1fr;
    gap:5rem;
    align-items:start;
}
.criteria-list{list-style:none;}
.criteria-list li{
    display:flex;
    gap:1rem;
    padding:1.15rem 0;
    border-bottom:1px solid var(--line);
    font-size:1rem;
}
.criteria-list li:first-child{padding-top:0;}
.criteria-list .tick{
    flex:none;
    width:20px;height:20px;
    margin-top:0.15rem;
}
.disclaimer{
    margin-top:2rem;
    font-size:0.85rem;
    color:var(--slate);
    font-style:italic;
    border-left:2px solid var(--blue);
    padding-left:1rem;
}
.criteria-visual{
    position:sticky;
    top:8rem;
    background:var(--steel);
    border-radius:2px;
    padding:3rem 2.4rem;
    color:var(--paper);
}
.criteria-visual .eyebrow{color:var(--blue);}
.criteria-visual blockquote{
    font-family:var(--font-display);
    font-size:1.4rem;
    font-weight:400;
    font-style:italic;
    line-height:1.4;
    margin-top:1.6rem;
    color:var(--paper);
}
.criteria-visual .attrib{
    margin-top:1.6rem;
    font-family:var(--font-mono);
    font-size:0.75rem;
    letter-spacing:0.08em;
    color:rgba(250,250,248,0.5);
    text-transform:uppercase;
}

/* ---------- WHY AHR (Section 6) ---------- */
.badges{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    margin-top:3rem;
}
.badge{
    background:var(--paper);
    padding:2.4rem 1.6rem;
    text-align:center;
}
.badge .icon{
    width:34px;height:34px;
    margin:0 auto 1.1rem;
    color:var(--blue);
}
.badge p{
    font-family:var(--font-mono);
    font-size:0.76rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--ink);
}

.why-copy{
    max-width:640px;
}
.why-copy h2{font-size:clamp(1.9rem,3.2vw,2.7rem); margin-top:1rem;}
.why-copy p{margin-top:1.4rem; color:var(--slate); font-weight:300; font-size:1.02rem;}

/* ---------- CTA (Section 7) ---------- */
.cta-section{
    background:var(--blue);
    color:#fff;
    text-align:center;
    padding:7rem 0;
}
.cta-section h2{
    color:#fff;
    font-size:clamp(2rem,4vw,3rem);
    margin:1rem auto 0;
}
.cta-section p{
    max-width:52ch;
    margin:1.6rem auto 0;
    color:rgba(255,255,255,0.85);
    font-weight:300;
}
.cta-section .btn{margin-top:2.6rem;}
.cta-section .btn-primary{background:var(--ink);}
.cta-section .btn-primary:hover{background:#000;}

/* ---------- FOOTER ---------- */
footer{
    background:black;
    color:rgba(250,250,248,0.6);
    padding:4.5rem 0 2.5rem;
}
.footer-top{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    flex-wrap:wrap;
    gap:3rem;
    padding-bottom:3rem;
    border-bottom:1px solid rgba(250,250,248,0.12);
}
.footer-brand .brand{color:var(--paper); font-size:1.3rem;}
.footer-brand p{margin-top:1rem; font-size:0.9rem; color:rgba(250,250,248,0.5); max-width:32ch;}
.footer-nav ul{list-style:none; display:flex; gap:2.2rem; flex-wrap:wrap;}
.footer-nav a{font-size:0.88rem; transition:color 0.3s ease;}
.footer-nav a:hover{color:var(--paper);}
.footer-bottom{
    display:flex;
    justify-content:space-between;
    padding-top:2rem;
    font-size:0.78rem;
    color:rgba(250,250,248,0.4);
    flex-wrap:wrap;
    gap:1rem;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
    .feature-grid{grid-template-columns:1fr;}
    .invest-grid{grid-template-columns:repeat(2,1fr);}
    .philosophy-grid{grid-template-columns:repeat(2,1fr);}
    .badges{grid-template-columns:repeat(2,1fr);}
    .criteria-wrap{grid-template-columns:1fr; gap:3rem;}
    .criteria-visual{position:static;}
}
@media (max-width:720px){
    .nav-links, .nav-cta{display:none;}
    .menu-toggle{display:block;}
    section{padding:5rem 0;}
    .invest-grid{grid-template-columns:1fr;}
    .philosophy-grid{grid-template-columns:1fr;}
    .badges{grid-template-columns:1fr;}
    .hero-inner{padding-top:5rem;}
}

@media (prefers-reduced-motion:reduce){
    *{animation:none !important; transition:none !important;}
}
