/* Byte Tech Portfolio — styles (loaded by the plugin on portfolio pages only) */
.ba-pf{--ink:#1b1915;--ink-2:#4a463f;--ink-3:#7c776d;--paper:#faf8f3;--paper-2:#f3f0e8;--paper-3:#ebe7dc;
--rule:#e2dbca;--rule-strong:#cfc6b1;--coral:#f0534b;--coral-deep:#d63f37;--deck:#16140f;--deck-ink:#f6f3ec;
--warn:#a8650b;--warn-tint:#fbf1e1;--ok:#2f7a4f;--color-coral:var(--coral);--color-ink:var(--ink);
--font-display:inherit;--font-sans:inherit;--font-mono:ui-monospace,SFMono-Regular,Menlo,monospace;
color:var(--ink);background:var(--paper);font-size:16px;line-height:1.5}

/* Theme-proofing (Flatsome / WordPress defaults) */
.ba-pf h1,.ba-pf h2,.ba-pf h3,.ba-pf p,.ba-pf ul,.ba-pf ol,.ba-pf li,.ba-pf dl,.ba-pf dd,.ba-pf dt,.ba-pf figure,.ba-pf aside{margin:0;padding:0}
.ba-pf h1,.ba-pf h2,.ba-pf h3{color:inherit;font-family:inherit;text-transform:none;text-rendering:optimizeLegibility}
.ba-pf ul,.ba-pf ol{list-style:none}.ba-pf li{margin-left:0}
.ba-pf a:hover{text-decoration:none}
.ba-pf *{box-sizing:border-box}
.ba-pf a{color:inherit;text-decoration:none}

.ba-pf img{max-width:100%;height:auto;display:block}

.ba-pf .pf-wrap{max-width:104rem;margin:0 auto;padding:0 24px}

.ba-pf .pf-mono{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}

.ba-pf .pf-eyebrow{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2)}

.ba-pf .pf-eyebrow:before{content:"[ "}
.ba-pf .pf-eyebrow:after{content:" ]"}

.ba-pf .pf-hero{padding:48px 0 56px}
.ba-pf .pf-rule-top{border-top:1px solid var(--rule);padding-top:16px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

.ba-pf .pf-hero-grid{display:grid;gap:40px;margin-top:48px}

.ba-pf h1{font-size:clamp(2.6rem,6vw,5rem);line-height:1;letter-spacing:-.03em;font-weight:600;max-width:15ch;margin:0}

.ba-pf .pf-accent{color:var(--coral-deep);font-style:italic}

.ba-pf .pf-lede{font-size:1.15rem;color:var(--ink-2);margin:0;max-width:36rem}

.ba-pf .pf-hero-links{margin-top:32px;display:flex;gap:24px;flex-wrap:wrap}

.ba-pf .pf-hero-links a{border-bottom:1px solid currentColor}
.ba-pf .pf-hero-links a:hover{color:var(--coral-deep)}

.ba-pf .pf-band{position:relative;background:var(--deck);min-height:26rem;overflow:hidden}

.ba-pf .pf-band img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

.ba-pf .pf-band:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(22,20,15,.85),rgba(22,20,15,.45),transparent)}

.ba-pf .pf-band .pf-wrap{position:relative;z-index:1;min-height:26rem;display:flex;flex-direction:column;justify-content:space-between;padding-top:56px;padding-bottom:56px}

.ba-pf .pf-band .pf-eyebrow,.ba-pf .pf-band .pf-mono{color:#cfc9bb}
.ba-pf .pf-band p.pf-big{color:var(--deck-ink);font-size:clamp(2rem,4vw,3.4rem);font-weight:600;line-height:1.05;letter-spacing:-.02em;max-width:16ch;margin:20px 0 0}

.ba-pf .pf-secnav{position:sticky;top:var(--ba-sticky-top,0px);z-index:20;background:rgba(250,248,243,.92);backdrop-filter:blur(10px);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:12px 0}

.ba-pf .pf-secnav ul{list-style:none;margin:0;padding:0;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none}

.ba-pf .pf-secnav a{display:flex;gap:8px;align-items:baseline;white-space:nowrap;border:1px solid var(--rule-strong);border-radius:999px;padding:8px 16px;font-size:.875rem;color:var(--ink-2);background:var(--paper);transition:.2s}

.ba-pf .pf-secnav a:hover,.ba-pf .pf-secnav a.pf-on{background:var(--ink);border-color:var(--ink);color:var(--deck-ink)}

.ba-pf .pf-secnav a span{font-family:var(--font-mono);font-size:.625rem;opacity:.7}

.ba-pf .pf-sec{padding-top:72px;scroll-margin-top:calc(var(--ba-sticky-top,0px) + 80px)}

.ba-pf .pf-sec-head{display:grid;gap:24px;border-top:1px solid var(--rule-strong);padding-top:24px}

.ba-pf .pf-sec-head h2{font-size:clamp(1.5rem,2.5vw,1.9rem);font-weight:600;letter-spacing:-.02em;margin:0;display:flex;gap:16px;align-items:baseline}

.ba-pf .pf-sec-head h2 small{font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-3);font-weight:400}

