/*
 * TSW Theme — assets/css/style.css
 * Component styles ported from v4 static site.
 * Navbar + drawer CSS included here.
 */

/* ================================================================
   NAVBAR
================================================================ */
.navbar {
    position: fixed; top: 0; left: 0; right: 0;
    z-index: 1000; height: var(--nav-h);
    background: rgba(5,9,26,.88);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid var(--border);
    transition: background .2s, border-color .2s, box-shadow .2s;
}
.navbar.scrolled {
    background: rgba(5,9,26,.97);
    border-bottom-color: var(--border-2);
    box-shadow: 0 4px 24px rgba(0,0,0,.35);
}

/* Inner layout */
.nav-inner {
    height: var(--nav-h); display: flex; align-items: center;
    gap: 2rem; position: relative;
}

/* Logo */
.nav-logo { display:flex; align-items:center; gap:.65rem; text-decoration:none; flex-shrink:0; }
.nav-logo__mark {
    width:38px; height:38px; border-radius:9px;
    background:linear-gradient(135deg,#7C3AED,#9333EA);
    display:flex; align-items:center; justify-content:center;
    font-size:.7rem; font-weight:900; color:#fff; letter-spacing:-.04em; flex-shrink:0;
}
.nav-logo__info { display:flex; flex-direction:column; }
.nav-logo__text { font-size:.875rem; font-weight:800; color:var(--text); line-height:1.1; letter-spacing:-.03em; }
.nav-logo__sub  { font-size:.65rem; font-weight:600; color:var(--text-4); line-height:1; }

/* Desktop nav */
.nav-menu {
    display:flex; align-items:center; gap:.15rem; flex:1; justify-content:center;
}
.nav-menu a {
    font-size:.875rem; font-weight:600; color:var(--text-3);
    text-decoration:none; padding:.45rem .75rem; border-radius:var(--r);
    transition:color .15s, background .15s; white-space:nowrap; position:relative;
}
.nav-menu a:hover { color:var(--text); }
.nav-menu a.active { color:var(--text); }
.nav-menu a.active::after {
    content:''; position:absolute; bottom:0; left:.75rem; right:.75rem;
    height:2px; background:var(--violet); border-radius:2px;
}

/* Nav right: status + hire */
.nav-right { display:flex; align-items:center; gap:.75rem; flex-shrink:0; margin-left:auto; }
.nav-status { display:flex; align-items:center; gap:.45rem; font-size:.75rem; font-weight:700; color:var(--text-2); white-space:nowrap; }
.nav-status__dot {
    width:8px; height:8px; border-radius:50%; background:#10B981; flex-shrink:0;
    animation:pulse-green 2.5s ease-in-out infinite;
}
.nav-status__text { }
.nav-hire {
    display:inline-flex; align-items:center; gap:.4rem;
    background:var(--violet); color:#fff; border:1.5px solid var(--violet);
    border-radius:var(--r); padding:.5rem 1.1rem; font-size:.8125rem; font-weight:700;
    text-decoration:none; transition:background .15s, transform .1s;
}
.nav-hire:hover { background:#6d28d9; color:#fff; transform:translateY(-1px); }
.nav-hire svg { flex-shrink:0; }

/* Hamburger */
.nav-toggle {
    display:none; flex-direction:column; justify-content:center; align-items:center;
    gap:5px; width:40px; height:40px; background:var(--surface);
    border:1.5px solid var(--border-2); border-radius:var(--r); cursor:pointer;
    position:absolute; right:0; top:50%; transform:translateY(-50%); flex-shrink:0;
}
.nav-toggle span {
    width:18px; height:1.5px; background:var(--text-2); border-radius:2px;
    transition:transform .3s, opacity .3s, width .3s;
    transform-origin:center; display:block;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform:translateY(6.5px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity:0; width:0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }

@media (max-width:991px) {
    .nav-menu, .nav-status, .nav-hire { display:none; }
    .nav-toggle { display:flex; }
    .nav-inner { padding-right:56px; }
}

/* ================================================================
   MOBILE DRAWER
================================================================ */
.nav-drawer {
    position:fixed; inset:0; z-index:2000;
    pointer-events:none; visibility:hidden;
}
.nav-drawer[aria-hidden="false"] { pointer-events:all; visibility:visible; }
.drawer-backdrop {
    position:absolute; inset:0;
    background:rgba(0,0,0,0); transition:background .3s;
}
.nav-drawer[aria-hidden="false"] .drawer-backdrop {
    background:rgba(0,0,0,.6);
}
.drawer-panel {
    position:absolute; top:0; right:0; bottom:0;
    width:min(340px,90vw); background:var(--surface);
    border-left:1px solid var(--border-2);
    transform:translateX(100%);
    transition:transform .35s cubic-bezier(.16,1,.3,1);
    overflow-y:auto; overscroll-behavior:contain;
    display:flex; flex-direction:column; padding:1.5rem; gap:1.5rem;
    z-index:1;
}
.nav-drawer[aria-hidden="false"] .drawer-panel { transform:translateX(0); }
.drawer-header { display:flex; align-items:center; justify-content:space-between; }
.drawer-close {
    width:38px; height:38px; border-radius:var(--r);
    border:1.5px solid var(--border-2); background:var(--surface-2);
    display:flex; align-items:center; justify-content:center;
    color:var(--text-3); cursor:pointer; flex-shrink:0;
    transition:border-color .15s, color .15s;
}
.drawer-close:hover { border-color:rgba(124,58,237,.4); color:var(--text); }
.drawer-status-wrap { }
.drawer-status {
    display:inline-flex; align-items:center; gap:.45rem;
    background:rgba(16,185,129,.10); border:1px solid rgba(16,185,129,.25);
    border-radius:999px; padding:.32rem .85rem;
    font-size:.72rem; font-weight:700; color:#10B981;
}
.drawer-status__dot {
    width:7px; height:7px; border-radius:50%; background:#10B981;
    animation:pulse-green 2.5s ease-in-out infinite;
}
.drawer-nav { display:flex; flex-direction:column; gap:0; }
.drawer-link {
    display:flex; align-items:center; gap:.75rem; padding:.85rem 0;
    border-bottom:1px solid var(--border); text-decoration:none;
    color:var(--text-2); font-size:1rem; font-weight:700;
    transition:color .15s;
}
.drawer-link:last-child { border-bottom:none; }
.drawer-link.active, .drawer-link:hover { color:#A78BFA; }
.drawer-link__num { font-size:.65rem; font-weight:800; color:var(--text-4); letter-spacing:.06em; width:20px; }
.drawer-link__label { flex:1; }
.drawer-link__arrow { color:var(--text-4); flex-shrink:0; }
.drawer-link.active .drawer-link__arrow,
.drawer-link:hover .drawer-link__arrow { color:#A78BFA; }
.drawer-socials { display:flex; gap:.5rem; flex-wrap:wrap; }
.drawer-social-btn {
    width:38px; height:38px; border-radius:var(--r);
    border:1.5px solid var(--border-2); background:var(--surface-2);
    display:flex; align-items:center; justify-content:center;
    color:var(--text-3); text-decoration:none;
    transition:border-color .15s, color .15s, background .15s;
}
.drawer-social-btn:hover { border-color:rgba(124,58,237,.4); color:#A78BFA; background:rgba(124,58,237,.08); }
.drawer-footer { display:flex; flex-direction:column; gap:.5rem; margin-top:auto; }

/* ================================================================
   FOOTER
================================================================ */
.footer { background:var(--surface); border-top:1px solid var(--border); margin-top:0; }
.footer__top { padding:4rem 0 3rem; }
.footer__grid {
    display:grid; grid-template-columns:1.6fr 1fr 1fr 1.2fr; gap:3rem;
}
@media(max-width:1023px){ .footer__grid{ grid-template-columns:1fr 1fr; gap:2rem; } .footer__brand{ grid-column:1/-1; } }
@media(max-width:639px) { .footer__grid{ grid-template-columns:1fr; gap:2rem; } }
.footer__logo { display:inline-flex; align-items:center; gap:.65rem; text-decoration:none; margin-bottom:.85rem; }
.footer__logo-mark {
    width:38px; height:38px; border-radius:9px;
    background:linear-gradient(135deg,#7C3AED,#9333EA);
    display:flex; align-items:center; justify-content:center;
    font-size:.7rem; font-weight:900; color:#fff; flex-shrink:0;
}
.footer__logo-name { display:block; font-size:.875rem; font-weight:800; color:var(--text); line-height:1.1; }
.footer__logo-sub  { display:block; font-size:.65rem; color:var(--text-4); }
.footer__tagline { font-size:.84rem; line-height:1.75; color:var(--text-3); margin-bottom:1.25rem; max-width:340px; }
.footer__socials { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:1.25rem; }
.footer__social {
    width:36px; height:36px; border-radius:var(--r);
    border:1px solid var(--border-2); background:transparent;
    display:flex; align-items:center; justify-content:center;
    color:var(--text-3); text-decoration:none;
    transition:border-color .15s, color .15s, background .15s;
}
.footer__social:hover { border-color:rgba(124,58,237,.4); color:#A78BFA; background:rgba(124,58,237,.08); }
.footer__avail {
    display:inline-flex; align-items:center; gap:.45rem;
    font-size:.75rem; font-weight:700; color:var(--text-3);
}
.footer__avail-dot {
    width:8px; height:8px; border-radius:50%; background:#10B981;
    animation:pulse-green 2.5s ease-in-out infinite;
}
.footer__col-title { font-size:.68rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--text-4); margin-bottom:1rem; }
.footer__links { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:.5rem; }
.footer__links a {
    display:flex; align-items:center; gap:.45rem;
    font-size:.84rem; color:var(--text-3); text-decoration:none;
    transition:color .15s;
}
.footer__links a:hover { color:#A78BFA; }
.footer__contact { display:flex; flex-direction:column; gap:.65rem; margin-bottom:1.25rem; }
.footer__contact-row { display:flex; align-items:flex-start; gap:.6rem; }
.footer__contact-icon { color:#A78BFA; flex-shrink:0; margin-top:.1rem; }
.footer__contact-row a,
.footer__contact-row span { font-size:.84rem; color:var(--text-3); text-decoration:none; }
.footer__contact-row a:hover { color:#A78BFA; }
.footer__hire-cta {
    display:inline-flex; align-items:center; gap:.5rem;
    background:var(--violet); color:#fff; border-radius:var(--r);
    padding:.65rem 1.25rem; font-size:.84rem; font-weight:700;
    text-decoration:none; transition:background .15s;
}
.footer__hire-cta:hover { background:#6d28d9; color:#fff; }
.footer__bottom { border-top:1px solid var(--border); padding:1.25rem 0; }
.footer__bottom-inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.footer__copy { font-size:.78rem; color:var(--text-4); margin:0; }
.footer__legal { display:flex; align-items:center; gap:1rem; }
.footer__legal a { font-size:.78rem; color:var(--text-4); text-decoration:none; transition:color .15s; }
.footer__legal a:hover { color:var(--text-3); }

/* ================================================================
   GLOBAL KEYFRAMES
================================================================ */
@keyframes pulse-green {
    0%,100% { box-shadow:0 0 0 3px rgba(16,185,129,.20); }
    50%      { box-shadow:0 0 0 7px rgba(16,185,129,.06); }
}
@keyframes marquee {
    from { transform:translateX(0); }
    to   { transform:translateX(-50%); }
}
@keyframes fade-up {
    from { opacity:0; transform:translateY(28px); }
    to   { opacity:1; transform:translateY(0); }
}
@keyframes orb-drift {
    0%,100% { transform:translate(0,0) scale(1); }
    33%      { transform:translate(20px,-15px) scale(1.05); }
    66%      { transform:translate(-10px,10px) scale(0.96); }
}
@keyframes float-y {
    0%,100% { transform:translateY(0); }
    50%      { transform:translateY(-10px); }
}
@keyframes ring-expand {
    0%   { opacity:.5; transform:translate(-50%,-50%) scale(.9); }
    100% { opacity:0;  transform:translate(-50%,-50%) scale(1.15); }
}

.anim-1 { animation:fade-up .7s  .05s cubic-bezier(.16,1,.3,1) both; }
.anim-2 { animation:fade-up .7s  .12s cubic-bezier(.16,1,.3,1) both; }
.anim-3 { animation:fade-up .7s  .19s cubic-bezier(.16,1,.3,1) both; }
.anim-4 { animation:fade-up .7s  .26s cubic-bezier(.16,1,.3,1) both; }
.anim-5 { animation:fade-up .7s  .33s cubic-bezier(.16,1,.3,1) both; }
.anim-6 { animation:fade-up .7s  .40s cubic-bezier(.16,1,.3,1) both; }

/* ================================================================
   GLOBAL BUTTONS
================================================================ */
.btn {
    display:inline-flex; align-items:center; gap:.5rem;
    font-family:var(--font); font-weight:700; text-decoration:none;
    border-radius:var(--r); cursor:pointer; border:1.5px solid transparent;
    transition:background .15s, border-color .15s, transform .1s, color .15s;
    white-space:nowrap;
}
.btn:hover  { transform:translateY(-1px); }
.btn:active { transform:translateY(0); }
.btn--primary { background:var(--violet); color:#fff; border-color:var(--violet); padding:.65rem 1.4rem; font-size:.9rem; }
.btn--primary:hover { background:#6d28d9; border-color:#6d28d9; color:#fff; }
.btn--ghost { background:transparent; color:var(--text-2); border-color:var(--border-2); padding:.65rem 1.4rem; font-size:.9rem; }
.btn--ghost:hover { border-color:rgba(124,58,237,.4); background:rgba(124,58,237,.08); color:#A78BFA; }
.btn--outline { background:transparent; color:var(--text-2); border-color:var(--border-2); padding:.65rem 1.4rem; font-size:.9rem; }
.btn--outline:hover { border-color:rgba(124,58,237,.4); color:#A78BFA; }
.btn--lg { padding:.8rem 1.75rem; font-size:.9375rem; }
.btn--sm { padding:.4rem 1rem; font-size:.78rem; }
.btn--full { width:100%; justify-content:center; }

/* ================================================================
   SECTION HELPERS
================================================================ */
.section { padding:5rem 0; }
.section-label { margin-bottom:.5rem; }
.section-head-row { display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:1rem; margin-bottom:2.5rem; }
.section-head-row .heading-lg { margin-bottom:0; }

.sec-tag {
    display:inline-flex; align-items:center; gap:.5rem;
    background:rgba(124,58,237,.10); border:1px solid rgba(124,58,237,.25);
    border-radius:999px; padding:.32rem .85rem;
    font-size:.72rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
    color:#A78BFA; margin-bottom:.85rem;
}
.sec-tag-dot { width:6px; height:6px; border-radius:50%; background:currentColor; }
.sec-tag--orange { color:var(--orange); background:rgba(249,115,22,.10); border-color:rgba(249,115,22,.25); }
.sec-tag--green  { color:#10B981; background:rgba(16,185,129,.10); border-color:rgba(16,185,129,.25); }
.sec-tag--cyan   { color:var(--cyan); background:rgba(6,182,212,.10); border-color:rgba(6,182,212,.25); }

.heading-xl { font-size:clamp(2.5rem,5.5vw,4rem); font-weight:900; letter-spacing:-.045em; line-height:1.05; color:var(--text); margin:0; }
.heading-lg { font-size:clamp(1.875rem,3.5vw,2.75rem); font-weight:900; letter-spacing:-.04em; line-height:1.1; color:var(--text); margin:0; }
.heading-md { font-size:clamp(1.375rem,2.5vw,1.875rem); font-weight:900; letter-spacing:-.035em; line-height:1.2; color:var(--text); margin:0; }
.lead { font-size:clamp(1rem,1.5vw,1.125rem); color:var(--text-3); line-height:1.85; }
.text-center { text-align:center; }
.v-grad { background:linear-gradient(135deg,#A78BFA,#7C3AED); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

/* ================================================================
   HOME — DESKTOP HERO (.dh)
================================================================ */
.dh {
    position:relative; overflow:hidden; background:var(--bg);
    padding:calc(var(--nav-h,72px) + 5rem) 0 6rem;
    min-height:100vh; display:flex; align-items:center;
}
.dh__grid {
    position:absolute; inset:0; pointer-events:none;
    background-image:linear-gradient(rgba(124,58,237,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.07) 1px,transparent 1px);
    background-size:56px 56px;
}
.dh__glow-tl { position:absolute; top:-15%; left:-10%; width:600px; height:600px; pointer-events:none; background:radial-gradient(circle,rgba(124,58,237,.18) 0%,transparent 65%); }
.dh__glow-br { position:absolute; bottom:-20%; right:-5%; width:500px; height:500px; pointer-events:none; background:radial-gradient(circle,rgba(6,182,212,.10) 0%,transparent 65%); }
.dh__orb { position:absolute; border-radius:50%; pointer-events:none; animation:orb-drift 8s ease-in-out infinite; }
.dh__orb--1 { width:300px; height:300px; top:10%; right:8%; animation-delay:0s; background:radial-gradient(circle,rgba(124,58,237,.12) 0%,transparent 70%); }
.dh__orb--2 { width:200px; height:200px; bottom:20%; left:15%; animation-delay:-4s; background:radial-gradient(circle,rgba(6,182,212,.09) 0%,transparent 70%); }
.dh__inner { position:relative; z-index:2; width:100%; }
.dh__eyebrow {
    display:inline-flex; align-items:center; gap:.5rem;
    background:rgba(124,58,237,.10); border:1px solid rgba(124,58,237,.25);
    border-radius:999px; padding:.38rem 1rem;
    font-size:.75rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
    color:#A78BFA; margin-bottom:1.5rem;
}
.dh__eyebrow-dot { width:7px; height:7px; border-radius:50%; background:#10B981; box-shadow:0 0 0 3px rgba(16,185,129,.2); animation:pulse-green 2.5s ease-in-out infinite; }
.dh__title { font-size:clamp(2.75rem,4.8vw,5rem); font-weight:900; letter-spacing:-.045em; line-height:1.04; color:var(--text); margin-bottom:1.35rem; }
.dh__title-line { display:block; }
.dh__grad { background:linear-gradient(135deg,#C4B5FD 0%,#A78BFA 40%,#7C3AED 100%); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.dh__desc { font-size:1.0625rem; line-height:1.85; color:var(--text-3); max-width:520px; margin-bottom:2rem; }
.dh__desc strong { color:var(--text-2); font-weight:700; }
.dh__chips { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:2.25rem; }
.dh__chip { display:inline-flex; align-items:center; gap:.4rem; padding:.35rem .85rem; background:var(--surface); border:1px solid var(--border-2); border-radius:999px; font-size:.78rem; font-weight:600; color:var(--text-2); transition:border-color .2s,color .2s,transform .2s; }
.dh__chip:hover { border-color:rgba(124,58,237,.40); color:#A78BFA; transform:translateY(-2px); }
.dh__chip svg { width:14px; height:14px; opacity:.7; }
.dh__actions { display:flex; align-items:center; gap:1rem; flex-wrap:wrap; margin-bottom:2.5rem; }
.dh__proof { display:flex; align-items:center; gap:1rem; }
.dh__avatars { display:flex; }
.dh__av { width:34px; height:34px; border-radius:50%; border:2.5px solid var(--bg); background:var(--surface-2); display:flex; align-items:center; justify-content:center; font-size:.65rem; font-weight:800; color:var(--text-2); margin-left:-10px; flex-shrink:0; overflow:hidden; }
.dh__av:first-child { margin-left:0; }
.dh__proof-text { font-size:.8125rem; color:var(--text-3); line-height:1.4; }
.dh__proof-text strong { color:var(--text-2); }

/* Terminal card */
.dh__visual { position:relative; }
.dh__card { background:var(--surface); border:1px solid var(--border-2); border-radius:var(--r-2xl); padding:1.75rem; box-shadow:0 8px 60px rgba(0,0,0,.5),0 0 0 1px rgba(124,58,237,.08); position:relative; overflow:hidden; }
.dh__card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,transparent,#7C3AED,#A78BFA,transparent); }
.dh__terminal-bar { display:flex; align-items:center; gap:.5rem; margin-bottom:1.25rem; }
.dh__dot { width:11px; height:11px; border-radius:50%; }
.dh__dot--red    { background:#EF4444; }
.dh__dot--yellow { background:#F59E0B; }
.dh__dot--green  { background:#10B981; }
.dh__terminal-title { margin-left:auto; font-size:.7rem; font-weight:600; color:var(--text-4); font-family:'JetBrains Mono',monospace; letter-spacing:.04em; }
.dh__code { font-family:'JetBrains Mono','Fira Code',monospace; font-size:.8125rem; line-height:1.9; color:var(--text-3); }
.cp { color:#A78BFA; } .cc { color:#67E8F9; } .cg { color:#86EFAC; }
.co { color:#FDBA74; } .cd { color:var(--text-4); } .cw { color:var(--text); }
.dh__divider { height:1px; background:var(--border); margin:1.25rem 0; }
.dh__float { position:absolute; background:var(--surface-2); border:1px solid var(--border-2); border-radius:var(--r-lg); padding:.75rem 1rem; box-shadow:0 8px 32px rgba(0,0,0,.4); white-space:nowrap; }
.dh__float--tl { top:-1.5rem; right:1.5rem; animation:float-y 4s ease-in-out infinite; }
.dh__float--bl { bottom:1.5rem; left:-2rem; animation:float-y 4s 2s ease-in-out infinite; }
.dh__float-icon { font-size:1rem; margin-bottom:.2rem; }
.dh__float-val  { font-size:1.1rem; font-weight:900; color:var(--text); letter-spacing:-.03em; line-height:1; }
.dh__float-lbl  { font-size:.68rem; font-weight:600; color:var(--text-3); margin-top:.2rem; }

/* Hero visibility */
.hero-desktop { display:none; }
.hero-mobile  { display:block; }
@media(min-width:992px) {
    .hero-desktop { display:block; }
    .hero-mobile  { display:none; }
}

/* ================================================================
   HOME — MOBILE HERO (.mh)
================================================================ */
.mh { position:relative; overflow:hidden; background:var(--bg); padding:calc(var(--nav-h,72px) + 2.75rem) 0 3.5rem; text-align:center; }
.mh__grid { position:absolute; inset:0; pointer-events:none; background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px); background-size:40px 40px; }
.mh__glow { position:absolute; top:0; left:50%; transform:translateX(-50%); width:360px; height:360px; pointer-events:none; background:radial-gradient(circle,rgba(124,58,237,.20) 0%,transparent 70%); }
.mh__inner { position:relative; z-index:2; }
.mh__status { display:inline-flex; align-items:center; gap:.45rem; background:rgba(16,185,129,.10); border:1px solid rgba(16,185,129,.25); border-radius:999px; padding:.32rem .85rem; font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:#10B981; margin-bottom:1.25rem; }
.mh__status-dot { width:7px; height:7px; border-radius:50%; background:#10B981; animation:pulse-green 2.5s ease-in-out infinite; }
.mh__title { font-size:clamp(2rem,8.5vw,3rem); font-weight:900; letter-spacing:-.04em; line-height:1.08; color:var(--text); margin-bottom:1rem; }
.mh__grad { background:linear-gradient(135deg,#C4B5FD,#A78BFA,#7C3AED); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.mh__desc { font-size:.9375rem; line-height:1.80; color:var(--text-3); max-width:360px; margin:0 auto 1.75rem; }
.mh__desc strong { color:var(--text-2); }
.mh__chips-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; margin:0 -1.25rem 1.75rem; padding:0 1.25rem; }
.mh__chips-wrap::-webkit-scrollbar { display:none; }
.mh__chips { display:flex; gap:.5rem; width:max-content; }
.mh__chip { display:inline-flex; align-items:center; gap:.4rem; padding:.38rem .85rem; background:var(--surface); border:1px solid var(--border-2); border-radius:999px; font-size:.75rem; font-weight:600; color:var(--text-2); white-space:nowrap; flex-shrink:0; }
.mh__stats { display:grid; grid-template-columns:repeat(3,1fr); gap:.65rem; margin-bottom:2rem; }
.mh__stat { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:.9rem .5rem; }
.mh__stat-val { font-size:1.25rem; font-weight:900; color:var(--text); letter-spacing:-.04em; line-height:1; }
.mh__stat-lbl { font-size:.62rem; font-weight:600; color:var(--text-3); margin-top:.25rem; line-height:1.3; }
.mh__actions { display:flex; flex-direction:column; align-items:center; gap:.75rem; margin-bottom:2rem; }
.mh__actions .btn { width:100%; max-width:300px; }
.mh__proof { display:flex; align-items:center; justify-content:center; gap:.75rem; }
.mh__avatars { display:flex; }
.mh__av { width:30px; height:30px; border-radius:50%; border:2.5px solid var(--bg); background:var(--surface-2); display:flex; align-items:center; justify-content:center; font-size:.6rem; font-weight:800; color:var(--text-2); margin-left:-8px; flex-shrink:0; overflow:hidden; }
.mh__av:first-child { margin-left:0; }
.mh__proof-text { font-size:.78rem; color:var(--text-3); line-height:1.4; }
.mh__proof-text strong { color:var(--text-2); }

/* ================================================================
   HOME — TRUST BAR
================================================================ */
.trust-bar { overflow:hidden; background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding:1rem 0; position:relative; }
.trust-bar::before,.trust-bar::after { content:''; position:absolute; top:0; bottom:0; width:80px; z-index:2; pointer-events:none; }
.trust-bar::before { left:0; background:linear-gradient(to right,var(--surface),transparent); }
.trust-bar::after  { right:0; background:linear-gradient(to left,var(--surface),transparent); }
.trust-track { display:flex; gap:2rem; width:max-content; animation:marquee 30s linear infinite; }
.trust-bar:hover .trust-track { animation-play-state:paused; }
.trust-item { display:inline-flex; align-items:center; gap:.6rem; font-size:.8125rem; font-weight:600; color:var(--text-3); white-space:nowrap; flex-shrink:0; }
.trust-item svg { width:14px; height:14px; color:#A78BFA; flex-shrink:0; }
.trust-sep { width:4px; height:4px; border-radius:50%; background:var(--border-3); flex-shrink:0; }

/* ================================================================
   HOME — STATS STRIP
================================================================ */
.hp-stats { background:var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.hp-stats__grid { display:grid; grid-template-columns:repeat(2,1fr); }
@media(min-width:768px){ .hp-stats__grid { grid-template-columns:repeat(4,1fr); } }
.hp-stat { padding:2.5rem 1.5rem; text-align:center; border-right:1px solid var(--border); position:relative; }
.hp-stat:last-child { border-right:none; }
.hp-stat:nth-child(2) { border-right:none; }
@media(min-width:768px){ .hp-stat:nth-child(2) { border-right:1px solid var(--border); } }
.hp-stat::after { content:''; position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:0; height:2px; background:linear-gradient(90deg,transparent,#7C3AED,transparent); transition:width .4s; }
.hp-stat:hover::after { width:60px; }
.hp-stat__val { font-size:clamp(2rem,4vw,3rem); font-weight:900; letter-spacing:-.05em; line-height:1; color:var(--text); margin-bottom:.4rem; }
.hp-stat__lbl { font-size:.78rem; font-weight:600; color:var(--text-3); letter-spacing:.04em; }

/* ================================================================
   HOME — SERVICES GRID
================================================================ */
.svc-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:640px)  { .svc-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .svc-grid { grid-template-columns:repeat(3,1fr); } }
.svc-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); padding:1.75rem; display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:border-color .3s,box-shadow .3s,transform .3s; }
.svc-card:hover { border-color:rgba(124,58,237,.35); box-shadow:0 8px 40px rgba(124,58,237,.14); transform:translateY(-5px); color:inherit; text-decoration:none; }
.svc-card__icon { width:52px; height:52px; border-radius:var(--r-md); background:rgba(124,58,237,.10); border:1px solid rgba(124,58,237,.20); display:flex; align-items:center; justify-content:center; margin-bottom:1.25rem; transition:background .3s,transform .3s; }
.svc-card__icon svg { width:24px; height:24px; color:#A78BFA; }
.svc-card:hover .svc-card__icon { background:rgba(124,58,237,.18); transform:scale(1.08) rotate(-3deg); }
.svc-card__name { font-size:1.0625rem; font-weight:800; color:var(--text); letter-spacing:-.025em; margin-bottom:.5rem; }
.svc-card__desc { font-size:.875rem; color:var(--text-3); line-height:1.75; flex:1; margin-bottom:1.25rem; }
.svc-card__tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.25rem; }
.svc-card__tag { font-size:.68rem; font-weight:700; padding:.2rem .6rem; background:var(--surface-2); border:1px solid var(--border); border-radius:999px; color:var(--text-3); }
.svc-card__link { display:inline-flex; align-items:center; gap:.45rem; font-size:.8125rem; font-weight:700; color:#A78BFA; margin-top:auto; transition:gap .2s; }
.svc-card:hover .svc-card__link { gap:.7rem; }
.svc-card__link svg { width:14px; height:14px; }

/* ================================================================
   HOME — WHY ME GRID
================================================================ */
.why-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:640px)  { .why-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .why-grid { grid-template-columns:repeat(4,1fr); } }
.why-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); padding:1.75rem 1.5rem; transition:border-color .3s,transform .3s; position:relative; overflow:hidden; }
.why-card::after { content:''; position:absolute; inset:0; background:linear-gradient(135deg,rgba(124,58,237,.05),transparent); opacity:0; transition:opacity .3s; pointer-events:none; }
.why-card:hover { border-color:rgba(124,58,237,.30); transform:translateY(-4px); }
.why-card:hover::after { opacity:1; }
.why-num { font-size:2.5rem; font-weight:900; letter-spacing:-.06em; line-height:1; background:linear-gradient(135deg,rgba(124,58,237,.6),rgba(124,58,237,.15)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; margin-bottom:.85rem; }
.why-title { font-size:1rem; font-weight:800; color:var(--text); margin-bottom:.45rem; letter-spacing:-.02em; }
.why-desc  { font-size:.84rem; color:var(--text-3); line-height:1.7; }

/* ================================================================
   HOME — PORTFOLIO GRID
================================================================ */
.port-grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media(min-width:640px)  { .port-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1024px) { .port-grid { grid-template-columns:repeat(3,1fr); } }
.port-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; display:flex; flex-direction:column; text-decoration:none; color:inherit; transition:border-color .3s,transform .3s,box-shadow .3s; }
.port-card:hover { border-color:rgba(124,58,237,.30); transform:translateY(-5px); box-shadow:0 12px 40px rgba(0,0,0,.4); color:inherit; }
.port-card__thumb { aspect-ratio:16/9; overflow:hidden; position:relative; background:var(--surface-2); }
.port-card__thumb img { width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.port-card:hover .port-card__thumb img { transform:scale(1.06); }
.port-card__overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(5,9,26,.75) 0%,transparent 60%); opacity:0; transition:opacity .3s; }
.port-card:hover .port-card__overlay { opacity:1; }
.port-card__cat { position:absolute; top:1rem; left:1rem; font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#A78BFA; background:rgba(124,58,237,.15); border:1px solid rgba(124,58,237,.30); border-radius:999px; padding:.22rem .65rem; }
.port-card__body { padding:1.5rem; flex:1; display:flex; flex-direction:column; }
.port-card__title { font-size:1rem; font-weight:800; color:var(--text); letter-spacing:-.025em; margin-bottom:.45rem; transition:color .2s; }
.port-card:hover .port-card__title { color:#A78BFA; }
.port-card__desc { font-size:.8125rem; color:var(--text-3); line-height:1.7; flex:1; margin-bottom:1rem; }
.port-card__metrics { display:flex; gap:1rem; padding-top:1rem; border-top:1px solid var(--border); }
.pm-val { font-size:1rem; font-weight:900; color:var(--text); letter-spacing:-.03em; line-height:1; }
.pm-lbl { font-size:.65rem; font-weight:600; color:var(--text-3); margin-top:.2rem; }

/* ================================================================
   HOME — PROCESS
================================================================ */
.proc-grid { display:grid; grid-template-columns:1fr; gap:0; position:relative; }
@media(min-width:768px) {
    .proc-grid { grid-template-columns:repeat(4,1fr); }
    .proc-grid::before { display:block; content:''; position:absolute; top:27px; left:calc(12.5% + 20px); right:calc(12.5% + 20px); height:1px; background:linear-gradient(90deg,rgba(124,58,237,.3),rgba(124,58,237,.6),rgba(124,58,237,.3)); z-index:0; }
}
.proc-step { padding:0 1rem 2.5rem; position:relative; z-index:1; display:flex; }
@media(min-width:768px) { .proc-step { flex-direction:column; align-items:center; text-align:center; padding:0 1rem; } }
@media(max-width:767px) {
    .proc-step:not(:last-child)::before { content:''; position:absolute; left:25px; top:52px; bottom:0; width:1px; background:linear-gradient(to bottom,rgba(124,58,237,.4),transparent); }
}
.proc-step__num { width:52px; height:52px; border-radius:50%; background:var(--surface-2); border:2px solid rgba(124,58,237,.40); display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:900; color:#A78BFA; flex-shrink:0; margin-right:1.25rem; position:relative; z-index:1; box-shadow:0 0 0 5px var(--bg); transition:background .3s,border-color .3s; }
@media(min-width:768px) { .proc-step__num { margin-right:0; margin-bottom:1.25rem; } }
.proc-step:hover .proc-step__num { background:rgba(124,58,237,.15); border-color:#7C3AED; }
.proc-step__title { font-size:.9375rem; font-weight:800; color:var(--text); margin-bottom:.4rem; }
.proc-step__desc  { font-size:.8125rem; color:var(--text-3); line-height:1.7; }

/* ================================================================
   HOME — TECH GRID
================================================================ */
.tech-grid-home { display:grid; grid-template-columns:repeat(4,1fr); gap:.75rem; }
@media(min-width:480px)  { .tech-grid-home { grid-template-columns:repeat(5,1fr); } }
@media(min-width:640px)  { .tech-grid-home { grid-template-columns:repeat(6,1fr); } }
@media(min-width:1024px) { .tech-grid-home { grid-template-columns:repeat(8,1fr); } }
.t-tile { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-md); padding:.85rem .5rem; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.5rem; text-align:center; transition:border-color .25s,background .25s,transform .3s; }
.t-tile:hover { border-color:rgba(124,58,237,.35); background:rgba(124,58,237,.07); transform:translateY(-3px); }
.t-tile img { width:28px; height:28px; object-fit:contain; filter: brightness(0) invert(1);}
.t-tile span { font-size:.62rem; font-weight:700; color:var(--text-3); letter-spacing:.02em; line-height:1.3; }
/* ================================================================
   HOME — TESTIMONIALS
================================================================ */
.testi-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:640px)  { .testi-grid { grid-template-columns:repeat(2,1fr); } }
@media(min-width:1100px) { .testi-grid { grid-template-columns:repeat(3,1fr); } }
.testi-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); padding:1.75rem; display:flex; flex-direction:column; gap:1rem; transition:border-color .3s,transform .3s; }
.testi-card:hover { border-color:rgba(124,58,237,.25); transform:translateY(-3px); }
.testi-stars { display:flex; gap:.25rem; }
.testi-stars svg { width:14px; height:14px; color:#F59E0B; }
.testi-quote { font-size:.9375rem; line-height:1.8; color:var(--text-2); font-style:italic; flex:1; }
.testi-quote::before { content:'\201C'; color:#7C3AED; font-style:normal; font-size:1.25rem; line-height:1; }
.testi-quote::after  { content:'\201D'; color:#7C3AED; font-style:normal; font-size:1.25rem; line-height:1; }
.testi-foot { display:flex; align-items:center; gap:.85rem; padding-top:1rem; border-top:1px solid var(--border); }
.testi-av { width:42px; height:42px; border-radius:50%; background:var(--surface-2); border:2px solid var(--border-2); display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:800; color:var(--text-2); flex-shrink:0; overflow:hidden; }
.testi-av img { width:100%; height:100%; object-fit:cover; }
.testi-name { font-size:.875rem; font-weight:700; color:var(--text); }
.testi-role { font-size:.75rem; color:var(--text-3); }
.testi-badge { margin-left:auto; flex-shrink:0; font-size:.65rem; font-weight:700; padding:.2rem .6rem; background:rgba(124,58,237,.10); border:1px solid rgba(124,58,237,.20); border-radius:999px; color:#A78BFA; }

/* ================================================================
   HOME — CTA SECTION
================================================================ */
.hp-cta { position:relative; overflow:hidden; background:linear-gradient(135deg,#0A0520 0%,#130830 50%,#0C1228 100%); padding:7rem 0; text-align:center; }
.hp-cta::before { content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:700px; height:500px; background:radial-gradient(ellipse,rgba(124,58,237,.22) 0%,transparent 65%); pointer-events:none; }
.hp-cta__ring { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); border-radius:50%; border:1px solid rgba(124,58,237,.08); pointer-events:none; animation:ring-expand 6s ease-in-out infinite; }
.hp-cta__ring--1 { width:400px; height:400px; animation-delay:0s; }
.hp-cta__ring--2 { width:600px; height:600px; animation-delay:2s; }
.hp-cta__ring--3 { width:800px; height:800px; animation-delay:4s; }
.hp-cta__inner { position:relative; z-index:2; max-width:680px; margin:0 auto; padding:0 1rem; }
.hp-cta__title { font-size:clamp(1.875rem,4vw,3.25rem); font-weight:900; letter-spacing:-.04em; color:var(--text); margin-bottom:1rem; line-height:1.1; }
.hp-cta__desc  { font-size:1.0625rem; line-height:1.75; color:rgba(255,255,255,.45); max-width:500px; margin:0 auto 2.25rem; }
.hp-cta__actions { display:flex; align-items:center; justify-content:center; gap:1rem; flex-wrap:wrap; }
.hp-cta__trust { margin-top:2rem; display:flex; align-items:center; justify-content:center; gap:1.5rem; flex-wrap:wrap; }
.hp-cta__trust-item { display:flex; align-items:center; gap:.4rem; font-size:.78rem; font-weight:600; color:rgba(255,255,255,.35); }
.hp-cta__trust-item svg { width:14px; height:14px; color:#10B981; }

/* ================================================================
   PORTFOLIO DETAIL (single-portfolio.php)
================================================================ */
.pf-detail-hero { background:var(--bg); padding-bottom:3rem; }
.pf-detail-hero__img { height:55vh; min-height:320px; max-height:560px; overflow:hidden; margin-bottom:0; }
.pf-detail-hero__img img { width:100%; height:100%; object-fit:cover; display:block; }
.pf-detail-hero__inner { padding-top:2.5rem; }
.pf-detail-breadcrumb { display:flex; align-items:center; gap:.5rem; font-size:.78rem; color:var(--text-3); margin-bottom:1.25rem; flex-wrap:wrap; }
.pf-detail-breadcrumb a { color:var(--text-3); text-decoration:none; }
.pf-detail-breadcrumb a:hover { color:#A78BFA; }
.pf-detail-meta { display:flex; align-items:center; gap:.75rem; flex-wrap:wrap; margin-bottom:1rem; }
.pf-detail-hero__title { font-size:clamp(1.875rem,4vw,3.25rem); font-weight:900; letter-spacing:-.04em; line-height:1.1; color:var(--text); margin-bottom:.85rem; }
.pf-detail-hero__desc { font-size:1.0625rem; color:var(--text-3); line-height:1.8; max-width:680px; margin-bottom:1.25rem; }
.pf-detail-hero__facts { display:flex; gap:2rem; flex-wrap:wrap; margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--border); }
.pf-detail-fact { display:flex; flex-direction:column; gap:.2rem; }
.pf-detail-fact__lbl { font-size:.65rem; font-weight:800; text-transform:uppercase; letter-spacing:.1em; color:var(--text-4); }
.pf-detail-fact__val { font-size:.9375rem; font-weight:700; color:var(--text-2); }

/* ================================================================
   BLOG
================================================================ */
.blog-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; margin-bottom:3rem; }
@media(max-width:991px) { .blog-grid { grid-template-columns:repeat(2,1fr); } }
@media(max-width:575px) { .blog-grid { grid-template-columns:1fr; } }
.blog-card { background:var(--surface); border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; display:flex; flex-direction:column; transition:border-color .3s,transform .3s; }
.blog-card:hover { border-color:rgba(124,58,237,.3); transform:translateY(-4px); }
.blog-card__thumb { aspect-ratio:16/9; overflow:hidden; background:var(--surface-2); display:block; }
.blog-card__thumb img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .45s; }
.blog-card:hover .blog-card__thumb img { transform:scale(1.05); }
.blog-card__body { padding:1.35rem; flex:1; display:flex; flex-direction:column; gap:.55rem; }
.blog-card__meta { display:flex; align-items:center; gap:.65rem; }
.post-cat-badge { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:#A78BFA; text-decoration:none; }
.blog-card__read { font-size:.68rem; font-weight:600; color:var(--text-4); margin-left:auto; }
.blog-card__title { font-size:1.0625rem; font-weight:900; color:var(--text); letter-spacing:-.025em; line-height:1.3; }
.blog-card__title a { color:inherit; text-decoration:none; }
.blog-card:hover .blog-card__title a { color:#A78BFA; }
.blog-card__excerpt { font-size:.8375rem; color:var(--text-3); line-height:1.7; }
.blog-card__footer { display:flex; align-items:center; justify-content:space-between; margin-top:auto; padding-top:.75rem; border-top:1px solid var(--border); }
.blog-card__date { font-size:.72rem; color:var(--text-4); }
.blog-card__more { font-size:.78rem; font-weight:700; color:#A78BFA; text-decoration:none; }

/* Pagination */
.blog-pagination ul { list-style:none; padding:0; display:flex; gap:.4rem; flex-wrap:wrap; justify-content:center; }
.blog-pagination .page-numbers { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:var(--r); border:1px solid var(--border-2); color:var(--text-3); font-size:.84rem; font-weight:700; text-decoration:none; transition:all .2s; }
.blog-pagination .page-numbers:hover { border-color:rgba(124,58,237,.4); color:#A78BFA; }
.blog-pagination .page-numbers.current { background:var(--violet); border-color:var(--violet); color:#fff; }
.blog-pagination .prev,.blog-pagination .next { width:auto; padding:0 1rem; }

/* ================================================================
   PAGE HERO (generic page banner)
================================================================ */
.page-hero { padding:5rem 0 3.5rem; border-bottom:1px solid var(--border); background:var(--bg); }

/* ================================================================
   404 PAGE
================================================================ */
.error-404 { min-height:calc(100vh - var(--nav-h) - 80px); display:flex; align-items:center; padding:4rem 0; }
.error-404__num { font-size:clamp(7rem,18vw,14rem); font-weight:900; letter-spacing:-.06em; line-height:1; background:linear-gradient(135deg,rgba(124,58,237,.2),rgba(124,58,237,.06)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; margin-bottom:1rem; }
.error-404__search { margin:0 auto 2rem; max-width:440px; }
.error-404__links { display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center; margin-top:1.5rem; }
.error-404__link { display:inline-flex; align-items:center; gap:.4rem; padding:.5rem 1rem; background:var(--surface); border:1px solid var(--border-2); border-radius:999px; font-size:.84rem; font-weight:700; color:var(--text-3); text-decoration:none; transition:all .2s; }
.error-404__link:hover { border-color:rgba(124,58,237,.4); color:#A78BFA; }

/* ================================================================
   SEARCH FORM
================================================================ */
.search-form { display:flex; gap:.5rem; }
.search-field { flex:1; background:var(--surface); border:1.5px solid var(--border-2); border-radius:var(--r); color:var(--text); font-size:.9375rem; padding:.65rem 1rem; font-family:var(--font); }
.search-field:focus { border-color:var(--violet); outline:none; box-shadow:0 0 0 3px rgba(124,58,237,.15); }
.search-submit { background:var(--violet); color:#fff; border:none; border-radius:var(--r); padding:.65rem 1.4rem; font-size:.9rem; font-weight:700; cursor:pointer; transition:background .15s; font-family:var(--font); }
.search-submit:hover { background:#6d28d9; }

/* ================================================================
   GENERIC PAGE CONTENT
================================================================ */
.page-content-wrap { max-width:820px; padding-top:3.5rem; padding-bottom:3.5rem; }
.page-content p { margin-bottom:1.25rem; color:var(--text-2); font-size:.9375rem; line-height:1.85; }
.page-content h2,.page-content h3 { color:var(--text); font-weight:900; letter-spacing:-.03em; margin:2rem 0 .75rem; }
.page-content a { color:#A78BFA; text-decoration:underline; }
.page-content ul,.page-content ol { margin:0 0 1.25rem 1.5rem; color:var(--text-2); font-size:.9375rem; }
.page-content li { margin-bottom:.4rem; }

/* ================================================================
   SERVICES PAGE CSS (from services.html <style> block)
================================================================ */
.au-1{animation:fade-up .6s .05s both;}.au-2{animation:fade-up .6s .12s both;}.au-3{animation:fade-up .6s .19s both;}.au-4{animation:fade-up .6s .26s both;}.au-5{animation:fade-up .6s .33s both;}.au-6{animation:fade-up .6s .40s both;}

/* Banner */
.srv-banner{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 4.5rem) 0 5rem;}
.srv-banner::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;}
.srv-banner::after{content:'';position:absolute;top:-10%;right:-5%;width:600px;height:600px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.16) 0%,transparent 65%);}
.srv-banner__inner{position:relative;z-index:2;}
.srv-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-3);margin-bottom:1.5rem;}
.srv-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.srv-breadcrumb a:hover{color:var(--text-2);}
.srv-breadcrumb-sep{color:var(--text-4);}
.srv-banner__title{font-size:clamp(2rem,4.5vw,3.75rem);font-weight:900;letter-spacing:-.04em;line-height:1.06;color:var(--text);margin-bottom:1.1rem;}
.srv-banner__lead{font-size:clamp(.9375rem,1.8vw,1.0625rem);line-height:1.8;color:var(--text-3);max-width:640px;}
.srv-banner__badges{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.75rem;}
.srv-banner__badge{display:inline-flex;align-items:center;gap:.45rem;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-pill);padding:.38rem .9rem;font-size:.78rem;font-weight:600;color:var(--text-2);}
.srv-banner__badge svg{width:14px;height:14px;color:#A78BFA;flex-shrink:0;}

/* Sticky service nav */
.srv-nav-sticky{position:sticky;top:var(--nav-h,72px);z-index:90;background:rgba(12,18,40,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:.1rem 0;}
.srv-nav-inner{display:flex;gap:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
.srv-nav-inner::-webkit-scrollbar{display:none;}
.srv-nav-link{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.1rem;white-space:nowrap;flex-shrink:0;font-size:.8125rem;font-weight:700;color:var(--text-3);text-decoration:none;border-bottom:2px solid transparent;transition:color .2s,border-color .2s,background .2s;}
.srv-nav-link:hover{color:var(--text);background:rgba(255,255,255,.04);}
.srv-nav-link.active{color:#A78BFA;border-bottom-color:#7C3AED;}
.srv-nav-link svg{width:14px;height:14px;flex-shrink:0;}

/* Service section */
.srv-section{padding:5.5rem 0;border-bottom:1px solid var(--border);}
.srv-section:last-of-type{border-bottom:none;}
@media(min-width:768px){.srv-section{padding:7rem 0;}}
.tag-shopify{color:#96BF48;background:rgba(150,191,72,.10);border-color:rgba(150,191,72,.25);}
.tag-next   {color:#fff;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.20);}
.tag-react  {color:#61DAFB;background:rgba(97,218,251,.10);border-color:rgba(97,218,251,.25);}
.tag-node   {color:#339933;background:rgba(51,153,51,.10);border-color:rgba(51,153,51,.25);}
.tag-wp     {color:#21759B;background:rgba(33,117,155,.10);border-color:rgba(33,117,155,.25);}
.tag-flutter{color:#02569B;background:rgba(2,86,155,.10);border-color:rgba(2,86,155,.25);}
.srv-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;border:1.5px solid var(--border-2);font-size:.72rem;font-weight:900;color:var(--text-3);margin-bottom:1rem;letter-spacing:.04em;}
.srv-title{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;color:var(--text);margin-bottom:1rem;}
.srv-lead{font-size:1rem;line-height:1.8;color:var(--text-3);max-width:560px;margin-bottom:2rem;}

/* Feature list */
.feat-list{display:flex;flex-direction:column;gap:.85rem;margin-bottom:2rem;}
.feat-row{display:flex;align-items:flex-start;gap:.85rem;}
.feat-icon{width:24px;height:24px;border-radius:50%;background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.25);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:.1rem;}
.feat-icon svg{width:12px;height:12px;color:#A78BFA;}
.feat-text{font-size:.875rem;color:var(--text-3);line-height:1.75;}
.feat-text strong{color:var(--text-2);font-weight:700;}

/* Tech pills */
.tech-pills{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:2rem;}
.tech-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .75rem;background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-pill);font-size:.75rem;font-weight:600;color:var(--text-2);transition:border-color .2s,color .2s;}
.tech-pill:hover{border-color:rgba(124,58,237,.35);color:#A78BFA;}
.tech-pill img{width:14px;height:14px;object-fit:contain;}

/* Deliverable chips */
.deliv-wrap{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:2rem;}
.deliv-chip{display:inline-flex;align-items:center;gap:.35rem;padding:.28rem .7rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);font-size:.72rem;font-weight:700;color:var(--text-3);}
.deliv-chip svg{width:11px;height:11px;color:#10B981;}

/* Stats row */
.srv-stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;margin-bottom:2rem;}
@media(min-width:480px){.srv-stats-row{grid-template-columns:repeat(4,1fr);}}
.srv-stat-cell{background:var(--surface);padding:1.1rem .75rem;text-align:center;}
.srv-stat-val{font-size:1.35rem;font-weight:900;color:var(--text);letter-spacing:-.04em;line-height:1;}
.srv-stat-lbl{font-size:.65rem;font-weight:600;color:var(--text-3);margin-top:.25rem;text-transform:uppercase;letter-spacing:.05em;}

/* Screenshot visual */
.srv-visual{position:relative;border-radius:var(--r-2xl);overflow:hidden;background:var(--surface-2);border:1px solid var(--border-2);}
.srv-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.srv-visual:hover img{transform:scale(1.03);}
.srv-visual-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,9,26,.7) 0%,transparent 55%);}
.srv-visual-badge{position:absolute;bottom:1rem;left:1rem;display:inline-flex;align-items:center;gap:.5rem;background:rgba(255,255,255,.1);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.15);border-radius:var(--r-pill);padding:.4rem 1rem;font-size:.78rem;font-weight:700;color:#fff;}
.srv-screenshots{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin-top:1rem;}
.srv-screenshot{border-radius:var(--r-md);overflow:hidden;background:var(--surface-2);border:1px solid var(--border);aspect-ratio:16/10;cursor:zoom-in;}
.srv-screenshot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.srv-screenshot:hover img{transform:scale(1.05);}

/* Pricing card */
.pricing-card{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-2xl);padding:1.75rem;position:relative;overflow:hidden;}
.pricing-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,transparent);}
.pricing-price{font-size:2rem;font-weight:900;color:var(--text);letter-spacing:-.04em;line-height:1;margin-bottom:.3rem;}
.pricing-note{font-size:.78rem;color:var(--text-3);margin-bottom:1.25rem;}
.pricing-row{display:flex;justify-content:space-between;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border);font-size:.8125rem;}
.pricing-row:last-child{border-bottom:none;}
.pricing-row-key{color:var(--text-3);}
.pricing-row-val{color:var(--text);font-weight:700;}

/* Process mini steps */
.mini-proc{display:grid;grid-template-columns:1fr;gap:1rem;}
@media(min-width:640px){.mini-proc{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.mini-proc{grid-template-columns:repeat(4,1fr);}}
.mini-step{display:flex;gap:.85rem;align-items:flex-start;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.25rem 1rem;transition:border-color .25s;}
.mini-step:hover{border-color:rgba(124,58,237,.30);}
.mini-step__num{width:32px;height:32px;border-radius:50%;background:rgba(124,58,237,.12);border:1.5px solid rgba(124,58,237,.25);display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:900;color:#A78BFA;flex-shrink:0;}
.mini-step__title{font-size:.875rem;font-weight:800;color:var(--text);margin-bottom:.2rem;}
.mini-step__desc{font-size:.78rem;color:var(--text-3);line-height:1.65;}

/* Comparison table */
.cmp-table{width:100%;border-collapse:separate;border-spacing:0;}
.cmp-table th,.cmp-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.8125rem;font-family:var(--font,sans-serif);}
.cmp-table th{background:var(--surface-2);color:var(--text);font-weight:800;text-align:center;}
.cmp-table th:first-child{text-align:left;}
.cmp-table td{color:var(--text-3);background:var(--surface);}
.cmp-table td:first-child{color:var(--text-2);font-weight:600;}
.cmp-table td:not(:first-child){text-align:center;}
.cmp-table tr:last-child td{border-bottom:none;}
.cmp-yes{color:#10B981;font-size:1.1rem;}
.cmp-no{color:var(--text-4);font-size:1.1rem;}

/* FAQ accordion */
.faq-list{display:flex;flex-direction:column;gap:.5rem;}
.faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;transition:border-color .2s;}
.faq-item.open{border-color:rgba(124,58,237,.30);}
.faq-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem;background:transparent;border:none;cursor:pointer;text-align:left;}
.faq-q{font-size:.9375rem;font-weight:700;color:var(--text);font-family:var(--font,sans-serif);line-height:1.4;}
.faq-icon{width:28px;height:28px;border-radius:50%;flex-shrink:0;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.20);display:flex;align-items:center;justify-content:center;transition:background .2s;}
.faq-icon svg{width:14px;height:14px;color:#A78BFA;transition:transform .3s;}
.faq-item.open .faq-icon{background:rgba(124,58,237,.20);}
.faq-item.open .faq-icon svg{transform:rotate(45deg);}
.faq-body{padding:0 1.25rem;max-height:0;overflow:hidden;transition:max-height .35s ease,padding .25s ease;}
.faq-item.open .faq-body{max-height:400px;padding-bottom:1.25rem;}
.faq-body p{font-size:.875rem;color:var(--text-3);line-height:1.8;margin:0;}

/* Lead form section */
.lead-form-section{background:linear-gradient(135deg,#0A0520 0%,#130830 50%,#0C1228 100%);position:relative;overflow:hidden;padding:6rem 0;}
.lead-form-section::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:700px;height:500px;background:radial-gradient(ellipse,rgba(124,58,237,.18) 0%,transparent 65%);pointer-events:none;}
.lead-form-inner{position:relative;z-index:2;}
.lead-form-card{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6);}
.lead-form-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,#7C3AED,#A78BFA,#06B6D4);}
.lead-form-body{padding:2rem 2rem 2.5rem;}
@media(min-width:768px){.lead-form-body{padding:2.5rem 3rem 3rem;}}
.f-group{margin-bottom:1.1rem;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media(max-width:600px){.f-row{grid-template-columns:1fr;}}
.f-label{display:block;font-size:.78rem;font-weight:700;color:var(--text-2);margin-bottom:.45rem;font-family:var(--font,sans-serif);}
.f-label .req{color:#A78BFA;margin-left:.2rem;}
.f-input,.f-select,.f-textarea{width:100%;padding:.7rem 1rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r);color:var(--text);font-family:var(--font,sans-serif);font-size:.875rem;outline:none;transition:border-color .2s,box-shadow .2s;}
.f-input::placeholder,.f-textarea::placeholder{color:var(--text-4);}
.f-input:focus,.f-select:focus,.f-textarea:focus{border-color:#7C3AED;box-shadow:0 0 0 3px rgba(124,58,237,.15);}
.f-select{cursor:pointer;appearance:none;}
.f-select option{background:var(--surface-2);color:var(--text);}
.f-textarea{resize:vertical;min-height:110px;}
.svc-checks{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;}
@media(min-width:640px){.svc-checks{grid-template-columns:repeat(3,1fr);}}
.svc-check-label{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r);font-size:.78rem;font-weight:600;color:var(--text-3);cursor:pointer;transition:border-color .15s,background .15s,color .15s;user-select:none;}
.svc-check-label:hover{border-color:rgba(124,58,237,.35);color:var(--text-2);}
.svc-check-label.checked{border-color:#7C3AED;background:rgba(124,58,237,.10);color:#A78BFA;}
.svc-check-label input{width:14px;height:14px;accent-color:#7C3AED;flex-shrink:0;}
.f-submit{width:100%;padding:.9rem 2rem;border:none;border-radius:var(--r);background:linear-gradient(135deg,#7C3AED,#9333EA);color:#fff;font-family:var(--font,sans-serif);font-size:1rem;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.6rem;box-shadow:0 6px 24px rgba(124,58,237,.4);transition:transform .2s,box-shadow .2s;margin-top:1.5rem;}
.f-submit:hover{transform:translateY(-2px);box-shadow:0 10px 32px rgba(124,58,237,.55);}
.f-submit svg{width:18px;height:18px;}
.form-trust{display:flex;flex-wrap:wrap;gap:1.25rem;margin-top:1.25rem;justify-content:center;}
.form-trust-item{display:flex;align-items:center;gap:.4rem;font-size:.75rem;font-weight:600;color:var(--text-4);}
.form-trust-item svg{width:13px;height:13px;color:#10B981;}
.f-success{display:none;text-align:center;padding:2.5rem 1rem;}
.f-success.show{display:block;}
.f-success-icon{width:64px;height:64px;border-radius:50%;background:rgba(16,185,129,.12);border:2px solid rgba(16,185,129,.30);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;}
.f-success-icon svg{width:28px;height:28px;color:#10B981;}

/* CTA strip */
.srv-cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#0A0520,#130830,#0C1228);padding:6rem 0;text-align:center;}
.srv-cta::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:400px;background:radial-gradient(ellipse,rgba(124,58,237,.2) 0%,transparent 65%);pointer-events:none;}
.srv-cta__inner{position:relative;z-index:2;max-width:640px;margin:0 auto;padding:0 1.25rem;}

/* lead-sm helper */
.lead-sm{font-size:.9375rem;color:var(--text-3);line-height:1.8;}
.tag__dot{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block;}
.tag-cyan{color:var(--cyan,#06B6D4);background:rgba(6,182,212,.10);border-color:rgba(6,182,212,.25);}

/* ================================================================
   PORTFOLIO ARCHIVE — from portfolio.html
================================================================ */
@keyframes pulse-green{0%,100%{box-shadow:0 0 0 3px rgba(16,185,129,.20);}50%{box-shadow:0 0 0 7px rgba(16,185,129,.06);}}

/* Banner */
.pf-banner{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 4.5rem) 0 5rem;}
.pf-banner::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;}
.pf-banner::after{content:'';position:absolute;top:-10%;right:-5%;width:560px;height:560px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.15) 0%,transparent 65%);}
.pf-banner__inner{position:relative;z-index:2;}
.pf-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-3);margin-bottom:1.5rem;}
.pf-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.pf-breadcrumb a:hover{color:var(--text-2);}
.pf-breadcrumb span{color:var(--text-4);}
.pf-banner__title{font-size:clamp(2rem,4.5vw,3.75rem);font-weight:900;letter-spacing:-.045em;line-height:1.06;color:var(--text);margin-bottom:1.1rem;}
.pf-grad{background:linear-gradient(135deg,#C4B5FD,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.pf-banner__lead{font-size:clamp(.9375rem,1.8vw,1.0625rem);line-height:1.8;color:var(--text-3);max-width:620px;margin-bottom:2rem;}
.pf-banner__lead strong{color:var(--text-2);}
.pf-banner__stats{display:flex;flex-wrap:wrap;gap:.65rem;}
.pf-stat-pill{display:inline-flex;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border-2);border-radius:999px;padding:.4rem 1rem;font-size:.78rem;font-weight:700;color:var(--text-2);}
.pf-stat-pill svg{width:13px;height:13px;color:#A78BFA;flex-shrink:0;}

/* Sticky filter bar */
.pf-filter-bar{position:sticky;top:var(--nav-h,72px);z-index:90;background:rgba(12,18,40,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:.6rem 0;}
.pf-filter-inner{display:flex;align-items:center;gap:.5rem;overflow-x:auto;scrollbar-width:none;}
.pf-filter-inner::-webkit-scrollbar{display:none;}
.pf-filter-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem 1rem;border-radius:999px;flex-shrink:0;font-size:.8rem;font-weight:700;cursor:pointer;border:1.5px solid var(--border-2);background:transparent;color:var(--text-3);transition:all .2s;white-space:nowrap;}
.pf-filter-btn:hover{border-color:rgba(124,58,237,.4);color:var(--text-2);}
.pf-filter-btn.active{background:rgba(124,58,237,.14);border-color:#7C3AED;color:#A78BFA;}
.pf-filter-btn svg{width:13px;height:13px;}
.pf-count{margin-left:auto;flex-shrink:0;font-size:.75rem;font-weight:600;color:var(--text-4);white-space:nowrap;padding-right:.25rem;}
.pf-count span{color:#A78BFA;font-weight:800;}

/* Portfolio grid */
.pf-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media(min-width:640px){.pf-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.pf-grid{grid-template-columns:repeat(3,1fr);}}
.pf-card--featured{grid-column:1 / -1;}
@media(min-width:1024px){.pf-card--featured{grid-column:span 2;}}

/* Card */
.pf-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2xl);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color .3s,transform .3s,box-shadow .3s;position:relative;}
.pf-card:hover{border-color:rgba(124,58,237,.35);transform:translateY(-5px);box-shadow:0 16px 48px rgba(0,0,0,.4);color:inherit;text-decoration:none;}
.pf-card__thumb{position:relative;overflow:hidden;background:var(--surface-2);}
.pf-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.16,1,.3,1);}
.pf-card:hover .pf-card__thumb img{transform:scale(1.06);}
.pf-card--featured .pf-card__thumb{aspect-ratio:16/8;}
.pf-card:not(.pf-card--featured) .pf-card__thumb{aspect-ratio:16/10;}
.pf-card__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,9,26,.80) 0%,transparent 55%);opacity:0;transition:opacity .3s;}
.pf-card:hover .pf-card__overlay{opacity:1;}
.pf-card__cat{position:absolute;top:1rem;left:1rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#A78BFA;background:rgba(124,58,237,.15);border:1px solid rgba(124,58,237,.32);border-radius:999px;padding:.22rem .7rem;backdrop-filter:blur(6px);text-decoration:none;}
.pf-card__featured-badge{position:absolute;top:1rem;right:1rem;display:inline-flex;align-items:center;gap:.35rem;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#F59E0B;background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.30);border-radius:999px;padding:.22rem .7rem;backdrop-filter:blur(6px);}
.pf-card__featured-badge svg{width:11px;height:11px;}
.pf-card__view-btn{position:absolute;bottom:1.25rem;right:1.25rem;display:inline-flex;align-items:center;gap:.4rem;background:rgba(124,58,237,.85);backdrop-filter:blur(8px);border:none;border-radius:var(--r-pill);padding:.45rem 1rem;font-size:.75rem;font-weight:700;color:#fff;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s;pointer-events:none;text-decoration:none;}
.pf-card:hover .pf-card__view-btn{opacity:1;transform:translateY(0);pointer-events:all;}
.pf-card__view-btn svg{width:13px;height:13px;}
.pf-card__body{padding:1.5rem;flex:1;display:flex;flex-direction:column;}
.pf-card--featured .pf-card__body{padding:1.75rem 2rem;}
.pf-card__title{font-size:1rem;font-weight:800;color:var(--text);letter-spacing:-.025em;margin-bottom:.45rem;transition:color .2s;line-height:1.35;}
.pf-card--featured .pf-card__title{font-size:1.1875rem;}
.pf-card:hover .pf-card__title{color:#A78BFA;}
.pf-card__desc{font-size:.8125rem;color:var(--text-3);line-height:1.75;flex:1;margin-bottom:1rem;}
.pf-card__stack{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem;}
.pf-stack-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.65rem;font-weight:700;padding:.18rem .55rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-3);}
.pf-stack-chip img{width:11px;height:11px;object-fit:contain;}
.pf-card__metrics{display:flex;gap:1.25rem;flex-wrap:wrap;padding-top:.9rem;border-top:1px solid var(--border);}
.pf-metric-val{font-size:1rem;font-weight:900;color:var(--text);letter-spacing:-.03em;line-height:1;}
.pf-metric-lbl{font-size:.62rem;font-weight:600;color:var(--text-3);margin-top:.2rem;}

/* Case study strip */
.cs-strip{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-2xl);padding:2.5rem;margin-top:3rem;position:relative;overflow:hidden;}
.cs-strip::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,#A78BFA,transparent);}
.cs-strip__grid{display:grid;grid-template-columns:1fr;gap:2rem;align-items:center;}
@media(min-width:768px){.cs-strip__grid{grid-template-columns:1fr auto;gap:3rem;}}
.cs-strip__kpis{display:flex;flex-wrap:wrap;gap:2.5rem;}
.cs-kpi__val{font-size:2rem;font-weight:900;letter-spacing:-.05em;line-height:1;color:var(--text);background:linear-gradient(135deg,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.cs-kpi__lbl{font-size:.72rem;font-weight:600;color:var(--text-3);margin-top:.3rem;}

/* Testimonial row */
.pf-testi-row{display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media(min-width:768px){.pf-testi-row{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1100px){.pf-testi-row{grid-template-columns:repeat(3,1fr);}}
.pf-testi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.75rem;display:flex;flex-direction:column;gap:.85rem;transition:border-color .3s,transform .3s;}
.pf-testi:hover{border-color:rgba(124,58,237,.25);transform:translateY(-3px);}
.pf-testi__stars{display:flex;gap:.2rem;}
.pf-testi__stars svg{width:13px;height:13px;color:#F59E0B;}
.pf-testi__text{font-size:.875rem;line-height:1.8;color:var(--text-2);font-style:italic;flex:1;}
.pf-testi__text::before{content:'\201C';color:#7C3AED;font-style:normal;font-size:1.15rem;}
.pf-testi__text::after{content:'\201D';color:#7C3AED;font-style:normal;font-size:1.15rem;}
.pf-testi__foot{display:flex;align-items:center;gap:.75rem;padding-top:.85rem;border-top:1px solid var(--border);}
.pf-testi__av{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:800;color:#fff;flex-shrink:0;}
.pf-testi__name{font-size:.84rem;font-weight:800;color:var(--text);}
.pf-testi__role{font-size:.72rem;color:var(--text-3);}
.pf-testi__tag{margin-left:auto;font-size:.62rem;font-weight:700;padding:.18rem .55rem;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.22);border-radius:999px;color:#A78BFA;flex-shrink:0;}

/* Process strip */
.pf-proc-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
@media(min-width:640px){.pf-proc-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.pf-proc-grid{grid-template-columns:repeat(4,1fr);}}
.pf-proc-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.5rem;transition:border-color .25s,transform .25s;}
.pf-proc-card:hover{border-color:rgba(124,58,237,.28);transform:translateY(-3px);}
.pf-proc-num{font-size:2rem;font-weight:900;letter-spacing:-.06em;line-height:1;background:linear-gradient(135deg,rgba(124,58,237,.6),rgba(124,58,237,.15));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.75rem;}
.pf-proc-title{font-size:.9375rem;font-weight:800;color:var(--text);margin-bottom:.4rem;}
.pf-proc-desc{font-size:.8125rem;color:var(--text-3);line-height:1.7;}

/* Portfolio CTA */
.pf-cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#0A0520,#130830,#0C1228);padding:6rem 0;text-align:center;}
.pf-cta::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:400px;background:radial-gradient(ellipse,rgba(124,58,237,.20) 0%,transparent 65%);pointer-events:none;}
.pf-cta__inner{position:relative;z-index:2;max-width:640px;margin:0 auto;padding:0 1.25rem;}

/* Section tag helpers */
.pf-sec-tag{display:inline-flex;align-items:center;gap:.5rem;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.25);border-radius:999px;padding:.3rem .85rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#A78BFA;margin-bottom:.85rem;}
.pf-sec-tag-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.pf-sec-tag--green{color:#10B981;background:rgba(16,185,129,.10);border-color:rgba(16,185,129,.25);}
.pf-sec-tag--orange{color:var(--orange,#F97316);background:rgba(249,115,22,.10);border-color:rgba(249,115,22,.25);}

/* Prev/Next portfolio nav */
.pf-prev-next{background:var(--surface);border-top:1px solid var(--border);padding:1.5rem 0;}
.pf-prev-next__inner{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;}
.pf-prev-next__link{display:flex;flex-direction:column;gap:.2rem;text-decoration:none;transition:color .2s;}
.pf-prev-next__link span{font-size:.72rem;font-weight:700;color:var(--text-4);text-transform:uppercase;letter-spacing:.08em;}
.pf-prev-next__link strong{font-size:.875rem;font-weight:800;color:var(--text-2);transition:color .2s;}
.pf-prev-next__link:hover strong{color:#A78BFA;}
.pf-prev-next__link--next{text-align:right;}
.pf-prev-next__all{font-size:.78rem;font-weight:700;color:var(--text-3);text-decoration:none;text-align:center;padding:.5rem .85rem;border:1px solid var(--border-2);border-radius:999px;transition:all .2s;white-space:nowrap;}
.pf-prev-next__all:hover{border-color:#7C3AED;color:#A78BFA;}

/* ================================================================
   PORTFOLIO DETAIL PAGE — from portfolio-detail.html
================================================================ */
.pd-prog{position:fixed;top:0;left:0;z-index:1100;height:3px;width:0;background:linear-gradient(90deg,#7C3AED,#A78BFA,#06B6D4);transition:width .08s linear;box-shadow:0 0 8px rgba(124,58,237,.5);pointer-events:none;}
.pd-page{background:var(--bg);padding-top:calc(var(--nav-h,72px) + 2.5rem);padding-bottom:4rem;}
.pd-crumb{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.75rem;color:var(--text-3);margin-bottom:1.5rem;}
.pd-crumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.pd-crumb a:hover{color:#A78BFA;}
.pd-crumb svg{width:12px;height:12px;color:var(--text-4);flex-shrink:0;}
.pd-cat-badge{display:inline-flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-bottom:.85rem;}
.pd-cat{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#A78BFA;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.22);border-radius:999px;padding:.27rem .78rem;}
.pd-cat-green{color:#10B981;background:rgba(16,185,129,.10);border-color:rgba(16,185,129,.25);}
.pd-cat-orange{color:#F97316;background:rgba(249,115,22,.10);border-color:rgba(249,115,22,.22);}
.pd-title{font-size:clamp(1.625rem,3.8vw,2.625rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;color:var(--text);margin-bottom:1rem;}
.pd-title-grad{background:linear-gradient(135deg,#C4B5FD,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.pd-meta-bar{display:flex;align-items:center;gap:.6rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:.85rem 0 1rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:1.75rem;}
.pd-meta-bar::-webkit-scrollbar{display:none;}
.pd-dot{width:3px;height:3px;border-radius:50%;background:var(--text-4);flex-shrink:0;}
.pd-meta-item{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--text-3);white-space:nowrap;flex-shrink:0;}
.pd-meta-item svg{width:13px;height:13px;color:#A78BFA;flex-shrink:0;}
.pd-meta-item strong{color:var(--text-2);font-weight:700;}
.pd-meta-live{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:700;color:#10B981;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.22);border-radius:999px;padding:.22rem .7rem;flex-shrink:0;}
.pd-meta-live span{width:6px;height:6px;border-radius:50%;background:#10B981;flex-shrink:0;}
.pd-share-grp{display:flex;gap:.35rem;margin-left:auto;flex-shrink:0;}
.pd-share-btn{width:30px;height:30px;border-radius:var(--r-sm,6px);background:var(--surface);border:1px solid var(--border-2);display:flex;align-items:center;justify-content:center;color:var(--text-3);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s;}
.pd-share-btn:hover{background:rgba(124,58,237,.12);border-color:rgba(124,58,237,.3);color:#A78BFA;}
.pd-share-btn svg{width:12px;height:12px;}
@media(max-width:767px){.pd-share-grp{display:none;}}
.pd-cover{width:100%;aspect-ratio:16/9;border-radius:var(--r-2xl);overflow:hidden;background:var(--surface-2);border:1px solid var(--border);margin-bottom:2.25rem;position:relative;}
.pd-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.pd-cover-cap{position:absolute;bottom:.65rem;right:.75rem;font-size:.63rem;color:rgba(255,255,255,.6);background:rgba(0,0,0,.5);backdrop-filter:blur(6px);border-radius:4px;padding:.2rem .55rem;pointer-events:none;}

/* Prose */
.pd-prose h2{font-size:1.3rem;font-weight:900;letter-spacing:-.03em;color:var(--text);margin:2.5rem 0 .8rem;padding-top:2.5rem;border-top:1px solid var(--border);scroll-margin-top:calc(var(--nav-h,72px) + 1rem);}
.pd-prose h2:first-of-type{margin-top:0;padding-top:0;border-top:none;}
.pd-prose h3{font-size:1rem;font-weight:800;color:var(--text);letter-spacing:-.02em;margin:1.75rem 0 .55rem;}
.pd-prose p{font-size:.9375rem;line-height:1.9;color:var(--text-3);margin-bottom:1.1rem;}
.pd-prose p:last-child{margin-bottom:0;}
.pd-prose strong{color:var(--text-2);font-weight:700;}
.pd-prose a{color:#A78BFA;font-weight:600;text-decoration:underline;text-underline-offset:3px;}

/* Callout */
.pd-callout{border-radius:0 var(--r,8px) var(--r,8px) 0;padding:1rem 1.2rem;margin:1.4rem 0;font-size:.9rem;line-height:1.8;}
.pd-callout--violet{background:rgba(124,58,237,.08);border-left:3px solid #7C3AED;color:var(--text-2);}
.pd-callout--green{background:rgba(16,185,129,.08);border-left:3px solid #10B981;color:var(--text-2);}
.pd-callout strong{color:var(--text);}

/* Check list */
.pd-checks{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0 1.4rem;}
.pd-check{display:flex;align-items:flex-start;gap:.7rem;}
.pd-check-i{width:19px;height:19px;border-radius:50%;flex-shrink:0;margin-top:.16rem;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.22);display:flex;align-items:center;justify-content:center;}
.pd-check-i svg{width:9px;height:9px;color:#10B981;}
.pd-check p{font-size:.875rem;color:var(--text-3);line-height:1.75;margin:0;}
.pd-check strong{color:var(--text-2);}

/* Gallery */
.pd-gallery{display:grid;gap:.75rem;margin:1.5rem 0;grid-template-columns:1fr;}
@media(min-width:480px){.pd-gallery{grid-template-columns:repeat(2,1fr);}}
.pd-gallery-item{aspect-ratio:16/10;border-radius:var(--r-xl);overflow:hidden;background:var(--surface-2);border:1px solid var(--border);cursor:zoom-in;position:relative;}
.pd-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s cubic-bezier(.16,1,.3,1);}
.pd-gallery-item:hover img{transform:scale(1.06);}
.pd-gallery-item::after{content:attr(data-label);position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(5,9,26,.85),transparent);color:rgba(255,255,255,.8);font-size:.68rem;font-weight:600;padding:.5rem .65rem;opacity:0;transition:opacity .25s;}
.pd-gallery-item:hover::after{opacity:1;}
.pd-gallery--hero{grid-template-columns:1fr;}
.pd-gallery--hero .pd-gallery-item{aspect-ratio:16/9;}

/* Video */
.pd-video-wrap{position:relative;width:100%;aspect-ratio:16/9;border-radius:var(--r-2xl);overflow:hidden;background:var(--surface-2);border:1px solid var(--border);margin:1.5rem 0;}
.pd-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.pd-video-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;background:var(--surface-2);cursor:pointer;}
.pd-video-placeholder img{width:100%;height:100%;object-fit:cover;opacity:.4;position:absolute;inset:0;}
.pd-play-btn{position:relative;z-index:1;width:70px;height:70px;border-radius:50%;background:rgba(124,58,237,.85);border:3px solid rgba(255,255,255,.25);display:flex;align-items:center;justify-content:center;transition:transform .2s,background .2s;box-shadow:0 8px 32px rgba(124,58,237,.5);}
.pd-video-placeholder:hover .pd-play-btn{transform:scale(1.1);background:#7C3AED;}
.pd-play-btn svg{width:28px;height:28px;color:#fff;margin-left:4px;}
.pd-video-label{position:relative;z-index:1;font-size:.8rem;font-weight:700;color:rgba(255,255,255,.75);text-align:center;}

/* Tech grid */
.pd-tech-grid{display:flex;flex-wrap:wrap;gap:.45rem;margin:1rem 0 1.5rem;}
.pd-tech-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.32rem .85rem;background:var(--surface);border:1px solid var(--border-2);border-radius:999px;font-size:.775rem;font-weight:600;color:var(--text-2);transition:border-color .2s,color .2s;}
.pd-tech-pill:hover{border-color:rgba(124,58,237,.35);color:#A78BFA;}
.pd-tech-pill img{width:14px;height:14px;object-fit:contain;}

/* Results grid */
.pd-results{display:grid;grid-template-columns:repeat(2,1fr);gap:.75rem;margin:1.25rem 0;}
@media(min-width:640px){.pd-results{grid-template-columns:repeat(3,1fr);}}
.pd-result{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.25rem 1rem;text-align:center;transition:border-color .25s,transform .25s;}
.pd-result:hover{border-color:rgba(124,58,237,.28);transform:translateY(-2px);}
.pd-result-val{font-size:1.75rem;font-weight:900;letter-spacing:-.05em;line-height:1;background:linear-gradient(135deg,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.3rem;}
.pd-result-lbl{font-size:.72rem;font-weight:700;color:var(--text);margin-bottom:.2rem;}
.pd-result-sub{font-size:.65rem;color:var(--text-3);}

/* Before/After table */
.pd-table-wrap{overflow-x:auto;margin:1.4rem 0;border-radius:var(--r-xl);border:1px solid var(--border);}
.pd-table{width:100%;border-collapse:separate;border-spacing:0;min-width:420px;}
.pd-table th,.pd-table td{padding:.65rem 1rem;font-size:.8rem;border-bottom:1px solid var(--border);font-family:var(--font,sans-serif);}
.pd-table th{background:var(--surface-2);font-weight:800;color:var(--text);text-align:left;}
.pd-table td{background:var(--surface);color:var(--text-3);}
.pd-table td:first-child{color:var(--text-2);font-weight:700;}
.pd-table tr:last-child td{border-bottom:none;}
.t-good{color:#10B981;font-weight:700;} .t-bad{color:#EF4444;} .t-mid{color:#F59E0B;}

/* Timeline */
.pd-timeline{position:relative;padding-left:2rem;}
.pd-timeline::before{content:'';position:absolute;left:-3px;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,#7C3AED,rgba(124,58,237,.2),transparent);border-radius:2px;}
.pd-tl-item{position:relative;padding-bottom:1.75rem;}
.pd-tl-item:last-child{padding-bottom:0;}
.pd-tl-dot{position:absolute;left:-2.55rem;top:4px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2.5px solid rgba(124,58,237,.45);z-index:1;transition:border-color .2s,background .2s;}
.pd-tl-item:hover .pd-tl-dot{border-color:#7C3AED;background:#7C3AED;}
.pd-tl-phase{font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#A78BFA;margin-bottom:.2rem;}
.pd-tl-title{font-size:.9375rem;font-weight:800;color:var(--text);margin-bottom:.35rem;}
.pd-tl-desc{font-size:.8125rem;color:var(--text-3);line-height:1.7;}

/* Client quote */
.pd-quote{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-2xl);padding:1.75rem;position:relative;overflow:hidden;margin-top:2.5rem;}
.pd-quote::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,transparent);}
.pd-quote-mark{font-size:3.5rem;line-height:1;color:rgba(124,58,237,.25);font-family:Georgia,serif;position:absolute;top:1rem;right:1.5rem;pointer-events:none;user-select:none;}
.pd-quote-text{font-size:.9375rem;line-height:1.85;color:var(--text-2);font-style:italic;margin-bottom:1.25rem;position:relative;z-index:1;}
.pd-quote-footer{display:flex;align-items:center;gap:.85rem;border-top:1px solid var(--border);padding-top:1rem;}
.pd-quote-av{width:42px;height:42px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#7C3AED,#6366F1);display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:900;color:#fff;}
.pd-quote-name{font-size:.9rem;font-weight:800;color:var(--text);}
.pd-quote-role{font-size:.72rem;color:var(--text-3);}
.pd-quote-badge{margin-left:auto;font-size:.62rem;font-weight:700;padding:.2rem .6rem;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.22);border-radius:999px;color:#A78BFA;flex-shrink:0;}

/* Sidebar */
.pd-sidebar{position:sticky;top:calc(var(--nav-h,72px) + 1.25rem);}
@media(max-width:991px){.pd-sidebar{position:relative;top:0;margin-top:2.5rem;}}
.pd-sb-card{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-xl);padding:1.25rem 1.35rem;margin-bottom:1rem;overflow:hidden;}
.pd-sb-card:last-child{margin-bottom:0;}
.pd-sb-card--cta{background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(124,58,237,.05));border-color:rgba(124,58,237,.25);position:relative;}
.pd-sb-card--cta::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,transparent);}
.pd-sb-title{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:var(--text-4);margin-bottom:.8rem;}
.pd-sb-kpi-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r,8px);overflow:hidden;margin-bottom:0;}
.pd-sb-kpi{background:var(--surface-2);padding:.8rem .6rem;text-align:center;}
.pd-sb-kpi-val{font-size:1.1rem;font-weight:900;color:var(--text);letter-spacing:-.04em;line-height:1;}
.pd-sb-kpi-lbl{font-size:.58rem;font-weight:600;color:var(--text-3);margin-top:.2rem;line-height:1.3;}
.pd-sb-row{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.8rem;}
.pd-sb-row:last-child{border-bottom:none;}
.pd-sb-row-k{color:var(--text-3);flex-shrink:0;}
.pd-sb-row-v{color:var(--text-2);font-weight:700;text-align:right;}
.pd-sb-chips{display:flex;flex-wrap:wrap;gap:.35rem;}
.pd-sb-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.67rem;font-weight:700;padding:.2rem .6rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-3);}
.pd-sb-chip img{width:11px;height:11px;object-fit:contain;}

/* Related cards */
.pd-related{display:grid;grid-template-columns:1fr;gap:1.1rem;}
@media(min-width:480px){.pd-related{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.pd-related{grid-template-columns:repeat(3,1fr);}}
.pd-rel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:border-color .3s,transform .3s;}
.pd-rel-card:hover{border-color:rgba(124,58,237,.28);transform:translateY(-4px);color:inherit;}
.pd-rel-thumb{aspect-ratio:16/9;overflow:hidden;background:var(--surface-2);}
.pd-rel-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.pd-rel-card:hover .pd-rel-thumb img{transform:scale(1.06);}
.pd-rel-body{padding:.9rem 1.1rem;flex:1;}
.pd-rel-cat{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#A78BFA;margin-bottom:.3rem;}
.pd-rel-title{font-size:.875rem;font-weight:800;color:var(--text);line-height:1.4;letter-spacing:-.02em;transition:color .2s;}
.pd-rel-card:hover .pd-rel-title{color:#A78BFA;}
.pd-rel-meta{font-size:.67rem;color:var(--text-3);margin-top:.4rem;}

/* Lightbox */
.pd-lightbox{display:none;position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.92);align-items:center;justify-content:center;padding:1.5rem;}
.pd-lightbox.open{display:flex;}
.pd-lightbox img{max-width:100%;max-height:90vh;border-radius:var(--r-xl);box-shadow:0 24px 80px rgba(0,0,0,.8);object-fit:contain;display:block;}
.pd-lightbox-close{position:absolute;top:1rem;right:1rem;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;transition:background .2s;}
.pd-lightbox-close:hover{background:rgba(255,255,255,.2);}
.pd-lightbox-close svg{width:18px;height:18px;}
.pd-lightbox-caption{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);font-size:.75rem;color:rgba(255,255,255,.6);white-space:nowrap;}

/* ================================================================
   BLOG LISTING PAGE — from blog.html
================================================================ */
@keyframes pulse-violet{0%,100%{box-shadow:0 0 0 3px rgba(124,58,237,.20);}50%{box-shadow:0 0 0 7px rgba(124,58,237,.06);}}

/* Banner */
.bl-banner{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 4.5rem) 0 5rem;}
.bl-banner::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;}
.bl-banner__glow{position:absolute;top:-10%;right:-5%;width:560px;height:560px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.14) 0%,transparent 65%);}
.bl-banner__inner{position:relative;z-index:2;}
.bl-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-3);margin-bottom:1.5rem;}
.bl-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.bl-breadcrumb a:hover{color:var(--text-2);}
.bl-banner__title{font-size:clamp(2rem,4.5vw,3.75rem);font-weight:900;letter-spacing:-.045em;line-height:1.06;color:var(--text);margin-bottom:1.1rem;}
.bl-grad{background:linear-gradient(135deg,#C4B5FD,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.bl-banner__lead{font-size:clamp(.9375rem,1.8vw,1.0625rem);line-height:1.8;color:var(--text-3);max-width:620px;margin-bottom:2rem;}
.bl-banner__lead strong{color:var(--text-2);}
.bl-author-pill{display:inline-flex;align-items:center;gap:.65rem;background:var(--surface);border:1px solid var(--border-2);border-radius:999px;padding:.35rem .9rem .35rem .35rem;}
.bl-author-av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#7C3AED,#9333EA);display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:900;color:#fff;flex-shrink:0;}
.bl-author-name{font-size:.8125rem;font-weight:700;color:var(--text-2);}
.bl-author-role{font-size:.68rem;color:var(--text-3);}

/* Filter bar */
.bl-filter-bar{position:sticky;top:var(--nav-h,72px);z-index:90;background:rgba(12,18,40,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:.5rem 0;}
.bl-filter-wrap{display:flex;align-items:center;gap:.5rem;overflow-x:auto;scrollbar-width:none;}
.bl-filter-wrap::-webkit-scrollbar{display:none;}
.bl-filter-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem 1rem;border-radius:999px;flex-shrink:0;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap;border:1.5px solid var(--border-2);background:transparent;color:var(--text-3);transition:all .2s;}
.bl-filter-btn:hover{border-color:rgba(124,58,237,.4);color:var(--text-2);}
.bl-filter-btn.active{background:rgba(124,58,237,.14);border-color:#7C3AED;color:#A78BFA;}
.bl-filter-btn svg{width:13px;height:13px;flex-shrink:0;}
.bl-post-count{margin-left:auto;flex-shrink:0;font-size:.75rem;font-weight:600;color:var(--text-4);padding-right:.25rem;white-space:nowrap;}
.bl-post-count span{color:#A78BFA;font-weight:800;}

/* Featured card */
.bl-featured{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color .3s,transform .3s,box-shadow .3s;position:relative;}
@media(min-width:900px){.bl-featured{flex-direction:row;}}
.bl-featured:hover{border-color:rgba(124,58,237,.35);transform:translateY(-4px);box-shadow:0 16px 50px rgba(0,0,0,.4);color:inherit;}
.bl-featured__thumb{position:relative;overflow:hidden;background:var(--surface-2);flex-shrink:0;}
@media(max-width:899px){.bl-featured__thumb{aspect-ratio:16/9;}}
@media(min-width:900px){.bl-featured__thumb{width:48%;aspect-ratio:auto;}}
.bl-featured__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.16,1,.3,1);}
.bl-featured:hover .bl-featured__thumb img{transform:scale(1.05);}
.bl-featured__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(5,9,26,.7) 0%,transparent 55%);opacity:0;transition:opacity .3s;}
.bl-featured:hover .bl-featured__overlay{opacity:1;}
.bl-featured__badge{position:absolute;top:1rem;left:1rem;display:inline-flex;align-items:center;gap:.35rem;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#F59E0B;background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.30);border-radius:999px;padding:.22rem .7rem;backdrop-filter:blur(6px);}
.bl-featured__badge svg{width:11px;height:11px;}
.bl-featured__body{padding:2rem 1.75rem;display:flex;flex-direction:column;justify-content:center;}
@media(min-width:900px){.bl-featured__body{padding:2.5rem 2.25rem;}}

/* Grid cards */
.bl-grid{display:grid;grid-template-columns:1fr;gap:1.5rem;}
@media(min-width:640px){.bl-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.bl-grid{grid-template-columns:repeat(3,1fr);}}
.bl-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2xl);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:border-color .3s,transform .3s,box-shadow .3s;}
.bl-card:hover{border-color:rgba(124,58,237,.30);transform:translateY(-5px);box-shadow:0 12px 40px rgba(0,0,0,.35);color:inherit;}
.bl-card__thumb{aspect-ratio:16/9;overflow:hidden;background:var(--surface-2);position:relative;}
.bl-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.bl-card:hover .bl-card__thumb img{transform:scale(1.06);}
.bl-card__cat{position:absolute;top:.85rem;left:.85rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#A78BFA;background:rgba(124,58,237,.15);border:1px solid rgba(124,58,237,.28);border-radius:999px;padding:.2rem .6rem;backdrop-filter:blur(4px);}
.bl-card__body{padding:1.35rem 1.5rem;flex:1;display:flex;flex-direction:column;}

/* Shared card body */
.bl-cat-tag{display:inline-flex;align-items:center;gap:.35rem;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#A78BFA;margin-bottom:.6rem;}
.bl-cat-tag svg{width:12px;height:12px;}
.bl-post-title{font-size:1rem;font-weight:800;color:var(--text);letter-spacing:-.025em;line-height:1.35;margin-bottom:.55rem;transition:color .2s;}
.bl-card:hover .bl-post-title,.bl-featured:hover .bl-post-title{color:#A78BFA;}
.bl-featured__body .bl-post-title{font-size:clamp(1.1rem,2.5vw,1.625rem);margin-bottom:.65rem;}
.bl-post-excerpt{font-size:.8375rem;color:var(--text-3);line-height:1.75;flex:1;margin-bottom:.85rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.bl-featured__body .bl-post-excerpt{-webkit-line-clamp:4;font-size:.9375rem;}
.bl-post-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border);}
.bl-meta-av{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#7C3AED,#9333EA);display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:900;color:#fff;flex-shrink:0;}
.bl-meta-author{font-size:.75rem;font-weight:700;color:var(--text-2);}
.bl-meta-dot{width:3px;height:3px;border-radius:50%;background:var(--text-4);flex-shrink:0;}
.bl-meta-date{font-size:.72rem;color:var(--text-3);}
.bl-meta-read{font-size:.72rem;color:var(--text-3);margin-left:auto;}
.bl-read-more{display:inline-flex;align-items:center;gap:.4rem;font-size:.8125rem;font-weight:700;color:#A78BFA;margin-top:.75rem;transition:gap .2s;}
.bl-card:hover .bl-read-more,.bl-featured:hover .bl-read-more{gap:.65rem;}
.bl-read-more svg{width:13px;height:13px;}
.bl-post-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem;}
.bl-post-tag{font-size:.65rem;font-weight:700;padding:.2rem .55rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-3);}

/* List view cards */
.bl-list-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:row;align-items:stretch;text-decoration:none;color:inherit;transition:border-color .3s,transform .3s;}
.bl-list-card:hover{border-color:rgba(124,58,237,.28);transform:translateX(4px);color:inherit;}
.bl-list-card__thumb{width:130px;flex-shrink:0;overflow:hidden;background:var(--surface-2);}
@media(min-width:640px){.bl-list-card__thumb{width:180px;}}
.bl-list-card__thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s cubic-bezier(.16,1,.3,1);}
.bl-list-card:hover .bl-list-card__thumb img{transform:scale(1.08);}
.bl-list-card__body{padding:1rem 1.25rem;flex:1;display:flex;flex-direction:column;justify-content:center;}
.bl-list-card__title{font-size:.9375rem;font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.4;margin-bottom:.35rem;transition:color .2s;}
.bl-list-card:hover .bl-list-card__title{color:#A78BFA;}
.bl-list-card__excerpt{font-size:.78rem;color:var(--text-3);line-height:1.65;margin-bottom:.5rem;}
.bl-list-card__meta{display:flex;align-items:center;gap:.5rem;font-size:.68rem;color:var(--text-3);}
.bl-list-card__meta-dot{width:3px;height:3px;border-radius:50%;background:var(--text-4);}

/* Sidebar */
.bl-sidebar-card{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-xl);padding:1.5rem;margin-bottom:1.25rem;}
.bl-sidebar-title{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-4);margin-bottom:1rem;}
.bl-subscribe{background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(124,58,237,.05));border:1px solid rgba(124,58,237,.25);border-radius:var(--r-xl);padding:1.5rem;margin-bottom:1.25rem;position:relative;overflow:hidden;}
.bl-subscribe::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,transparent);}
.bl-subscribe-title{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:.4rem;}
.bl-subscribe-desc{font-size:.8125rem;color:var(--text-3);line-height:1.65;margin-bottom:1rem;}
.bl-subscribe-form{display:flex;flex-direction:column;gap:.5rem;}
.bl-email-input{width:100%;padding:.65rem .9rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r,8px);color:var(--text);font-family:var(--font,sans-serif);font-size:.875rem;outline:none;transition:border-color .2s;}
.bl-email-input::placeholder{color:var(--text-4);}
.bl-email-input:focus{border-color:#7C3AED;}
.bl-tags-cloud{display:flex;flex-wrap:wrap;gap:.4rem;}
.bl-tag-link{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;padding:.25rem .65rem;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text-3);text-decoration:none;transition:border-color .2s,color .2s;}
.bl-tag-link:hover{border-color:rgba(124,58,237,.35);color:#A78BFA;}
.bl-trending-list{display:flex;flex-direction:column;gap:.85rem;}
.bl-trending-item{display:flex;gap:.85rem;text-decoration:none;color:inherit;align-items:flex-start;}
.bl-trending-num{font-size:1.5rem;font-weight:900;letter-spacing:-.06em;line-height:1;color:rgba(124,58,237,.25);flex-shrink:0;width:32px;}
.bl-trending-title{font-size:.84rem;font-weight:700;color:var(--text-2);line-height:1.45;transition:color .2s;}
.bl-trending-item:hover .bl-trending-title{color:#A78BFA;}
.bl-trending-meta{font-size:.68rem;color:var(--text-3);margin-top:.2rem;}

/* Pagination */
.bl-pagination{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:3rem;flex-wrap:wrap;}
.bl-page-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r,8px);border:1.5px solid var(--border-2);background:transparent;font-size:.875rem;font-weight:700;color:var(--text-3);cursor:pointer;text-decoration:none;transition:all .2s;}
.bl-page-btn:hover{border-color:rgba(124,58,237,.4);color:#A78BFA;}
.bl-page-btn.active{background:rgba(124,58,237,.14);border-color:#7C3AED;color:#A78BFA;}
.bl-page-btn--wide{width:auto;padding:0 1rem;}
.bl-page-ellipsis{font-size:.875rem;color:var(--text-4);padding:0 .25rem;}

/* Section divider */
.bl-section-label{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;}
.bl-section-label hr{flex:1;border:none;border-top:1px solid var(--border);}
.bl-section-label-text{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-4);white-space:nowrap;}

/* Blog CTA */
.bl-cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#0A0520,#130830,#0C1228);padding:5.5rem 0;text-align:center;}
.bl-cta::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:400px;background:radial-gradient(ellipse,rgba(124,58,237,.18) 0%,transparent 65%);pointer-events:none;}
.bl-cta__inner{position:relative;z-index:2;max-width:600px;margin:0 auto;padding:0 1.25rem;}

/* ================================================================
   BLOG DETAIL PAGE — from blog-detail.html
================================================================ */
.bd-prog{position:fixed;top:0;left:0;z-index:1100;height:3px;width:0;background:linear-gradient(90deg,#7C3AED,#A78BFA,#06B6D4);transition:width .08s linear;box-shadow:0 0 8px rgba(124,58,237,.5);pointer-events:none;}
.bd-page{background:var(--bg);padding-top:calc(var(--nav-h,72px) + 2.5rem);padding-bottom:4rem;}
.bd-crumb{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;font-size:.75rem;color:var(--text-3);margin-bottom:1.5rem;}
.bd-crumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.bd-crumb a:hover{color:#A78BFA;}
.bd-crumb svg{width:12px;height:12px;color:var(--text-4);flex-shrink:0;}
.bd-category-tag{display:inline-flex;align-items:center;gap:.4rem;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#A78BFA;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.22);border-radius:999px;padding:.28rem .8rem;margin-bottom:.85rem;text-decoration:none;transition:background .2s;}
.bd-category-tag:hover{background:rgba(124,58,237,.18);color:#A78BFA;}
.bd-category-tag svg{width:11px;height:11px;}
.bd-title{font-size:clamp(1.625rem,3.8vw,2.75rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;color:var(--text);margin-bottom:1.1rem;}
.bd-title-grad{background:linear-gradient(135deg,#C4B5FD,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

/* Author bar */
.bd-author-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.9rem 0 1rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin-bottom:1.75rem;}
.bd-av{width:34px;height:34px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#7C3AED,#9333EA);display:flex;align-items:center;justify-content:center;font-size:.6rem;font-weight:900;color:#fff;border:2px solid rgba(124,58,237,.25);}
.bd-bar-name{font-size:.84rem;font-weight:800;color:var(--text-2);}
.bd-dot{width:3px;height:3px;border-radius:50%;background:var(--text-4);flex-shrink:0;}
.bd-bar-meta{font-size:.78rem;color:var(--text-3);white-space:nowrap;}
.bd-bar-views{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;color:var(--text-3);}
.bd-bar-views svg{width:13px;height:13px;color:#A78BFA;}
.bd-share-group{display:flex;gap:.35rem;margin-left:auto;}
.bd-share-btn{width:30px;height:30px;border-radius:var(--r-sm,6px);background:var(--surface);border:1px solid var(--border-2);display:flex;align-items:center;justify-content:center;color:var(--text-3);text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s;flex-shrink:0;}
.bd-share-btn:hover{background:rgba(124,58,237,.12);border-color:rgba(124,58,237,.3);color:#A78BFA;}
.bd-share-btn svg{width:12px;height:12px;}
@media(max-width:767px){.bd-author-bar{gap:.5rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding:.75rem 0 .85rem;}.bd-author-bar::-webkit-scrollbar{display:none;}.bd-share-group{display:none;}.bd-bar-meta,.bd-bar-views,.bd-bar-name{font-size:.73rem;}.bd-av{width:28px;height:28px;font-size:.55rem;}}

/* Cover image */
.bd-cover{width:100%;aspect-ratio:16/9;border-radius:var(--r-2xl);overflow:hidden;background:var(--surface-2);border:1px solid var(--border);margin-bottom:2.25rem;position:relative;}
.bd-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.bd-cover-caption{position:absolute;bottom:.65rem;right:.75rem;font-size:.63rem;color:rgba(255,255,255,.55);background:rgba(0,0,0,.5);backdrop-filter:blur(6px);border-radius:4px;padding:.2rem .55rem;}

/* Prose */
.bd-prose h2{font-size:1.35rem;font-weight:900;letter-spacing:-.03em;color:var(--text);margin:2.5rem 0 .85rem;padding-top:2.5rem;border-top:1px solid var(--border);scroll-margin-top:calc(var(--nav-h,72px) + 1rem);}
.bd-prose h2:first-of-type{margin-top:0;padding-top:0;border-top:none;}
.bd-prose h3{font-size:1rem;font-weight:800;color:var(--text);letter-spacing:-.02em;margin:1.75rem 0 .55rem;scroll-margin-top:calc(var(--nav-h,72px) + 1rem);}
.bd-prose p{font-size:.9375rem;line-height:1.9;color:var(--text-3);margin-bottom:1.1rem;}
.bd-prose p:last-child{margin-bottom:0;}
.bd-prose strong{color:var(--text-2);font-weight:700;}
.bd-prose em{color:#A78BFA;font-style:normal;font-weight:600;}
.bd-prose a{color:#A78BFA;font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.bd-prose a:hover{color:#C4B5FD;}
.bd-callout{border-radius:0 var(--r,8px) var(--r,8px) 0;padding:1rem 1.25rem;margin:1.5rem 0;font-size:.9rem;line-height:1.8;}
.bd-callout--violet{background:rgba(124,58,237,.08);border-left:3px solid #7C3AED;color:var(--text-2);}
.bd-callout--orange{background:rgba(249,115,22,.08);border-left:3px solid var(--orange,#F97316);color:var(--text-2);}
.bd-callout strong{color:var(--text);}

/* Code blocks */
.bd-code{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-lg,12px);padding:1.1rem 1.25rem;margin:1.4rem 0;overflow-x:auto;}
.bd-code pre{font-family:'JetBrains Mono','Fira Code',monospace;font-size:.775rem;line-height:1.85;color:var(--text-2);margin:0;white-space:pre;}
.bd-code-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:.7rem;padding-bottom:.65rem;border-bottom:1px solid var(--border);}
.bd-code-lang{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--text-4);}
.bd-code-copy{font-size:.65rem;font-weight:700;color:var(--text-4);cursor:pointer;background:none;border:none;padding:0;transition:color .2s;}
.bd-code-copy:hover{color:#A78BFA;}
.tok-kw{color:#A78BFA;} .tok-str{color:#FDBA74;} .tok-fn{color:#67E8F9;} .tok-cm{color:var(--text-4);} .tok-num{color:#86EFAC;} .tok-op{color:var(--text);}

/* Table */
.bd-table-wrap{overflow-x:auto;margin:1.5rem 0;border-radius:var(--r-xl);border:1px solid var(--border);}
.bd-table{width:100%;border-collapse:separate;border-spacing:0;min-width:440px;}
.bd-table th,.bd-table td{padding:.65rem 1rem;font-size:.8rem;border-bottom:1px solid var(--border);font-family:var(--font,sans-serif);}
.bd-table th{background:var(--surface-2);font-weight:800;color:var(--text);text-align:left;}
.bd-table td{background:var(--surface);color:var(--text-3);}
.bd-table td:first-child{color:var(--text-2);font-weight:700;}
.bd-table tr:last-child td{border-bottom:none;}

/* Check list */
.bd-checks{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0 1.35rem;}
.bd-check{display:flex;align-items:flex-start;gap:.7rem;}
.bd-check-i{width:19px;height:19px;border-radius:50%;flex-shrink:0;margin-top:.16rem;background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.22);display:flex;align-items:center;justify-content:center;}
.bd-check-i svg{width:9px;height:9px;color:#10B981;}
.bd-check p{font-size:.875rem;color:var(--text-3);line-height:1.75;margin:0;}
.bd-check strong{color:var(--text-2);}

/* Numbered list */
.bd-nums{display:flex;flex-direction:column;gap:.75rem;margin:1rem 0 1.35rem;}
.bd-num{display:flex;align-items:flex-start;gap:.75rem;}
.bd-num-i{width:24px;height:24px;border-radius:50%;flex-shrink:0;margin-top:.1rem;background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.20);display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:900;color:#A78BFA;}
.bd-num p{font-size:.875rem;color:var(--text-3);line-height:1.75;margin:0;}
.bd-num strong{color:var(--text-2);}

/* Pull quote */
.bd-pullquote{border-left:3px solid #7C3AED;padding:.85rem 1.35rem;margin:1.75rem 0;}
.bd-pullquote p{font-size:1.0625rem;font-weight:700;color:var(--text-2);line-height:1.65;font-style:italic;margin:0;}

/* Post tags */
.bd-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin:1.5rem 0;}
.bd-tag{font-size:.7rem;font-weight:700;padding:.22rem .62rem;background:var(--surface);border:1px solid var(--border-2);border-radius:999px;color:var(--text-3);transition:border-color .2s,color .2s;}
.bd-tag:hover{border-color:rgba(124,58,237,.35);color:#A78BFA;}

/* Author bio */
.bd-author-bio{display:flex;gap:1.25rem;align-items:flex-start;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);padding:1.5rem;margin-top:2.5rem;}
@media(max-width:479px){.bd-author-bio{flex-direction:column;gap:.9rem;}}
.bd-bio-av{width:56px;height:56px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,#7C3AED,#9333EA);display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:900;color:#fff;border:2.5px solid rgba(124,58,237,.28);}
.bd-bio-name{font-size:.9375rem;font-weight:900;color:var(--text);margin-bottom:.2rem;letter-spacing:-.02em;}
.bd-bio-role{font-size:.75rem;color:#A78BFA;font-weight:700;margin-bottom:.5rem;}
.bd-bio-desc{font-size:.8125rem;color:var(--text-3);line-height:1.75;margin-bottom:.8rem;}
.bd-bio-links{display:flex;gap:.4rem;flex-wrap:wrap;}

/* Sidebar */
.bd-sidebar{position:sticky;top:calc(var(--nav-h,72px) + 1.25rem);}
@media(max-width:991px){.bd-sidebar{position:relative;top:0;margin-top:2.5rem;}}
.bd-sb-card{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-xl);padding:1.25rem 1.35rem;margin-bottom:1rem;}
.bd-sb-card:last-child{margin-bottom:0;}
.bd-sb-card--cta{background:linear-gradient(135deg,rgba(124,58,237,.12),rgba(124,58,237,.05));border-color:rgba(124,58,237,.25);position:relative;overflow:hidden;}
.bd-sb-card--cta::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,transparent);}
.bd-sb-title{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.11em;color:var(--text-4);margin-bottom:.8rem;}
.bd-views-row{display:flex;align-items:center;justify-content:space-between;}
.bd-views-left{display:flex;align-items:center;gap:.65rem;}
.bd-views-icon{width:34px;height:34px;border-radius:var(--r-sm,6px);background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.18);display:flex;align-items:center;justify-content:center;}
.bd-views-icon svg{width:15px;height:15px;color:#A78BFA;}
.bd-views-num{font-size:1.3rem;font-weight:900;color:var(--text);letter-spacing:-.04em;line-height:1;}
.bd-views-lbl{font-size:.62rem;font-weight:600;color:var(--text-3);margin-top:.15rem;}
.bd-views-right{font-size:.72rem;color:var(--text-3);display:flex;align-items:center;gap:.3rem;}
.bd-views-right svg{width:12px;height:12px;color:var(--text-4);}
.bd-toc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.3rem;}
.bd-toc-list a{display:flex;align-items:flex-start;gap:.5rem;font-size:.8rem;font-weight:600;color:var(--text-3);text-decoration:none;line-height:1.4;padding:.18rem 0;transition:color .2s;}
.bd-toc-list a::before{content:'';width:5px;height:5px;border-radius:50%;background:rgba(124,58,237,.28);flex-shrink:0;margin-top:.45rem;transition:background .2s;}
.bd-toc-list a:hover{color:#A78BFA;}
.bd-toc-list li.toc-active a{color:#A78BFA;}
.bd-toc-list li.toc-active a::before{background:#7C3AED;box-shadow:0 0 0 3px rgba(124,58,237,.15);}
.bd-sub-email{width:100%;padding:.6rem .875rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r,8px);color:var(--text);font-family:var(--font,sans-serif);font-size:.8125rem;outline:none;transition:border-color .2s;margin-bottom:.45rem;}
.bd-sub-email::placeholder{color:var(--text-4);}
.bd-sub-email:focus{border-color:#7C3AED;}

/* Related posts */
.bd-related{display:grid;grid-template-columns:1fr;gap:1.1rem;}
@media(min-width:480px){.bd-related{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.bd-related{grid-template-columns:repeat(3,1fr);}}
.bd-rel-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;text-decoration:none;color:inherit;display:flex;flex-direction:column;transition:border-color .3s,transform .3s;}
.bd-rel-card:hover{border-color:rgba(124,58,237,.28);transform:translateY(-4px);color:inherit;}
.bd-rel-thumb{aspect-ratio:16/9;overflow:hidden;background:var(--surface-2);}
.bd-rel-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.bd-rel-card:hover .bd-rel-thumb img{transform:scale(1.06);}
.bd-rel-body{padding:.9rem 1.1rem;flex:1;}
.bd-rel-cat{font-size:.63rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#A78BFA;margin-bottom:.3rem;}
.bd-rel-title{font-size:.875rem;font-weight:800;color:var(--text);line-height:1.4;letter-spacing:-.02em;transition:color .2s;}
.bd-rel-card:hover .bd-rel-title{color:#A78BFA;}
.bd-rel-meta{font-size:.67rem;color:var(--text-3);margin-top:.4rem;}

/* ================================================================
   ABOUT PAGE — from about.html
================================================================ */
@keyframes float-y{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes pulse-green-ab{0%,100%{box-shadow:0 0 0 3px rgba(16,185,129,.2);}50%{box-shadow:0 0 0 7px rgba(16,185,129,.06);}}

/* Hero */
.ab-hero{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 5rem) 0 5rem;}
.ab-hero__grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;}
.ab-hero__glow{position:absolute;top:-15%;left:-5%;width:600px;height:600px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.16) 0%,transparent 65%);}
.ab-hero__glow2{position:absolute;bottom:-20%;right:-5%;width:400px;height:400px;pointer-events:none;background:radial-gradient(circle,rgba(6,182,212,.09) 0%,transparent 65%);}
.ab-hero__inner{position:relative;z-index:2;}
.ab-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-3);margin-bottom:1.75rem;}
.ab-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.ab-breadcrumb a:hover{color:var(--text-2);}
.ab-breadcrumb-sep{color:var(--text-4);}
.ab-status{display:inline-flex;align-items:center;gap:.5rem;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.25);border-radius:999px;padding:.36rem 1rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#10B981;margin-bottom:1.25rem;}
.ab-status__dot{width:7px;height:7px;border-radius:50%;background:#10B981;animation:pulse-green-ab 2.5s ease-in-out infinite;}
.ab-hero__title{font-size:clamp(2.25rem,5vw,4.25rem);font-weight:900;letter-spacing:-.045em;line-height:1.05;color:var(--text);margin-bottom:1.25rem;}
.ab-grad{background:linear-gradient(135deg,#C4B5FD 0%,#A78BFA 40%,#7C3AED 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.ab-hero__desc{font-size:1.0625rem;line-height:1.85;color:var(--text-3);max-width:560px;margin-bottom:2rem;}
.ab-hero__desc strong{color:var(--text-2);font-weight:700;}
.ab-stats-pills{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:2rem;}
.ab-stat-pill{display:flex;flex-direction:column;align-items:center;padding:.85rem 1.25rem;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg,10px);min-width:80px;text-align:center;transition:border-color .25s,transform .25s;}
.ab-stat-pill:hover{border-color:rgba(124,58,237,.35);transform:translateY(-3px);}
.ab-stat-pill__val{font-size:1.35rem;font-weight:900;letter-spacing:-.04em;line-height:1;color:var(--text);background:linear-gradient(135deg,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.ab-stat-pill__lbl{font-size:.62rem;font-weight:600;color:var(--text-3);margin-top:.3rem;white-space:nowrap;}
.ab-hero__actions{display:flex;gap:.85rem;flex-wrap:wrap;}

/* Photo card */
.ab-photo-wrap{position:relative;}
.ab-photo{width:100%;border-radius:var(--r-2xl);overflow:hidden;border:1px solid var(--border-2);background:var(--surface-2);aspect-ratio:4/5;}
.ab-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.ab-photo:hover img{transform:scale(1.03);}
.ab-float{position:absolute;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg,10px);padding:.75rem 1rem;box-shadow:0 8px 32px rgba(0,0,0,.4);white-space:nowrap;z-index:3;}
.ab-float--tl{top:-1.25rem;left:-1.5rem;animation:float-y 4s ease-in-out infinite;}
.ab-float--br{bottom:1.5rem;right:-1.5rem;animation:float-y 4s 2s ease-in-out infinite;}
.ab-float__val{font-size:1.1rem;font-weight:900;color:var(--text);letter-spacing:-.03em;line-height:1;}
.ab-float__lbl{font-size:.65rem;font-weight:600;color:var(--text-3);margin-top:.2rem;}
.ab-float__icon{font-size:.9rem;margin-bottom:.2rem;}
.ab-photo-badge{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);display:inline-flex;align-items:center;gap:.5rem;background:rgba(5,9,26,.8);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.12);border-radius:var(--r-pill,999px);padding:.45rem 1rem;font-size:.78rem;font-weight:700;color:#fff;white-space:nowrap;}
.ab-photo-badge svg{width:14px;height:14px;color:#10B981;}

/* Section shared */
.ab-section{padding:5.5rem 0;border-bottom:1px solid var(--border);}
.ab-section:last-of-type{border-bottom:none;}
@media(min-width:768px){.ab-section{padding:7rem 0;}}
.ab-section-tag{display:inline-flex;align-items:center;gap:.5rem;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.25);border-radius:999px;padding:.3rem .85rem;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#A78BFA;margin-bottom:.85rem;}
.ab-section-tag-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}
.ab-section-tag--orange{color:var(--orange,#F97316);background:rgba(249,115,22,.10);border-color:rgba(249,115,22,.25);}
.ab-section-tag--green{color:#10B981;background:rgba(16,185,129,.10);border-color:rgba(16,185,129,.25);}
.ab-section-tag--cyan{color:#06B6D4;background:rgba(6,182,212,.10);border-color:rgba(6,182,212,.25);}
.ab-h2{font-size:clamp(1.75rem,3.5vw,2.75rem);font-weight:900;letter-spacing:-.04em;line-height:1.1;color:var(--text);margin-bottom:1rem;}
.ab-lead{font-size:1rem;line-height:1.85;color:var(--text-3);max-width:580px;}

/* Story */
.ab-story p{font-size:.9375rem;line-height:1.9;color:var(--text-3);margin-bottom:1.25rem;}
.ab-story p:last-child{margin-bottom:0;}
.ab-story strong{color:var(--text-2);font-weight:700;}
.ab-story em{color:#A78BFA;font-style:normal;font-weight:700;}

/* Timeline */
.ab-timeline{position:relative;padding-left:2rem;}
.ab-timeline::before{content:'';position:absolute;left:0;top:8px;bottom:8px;width:2px;background:linear-gradient(to bottom,#7C3AED,rgba(124,58,237,.2),transparent);border-radius:2px;}
.ab-tl-item{position:relative;padding-bottom:2.25rem;}
.ab-tl-item:last-child{padding-bottom:0;}
.ab-tl-dot{position:absolute;left:-2.55rem;top:3px;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2.5px solid rgba(124,58,237,.5);transition:border-color .25s,background .25s;z-index:1;}
.ab-tl-item:hover .ab-tl-dot{border-color:#7C3AED;background:#7C3AED;}
.ab-tl-year{font-size:.72rem;font-weight:800;color:#A78BFA;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.3rem;}
.ab-tl-title{font-size:1rem;font-weight:800;color:var(--text);letter-spacing:-.02em;margin-bottom:.4rem;}
.ab-tl-desc{font-size:.875rem;color:var(--text-3);line-height:1.75;}

/* Skill bars */
.ab-skill-list{display:flex;flex-direction:column;gap:1rem;}
.ab-skill-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;}
.ab-skill-name{font-size:.875rem;font-weight:700;color:var(--text-2);}
.ab-skill-pct{font-size:.75rem;font-weight:800;color:#A78BFA;}
.ab-skill-bar{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden;}
.ab-skill-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#7C3AED,#A78BFA);width:0;transition:width 1.2s cubic-bezier(.16,1,.3,1);}

/* Expertise cards */
.ab-expertise-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
@media(min-width:480px){.ab-expertise-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.ab-expertise-grid{grid-template-columns:repeat(3,1fr);}}
.ab-exp-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.5rem;transition:border-color .3s,transform .3s,box-shadow .3s;}
.ab-exp-card:hover{border-color:rgba(124,58,237,.30);transform:translateY(-4px);box-shadow:0 8px 32px rgba(124,58,237,.12);}
.ab-exp-icon{width:46px;height:46px;border-radius:var(--r-md,8px);background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.20);display:flex;align-items:center;justify-content:center;margin-bottom:1rem;transition:background .3s,transform .3s;}
.ab-exp-card:hover .ab-exp-icon{background:rgba(124,58,237,.18);transform:scale(1.08) rotate(-3deg);}
.ab-exp-icon svg{width:22px;height:22px;color:#A78BFA;}
.ab-exp-name{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:.35rem;letter-spacing:-.02em;}
.ab-exp-years{font-size:.72rem;font-weight:700;color:#A78BFA;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.06em;}
.ab-exp-desc{font-size:.8125rem;color:var(--text-3);line-height:1.7;}

/* Values cards */
.ab-values-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media(min-width:640px){.ab-values-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.ab-values-grid{grid-template-columns:repeat(4,1fr);}}
.ab-val-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.75rem 1.5rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s;}
.ab-val-card::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(124,58,237,.05),transparent);opacity:0;transition:opacity .3s;pointer-events:none;}
.ab-val-card:hover{border-color:rgba(124,58,237,.28);transform:translateY(-4px);}
.ab-val-card:hover::after{opacity:1;}
.ab-val-icon{font-size:1.75rem;margin-bottom:1rem;display:block;}
.ab-val-title{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:.45rem;}
.ab-val-desc{font-size:.84rem;color:var(--text-3);line-height:1.7;}

/* Testimonial highlight */
.ab-testi-highlight{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-2xl);padding:2rem;position:relative;overflow:hidden;height:100%;}
.ab-testi-highlight::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,#A78BFA,transparent);}
.ab-testi-quote-mark{font-size:4rem;line-height:1;color:rgba(124,58,237,.3);font-family:Georgia,serif;position:absolute;top:1.5rem;right:2rem;pointer-events:none;user-select:none;}
.ab-testi-text{font-size:.9375rem;line-height:1.85;color:var(--text-2);font-style:italic;margin-bottom:1.5rem;position:relative;z-index:1;}
.ab-testi-author{display:flex;align-items:center;gap:1rem;border-top:1px solid var(--border);padding-top:1.25rem;}
.ab-testi-av{width:48px;height:48px;border-radius:50%;border:2px solid var(--border-2);overflow:hidden;flex-shrink:0;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:900;color:#fff;}
.ab-testi-av img{width:100%;height:100%;object-fit:cover;}
.ab-testi-name{font-size:.9375rem;font-weight:800;color:var(--text);}
.ab-testi-role{font-size:.78rem;color:var(--text-3);}
.ab-testi-stars{display:flex;gap:.2rem;margin-bottom:.25rem;}
.ab-testi-stars svg{width:13px;height:13px;color:#F59E0B;}

/* Tech grid */
.ab-tech-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.65rem;}
@media(min-width:480px){.ab-tech-grid{grid-template-columns:repeat(5,1fr);}}
@media(min-width:640px){.ab-tech-grid{grid-template-columns:repeat(6,1fr);}}
@media(min-width:1024px){.ab-tech-grid{grid-template-columns:repeat(8,1fr);}}
.ab-tech-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md,8px);padding:.75rem .5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;text-align:center;transition:border-color .2s,background .2s,transform .25s;}
.ab-tech-tile:hover{border-color:rgba(124,58,237,.35);background:rgba(124,58,237,.06);transform:translateY(-3px);}
.ab-tech-tile img{width:26px;height:26px;object-fit:contain;}
.ab-tech-tile span{font-size:.6rem;font-weight:700;color:var(--text-3);}

/* Achievement cards */
.ab-achieve-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;}
@media(min-width:768px){.ab-achieve-grid{grid-template-columns:repeat(4,1fr);}}
.ab-achieve{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.5rem 1.25rem;text-align:center;transition:border-color .25s,transform .25s;}
.ab-achieve:hover{border-color:rgba(124,58,237,.30);transform:translateY(-3px);}
.ab-achieve__num{font-size:2.25rem;font-weight:900;letter-spacing:-.05em;line-height:1;margin-bottom:.35rem;background:linear-gradient(135deg,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.ab-achieve__lbl{font-size:.75rem;font-weight:600;color:var(--text-3);line-height:1.4;}

/* About CTA */
.ab-cta{position:relative;overflow:hidden;background:linear-gradient(135deg,#0A0520,#130830,#0C1228);padding:6rem 0;text-align:center;}
.ab-cta::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:400px;background:radial-gradient(ellipse,rgba(124,58,237,.20) 0%,transparent 65%);pointer-events:none;}
.ab-cta__inner{position:relative;z-index:2;max-width:640px;margin:0 auto;padding:0 1.25rem;}

/* ── ABOUT PAGE — missing additions ── */
@keyframes shimmer{from{background-position:-200% center;}to{background-position:200% center;}}
.ab-skill-row{margin-bottom:0;}

/* ================================================================
   PAGE BANNER — shared banner for Terms, Privacy, simple pages
================================================================ */
.page-banner{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 4rem) 0 4.5rem;}
@media(min-width:768px){.page-banner{padding:calc(var(--nav-h,72px) + 5.5rem) 0 5.5rem;}}
.page-banner::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(124,58,237,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.05) 1px,transparent 1px);background-size:52px 52px;pointer-events:none;}
.page-banner::after{content:'';position:absolute;top:-10%;right:-5%;width:50%;height:120%;background:radial-gradient(ellipse at center,rgba(124,58,237,.15) 0%,transparent 70%);pointer-events:none;}
.page-banner__inner{position:relative;z-index:2;}
.page-banner__breadcrumb{display:flex;align-items:center;gap:.45rem;font-size:.78rem;color:var(--text-3);margin-bottom:1.25rem;}
.page-banner__breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.page-banner__breadcrumb a:hover{color:var(--text-2);}
.page-banner__breadcrumb-sep{color:var(--text-4);}
.page-banner__title{font-size:clamp(2rem,5vw,3.75rem);font-weight:900;letter-spacing:-.04em;line-height:1.05;color:var(--text);margin-bottom:1rem;}
.page-banner__lead{font-size:clamp(.9375rem,2vw,1.0625rem);line-height:1.8;color:var(--text-3);max-width:600px;}

/* Legal prose (terms / privacy) */
.legal-prose{max-width:800px;margin:0 auto;}
.legal-prose h2{font-size:1.25rem;font-weight:900;color:var(--text);letter-spacing:-.025em;margin:2.5rem 0 .75rem;padding-top:2.5rem;border-top:1px solid var(--border);}
.legal-prose h2:first-of-type{margin-top:0;padding-top:0;border-top:none;}
.legal-prose h3{font-size:1rem;font-weight:800;color:var(--text);margin:1.5rem 0 .5rem;}
.legal-prose p{font-size:.9375rem;line-height:1.9;color:var(--text-3);margin-bottom:1rem;}
.legal-prose ul,.legal-prose ol{font-size:.9375rem;line-height:1.85;color:var(--text-3);padding-left:1.4rem;margin-bottom:1rem;}
.legal-prose li{margin-bottom:.35rem;}
.legal-prose strong{color:var(--text-2);}
.legal-prose a{color:#A78BFA;text-decoration:underline;text-underline-offset:3px;}
.legal-prose .legal-last-updated{display:inline-flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-pill);padding:.3rem .85rem;margin-bottom:2rem;}

/* ================================================================
   CONTACT PAGE — All styles (ct-* prefix)
================================================================ */

/* ── Animations ── */
@keyframes pulse-orange{0%,100%{box-shadow:0 0 0 3px rgba(249,115,22,.20);}50%{box-shadow:0 0 0 8px rgba(249,115,22,.06);}}

/* ── HERO ── */
.ct-hero{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 5rem) 0 6rem;min-height:100vh;display:flex;align-items:center;}
.ct-hero::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;}
.ct-glow-tl{position:absolute;top:-15%;left:-10%;width:600px;height:600px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.18) 0%,transparent 65%);}
.ct-glow-br{position:absolute;bottom:-20%;right:-5%;width:440px;height:440px;pointer-events:none;background:radial-gradient(circle,rgba(6,182,212,.09) 0%,transparent 65%);}
.ct-hero__inner{position:relative;z-index:2;width:100%;}

/* Breadcrumb */
.ct-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-3);margin-bottom:1.5rem;}
.ct-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.ct-breadcrumb a:hover{color:var(--text-2);}

/* Tag pill */
.ct-tag{display:inline-flex;align-items:center;gap:.5rem;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.25);border-radius:999px;padding:.35rem .9rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#A78BFA;margin-bottom:1.25rem;}
.ct-tag-dot{width:6px;height:6px;border-radius:50%;background:currentColor;}

/* Title + desc */
.ct-hero__title{font-size:clamp(2rem,4.5vw,3.75rem);font-weight:900;letter-spacing:-.045em;line-height:1.07;color:var(--text);margin-bottom:1.25rem;}
.ct-grad{background:linear-gradient(135deg,#C4B5FD,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.ct-hero__desc{font-size:1.0625rem;line-height:1.85;color:var(--text-3);max-width:520px;margin-bottom:2.25rem;}
.ct-hero__desc strong{color:var(--text-2);font-weight:700;}

/* ── Contact method cards ── */
.ct-methods{display:flex;flex-direction:column;gap:.85rem;margin-bottom:2rem;}
.ct-method{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-xl);padding:1.1rem 1.25rem;text-decoration:none;color:inherit;transition:border-color .25s,transform .25s,box-shadow .25s;}
.ct-method:hover{border-color:rgba(124,58,237,.35);transform:translateX(5px);box-shadow:0 6px 28px rgba(124,58,237,.12);color:inherit;}
.ct-method__icon{width:44px;height:44px;border-radius:var(--r-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:transform .25s;}
.ct-method:hover .ct-method__icon{transform:scale(1.1) rotate(-5deg);}
.ct-method__icon svg{width:20px;height:20px;}
.ct-method__icon--violet{background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.22);color:#A78BFA;}
.ct-method__icon--green{background:rgba(16,185,129,.12);border:1px solid rgba(16,185,129,.22);color:#10B981;}
.ct-method__icon--blue{background:rgba(6,182,212,.12);border:1px solid rgba(6,182,212,.22);color:var(--cyan);}
.ct-method__icon--orange{background:rgba(249,115,22,.12);border:1px solid rgba(249,115,22,.22);color:var(--orange);}
.ct-method__label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-4);margin-bottom:.15rem;}
.ct-method__val{font-size:.9375rem;font-weight:700;color:var(--text);line-height:1.3;}
.ct-method__note{font-size:.72rem;color:var(--text-3);margin-top:.1rem;}

/* ── Response guarantee strip ── */
.ct-guarantee{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;}
.ct-guarantee-cell{background:var(--surface);padding:1rem .75rem;text-align:center;}
.ct-guarantee-val{font-size:1.25rem;font-weight:900;color:var(--text);letter-spacing:-.04em;line-height:1;}
.ct-guarantee-lbl{font-size:.62rem;font-weight:600;color:var(--text-3);margin-top:.25rem;line-height:1.3;}

/* ── Form card ── */
.ct-form-card{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.55);position:sticky;top:calc(var(--nav-h,72px) + 1.5rem);}
.ct-form-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,#7C3AED,#A78BFA,#06B6D4);}
.ct-form-body{padding:2rem 2rem 2.5rem;}
@media(min-width:768px){.ct-form-body{padding:2.25rem 2.5rem 2.75rem;}}
.ct-form-title{font-size:1.1875rem;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:.35rem;}
.ct-form-sub{font-size:.8125rem;color:var(--text-3);line-height:1.6;margin-bottom:1.5rem;}
.ct-form-sub strong{color:var(--text-2);}

/* form controls */
.f-group{margin-bottom:1rem;}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media(max-width:560px){.f-row{grid-template-columns:1fr;}}
.f-label{display:block;font-size:.75rem;font-weight:700;color:var(--text-2);margin-bottom:.4rem;}
.f-label .req{color:#A78BFA;margin-left:.2rem;}
.f-input,.f-select,.f-textarea{width:100%;padding:.7rem .95rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r);color:var(--text);font-family:var(--font,sans-serif);font-size:.875rem;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none;}
.f-input::placeholder,.f-textarea::placeholder{color:var(--text-4);}
.f-input:focus,.f-select:focus,.f-textarea:focus{border-color:#7C3AED;box-shadow:0 0 0 3px rgba(124,58,237,.15);}
.f-input.error,.f-textarea.error,.f-input.tsw-input-error,.f-textarea.tsw-input-error,.f-select.tsw-input-error{border-color:#EF4444;}
.f-select{cursor:pointer;}
.f-textarea{resize:vertical;min-height:120px;line-height:1.7;}
.tsw-field-error-msg{display:block;font-size:.72rem;color:#EF4444;margin-top:.3rem;}

/* service checkbox grid */
.ct-svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;}
@media(min-width:500px){.ct-svc-grid{grid-template-columns:repeat(3,1fr);}}
.ct-svc-label{display:flex;align-items:center;gap:.45rem;padding:.5rem .75rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r);font-size:.775rem;font-weight:600;color:var(--text-3);cursor:pointer;user-select:none;transition:border-color .15s,background .15s,color .15s;}
.ct-svc-label:hover{border-color:rgba(124,58,237,.35);color:var(--text-2);}
.ct-svc-label.checked,.ct-svc-label:has(input:checked){border-color:#7C3AED;background:rgba(124,58,237,.10);color:#A78BFA;}
.ct-svc-label input{width:13px;height:13px;accent-color:#7C3AED;flex-shrink:0;}

/* char counter */
.f-char-count{font-size:.68rem;color:var(--text-4);text-align:right;margin-top:.3rem;}

/* submit button */
.ct-submit{width:100%;padding:.9rem 2rem;border:none;border-radius:var(--r);background:linear-gradient(135deg,#7C3AED,#9333EA);color:#fff;font-family:var(--font,sans-serif);font-size:1rem;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.6rem;box-shadow:0 6px 24px rgba(124,58,237,.4);transition:transform .2s,box-shadow .2s,opacity .2s;margin-top:1.25rem;}
.ct-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 32px rgba(124,58,237,.55);}
.ct-submit:disabled{opacity:.7;cursor:not-allowed;transform:none;}
.ct-submit svg{width:18px;height:18px;}
.tsw-btn-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0;}
@keyframes spin{to{transform:rotate(360deg);}}

/* trust strip */
.ct-form-trust{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;justify-content:center;}
.ct-trust-item{display:flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;color:var(--text-4);}
.ct-trust-item svg{width:12px;height:12px;color:#10B981;}

/* success state */
.ct-success{text-align:center;padding:2.5rem 1rem;}
.ct-success.show{display:block;}
.ct-success-icon{width:70px;height:70px;border-radius:50%;background:rgba(16,185,129,.12);border:2px solid rgba(16,185,129,.30);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;}
.ct-success-icon svg{width:30px;height:30px;color:#10B981;}
.ct-success h3{font-size:1.25rem;font-weight:900;color:var(--text);margin-bottom:.5rem;}
.ct-success p{font-size:.9rem;color:var(--text-3);line-height:1.75;margin-bottom:1.5rem;}

/* form error bar */
.ct-form-error-bar{display:none;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);border-radius:var(--r);padding:.75rem 1rem;font-size:.84rem;color:#EF4444;margin-bottom:1rem;}
.ct-form-error-bar.show{display:block;}

/* ── FAQ ── */
.ct-faq-list{display:flex;flex-direction:column;gap:.5rem;}
.ct-faq-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;transition:border-color .2s;}
.ct-faq-item.open{border-color:rgba(124,58,237,.28);}
.ct-faq-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:transparent;border:none;cursor:pointer;text-align:left;}
.ct-faq-q{font-size:.9375rem;font-weight:700;color:var(--text);font-family:var(--font,sans-serif);line-height:1.4;}
.ct-faq-icon{width:26px;height:26px;border-radius:50%;flex-shrink:0;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.20);display:flex;align-items:center;justify-content:center;transition:background .2s;}
.ct-faq-icon svg{width:13px;height:13px;color:#A78BFA;transition:transform .3s;}
.ct-faq-item.open .ct-faq-icon{background:rgba(124,58,237,.20);}
.ct-faq-item.open .ct-faq-icon svg{transform:rotate(45deg);}
.ct-faq-body{padding:0 1.25rem;max-height:0;overflow:hidden;transition:max-height .35s ease,padding .25s ease;}
.ct-faq-item.open .ct-faq-body{max-height:300px;padding-bottom:1.25rem;}
.ct-faq-body p{font-size:.875rem;color:var(--text-3);line-height:1.8;margin:0;}

/* ── Availability strip ── */
.ct-avail-strip{background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:2rem 0;}
.ct-avail-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1.5rem;}
.ct-avail-badge{display:inline-flex;align-items:center;gap:.6rem;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.25);border-radius:999px;padding:.5rem 1.1rem;font-size:.85rem;font-weight:700;color:#10B981;}
.ct-avail-badge-dot{width:8px;height:8px;border-radius:50%;background:#10B981;animation:pulse-green 2.5s ease-in-out infinite;}
.ct-avail-details{display:flex;gap:2rem;flex-wrap:wrap;}
.ct-avail-detail{font-size:.84rem;color:var(--text-3);}
.ct-avail-detail strong{color:var(--text-2);font-weight:700;}

/* ================================================================
   TEAM PAGE — Grid + Cards
================================================================ */
.tm-banner{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 5rem) 0 5rem;}
.tm-banner::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;pointer-events:none;}
.tm-glow{position:absolute;top:-15%;left:-5%;width:600px;height:600px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.15) 0%,transparent 65%);}
.tm-inner{position:relative;z-index:2;}

/* Hero lead member card */
.team-lead-wrap{max-width:720px;margin:0 auto 4rem;}
.team-lead-card{display:flex;align-items:center;gap:2.5rem;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);padding:2.5rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s;}
.team-lead-card::before{content:'';position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,#7C3AED,#A78BFA,#06B6D4);}
.team-lead-card:hover{border-color:rgba(124,58,237,.3);transform:translateY(-3px);}
@media(max-width:640px){.team-lead-card{flex-direction:column;text-align:center;}}

/* Grid for other members */
.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;}
@media(min-width:768px){.team-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1200px){.team-grid{grid-template-columns:repeat(3,1fr);}}

/* Common card styles */
.team-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:2rem;transition:border-color .3s,transform .3s,box-shadow .3s;}
.team-card:hover{border-color:rgba(124,58,237,.28);transform:translateY(-4px);box-shadow:0 12px 40px rgba(0,0,0,.35);}
.team-card--lead{border-color:var(--border-2);}

/* Avatar */
.team-card__avatar-wrap{position:relative;flex-shrink:0;}
.team-lead-card .team-card__avatar-wrap{width:120px;height:120px;}
.team-card .team-card__avatar-wrap{width:80px;height:80px;margin-bottom:1.25rem;}
.team-card__avatar{width:100%;height:100%;border-radius:50%;object-fit:cover;border:3px solid var(--border-2);background:var(--surface-2);}
.team-card__avatar-fallback{width:100%;height:100%;border-radius:50%;background:linear-gradient(135deg,#7C3AED,#9333EA);display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:900;color:#fff;border:3px solid rgba(124,58,237,.3);}
.team-lead-card .team-card__avatar-fallback{font-size:2.5rem;}
.team-card__avail-dot{position:absolute;bottom:5px;right:5px;width:12px;height:12px;border-radius:50%;border:2px solid var(--surface);}

/* Lead badge */
.team-card__lead-badge{display:inline-flex;align-items:center;gap:.35rem;background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.25);border-radius:999px;padding:.25rem .7rem;font-size:.68rem;font-weight:800;color:#A78BFA;letter-spacing:.06em;text-transform:uppercase;margin-bottom:.6rem;}

/* Body text */
.team-card__name{font-size:1.125rem;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:.2rem;}
.team-lead-card .team-card__name{font-size:1.375rem;}
.team-card__role{font-size:.8125rem;font-weight:700;color:#A78BFA;margin-bottom:.75rem;}
.team-card__stats{display:flex;gap:1.5rem;margin-bottom:.85rem;}
.team-lead-card .team-card__stats{gap:2rem;}
.team-card__stat{display:flex;flex-direction:column;}
.team-card__stat-val{font-size:1.25rem;font-weight:900;letter-spacing:-.04em;line-height:1;background:linear-gradient(135deg,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.team-lead-card .team-card__stat-val{font-size:1.75rem;}
.team-card__stat-lbl{font-size:.62rem;font-weight:600;color:var(--text-4);margin-top:.2rem;}
.team-card__bio{font-size:.84rem;color:var(--text-3);line-height:1.75;margin-bottom:.85rem;}
.team-card__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem;}
.team-card__tag{font-size:.68rem;font-weight:700;padding:.2rem .55rem;background:rgba(124,58,237,.08);border:1px solid rgba(124,58,237,.18);border-radius:var(--r-pill);color:#A78BFA;}
.team-card__social{display:flex;gap:.5rem;align-items:center;}
@media(max-width:640px){.team-lead-card .team-card__social{justify-content:center;}}
.team-card__social-link{width:32px;height:32px;border-radius:50%;background:var(--surface-2);border:1px solid var(--border-2);display:flex;align-items:center;justify-content:center;color:var(--text-3);transition:background .2s,border-color .2s,color .2s;text-decoration:none;}
.team-card__social-link:hover{background:rgba(124,58,237,.12);border-color:rgba(124,58,237,.3);color:#A78BFA;}

/* Skills list */
.team-card__skills{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.85rem;}
.team-card__skill{font-size:.68rem;font-weight:600;color:var(--text-3);padding:.2rem .55rem;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-pill);}

/* CTA strip at bottom */
.team-cta{background:var(--surface);border-top:1px solid var(--border);padding:3rem 0;text-align:center;}


/* ================================================================
   404 PAGE — Exact match to 404.html
================================================================ */
@keyframes float-gentle{0%,100%{transform:translateY(0) rotate(-1deg);}50%{transform:translateY(-18px) rotate(1deg);}}
@keyframes pulse-ring{0%{transform:translate(-50%,-50%) scale(0.85);opacity:.6;}100%{transform:translate(-50%,-50%) scale(1.25);opacity:0;}}

.err-page{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg);position:relative;overflow:hidden;padding:calc(var(--nav-h,72px) + 3rem) 1.25rem 5rem;text-align:center;}
.err-page::before{content:'';position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;}
.err-glow-1{position:absolute;top:-15%;left:-10%;width:600px;height:600px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.15) 0%,transparent 65%);}
.err-glow-2{position:absolute;bottom:-20%;right:-5%;width:500px;height:500px;pointer-events:none;background:radial-gradient(circle,rgba(6,182,212,.09) 0%,transparent 65%);}
.err-inner{position:relative;z-index:2;max-width:620px;}
.err-num-wrap{position:relative;display:inline-block;margin-bottom:1.5rem;}
.err-pulse-ring{position:absolute;top:50%;left:50%;width:200px;height:200px;border-radius:50%;border:1.5px solid rgba(124,58,237,.20);animation:pulse-ring 3s ease-out infinite;pointer-events:none;}
.err-pulse-ring:nth-child(2){animation-delay:.75s;width:260px;height:260px;}
.err-pulse-ring:nth-child(3){animation-delay:1.5s;width:320px;height:320px;}
.err-num{font-size:clamp(6rem,18vw,10rem);font-weight:900;letter-spacing:-.06em;line-height:1;background:linear-gradient(135deg,#C4B5FD 0%,#A78BFA 40%,#7C3AED 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:float-gentle 5s ease-in-out infinite;display:block;position:relative;z-index:1;filter:drop-shadow(0 0 40px rgba(124,58,237,.4));}
.err-title{font-size:clamp(1.5rem,4vw,2.25rem);font-weight:900;letter-spacing:-.04em;color:var(--text);margin-bottom:.85rem;}
.err-desc{font-size:1rem;line-height:1.8;color:var(--text-3);max-width:460px;margin:0 auto 2.5rem;}
.err-desc strong{color:var(--text-2);}
.err-actions{display:flex;gap:.85rem;flex-wrap:wrap;justify-content:center;margin-bottom:3rem;}
.err-links{display:grid;grid-template-columns:repeat(2,1fr);gap:.65rem;max-width:480px;margin:0 auto;}
@media(min-width:480px){.err-links{grid-template-columns:repeat(3,1fr);}}
.err-link{display:flex;flex-direction:column;align-items:center;gap:.5rem;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-xl);padding:1.1rem .75rem;text-decoration:none;color:inherit;transition:border-color .25s,transform .25s,background .25s;}
.err-link:hover{border-color:rgba(124,58,237,.35);transform:translateY(-3px);background:rgba(124,58,237,.06);color:inherit;}
.err-link__icon{width:40px;height:40px;border-radius:var(--r-md);background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.20);display:flex;align-items:center;justify-content:center;transition:background .25s,transform .25s;}
.err-link:hover .err-link__icon{background:rgba(124,58,237,.18);transform:scale(1.1) rotate(-4deg);}
.err-link__icon svg{width:18px;height:18px;color:#A78BFA;}
.err-link__label{font-size:.78rem;font-weight:700;color:var(--text-2);}

/* ================================================================
   HIRE ME PAGE — All styles (hm-* + hf-* prefix)
================================================================ */
@keyframes shimmer-line{0%{left:-100%;}100%{left:200%;}}

/* ── Hero ── */
.hm-hero{position:relative;overflow:hidden;background:var(--bg);padding:calc(var(--nav-h,72px) + 5rem) 0 6rem;min-height:100vh;display:flex;align-items:center;}
.hm-hero__grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(124,58,237,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(124,58,237,.06) 1px,transparent 1px);background-size:52px 52px;}
.hm-glow-tl{position:absolute;top:-15%;left:-10%;width:650px;height:650px;pointer-events:none;background:radial-gradient(circle,rgba(124,58,237,.18) 0%,transparent 65%);}
.hm-glow-br{position:absolute;bottom:-20%;right:-5%;width:460px;height:460px;pointer-events:none;background:radial-gradient(circle,rgba(6,182,212,.09) 0%,transparent 65%);}
.hm-hero__inner{position:relative;z-index:2;width:100%;}
.hm-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text-3);margin-bottom:1.5rem;}
.hm-breadcrumb a{color:var(--text-3);text-decoration:none;transition:color .2s;}
.hm-breadcrumb a:hover{color:var(--text-2);}
.hm-avail{display:inline-flex;align-items:center;gap:.5rem;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.25);border-radius:999px;padding:.38rem 1rem;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#10B981;margin-bottom:1.35rem;}
.hm-avail__dot{width:7px;height:7px;border-radius:50%;background:#10B981;animation:pulse-green 2.5s ease-in-out infinite;}
.hm-hero__title{font-size:clamp(2.25rem,5vw,4.5rem);font-weight:900;letter-spacing:-.045em;line-height:1.05;color:var(--text);margin-bottom:1.25rem;}
.hm-grad{background:linear-gradient(135deg,#C4B5FD,#A78BFA,#7C3AED);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.hm-hero__desc{font-size:1.0625rem;line-height:1.85;color:var(--text-3);max-width:530px;margin-bottom:2rem;}
.hm-hero__desc strong{color:var(--text-2);}
.hm-usps{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:2.25rem;}
.hm-usp{display:inline-flex;align-items:center;gap:.45rem;background:var(--surface);border:1px solid var(--border-2);border-radius:999px;padding:.35rem .9rem;font-size:.78rem;font-weight:600;color:var(--text-2);}
.hm-usp svg{width:13px;height:13px;color:#10B981;flex-shrink:0;}
.hm-hero__actions{display:flex;gap:.85rem;flex-wrap:wrap;margin-bottom:2.5rem;}
.hm-proof{display:flex;align-items:center;gap:1rem;}
.hm-avatars{display:flex;}
.hm-av{width:34px;height:34px;border-radius:50%;border:2.5px solid var(--bg);margin-left:-10px;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:800;color:#fff;flex-shrink:0;}
.hm-av:first-child{margin-left:0;}
.hm-proof-text{font-size:.8125rem;color:var(--text-3);line-height:1.4;}
.hm-proof-text strong{color:var(--text-2);}

/* Profile card */
.hm-profile-card{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.5);position:relative;}
.hm-profile-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,#7C3AED,#A78BFA,#06B6D4);}
.hm-profile-photo{width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--surface-2);}
.hm-profile-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.16,1,.3,1);}
.hm-profile-card:hover .hm-profile-photo img{transform:scale(1.04);}
.hm-profile-body{padding:1.75rem;}
.hm-profile-name{font-size:1.25rem;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:.2rem;}
.hm-profile-title{font-size:.875rem;color:#A78BFA;font-weight:700;margin-bottom:1rem;}
.hm-profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:1.25rem;}
.hm-profile-stat{background:var(--surface-2);padding:.85rem .5rem;text-align:center;}
.hm-ps-val{font-size:1.1rem;font-weight:900;color:var(--text);letter-spacing:-.04em;line-height:1;}
.hm-ps-lbl{font-size:.6rem;font-weight:600;color:var(--text-3);margin-top:.25rem;}
.hm-profile-badges{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.25rem;}
.hm-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .7rem;font-size:.7rem;font-weight:700;border-radius:999px;border:1px solid;}
.hm-badge svg{width:11px;height:11px;}
.hm-badge--green{color:#10B981;background:rgba(16,185,129,.10);border-color:rgba(16,185,129,.25);}
.hm-badge--violet{color:#A78BFA;background:rgba(124,58,237,.10);border-color:rgba(124,58,237,.25);}
.hm-badge--cyan{color:var(--cyan);background:rgba(6,182,212,.10);border-color:rgba(6,182,212,.25);}
.hm-badge--orange{color:var(--orange);background:rgba(249,115,22,.10);border-color:rgba(249,115,22,.22);}
.hm-float{position:absolute;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-lg);padding:.7rem 1rem;box-shadow:0 8px 32px rgba(0,0,0,.4);white-space:nowrap;}
.hm-float--tl{top:-1.25rem;right:1.5rem;animation:float-y 4s ease-in-out infinite;}
.hm-float--bl{bottom:9rem;left:-1.5rem;animation:float-y 4s 2s ease-in-out infinite;}
.hm-float-val{font-size:1rem;font-weight:900;color:var(--text);letter-spacing:-.03em;line-height:1;}
.hm-float-lbl{font-size:.62rem;font-weight:600;color:var(--text-3);margin-top:.18rem;}
.hm-float-icon{font-size:.85rem;margin-bottom:.18rem;}

/* Engagement cards */
.hm-engage-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media(min-width:640px){.hm-engage-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.hm-engage-grid{grid-template-columns:repeat(3,1fr);}}
.hm-engage-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-2xl);padding:2rem 1.75rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s,box-shadow .3s;}
.hm-engage-card:hover{border-color:rgba(124,58,237,.35);transform:translateY(-5px);box-shadow:0 12px 40px rgba(124,58,237,.14);}
.hm-engage-card--popular{border-color:rgba(124,58,237,.35);}
.hm-engage-popular-badge{position:absolute;top:0;right:0;background:linear-gradient(135deg,#7C3AED,#9333EA);color:#fff;font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;padding:.3rem .85rem;border-radius:0 var(--r-2xl) 0 var(--r-md);}
.hm-engage-icon{width:52px;height:52px;border-radius:var(--r-md);background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.22);display:flex;align-items:center;justify-content:center;margin-bottom:1.25rem;transition:background .3s,transform .3s;}
.hm-engage-card:hover .hm-engage-icon{background:rgba(124,58,237,.18);transform:scale(1.08) rotate(-4deg);}
.hm-engage-icon svg{width:24px;height:24px;color:#A78BFA;}
.hm-engage-type{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:#A78BFA;margin-bottom:.4rem;}
.hm-engage-title{font-size:1.1875rem;font-weight:900;color:var(--text);letter-spacing:-.03em;margin-bottom:.6rem;}
.hm-engage-price{font-size:2rem;font-weight:900;letter-spacing:-.05em;color:var(--text);line-height:1;margin-bottom:.3rem;}
.hm-engage-price span{font-size:1rem;font-weight:600;color:var(--text-3);}
.hm-engage-note{font-size:.75rem;color:var(--text-3);margin-bottom:1.25rem;}
.hm-engage-divider{height:1px;background:var(--border);margin:1.25rem 0;}
.hm-engage-features{display:flex;flex-direction:column;gap:.7rem;margin-bottom:1.5rem;}
.hm-ef-row{display:flex;align-items:flex-start;gap:.7rem;}
.hm-ef-icon{width:20px;height:20px;border-radius:50%;flex-shrink:0;margin-top:.1rem;background:rgba(124,58,237,.12);border:1px solid rgba(124,58,237,.22);display:flex;align-items:center;justify-content:center;}
.hm-ef-icon svg{width:10px;height:10px;color:#A78BFA;}
.hm-ef-text{font-size:.8125rem;color:var(--text-3);line-height:1.65;}
.hm-ef-text strong{color:var(--text-2);font-weight:700;}

/* Skill rows */
.hm-skills-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
@media(min-width:640px){.hm-skills-grid{grid-template-columns:repeat(2,1fr);}}
.hm-skill-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.35rem 1.25rem;display:flex;align-items:center;gap:1rem;transition:border-color .25s;}
.hm-skill-row:hover{border-color:rgba(124,58,237,.28);}
.hm-skill-logo{width:42px;height:42px;flex-shrink:0;border-radius:var(--r);background:var(--surface-2);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden;}
.hm-skill-logo img{width:24px;height:24px;object-fit:contain;}
.hm-skill-info{flex:1;min-width:0;}
.hm-skill-name{font-size:.875rem;font-weight:800;color:var(--text);margin-bottom:.25rem;}
.hm-skill-years{font-size:.68rem;font-weight:700;color:#A78BFA;text-transform:uppercase;letter-spacing:.06em;}
.hm-skill-bar-wrap{width:80px;flex-shrink:0;}
.hm-skill-bar-bg{height:5px;background:var(--surface-2);border-radius:3px;overflow:hidden;}
.hm-skill-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,#7C3AED,#A78BFA);width:0;transition:width 1.2s cubic-bezier(.16,1,.3,1);}
.hm-skill-pct{font-size:.65rem;font-weight:800;color:#A78BFA;text-align:right;margin-top:.25rem;}

/* Working style cards */
.hm-style-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
@media(min-width:640px){.hm-style-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1024px){.hm-style-grid{grid-template-columns:repeat(4,1fr);}}
.hm-style-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.75rem 1.5rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s;}
.hm-style-card::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(124,58,237,.05),transparent);opacity:0;transition:opacity .3s;pointer-events:none;}
.hm-style-card:hover{border-color:rgba(124,58,237,.28);transform:translateY(-4px);}
.hm-style-card:hover::after{opacity:1;}
.hm-style-icon{font-size:1.75rem;margin-bottom:1rem;display:block;}
.hm-style-title{font-size:1rem;font-weight:800;color:var(--text);margin-bottom:.45rem;}
.hm-style-desc{font-size:.8375rem;color:var(--text-3);line-height:1.7;}

/* Comparison table */
.hm-cmp-table{width:100%;border-collapse:separate;border-spacing:0;}
.hm-cmp-table th,.hm-cmp-table td{padding:.8rem 1rem;border-bottom:1px solid var(--border);font-size:.8125rem;font-family:var(--font,sans-serif);}
.hm-cmp-table th{background:var(--surface-2);color:var(--text);font-weight:800;text-align:center;}
.hm-cmp-table th:first-child{text-align:left;border-radius:var(--r) 0 0 0;}
.hm-cmp-table th:last-child{border-radius:0 var(--r) 0 0;}
.hm-cmp-table td{color:var(--text-3);background:var(--surface);}
.hm-cmp-table td:first-child{color:var(--text-2);font-weight:600;}
.hm-cmp-table td:not(:first-child){text-align:center;}
.hm-cmp-table tr:last-child td:first-child{border-radius:0 0 0 var(--r);}
.hm-cmp-table tr:last-child td:last-child{border-radius:0 0 var(--r) 0;}
.hm-cmp-table tr:last-child td{border-bottom:none;}
.hm-cmp-yes{color:#10B981;font-size:1.1rem;font-weight:700;}
.hm-cmp-no{color:var(--text-4);font-size:1.1rem;}
.hm-cmp-table td:nth-child(2),.hm-cmp-table th:nth-child(2){background:rgba(124,58,237,.07);border-left:1px solid rgba(124,58,237,.15);border-right:1px solid rgba(124,58,237,.15);}
.hm-cmp-table th:nth-child(2){color:#A78BFA;}

/* Testimonials */
.hm-testi-grid{display:grid;grid-template-columns:1fr;gap:1.25rem;}
@media(min-width:640px){.hm-testi-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1100px){.hm-testi-grid{grid-template-columns:repeat(3,1fr);}}
.hm-testi{background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-2xl);padding:1.75rem;display:flex;flex-direction:column;gap:.85rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s;}
.hm-testi::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,#7C3AED,transparent);}
.hm-testi:hover{border-color:rgba(124,58,237,.28);transform:translateY(-3px);}
.hm-testi-stars{display:flex;gap:.2rem;}
.hm-testi-stars svg{width:13px;height:13px;color:#F59E0B;}
.hm-testi-text{font-size:.9rem;line-height:1.8;color:var(--text-2);font-style:italic;flex:1;}
.hm-testi-text::before{content:'\201C';color:#7C3AED;font-style:normal;font-size:1.1rem;}
.hm-testi-text::after{content:'\201D';color:#7C3AED;font-style:normal;font-size:1.1rem;}
.hm-testi-foot{display:flex;align-items:center;gap:.75rem;padding-top:.85rem;border-top:1px solid var(--border);}
.hm-testi-av{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800;color:#fff;flex-shrink:0;}
.hm-testi-name{font-size:.84rem;font-weight:800;color:var(--text);}
.hm-testi-role{font-size:.72rem;color:var(--text-3);}
.hm-testi-tag{margin-left:auto;font-size:.62rem;font-weight:700;padding:.18rem .55rem;background:rgba(124,58,237,.10);border:1px solid rgba(124,58,237,.22);border-radius:999px;color:#A78BFA;flex-shrink:0;}

/* Hire form section */
.hm-form-section{background:linear-gradient(135deg,#0A0520,#130830,#0C1228);position:relative;overflow:hidden;padding:6rem 0;}
.hm-form-section::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:700px;height:500px;background:radial-gradient(ellipse,rgba(124,58,237,.20) 0%,transparent 65%);pointer-events:none;}
.hm-form-inner{position:relative;z-index:2;}
.hm-form-card{background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-2xl);overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.6);}
.hm-form-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,#7C3AED,#A78BFA,#06B6D4);}
.hm-form-body{padding:2rem 2rem 2.5rem;}
@media(min-width:768px){.hm-form-body{padding:2.5rem 3rem 3rem;}}
.hf-group{margin-bottom:1rem;}
.hf-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
@media(max-width:560px){.hf-row{grid-template-columns:1fr;}}
.hf-label{display:block;font-size:.75rem;font-weight:700;color:var(--text-2);margin-bottom:.4rem;font-family:var(--font,sans-serif);}
.hf-label .req{color:#A78BFA;margin-left:.2rem;}
.hf-input,.hf-select,.hf-textarea{width:100%;padding:.7rem .95rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r);color:var(--text);font-family:var(--font,sans-serif);font-size:.875rem;outline:none;transition:border-color .2s,box-shadow .2s;-webkit-appearance:none;appearance:none;}
.hf-input::placeholder,.hf-textarea::placeholder{color:var(--text-4);}
.hf-input:focus,.hf-select:focus,.hf-textarea:focus{border-color:#7C3AED;box-shadow:0 0 0 3px rgba(124,58,237,.15);}
.hf-input.error,.hf-textarea.error,.hf-input.tsw-input-error,.hf-textarea.tsw-input-error{border-color:#EF4444;}
.hf-textarea{resize:vertical;min-height:110px;line-height:1.7;}
.hf-engage-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;}
@media(min-width:500px){.hf-engage-grid{grid-template-columns:repeat(3,1fr);}}
.hf-engage-label{display:flex;align-items:center;gap:.45rem;padding:.55rem .75rem;background:var(--surface-2);border:1.5px solid var(--border-2);border-radius:var(--r);font-size:.775rem;font-weight:600;color:var(--text-3);cursor:pointer;user-select:none;transition:border-color .15s,background .15s,color .15s;}
.hf-engage-label:hover{border-color:rgba(124,58,237,.35);color:var(--text-2);}
.hf-engage-label.checked,.hf-engage-label:has(input:checked){border-color:#7C3AED;background:rgba(124,58,237,.10);color:#A78BFA;}
.hf-engage-label input{width:13px;height:13px;accent-color:#7C3AED;flex-shrink:0;}
.hf-submit{width:100%;padding:.9rem 2rem;border:none;border-radius:var(--r);background:linear-gradient(135deg,#7C3AED,#9333EA);color:#fff;font-family:var(--font,sans-serif);font-size:1rem;font-weight:800;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.6rem;box-shadow:0 6px 24px rgba(124,58,237,.4);transition:transform .2s,box-shadow .2s,opacity .2s;margin-top:1.25rem;}
.hf-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 32px rgba(124,58,237,.55);}
.hf-submit:disabled{opacity:.7;cursor:not-allowed;transform:none;}
.hf-submit svg{width:18px;height:18px;}
.hf-trust{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem;justify-content:center;}
.hf-trust-item{display:flex;align-items:center;gap:.35rem;font-size:.72rem;font-weight:600;color:var(--text-4);}
.hf-trust-item svg{width:12px;height:12px;color:#10B981;}
.hf-success{text-align:center;padding:2.5rem 1rem;}
.hf-success.show{display:block;}
.hf-success-icon{width:68px;height:68px;border-radius:50%;background:rgba(16,185,129,.12);border:2px solid rgba(16,185,129,.3);display:flex;align-items:center;justify-content:center;margin:0 auto 1.25rem;}
.hf-success-icon svg{width:30px;height:30px;color:#10B981;}
.hm-cta{background:var(--bg);padding:5rem 0;text-align:center;border-top:1px solid var(--border);}
.hm-cta__inner{max-width:640px;margin:0 auto;padding:0 1.25rem;}


.dh__visual .dh__float.dh__float--tl {
    z-index: 1;
    top: -4.5rem;
}
span.nav-logo__sub {
    color: #fff;
}
.navbar .container .nav-inner {
    width: 100%;
}
.nav-logo__text {
    display: flex;
    flex-direction: column;
}
.footer__avail {
    padding-left: 20px !important;
}
.footer__avail span.nav-avail__dot {
 width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #10B981;
    flex-shrink: 0;
    animation: pulse-green 2.5s ease-in-out infinite;
}


@media (max-width: 767px) {
.single-portfolio .pd-sb-card {
    padding: 10px;
}
.single-portfolio a.btn {
        width: 100%;
        font-size: 13px;
    }
  .tsw-form-footer .pd-cta-btns {
    flex-direction: column;
  }


  .tsw-form-footer .pd-cta-btns .btn {
    width: 100%;
  }
	.tsw-form-footer button {
    width: 100%;
}
	.ct-form-body,
	.hm-form-body,
	.lead-form-body {
    padding: 15px;
}
.team-lead-card {
    text-align: left;
}
	.team-lead-card {
    text-align: left;
    align-items: start;
    padding: 20px;
}
article.team-card {

	  padding: 20px;
}


}

/* ═══════════════════════════════════════════════════════════════
   TSW — Portfolio Enquiry Widget (sidebar-portfolio)
   Styles for TSW_Portfolio_Enquiry_Widget rendered inside .pd-sb-card
═══════════════════════════════════════════════════════════════ */

/* Spin animation for the loading spinner */
@keyframes tsw-spin {
  to { transform: rotate(360deg); }
}

/* Subtitle text above the form */
.tsw-eq-subtitle {
  font-size: .8125rem;
  color: var(--text-2, #94a3b8);
  line-height: 1.65;
  margin: -.25rem 0 1rem;
}

/* Form layout */
.tsw-eq-form {
  display: flex;
  flex-direction: column;
  gap: .65rem;
}

/* Label + input group */
.tsw-eq-group {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.tsw-eq-group label {
  font-size: .75rem;
  font-weight: 600;
  color: var(--text-2, #94a3b8);
  letter-spacing: .025em;
  text-transform: uppercase;
}

.tsw-eq-group label span {
  color: #f87171;
}

.tsw-eq-group input,
.tsw-eq-group textarea,
.tsw-eq-group select {
  width: 100%;
  background: var(--surface, #0f172a);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: .5rem;
  color: var(--text-1, #f1f5f9);
  font-size: .8125rem;
  padding: .55rem .75rem;
  transition: border-color .2s, box-shadow .2s;
  outline: none;
  -webkit-appearance: none;
  appearance: none;
}

.tsw-eq-group textarea {
  resize: vertical;
  min-height: 90px;
  font-family: inherit;
}

.tsw-eq-group input::placeholder,
.tsw-eq-group textarea::placeholder {
  color: rgba(148,163,184,.45);
}

.tsw-eq-group input:focus,
.tsw-eq-group textarea:focus,
.tsw-eq-group select:focus {
  border-color: rgba(124,58,237,.6);
  box-shadow: 0 0 0 3px rgba(124,58,237,.15);
}

/* Submit button tweaks */
.tsw-eq-submit {
  margin-top: .35rem;
  gap: .5rem;
}

.tsw-eq-submit:disabled {
  opacity: .7;
  cursor: not-allowed;
}

/* Error bar */
.tsw-eq-error {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  background: rgba(239,68,68,.08);
  border: 1px solid rgba(239,68,68,.25);
  border-radius: .5rem;
  color: #fca5a5;
  font-size: .8rem;
  padding: .6rem .75rem;
  margin-bottom: .5rem;
}

.tsw-eq-error svg {
  flex-shrink: 0;
  margin-top: .1rem;
  stroke: #f87171;
}

/* Success state */
.tsw-eq-success {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: .5rem;
  padding: 1.5rem 0 .75rem;
  color: var(--text-1, #f1f5f9);
}

.tsw-eq-success svg {
  stroke: #34d399;
}

.tsw-eq-success strong {
  font-size: 1rem;
  font-weight: 700;
}

.tsw-eq-success span {
  font-size: .8125rem;
  color: var(--text-2, #94a3b8);
}

/* Ensure widget wrapper uses the same card styling */
.pd-sb-widget {
  /* inherits .pd-sb-card styles from theme */
}
