@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');

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

:root {
            --bg: #0a0a0a;
            --bg-elevated: #111111;
            --bg-card: #161616;
            --text: #f0f0f0;
            --text-muted: #888888;
            --accent: #c8ff00;
            --accent-dim: #a3cc00;
            --border: #222222;
            --radius: 12px;
        }

html { scroll-behavior: smooth; }

body {
            font-family: 'Inter', -apple-system, sans-serif;
            background: var(--bg);
            color: var(--text);
            line-height: 1.6;
            overflow-x: hidden;
            -webkit-font-smoothing: antialiased;
        }

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

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

/* NAV */
        nav {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            z-index: 100;
            padding: 20px 0;
            transition: background .3s, backdrop-filter .3s, padding .3s;
        }

nav.scrolled {
            background: rgba(10,10,10,.85);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            padding: 14px 0;
            border-bottom: 1px solid var(--border);
        }

nav .container {
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

.logo {
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 700;
            font-size: 1.5rem;
            letter-spacing: -0.02em;
        }

.logo span { color: var(--accent); }

.nav-links {
            display: flex;
            gap: 32px;
            align-items: center;
            list-style: none;
        }

.nav-links a {
            font-size: .9rem;
            font-weight: 500;
            color: var(--text-muted);
            transition: color .2s;
        }

.nav-links a:hover { color: var(--text); }

.btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            padding: 12px 28px;
            background: var(--accent);
            color: var(--bg);
            font-weight: 600;
            font-size: .9rem;
            border-radius: 50px;
            border: none;
            cursor: pointer;
            transition: transform .2s, box-shadow .2s;
            font-family: inherit;
        }

.btn:hover {
            transform: translateY(-2px);
            box-shadow: 0 8px 30px rgba(200,255,0,.25);
        }

.btn-outline {
            background: transparent;
            color: var(--text);
            border: 1px solid var(--border);
        }

.btn-outline:hover {
            border-color: var(--accent);
            color: var(--accent);
            box-shadow: 0 8px 30px rgba(200,255,0,.1);
        }

/* HAMBURGER */
        .hamburger {
            display: none;
            flex-direction: column;
            gap: 5px;
            background: none;
            border: none;
            cursor: pointer;
            padding: 4px;
        }

.hamburger span {
            width: 24px;
            height: 2px;
            background: var(--text);
            transition: .3s;
        }

/* HERO */
        .hero {
            min-height: 100vh;
            display: flex;
            align-items: center;
            padding: 120px 0 80px;
            position: relative;
            overflow: hidden;
        }

/* SECTIONS */
        section { padding: 120px 0; }

/* SERVICES */
        .services-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 24px;
            margin-top: 64px;
        }

/* WORK / PORTFOLIO */
        #work { background: var(--bg-elevated); }

/* PROCESS */
        .process-grid {
            display: grid;
            grid-template-columns: repeat(4, 1fr);
            gap: 24px;
            margin-top: 64px;
        }

/* TESTIMONIALS */
        #testimonials { background: var(--bg-elevated); }

/* TECH STACK MARQUEE */
        .marquee-section {
            padding: 60px 0;
            border-top: 1px solid var(--border);
            border-bottom: 1px solid var(--border);
            overflow: hidden;
        }

/* CTA */
        .cta-section {
            text-align: center;
            padding: 140px 0;
        }

/* FOOTER */
        footer {
            border-top: 1px solid var(--border);
            padding: 60px 0 40px;
        }

.footer-grid {
            display: grid;
            grid-template-columns: 2fr 1fr 1fr 1fr;
            gap: 48px;
            margin-bottom: 60px;
        }

.footer-brand p {
            color: var(--text-muted);
            font-size: .9rem;
            margin-top: 12px;
            max-width: 280px;
            line-height: 1.6;
        }

.footer-partner {
            margin-top: 20px;
            max-width: 320px;
        }

.footer-partner a {
            color: var(--text);
            font-weight: 500;
            text-decoration: underline;
            text-decoration-color: rgba(200, 255, 0, 0.35);
            text-underline-offset: 3px;
            transition: color .2s, text-decoration-color .2s;
        }

.footer-partner a:hover {
            color: var(--accent);
            text-decoration-color: var(--accent);
        }

.footer-col h4 {
            font-family: 'Space Grotesk', sans-serif;
            font-weight: 600;
            margin-bottom: 16px;
            font-size: .95rem;
        }

.footer-col ul { list-style: none; }

.footer-col li { margin-bottom: 10px; }

.footer-col a {
            color: var(--text-muted);
            font-size: .9rem;
            transition: color .2s;
        }

.footer-col a:hover { color: var(--text); }

.footer-bottom {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-top: 32px;
            border-top: 1px solid var(--border);
            font-size: .85rem;
            color: var(--text-muted);
        }

.footer-socials {
            display: flex;
            gap: 20px;
        }

