:root{color-scheme:dark}.ps-site{--bg:#07090d;--panel:#0d1117;--text:#f7f7f2;--muted:#a5abb5;--line:rgba(255,255,255,.1);--soft:rgba(255,255,255,.045);background:radial-gradient(circle at 85% 5%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 28%),var(--bg);color:var(--text);font-family:Inter,system-ui,sans-serif;min-height:100vh}.ps-site *{box-sizing:border-box}.ps-site a{color:inherit;text-decoration:none}.ps-site h1,.ps-site h2,.ps-site h3,.ps-site p{margin:0}.ps-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem clamp(1rem,4vw,4rem);border-bottom:1px solid var(--line);background:rgba(7,9,13,.82);backdrop-filter:blur(18px)}.ps-brand{display:flex;align-items:center;gap:.8rem}.ps-mark{display:grid;place-items:center;width:2.35rem;height:2.35rem;border-radius:.75rem;background:var(--accent);font-family:Sora,sans-serif;font-weight:800;color:white}.ps-brand strong,.ps-brand small{display:block}.ps-brand strong{font-size:.9rem}.ps-brand small{margin-top:.12rem;color:var(--muted);font-size:.68rem}.ps-header nav{display:flex;align-items:center;gap:1.2rem;font-size:.83rem;color:#c9cdd4}.ps-header nav a:hover{color:white}.ps-nav-cta{padding:.7rem 1rem;border-radius:999px;background:white;color:#090b10!important;font-weight:700}.ps-hero{max-width:1440px;margin:auto;padding:clamp(4.5rem,10vw,8rem) clamp(1rem,4vw,4rem) clamp(4rem,8vw,7rem);display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:clamp(2rem,6vw,6rem);align-items:end}.ps-kicker{display:inline-block;color:var(--accent);font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.ps-eyebrow{margin-top:1.1rem!important;color:#d1d5dc;font-size:clamp(.9rem,1.2vw,1rem)}.ps-hero h1{max-width:12ch;margin-top:1rem!important;font-family:Sora,sans-serif;font-size:clamp(3.2rem,8vw,7.5rem);line-height:.96;letter-spacing:-.055em}.ps-intro{max-width:63ch;margin-top:1.75rem!important;color:var(--muted);font-size:clamp(1rem,1.35vw,1.17rem);line-height:1.8}.ps-actions{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:2rem}.ps-btn{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;padding:.8rem 1.25rem;border-radius:999px;font-size:.88rem;font-weight:750;transition:transform .2s ease,border-color .2s ease}.ps-btn:hover{transform:translateY(-2px)}.ps-btn-primary{background:var(--accent);color:#fff}.ps-btn-secondary{border:1px solid var(--line);background:var(--soft)}.ps-proofline{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2rem}.ps-proofline span,.ps-seo-list span{padding:.5rem .7rem;border:1px solid var(--line);border-radius:999px;background:var(--soft);color:#c4c9d1;font-size:.7rem}.ps-hero-panel{border:1px solid var(--line);border-radius:1.6rem;padding:1.3rem;background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));box-shadow:0 35px 90px rgba(0,0,0,.28)}.ps-panel-label{display:block;padding:.5rem .55rem 1rem;color:var(--muted);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase}.ps-hero-panel ol{list-style:none;padding:0;margin:0}.ps-hero-panel li{display:grid;grid-template-columns:2.5rem 1fr;gap:.6rem;padding:1rem .55rem;border-top:1px solid var(--line)}.ps-hero-panel b{color:var(--accent);font-size:.72rem}.ps-hero-panel strong,.ps-hero-panel span{display:block}.ps-hero-panel strong{font-size:.92rem}.ps-hero-panel span{margin-top:.28rem;color:var(--muted);font-size:.78rem;line-height:1.55}.ps-trust{display:flex;justify-content:space-between;gap:1rem;padding:1rem clamp(1rem,4vw,4rem);border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--muted);font-size:.8rem}.ps-trust a{color:white}.ps-section{max-width:1440px;margin:auto;padding:clamp(4rem,8vw,7rem) clamp(1rem,4vw,4rem)}.ps-section-head{display:grid;grid-template-columns:1fr 1.15fr;gap:1.5rem;align-items:start;margin-bottom:3rem}.ps-section-head .ps-kicker{grid-column:1/-1}.ps-section-head h2,.ps-split h2,.ps-seo-band h2,.ps-cta h2{font-family:Sora,sans-serif;font-size:clamp(2rem,4.4vw,4rem);line-height:1.04;letter-spacing:-.045em}.ps-section-head p{color:var(--muted);line-height:1.75;max-width:55ch}.ps-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.ps-card{min-height:280px;padding:1.5rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(180deg,transparent,rgba(255,255,255,.015));transition:background .2s ease}.ps-card:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.ps-card>span{color:var(--accent);font-size:.72rem}.ps-card h3{margin-top:3rem!important;font-family:Sora,sans-serif;font-size:1.35rem;letter-spacing:-.025em}.ps-card p{margin-top:.8rem!important;color:var(--muted);font-size:.88rem;line-height:1.7}.ps-card a{display:inline-block;margin-top:1.2rem;color:#e6e8ec;font-size:.78rem}.ps-split{max-width:1440px;margin:auto;padding:clamp(4rem,8vw,7rem) clamp(1rem,4vw,4rem);display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,7vw,7rem);border-top:1px solid var(--line)}.ps-split h2{margin-top:1rem!important}.ps-principles{display:grid;grid-template-columns:1fr 1fr}.ps-principles article{padding:1.4rem;border-top:1px solid var(--line)}.ps-principles article:nth-child(odd){border-right:1px solid var(--line)}.ps-principles strong{font-size:.95rem}.ps-principles p{margin-top:.6rem!important;color:var(--muted);font-size:.82rem;line-height:1.65}.ps-seo-band{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:clamp(3rem,6vw,5rem) clamp(1rem,4vw,4rem);background:#0a0d12;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ps-seo-band h2{margin-top:1rem!important}.ps-seo-list{align-self:end;display:flex;flex-wrap:wrap;gap:.6rem}.ps-faq-list{max-width:900px;margin-left:auto}.ps-faq details{border-top:1px solid var(--line);padding:1rem 0}.ps-faq summary{display:flex;justify-content:space-between;gap:1rem;cursor:pointer;font-weight:700;list-style:none}.ps-faq summary::-webkit-details-marker{display:none}.ps-faq summary span{color:var(--accent)}.ps-faq details p{max-width:70ch;margin-top:.8rem!important;color:var(--muted);font-size:.88rem;line-height:1.7}.ps-cta{padding:clamp(4rem,9vw,8rem) clamp(1rem,4vw,4rem);text-align:center;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent) 10%,transparent))}.ps-cta h2{max-width:16ch;margin:1rem auto 0!important}.ps-cta p{max-width:58ch;margin:1.2rem auto 1.8rem!important;color:var(--muted);line-height:1.7}.ps-footer{padding:2.2rem clamp(1rem,4vw,4rem);display:grid;grid-template-columns:1fr auto;gap:1rem;border-top:1px solid var(--line);color:var(--muted)}.ps-footer strong,.ps-footer span{display:block}.ps-footer strong{color:white}.ps-footer span{margin-top:.2rem;font-size:.75rem}.ps-footer>div:nth-child(2){display:flex;gap:1rem;font-size:.78rem}.ps-footer small{grid-column:1/-1;font-size:.68rem}@media(max-width:920px){.ps-header nav>a:not(.ps-nav-cta){display:none}.ps-hero{grid-template-columns:1fr}.ps-section-head,.ps-split,.ps-seo-band{grid-template-columns:1fr}.ps-card-grid{grid-template-columns:1fr 1fr}.ps-faq-list{margin-left:0}}@media(max-width:620px){.ps-header{padding:.85rem 1rem}.ps-brand small{display:none}.ps-hero h1{font-size:clamp(2.7rem,15vw,4.7rem)}.ps-card-grid{grid-template-columns:1fr}.ps-principles{grid-template-columns:1fr}.ps-principles article:nth-child(odd){border-right:0}.ps-trust{display:block}.ps-trust a{display:inline-block;margin-top:.5rem}.ps-footer{grid-template-columns:1fr}.ps-footer small{grid-column:1}.ps-footer>div:nth-child(2){flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){.ps-site *{scroll-behavior:auto!important;transition:none!important}}
/* Exact-match keyword H1: the domain's SEMrush target is the heading itself.
   Widened from 12ch so "Software Developer Pretoria" sets on three balanced
   lines instead of breaking mid-word, and capped smaller so the longer string
   still fits the hero at desktop. */
.ps-hero h1{max-width:14ch;font-size:clamp(2.9rem,6.4vw,5.9rem);line-height:.98;text-wrap:balance}
/* The former H1 keeps its voice directly under the keyword. */
.ps-headline{max-width:22ch;margin-top:1.1rem!important;font-family:Sora,sans-serif;font-size:clamp(1.35rem,2.5vw,2.05rem);line-height:1.18;letter-spacing:-.03em;color:#e9ebef}
@media(max-width:620px){.ps-hero h1{font-size:clamp(2.4rem,11vw,3.5rem)}.ps-headline{font-size:1.25rem;max-width:100%}}