.ba-pf .pf-sec-head .pf-desc{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 32px;align-items:baseline}

.ba-pf .pf-sec-head .pf-desc p{margin:0;max-width:36rem;font-size:.875rem;color:var(--ink-2)}

.ba-pf .pf-grid{list-style:none;margin:40px 0 0;padding:0;display:grid;gap:40px;grid-template-columns:1fr}

.ba-pf .pf-card{position:relative;height:100%;display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:20px;box-shadow:0 1px 2px rgba(27,25,21,.05);transition:transform .3s,box-shadow .3s}

.ba-pf .pf-card:hover{transform:translateY(-2px);box-shadow:0 10px 30px -10px rgba(27,25,21,.18)}

.ba-pf .pf-thumb{margin-bottom:20px;border-radius:8px;overflow:hidden;background:var(--paper-3);box-shadow:inset 0 0 0 1px var(--rule);aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;padding:12px}

.ba-pf .pf-thumb.pf-sq{aspect-ratio:1/1}
.ba-pf .pf-thumb.pf-svg{padding:0}
.ba-pf .pf-thumb svg{display:block;width:100%;height:auto}

.ba-pf .pf-thumb img{max-height:100%;width:auto;object-fit:contain;border-radius:3px;transition:transform .3s}

.ba-pf .pf-card:hover .pf-thumb img{transform:scale(1.03)}

.ba-pf .pf-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center}

.ba-pf .pf-badge{font-family:var(--font-mono);font-size:.625rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--rule-strong);border-radius:999px;padding:4px 10px}

.ba-pf .pf-badge.pf-ref{color:var(--warn);background:var(--warn-tint);border-color:rgba(168,101,11,.4)}

.ba-pf .pf-badge.pf-own{color:var(--ok);border-color:rgba(47,122,79,.4)}
.ba-pf .pf-badge.pf-web{color:var(--ink-3);border-color:var(--rule)}

.ba-pf .pf-card h3{margin:20px 0 0;font-size:1.35rem;line-height:1.2;font-weight:600;letter-spacing:-.015em}

.ba-pf .pf-card h3 a:after{content:"";position:absolute;inset:0}
.ba-pf .pf-card:hover h3{color:var(--coral-deep)}

.ba-pf .pf-card .pf-sum{margin:10px 0 0;font-size:.875rem;color:var(--ink-2)}

.ba-pf .pf-stats{display:flex;flex-wrap:wrap;gap:12px 32px;margin:24px 0 0}

.ba-pf .pf-stats dd{margin:0;font-size:1.5rem;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums}

.ba-pf .pf-stats dt{font-family:var(--font-mono);font-size:.625rem;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-top:2px}

.ba-pf .pf-tags{margin-top:auto;padding-top:24px}

.ba-pf .pf-end{height:96px}

@media(min-width:768px){.ba-pf .pf-wrap{padding:0 40px}
.ba-pf .pf-grid{grid-template-columns:repeat(2,1fr)}
}

@media(min-width:1024px){.ba-pf .pf-hero-grid{grid-template-columns:1.2fr 1fr;align-items:end}

.ba-pf .pf-sec-head{grid-template-columns:1fr 1.3fr;gap:56px}
.ba-pf .pf-grid.pf-c3{grid-template-columns:repeat(3,1fr)}
.ba-pf .pf-grid.pf-c4{grid-template-columns:repeat(4,1fr);gap:32px}
}

@media(max-width:767px){.ba-pf .pf-band{min-height:0}
.ba-pf .pf-band .pf-wrap{min-height:20rem}
}