.footer-socials a { transition: color .2s; }

.footer-socials a:hover { color: var(--accent); }

/* SCROLL ANIMATIONS */
        .reveal {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity .7s cubic-bezier(.16,1,.3,1), transform .7s cubic-bezier(.16,1,.3,1);
        }

/* MOBILE NAV */
        .mobile-menu {
            display: none;
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: var(--bg);
            z-index: 99;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            gap: 32px;
        }

        .mobile-menu.open { display: flex; }

        .mobile-menu a {
            font-family: 'Space Grotesk', sans-serif;
            font-size: 1.5rem;
            font-weight: 600;
        }

        .mobile-close {
            position: absolute;
            top: 24px;
            right: 24px;
            background: none;
            border: none;
            color: var(--text);
            font-size: 1.8rem;
            cursor: pointer;
        }

/* RESPONSIVE */
        @media (max-width: 1024px) {
            .services-grid,
            .testimonials-grid { grid-template-columns: repeat(2, 1fr); }
            .process-grid { grid-template-columns: repeat(2, 1fr); }
            .footer-grid { grid-template-columns: repeat(2, 1fr); }
        }

        @media (max-width: 768px) {
            .nav-links { display: none; }
            .hamburger { display: flex; }
            .hero-stats { flex-direction: column; gap: 24px; }
            .services-grid,
            .work-grid,
            .testimonials-grid,
            .process-grid { grid-template-columns: 1fr; }
            .footer-grid { grid-template-columns: 1fr; }
            section { padding: 80px 0; }
            .cta-section { padding: 100px 0; }
        }


/* ── PBN blog fallback (auto-generated — do not rely on exact order) ── */
/*
 * Body-level padding for blog pages: imported sites typically have a
 * ``position:fixed`` site nav that overlaps the start of <main>. Our
 * blog templates flag themselves with ``body.pbn-blog-page`` so the
 * padding only applies to /blog/* pages and never breaks the homepage
 * (which has its own hero spacing). 90px ~= site nav height + breathing
 * room.
 */
body.pbn-blog-page > main{padding-top:90px;}
body.pbn-blog-page > main > .container{padding-top:24px;}

/*
 * Many sites style the <nav> element globally (flex, fixed position,
 * hamburger, etc.) for the primary navigation. Our TOC + breadcrumbs
 * use <nav class="toc">/<nav class="breadcrumbs"> so those rules leak
 * in and blow up the article layout. We reset them explicitly with
 * compound selectors that outspecificity the generic ``nav {}`` block.
 */
.article-container nav.toc,
.article-container nav.breadcrumbs{
  display:block;position:static;top:auto;left:auto;right:auto;bottom:auto;
  flex-direction:column;justify-content:flex-start;align-items:stretch;
  gap:0;width:auto;max-width:none;transform:none;
  background:rgba(127,127,127,0.08);border:1px solid rgba(127,127,127,0.2);
  border-radius:10px;padding:20px 24px;margin:20px 0 32px;
}
.article-container nav.breadcrumbs{
  background:transparent;border:none;border-radius:0;padding:0;margin:0 0 16px;
  font-size:0.82rem;opacity:0.75;
}
.article-container nav.toc ul,
.article-container nav.breadcrumbs ul{
  display:block;flex-direction:column;flex-wrap:nowrap;
  list-style:none;margin:0;padding:0;gap:0;width:auto;
}
.article-container nav.toc li,
.article-container nav.breadcrumbs li{
  display:list-item;margin:4px 0;padding:0;background:transparent;
}
.article-container nav.toc a,
.article-container nav.breadcrumbs a{
  color:inherit;text-decoration:none;opacity:0.85;padding:0;margin:0;
  background:transparent;border:none;font-weight:normal;text-transform:none;
}
.article-container nav.toc a:hover{opacity:1;text-decoration:underline;}
.article-container nav.breadcrumbs a:hover{text-decoration:underline;}
.article-container nav.breadcrumbs .separator{margin:0 6px;opacity:0.5;}

