:root{
  --paper:#F3F1EA; --paper2:#EAE6D9; --ink:#15140F; --ink2:#4A483F;
  --blue:#2A46FF; --coral:#FF5B35; --line:#D9D3C2; --radius:2px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{font-family:'Sora',sans-serif; color:var(--ink); background:var(--paper); line-height:1.6; overflow-x:hidden;}
h1,h2,h3{font-family:'Space Grotesk',sans-serif; font-weight:700; line-height:1.08; letter-spacing:-0.01em;}
.mono{font-family:'IBM Plex Mono',monospace; font-size:.78rem; color:var(--ink2);}
a{color:inherit; text-decoration:none;}
img{max-width:100%;}
.wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
.btn{display:inline-flex; align-items:center; gap:8px; padding:14px 26px; border:1.5px solid var(--ink); border-radius:var(--radius); font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:.95rem; cursor:pointer; transition:transform .15s ease, background .15s ease;}
.btn:hover{transform:translateY(-2px);}
.btn-solid{background:var(--ink); color:var(--paper);}
.btn-solid:hover{background:var(--blue); border-color:var(--blue);}
.btn-ghost:hover{background:var(--ink); color:var(--paper);}

header{position:fixed; top:0; left:0; right:0; z-index:50; background:rgba(243,241,234,.88); backdrop-filter:blur(8px); border-bottom:1px solid var(--line);}
.nav{display:flex; align-items:center; justify-content:space-between; padding:16px 24px; max-width:1120px; margin:0 auto;}
.logo{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:1.4rem; display:flex; align-items:baseline; gap:6px;}
.logo span{width:8px; height:8px; background:var(--coral); border-radius:50%; display:inline-block; transform:translateY(-6px);}
.nav-links{display:flex; gap:32px; font-size:.92rem; font-weight:500;}
.nav-links a{position:relative; padding:4px 0;}
.nav-links a::after{content:'';position:absolute; left:0; bottom:0; height:1px; width:0; background:var(--blue); transition:width .2s;}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.nav-cta{display:none;}
@media(min-width:820px){.nav-cta{display:inline-flex;}}
.burger{display:flex; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none;}
.burger span{width:22px; height:2px; background:var(--ink);}
@media(min-width:820px){.burger{display:none;}}
.mobile-menu{display:none; flex-direction:column; gap:0; background:var(--paper); border-bottom:1px solid var(--line);}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:14px 24px; border-top:1px solid var(--line); font-size:.95rem;}
@media(min-width:820px){.mobile-menu{display:none !important;}}

.hero{padding:150px 0 80px; position:relative;}
.hero-grid{display:grid; gap:48px; align-items:center;}
@media(min-width:900px){.hero-grid{grid-template-columns:1.15fr .85fr;}}
.eyebrow{font-family:'IBM Plex Mono',monospace; font-size:.78rem; color:var(--ink2); margin-bottom:18px;}
.hero h1{font-size:clamp(2.1rem,5.2vw,3.6rem); margin-bottom:22px;}
.hero h1 em{font-style:normal; color:var(--blue);}
.hero p{font-size:1.08rem; color:var(--ink2); max-width:46ch; margin-bottom:32px;}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap;}
.hero-visual{position:relative; aspect-ratio:1/1; border:1px solid var(--line); background:var(--paper2); display:flex; align-items:center; justify-content:center;}
.hero-visual::before,.hero-visual::after{content:'';position:absolute; width:14px; height:14px; border:1.5px solid var(--ink); opacity:.5;}
.hero-visual::before{top:-1px; left:-1px; border-right:none; border-bottom:none;}
.hero-visual::after{bottom:-1px; right:-1px; border-left:none; border-top:none;}
.hero-visual svg{width:62%; height:62%;}
.draw-path{stroke:var(--ink); stroke-width:2.4; fill:none; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:600; stroke-dashoffset:600; animation:draw 2.4s ease forwards .3s;}
.draw-fill{fill:var(--coral); opacity:0; animation:fadeIn .6s ease forwards 2.4s;}
@keyframes draw{to{stroke-dashoffset:0;}}
@keyframes fadeIn{to{opacity:1;}}
.visual-tag{position:absolute; bottom:14px; left:14px;}

.page-head{padding:150px 0 20px;}
.page-head .eyebrow{margin-bottom:14px;}
.page-head h1{font-size:clamp(2rem,4.6vw,3rem); max-width:18ch;}
.page-head p{color:var(--ink2); margin-top:16px; max-width:50ch; font-size:1.05rem;}