.ba-pf .pf-narrow{max-width:82rem;margin:0 auto;padding:0 24px}
.ba-pf .pf-slim{max-width:46rem;margin:0 auto;padding:0 24px}

.ba-pf .pf-pd-hero{padding:48px 0 64px}
.ba-pf .pf-pd-hero h1{margin-top:48px;max-width:16ch}

.ba-pf .pf-note{font-size:.75rem;color:var(--ink-3);max-width:42rem;margin-top:32px}

.ba-pf .pf-cta-row{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px;align-items:center}

.ba-pf .pf-btn{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:12px 24px;font-size:.875rem;font-weight:500;background:var(--ink);color:var(--deck-ink)!important;transition:.2s}

.ba-pf .pf-btn:hover{background:var(--coral-deep)}
.ba-pf .pf-btn.pf-light{background:var(--deck-ink);color:var(--ink)!important}
.ba-pf .pf-btn.pf-light:hover{background:var(--coral);color:#fff!important}

.ba-pf .pf-hint{max-width:20rem;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-3);margin:0}

.ba-pf .pf-shot{border-radius:18px;overflow:hidden;background:var(--paper-3);box-shadow:0 0 0 1px var(--rule),0 20px 50px -20px rgba(27,25,21,.25)}

.ba-pf .pf-chrome{display:flex;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--rule);background:var(--paper-2)}