.article-container{max-width:800px;margin:0 auto;padding:40px 20px;position:relative;z-index:1;}
.article-container h1{font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.2;margin-bottom:16px;}
.article-container .meta{font-size:0.875rem;opacity:0.7;margin-bottom:30px;}
.article-container .meta a{color:inherit;}
.article-container .content{font-size:1.05rem;line-height:1.7;}
.article-container .content h2{font-size:1.6rem;line-height:1.3;margin:40px 0 16px;}
.article-container .content h3{font-size:1.3rem;line-height:1.35;margin:32px 0 12px;}
.article-container .content h4{font-size:1.1rem;line-height:1.4;margin:24px 0 10px;}
.article-container .content p{margin:0 0 18px;}
.article-container .content a{color:currentColor;text-decoration:underline;text-underline-offset:3px;}
.article-container .content ul{list-style:disc outside;margin:0 0 18px;padding-left:1.5rem;}
.article-container .content ol{list-style:decimal outside;margin:0 0 18px;padding-left:1.5rem;}
.article-container .content li{margin-bottom:6px;display:list-item;}
.article-container .content img{max-width:100%;height:auto;border-radius:8px;margin:20px 0;}
.article-container .content blockquote{border-left:3px solid currentColor;padding:4px 0 4px 18px;margin:20px 0;opacity:0.85;}
.article-container .content pre{background:rgba(127,127,127,0.12);padding:16px;border-radius:8px;overflow-x:auto;font-size:0.9em;margin:18px 0;}
.article-container .content code{background:rgba(127,127,127,0.15);padding:2px 6px;border-radius:4px;font-size:0.9em;}
.article-container .content pre code{background:transparent;padding:0;}
.article-container .content table{width:100%;border-collapse:collapse;margin:18px 0;}
.article-container .content th,.article-container .content td{padding:10px 12px;border:1px solid rgba(127,127,127,0.3);text-align:left;}
.article-container .content th{background:rgba(127,127,127,0.08);font-weight:600;}

/* Featured image */
.article-container .featured-image{display:block;width:100%;height:auto;border-radius:10px;margin:20px 0 32px;}

/* TOC heading + nested items */
.article-container nav.toc h3,
.article-container nav.toc strong{font-size:1rem;margin:0 0 10px;display:block;font-weight:600;}
.article-container nav.toc li.toc-h3{padding-left:16px;font-size:0.95em;}

/* Share buttons */
.share-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:40px 0 20px;padding-top:24px;border-top:1px solid rgba(127,127,127,0.2);}
.share-buttons a{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:6px;text-decoration:none;font-size:0.82rem;color:#fff;opacity:0.95;transition:opacity 0.15s;}
.share-buttons a:hover{opacity:1;}
.share-btn-twitter{background:#1DA1F2;}
.share-btn-linkedin{background:#0077B5;}
.share-btn-facebook{background:#1877F2;}

/* Related posts */
.related-posts{margin-top:48px;padding-top:28px;border-top:1px solid rgba(127,127,127,0.2);}
.related-posts h3{font-size:1.15rem;margin-bottom:16px;}
.related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.related-card{border:1px solid rgba(127,127,127,0.25);border-radius:10px;padding:16px 18px;transition:transform 0.15s,border-color 0.15s;}
.related-card:hover{transform:translateY(-2px);border-color:rgba(127,127,127,0.5);}
.related-card h4{margin:0 0 6px;font-size:1rem;line-height:1.35;}
.related-card h4 a{color:inherit;text-decoration:none;}
.related-card h4 a:hover{text-decoration:underline;}
.related-card .meta{font-size:0.72rem;opacity:0.65;margin:0;}

/* Tags */
.tags{margin:18px 0;display:flex;flex-wrap:wrap;gap:6px;}
.tag{display:inline-block;padding:3px 10px;background:rgba(127,127,127,0.12);border-radius:999px;font-size:0.78rem;opacity:0.85;}

/* Blog list / post cards */
.post-card{border:1px solid rgba(127,127,127,0.22);border-radius:10px;padding:22px 24px;margin-bottom:20px;transition:border-color 0.15s;}
.post-card:hover{border-color:rgba(127,127,127,0.45);}
.post-card h2{margin:0 0 10px;font-size:1.35rem;line-height:1.3;}
.post-card h2 a{color:inherit;text-decoration:none;}
.post-card h2 a:hover{text-decoration:underline;}
.post-card .meta{font-size:0.82rem;opacity:0.7;margin-bottom:10px;}
.post-card .excerpt{margin:0 0 10px;opacity:0.9;}

/* Categories nav (above list) */
.categories{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:24px;font-size:0.88rem;}
.categories-label{opacity:0.65;margin-right:4px;}
.categories a{color:inherit;text-decoration:none;padding:4px 10px;border-radius:999px;border:1px solid rgba(127,127,127,0.25);transition:background 0.12s;}
.categories a:hover{background:rgba(127,127,127,0.1);}
.categories a.active{background:rgba(127,127,127,0.2);font-weight:600;}

/* Pagination */
.pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin:40px 0 0;flex-wrap:wrap;}
.pagination a,.pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 12px;border-radius:6px;text-decoration:none;font-size:0.88rem;color:inherit;}
.pagination a{border:1px solid rgba(127,127,127,0.3);}
.pagination a:hover{background:rgba(127,127,127,0.1);}
.pagination .active{background:rgba(127,127,127,0.2);border:1px solid rgba(127,127,127,0.4);font-weight:600;}

@media(max-width:640px){
  .article-container{padding:24px 16px;}
  .article-container h1{font-size:1.7rem;}
  .related-grid{grid-template-columns:1fr;}
}
/* ── end PBN blog fallback ── */