.stats{border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--ink); color:var(--paper);}
.stats-grid{display:grid; grid-template-columns:1fr;}
@media(min-width:700px){.stats-grid{grid-template-columns:repeat(3,1fr);}}
.stat{padding:34px 24px; border-top:1px solid rgba(243,241,234,.15);}
@media(min-width:700px){.stat{border-top:none; border-left:1px solid rgba(243,241,234,.15);} .stat:first-child{border-left:none;}}
.stat b{font-family:'Space Grotesk',sans-serif; font-size:2.1rem; display:block; color:var(--coral);}
.stat span{font-size:.88rem; color:#cfccbf;}

section{padding:88px 0;}
.section-head{max-width:640px; margin-bottom:52px;}
.section-head .eyebrow{margin-bottom:12px;}
.section-head h2{font-size:clamp(1.7rem,3.4vw,2.4rem);}
.section-head p{color:var(--ink2); margin-top:14px; font-size:1.02rem;}

.about-grid{display:grid; gap:40px;}
@media(min-width:880px){.about-grid{grid-template-columns:1fr 1fr;}}
.about-grid p{color:var(--ink2); margin-bottom:16px; font-size:1.02rem;}
.mission{border-left:2px solid var(--coral); padding-left:18px; font-family:'Space Grotesk',sans-serif; font-size:1.15rem; margin-top:20px;}
.diffs{display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line);}
.diff{padding:20px 0; border-bottom:1px solid var(--line); display:flex; gap:16px;}
.diff .mono{flex-shrink:0; width:70px;}

.services{background:var(--paper2);}
.grid4{display:grid; gap:1px; background:var(--line); border:1px solid var(--line);}
@media(min-width:700px){.grid4{grid-template-columns:repeat(2,1fr);}}
.card{background:var(--paper); padding:32px;}
.card .mono{margin-bottom:16px;}
.card h3{font-size:1.25rem; margin-bottom:10px;}
.card p{color:var(--ink2); font-size:.96rem;}
.card a{color:var(--blue); font-weight:600; font-size:.9rem; display:inline-block; margin-top:14px;}

.plans{display:grid; gap:20px;}
@media(min-width:880px){.plans{grid-template-columns:repeat(3,1fr);}}
.plan{border:1px solid var(--line); padding:32px; display:flex; flex-direction:column; background:var(--paper);}
.plan.featured{border-color:var(--ink); position:relative; background:var(--ink); color:var(--paper);}
.plan.featured .mono, .plan.featured .planlist li::before{color:#cfccbf;}
.plan-tag{font-size:.78rem; font-family:'IBM Plex Mono',monospace; color:var(--ink2); margin-bottom:6px;}
.plan.featured .plan-tag{color:var(--coral);}
.plan h3{font-size:1.3rem; margin-bottom:4px;}
.price{font-family:'Space Grotesk',sans-serif; font-size:2.3rem; margin:14px 0 18px;}
.price sup{font-size:1rem; font-weight:500;}
.planlist{list-style:none; margin-bottom:26px; flex-grow:1;}
.planlist li{font-size:.92rem; padding:7px 0; border-top:1px solid var(--line); display:flex; gap:8px;}
.plan.featured .planlist li{border-top:1px solid rgba(243,241,234,.15);}
.planlist li::before{content:'—'; color:var(--ink2);}
.plan .btn{justify-content:center;}
.plan.featured .btn-ghost{border-color:var(--paper); color:var(--paper);}
.plan.featured .btn-ghost:hover{background:var(--paper); color:var(--ink);}

.cta-band{background:var(--blue); color:#fff; text-align:center;}
.cta-band h2{font-size:clamp(1.7rem,4vw,2.6rem); max-width:20ch; margin:0 auto 26px;}
.cta-band .btn-solid{background:#fff; color:var(--ink); border-color:#fff;}
.cta-band .btn-solid:hover{background:var(--coral); border-color:var(--coral); color:#fff;}

.contact-grid{display:grid; gap:40px;}
@media(min-width:880px){.contact-grid{grid-template-columns:1fr 1fr;}}
form{display:flex; flex-direction:column; gap:14px;}
input,textarea{font-family:'Sora',sans-serif; font-size:.95rem; padding:13px 14px; border:1px solid var(--line); background:var(--paper2); color:var(--ink);}
input:focus,textarea:focus{outline:2px solid var(--blue); outline-offset:1px;}
textarea{resize:vertical; min-height:110px;}
.form-note{font-size:.82rem; color:var(--ink2); margin-top:6px;}
.contact-info p{color:var(--ink2); margin-bottom:10px; font-size:.98rem;}
.contact-info a{color:var(--blue); font-weight:600;}

footer{background:var(--ink); color:var(--paper); padding:56px 0 28px;}
.foot-grid{display:grid; gap:36px; border-bottom:1px solid rgba(243,241,234,.15); padding-bottom:36px; margin-bottom:24px;}
@media(min-width:780px){.foot-grid{grid-template-columns:1.3fr 1fr 1fr;}}
footer .logo{color:var(--paper);}
footer p{color:#b9b6a8; font-size:.9rem; margin-top:10px; max-width:36ch;}
footer h4{font-family:'Space Grotesk',sans-serif; font-size:.9rem; margin-bottom:14px; color:#cfccbf;}
footer ul{list-style:none;}
footer li{margin-bottom:9px; font-size:.9rem; color:#b9b6a8;}
footer a:hover{color:var(--coral);}
.foot-bottom{display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; font-size:.8rem; color:#8a876f; font-family:'IBM Plex Mono',monospace;}

.reveal{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:translateY(0);}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1; transform:none; transition:none;} .draw-path,.draw-fill{animation:none; stroke-dashoffset:0; opacity:1;}}
