@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,600;12..96,700;12..96,800&family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@500&display=swap');

:root{
  --bg:#F5F6F2; --bg-2:#ECEEE7; --surface:#FFFFFF;
  --text:#0E1310; --muted:#56605A; --rule:rgba(14,19,16,0.14);
  --accent:#C8F03A; --on-accent:#0E1310;
  --em-bg:linear-gradient(transparent 58%, #C8F03A 58%, #C8F03A 92%, transparent 92%);
  --em-color:inherit;
  --shadow:0 1px 0 rgba(14,19,16,0.04), 0 18px 40px -22px rgba(14,19,16,0.25);
  --max:1180px; --r:14px;
}
[data-theme="dark"]{
  --bg:#0C0F0D; --bg-2:#121713; --surface:#171D19;
  --text:#EEF1EA; --muted:#9AA59D; --rule:rgba(238,241,234,0.14);
  --em-bg:none; --em-color:#C8F03A;
  --shadow:0 1px 0 rgba(255,255,255,0.03), 0 18px 40px -22px rgba(0,0,0,0.7);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Instrument Sans',sans-serif;font-size:17px;line-height:1.62;-webkit-font-smoothing:antialiased;transition:background .2s ease,color .2s ease;}
h1,h2,h3,h4{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;line-height:1.08;letter-spacing:-0.02em;margin:0 0 .5em;}
h1{font-size:clamp(2.5rem,5.2vw,4.6rem);font-weight:800;}
h2{font-size:clamp(1.8rem,3.3vw,2.8rem);}
h3{font-size:1.35rem;} h4{font-size:1.1rem;}
p{margin:0 0 1em;} a{color:inherit;}
em{font-style:normal;background:var(--em-bg);color:var(--em-color);padding:0 .06em;}
.wrap{max-width:var(--max);margin:0 auto;padding:0 32px;}
@media(max-width:640px){.wrap{padding:0 20px;}}
.mono{font-family:'JetBrains Mono',monospace;font-size:.78rem;letter-spacing:.02em;color:var(--muted);}
.kicker{font-family:'JetBrains Mono',monospace;font-size:.8rem;color:var(--muted);margin:0 0 1.1em;display:flex;align-items:center;gap:10px;}
.kicker::before{content:"";width:22px;height:2px;background:var(--text);}

a.btn,button.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 26px;font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:.97rem;text-decoration:none;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;}
.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--on-accent);}
[data-theme="dark"] .btn-primary{border-color:var(--accent);}
.btn-primary:hover{transform:translateY(-2px);}
.btn-ghost{border-color:var(--rule);color:var(--text);background:transparent;}
.btn-ghost:hover{border-color:var(--text);}
.btn-block{width:100%;justify-content:center;}

/* Header */
header.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--rule);}
.header-inner{max-width:var(--max);margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.logo{display:flex;align-items:center;gap:11px;text-decoration:none;white-space:nowrap;}
.logo .mark{width:34px;height:34px;border-radius:9px;background:var(--accent);color:var(--on-accent);display:flex;align-items:center;justify-content:center;font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:.95rem;}
.logo .name{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.18rem;line-height:1;display:block;}
.logo .tag{font-family:'JetBrains Mono',monospace;font-size:.62rem;color:var(--muted);display:block;margin-top:4px;}
nav.main-nav{display:flex;gap:6px;align-items:center;}
nav.main-nav a{text-decoration:none;color:var(--muted);font-weight:500;font-size:.95rem;padding:8px 14px;border-radius:999px;transition:color .15s,background .15s;}
nav.main-nav a:hover{color:var(--text);}
nav.main-nav a.active{color:var(--text);background:var(--bg-2);}
.header-cta{display:flex;align-items:center;gap:10px;}
.icon-btn{width:40px;height:40px;border-radius:999px;border:1.5px solid var(--rule);background:transparent;color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;}
.icon-btn:hover{border-color:var(--text);}
.icon-btn svg{width:18px;height:18px;}
.theme-toggle .moon{display:none;} [data-theme="dark"] .theme-toggle .sun{display:none;} [data-theme="dark"] .theme-toggle .moon{display:block;}
.nav-toggle{display:none;}
@media(max-width:940px){
  nav.main-nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:flex-start;background:var(--bg);border-bottom:1px solid var(--rule);padding:14px 32px 22px;gap:4px;}
  nav.main-nav.open{display:flex;}
  .nav-toggle{display:inline-flex;}
  .header-cta .btn{display:none;}
}

