:root {
  --ink:#0a0c10;
  --paper:#f7f8f4;
  --white:#fff;
  --forest:#153f35;
  --lime:#99ea6e;
  --lime-soft:#e7f9da;
  --muted:#5d6862;
  --line:rgba(10,12,16,.13);
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; }
body { min-width:320px; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:'DM Sans',sans-serif; -webkit-font-smoothing:antialiased; }
body.menu-open { overflow:hidden; }
a { color:inherit; }
img { display:block; max-width:100%; }
.wrap { width:min(1180px,calc(100% - 44px)); margin:0 auto; }
.site-header { position:sticky; top:0; z-index:100; border-bottom:1px solid var(--line); background:rgba(247,248,244,.92); backdrop-filter:blur(18px); }
.nav { display:flex; min-height:78px; align-items:center; justify-content:space-between; gap:28px; }
.brand img { width:106px; height:auto; }
.desktop-nav { display:flex; align-items:center; gap:26px; }
.desktop-nav a { font-family:'Sora',sans-serif; font-size:14px; font-weight:700; text-decoration:none; }
.nav-download,.button { display:inline-flex; min-height:50px; padding:0 24px; align-items:center; justify-content:center; border-radius:999px; background:var(--ink); color:#fff; font-family:'Sora',sans-serif; font-size:15px; font-weight:800; text-decoration:none; }
.button.lime { background:var(--lime); color:#08291f; }
.button.ghost { border:1px solid var(--line); background:transparent; color:var(--forest); }
.menu-button { display:none; padding:4px; flex-direction:column; gap:5px; border:0; background:none; color:var(--ink); cursor:pointer; }
.menu-button span { display:block; width:26px; height:2.5px; border-radius:2px; background:currentColor; }
.side-menu { position:fixed; inset:0; z-index:200; display:flex; height:100dvh; padding:22px 26px 42px; flex-direction:column; overflow-y:auto; overscroll-behavior:contain; background:linear-gradient(145deg,#153f35,#0b2821 72%); color:#fff; transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); -webkit-overflow-scrolling:touch; touch-action:pan-y; }
.side-menu.open { transform:none; }
.side-menu-head { display:flex; flex:0 0 auto; align-items:center; justify-content:space-between; margin-bottom:34px; }
.side-menu-head img { width:106px; }
.menu-close { width:48px; height:48px; border:0; background:none; color:#fff; cursor:pointer; font-size:38px; line-height:1; }
.side-menu-links { display:flex; flex-direction:column; padding-bottom:max(24px,env(safe-area-inset-bottom)); }
.side-menu-links a { padding:14px 0; border-bottom:1px solid rgba(255,255,255,.15); color:#fff; font-family:'Sora',sans-serif; font-size:clamp(31px,9vw,46px); font-weight:800; line-height:1.05; letter-spacing:-.05em; text-decoration:none; }
.side-menu-links a.token { color:var(--lime); }
.hero { padding:84px 0 96px; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(380px,.83fr); gap:76px; align-items:center; }
.eyebrow { display:flex; align-items:center; gap:10px; margin-bottom:21px; color:var(--forest); font-size:12px; font-weight:800; letter-spacing:1.35px; text-transform:uppercase; }
.eyebrow::before { width:9px; height:9px; border-radius:50%; background:var(--lime); box-shadow:0 0 0 5px rgba(153,234,110,.2); content:""; }
h1,h2,h3 { font-family:'Sora',sans-serif; }
h1 { max-width:780px; font-size:clamp(52px,7.4vw,92px); font-weight:800; line-height:.95; letter-spacing:-.065em; }
.accent { color:var(--forest); }
.lead { max-width:700px; margin-top:28px; color:var(--muted); font-size:clamp(18px,2vw,22px); line-height:1.55; }
.hero-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:32px; }
.photo-card { position:relative; overflow:hidden; border-radius:34px; background:#dbe1d8; box-shadow:0 30px 80px rgba(20,54,43,.18); }
.photo-card > img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.result-badge { position:absolute; left:22px; right:22px; bottom:22px; display:flex; min-height:72px; padding:12px 17px; align-items:center; gap:14px; border:1px solid rgba(10,12,16,.1); border-radius:24px; background:#fff; box-shadow:0 16px 38px rgba(10,12,16,.2); }
.result-icon { display:flex; width:48px; height:48px; flex:0 0 48px; align-items:center; justify-content:center; border-radius:50%; background:var(--lime); color:var(--forest); font-size:24px; font-weight:800; }
.result-badge small { display:block; color:#717a75; font-size:12px; }
.result-badge strong { display:block; margin-top:2px; font-family:'Sora',sans-serif; font-size:17px; }
.stat-strip { border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--white); }
.stat-grid { display:grid; grid-template-columns:repeat(3,1fr); }
.stat { min-height:138px; padding:30px; border-right:1px solid var(--line); }
.stat:last-child { border-right:0; }
.stat small { display:block; color:var(--muted); font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.stat strong { display:block; margin-top:10px; color:var(--forest); font-family:'Sora',sans-serif; font-size:clamp(23px,3vw,38px); line-height:1.05; }
.section { padding:100px 0; }
.section.lime { background:var(--lime-soft); }
.section.dark { background:var(--forest); color:#fff; }
.section-head { display:grid; grid-template-columns:minmax(0,.9fr) minmax(300px,.72fr); gap:70px; align-items:end; margin-bottom:52px; }
.section h2 { max-width:800px; font-size:clamp(41px,6vw,70px); font-weight:800; line-height:.99; letter-spacing:-.055em; }
.section-head p,.section-copy { color:var(--muted); font-size:19px; line-height:1.6; }
.section.dark .section-head p,.section.dark .section-copy { color:rgba(255,255,255,.72); }
.outcome-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.outcome-card { min-height:250px; padding:28px; border:1px solid var(--line); border-radius:26px; background:rgba(255,255,255,.76); }
.outcome-card .n { display:flex; width:42px; height:42px; align-items:center; justify-content:center; border-radius:50%; background:var(--lime); color:var(--forest); font-family:'Sora',sans-serif; font-weight:800; }
.outcome-card h3 { margin-top:42px; font-size:22px; line-height:1.1; letter-spacing:-.03em; }
.outcome-card p { margin-top:12px; color:var(--muted); font-size:15px; line-height:1.55; }
.steps { display:grid; gap:0; margin-top:18px; }
.step { display:grid; grid-template-columns:56px minmax(0,1fr); gap:18px; padding:28px 0; border-top:1px solid rgba(255,255,255,.18); }
.step:last-child { border-bottom:1px solid rgba(255,255,255,.18); }
.step .n { display:flex; width:46px; height:46px; align-items:center; justify-content:center; border-radius:50%; background:var(--lime); color:var(--forest); font-family:'Sora',sans-serif; font-weight:800; }
.step h3 { font-size:21px; }
.step p { max-width:700px; margin-top:8px; color:rgba(255,255,255,.7); font-size:16px; line-height:1.55; }
.quote-card { display:grid; grid-template-columns:1fr auto 1fr; gap:18px; align-items:center; margin-top:44px; padding:24px; border:1px solid rgba(255,255,255,.16); border-radius:28px; background:rgba(255,255,255,.08); }
.quote-card small { display:block; color:rgba(255,255,255,.58); font-size:12px; text-transform:uppercase; }
.quote-card strong { display:block; margin-top:6px; font-family:'Sora',sans-serif; font-size:clamp(20px,3vw,30px); }
.quote-card > div:last-child { text-align:right; }
.quote-arrow { display:flex; width:48px; height:48px; align-items:center; justify-content:center; border-radius:50%; background:var(--lime); color:var(--forest); font-size:25px; font-weight:800; }
.manifesto { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:80px; align-items:start; }
.manifesto-copy p { padding:22px 0; border-top:1px solid var(--line); color:var(--muted); font-size:19px; line-height:1.62; }
.manifesto-copy p:last-child { border-bottom:1px solid var(--line); }
.cta-band { padding:74px 0; background:var(--lime); color:#09291f; }
.cta-band .wrap { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.cta-band h2 { max-width:720px; font-size:clamp(38px,5vw,62px); line-height:1; letter-spacing:-.055em; }
.site-footer { padding:58px 0; background:var(--ink); color:#fff; }
.footer-grid { display:grid; grid-template-columns:1.2fr repeat(2,.6fr); gap:48px; }
.footer-brand img { width:104px; }
.footer-brand p { max-width:360px; margin-top:18px; color:rgba(255,255,255,.62); line-height:1.55; }
.footer-col strong { display:block; margin-bottom:14px; font-family:'Sora',sans-serif; }
.footer-col a { display:block; margin:10px 0; color:rgba(255,255,255,.68); text-decoration:none; }
.footer-legal { margin-top:42px; padding-top:24px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.48); font-size:12px; line-height:1.55; }
@media (max-width:900px) {
  .desktop-nav,.nav-download { display:none; }
  .menu-button { display:flex; }
  .hero { padding:62px 0 76px; }
  .hero-grid,.section-head,.manifesto { grid-template-columns:1fr; gap:42px; }
  .photo-card { width:min(100%,600px); }
  .outcome-grid { grid-template-columns:1fr; }
  .outcome-card { min-height:0; }
  .outcome-card h3 { margin-top:30px; }
}
@media (max-width:620px) {
  .wrap { width:min(100% - 40px,1180px); }
  .nav { min-height:72px; }
  .hero { padding:45px 0 64px; }
  h1 { font-size:47px; }
  .lead { margin-top:22px; font-size:18px; }
  .hero-actions { display:grid; }
  .button { width:100%; }
  .photo-card { border-radius:28px; }
  /* Portrait source photos were filling nearly an entire phone viewport and
     leaving the people below the fold. Keep the real photography, but present
     it as a deliberate editorial crop on mobile. Per-page positions keep faces
     and phones in frame instead of centering on empty background. */
  .photo-card > img { height:min(78vw,380px); aspect-ratio:auto; }
  .photo-card--about > img { object-position:50% 72%; }
  .photo-card--transfer > img { object-position:50% 68%; }
  .result-badge { right:16px; bottom:16px; left:16px; }
  .stat-grid { grid-template-columns:1fr; }
  .stat { min-height:0; padding:24px 20px; border-right:0; border-bottom:1px solid var(--line); }
  .stat:last-child { border-bottom:0; }
  .section { padding:76px 0; }
  .section h2 { font-size:43px; }
  .section-head { margin-bottom:36px; }
  .quote-card { grid-template-columns:1fr auto; }
  .quote-card > div:last-child { grid-column:1 / -1; padding-top:18px; border-top:1px solid rgba(255,255,255,.14); text-align:left; }
  .cta-band { padding:62px 0; }
  .cta-band .wrap { flex-direction:column; align-items:stretch; }
  .footer-grid { grid-template-columns:1fr; gap:30px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .side-menu { transition:none; } }