.ba-pf .pf-chrome i{width:8px;height:8px;border-radius:50%;background:#e2dbca;display:inline-block;margin-right:2px}

.ba-pf .pf-chrome span{font-family:var(--font-mono);font-size:.625rem;color:var(--ink-3)}

.ba-pf .pf-shot img{width:100%}
.ba-pf figcaption{margin-top:12px}

.ba-pf .pf-block{padding-bottom:64px}

.ba-pf .pf-bigstats{display:grid;gap:32px;border-top:1px solid var(--rule);padding-top:32px;margin:0}

.ba-pf .pf-bigstats dd{margin:0;font-size:2.4rem;font-weight:600;letter-spacing:-.02em}
.ba-pf .pf-bigstats dt{margin-top:8px;font-size:.875rem;color:var(--ink-2)}

.ba-pf .pf-notice{border:1px solid rgba(168,101,11,.3);background:rgba(251,241,225,.6);border-radius:24px;padding:28px}

.ba-pf .pf-notice .pf-eyebrow{color:var(--warn)}
.ba-pf .pf-notice ol{list-style:none;padding:0;margin:20px 0 0}

.ba-pf .pf-notice li,.ba-pf .pf-steps li{display:flex;gap:16px;font-size:.9rem;color:var(--ink-2);margin-bottom:12px}

.ba-pf .pf-notice li b{color:var(--warn)}
.ba-pf .pf-notice li b,.ba-pf .pf-steps li b{font-family:var(--font-mono);font-size:.6875rem;font-weight:400;padding-top:3px;flex-shrink:0}

.ba-pf .pf-steps li b{color:var(--ink-3)}

.ba-pf .pf-band2{padding:56px 0}
.ba-pf .pf-bg2{background:var(--paper-2)}
.ba-pf .pf-dark{background:var(--deck);color:var(--deck-ink)}

.ba-pf .pf-two{display:grid;gap:56px}
.ba-pf .pf-two h2{font-size:1.25rem;font-weight:600;margin:0 0 20px;letter-spacing:-.01em}

.ba-pf .pf-intro{font-size:1.125rem;color:var(--ink-2);margin-top:24px}

.ba-pf .pf-steps,.ba-pf .pf-deliv{list-style:none;padding:0;margin:0}

.ba-pf .pf-deliv{display:grid;gap:0 32px}
.ba-pf .pf-deliv li{border-top:1px solid var(--rule);padding:10px 0;font-size:.875rem;color:var(--ink-2)}

.ba-pf .pf-head-rule{border-top:1px solid var(--rule);padding-top:16px;margin-bottom:40px}

.ba-pf .pf-spec{margin:0;border-bottom:1px solid var(--rule)}
.ba-pf .pf-spec div{display:grid;grid-template-columns:9rem 1fr;gap:16px;border-top:1px solid var(--rule);padding:14px 0}

.ba-pf .pf-spec dt{font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.ba-pf .pf-spec dd{margin:0;color:var(--ink-2)}

.ba-pf .pf-chips{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-wrap:wrap;gap:8px}

.ba-pf .pf-chips li{border:1px solid var(--rule);border-radius:999px;padding:4px 12px;font-family:var(--font-mono);font-size:.6875rem;color:var(--ink-2)}

.ba-pf .pf-figs{list-style:none;padding:0;margin:0;display:grid;gap:56px 40px}

.ba-pf .pf-h-md{font-size:clamp(1.8rem,3vw,2.6rem);font-weight:600;letter-spacing:-.02em;line-height:1.1;max-width:24ch;margin:0}

.ba-pf .pf-tier{display:flex;flex-direction:column;height:100%;border:1px solid var(--rule);border-radius:14px;padding:24px;background:var(--paper)}

.ba-pf .pf-tier.pf-hot{border-color:rgba(214,63,55,.5);box-shadow:0 10px 30px -12px rgba(27,25,21,.2)}

.ba-pf .pf-tier .pf-flag{display:inline-block;background:#fde4e2;color:#a3302a;border-radius:999px;padding:4px 10px;font-family:var(--font-mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase}

.ba-pf .pf-tier h3{margin:16px 0 0;font-size:1.25rem;font-weight:600}
.ba-pf .pf-tier .pf-pr{margin:8px 0 0;font-size:1.5rem;font-weight:600}

.ba-pf .pf-tier .pf-pr small{font-family:var(--font-mono);font-size:.625rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.09em;margin-right:8px;font-weight:400}

.ba-pf .pf-tier ul{padding:0;margin:24px 0 0;list-style:none}
.ba-pf .pf-tier li{display:flex;gap:12px;font-size:.875rem;color:var(--ink-2);margin-bottom:10px}

.ba-pf .pf-tier li:before{content:"";width:4px;height:4px;border-radius:50%;background:var(--coral-deep);margin-top:9px;flex-shrink:0}

.ba-pf .pf-tier .pf-ex{margin-top:auto;border-top:1px solid var(--rule);padding-top:16px;font-size:.75rem;color:var(--ink-3)}

.ba-pf .pf-fine{margin-top:48px;border-top:1px solid var(--rule);padding-top:24px;font-size:.75rem;color:var(--ink-3);max-width:48rem}

.ba-pf .pf-dark h2{color:var(--deck-ink);font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;letter-spacing:-.02em;max-width:18ch;margin:0}

@media(min-width:768px){.ba-pf .pf-narrow,.ba-pf .pf-slim{padding:0 40px}
.ba-pf .pf-figs{grid-template-columns:1fr 1fr}
.ba-pf .pf-bigstats{grid-template-columns:repeat(2,1fr)}
.ba-pf .pf-band2{padding:64px 0}
}

@media(min-width:640px){.ba-pf .pf-deliv{grid-template-columns:1fr 1fr}
}

@media(min-width:1024px){.ba-pf .pf-two{grid-template-columns:1fr 1.4fr}
.ba-pf .pf-two.pf-eq{grid-template-columns:1fr 1fr}
.ba-pf .pf-sticky{position:sticky;top:calc(var(--ba-sticky-top,0px) + 100px);align-self:start}

.ba-pf .pf-bigstats{grid-template-columns:repeat(4,1fr)}
.ba-pf .pf-dark .pf-two{align-items:end}
}


/* Card-only projects (no project page): no hover lift, not clickable-looking */
.ba-pf .pf-card--static:hover { transform: none; box-shadow: 0 1px 2px rgba(27,25,21,.05); }
.ba-pf .pf-card--static:hover h3 { color: inherit; }
.ba-pf .pf-card--static:hover .pf-thumb img { transform: none; }

/* Project pages: let the design run edge to edge inside Flatsome */
.batp-project-page #main { padding-top: 0 !important; padding-bottom: 0 !important; }
.batp-project-page .ba-pf { width: 100%; }

/* Sticky section tabs sit under Flatsome's sticky header.
   Change 70px to your header's height (0 if the header isn't sticky). */
.ba-pf { --ba-sticky-top: 70px; }

/* Extra link buttons on project pages (2nd, 3rd … link) */
.ba-pf .pf-btn--ghost { background: transparent; color: var(--ink) !important; box-shadow: inset 0 0 0 1px var(--rule-strong); }
.ba-pf .pf-btn--ghost:hover { background: var(--ink); color: var(--deck-ink) !important; box-shadow: none; }
.ba-pf .pf-shot a img { transition: transform .4s; }
.ba-pf .pf-shot a:hover img { transform: scale(1.01); }