/* Hero */
.hero{padding:88px 0 72px;position:relative;overflow:hidden;}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.hero .lede{font-size:1.16rem;color:var(--muted);max-width:52ch;}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;margin:30px 0 22px;}
.hero-note{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--muted);}
.chart-card{background:var(--surface);border:1px solid var(--rule);border-radius:22px;padding:26px 26px 20px;box-shadow:var(--shadow);}
.chart-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;}
.chart-head b{font-family:'Bricolage Grotesque',sans-serif;font-size:1.05rem;}
.chart-card svg{width:100%;height:auto;display:block;}
.chart-axis{display:flex;justify-content:space-between;margin-top:6px;}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px;}.hero{padding:60px 0 56px;}}
.page-hero{padding:72px 0 56px;border-bottom:1px solid var(--rule);}
.page-hero .lede{font-size:1.15rem;color:var(--muted);max-width:60ch;margin:0;}
.crumbs{font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--muted);margin-bottom:28px;}
.crumbs a{text-decoration:none;} .crumbs a:hover{color:var(--text);}

/* Sections */
section.block{padding:88px 0;}
.alt{background:var(--bg-2);}
.section-head{max-width:720px;margin-bottom:48px;}
.section-head p{color:var(--muted);font-size:1.08rem;}

.svc-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media(max-width:900px){.svc-cards{grid-template-columns:1fr;}}
.svc-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:30px 28px;display:flex;flex-direction:column;}
.svc-card h3{margin-bottom:.4em;}
.svc-card p{color:var(--muted);font-size:.98rem;}
.tick-list{list-style:none;margin:8px 0 0;padding:0;}
.tick-list li{padding:9px 0 9px 26px;border-top:1px solid var(--rule);position:relative;font-size:.96rem;}
.tick-list li::before{content:"";position:absolute;left:0;top:1.02em;width:12px;height:12px;border-radius:3px;background:var(--accent);box-shadow:inset 0 0 0 1.5px var(--text);}
.link-arrow{display:inline-flex;gap:8px;align-items:center;font-weight:600;text-decoration:none;margin-top:32px;border-bottom:2px solid var(--accent);padding-bottom:3px;}

/* Timeline */
.timeline{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;position:relative;padding-top:34px;}
.timeline::before{content:"";position:absolute;top:9px;left:0;right:0;height:2px;background:var(--rule);}
.tl-step{position:relative;}
.tl-step::before{content:"";position:absolute;top:-34px;left:0;width:20px;height:20px;border-radius:50%;background:var(--bg);border:2px solid var(--text);}
.tl-step:last-child::before{background:var(--accent);}
.alt .tl-step::before{background:var(--bg-2);} .alt .tl-step:last-child::before{background:var(--accent);}
.tl-step .mono{display:block;margin-bottom:8px;}
.tl-step p{color:var(--muted);font-size:.97rem;margin:0;}
@media(max-width:860px){.timeline{grid-template-columns:1fr 1fr;row-gap:44px;}}
@media(max-width:520px){.timeline{grid-template-columns:1fr;}.timeline::before{display:none;}.tl-step::before{display:none;}}

.cta-panel{background:var(--text);color:var(--bg);border-radius:28px;padding:64px 56px;display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center;}
.cta-panel h2{color:var(--bg);margin:0 0 .4em;}
.cta-panel p{color:color-mix(in srgb,var(--bg) 70%,transparent);margin:0;}
.cta-panel .btn-primary{border-color:var(--accent);justify-self:start;}
[data-theme="dark"] .cta-panel{background:var(--accent);color:var(--on-accent);}
[data-theme="dark"] .cta-panel h2{color:var(--on-accent);}
[data-theme="dark"] .cta-panel p{color:rgba(14,19,16,.72);}
[data-theme="dark"] .cta-panel .btn-primary{background:var(--on-accent);color:var(--accent);border-color:var(--on-accent);}
@media(max-width:820px){.cta-panel{grid-template-columns:1fr;padding:44px 28px;}}

/* Services page */
.svc-section{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;padding:72px 0;border-bottom:1px solid var(--rule);scroll-margin-top:80px;}
.svc-section:last-of-type{border-bottom:none;}
.svc-side{position:sticky;top:110px;align-self:start;}
.svc-num{font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--muted);margin-bottom:14px;}
.svc-side p{color:var(--muted);}
.note-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:24px 26px;margin-top:22px;}
.note-card .mono{display:block;margin-bottom:8px;}
.note-card h4{margin-bottom:.35em;}
.note-card p{margin:0 0 .8em;color:var(--muted);font-size:.96rem;}
.note-card p:last-child{margin:0;}
@media(max-width:860px){.svc-section{grid-template-columns:1fr;gap:26px;padding:52px 0;}.svc-side{position:static;}}

