
/* ===== app.css ===== */
:root{
  --bg:#f5f7fc;--bg-2:#eef2fb;--panel:#ffffff;--panel-soft:#f9fbff;--text:#10152f;--muted:#68708a;
  --line:#e5e8f2;--line-strong:#d7dceb;--brand-primary:#176cf3;--brand-secondary:#6c47d9;--brand-accent:#b32270;
  --blue-soft:#edf5ff;--violet-soft:#f3efff;--pink-soft:#fff0f7;--green-soft:#ecfbf4;--yellow-soft:#fff8df;--orange-soft:#fff1e9;
  --radius:22px;--radius-sm:16px;--radius-xs:12px;--shadow:0 18px 50px rgba(37,48,92,.08);--shadow-hover:0 24px 60px rgba(37,48,92,.13);
  --max:1380px;--pad:clamp(14px,2vw,28px);--section:clamp(48px,5.5vw,74px);
  --sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:linear-gradient(180deg,#f8f9fd 0,#f4f7fc 58%,#f8f9fd 100%);color:var(--text);font:400 16px/1.58 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 7% 8%,rgba(23,108,243,.08),transparent 28%),radial-gradient(circle at 91% 18%,rgba(108,71,217,.08),transparent 24%),radial-gradient(circle at 76% 78%,rgba(179,34,112,.045),transparent 26%)}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{color:inherit}.bs-shell{width:min(calc(100% - 2*var(--pad)),var(--max));margin-inline:auto}.bs-main{min-height:65vh}.bs-section{padding-top:var(--section)}.bs-skip{position:fixed;z-index:99999;left:12px;top:12px;padding:10px 14px;border-radius:10px;background:#11162c;color:#fff;transform:translateY(-180%)}.bs-skip:focus{transform:none}.bs-card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 0 rgba(17,21,47,.015)}.bs-card::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(125deg,rgba(255,255,255,.32),transparent 26%,transparent 72%,rgba(70,93,180,.02));opacity:.7}.bs-card>*{position:relative;z-index:1}.bs-eyebrow{display:block;color:var(--brand-primary);font:700 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}.bs-mono{font-family:var(--mono)}.bs-lead{font-size:clamp(17px,1.45vw,21px);line-height:1.52;color:#525b76;max-width:850px}.bs-icon{width:1.08em;height:1.08em;display:inline-grid;place-items:center;flex:0 0 auto}.bs-icon svg{width:100%;height:100%;fill:currentColor;stroke:none}.bs-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:10px 17px;border-radius:13px;border:1px solid var(--line-strong);background:#fff;color:#151a35;font-weight:720;font-size:14px;letter-spacing:-.012em;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease,color .2s ease}.bs-btn::before{content:"";position:absolute;top:-120%;left:-35%;width:30%;height:340%;transform:rotate(22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),transparent);opacity:0;transition:opacity .2s ease}.bs-btn:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(37,48,92,.11);border-color:#c8d0e7}.bs-btn:hover::before{opacity:1;animation:bsSweep .7s ease forwards}@keyframes bsSweep{to{left:120%}}.bs-btn-primary{background:linear-gradient(135deg,var(--brand-primary),#4c6fe8 64%,var(--brand-secondary));color:#fff;border-color:transparent;box-shadow:0 9px 24px rgba(23,108,243,.18)}.bs-btn-primary:hover{box-shadow:0 14px 28px rgba(72,84,201,.22)}.bs-btn-ghost{background:#fff}.bs-btn-small{min-height:39px;padding:8px 14px;font-size:13px}.bs-btn-large{min-height:49px;padding:12px 20px}.bs-text-link{display:inline-flex;align-items:center;gap:7px;color:#1c55bd;font-weight:650}.bs-text-link:hover{color:var(--brand-secondary)}.bs-center{text-align:center;margin-top:26px}.bs-status{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:#58627c;font-weight:620}.bs-status i{width:8px;height:8px;border-radius:50%;background:#23b77b;box-shadow:0 0 0 5px rgba(35,183,123,.10);animation:bsPulse 2.4s ease-in-out infinite}@keyframes bsPulse{50%{box-shadow:0 0 0 9px rgba(35,183,123,0)}}

/* Header */
.bs-topbar{position:sticky;top:12px;z-index:120;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:22px;margin-top:12px;padding:8px 9px 8px 14px;border:1px solid rgba(218,223,238,.92);border-radius:18px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px) saturate(1.2);box-shadow:0 10px 32px rgba(39,52,99,.08)}.admin-bar .bs-topbar{top:45px}.bs-brand{display:flex;align-items:center;min-width:190px}.bs-brand-logo .custom-logo-link{display:flex}.bs-brand-logo img,.bs-brand-fallback{display:block;width:auto;max-height:34px}.bs-main-nav{justify-self:center}.bs-menu{display:flex;align-items:center;gap:1px;list-style:none;margin:0;padding:0}.bs-menu a{display:block;padding:8px 11px;border-radius:10px;color:#515970;font-size:13px;font-weight:600}.bs-menu a:hover,.bs-menu .current-menu-item>a{color:#11162f;background:#f2f5fb}.bs-top-actions{display:flex;align-items:center;gap:6px}.bs-social-button,.bs-command-trigger,.bs-mobile-toggle{height:39px;border:1px solid var(--line);background:#fff;border-radius:11px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s ease}.bs-social-button{width:39px;font-size:17px}.bs-social-button.is-facebook{color:#1877f2}.bs-social-button.is-whatsapp{color:#1cae5f}.bs-social-button:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(35,44,84,.09)}.bs-social-button.is-facebook:hover{background:#eef6ff;border-color:#cfe3ff}.bs-social-button.is-whatsapp:hover{background:#effbf4;border-color:#ccefd9}.bs-command-trigger{gap:7px;padding:0 10px;color:#737b91}.bs-command-trigger span{font:700 10px/1 var(--mono);border:1px solid #e2e5ef;border-radius:6px;padding:4px 5px;background:#f8f9fc}.bs-mobile-toggle{display:none;width:40px}.bs-mobile-panel{display:none}

/* Command palette */
.bs-command{position:fixed;inset:0;z-index:400;display:grid;place-items:start center;padding-top:min(18vh,160px);opacity:0;visibility:hidden;transition:.18s ease}.bs-command.is-open{opacity:1;visibility:visible}.bs-command-backdrop{position:absolute;inset:0;border:0;background:rgba(20,25,48,.28);backdrop-filter:blur(7px)}.bs-command-box{position:relative;width:min(650px,calc(100% - 28px));border:1px solid var(--line-strong);border-radius:20px;background:#fff;box-shadow:0 30px 90px rgba(25,34,73,.23);overflow:hidden;transform:translateY(-10px) scale(.985);transition:.2s ease}.bs-command.is-open .bs-command-box{transform:none}.bs-command-search{height:62px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:0 17px;border-bottom:1px solid var(--line)}.bs-command-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-size:16px}.bs-command-search kbd{font:600 10px var(--mono);color:#7b8296;border:1px solid var(--line);border-radius:7px;padding:5px 7px}.bs-command-list{padding:8px}.bs-command-list a{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:10px;padding:11px;border-radius:12px}.bs-command-list a:hover{background:#f4f7fc}.bs-command-list a>span{font:700 10px var(--mono);color:var(--brand-primary)}.bs-command-list strong{font-size:14px}.bs-command-list small{color:#7d8496;font-size:12px}.bs-command-list a.is-hidden{display:none}

/* Hero */
.bs-hero{padding-top:22px}.bs-hero-v3-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(330px,.75fr);gap:12px}.bs-hero-primary-v3{min-height:540px;padding:clamp(30px,4vw,56px);display:flex;flex-direction:column;justify-content:center;background:linear-gradient(140deg,#fff 0,#fff 52%,#f4f7ff 100%);isolation:isolate}.bs-hero-mesh{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.bs-hero-mesh i{position:absolute;border-radius:50%;filter:blur(8px);opacity:.55;animation:bsMesh 11s ease-in-out infinite alternate}.bs-hero-mesh i:nth-child(1){width:290px;height:290px;right:-90px;top:-100px;background:radial-gradient(circle,rgba(23,108,243,.23),transparent 68%)}.bs-hero-mesh i:nth-child(2){width:250px;height:250px;right:12%;bottom:-150px;background:radial-gradient(circle,rgba(108,71,217,.16),transparent 68%);animation-delay:-3s}.bs-hero-mesh i:nth-child(3){width:210px;height:210px;left:-80px;bottom:-90px;background:radial-gradient(circle,rgba(179,34,112,.11),transparent 68%);animation-delay:-6s}@keyframes bsMesh{to{transform:translate3d(22px,-14px,0) scale(1.08)}}.bs-hero-kicker{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:32px}.bs-hero-kicker>.bs-mono{font-size:10px;color:#8991a6;letter-spacing:.03em}.bs-hero h1{font-size:clamp(48px,5.5vw,80px);line-height:.98;letter-spacing:-.06em;max-width:1040px;margin:0 0 22px;text-wrap:balance}.bs-hero-primary-v3 .bs-lead{max-width:760px;margin:0 0 24px}.bs-hero-actions{display:flex;flex-wrap:wrap;gap:9px}.bs-hero-proof-v3{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:34px;padding-top:20px;border-top:1px solid var(--line)}.bs-hero-proof-v3 span{display:flex;flex-direction:column;gap:1px;padding-right:18px}.bs-hero-proof-v3 span+span{padding-left:18px;border-left:1px solid var(--line)}.bs-hero-proof-v3 strong{font-size:20px;letter-spacing:-.04em}.bs-hero-proof-v3 small{font-size:11px;color:#7a8297}.bs-hero-side-v3{display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px}.bs-profile-card-v3{min-height:355px}.bs-profile-media{position:absolute;inset:0;background:#e7edf7}.bs-profile-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.bs-profile-card-v3:hover .bs-profile-media img{transform:scale(1.025)}.bs-profile-overlay-v3{position:absolute;left:12px;right:12px;bottom:12px;padding:12px 12px 12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid rgba(255,255,255,.72);border-radius:14px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);box-shadow:0 8px 24px rgba(31,43,84,.11)}.bs-profile-overlay-v3 strong{display:block;font-size:15px}.bs-profile-overlay-v3 span{display:block;color:#727b91;font-size:11px}.bs-profile-overlay-v3>a{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:#11162f;color:#fff}.bs-terminal-v3{background:#11162c;color:#f4f6ff;border-color:#11162c;padding:16px 17px;min-height:168px;box-shadow:0 15px 34px rgba(18,24,52,.15)}.bs-window-bar{display:flex;align-items:center;gap:6px;padding-bottom:11px;border-bottom:1px solid rgba(255,255,255,.09);font:500 9px var(--mono);color:#7e869b}.bs-window-bar i{width:7px;height:7px;border-radius:50%;background:#ff605c}.bs-window-bar i:nth-child(2){background:#ffbd44}.bs-window-bar i:nth-child(3){background:#00ca4e}.bs-window-bar span{margin-left:auto}.bs-terminal-main{padding-top:9px;font-size:10px;color:#b7bfd2}.bs-terminal-main p{margin:5px 0}.bs-code-indent{padding-left:18px}.bs-code-muted{color:#91a1c4}.bs-code-string{color:#f07eb5}.bs-code-fn{color:#7daaff}.bs-type-line{margin-top:10px!important;padding:8px 10px;border-radius:9px;background:#171e3b;color:#dbe5ff}.bs-type-line b{color:#7fa9ff}.bs-type-line i{display:inline-block;width:6px;height:12px;margin-left:3px;background:#e266ab;vertical-align:-2px;animation:bsBlink .8s steps(2,end) infinite}@keyframes bsBlink{50%{opacity:0}}
.bs-hero-strip{margin-top:12px;display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.bs-hero-strip>span{min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 10px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#434b64;font-size:12px;box-shadow:0 4px 12px rgba(33,45,86,.025);transition:.2s ease}.bs-hero-strip>span:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(35,48,94,.08)}.bs-hero-strip .bs-icon{font-size:18px}.is-wordpress .bs-icon{color:#28749c}.is-php .bs-icon{color:#777bb4}.is-html .bs-icon{color:#e44d26}.is-css .bs-icon{color:#1572b6}.is-js .bs-icon{color:#d4b830}.is-linux .bs-icon{color:#e4ad1a}

/* Section headers */
.bs-section-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.58fr);gap:38px;align-items:end;margin-bottom:22px}.bs-section-head h2,.bs-page-hero h1,.bs-service-sticky h2,.bs-about-copy-v2 h1{font-size:clamp(34px,4.15vw,58px);line-height:1.02;letter-spacing:-.052em;margin:0;text-wrap:balance}.bs-section-head p{margin:0;color:var(--muted);font-size:15px}.bs-page-hero{padding-top:30px}.bs-page-hero-card{padding:clamp(28px,4.2vw,54px);min-height:310px;display:flex;flex-direction:column;justify-content:center}.bs-page-hero-card h1{max-width:1040px}.bs-page-hero-card .bs-lead{margin:18px 0 0}.bs-page-hero-card .bs-hero-actions{margin-top:22px}

/* Services */
.bs-service-grid-v3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bs-service-card{min-height:205px;padding:20px;display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto 1fr auto;gap:10px 14px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;background:#fff}.bs-service-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);border-color:#d3d9e9}.bs-service-card.is-large{grid-column:span 2;min-height:240px;background:linear-gradient(135deg,#f6f9ff,#fff 54%,#f7f2ff)}.bs-service-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#eef5ff;color:var(--brand-primary);font-size:21px}.bs-service-grid-v3 .bs-service-card:nth-child(2) .bs-service-icon{background:var(--orange-soft);color:#e4512d}.bs-service-grid-v3 .bs-service-card:nth-child(3) .bs-service-icon{background:var(--violet-soft);color:#7251d5}.bs-service-grid-v3 .bs-service-card:nth-child(4) .bs-service-icon{background:var(--yellow-soft);color:#c28b00}.bs-service-grid-v3 .bs-service-card:nth-child(5) .bs-service-icon{background:var(--pink-soft);color:#b32270}.bs-service-num{justify-self:end;color:#a0a7b9;font:700 10px var(--mono)}.bs-service-copy{grid-column:1/4;align-self:end}.bs-card-kicker{display:block;margin-bottom:6px;color:#8a92a7;font:700 9px var(--mono);letter-spacing:.09em;text-transform:uppercase}.bs-service-card h3{margin:0 0 7px;font-size:clamp(20px,2vw,28px);line-height:1.06;letter-spacing:-.035em}.bs-service-card.is-large h3{font-size:clamp(26px,2.7vw,38px)}.bs-service-card p{margin:0;color:#6c748a;font-size:13px;max-width:640px}.bs-service-arrow{grid-column:3;justify-self:end;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#f4f6fb;color:#4c5671;transition:.2s ease}.bs-service-card:hover .bs-service-arrow{transform:translateX(3px);background:#11162f;color:#fff}

/* Why */
.bs-why-grid-v3{display:grid;grid-template-columns:1.2fr repeat(2,.8fr);gap:10px}.bs-why-main{grid-row:span 2;min-height:360px;padding:28px;background:linear-gradient(145deg,#f2f6ff 0,#fff 56%,#f8f1ff 100%)}.bs-brand-sigil{display:inline-flex;margin-bottom:auto;font:850 31px/1 var(--mono);letter-spacing:-.08em;background:linear-gradient(90deg,var(--brand-primary),var(--brand-secondary),var(--brand-accent));-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.82}.bs-why-main h3{margin:52px 0 10px;font-size:clamp(28px,3vw,40px);line-height:1.04;letter-spacing:-.045em;max-width:520px}.bs-why-main p{margin:0;color:#616a82;max-width:620px}.bs-why-pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.bs-why-pills span{padding:7px 10px;border:1px solid #dfe4f0;border-radius:999px;background:rgba(255,255,255,.72);color:#667087;font-size:10px;font-weight:650}.bs-why-item{min-height:174px;padding:20px;transition:.2s ease}.bs-why-item:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}.bs-why-item.is-blue{background:linear-gradient(145deg,#f6faff,#fff)}.bs-why-item.is-violet{background:linear-gradient(145deg,#f8f5ff,#fff)}.bs-why-item.is-pink{background:linear-gradient(145deg,#fff6fa,#fff)}.bs-why-item.is-green{background:linear-gradient(145deg,#f4fbf7,#fff)}.bs-why-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef4ff;color:#3976de;margin-bottom:22px}.bs-why-item.is-violet .bs-why-icon{background:#f0ebff;color:#6d4bd2}.bs-why-item.is-pink .bs-why-icon{background:#fff0f6;color:#b32270}.bs-why-item.is-green .bs-why-icon{background:#eaf9f1;color:#229665}.bs-why-item h3{margin:0 0 5px;font-size:17px;letter-spacing:-.025em}.bs-why-item p{margin:0;color:#71798d;font-size:12px}

/* Portfolio */
.bs-project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bs-project-card{height:100%;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease}.bs-project-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-hover);border-color:#d3d9ea}.bs-project-media{position:relative;display:block;aspect-ratio:1.55/1;overflow:hidden;background:#eef2f8}.bs-project-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1)}.bs-project-card:hover .bs-project-media img{transform:scale(1.045)}.bs-project-open{position:absolute;right:12px;bottom:12px;width:35px;height:35px;display:grid;place-items:center;border-radius:10px;background:rgba(255,255,255,.92);color:#11162f;box-shadow:0 7px 20px rgba(32,43,82,.12)}.bs-project-shine{display:none}.bs-project-body{padding:18px}.bs-project-top{display:flex;justify-content:space-between;gap:12px;color:#9299aa;font:650 9px var(--mono);text-transform:uppercase;letter-spacing:.06em}.bs-project-body h3{margin:8px 0 6px;font-size:22px;line-height:1.08;letter-spacing:-.035em}.bs-project-body p{margin:0;color:#70788b;font-size:12px}.bs-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:12px}.bs-tags span{padding:5px 8px;border-radius:999px;background:#f2f5fa;color:#687187;font-size:9px;font-weight:650}.bs-project-card-foot{display:flex;justify-content:space-between;gap:10px;margin-top:15px;padding-top:12px;border-top:1px solid var(--line);font-size:11px;font-weight:700;color:#385ea9}.bs-project-placeholder{height:100%;display:grid;place-items:center;position:relative;background:linear-gradient(145deg,#edf3ff,#f7f0ff)}.bs-project-placeholder b{font-size:56px;color:rgba(47,75,145,.16)}.bs-project-placeholder i{display:none}.bs-empty,.bs-portfolio-empty{padding:28px}.bs-empty h2,.bs-empty h3,.bs-portfolio-empty h2{margin:0 0 8px}.bs-empty p,.bs-portfolio-empty p{margin:0 0 12px;color:var(--muted)}

/* Code lab */
.bs-code-lab-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:10px}.bs-code-story{padding:28px;background:linear-gradient(145deg,#fff,#f6f9ff)}.bs-code-story h2{font-size:clamp(30px,3.6vw,48px);line-height:1.02;letter-spacing:-.05em;margin:0 0 12px}.bs-code-story p{color:#646d84;margin:0;max-width:650px}.bs-tech-row{display:flex;flex-wrap:wrap;gap:7px;margin-top:24px}.bs-tech-row>span{display:flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#646c81;font-size:10px}.bs-tech-row .bs-icon{font-size:15px}.bs-code-window{background:#11162c;color:#e8ecfb;border-color:#11162c;padding:18px;min-height:300px;display:flex;flex-direction:column}.bs-code-window pre{margin:18px 0 12px;white-space:pre-wrap;overflow:auto;color:#cad2e6;font:500 11px/1.7 var(--mono)}.c-purple{color:#c392ff}.c-string{color:#ff82bb}.c-blue{color:#7bb0ff}.c-key{color:#82ddca}.bs-build-status{margin-top:auto;padding:8px 10px;border-radius:9px;background:#171e3a;color:#91a1c4;font:600 9px var(--mono)}.bs-build-status>span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#2bc17f;margin-right:6px}

/* Tech */
.bs-tech-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.bs-tech-card{min-width:0;display:flex;align-items:center;gap:10px;padding:15px;border:1px solid var(--line);border-radius:15px;background:#fff;transition:.2s ease}.bs-tech-card:hover{transform:translateY(-3px);box-shadow:0 11px 24px rgba(37,48,92,.09)}.bs-tech-card>.bs-icon{font-size:24px}.bs-tech-card strong{display:block;font-size:12px}.bs-tech-card span{display:block;color:#9097a8;font-size:9px;margin-top:2px}

/* Process */
.bs-process-flow{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;list-style:none;margin:0;padding:0}.bs-process-flow::before{content:"";position:absolute;left:7%;right:7%;top:27px;height:1px;background:linear-gradient(90deg,#cbdcf9,#d8cef6,#eccddd);z-index:0}.bs-process-flow li{position:relative;z-index:1}.bs-process-node{width:55px;height:55px;border:1px solid var(--line);border-radius:16px;background:#fff;display:grid;place-items:center;box-shadow:0 8px 20px rgba(35,48,91,.06);margin-bottom:13px;transition:.2s ease}.bs-process-node>.bs-process-step{position:absolute;top:-6px;right:-7px;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:#11162f;color:#fff;display:grid;place-items:center;font:700 8px var(--mono)}.bs-process-node i{font-style:normal;color:#386fda;font-size:19px}.bs-process-flow li:hover .bs-process-node{transform:translateY(-3px);box-shadow:0 12px 26px rgba(38,52,99,.11)}.bs-process-copy h3{margin:0 0 4px;font-size:15px}.bs-process-copy p{margin:0;color:#737b8f;font-size:11px;max-width:260px}

/* Reviews */
.bs-review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bs-review{padding:22px}.bs-review-head{display:flex;justify-content:space-between;gap:12px}.bs-stars{display:flex;color:#f0b400}.bs-stars .bs-icon{font-size:13px}.bs-review-head>span{color:#8b92a4;font-size:10px}.bs-review-text{margin:18px 0;color:#515a70;font-size:14px}.bs-review-foot{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:12px;font-size:11px}.bs-social-proof-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bs-proof-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:20px}.bs-proof-icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-size:23px}.bs-proof-icon.is-google{background:#f3f7ff;color:#4285f4}.bs-proof-icon.is-facebook{background:#eef6ff;color:#1877f2}.bs-proof-copy .bs-eyebrow{margin-bottom:4px}.bs-proof-copy h3{margin:0;font-size:19px}.bs-proof-copy p{margin:2px 0 0;color:#737b8e;font-size:12px}.bs-proof-link{display:inline-flex;align-items:center;gap:5px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;font-size:11px;font-weight:700;color:#4d5873}.bs-proof-link:hover{background:#f4f7fc}

/* FAQ */
.bs-faq-list{display:grid;gap:7px}.bs-faq-list details{overflow:hidden}.bs-faq-list summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;font-weight:700;font-size:14px}.bs-faq-list summary::-webkit-details-marker{display:none}.bs-faq-list summary>span{width:27px;height:27px;display:grid;place-items:center;border-radius:9px;background:#f1f5fb;color:#3574dc;transition:.2s ease}.bs-faq-list details[open] summary>span{transform:rotate(45deg);background:#eef3ff}.bs-faq-list details>div{padding:0 18px 16px;color:#677087;font-size:13px}.bs-faq-list details>div p{margin:0}

/* Subpages */
.bs-subpage-hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:10px}.bs-subpage-hero-grid-v3{grid-template-columns:1.25fr .75fr}.bs-tech-mosaic{padding:20px;background:linear-gradient(145deg,#fff,#f5f8ff)}.bs-tech-mosaic-head strong{display:block;font-size:20px;line-height:1.1;letter-spacing:-.03em;max-width:300px}.bs-tech-mosaic-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-top:22px}.bs-tech-mosaic-grid>span{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}.bs-tech-mosaic-grid .bs-icon{grid-row:1/3;font-size:20px}.bs-tech-mosaic-grid b{font-size:11px}.bs-tech-mosaic-grid small{font-size:8px;color:#9299aa}.bs-subpage-tech-visual,.bs-contact-visual,.bs-local-visual{padding:22px;min-height:300px;background:linear-gradient(145deg,#fff,#f5f8ff)}.bs-subpage-visual-mark{display:block;font:850 34px var(--mono);background:linear-gradient(90deg,var(--brand-primary),var(--brand-secondary),var(--brand-accent));-webkit-background-clip:text;background-clip:text;color:transparent;margin-bottom:22px}.bs-orbit-icon{position:static!important;display:inline-flex!important;align-items:center;gap:7px;margin:4px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:10px}.bs-orbit-code{display:block!important;position:static!important;margin:16px 4px 0;padding:10px;border-radius:10px;background:#11162f;color:#b9c4de;font:500 9px var(--mono)}.bs-service-detail-grid{display:grid;grid-template-columns:minmax(260px,.62fr) minmax(0,1.38fr);gap:10px;align-items:start}.bs-service-sticky{position:sticky;top:92px;padding:24px;min-height:260px;background:#fff}.bs-service-sticky.is-blue{background:linear-gradient(145deg,#f3f8ff,#fff)}.bs-service-sticky.is-orange{background:linear-gradient(145deg,#fff5ef,#fff)}.bs-service-sticky.is-violet{background:linear-gradient(145deg,#f7f3ff,#fff)}.bs-service-sticky.is-yellow{background:linear-gradient(145deg,#fff9e8,#fff)}.bs-service-heading-icon{width:47px;height:47px;display:grid;place-items:center;border-radius:14px;background:#edf4ff;color:#2872d8;font-size:22px;margin-bottom:28px}.bs-service-sticky h2{font-size:clamp(28px,3vw,42px);margin-bottom:10px}.bs-service-sticky p{margin:0;color:#6d758a;font-size:13px}.bs-service-detail-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bs-service-detail-list article{padding:22px;min-height:175px}.bs-service-detail-list article:first-child{grid-column:1/-1}.bs-service-detail-list h3{margin:0 0 8px;font-size:20px;letter-spacing:-.03em}.bs-service-detail-list p{margin:0;color:#6c7489;font-size:13px}.bs-checks{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:16px 0 0;padding:0}.bs-checks li{position:relative;padding-left:17px;color:#596278;font-size:11px}.bs-checks li::before{content:"✓";position:absolute;left:0;color:#2a9b68;font-weight:800}

/* About */
.bs-about-v2-grid{display:grid;grid-template-columns:1.12fr .88fr;gap:10px}.bs-about-copy-v2{padding:clamp(30px,4vw,52px);display:flex;flex-direction:column;justify-content:center}.bs-about-copy-v2 .bs-lead{margin:18px 0 14px}.bs-about-copy-v2>p:not(.bs-lead){color:#697188;max-width:760px}.bs-about-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.bs-about-visual-v2{min-height:480px}.bs-about-photo-v2{position:absolute;inset:0}.bs-about-photo-v2 img{width:100%;height:100%;object-fit:cover}.bs-about-badge{position:absolute;padding:9px 11px;border:1px solid rgba(255,255,255,.78);border-radius:12px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);box-shadow:0 8px 22px rgba(35,48,92,.10)}.bs-about-badge.is-exp{left:14px;bottom:14px}.bs-about-badge.is-wp{right:14px;top:14px;display:flex;align-items:center;gap:7px}.bs-about-badge strong{font-size:17px}.bs-about-badge span{font-size:9px;color:#71798c}.bs-about-brackets{position:absolute;right:18px;bottom:20px;color:rgba(17,22,47,.05);font:850 60px var(--mono)}.bs-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bs-feature-grid article{padding:22px}.bs-feature-grid h3{margin:0 0 7px;font-size:19px}.bs-feature-grid p{margin:0;color:#6d7589;font-size:12px}

/* Contact */
.bs-contact-visual-links{display:grid;gap:8px}.bs-contact-visual-links a,.bs-contact-direct a{display:flex;align-items:center;gap:10px;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}.bs-contact-visual-links .bs-icon,.bs-contact-direct .bs-icon{font-size:20px}.bs-contact-visual-links strong,.bs-contact-direct strong{display:block;font-size:11px}.bs-contact-visual-links small,.bs-contact-direct small{display:block;color:#8d94a6;font-size:9px}.is-whatsapp .bs-icon{color:#1cae5f}.is-facebook .bs-icon{color:#1877f2}.is-email .bs-icon{color:#5865d8}.bs-contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px}.bs-contact-info,.bs-contact-form-wrap{padding:26px}.bs-contact-info h2,.bs-contact-form-wrap h2{margin:16px 0 8px;font-size:28px;letter-spacing:-.04em}.bs-contact-info>p{color:#6b7387}.bs-contact-info dl{margin:22px 0}.bs-contact-info dl>div{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.bs-contact-info dt{color:#9097a8;font-size:10px}.bs-contact-info dd{margin:0;font-size:12px}.bs-contact-direct{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:18px 0}.bs-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bs-form-grid label{display:grid;gap:5px}.bs-form-grid label>span{font-size:10px;font-weight:700;color:#596177}.bs-form-grid small{font-weight:400;color:#9298a8}.bs-span-2{grid-column:1/-1}.bs-contact-form input,.bs-contact-form select,.bs-contact-form textarea{width:100%;border:1px solid var(--line-strong);border-radius:11px;background:#fbfcff;color:#161b34;padding:10px 11px;outline:none;transition:.2s ease}.bs-contact-form input:focus,.bs-contact-form select:focus,.bs-contact-form textarea:focus{border-color:#96b5ed;box-shadow:0 0 0 3px rgba(23,108,243,.08);background:#fff}.bs-contact-form textarea{resize:vertical}.bs-form-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:15px}.bs-form-footer p{max-width:560px;margin:0;color:#9298a8;font-size:9px}.bs-hp{position:absolute!important;left:-9999px!important}.bs-form-status{padding:10px;border-radius:10px;background:#fff7e6;margin-bottom:12px;font-size:11px}.bs-form-status.is-success{background:#eaf9f1;color:#18794e}.bs-form-status.is-error{background:#fff0f2;color:#a53c50}.bs-legal-card{padding:18px 22px}.bs-legal-card p{margin:0;color:#646c81;font-size:11px}

/* Local */
.bs-local-brand{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.bs-local-brand span{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:10px}.bs-local-place{display:block;font-size:38px;font-weight:800;letter-spacing:-.05em}.bs-local-points{display:grid;gap:8px;margin-top:20px}.bs-local-points span{padding:10px;border-radius:10px;background:#fff;border:1px solid var(--line);font-size:10px}

/* Portfolio tools */
.bs-portfolio-hero{position:relative}.bs-portfolio-stat{position:absolute;right:28px;bottom:28px;display:flex;align-items:end;gap:8px}.bs-portfolio-stat strong{font-size:42px;line-height:1}.bs-portfolio-stat span{max-width:60px;color:#8c93a4;font-size:9px}.bs-portfolio-tools{display:grid;grid-template-columns:minmax(240px,1fr) 2fr auto;align-items:center;gap:10px;padding:10px}.bs-portfolio-search{height:43px;display:flex;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line);border-radius:11px;background:#f9fbff}.bs-portfolio-search input{width:100%;border:0;outline:0;background:transparent;font-size:12px}.bs-portfolio-search button{border:0;background:transparent;color:#8d95a6}.bs-filter{display:flex;flex-wrap:wrap;gap:5px}.bs-filter button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px 9px;color:#6d7588;font-size:10px;cursor:pointer}.bs-filter button.is-active{background:#11162f;color:#fff;border-color:#11162f}.bs-sort{display:flex;align-items:center;gap:6px;color:#8f96a7;font-size:9px}.bs-sort select{border:1px solid var(--line);border-radius:9px;background:#fff;padding:7px}.bs-portfolio-summary{padding:10px 4px;color:#8a91a3;font-size:10px}.bs-project-wrap{min-width:0}

/* Project single */
.bs-project-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.bs-project-title{padding:clamp(28px,4vw,50px);min-height:470px;display:flex;flex-direction:column;justify-content:center}.bs-project-title h1{font-size:clamp(40px,5vw,68px);line-height:.98;letter-spacing:-.055em;margin:8px 0 18px}.bs-back{font-size:11px;color:#647089;margin-bottom:auto}.bs-project-hero-image{min-height:470px;background:#eef2f8}.bs-project-hero-image>img{width:100%;height:100%;object-fit:cover}.bs-project-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.bs-project-facts>div{padding:14px}.bs-project-facts span{display:block;color:#9298a9;font-size:9px;margin-bottom:3px}.bs-project-facts strong{font-size:11px}.bs-case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.bs-case-grid article{padding:23px}.bs-case-grid h2{margin:0 0 8px;font-size:24px}.bs-case-grid p{margin:0;color:#687087}.bs-gallery{columns:2;column-gap:10px}.bs-gallery-item{width:100%;border:0;padding:0;margin:0 0 10px;border-radius:16px;overflow:hidden;background:#fff;cursor:zoom-in}.bs-lightbox{position:fixed;inset:0;z-index:500;display:none;place-items:center;padding:24px;background:rgba(16,21,47,.82);backdrop-filter:blur(9px)}.bs-lightbox.is-open{display:grid}.bs-lightbox img{max-width:min(1400px,95vw);max-height:88vh;border-radius:15px}.bs-lightbox>button{position:absolute;top:20px;right:20px;width:44px;height:44px;border:0;border-radius:12px;background:#fff;color:#11162f}

/* Blog + article */
.bs-blog-hero{display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center}.bs-blog-hero-mark{font:850 clamp(48px,8vw,120px)/1 var(--mono);color:rgba(71,82,150,.07);letter-spacing:-.1em}.bs-blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.bs-post-card{display:grid;grid-template-columns:190px 1fr;min-height:230px;transition:.2s ease}.bs-post-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}.bs-post-card.is-featured{grid-column:1/-1;grid-template-columns:1.05fr .95fr;min-height:390px}.bs-post-thumb{display:block;min-height:100%;background:#eef2f8;overflow:hidden}.bs-post-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}.bs-post-card:hover .bs-post-thumb img{transform:scale(1.035)}.bs-post-thumb-placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#eef4ff,#f8f0ff)}.bs-post-thumb-placeholder span{font:850 32px var(--mono);color:rgba(39,72,150,.16)}.bs-post-body,.bs-post-card>div:not(.bs-post-thumb){padding:20px}.bs-post-card.is-featured .bs-post-body{padding:34px;display:flex;flex-direction:column;justify-content:center}.bs-post-meta{display:flex;gap:8px;color:#949aab;font:650 9px var(--mono);text-transform:uppercase}.bs-post-card h2{margin:8px 0 8px;font-size:22px;line-height:1.06;letter-spacing:-.035em}.bs-post-card.is-featured h2{font-size:clamp(30px,3.6vw,48px)}.bs-post-card p{margin:0 0 12px;color:#6e768a;font-size:12px}.navigation.pagination{margin-top:24px}.nav-links{display:flex;gap:6px}.nav-links .page-numbers{padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:11px}.nav-links .current{background:#11162f;color:#fff}.bs-article-hero{overflow:hidden}.bs-article-hero img{width:100%;max-height:660px;object-fit:cover}.bs-article-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:10px;align-items:start}.bs-article-aside{position:sticky;top:92px;padding:20px;display:grid;gap:6px}.bs-article-aside a{color:#386fce;font-size:11px}.bs-prose{padding:clamp(24px,4vw,50px);max-width:100%}.bs-prose>*{max-width:820px;margin-left:auto;margin-right:auto}.bs-prose h2,.bs-prose h3{color:#14192f;letter-spacing:-.03em}.bs-prose h2{font-size:30px;margin-top:1.7em}.bs-prose h3{font-size:22px;margin-top:1.5em}.bs-prose p,.bs-prose li{color:#485168}.bs-prose a{color:#1f5fc7;text-decoration:underline;text-underline-offset:3px}.bs-prose img{border-radius:14px}.bs-prose blockquote{border-left:3px solid var(--brand-primary);margin:24px auto;padding:5px 0 5px 20px;color:#5d6680}

/* Footer */
.bs-footer{padding:var(--section) 0 28px}.bs-footer-main{padding:clamp(26px,3.4vw,42px);display:grid;grid-template-columns:1fr auto;gap:30px;align-items:center;background:linear-gradient(125deg,#f0f6ff,#fff 48%,#f8f1ff);min-height:0}.bs-footer-main h2{font-size:clamp(30px,3.8vw,50px);line-height:1.02;letter-spacing:-.05em;margin:0;max-width:760px}.bs-footer-cta{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.bs-footer-watermark{position:absolute;right:24%;bottom:-42px;font:900 120px/1 var(--mono);color:rgba(46,66,137,.035);pointer-events:none}.bs-footer-grid{display:grid;grid-template-columns:1.35fr .6fr .6fr 1fr;gap:30px;padding:30px 8px 22px}.bs-footer-grid>div{display:flex;flex-direction:column;align-items:flex-start;gap:7px}.bs-footer-brand img{width:auto;max-height:37px}.bs-footer-grid p{margin:0;color:#7b8295;font-size:10px}.bs-footer-grid a{color:#656d81;font-size:11px}.bs-footer-grid a:hover{color:var(--brand-primary)}.bs-footer-label{font:700 9px var(--mono);color:#949aab;text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}.bs-footer-social-icons{display:flex;gap:6px;margin-top:6px}.bs-footer-social-icons a{width:34px;height:34px;border:1px solid var(--line);border-radius:10px;background:#fff;display:grid;place-items:center;font-size:16px}.bs-footer-social-icons .is-facebook{color:#1877f2}.bs-footer-social-icons .is-whatsapp{color:#1cae5f}.bs-footer-social-icons .is-email{color:#5865d8}.bs-footer-social-icons .is-google{color:#4285f4}.bs-footer-bottom{border-top:1px solid var(--line);padding:16px 8px 0;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#9097a8;font:500 9px var(--mono)}.bs-socials{display:flex;gap:10px}.bs-mobile-dock{display:none}

/* Floating contact */
.bs-contact-fab{position:fixed;z-index:190;right:22px;bottom:22px}.bs-contact-fab-toggle{height:44px;padding:0 14px;border:1px solid #d8ddec;border-radius:13px;background:#fff;color:#17203a;display:flex;align-items:center;gap:8px;font-weight:720;font-size:12px;box-shadow:0 13px 34px rgba(37,48,92,.15);cursor:pointer}.bs-contact-fab-toggle .bs-icon{color:var(--brand-primary)}.bs-contact-fab-menu{position:absolute;right:0;bottom:52px;width:250px;padding:7px;border:1px solid var(--line);border-radius:15px;background:#fff;box-shadow:0 20px 50px rgba(37,48,92,.16);opacity:0;visibility:hidden;transform:translateY(7px);transition:.2s ease}.bs-contact-fab.is-open .bs-contact-fab-menu{opacity:1;visibility:visible;transform:none}.bs-contact-fab-menu a{display:grid;grid-template-columns:35px 1fr;column-gap:9px;padding:9px;border-radius:10px}.bs-contact-fab-menu a:hover{background:#f5f7fb}.bs-contact-fab-menu a>span{grid-row:1/3;width:34px;height:34px;border-radius:10px;background:#f4f7fb;display:grid;place-items:center}.bs-contact-fab-menu strong{font-size:11px}.bs-contact-fab-menu small{color:#8d94a5;font-size:9px}

/* 404 */
.bs-404{padding:60px 0}.bs-404 h1{font-size:60px;margin:0 0 15px}

/* Reveal / progress */
.bs-scroll-progress{position:fixed;z-index:1000;top:0;left:0;right:0;height:2px;pointer-events:none}.admin-bar .bs-scroll-progress{top:32px}.bs-scroll-progress span{display:block;width:100%;height:100%;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--brand-primary),var(--brand-secondary),var(--brand-accent))}.bs-js [data-reveal]{opacity:0;transform:translateY(12px);transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}.bs-js [data-reveal].is-visible{opacity:1;transform:none}


/* =========================================================
   barmSTUDIO Workbench 4.0 — clean responsive layer
   One responsive system only. No legacy breakpoint stacking.
   ========================================================= */
html,body{max-width:100%;overflow-x:clip}
.bs-shell{position:relative;z-index:2}
.bs-main,.bs-main>*,.bs-card,.bs-topbar,.bs-main-nav,.bs-menu,.bs-top-actions,[class*="-grid"]>*{min-width:0}
.bs-section{scroll-margin-top:96px}

/* Soft moving background: visible, restrained, inexpensive. */
body::after{content:"";position:fixed;z-index:-1;inset:-18vh -14vw;pointer-events:none;background:radial-gradient(circle at 15% 18%,rgba(23,108,243,.12),transparent 25%),radial-gradient(circle at 82% 22%,rgba(108,71,217,.11),transparent 24%),radial-gradient(circle at 58% 82%,rgba(179,34,112,.07),transparent 24%);filter:blur(22px);animation:bsV4Ambient 24s ease-in-out infinite alternate;will-change:transform}
@keyframes bsV4Ambient{to{transform:translate3d(4vw,5vh,0) scale(1.06)}}

/* Header hardening */
.bs-topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:18px}
.bs-main-nav{width:100%;overflow:visible}
.bs-menu{justify-content:center;flex-wrap:nowrap;gap:2px}
.bs-menu li{list-style:none;min-width:0}
.bs-menu a{white-space:nowrap}
.bs-menu li.is-active>a,.bs-menu a[aria-current="page"]{color:#11162f;background:#f2f5fb}
.bs-mobile-nav a.is-active{background:#f2f5fb;color:#11162f}

/* Current command palette markup */
.bs-command{background:rgba(18,23,45,.28);backdrop-filter:blur(8px)}
.bs-command-dialog{position:relative;width:min(650px,calc(100% - 28px));border:1px solid var(--line-strong);border-radius:20px;background:#fff;box-shadow:0 30px 90px rgba(25,34,73,.23);padding:8px;transform:translateY(-10px) scale(.985);transition:.2s ease}
.bs-command.is-open .bs-command-dialog{transform:none}
.bs-command-head{height:58px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 10px;border-bottom:1px solid var(--line)}
.bs-command-head input{min-width:0;border:0;outline:0;background:transparent;color:var(--text)}
.bs-command-head button{width:36px;height:36px;border:0;border-radius:10px;background:#f5f7fb;display:grid;place-items:center;cursor:pointer}
.bs-command-dialog .bs-command-list{max-height:min(55vh,430px);overflow:auto}
.bs-command-dialog .bs-command-list a{display:block;padding:11px 12px;border-radius:11px;font-size:14px}

/* Mobile menu */
.bs-mobile-panel{display:flex;position:fixed;z-index:350;inset:0;background:rgba(248,250,255,.98);backdrop-filter:blur(18px);flex-direction:column;padding:18px;transform:translateX(105%);visibility:hidden;transition:transform .28s cubic-bezier(.2,.7,.2,1),visibility .28s}
.bs-mobile-panel.is-open{transform:none;visibility:visible}
.bs-mobile-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.bs-mobile-panel-head img{width:auto;max-height:31px}
.bs-mobile-panel-head button{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff}
.bs-mobile-nav{display:grid;gap:4px;padding:24px 0 18px}
.bs-mobile-nav a{padding:10px 12px;border-radius:12px;font-size:21px;font-weight:760;letter-spacing:-.035em}
.bs-mobile-links{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bs-mobile-links a{display:grid;grid-template-columns:auto 1fr;column-gap:9px;padding:13px;border:1px solid var(--line);border-radius:14px;background:#fff}
.bs-mobile-links a>span{grid-row:1/3;color:var(--brand-primary);font:700 10px var(--mono)}
.bs-mobile-links strong{font-size:12px}.bs-mobile-links small{font-size:9px;color:var(--muted)}

/* Cards and motion */
.bs-card{transition:border-color .22s ease,box-shadow .22s ease,transform .22s ease}
@media(hover:hover) and (pointer:fine){.bs-card:hover{border-color:#d8deee;box-shadow:0 16px 42px rgba(36,48,91,.08)}.bs-service-card:hover,.bs-project-card:hover,.bs-tech-card:hover{transform:translateY(-4px)}}

/* Portfolio recovery / display */
.bs-project-card-actions{display:flex;align-items:center;gap:8px}
.bs-inline-icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:11px;background:#fff;color:#11162f;cursor:pointer;transition:.2s ease}
.bs-inline-icon:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(37,48,92,.08);border-color:#cfd7ea}
.bs-project-media img{background:#fff}.bs-project-card .bs-project-top span:last-child{white-space:nowrap}
.bs-project-media{overflow:hidden}.bs-project-media img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.bs-project-card:hover .bs-project-media img{transform:scale(1.025)}

/* Local landing icons: direct-child selector prevents SVG wrapper corruption. */
.bs-local-points{display:grid;gap:9px;margin-top:20px}
.bs-local-points>span{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:11px;background:#fff;border:1px solid var(--line);font-size:11px;font-weight:650}
.bs-local-points>span>.bs-icon{display:grid!important;place-items:center!important;width:22px!important;height:22px!important;min-width:22px!important;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--brand-primary)!important}
.bs-local-points>span.is-wordpress>.bs-icon{color:#28749c!important}.bs-local-points>span>.bs-icon svg{display:block;width:100%!important;height:100%!important}

/* About: fill the column below the portrait rather than leaving dead space. */
.bs-about-aside{display:grid;gap:12px;align-content:start}
.bs-about-mini{padding:18px;display:grid;gap:14px}
.bs-about-mini-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:12px;align-items:center}
.bs-about-mini-item>span{width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:#f4f7ff;color:var(--brand-primary)}
.bs-about-mini-item strong{display:block;font-size:14px;overflow-wrap:anywhere}.bs-about-mini-item small{display:block;color:#6f7891;font-size:12px}

/* Process: icon is mathematically centered, number stays outside node. */
.bs-process-node{display:grid!important;place-items:center!important;padding:0!important}
.bs-process-node>.bs-process-symbol{display:grid!important;place-items:center!important;width:100%!important;height:100%!important;padding:0!important;margin:0!important}
.bs-process-node .bs-icon{display:grid!important;place-items:center!important;width:20px!important;height:20px!important;margin:0!important}

/* Reviews carousel */
.bs-review-carousel{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;align-items:center}
.bs-review-viewport{min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x mandatory;scroll-behavior:smooth}
.bs-review-viewport::-webkit-scrollbar{display:none}.bs-review-track{display:flex!important;grid-template-columns:none!important;gap:14px;padding:2px}
.bs-review-track>.bs-review{flex:0 0 calc(33.333% - 10px);min-width:280px;scroll-snap-align:start}
.bs-review-nav{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;transition:.2s ease}
.bs-review-nav.is-prev .bs-icon{transform:rotate(180deg)}.bs-review-nav:not(.is-prev) .bs-icon{transform:none}
.bs-review-nav:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(35,44,84,.09)}.bs-review-nav:disabled{opacity:.35;cursor:default;transform:none;box-shadow:none}

/* Lightbox */
.bs-lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:28px;background:rgba(10,14,28,.86);opacity:0;pointer-events:none;transition:opacity .2s ease}
.bs-lightbox.is-open{opacity:1;pointer-events:auto}.bs-lightbox img{max-width:min(94vw,1800px);max-height:90vh;object-fit:contain;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.38);background:#fff}
.bs-lightbox [data-lightbox-close]{position:absolute;top:18px;right:18px;width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.22);border-radius:12px;background:rgba(255,255,255,.12);color:#fff;cursor:pointer}.bs-project-hero-zoom{display:block;width:100%;padding:0;border:0;background:none;cursor:zoom-in}

/* Editorial article hero */
.bs-article-hero-v2{padding-top:38px}.bs-article-hero-shell{position:relative;min-height:clamp(400px,46vw,600px);display:flex;align-items:flex-end;background:#11162f;isolation:isolate}
.bs-article-hero-bg{position:absolute;inset:0;z-index:0}.bs-article-hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.94) contrast(1.02)}
.bs-article-hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(10,15,36,.04) 8%,rgba(10,15,36,.25) 45%,rgba(10,15,36,.91) 100%),linear-gradient(90deg,rgba(10,15,36,.50),transparent 72%)}
.bs-article-hero-copy{position:relative;z-index:2;width:min(980px,94%);padding:clamp(28px,5vw,58px);color:#fff}.bs-article-hero-copy h1{margin:12px 0 14px;font-size:clamp(38px,5vw,68px);line-height:1.01;letter-spacing:-.052em;text-wrap:balance}.bs-article-hero-copy .bs-lead{margin:0;color:rgba(255,255,255,.84);max-width:760px}
.bs-article-meta{display:flex;flex-wrap:wrap;gap:8px 14px;font-size:11px;color:rgba(255,255,255,.76)}.bs-article-meta>*+*::before{content:"•";margin-right:8px;opacity:.55}.bs-article-author-inline{display:flex;align-items:center;gap:9px;margin-top:20px;font-size:12px}.bs-article-author-inline span{color:rgba(255,255,255,.67)}
.bs-article-hero-v2.no-image .bs-article-hero-shell{min-height:300px;background:linear-gradient(135deg,#fff,#f5f8ff);color:var(--text)}.bs-article-hero-v2.no-image .bs-article-hero-overlay{display:none}.bs-article-hero-v2.no-image .bs-article-hero-copy{color:var(--text)}.bs-article-hero-v2.no-image .bs-article-hero-copy .bs-lead,.bs-article-hero-v2.no-image .bs-article-meta,.bs-article-hero-v2.no-image .bs-article-author-inline span{color:var(--muted)}
.bs-article-content-section{padding-top:24px}.bs-article-layout-v2{grid-template-columns:minmax(190px,.28fr) minmax(0,1fr);gap:14px;align-items:start}.bs-article-layout-v2 .bs-article-aside{padding:20px;top:100px}.bs-article-layout-v2 .bs-prose{padding:clamp(24px,4vw,48px)}.bs-prose img{border-radius:14px}

/* Headline wrapping */
.bs-page-hero-card h1,.bs-section-head h2,.bs-project-title h1,.bs-hero h1,.bs-footer-main h2{text-wrap:balance}

/* ===== breakpoint 1: compact desktop/tablet ===== */
@media(max-width:1180px){
  .bs-main-nav{display:none}.bs-mobile-toggle{display:flex}.bs-command-trigger{display:none}
  .bs-hero-v3-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr)}
  .bs-service-grid-v3{grid-template-columns:1fr 1fr}.bs-service-card.is-large{grid-column:1/-1}
  .bs-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bs-tech-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bs-service-detail-grid{grid-template-columns:1fr}.bs-service-sticky{position:relative;top:auto;min-height:0}.bs-service-detail-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bs-footer-grid{grid-template-columns:1.2fr .7fr .7fr 1fr}
}

/* ===== breakpoint 2: tablet ===== */
@media(max-width:900px){
  :root{--pad:16px;--section:56px;--radius:19px}
  .bs-shell{width:min(calc(100% - 32px),var(--max))}
  .bs-topbar{top:8px;margin-top:8px;padding:8px 9px 8px 12px;border-radius:16px}.admin-bar .bs-topbar{top:54px}
  .bs-brand{min-width:0}.bs-brand-logo img,.bs-brand-fallback{max-width:170px;max-height:30px}.bs-top-actions>.bs-social-button{display:none}
  .bs-hero{padding-top:24px}.bs-hero-v3-grid{grid-template-columns:1fr}.bs-hero-primary-v3{min-height:0;padding:34px}.bs-hero h1{font-size:clamp(44px,7.6vw,64px)}
  .bs-hero-side-v3{grid-template-columns:1fr 1fr;grid-template-rows:none}.bs-profile-card-v3,.bs-terminal-v3{min-height:300px}
  .bs-section-head{grid-template-columns:1fr;gap:10px;margin-bottom:20px}.bs-section-head h2,.bs-page-hero h1,.bs-service-sticky h2,.bs-about-copy-v2 h1{font-size:clamp(34px,6.5vw,48px)}
  .bs-why-grid-v3{grid-template-columns:1fr 1fr}.bs-why-main{grid-column:1/-1;grid-row:auto;min-height:250px}
  .bs-code-lab-grid,.bs-subpage-hero-grid,.bs-subpage-hero-grid-v3,.bs-location-grid,.bs-contact-layout,.bs-about-v2-grid,.bs-project-hero-grid{grid-template-columns:1fr}
  .bs-tech-mosaic,.bs-local-visual,.bs-subpage-tech-visual,.bs-contact-visual{min-height:0}
  .bs-feature-grid{grid-template-columns:1fr 1fr}.bs-process-flow{grid-template-columns:1fr 1fr;gap:22px}.bs-process-flow::before{display:none}
  .bs-portfolio-tools{grid-template-columns:1fr}.bs-sort{justify-self:start}.bs-blog-grid{grid-template-columns:1fr}.bs-post-card,.bs-post-card.is-featured{grid-column:auto;grid-template-columns:1fr;min-height:0}
  .bs-project-facts{grid-template-columns:1fr 1fr}.bs-case-grid{grid-template-columns:1fr}.bs-article-layout-v2{grid-template-columns:1fr}.bs-article-layout-v2 .bs-article-aside{position:relative;top:auto;order:2}
  .bs-footer-main{grid-template-columns:1fr}.bs-footer-grid{grid-template-columns:1fr 1fr}.bs-footer-brand{grid-column:1/-1}
  .bs-review-track>.bs-review{flex-basis:calc(50% - 7px)}
}

/* ===== breakpoint 3: phone ===== */
@media(max-width:720px){
  :root{--pad:12px;--section:46px;--radius:17px}
  body{font-size:15px}.bs-shell{width:calc(100% - 24px)}
  .bs-topbar{grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:7px 8px 7px 11px}.admin-bar .bs-topbar{top:52px}
  .bs-brand-logo img,.bs-brand-fallback{max-width:155px;max-height:28px}.bs-top-actions>.bs-btn,.bs-top-actions>.bs-social-button,.bs-top-actions>.bs-command-trigger{display:none!important}.bs-mobile-toggle{display:flex!important}
  .bs-main>.bs-hero:first-child,.bs-main>.bs-page-hero:first-child,.bs-article-hero-v2{padding-top:20px}
  .bs-hero-primary-v3{padding:24px}.bs-hero-kicker{margin-bottom:20px}.bs-hero-kicker>.bs-mono{display:none}.bs-hero h1{font-size:clamp(38px,11vw,50px);line-height:1.01}.bs-hero-primary-v3 .bs-lead{font-size:15px}.bs-hero-actions{display:grid;grid-template-columns:1fr}.bs-hero-actions .bs-btn{width:100%}
  .bs-hero-proof-v3{margin-top:24px;grid-template-columns:1fr 1fr;row-gap:14px}.bs-hero-proof-v3 span:nth-child(3){grid-column:1/-1;border-left:0;padding-left:0}
  .bs-hero-side-v3{grid-template-columns:1fr;gap:10px}.bs-profile-card-v3{height:260px;min-height:260px}.bs-terminal-v3{min-height:0;height:auto;padding-bottom:4px}.bs-terminal-main{padding-bottom:14px}
  .bs-hero-strip{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.bs-hero-strip>span{height:43px;font-size:10px}
  .bs-page-hero-card{padding:22px;min-height:0}.bs-page-hero-card h1,.bs-section-head h2,.bs-about-copy-v2 h1,.bs-service-sticky h2{font-size:clamp(30px,9.3vw,40px);line-height:1.04}.bs-page-hero-card .bs-lead{font-size:15px}
  .bs-service-grid-v3,.bs-why-grid-v3,.bs-project-grid,.bs-tech-grid,.bs-feature-grid,.bs-service-detail-list{grid-template-columns:1fr!important}.bs-service-card.is-large,.bs-why-main{grid-column:auto}.bs-service-card,.bs-feature-grid article,.bs-service-detail-list article{min-height:0}.bs-service-sticky{padding:21px}.bs-checks{grid-template-columns:1fr}
  .bs-process-flow{grid-template-columns:1fr;gap:16px}.bs-process-flow li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:start}.bs-process-node{margin:0}.bs-process-copy{min-width:0}
  .bs-about-visual-v2.bs-about-visual-compact{height:260px;min-height:260px;max-height:260px}.bs-about-mini{padding:16px}
  .bs-tech-mosaic-grid{grid-template-columns:1fr 1fr}.bs-local-place{font-size:34px}.bs-local-points{margin-top:14px}
  .bs-contact-info,.bs-contact-form-wrap{padding:20px}.bs-form-grid{grid-template-columns:1fr}.bs-span-2{grid-column:auto}.bs-form-footer{flex-direction:column;align-items:flex-start}
  .bs-portfolio-tools{grid-template-columns:1fr;gap:9px;padding:10px}.bs-filter{display:flex;overflow-x:auto;gap:7px;padding-bottom:2px;scrollbar-width:none}.bs-filter::-webkit-scrollbar{display:none}.bs-filter button{flex:0 0 auto;white-space:nowrap}.bs-sort{justify-self:stretch;display:flex;justify-content:space-between;align-items:center}.bs-sort select{min-width:145px}
  .bs-project-grid{gap:12px}.bs-project-media{aspect-ratio:1.45/1}.bs-project-body{padding:17px}.bs-project-body h3{font-size:23px;line-height:1.06}.bs-project-top{gap:7px;flex-wrap:wrap}.bs-project-title,.bs-project-hero-image{min-height:0}.bs-project-title{padding:22px}.bs-project-hero-image{aspect-ratio:1.45/1}.bs-project-hero-image img{width:100%;height:100%;object-fit:cover}.bs-project-facts{grid-template-columns:1fr}
  .bs-review-carousel{grid-template-columns:1fr}.bs-review-nav{display:none}.bs-review-track{gap:10px;padding:1px 1px 8px}.bs-review-track>.bs-review{flex:0 0 88%;min-width:0}.bs-review{padding:18px}
  .bs-footer-main{padding:20px}.bs-footer-main h2{font-size:29px}.bs-footer-grid{grid-template-columns:1fr}.bs-footer-brand{grid-column:auto}.bs-footer-grid>div{padding-top:12px;border-top:1px solid var(--line)}.bs-footer-bottom{flex-direction:column;align-items:flex-start;gap:7px;padding-bottom:12px}.bs-footer-watermark{display:none}
  .bs-contact-fab{right:12px;bottom:12px}.bs-contact-fab-toggle span{display:none}.bs-contact-fab-toggle{width:46px;padding:0;justify-content:center}.bs-contact-fab-menu{right:0}
  .bs-article-hero-shell{min-height:350px;border-radius:18px}.bs-article-hero-copy{width:100%;padding:24px 20px}.bs-article-hero-copy h1{font-size:clamp(31px,9.5vw,42px);line-height:1.02}.bs-article-hero-copy .bs-lead{font-size:14px}.bs-article-meta{font-size:10px;gap:5px 9px}.bs-article-meta>*+*::before{margin-right:4px}.bs-article-content-section{padding-top:18px}.bs-article-layout-v2 .bs-prose{padding:20px}.bs-prose{font-size:16px;line-height:1.72}
  .bs-lightbox{padding:12px}.bs-lightbox img{max-width:100%;max-height:84vh}
}

/* ===== breakpoint 4: small phone ===== */
@media(max-width:440px){
  :root{--pad:9px;--section:42px}.bs-shell{width:calc(100% - 18px)}
  .bs-brand-logo img,.bs-brand-fallback{max-width:138px;max-height:26px}.bs-mobile-panel{padding:12px}.bs-mobile-nav a{font-size:19px;padding:8px 10px}.bs-mobile-links{grid-template-columns:1fr}
  .bs-hero-primary-v3{padding:20px}.bs-hero h1{font-size:clamp(35px,10.7vw,45px)}.bs-profile-card-v3{height:235px;min-height:235px}.bs-terminal-v3{font-size:10px}.bs-terminal-main{padding-inline:14px}
  .bs-page-hero-card{padding:20px}.bs-page-hero-card h1,.bs-section-head h2,.bs-about-copy-v2 h1,.bs-service-sticky h2{font-size:clamp(28px,9vw,36px)}
  .bs-tech-mosaic-grid{grid-template-columns:1fr}.bs-about-visual-v2.bs-about-visual-compact{height:235px;min-height:235px;max-height:235px}
  .bs-project-media{aspect-ratio:1.32/1}.bs-project-body{padding:15px}.bs-project-body h3{font-size:21px}.bs-review-track>.bs-review{flex-basis:92%}
  .bs-footer-main{padding:16px}.bs-footer-main h2{font-size:26px}.bs-article-hero-shell{min-height:330px}.bs-article-hero-copy{padding:22px 18px}
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body::after,.bs-hero-mesh i,.bs-status i{animation:none!important}.bs-js [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}.bs-card,.bs-btn,.bs-project-media img{transition:none!important}}

/* Portrait treatment */
.bs-profile-media::after,.bs-about-photo-v2::after{content:"";position:absolute;inset:auto 0 0;height:28%;pointer-events:none;background:linear-gradient(to bottom,transparent,rgba(245,248,253,.30))}
.bs-profile-media img{object-position:center 30%}.bs-about-photo-v2 img{object-position:center 24%}

/* ===== mobile-hardening.css ===== */
/* barmSTUDIO Workbench 4.1 — final mobile isolation layer.
   Loaded at the end of <head> to override legacy CSS/JS plugin output. */
@media (max-width: 780px) {
  :root{--pad:12px;--section:42px;--radius:17px}
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  body.bs-workbench{font-size:15px!important;line-height:1.55!important}
  .bs-shell{width:calc(100% - 20px)!important;max-width:none!important;margin:0 10px!important}
  .bs-main,.bs-main>*,.bs-card,.bs-section,.bs-section>*,[class*="bs-"]{min-width:0}
  .bs-card{max-width:100%!important}
  .bs-workbench h1,.bs-workbench h2,.bs-workbench h3,.bs-workbench h4,.bs-workbench p,.bs-workbench li,.bs-workbench a,.bs-workbench span,.bs-workbench strong,.bs-workbench small{word-break:normal!important;overflow-wrap:break-word!important;hyphens:none!important}
  .bs-workbench h1,.bs-workbench h2,.bs-workbench h3{max-width:100%!important;text-wrap:wrap!important;position:relative!important}
  .bs-workbench p{max-width:100%!important}
  .bs-section{padding-top:42px!important}

  /* Header */
  .bs-topbar{position:sticky!important;top:8px!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;align-items:center!important;gap:8px!important;padding:7px 8px 7px 11px!important;margin-top:8px!important;border-radius:15px!important;min-height:50px!important}
  .admin-bar .bs-topbar{top:54px!important}
  .bs-main-nav{display:none!important}
  .bs-brand{min-width:0!important;width:auto!important}
  .bs-brand-logo,.bs-brand-logo .custom-logo-link{display:flex!important;align-items:center!important;max-width:100%!important}
  .bs-brand-logo img,.bs-brand-fallback{width:auto!important;max-width:150px!important;max-height:28px!important}
  .bs-top-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:5px!important}
  .bs-top-actions>.bs-btn,.bs-top-actions>.bs-social-button,.bs-top-actions>.bs-command-trigger{display:none!important}
  .bs-mobile-toggle{display:grid!important;place-items:center!important;width:39px!important;height:39px!important;flex:0 0 39px!important}

  /* Hero — compact, linear, no absolute text overlays. */
  .bs-main>.bs-hero:first-child,.bs-main>.bs-page-hero:first-child{padding-top:18px!important}
  .bs-hero-v3-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
  .bs-hero-primary-v3{display:block!important;min-height:0!important;height:auto!important;padding:22px 19px!important}
  .bs-hero-kicker{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;margin:0 0 18px!important}
  .bs-hero-kicker>.bs-mono{display:none!important}
  .bs-status{font-size:11px!important;line-height:1.25!important}
  .bs-hero h1{font-size:clamp(34px,10.5vw,43px)!important;line-height:1.035!important;letter-spacing:-.045em!important;margin:0 0 15px!important;max-width:none!important}
  .bs-hero-primary-v3 .bs-lead{font-size:15px!important;line-height:1.55!important;margin:0 0 18px!important}
  .bs-hero-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important}
  .bs-hero-actions .bs-btn{width:100%!important;min-width:0!important;min-height:43px!important;padding:10px 13px!important}
  .bs-hero-proof-v3{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;margin-top:20px!important;padding-top:16px!important}
  .bs-hero-proof-v3 span,.bs-hero-proof-v3 span+span,.bs-hero-proof-v3 span:nth-child(3){grid-column:auto!important;min-width:0!important;padding:0 8px!important;border-left:1px solid var(--line)!important}
  .bs-hero-proof-v3 span:first-child{padding-left:0!important;border-left:0!important}
  .bs-hero-proof-v3 strong{font-size:16px!important;line-height:1.2!important}
  .bs-hero-proof-v3 small{font-size:9px!important;line-height:1.35!important}
  .bs-hero-side-v3{display:grid!important;grid-template-columns:1fr!important;grid-template-rows:auto auto!important;gap:10px!important}
  .bs-profile-card-v3{display:grid!important;grid-template-columns:108px minmax(0,1fr)!important;align-items:center!important;gap:12px!important;height:auto!important;min-height:0!important;padding:10px!important;overflow:hidden!important}
  .bs-profile-media{position:relative!important;inset:auto!important;width:108px!important;height:108px!important;border-radius:13px!important;overflow:hidden!important;background:#edf2f9!important}
  .bs-profile-media::after{height:22%!important}
  .bs-profile-media img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 20%!important;transform:none!important}
  .bs-profile-overlay-v3{position:static!important;inset:auto!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none!important;min-width:0!important}
  .bs-profile-overlay-v3>div{min-width:0!important}
  .bs-profile-overlay-v3 strong{font-size:15px!important;line-height:1.25!important}
  .bs-profile-overlay-v3 span{font-size:10px!important;line-height:1.35!important;margin-top:3px!important}
  .bs-profile-overlay-v3>a{position:static!important;flex:0 0 34px!important}
  .bs-terminal-v3{height:auto!important;min-height:0!important;padding:14px!important;overflow:hidden!important}
  .bs-terminal-main{font-size:9.5px!important;line-height:1.45!important;overflow-x:auto!important;padding:9px 0 5px!important;-webkit-overflow-scrolling:touch!important}
  .bs-terminal-main p{margin:4px 0!important;white-space:nowrap!important;width:max-content!important;max-width:none!important}
  .bs-terminal-result{white-space:normal!important;width:auto!important;line-height:1.35!important}
  .bs-type-line{white-space:normal!important;width:auto!important}
  .bs-hero-strip{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;margin-top:10px!important}
  .bs-hero-strip>span{height:40px!important;min-width:0!important;padding:6px!important;font-size:9px!important;justify-content:center!important}

  /* Section heads */
  .bs-section-head{display:block!important;margin-bottom:16px!important}
  .bs-section-head>div,.bs-section-head>p{width:100%!important;max-width:none!important}
  .bs-section-head>p{margin-top:9px!important;font-size:13px!important;line-height:1.55!important}
  .bs-section-head h2,.bs-page-hero h1,.bs-service-sticky h2,.bs-about-copy-v2 h1{font-size:clamp(29px,8.7vw,36px)!important;line-height:1.06!important;letter-spacing:-.04em!important}

  /* Generic grids */
  .bs-service-grid-v3,.bs-why-grid-v3,.bs-project-grid,.bs-tech-grid,.bs-feature-grid,.bs-service-detail-list,.bs-code-lab-grid,.bs-subpage-hero-grid,.bs-subpage-hero-grid-v3,.bs-location-grid,.bs-contact-layout,.bs-about-v2-grid,.bs-project-hero-grid,.bs-social-proof-grid,.bs-footer-grid,.bs-blog-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
  .bs-service-card.is-large,.bs-why-main,.bs-post-card.is-featured,.bs-footer-brand{grid-column:auto!important;grid-row:auto!important}

  /* Service / why cards */
  .bs-service-card{min-height:0!important;height:auto!important;padding:17px!important;grid-template-columns:40px minmax(0,1fr) 30px!important;grid-template-rows:auto auto!important;gap:9px 10px!important}
  .bs-service-icon{width:40px!important;height:40px!important}
  .bs-service-num{align-self:center!important}
  .bs-service-copy{grid-column:1/-1!important;align-self:auto!important;min-width:0!important}
  .bs-service-card h3,.bs-service-card.is-large h3{font-size:22px!important;line-height:1.08!important;margin-bottom:6px!important}
  .bs-service-card p{font-size:12px!important;line-height:1.5!important}
  .bs-service-arrow{grid-column:3!important;grid-row:1!important;align-self:center!important}
  .bs-why-main{min-height:0!important;padding:20px!important}
  .bs-why-main h3{font-size:28px!important;line-height:1.07!important;margin:24px 0 9px!important}
  .bs-why-main p{font-size:13px!important;line-height:1.55!important}
  .bs-why-item{min-height:0!important;padding:17px!important}
  .bs-why-icon{margin-bottom:12px!important}
  .bs-why-item h3{font-size:17px!important;line-height:1.15!important}
  .bs-why-item p{font-size:12px!important;line-height:1.5!important}

  /* Process */
  .bs-process-flow{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  .bs-process-flow::before{display:none!important}
  .bs-process-flow li{display:grid!important;grid-template-columns:46px minmax(0,1fr)!important;gap:11px!important;align-items:start!important;min-width:0!important}
  .bs-process-node{position:relative!important;width:46px!important;height:46px!important;margin:0!important}
  .bs-process-node>.bs-process-step{top:-4px!important;right:-5px!important}
  .bs-process-copy{min-width:0!important;padding-top:2px!important}
  .bs-process-copy h3{font-size:15px!important;line-height:1.2!important}
  .bs-process-copy p{font-size:11px!important;line-height:1.5!important;max-width:none!important}

  /* Page hero / local */
  .bs-page-hero-card{min-height:0!important;height:auto!important;padding:21px 18px!important}
  .bs-page-hero-card .bs-lead{font-size:15px!important;line-height:1.55!important;margin-top:13px!important}
  .bs-page-hero-card .bs-hero-actions{margin-top:16px!important}
  .bs-local-visual,.bs-tech-mosaic,.bs-subpage-tech-visual,.bs-contact-visual{min-height:0!important;height:auto!important;padding:18px!important}
  .bs-local-place{font-size:31px!important;line-height:1.05!important}
  .bs-local-brand{margin-top:14px!important}
  .bs-local-points{margin-top:14px!important;gap:7px!important}
  .bs-local-points>span{min-width:0!important;padding:10px!important}
  .bs-local-points>span>.bs-icon{flex:0 0 22px!important}
  .bs-feature-grid article{min-height:0!important;padding:18px!important}
  .bs-feature-grid h2,.bs-feature-grid h3{font-size:21px!important;line-height:1.1!important}
  .bs-feature-grid p{font-size:12px!important;line-height:1.5!important}

  /* Service detail pages */
  .bs-service-detail-grid{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .bs-service-sticky{position:relative!important;top:auto!important;min-height:0!important;padding:19px!important}
  .bs-service-heading-icon{margin-bottom:15px!important}
  .bs-service-sticky h2{font-size:29px!important;line-height:1.05!important}
  .bs-service-sticky p{font-size:12px!important;line-height:1.5!important}
  .bs-service-detail-list{gap:9px!important}
  .bs-service-detail-list article,.bs-service-detail-list article:first-child{grid-column:auto!important;min-height:0!important;padding:17px!important}
  .bs-service-detail-list h3{font-size:19px!important;line-height:1.12!important}
  .bs-service-detail-list p{font-size:12px!important;line-height:1.5!important}
  .bs-checks{grid-template-columns:1fr!important}
  .bs-tech-mosaic-grid{grid-template-columns:1fr 1fr!important;gap:7px!important}
  .bs-tech-mosaic-grid>span{min-width:0!important}

  /* About */
  .bs-about-copy-v2{display:block!important;padding:21px 18px!important}
  .bs-about-copy-v2 .bs-lead{font-size:15px!important;line-height:1.55!important;margin:13px 0!important}
  .bs-about-copy-v2>p:not(.bs-lead){font-size:13px!important;line-height:1.55!important}
  .bs-about-actions{display:grid!important;grid-template-columns:1fr!important}
  .bs-about-actions .bs-btn{width:100%!important}
  .bs-about-aside{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .bs-about-visual-v2.bs-about-visual-compact{height:245px!important;min-height:245px!important;max-height:245px!important}
  .bs-about-badge.is-exp{left:10px!important;bottom:10px!important}.bs-about-badge.is-wp{right:10px!important;top:10px!important}
  .bs-about-brackets{display:none!important}
  .bs-about-mini{padding:15px!important;gap:11px!important}
  .bs-about-mini-item{grid-template-columns:38px minmax(0,1fr)!important;gap:9px!important}
  .bs-about-mini-item>span{width:38px!important;height:38px!important}

  /* Portfolio */
  .bs-portfolio-tools{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;padding:9px!important}
  .bs-portfolio-search{min-width:0!important;width:100%!important}
  .bs-portfolio-search input{min-width:0!important;width:100%!important}
  .bs-filter{display:flex!important;overflow-x:auto!important;gap:6px!important;padding-bottom:2px!important;scrollbar-width:none!important}
  .bs-filter::-webkit-scrollbar{display:none!important}.bs-filter button{flex:0 0 auto!important;white-space:nowrap!important}
  .bs-sort{justify-self:stretch!important;display:flex!important;align-items:center!important;justify-content:space-between!important}
  .bs-project-grid{gap:10px!important}
  .bs-project-card{height:auto!important}
  .bs-project-media{aspect-ratio:1.42/1!important}
  .bs-project-body{padding:15px!important}
  .bs-project-top{display:flex!important;flex-wrap:wrap!important;gap:5px 8px!important}
  .bs-project-top span{white-space:normal!important}
  .bs-project-body h3{font-size:21px!important;line-height:1.08!important}
  .bs-project-body p{font-size:12px!important;line-height:1.5!important}
  .bs-project-card-foot{align-items:center!important;gap:8px!important}
  .bs-project-card-actions{flex:0 0 auto!important}
  .bs-project-title{padding:20px!important;min-height:0!important}
  .bs-project-hero-image{min-height:0!important;aspect-ratio:1.35/1!important}
  .bs-project-facts{grid-template-columns:1fr!important;gap:8px!important}

  /* Reviews */
  .bs-review-carousel{display:block!important}
  .bs-review-nav{display:none!important}
  .bs-review-viewport{width:100%!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important}
  .bs-review-track{display:flex!important;gap:9px!important;padding:1px 1px 8px!important}
  .bs-review-track>.bs-review{flex:0 0 88%!important;min-width:0!important;scroll-snap-align:start!important}
  .bs-review{padding:17px!important}
  .bs-review-text{font-size:13px!important;line-height:1.55!important;margin:13px 0!important}
  .bs-social-proof-grid{grid-template-columns:1fr!important}
  .bs-proof-card{grid-template-columns:42px minmax(0,1fr) auto!important;gap:10px!important;padding:15px!important}

  /* FAQ */
  .bs-faq-list summary{gap:10px!important;padding:14px!important;font-size:13px!important;line-height:1.35!important}
  .bs-faq-list summary>span{flex:0 0 27px!important}
  .bs-faq-list details>div{padding:0 14px 14px!important;font-size:12px!important}

  /* Contact */
  .bs-contact-info,.bs-contact-form-wrap{padding:19px!important}
  .bs-contact-info h2,.bs-contact-form-wrap h2{font-size:25px!important;line-height:1.08!important;margin:12px 0 7px!important}
  .bs-contact-info dl>div{grid-template-columns:1fr!important;gap:3px!important}
  .bs-contact-direct{grid-template-columns:1fr!important}
  .bs-form-grid{grid-template-columns:1fr!important}.bs-span-2{grid-column:auto!important}
  .bs-form-footer{flex-direction:column!important;align-items:stretch!important;gap:10px!important}.bs-form-footer .bs-btn{width:100%!important}

  /* Blog / article */
  .bs-post-card,.bs-post-card.is-featured{display:grid!important;grid-template-columns:1fr!important;min-height:0!important}
  .bs-post-card.is-featured .bs-post-body,.bs-post-body{padding:17px!important}
  .bs-post-card h2,.bs-post-card.is-featured h2{font-size:23px!important;line-height:1.08!important}
  .bs-article-hero-shell{min-height:340px!important;height:auto!important;border-radius:17px!important}
  .bs-article-hero-copy{position:relative!important;width:100%!important;padding:22px 18px!important;align-self:end!important}
  .bs-article-hero-copy h1{font-size:clamp(30px,9.3vw,39px)!important;line-height:1.03!important}
  .bs-article-hero-copy .bs-lead{font-size:14px!important;line-height:1.45!important}
  .bs-article-layout-v2,.bs-article-layout{grid-template-columns:1fr!important;gap:10px!important}
  .bs-article-aside,.bs-article-layout-v2 .bs-article-aside{position:relative!important;top:auto!important;order:2!important}
  .bs-article-layout-v2 .bs-prose,.bs-prose{padding:19px!important;font-size:16px!important;line-height:1.72!important}
  .bs-prose>*{max-width:100%!important}

  /* Footer / next step */
  .bs-footer{padding:42px 0 18px!important}
  .bs-footer-main{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:14px!important;min-height:0!important;height:auto!important;padding:18px!important;background:linear-gradient(135deg,#eef5ff,#fff 52%,#f8f1ff)!important}
  .bs-footer-main>div{width:100%!important;min-width:0!important}
  .bs-footer-main .bs-eyebrow{margin-bottom:7px!important}
  .bs-footer-main h2{font-size:25px!important;line-height:1.08!important;letter-spacing:-.04em!important;margin:0!important;max-width:none!important}
  .bs-footer-cta{display:grid!important;grid-template-columns:1fr!important;align-items:stretch!important;gap:8px!important;width:100%!important}
  .bs-footer-cta .bs-btn{width:100%!important;min-height:43px!important}
  .bs-footer-cta .bs-text-link{font-size:11px!important;line-height:1.35!important;justify-content:center!important;overflow-wrap:anywhere!important}
  .bs-footer-grid{padding:20px 4px 14px!important;gap:14px!important}
  .bs-footer-grid>div{padding-top:12px!important;border-top:1px solid var(--line)!important;gap:5px!important}
  .bs-footer-brand{padding-top:0!important;border-top:0!important}
  .bs-footer-brand img{max-height:32px!important}
  .bs-footer-grid p{font-size:10px!important;line-height:1.5!important}
  .bs-footer-bottom{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:6px!important;padding:12px 4px 0!important;font-size:8px!important;line-height:1.45!important}
  .bs-socials{flex-wrap:wrap!important}

  /* Hide floating bubble on phones: it competes with content and footer CTA. */
  .bs-contact-fab{display:none!important}

  /* No hover transforms on touch/mobile. */
  .bs-card,.bs-btn,.bs-service-card,.bs-project-card,.bs-tech-card{transform:none!important}
}

@media (max-width: 420px) {
  .bs-shell{width:calc(100% - 16px)!important;margin:0 8px!important}
  .bs-brand-logo img,.bs-brand-fallback{max-width:138px!important}
  .bs-hero-primary-v3{padding:19px 16px!important}
  .bs-hero h1{font-size:clamp(32px,10.2vw,39px)!important}
  .bs-profile-card-v3{grid-template-columns:92px minmax(0,1fr)!important;padding:9px!important}.bs-profile-media{width:92px!important;height:92px!important}
  .bs-hero-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .bs-tech-mosaic-grid{grid-template-columns:1fr!important}
  .bs-review-track>.bs-review{flex-basis:92%!important}
  .bs-footer-main h2{font-size:24px!important}
}

@media (max-width: 780px) {
  .bs-btn{white-space:normal!important;text-align:center!important;line-height:1.25!important}
  .bs-eyebrow{white-space:normal!important;line-height:1.35!important}
  .bs-footer-watermark{display:none!important}
  .bs-proof-card{grid-template-columns:42px minmax(0,1fr)!important;align-items:center!important}
  .bs-proof-link{grid-column:1/-1!important;justify-self:start!important;margin-left:52px!important}
  .bs-contact-visual-links a,.bs-contact-direct a{min-width:0!important}
  .bs-contact-visual-links small,.bs-contact-direct small,.bs-footer-grid a,.bs-footer-grid p{overflow-wrap:anywhere!important}
  .bs-code-box,.bs-code-box pre,.bs-terminal-card,.bs-terminal-main{max-width:100%!important}
  .bs-code-box pre,.bs-prose pre{overflow-x:auto!important;white-space:pre!important;-webkit-overflow-scrolling:touch!important}
  .bs-gallery{grid-template-columns:1fr!important}
}
@media (max-width: 360px) {
  .bs-shell{width:calc(100% - 12px)!important;margin:0 6px!important}
  .bs-brand-logo img,.bs-brand-fallback{max-width:128px!important}
  .bs-hero h1{font-size:31px!important}
  .bs-section-head h2,.bs-page-hero h1,.bs-service-sticky h2,.bs-about-copy-v2 h1{font-size:28px!important}
  .bs-profile-card-v3{grid-template-columns:82px minmax(0,1fr)!important}.bs-profile-media{width:82px!important;height:82px!important}
  .bs-profile-overlay-v3>a{display:none!important}
  .bs-hero-proof-v3 small{font-size:8px!important}
  .bs-footer-main h2{font-size:23px!important}
}

/* ===== v42-polish.css ===== */
/* barmSTUDIO Workbench 4.2 — final interaction, portfolio and mobile polish. */

/* Desktop portfolio submenu */
.bs-menu>li{position:relative}
.bs-menu>li.has-submenu>a{display:flex;align-items:center;gap:7px}
.bs-nav-chevron{width:7px;height:7px;border-right:1.7px solid currentColor;border-bottom:1.7px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s ease}
.bs-menu>li.has-submenu:hover .bs-nav-chevron,.bs-menu>li.has-submenu:focus-within .bs-nav-chevron{transform:rotate(225deg) translate(-1px,-1px)}
.bs-submenu{position:absolute;left:50%;top:calc(100% + 10px);width:390px;padding:11px;border:1px solid rgba(215,222,239,.96);border-radius:18px;background:rgba(255,255,255,.97);box-shadow:0 24px 60px rgba(34,47,91,.15);backdrop-filter:blur(20px);transform:translate(-50%,8px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s;z-index:160}
.bs-menu>li.has-submenu:hover>.bs-submenu,.bs-menu>li.has-submenu:focus-within>.bs-submenu{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,0)}
.bs-submenu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.bs-submenu-label{display:block;padding:3px 7px 8px;color:#939bad;font:700 9px/1.2 var(--mono);text-transform:uppercase;letter-spacing:.08em}
.bs-submenu-item{display:grid!important;grid-template-columns:40px 1fr;gap:10px;align-items:center;padding:10px!important;border-radius:12px!important;background:transparent!important;color:#11162f!important}
.bs-submenu-item+.bs-submenu-item{margin-top:3px}
.bs-submenu-item:hover,.bs-submenu-item.is-active{background:#f4f7fc!important}
.bs-submenu-icon{width:40px;height:40px;border-radius:11px;background:linear-gradient(145deg,#eef5ff,#f5f0ff);display:grid;place-items:center;color:var(--brand-primary);font-size:16px}
.bs-submenu-item strong,.bs-submenu-item small{display:block}
.bs-submenu-item strong{font-size:12px;line-height:1.2}.bs-submenu-item small{margin-top:3px;color:#858da1;font-size:9px;line-height:1.25}

/* Desktop hero: portrait becomes a supporting detail, code gets the space. */
@media (min-width:981px){
  .bs-hero-v3-grid{grid-template-columns:minmax(0,1.72fr) minmax(300px,.62fr);align-items:stretch}
  .bs-hero-side-v3{grid-template-rows:210px minmax(250px,1fr)}
  .bs-profile-card-v3{min-height:210px;height:210px}
  .bs-profile-media img{object-position:center 22%}
  .bs-profile-overlay-v3{padding:9px 10px 9px 12px;bottom:9px;left:9px;right:9px}
  .bs-profile-overlay-v3 strong{font-size:13px}.bs-profile-overlay-v3 span{font-size:9px}
  .bs-terminal-v3{min-height:250px;padding:15px 16px}
  .bs-terminal-main{font-size:9.5px;line-height:1.46}
  .bs-terminal-main p{margin:4px 0}
}

/* Entire portfolio screenshots visible: no card-level cropping. */
.bs-project-media{aspect-ratio:16/10;background:linear-gradient(145deg,#f1f5fb,#fff);display:grid;place-items:center;padding:12px}
.bs-project-media img{width:100%;height:100%;object-fit:contain!important;object-position:center;background:transparent!important;border-radius:10px;transform:none!important}
.bs-project-card:hover .bs-project-media img{transform:none!important}
.bs-project-open{right:9px;bottom:9px}

/* Richer single-project layout */
.bs-project-detail-hero{padding-top:28px}
.bs-project-detail-grid{display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:12px;align-items:stretch}
.bs-project-detail-intro{padding:clamp(28px,4vw,54px);display:flex;flex-direction:column;justify-content:center;min-height:500px;background:linear-gradient(145deg,#fff 0,#fff 62%,#f4f7ff 100%)}
.bs-project-detail-intro h1{font-size:clamp(42px,5.2vw,72px);line-height:.98;letter-spacing:-.055em;margin:12px 0 18px}
.bs-project-detail-intro .bs-back{margin-bottom:36px}
.bs-project-detail-intro .bs-lead{font-size:16px;line-height:1.65;max-width:620px}
.bs-project-tech-list{display:flex;flex-wrap:wrap;gap:6px;margin:18px 0 22px}.bs-project-tech-list span{padding:6px 9px;border:1px solid #e0e6f2;border-radius:999px;background:#f7f9fd;color:#536079;font-size:10px;font-weight:700}
.bs-project-browser{min-height:500px;display:flex;flex-direction:column;background:#f4f7fb;overflow:hidden}
.bs-project-browser-bar{height:43px;flex:0 0 43px;display:flex;align-items:center;gap:6px;padding:0 14px;border-bottom:1px solid var(--line);background:#fff;color:#9299aa;font:600 9px/1 var(--mono)}
.bs-project-browser-bar i{width:7px;height:7px;border-radius:50%;background:#ff605c}.bs-project-browser-bar i:nth-child(2){background:#ffbd44}.bs-project-browser-bar i:nth-child(3){background:#00ca4e}.bs-project-browser-bar span{margin-left:auto;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bs-project-browser-media{flex:1;min-height:0;display:grid;place-items:center;padding:18px;background:linear-gradient(145deg,#edf3fb,#fff)}
.bs-project-browser-media img{display:block;width:100%;height:100%;max-height:600px;object-fit:contain;object-position:center;border-radius:12px;box-shadow:0 14px 36px rgba(31,43,84,.09);background:#fff}
.bs-project-facts-v2{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:9px}.bs-project-facts-v2>div{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;align-items:center;padding:15px}.bs-project-fact-icon{width:42px;height:42px;border-radius:12px;display:grid!important;place-items:center;background:#eef5ff;color:var(--brand-primary);font-size:15px}.bs-project-facts-v2 small,.bs-project-facts-v2 strong{display:block}.bs-project-facts-v2 small{color:#8a93a7;font-size:9px}.bs-project-facts-v2 strong{margin-top:2px;font-size:11px;line-height:1.35}
.bs-project-overview-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr);gap:12px}.bs-project-story,.bs-project-summary{padding:clamp(24px,3.2vw,38px)}.bs-project-story h2{font-size:clamp(30px,3.4vw,46px);line-height:1.02;letter-spacing:-.045em;margin:8px 0 18px}.bs-project-story-content,.bs-project-story>p{color:#5d667d;font-size:15px;line-height:1.75}.bs-project-summary{background:linear-gradient(145deg,#f3f7ff,#fff)}.bs-project-summary-list{display:grid;gap:9px;margin:18px 0}.bs-project-summary-list>div{display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center;padding:11px;border:1px solid #e2e7f2;border-radius:13px;background:#fff}.bs-project-summary-list>div>span{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#f1f5fc;color:var(--brand-primary)}.bs-project-summary-list p{margin:0}.bs-project-summary-list strong,.bs-project-summary-list small{display:block}.bs-project-summary-list strong{font-size:11px}.bs-project-summary-list small{margin-top:2px;color:#7f8799;font-size:9px;line-height:1.35}
.bs-case-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr))}.bs-case-grid-v2 article{position:relative;padding:25px}.bs-case-icon{width:43px;height:43px;border-radius:12px;background:#f0f5ff;color:var(--brand-primary);display:grid;place-items:center;margin-bottom:16px}.bs-case-grid-v2 h3{font-size:24px;margin:7px 0 8px}.bs-project-next-card{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(24px,3.5vw,38px);background:linear-gradient(125deg,#eef5ff,#fff 52%,#f9f1ff)}.bs-project-next-card h2{font-size:clamp(28px,3.4vw,44px);line-height:1.03;letter-spacing:-.045em;margin:4px 0 0;max-width:780px}

/* Contact bubble left + scroll up right */
.bs-contact-fab{left:22px!important;right:auto!important;bottom:22px;z-index:300}
.bs-contact-fab-menu{left:0!important;right:auto!important;bottom:54px}
@media (hover:hover) and (pointer:fine){
  .bs-contact-fab:hover .bs-contact-fab-menu,.bs-contact-fab:focus-within .bs-contact-fab-menu{opacity:1;visibility:visible;transform:none}
  .bs-contact-fab:hover .bs-contact-fab-toggle{transform:translateY(-2px);box-shadow:0 14px 32px rgba(35,48,92,.17)}
}
.bs-scroll-top{position:fixed;right:22px;bottom:22px;z-index:295;width:45px;height:45px;border:1px solid var(--line);border-radius:13px;background:rgba(255,255,255,.94);color:#16203a;display:grid;place-items:center;box-shadow:0 12px 30px rgba(35,48,92,.13);opacity:0;visibility:hidden;transform:translateY(9px);transition:.2s ease;cursor:pointer}.bs-scroll-top .bs-icon{transform:rotate(-90deg)}.bs-scroll-top.is-visible{opacity:1;visibility:visible;transform:none}.bs-scroll-top:hover{color:#fff;background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary));border-color:transparent;transform:translateY(-2px)}

/* Premium mobile menu base */
.bs-mobile-panel{padding:10px!important;background:rgba(18,25,48,.34)!important;backdrop-filter:blur(18px)!important;align-items:flex-end!important}
.bs-mobile-panel-shell{width:min(100%,520px);height:100%;overflow:auto;overscroll-behavior:contain;padding:14px;border:1px solid rgba(220,225,239,.94);border-radius:24px;background:linear-gradient(160deg,#fff 0,#f8faff 65%,#f8f2ff 100%);box-shadow:0 32px 90px rgba(21,31,67,.24)}
.bs-mobile-intro{margin-top:14px;padding:17px;border-radius:17px;background:#11182f;color:#fff;overflow:hidden;position:relative}.bs-mobile-intro::after{content:"{ bS }";position:absolute;right:-9px;bottom:-16px;color:rgba(126,145,255,.12);font:800 54px/1 var(--mono)}.bs-mobile-intro .bs-eyebrow{color:#8eaeff}.bs-mobile-intro strong{display:block;margin-top:7px;font-size:20px;line-height:1.08;letter-spacing:-.035em;max-width:330px}.bs-mobile-intro p{position:relative;z-index:1;margin:8px 0 0;color:#b8c1d6;font-size:11px;line-height:1.5;max-width:340px}
.bs-mobile-nav{margin-top:10px}.bs-mobile-nav>a{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:10px!important;padding:12px 13px!important;border:1px solid #e1e6f1!important;border-radius:13px!important;background:#fff!important;color:#182039!important;font-size:15px!important;font-weight:750!important}.bs-mobile-nav>a+a{margin-top:6px}.bs-mobile-nav>a>span{width:28px;height:28px;border-radius:9px;background:#f3f6fb;display:grid;place-items:center;color:#73809c}.bs-mobile-nav>a.is-active{border-color:#cbd8ff!important;background:#f3f7ff!important;color:#185ed8!important}
.bs-mobile-portfolio-group{margin:10px 0;padding:12px;border:1px solid #dfe5f1;border-radius:17px;background:rgba(255,255,255,.78)}.bs-mobile-portfolio-group>span{display:block;margin:0 3px 9px;color:#7f899f;font:750 9px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em}.bs-mobile-portfolio-group>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.bs-mobile-portfolio-group a{display:grid!important;grid-template-columns:37px minmax(0,1fr);grid-template-rows:auto auto;gap:2px 9px;align-items:center;padding:10px!important;border:1px solid #e3e8f3!important;border-radius:13px!important;background:#fff!important;color:#182039!important}.bs-mobile-portfolio-group a>.bs-icon{display:none}.bs-mobile-nav-icon{grid-row:1/3;width:37px;height:37px;border-radius:10px;background:linear-gradient(145deg,#eef5ff,#f6f0ff);display:grid;place-items:center;color:var(--brand-primary)}.bs-mobile-portfolio-group strong,.bs-mobile-portfolio-group small{display:block}.bs-mobile-portfolio-group strong{font-size:11px;line-height:1.2}.bs-mobile-portfolio-group small{font-size:8.5px;color:#818a9d;line-height:1.25}
.bs-mobile-contact-card{margin-top:10px;padding:14px;border-radius:17px;background:linear-gradient(135deg,#eef5ff,#fff 48%,#faeff8);border:1px solid #dfe5f1}.bs-mobile-contact-card>div:first-child strong{display:block;margin-top:5px;font-size:15px;line-height:1.15}.bs-mobile-contact-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:11px}.bs-mobile-contact-actions a{min-height:54px;border:1px solid #dfe5f1;border-radius:12px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:9px;font-weight:750}.bs-mobile-contact-actions a.is-whatsapp{color:#169c55}.bs-mobile-contact-actions a.is-facebook{color:#1877f2}.bs-mobile-contact-actions a.is-email{color:#5e54d8}.bs-mobile-contact-actions .bs-icon{font-size:15px}
.bs-mobile-panel-foot{display:flex;justify-content:space-between;gap:10px;padding:12px 4px 2px;color:#7d8699;font-size:8.5px;line-height:1.4}.bs-mobile-panel-foot span:first-child{display:flex;align-items:center;gap:5px}.bs-mobile-panel-foot i{width:6px;height:6px;border-radius:50%;background:#2dc68c;box-shadow:0 0 0 4px rgba(45,198,140,.1)}

@media (max-width:780px){
  /* A little more breathing room at the viewport edge. */
  .bs-shell{width:calc(100% - 28px)!important;margin:0 14px!important}
  .bs-main>.bs-hero:first-child,.bs-main>.bs-page-hero:first-child{padding-top:20px!important}
  .bs-section{padding-top:46px!important}

  /* Contact remains available on phones, scroll-up lives on the opposite side. */
  .bs-contact-fab{display:block!important;left:14px!important;right:auto!important;bottom:14px!important}
  .bs-contact-fab-toggle{width:46px!important;height:46px!important;padding:0!important;justify-content:center!important;border-radius:14px!important}
  .bs-contact-fab-toggle>span{display:none!important}
  .bs-contact-fab-menu{left:0!important;right:auto!important;bottom:54px!important;width:min(278px,calc(100vw - 28px))!important}
  .bs-scroll-top{right:14px!important;bottom:14px!important;width:46px;height:46px;border-radius:14px}

  /* Mobile menu is a contained, premium sheet instead of a plain full-screen list. */
  .bs-mobile-panel{padding:8px!important}
  .bs-mobile-panel-shell{width:100%!important;border-radius:20px!important;padding:12px!important}
  .bs-mobile-panel-head{padding-bottom:11px!important}.bs-mobile-panel-head img{max-height:29px!important}.bs-mobile-panel-head button{width:39px!important;height:39px!important;border-radius:11px!important}
  .bs-mobile-portfolio-group>div{grid-template-columns:1fr 1fr!important}

  /* Portfolio: preserve the whole screenshot on phones too. */
  .bs-project-media{aspect-ratio:16/10!important;padding:8px!important;background:#f2f5fa!important}
  .bs-project-media img{object-fit:contain!important;object-position:center!important;border-radius:8px!important}

  /* New project detail page */
  .bs-project-detail-grid,.bs-project-overview-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:10px!important}
  .bs-project-detail-intro{min-height:0!important;padding:22px 18px!important}
  .bs-project-detail-intro .bs-back{margin-bottom:22px!important}.bs-project-detail-intro h1{font-size:clamp(31px,9.4vw,39px)!important;line-height:1.02!important;margin:9px 0 13px!important}.bs-project-detail-intro .bs-lead{font-size:14px!important;line-height:1.55!important}.bs-project-tech-list{margin:14px 0 17px!important}
  .bs-project-browser{min-height:0!important}.bs-project-browser-bar{height:39px!important;flex-basis:39px!important;padding:0 11px!important}.bs-project-browser-media{padding:10px!important;min-height:230px!important}.bs-project-browser-media img{height:auto!important;max-height:420px!important;object-fit:contain!important}
  .bs-project-facts-v2{grid-template-columns:1fr 1fr!important;gap:8px!important}.bs-project-facts-v2>div{grid-template-columns:38px minmax(0,1fr)!important;padding:12px!important}.bs-project-fact-icon{width:38px!important;height:38px!important}
  .bs-project-story,.bs-project-summary{padding:19px!important}.bs-project-story h2{font-size:28px!important}.bs-project-story-content,.bs-project-story>p{font-size:14px!important;line-height:1.68!important}.bs-case-grid-v2{grid-template-columns:1fr!important}.bs-case-grid-v2 article{padding:19px!important}.bs-project-next-card{display:grid!important;grid-template-columns:1fr!important;gap:15px!important;padding:20px!important}.bs-project-next-card h2{font-size:27px!important}.bs-project-next-card .bs-btn{width:100%!important}

  /* Footer centered and calmer on mobile. */
  .bs-footer{padding:44px 0 72px!important}
  .bs-footer-main{align-items:center!important;text-align:center!important;padding:20px 17px!important;border-radius:18px!important;gap:14px!important}
  .bs-footer-main>div{display:flex!important;flex-direction:column!important;align-items:center!important}.bs-footer-main h2{font-size:25px!important;max-width:300px!important}.bs-footer-cta{align-items:center!important;width:100%!important}.bs-footer-cta .bs-btn{width:100%!important;max-width:300px!important}.bs-footer-cta .bs-text-link{max-width:100%!important;text-align:center!important}
  .bs-footer-grid{display:grid!important;grid-template-columns:1fr!important;gap:0!important;padding:18px 6px 12px!important;text-align:center!important}.bs-footer-grid>div{align-items:center!important;padding:14px 0!important;border-top:1px solid var(--line)!important}.bs-footer-brand{border-top:0!important;padding-top:0!important}.bs-footer-brand p{max-width:310px!important}.bs-footer-social-icons{justify-content:center!important}.bs-footer-grid .bs-footer-whatsapp{justify-content:center!important}.bs-footer-bottom{align-items:center!important;text-align:center!important;padding:12px 6px 0!important}.bs-footer-bottom .bs-socials{justify-content:center!important}
}

@media (max-width:440px){
  .bs-shell{width:calc(100% - 24px)!important;margin:0 12px!important}
  .bs-contact-fab{left:12px!important}.bs-scroll-top{right:12px!important}.bs-contact-fab-menu{width:calc(100vw - 24px)!important}
  .bs-mobile-panel{padding:6px!important}.bs-mobile-panel-shell{padding:10px!important;border-radius:18px!important}.bs-mobile-intro{padding:15px!important}.bs-mobile-intro strong{font-size:18px!important}
  .bs-mobile-portfolio-group>div{grid-template-columns:1fr!important}
  .bs-project-facts-v2{grid-template-columns:1fr!important}
}

@media (max-width:360px){
  .bs-shell{width:calc(100% - 20px)!important;margin:0 10px!important}
  .bs-contact-fab{left:10px!important}.bs-scroll-top{right:10px!important}.bs-contact-fab-menu{width:calc(100vw - 20px)!important}
}
.bs-terminal-v3{display:flex;flex-direction:column}.bs-terminal-v3 .bs-terminal-main{flex:1}.bs-terminal-meta{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.08)}.bs-terminal-meta span{display:flex;align-items:center;gap:6px;padding:6px 8px;border-radius:8px;background:rgba(255,255,255,.045);color:#9eaaca;font:650 8px/1.2 var(--mono)}.bs-terminal-meta i{width:5px;height:5px;border-radius:50%;background:#35d19a;box-shadow:0 0 0 3px rgba(53,209,154,.08)}
@media(max-width:780px){.bs-terminal-meta{grid-template-columns:1fr 1fr!important}.bs-terminal-meta span{font-size:7.5px!important}}
/* Carousel direction: previous points left, next points right. */
.bs-review-nav .bs-icon{transform:none!important}.bs-review-nav.is-prev .bs-icon{transform:rotate(180deg)!important}

/* ===== v43-final.css ===== */
/* barmSTUDIO Workbench 4.3 — final production polish. */

/* --------------------------------------------------------------------------
   Header / navigation
   -------------------------------------------------------------------------- */
.bs-topbar{overflow:visible!important}
.bs-main-nav,.bs-menu,.bs-menu>li{min-width:0}
.bs-menu>li.has-submenu{position:relative}
.bs-submenu{position:absolute!important;display:block!important;float:none!important;max-height:none!important;margin:0!important}
.bs-submenu-item>span:last-child,.bs-submenu-item strong,.bs-submenu-item small{min-width:0}
.bs-social-button.is-linkedin{color:#0a66c2}
.bs-social-button.is-linkedin:hover{background:#eef6ff;border-color:#cfe3ff}
.is-linkedin .bs-icon{color:#0a66c2}
.bs-footer-social-icons .is-linkedin{color:#0a66c2}

/* Hero proportions on desktop: less headline, a useful portrait, more code. */
@media (min-width:981px){
  .bs-hero-v3-grid{grid-template-columns:minmax(0,1.58fr) minmax(340px,.66fr)!important;gap:14px!important}
  .bs-hero-primary-v3{min-height:570px!important;padding:clamp(34px,3.8vw,54px)!important}
  .bs-hero h1{font-size:clamp(46px,4vw,64px)!important;line-height:1.005!important;letter-spacing:-.052em!important;max-width:900px!important;margin-bottom:20px!important}
  .bs-hero-primary-v3 .bs-lead{max-width:790px!important;font-size:clamp(17px,1.25vw,20px)!important}
  .bs-hero-side-v3{grid-template-rows:260px minmax(296px,1fr)!important;gap:14px!important}
  .bs-profile-card-v3{height:260px!important;min-height:260px!important}
  .bs-profile-media img{object-position:center 28%!important}
  .bs-profile-overlay-v3{left:12px!important;right:12px!important;bottom:12px!important;padding:11px 12px!important}
  .bs-profile-overlay-v3 strong{font-size:14px!important}.bs-profile-overlay-v3 span{font-size:10px!important}
  .bs-terminal-v3{min-height:296px!important;padding:16px 17px!important}
  .bs-terminal-main{font-size:10px!important;line-height:1.48!important}
}

/* --------------------------------------------------------------------------
   Reviews
   -------------------------------------------------------------------------- */
.bs-review{display:flex!important;flex-direction:column;min-height:310px;padding:22px!important;background:linear-gradient(145deg,#fff 0,#fff 66%,#f8faff 100%);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.bs-review:hover{transform:translateY(-3px);border-color:#d7dfef;box-shadow:0 18px 42px rgba(40,52,99,.09)}
.bs-review-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.bs-review-source{display:flex;align-items:center;gap:9px;min-width:0}
.bs-review-source>.bs-icon{width:36px;height:36px;padding:9px;border-radius:11px;background:#f3f7ff;flex:0 0 36px}
.bs-review-source.is-google>.bs-icon{color:#4285f4;background:#f3f7ff}
.bs-review-source.is-facebook>.bs-icon{color:#1877f2;background:#eef6ff}
.bs-review-source>span{display:grid;gap:1px;min-width:0}
.bs-review-source strong{font-size:11px;line-height:1.2;color:#28314d}
.bs-review-source small{font-size:8.5px;line-height:1.25;color:#9299ab}
.bs-stars{flex:0 0 auto;gap:1px;padding-top:4px;color:#f2b705}
.bs-review-text{margin:22px 0 18px!important;color:#4f5870;font-size:14px;line-height:1.66;flex:1}
.bs-review-text p{margin:0}
.bs-review-foot{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important;border-top:1px solid var(--line)!important;padding-top:14px!important;margin-top:auto;font-size:11px!important}
.bs-review-author{display:flex;align-items:center;gap:10px;min-width:0}
.bs-review-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;flex:0 0 38px;background:linear-gradient(145deg,#eaf3ff,#f3edff);color:#244b98;font-weight:800;font-size:13px;box-shadow:inset 0 0 0 1px rgba(56,88,160,.08)}
.bs-review-author-copy{display:grid;gap:3px;min-width:0}
.bs-review-author-copy strong{display:block;font-size:12px;line-height:1.25;color:#1d243d;white-space:normal}
.bs-review-author-copy small{display:block;font-size:9px;line-height:1.25;color:#8d95a7;white-space:normal}
.bs-review-source-link{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#66728d;transition:.18s ease}
.bs-review-source-link:hover{color:var(--brand-primary);border-color:#cdd9ef;transform:translateY(-1px)}
.bs-review-track>.bs-review{height:auto}

/* --------------------------------------------------------------------------
   Contact / location
   -------------------------------------------------------------------------- */
.bs-contact-visual-links{grid-template-columns:1fr!important}
.bs-contact-visual-links a,.bs-contact-direct a{min-width:0}
.bs-contact-direct{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
.bs-location-grid{display:grid!important;grid-template-columns:minmax(0,.88fr) minmax(440px,1.12fr)!important;gap:14px!important;align-items:stretch!important}
.bs-location-copy{padding:clamp(26px,3.3vw,42px)!important;display:flex;flex-direction:column;justify-content:center;min-height:410px}
.bs-location-copy h2{font-size:clamp(30px,3vw,44px);line-height:1.04;letter-spacing:-.045em;margin:8px 0 14px;max-width:680px}
.bs-location-copy>p{margin:0 0 22px;color:#5d667c;max-width:690px}
.bs-location-facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 20px}
.bs-location-facts>span{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fbfcff;min-width:0}
.bs-location-facts>span>.bs-icon{grid-row:1/3;width:38px;height:38px;padding:10px;border-radius:11px;background:#edf4ff;color:var(--brand-primary)}
.bs-location-facts b,.bs-location-facts small{display:block;min-width:0}.bs-location-facts b{font-size:11px;line-height:1.25}.bs-location-facts small{font-size:9px;line-height:1.3;color:#8991a4}
.bs-map-card{position:relative!important;min-height:410px!important;padding:0!important;overflow:hidden!important;background:#eef3fb!important}
.bs-map-card iframe{display:block!important;width:100%!important;height:100%!important;min-height:410px!important;border:0!important;position:absolute!important;inset:0!important}
.bs-map-label{position:absolute!important;left:14px!important;right:14px!important;bottom:14px!important;display:flex!important;align-items:center!important;gap:10px!important;padding:11px 13px!important;border:1px solid rgba(255,255,255,.72)!important;border-radius:13px!important;background:rgba(255,255,255,.92)!important;backdrop-filter:blur(12px)!important;box-shadow:0 12px 28px rgba(37,48,92,.12)!important;z-index:3!important}
.bs-map-dot{width:9px;height:9px;border-radius:50%;background:#eb4335;box-shadow:0 0 0 5px rgba(235,67,53,.12);flex:0 0 auto}.bs-map-label strong,.bs-map-label small{display:block}.bs-map-label strong{font-size:11px}.bs-map-label small{font-size:9px;color:#788196}

/* --------------------------------------------------------------------------
   Floating contact and scroll up
   -------------------------------------------------------------------------- */
.bs-contact-fab-toggle .bs-icon{display:inline-grid!important;width:18px!important;height:18px!important;opacity:1!important;visibility:visible!important;color:var(--brand-primary)!important}
.bs-contact-fab-label{display:inline!important}
.bs-contact-fab-menu .is-linkedin .bs-icon{color:#0a66c2}
.bs-contact-fab-menu a{min-width:240px}

/* --------------------------------------------------------------------------
   Mobile menu and mobile finishing
   -------------------------------------------------------------------------- */
.bs-mobile-nav-copy{display:grid!important;gap:4px!important;min-width:0!important;align-self:center!important}
.bs-mobile-nav-copy strong{display:block!important;font-size:13px!important;line-height:1.25!important;letter-spacing:-.01em!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important}
.bs-mobile-nav-copy small{display:block!important;margin:0!important;font-size:9.5px!important;line-height:1.35!important;color:#818a9d!important;white-space:normal!important;overflow-wrap:normal!important;word-break:normal!important}
.bs-mobile-nav-arrow{display:grid!important;place-items:center!important;width:30px!important;height:30px!important;border-radius:9px!important;background:#f4f6fb!important;color:#7c879f!important;justify-self:end!important}
.bs-mobile-nav-arrow .bs-icon{width:12px!important;height:12px!important}
.bs-mobile-contact-actions{grid-template-columns:repeat(auto-fit,minmax(72px,1fr))!important}
.bs-mobile-contact-actions .is-linkedin{color:#0a66c2}

@media (max-width:780px){
  .bs-shell{width:calc(100% - 28px)!important;margin-inline:14px!important}
  .bs-mobile-panel-shell{max-width:none!important}
  .bs-mobile-portfolio-group>div{grid-template-columns:1fr!important;gap:7px!important}
  .bs-mobile-portfolio-group a{grid-template-columns:42px minmax(0,1fr) 30px!important;grid-template-rows:auto!important;gap:10px!important;padding:11px!important;align-items:center!important}
  .bs-mobile-nav-icon{grid-row:auto!important;width:42px!important;height:42px!important}
  .bs-mobile-portfolio-group a>.bs-icon{display:none!important}
  .bs-mobile-nav-arrow{display:grid!important}
  .bs-contact-fab{display:block!important;left:14px!important;bottom:14px!important}
  .bs-contact-fab-toggle{width:46px!important;height:46px!important;padding:0!important;display:grid!important;place-items:center!important}
  .bs-contact-fab-toggle .bs-icon{display:grid!important;font-size:18px!important;color:var(--brand-primary)!important}
  .bs-contact-fab-label{display:none!important}
  .bs-contact-fab-menu{width:min(286px,calc(100vw - 28px))!important}
  .bs-contact-fab-menu a{min-width:0!important}

  .bs-location-grid{grid-template-columns:1fr!important;gap:10px!important}
  .bs-location-copy{min-height:0!important;padding:21px!important}
  .bs-location-copy h2{font-size:29px!important;line-height:1.05!important}
  .bs-location-facts{grid-template-columns:1fr!important}
  .bs-map-card,.bs-map-card iframe{min-height:300px!important;height:300px!important;position:relative!important}
  .bs-map-card iframe{position:absolute!important}

  .bs-review{min-height:290px!important;padding:19px!important}
  .bs-review-head{gap:10px!important}.bs-stars .bs-icon{font-size:11px!important}
  .bs-review-text{margin:18px 0 16px!important;font-size:13px!important;line-height:1.62!important}
  .bs-review-author-copy strong{font-size:11px!important}.bs-review-author-copy small{font-size:8.5px!important}
  .bs-review-avatar{width:36px!important;height:36px!important;flex-basis:36px!important}

  .bs-footer-social-icons .is-linkedin{color:#0a66c2!important}
}

@media (max-width:440px){
  .bs-shell{width:calc(100% - 24px)!important;margin-inline:12px!important}
  .bs-mobile-panel{padding:6px!important}
  .bs-mobile-panel-shell{padding:10px!important}
  .bs-mobile-portfolio-group{padding:10px!important}
  .bs-mobile-portfolio-group a{grid-template-columns:40px minmax(0,1fr) 28px!important;padding:10px!important;gap:9px!important}
  .bs-mobile-nav-icon{width:40px!important;height:40px!important}
  .bs-mobile-nav-copy strong{font-size:12.5px!important}.bs-mobile-nav-copy small{font-size:9px!important}
  .bs-contact-fab{left:12px!important}.bs-scroll-top{right:12px!important}
  .bs-location-copy{padding:18px!important}.bs-map-card,.bs-map-card iframe{height:270px!important;min-height:270px!important}
}

/* Prevent old plugin CSS from collapsing theme geometry on posts and generic pages. */
.bs-workbench .bs-topbar,.bs-workbench .bs-footer,.bs-workbench .bs-card,.bs-workbench .bs-section{max-width:100%}
.bs-workbench .bs-menu,.bs-workbench .bs-menu li{list-style:none!important}
.bs-workbench .bs-menu>li.has-submenu>.bs-submenu{box-sizing:border-box!important}

/* --------------------------------------------------------------------------
   4.4 final detail pass
   -------------------------------------------------------------------------- */
/* Local landing technology pills: the old broad span selector also styled the
   icon wrapper. Keep the pill on the direct child and reset the SVG wrapper. */
.bs-local-points>span{
  display:flex!important;align-items:center!important;gap:9px!important;
  padding:10px 11px!important;border:1px solid var(--line)!important;
  border-radius:10px!important;background:#fff!important;font-size:10px!important;
  min-width:0!important
}
.bs-local-points>span>.bs-icon{
  display:inline-grid!important;place-items:center!important;flex:0 0 20px!important;
  width:20px!important;height:20px!important;padding:0!important;margin:0!important;
  border:0!important;border-radius:0!important;background:transparent!important;
  color:var(--brand-primary)!important;line-height:1!important
}
.bs-local-points>span.is-wordpress>.bs-icon{color:#21759b!important}
.bs-local-points>span:nth-child(2)>.bs-icon{color:#6c47d9!important}
.bs-local-points>span:nth-child(3)>.bs-icon{color:#176cf3!important}
.bs-local-points>span>.bs-icon svg{display:block!important;width:100%!important;height:100%!important}
.bs-local-points>span>b{display:block!important;line-height:1.2!important}

/* About: create a visible rhythm between the number and its label. */
.bs-about-badge.is-exp{display:flex!important;align-items:baseline!important;gap:6px!important}
.bs-about-badge.is-exp strong,.bs-about-badge.is-exp span{display:block!important}

/* Mobile drawer: separate the intro from navigation and force portfolio copy
   into two independent text rows, immune to legacy span/small rules. */
.bs-mobile-intro{margin:14px 0 18px!important}
.bs-mobile-nav{margin-top:0!important;padding-top:0!important}
.bs-mobile-nav-copy{
  display:flex!important;flex-direction:column!important;justify-content:center!important;
  align-items:flex-start!important;gap:5px!important;width:100%!important;min-width:0!important;
  position:static!important;float:none!important;line-height:normal!important
}
.bs-mobile-nav-copy strong{
  display:block!important;position:static!important;float:none!important;width:100%!important;
  margin:0!important;padding:0!important;font-size:13px!important;line-height:1.22!important;
  white-space:normal!important;word-break:normal!important;overflow-wrap:anywhere!important
}
.bs-mobile-nav-subtitle{
  display:block!important;position:static!important;float:none!important;width:100%!important;
  margin:0!important;padding:0!important;font-size:9.5px!important;line-height:1.45!important;
  font-weight:500!important;color:#818a9d!important;letter-spacing:0!important;
  white-space:normal!important;word-break:normal!important;overflow-wrap:anywhere!important
}
.bs-mobile-portfolio-group a{min-height:66px!important}
.bs-mobile-portfolio-group a>.bs-mobile-nav-arrow{align-self:center!important}

/* Desktop portrait: enough height to show the mouth and neck while keeping
   project.php as the dominant technical element. */
@media (min-width:981px){
  .bs-hero-primary-v3{min-height:620px!important}
  .bs-hero-side-v3{grid-template-rows:310px minmax(296px,1fr)!important}
  .bs-profile-card-v3{height:310px!important;min-height:310px!important}
  .bs-profile-media img{object-position:center 54%!important}
}

@media (max-width:780px){
  .bs-mobile-intro{margin:12px 0 16px!important}
  .bs-mobile-portfolio-group a{min-height:68px!important}
  .bs-mobile-nav-copy strong{font-size:13px!important;line-height:1.24!important}
  .bs-mobile-nav-subtitle{font-size:9.75px!important;line-height:1.45!important}
  .bs-local-points>span{gap:10px!important;padding:11px!important}
  .bs-local-points>span>.bs-icon{flex-basis:21px!important;width:21px!important;height:21px!important}
}

@media (max-width:440px){
  .bs-mobile-intro{margin:10px 0 15px!important}
  .bs-mobile-portfolio-group a{min-height:66px!important}
  .bs-mobile-nav-copy strong{font-size:12.5px!important}
  .bs-mobile-nav-subtitle{font-size:9.25px!important;line-height:1.5!important}
}

/* ===== v45-hero-final.css ===== */
/* barmSTUDIO Workbench 4.5 — final hero portrait and spacing pass. */

/* Desktop only. Mobile keeps the hardened one-column layout from the previous release. */
@media (min-width:981px){
  .bs-hero-v3-grid{
    grid-template-columns:minmax(0,1.58fr) minmax(340px,.66fr)!important;
    gap:14px!important;
    align-items:stretch!important;
  }

  /* The content card should feel intentional, not vertically padded by empty space. */
  .bs-hero-primary-v3{
    min-height:540px!important;
    height:540px!important;
    padding:38px 44px!important;
    justify-content:flex-start!important;
  }
  .bs-hero-kicker{margin-bottom:23px!important}
  .bs-hero h1{
    font-size:clamp(45px,3.72vw,60px)!important;
    line-height:1.005!important;
    max-width:860px!important;
    margin-bottom:17px!important;
  }
  .bs-hero-primary-v3 .bs-lead{
    max-width:770px!important;
    margin-bottom:20px!important;
    font-size:clamp(16px,1.12vw,18px)!important;
    line-height:1.52!important;
  }
  .bs-hero-actions{gap:8px!important}
  .bs-hero-proof-v3{
    margin-top:auto!important;
    padding-top:17px!important;
  }
  .bs-hero-proof-v3 strong{font-size:18px!important}
  .bs-hero-proof-v3 small{font-size:10px!important}

  /* The right rail now equals the left card height exactly. */
  .bs-hero-side-v3{
    grid-template-rows:260px 266px!important;
    gap:14px!important;
    height:540px!important;
  }

  /* Portrait: CV-like framing. The source image is shown fully instead of being cropped. */
  .bs-profile-card-v3{
    position:relative!important;
    height:260px!important;
    min-height:260px!important;
    overflow:hidden!important;
    background:linear-gradient(145deg,#eef3f9 0%,#f9fbff 48%,#e9eef7 100%)!important;
  }
  .bs-profile-media{
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    background:
      radial-gradient(circle at 50% 38%,rgba(255,255,255,.95),rgba(236,241,249,.74) 62%,rgba(220,227,239,.60) 100%)!important;
  }
  .bs-profile-media img{
    display:block!important;
    width:auto!important;
    height:100%!important;
    max-width:100%!important;
    object-fit:contain!important;
    object-position:center center!important;
    filter:grayscale(.22) saturate(.82) contrast(.98)!important;
    opacity:.96!important;
    transform:scale(.965)!important;
    transform-origin:center center!important;
    transition:transform .48s cubic-bezier(.2,.7,.2,1),filter .38s ease,opacity .38s ease!important;
  }
  .bs-profile-media::before{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    pointer-events:none!important;
    background:linear-gradient(135deg,rgba(255,255,255,.20) 0%,rgba(255,255,255,.02) 48%,rgba(12,18,42,.10) 100%)!important;
    opacity:.72!important;
    transition:opacity .35s ease!important;
  }
  .bs-profile-media::after{
    content:""!important;
    position:absolute!important;
    z-index:2!important;
    left:0!important;right:0!important;bottom:0!important;
    height:26%!important;
    pointer-events:none!important;
    background:linear-gradient(180deg,rgba(248,250,255,0),rgba(248,250,255,.24) 62%,rgba(248,250,255,.50))!important;
  }
  .bs-profile-card-v3:hover .bs-profile-media img{
    filter:grayscale(0) saturate(1) contrast(1)!important;
    opacity:1!important;
    transform:scale(.99)!important;
  }
  .bs-profile-card-v3:hover .bs-profile-media::before{opacity:.28!important}
  .bs-profile-overlay-v3{
    z-index:4!important;
    left:12px!important;right:12px!important;bottom:12px!important;
    padding:10px 11px 10px 13px!important;
  }
  .bs-profile-overlay-v3 strong{font-size:13px!important}
  .bs-profile-overlay-v3 span{font-size:9px!important}
  .bs-profile-overlay-v3>a{width:32px!important;height:32px!important}

  /* project.php stays useful, but no longer dictates an oversized hero. */
  .bs-terminal-v3{
    min-height:266px!important;
    height:266px!important;
    padding:14px 16px!important;
    overflow:hidden!important;
  }
  .bs-terminal-main{
    font-size:9.4px!important;
    line-height:1.42!important;
    padding-top:8px!important;
  }
  .bs-terminal-main p{margin:3px 0!important}
  .bs-terminal-result{margin-top:6px!important}
  .bs-type-line{margin-top:7px!important;padding:7px 9px!important}
  .bs-terminal-meta{
    margin-top:7px!important;
    padding-top:7px!important;
    gap:5px!important;
  }
  .bs-terminal-meta span{padding:5px 7px!important;font-size:7.5px!important}
}

@media (min-width:981px) and (max-width:1280px){
  .bs-hero-primary-v3{padding:34px 36px!important}
  .bs-hero h1{font-size:clamp(43px,4vw,54px)!important}
}

@media (prefers-reduced-motion:reduce){
  .bs-profile-media img,.bs-profile-media::before{transition:none!important}
}

/* ===== v46-final.css ===== */
/* barmSTUDIO Workbench 4.6 — final mobile detail + SEO/UI polish. */

/* Legal links belong to the footer's information architecture, not hidden text. */
.bs-footer-legal{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}
.bs-footer-legal a{color:#737c91;font:600 9px/1.4 var(--mono);text-decoration:none}
.bs-footer-legal a:hover{color:var(--brand-primary)}

@media (max-width:780px){
  /* O mnie: slightly taller portrait so the whole face remains visible. */
  .bs-about-visual-v2.bs-about-visual-compact{
    height:305px!important;min-height:305px!important;max-height:305px!important;
  }
  .bs-about-photo-v2 img{
    object-fit:cover!important;object-position:center 46%!important;
  }
  .bs-about-photo-v2::after{height:20%!important;background:linear-gradient(to bottom,transparent,rgba(245,248,253,.20))!important}

  /* Process: vertical, animated connector segments between every step. */
  .bs-process-flow{position:relative!important;gap:16px!important}
  .bs-process-flow li{position:relative!important;isolation:isolate!important}
  .bs-process-flow li:not(:last-child)::after{
    content:""!important;position:absolute!important;left:22px!important;top:23px!important;
    width:2px!important;height:calc(100% + 16px)!important;border-radius:99px!important;
    background:linear-gradient(180deg,#176cf3 0%,#6c47d9 52%,#b32270 100%)!important;
    transform:scaleY(0);transform-origin:top;opacity:.68;z-index:-1;
    transition:transform .62s cubic-bezier(.2,.7,.2,1);
  }
  .bs-process-flow.is-visible-flow li:nth-child(1)::after{transform:scaleY(1);transition-delay:.08s}
  .bs-process-flow.is-visible-flow li:nth-child(2)::after{transform:scaleY(1);transition-delay:.32s}
  .bs-process-flow.is-visible-flow li:nth-child(3)::after{transform:scaleY(1);transition-delay:.56s}
  .bs-process-node{z-index:2!important;background:#fff!important}

  /* Portfolio hero counter: its own row, never overlaid on the lead text. */
  .bs-portfolio-stat{
    position:static!important;right:auto!important;bottom:auto!important;
    display:flex!important;align-items:center!important;justify-content:flex-start!important;
    gap:10px!important;margin-top:18px!important;padding-top:14px!important;
    border-top:1px solid var(--line)!important;width:100%!important;
  }
  .bs-portfolio-stat strong{font-size:31px!important;line-height:1!important;flex:0 0 auto!important}
  .bs-portfolio-stat span{max-width:none!important;font-size:10.5px!important;line-height:1.35!important;color:#737c91!important}

  .bs-footer-legal{gap:7px!important;margin:2px 0!important}
  .bs-footer-legal a{font-size:8.5px!important}
}

@media (max-width:440px){
  .bs-about-visual-v2.bs-about-visual-compact{
    height:292px!important;min-height:292px!important;max-height:292px!important;
  }
  .bs-about-photo-v2 img{object-position:center 45%!important}
  .bs-portfolio-stat strong{font-size:29px!important}
  .bs-portfolio-stat span{font-size:10px!important}
}

@media (prefers-reduced-motion:reduce){
  .bs-process-flow li:not(:last-child)::after{transform:scaleY(1)!important;transition:none!important}
}