/* Pricing */
.tabs{display:inline-flex;background:var(--bg-2);border:1px solid var(--rule);border-radius:999px;padding:5px;margin-bottom:36px;}
.tabs button{border:none;background:transparent;color:var(--muted);font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:.95rem;padding:10px 22px;border-radius:999px;cursor:pointer;}
.tabs button[aria-selected="true"]{background:var(--text);color:var(--bg);}
.tab-panel[hidden]{display:none;}
.plan-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:stretch;}
@media(max-width:1060px){.plan-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:600px){.plan-grid{grid-template-columns:1fr;}}
.plan{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:28px 24px;display:flex;flex-direction:column;position:relative;}
.plan.featured{border:2px solid var(--text);box-shadow:var(--shadow);}
.plan .badge{position:absolute;top:-13px;left:22px;background:var(--accent);color:var(--on-accent);font-family:'JetBrains Mono',monospace;font-size:.7rem;padding:5px 11px;border-radius:999px;border:1.5px solid var(--on-accent);}
[data-theme="dark"] .plan .badge{border-color:var(--accent);}
.plan h3{font-size:1.15rem;margin-bottom:.3em;}
.plan .price{font-family:'Bricolage Grotesque',sans-serif;font-weight:800;font-size:2.15rem;letter-spacing:-0.03em;line-height:1;}
.plan .price small{font-size:.95rem;font-weight:600;color:var(--muted);letter-spacing:0;}
.plan .term{display:block;margin:8px 0 14px;}
.plan .desc{color:var(--muted);font-size:.93rem;}
.plan .tick-list{flex-grow:1;margin-bottom:22px;}
.plan .tick-list li{font-size:.92rem;}
.info-note{display:flex;gap:12px;align-items:flex-start;margin-top:28px;padding:18px 22px;border:1px dashed var(--rule);border-radius:var(--r);color:var(--muted);font-size:.94rem;}
.info-note b{color:var(--text);}
.table-wrap{overflow-x:auto;border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);}
table.projects{width:100%;border-collapse:collapse;min-width:640px;}
table.projects th{text-align:left;font-family:'JetBrains Mono',monospace;font-size:.75rem;font-weight:500;color:var(--muted);padding:16px 22px;border-bottom:1px solid var(--rule);}
table.projects td{padding:18px 22px;border-bottom:1px solid var(--rule);vertical-align:top;font-size:.96rem;}
table.projects tr:last-child td{border-bottom:none;}
table.projects td:first-child{font-weight:600;white-space:nowrap;}
table.projects td:last-child{font-family:'Bricolage Grotesque',sans-serif;font-weight:700;white-space:nowrap;}
table.projects td:nth-child(2){color:var(--muted);}
.faq{max-width:820px;}
.faq-item{border-bottom:1px solid var(--rule);}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;color:var(--text);font-family:'Instrument Sans',sans-serif;font-weight:600;font-size:1.05rem;padding:22px 0;display:flex;justify-content:space-between;gap:20px;align-items:center;}
.faq-q .pm{width:28px;height:28px;border:1.5px solid var(--rule);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;font-family:'JetBrains Mono',monospace;transition:transform .2s;}
.faq-item.open .pm{transform:rotate(45deg);background:var(--accent);border-color:var(--on-accent);color:var(--on-accent);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;}
.faq-a p{color:var(--muted);padding-bottom:22px;max-width:68ch;margin:0;}
.faq-item.open .faq-a{max-height:500px;}

/* About */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;}
@media(max-width:820px){.split{grid-template-columns:1fr;gap:32px;}}
.split p{color:var(--muted);}
.roles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px;}
@media(max-width:820px){.roles{grid-template-columns:1fr;}}
.role{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:26px;}
.role p{color:var(--muted);font-size:.96rem;margin:0;}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px;}
.chip{font-family:'JetBrains Mono',monospace;font-size:.78rem;padding:9px 16px;border:1.5px solid var(--text);border-radius:999px;}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start;}
@media(max-width:860px){.contact-grid{grid-template-columns:1fr;}}
.field{margin-bottom:18px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
@media(max-width:560px){.field-row{grid-template-columns:1fr;}}
.field label{display:block;font-weight:600;font-size:.88rem;margin-bottom:7px;}
.field input,.field select,.field textarea{width:100%;padding:14px 16px;font:inherit;font-size:.98rem;color:var(--text);background:var(--surface);border:1.5px solid var(--rule);border-radius:12px;}
.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid color-mix(in srgb,var(--accent) 70%,transparent);border-color:var(--text);}
.info-stack{display:flex;flex-direction:column;gap:0;border:1px solid var(--rule);border-radius:var(--r);background:var(--surface);}
.info-row{padding:20px 24px;border-bottom:1px solid var(--rule);}
.info-row:last-child{border-bottom:none;}
.info-row h4{font-family:'JetBrains Mono',monospace;font-size:.75rem;font-weight:500;color:var(--muted);margin:0 0 6px;letter-spacing:0;}
.info-row a{text-decoration:none;font-weight:600;} .info-row a:hover{text-decoration:underline;}
.socials{display:flex;gap:10px;flex-wrap:wrap;}
.social-link{display:inline-flex;align-items:center;gap:10px;padding:10px 16px;border:1.5px solid var(--rule);border-radius:999px;text-decoration:none;font-weight:600;font-size:.92rem;color:var(--text);}
.social-link:hover{border-color:var(--text);background:var(--bg-2);}
.social-link svg{width:18px;height:18px;}
.ready{margin-top:28px;background:var(--bg-2);border-radius:var(--r);padding:26px;}
.ready h3{font-size:1.15rem;}
.map{margin-top:56px;border-radius:var(--r);overflow:hidden;border:1px solid var(--rule);}
.map iframe{width:100%;height:340px;border:0;display:block;filter:grayscale(.25);}
[data-theme="dark"] .map iframe{filter:invert(.9) hue-rotate(180deg) grayscale(.3);}

/* Legal */
.legal-grid{display:grid;grid-template-columns:230px 1fr;gap:64px;padding:64px 0 88px;}
.legal-grid.no-toc{grid-template-columns:1fr;}
@media(max-width:860px){.legal-grid{grid-template-columns:1fr;gap:28px;}}
.toc{position:sticky;top:100px;align-self:start;font-size:.92rem;}
.toc h4{font-family:'JetBrains Mono',monospace;font-size:.75rem;font-weight:500;color:var(--muted);margin-bottom:12px;letter-spacing:0;}
.toc ul{list-style:none;margin:0;padding:0;border-left:1.5px solid var(--rule);}
.toc li a{display:block;padding:6px 0 6px 16px;margin-left:-1.5px;border-left:1.5px solid transparent;text-decoration:none;color:var(--muted);}
.toc li a:hover{color:var(--text);border-left-color:var(--accent);}
.legal-body{max-width:72ch;}
.legal-body h2{font-size:1.5rem;margin:2.1em 0 .55em;scroll-margin-top:90px;}
.legal-body h2:first-of-type{margin-top:1.2em;}
.legal-body p,.legal-body li{color:var(--muted);font-size:1rem;}
.legal-body strong{color:var(--text);}
.legal-body ul{padding-left:1.2em;}
.legal-body li{margin-bottom:.5em;}
.legal-body a{color:var(--text);text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px;}
.updated{display:inline-block;font-family:'JetBrains Mono',monospace;font-size:.78rem;padding:7px 14px;border:1.5px solid var(--rule);border-radius:999px;color:var(--muted);}

/* Footer */
footer.site-footer{background:var(--bg-2);border-top:1px solid var(--rule);padding:72px 0 0;}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1.1fr 1.3fr;gap:44px;padding-bottom:52px;}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;row-gap:36px;}}
@media(max-width:520px){.footer-grid{grid-template-columns:1fr;}}
.footer-brand p{color:var(--muted);font-size:.95rem;max-width:34ch;margin-top:16px;}
.footer-grid h4{font-family:'JetBrains Mono',monospace;font-size:.75rem;font-weight:500;color:var(--muted);letter-spacing:0;margin-bottom:16px;}
.footer-grid ul{list-style:none;margin:0;padding:0;}
.footer-grid li{margin-bottom:10px;font-size:.95rem;}
.footer-grid a{text-decoration:none;} .footer-grid a:hover{text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;}
.footer-socials{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.footer-bottom{border-top:1px solid var(--rule);padding:22px 0 30px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:.86rem;color:var(--muted);}
.legal-links{display:flex;gap:20px;flex-wrap:wrap;}
.legal-links a{text-decoration:none;} .legal-links a:hover{color:var(--text);}

.skip-link{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--on-accent);padding:10px 16px;z-index:100;border-radius:0 0 10px 0;}
.skip-link:focus{left:0;}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px;}
[data-theme="light"] :focus-visible, :root:not([data-theme]) :focus-visible{outline-color:var(--text);}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto;}*{transition:none !important;animation:none !important;}}
