/*
Theme Name: NIBRA 3D
Theme URI: https://nibrasolutionsltd.com
Author: NIBRA Solutions
Description: Dark 3D agency theme for NIBRA Solutions — interactive particle model that morphs into a new shape for every service as you scroll, editable Services / Team / Projects, SEO + AEO + digital marketing.
Version: 3.5.15
Requires at least: 5.8
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: nibra3d
*/

:root{
  --bg:#030a1c;
  --ink:#ffffff;
  --mute:rgba(255,255,255,.62);
  --line:rgba(255,255,255,.1);
  --indigo:#1f5bff;
  --indigo-2:#1746c9;
  --glow:#4fb3ff;
  --display:'Barlow Condensed','Plus Jakarta Sans',system-ui,sans-serif;
  --cyan:#27c4ff;
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --cw-off:190px;
  --cw-on:340px;
  --gap:14px;
  --ease:cubic-bezier(.7,0,.2,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}

body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
ul{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p{margin:0}

/* ---------- WebGL canvas ---------- */
#scene{
  position:fixed;inset:0;width:100%;height:100%;
  z-index:1;pointer-events:none;display:block;
}

main{position:relative;z-index:2}

/* ---------- Loader ---------- */
#loader{
  position:fixed;inset:0;z-index:999;background:var(--bg);
  display:flex;align-items:center;justify-content:center;
}
.ld-box{
  position:relative;width:min(330px,72vw);height:min(400px,52vh);
  border:1px solid var(--line);border-radius:8px;overflow:hidden;
  background:#050e26;
}
.ld-fill{
  position:absolute;left:0;bottom:0;width:100%;height:100%;transform:scaleY(0);transform-origin:bottom;
  background:linear-gradient(180deg,#1f5bff 0%,#0f2f8f 55%,#06123a 100%);
}
.ld-pct{position:absolute;left:18px;top:14px;font-size:30px;font-weight:300;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ld-txt{position:absolute;left:18px;bottom:16px;font-size:11px;letter-spacing:.18em;color:var(--mute)}
.ld-brand{position:absolute;bottom:34px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:.35em;color:rgba(255,255,255,.35)}
#loader.is-done{transform:translateY(-100%);transition:transform .9s var(--ease)}

/* ---------- Header ---------- */
.site-header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:22px clamp(18px,3.4vw,52px);
}
.brand-text{font-size:11px;font-weight:600;letter-spacing:.3em;color:rgba(255,255,255,.85)}
.brand img{max-height:34px;width:auto}
.main-nav{position:absolute;left:50%;transform:translateX(-50%)}
.nav-list{display:flex;gap:clamp(18px,2.6vw,38px)}
.nav-list a{font-size:12px;font-weight:500;color:rgba(255,255,255,.72);transition:color .25s}
.nav-list a:hover{color:#fff}

.pill-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:13px 26px;border-radius:999px;
  background:var(--indigo);color:#fff;font-size:13px;font-weight:600;
  border:1px solid rgba(255,255,255,.12);
  transition:transform .3s,background .3s,box-shadow .3s;
  box-shadow:0 8px 30px -8px rgba(31,91,255,.7);
}
.pill-btn:hover{transform:translateY(-2px);background:#3b78ff}
.pill-sm{min-height:44px;padding:6px 6px 6px 18px;font-size:11.5px;background:rgba(255,255,255,.06);box-shadow:none;border:1px solid rgba(255,255,255,.22);}
.pill-sm:hover{background:rgba(255,255,255,.12)}
.pill-dot{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#fff;color:#030a1c;font-style:normal}
.pill-lg{padding:10px 10px 10px 30px;font-size:clamp(14px,1.6vw,18px)}
.pill-lg .pill-dot{width:40px;height:40px}
.pill-lg .pill-dot svg{width:14px;height:14px}

.nav-toggle{display:none;background:none;border:0;width:44px;height:44px;position:relative;cursor:pointer}
.nav-toggle span{position:absolute;left:8px;right:8px;height:1.5px;background:#fff;transition:transform .3s,top .3s}
.nav-toggle span:nth-child(1){top:18px}
.nav-toggle span:nth-child(2){top:25px}
.nav-open .nav-toggle span:nth-child(1){top:22px;transform:rotate(45deg)}
.nav-open .nav-toggle span:nth-child(2){top:22px;transform:rotate(-45deg)}

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100vh;min-height:100svh;overflow:hidden}
.beam{
  position:absolute;top:-14%;left:-10%;width:66vw;height:82vh;pointer-events:none;
  filter:blur(34px);opacity:.9;transform:translateZ(0);
}
.beam::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(128deg,rgba(120,200,255,.95) 0%,rgba(40,130,255,.45) 28%,rgba(20,70,220,.16) 55%,transparent 78%);
  clip-path:polygon(0 0,66% 0,22% 92%,0 78%);
}
.bg-word{
  position:absolute;left:0;right:0;top:27%;text-align:center;
  white-space:nowrap;font-weight:800;letter-spacing:-.03em;line-height:1;
  font-size:clamp(70px,16vw,260px);color:rgba(255,255,255,.045);
  pointer-events:none;user-select:none;
}
/* v3.5.12: decorative bg-words stay invisible until webfonts arrive (see header font gate) so the Barlow Condensed swap cannot shift layout; opacity changes do not count toward CLS */
html.nb-fonts-pending .bg-word{opacity:0}
.hero-content{
  position:relative;min-height:100vh;min-height:100svh;
  padding:0 clamp(18px,3.4vw,52px);
  display:flex;flex-direction:column;justify-content:space-between;
}
.hero-title{
  margin-top:clamp(190px,34vh,360px);
  margin-left:clamp(0px,14vw,240px);
  font-size:clamp(2.2rem,4.7vw,4.7rem);font-weight:300;line-height:1.08;letter-spacing:-.025em;
  max-width:13em;
}
.hero-title em{font-style:italic;font-weight:600;display:inline}
.hero-bottom{
  display:flex;align-items:flex-end;justify-content:space-between;gap:30px;
  padding-bottom:clamp(26px,5vh,54px);
}
.hero-left{max-width:330px}
.hero-left p{font-size:13px;color:var(--mute);margin-bottom:22px;line-height:1.6}
.hero-stats{display:flex;gap:clamp(22px,3.4vw,56px)}
.stat{display:flex;align-items:center;gap:8px}
.stat b{font-size:clamp(20px,2vw,28px);font-weight:600;letter-spacing:-.02em}
.stat span{font-size:10px;line-height:1.25;color:var(--mute);max-width:70px}

/* JS reveal helpers */
.js .rv-in{opacity:0}
.js .rv{opacity:0;transform:translateY(34px)}

/* ---------- Services ---------- */
.services{position:relative;height:100vh;height:100svh;overflow:hidden;background:transparent}
.svc-inner{
  position:relative;height:100%;
  padding:clamp(86px,14vh,130px) 0 clamp(40px,7vh,70px) 42vw;
  display:flex;flex-direction:column;justify-content:center;gap:clamp(22px,4vh,40px);
}
.svc-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:30px;
  padding-right:clamp(18px,3.4vw,52px);
}
.svc-head h2{font-size:clamp(20px,2vw,28px);font-weight:500;letter-spacing:-.01em;white-space:nowrap}
.svc-head p{max-width:300px;font-size:11px;line-height:1.65;color:var(--mute)}

.svc-viewport{overflow:hidden;padding:2px 0}
.svc-track{
  display:flex;gap:var(--gap);
  transform:translateX(calc(var(--idx,0) * -1 * (var(--cw-off) + var(--gap))));
  transition:transform .8s var(--ease);
  will-change:transform;
}
.card{
  position:relative;flex:0 0 var(--cw-off);height:clamp(300px,50vh,430px);
  border-radius:14px;overflow:hidden;cursor:pointer;
  background:linear-gradient(165deg,#071230 0%,#040a1e 100%);
  border:1px solid rgba(255,255,255,.08);
  transition:flex-basis .8s var(--ease),background .6s,border-color .6s;
}
.card.is-active{flex-basis:var(--cw-on);background:linear-gradient(160deg,#2563ff 0%,#143fb8 100%);border-color:rgba(255,255,255,.18)}
.face{position:absolute;inset:0;padding:18px;display:flex;flex-direction:column;transition:opacity .45s}
.face-off{opacity:1}
.face-on{opacity:0;pointer-events:none;visibility:hidden;width:var(--cw-on);transition:opacity .45s,visibility 0s linear .45s}
.card.is-active .face-off{opacity:0}
.card.is-active .face-on{opacity:1;visibility:visible;transition-delay:.25s,0s}

.c-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.c-num{font-size:20px;font-weight:300;color:rgba(255,255,255,.88)}
.c-arrow{color:rgba(255,255,255,.7);flex:none;margin-top:3px}
.face-off .c-title{position:absolute;left:18px;bottom:18px;right:18px;font-size:13px;font-weight:500;color:rgba(255,255,255,.9)}
.c-dots{
  position:absolute;right:0;bottom:0;width:70%;height:55%;
  background-image:radial-gradient(rgba(110,190,255,.55) 1.1px,transparent 1.3px);
  background-size:9px 9px;
  -webkit-mask-image:radial-gradient(circle at 100% 100%,#000 0%,transparent 70%);
  mask-image:radial-gradient(circle at 100% 100%,#000 0%,transparent 70%);
  opacity:.8;
}
.face-on .c-title{font-size:15px;font-weight:600}
.c-desc{margin-top:clamp(26px,6vh,64px);font-size:11.5px;line-height:1.65;color:rgba(255,255,255,.82)}
.c-cols{margin-top:auto;display:flex;justify-content:space-between;gap:14px}
.c-cols small{display:block;font-size:10px;color:rgba(255,255,255,.65);margin-bottom:8px}
.c-cols ul li{font-size:10.5px;line-height:1.75;color:#fff}
.tools{display:flex;flex-direction:column;gap:5px;align-items:flex-end}
.tools span{font-size:9.5px;padding:3px 9px;border-radius:99px;background:rgba(255,255,255,.16);color:#fff}

.svc-meta{
  display:flex;align-items:center;gap:20px;padding-right:clamp(18px,3.4vw,52px);
  font-size:11px;color:var(--mute);letter-spacing:.08em;
}
.svc-meta b{color:#fff;font-weight:600}
.svc-hint{opacity:1;color:#fff;background:rgba(3,10,28,.72);padding:3px 10px;border-radius:99px}
.svc-hint::before{content:"";display:inline-block;width:26px;height:1px;background:currentColor;vertical-align:middle;margin-right:10px}

/* ---------- About ---------- */
.about{position:relative;padding:clamp(100px,18vh,200px) clamp(18px,3.4vw,52px)}
.about-inner{max-width:1180px;margin:0 0 0 0;width:min(100%,640px)}
.eyebrow{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--glow);margin-bottom:18px;font-weight:600}
.about h2,.contact h2{font-size:clamp(1.9rem,3.8vw,3.6rem);font-weight:300;letter-spacing:-.025em;line-height:1.1}
.about-cols{display:grid;gap:18px;margin-top:30px}
.about-cols p{font-size:14px;color:var(--mute);line-height:1.75}
.about-groups{margin-top:46px;display:grid;gap:26px}
.group h4{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;margin-bottom:12px;color:rgba(255,255,255,.9)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{
  font-size:11.5px;padding:7px 14px;border-radius:99px;
  border:1px solid var(--line);background:rgba(255,255,255,.04);color:rgba(255,255,255,.82);
}

/* ---------- Contact ---------- */
.contact{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px clamp(18px,3.4vw,52px)}
.contact-inner{max-width:820px;display:flex;flex-direction:column;align-items:center;gap:22px}
.contact-text{max-width:520px;font-size:14px;color:var(--mute);line-height:1.7}

/* ---------- Footer ---------- */
.site-footer{position:relative;z-index:2;border-top:1px solid var(--line);background:rgba(3,10,28,.8);}
.foot-inner{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;padding:22px clamp(18px,3.4vw,52px);font-size:11.5px;color:var(--mute)}
.foot-brand{letter-spacing:.3em;font-weight:600;color:#fff;font-size:11px}
.foot-mail:hover{color:#fff}

/* ---------- Inner pages ---------- */
.is-inner main{min-height:70vh}
.beam-inner{position:fixed;opacity:.55;z-index:0}
.inner-page{position:relative;padding:clamp(130px,20vh,190px) clamp(18px,3.4vw,52px) 80px}
.inner-wrap{max-width:820px;margin:0 auto}
.inner-title{font-size:clamp(2rem,4vw,3.4rem);font-weight:300;letter-spacing:-.025em;margin-bottom:28px}
.inner-post{margin-bottom:46px}
.inner-post-title{font-size:1.6rem;font-weight:500;margin-bottom:10px}
.inner-post-title a:hover{color:var(--glow)}
.entry{color:rgba(255,255,255,.78);line-height:1.8}
.entry a{color:var(--glow);text-decoration:underline}
.entry h2,.entry h3{color:#fff;margin:1.6em 0 .5em;font-weight:500}
.entry ul,.entry ol{margin:0 0 1.2em 1.4em}
.entry li{margin-bottom:.4em}
.entry hr{border:none;border-top:1px solid var(--line);margin:2em 0}
.entry table{width:100%;border-collapse:collapse;margin:0 0 1.4em}
.entry th,.entry td{border:1px solid var(--line);padding:10px 12px;text-align:left}
.entry th{color:#fff;font-weight:500}
.nibra-article-meta{color:var(--mute);font-size:.9rem;margin-bottom:24px}
.nibra-article-meta a{color:var(--glow)}
.nibra-related{margin-top:40px;padding-top:24px;border-top:1px solid var(--line)}
.nibra-related h2{color:#fff;font-weight:500;margin-bottom:12px}
.nibra-related li{margin-bottom:8px}
.nibra-related a{color:var(--glow)}
.home-faq{position:relative;padding:clamp(80px,14vh,140px) clamp(18px,3.4vw,52px)}
.home-faq-inner{max-width:820px;margin:0 auto}
.home-faq h2{font-size:clamp(1.9rem,3.8vw,3.6rem);font-weight:300;letter-spacing:-.025em;line-height:1.1;margin-bottom:30px}
.faq-item{padding:22px 0;border-top:1px solid var(--line)}
.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item h3{color:#fff;font-weight:500;margin-bottom:8px}
.faq-item p{font-size:14px;color:var(--mute);line-height:1.75}
.pagination{margin-top:30px;color:var(--mute)}
.pagination a,.pagination span{padding:6px 12px;border:1px solid var(--line);border-radius:8px;margin-right:6px}

/* ---------- Header states ---------- */
.site-header{transition:background .35s,backdrop-filter .35s,padding .35s}
.site-header.is-scrolled{background:rgba(3,10,28,.9);-webkit-padding-top:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.06)}
.nav-list .current-menu-item>a,.nav-list .current_page_item>a{color:#fff}

/* ---------- Page transition curtain ---------- */
#curtain{display:none;position:fixed;inset:0;z-index:998;background:#030a1c;pointer-events:none}
.js .is-inner #curtain{display:none}
.text-link{display:inline-block;margin-top:24px;font-size:13px;font-weight:600;color:var(--glow);transition:transform .3s}
.text-link:hover{transform:translateX(4px)}
.svc-all{margin-left:auto;font-weight:600;color:#fff;letter-spacing:0}
.svc-all:hover{color:var(--glow)}
.c-arrow{display:inline-block}
a.c-arrow{pointer-events:auto}
.foot-nav{display:flex;gap:20px}
.foot-nav a:hover{color:#fff}

/* ---------- Inner page hero ---------- */
.page-hero{position:relative;min-height:74vh;min-height:74svh;overflow:hidden;display:flex;align-items:flex-end}
.page-hero .bg-word{top:30%}
.page-hero-in{position:relative;padding:clamp(150px,28vh,260px) clamp(18px,3.4vw,52px) clamp(50px,9vh,100px);max-width:880px}
.page-title{font-size:clamp(2.2rem,4.8vw,4.6rem);font-weight:300;line-height:1.08;letter-spacing:-.025em}
.page-title em{font-style:italic;font-weight:600}
.page-sub{margin-top:22px;max-width:520px;font-size:14px;color:var(--mute);line-height:1.7}
body[data-side="left"] .page-hero-in{margin-left:clamp(0px,calc(42vw - 52px),900px);max-width:none;padding-right:clamp(18px,3.4vw,52px)}

/* ---------- Services page ---------- */
.svc-index{position:relative;padding:0 clamp(18px,3.4vw,52px)}
.svc-index-in{display:flex;flex-wrap:wrap;gap:10px;padding:0 0 30px;margin-left:clamp(0px,calc(42vw - 52px),900px)}
.chip-link{display:inline-flex;gap:10px;align-items:center;font-size:12px;min-height:44px;padding:8px 16px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.04);transition:background .3s,border-color .3s}
.chip-link span{color:var(--glow);font-weight:600}
.chip-link:hover{background:rgba(79,179,255,.18);border-color:rgba(79,179,255,.5)}
.svc-page{position:relative}
.svc-block{min-height:92vh;display:flex;align-items:center;padding:60px clamp(18px,3.4vw,52px) 60px 42vw;scroll-margin-top:0}
.svc-block-in{
  width:100%;max-width:600px;padding:clamp(24px,3vw,40px);border-radius:20px;
  background:linear-gradient(160deg,rgba(31,91,255,.28),rgba(5,14,38,.78));
  border:1px solid rgba(255,255,255,.1);
}
.sb-num{font-size:13px;letter-spacing:.2em;color:var(--glow);font-weight:600}
.svc-block h2{margin:10px 0 14px;font-size:clamp(1.7rem,3vw,2.7rem);font-weight:400;letter-spacing:-.02em;line-height:1.1}
.sb-desc{font-size:14px;color:rgba(255,255,255,.78);line-height:1.75}
.sb-cols{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;margin:26px 0 30px}
.sb-cols small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:12px}
.sb-cols li{font-size:13px;line-height:2;padding-left:16px;position:relative}
.sb-cols li::before{content:"";position:absolute;left:0;top:.95em;width:6px;height:1px;background:var(--glow)}

/* ---------- CTA band ---------- */
.cta-band{position:relative;padding:clamp(80px,14vh,150px) clamp(18px,3.4vw,52px);text-align:center}
.cta-in{max-width:700px;margin:0 auto;display:flex;flex-direction:column;align-items:center;gap:18px;
  padding:clamp(34px,5vw,60px);border-radius:24px;border:1px solid var(--line);background:rgba(5,14,38,.7);}
.cta-in h2{font-size:clamp(1.6rem,3vw,2.6rem);font-weight:300;letter-spacing:-.02em;line-height:1.15}
.cta-in p{color:var(--mute);font-size:14px}

/* ---------- About page ---------- */
.about-page{position:relative;padding:20px clamp(18px,3.4vw,52px) 40px}
.ap-wrap{width:min(100%,820px)}
.ap-story p{font-size:15px;line-height:1.85;color:rgba(255,255,255,.78);margin-bottom:20px}
.ap-h{margin:70px 0 24px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--glow);font-weight:600}
.what-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.what-card{padding:24px;border-radius:16px;border:1px solid var(--line);background:rgba(5,14,38,.72);transition:border-color .3s,transform .3s}
.what-card:hover{border-color:rgba(79,179,255,.5)}
.what-card h4{font-size:15px;font-weight:600;margin-bottom:8px}
.what-card p{font-size:12.5px;line-height:1.7;color:var(--mute)}
.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.step{padding:22px;border-radius:16px;background:linear-gradient(160deg,rgba(31,91,255,.25),rgba(5,14,38,.75));border:1px solid rgba(255,255,255,.08)}
.step span{font-size:12px;color:var(--glow);font-weight:600;letter-spacing:.2em}
.step h4{margin:8px 0 6px;font-size:16px;font-weight:600}
.step p{font-size:12.5px;line-height:1.65;color:rgba(255,255,255,.7)}
.ap-groups{margin-top:0}

/* ---------- Contact page ---------- */
.contact-page{position:relative;padding:20px clamp(18px,3.4vw,52px) 100px}
.cp-wrap{width:min(100%,760px);display:grid;gap:34px}
.cp-info{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.cp-info small{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.cp-info a,.cp-info p,.cp-info li{font-size:13px;color:#fff;line-height:1.7}
.cp-info a{word-break:break-all;border-bottom:1px solid rgba(255,255,255,.3)}
.cp-info li{color:rgba(255,255,255,.75)}
.cp-form{display:grid;gap:18px;padding:clamp(22px,3vw,38px);border-radius:22px;border:1px solid var(--line);background:rgba(5,14,38,.78);}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.cp-form label span{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:8px}
.cp-form input,.cp-form select,.cp-form textarea{
  width:100%;font:inherit;font-size:14px;color:#fff;padding:13px 16px;border-radius:12px;
  background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);outline:none;transition:border-color .25s,background .25s;
}
.cp-form select option{background:#06102a;color:#fff}
.cp-form input:focus,.cp-form select:focus,.cp-form textarea:focus{border-color:var(--glow);background:rgba(255,255,255,.08)}
.cp-form textarea{resize:vertical;min-height:140px}
.cp-form .pill-btn{justify-self:start;cursor:pointer;border:0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{padding:14px 18px;border-radius:12px;font-size:13px}
.form-note.ok{background:rgba(70,200,140,.14);border:1px solid rgba(70,200,140,.4)}
.form-note.bad{background:rgba(240,90,90,.14);border:1px solid rgba(240,90,90,.4)}

/* ---------- Responsive ---------- */
@media (max-width:1100px){
  :root{--cw-off:150px;--cw-on:300px}
  .svc-inner{padding-left:38vw}
}
@media (max-width:899px){
  .page-hero{min-height:60vh}
  body[data-side="left"] .page-hero-in{margin-left:0}
  .svc-index-in{margin-left:0}
  .svc-block{padding:30px 18px;min-height:auto}
  .sb-cols{grid-template-columns:1fr}
  .what-grid,.steps,.f-row,.cp-info{grid-template-columns:1fr}
  .foot-inner{flex-direction:column;align-items:flex-start}
  :root{--cw-off:118px;--cw-on:min(78vw,320px);--gap:10px}
  .main-nav{
    position:fixed;inset:0;transform:none;background:rgba(3,10,28,.96);
    display:flex;align-items:center;justify-content:center;
    opacity:0;pointer-events:none;transition:opacity .35s;z-index:-1;
    overflow-y:auto;
  }
  .nav-open .main-nav{opacity:1;pointer-events:auto}
  .nav-list{flex-direction:column;align-items:center;gap:26px}
  .nav-list a{font-size:22px;font-weight:300;padding:6px 12px}
  .nav-toggle{display:block;order:3}
  .site-header .pill-sm{display:none}
  .site-header{justify-content:space-between;background:linear-gradient(180deg,rgba(3,10,28,.92) 40%,transparent)}
  .nav-open .site-header{z-index:60}

  .beam{width:120vw;height:55vh}
  .bg-word{top:18%;font-size:17vw}
  .hero-title{margin-left:0;margin-top:clamp(120px,24vh,200px);font-size:clamp(2.1rem,9vw,3.2rem)}
  .hero-bottom{flex-direction:column;align-items:flex-start;gap:26px}
  .hero-stats{gap:22px}

  .svc-inner{padding:84px 0 36px 18px;justify-content:flex-end;gap:18px}
  .svc-head{flex-direction:column;gap:8px;padding-right:18px}
  .svc-head p{max-width:none}
  .card{height:clamp(250px,36vh,320px)}
  .about{padding-top:90px}
  .about-inner{width:100%}
}
@media (prefers-reduced-motion:reduce){
  .svc-track,.card,.face{transition-duration:.01s}
}


/* ================= v2: NIBRA identity ================= */
.brand{display:inline-flex;align-items:center;gap:12px}
.logo-img{height:38px;width:auto;display:block}
/* uploaded custom logo: always header-sized, whatever the source image dimensions */
.brand-custom{flex:none;max-width:220px}
.brand-custom .custom-logo-link{display:block;line-height:0}
.brand-custom .custom-logo,.site-header .brand img{height:38px !important;width:auto !important;max-width:100%;max-height:38px;object-fit:contain;display:block}
.brand-text{display:flex;flex-direction:column;line-height:1;letter-spacing:0}
.brand-text b{font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:.08em}
.brand-text small{font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin-top:3px;font-weight:500}
.ld-logo{position:absolute;left:50%;top:44%;width:92px;height:auto;transform:translate(-50%,-50%);filter:drop-shadow(0 0 24px rgba(39,196,255,.55))}
.ld-brand{font-family:var(--display);font-size:20px;letter-spacing:.5em;color:rgba(255,255,255,.55)}
.nav-list{gap:clamp(14px,1.9vw,30px)}

.hero-title,.page-title,.cta-in h2,.about h2,.contact h2{font-family:var(--display);text-transform:uppercase;font-weight:600;letter-spacing:.005em;line-height:1}
.hero-title{font-size:clamp(2.8rem,6.4vw,6.2rem)}
.page-title{font-size:clamp(2.6rem,5.6vw,5.4rem)}
.hero-title em,.page-title em{font-style:normal;font-weight:700;background:linear-gradient(90deg,#4fb3ff,#27c4ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.about h2,.contact h2{font-size:clamp(2.2rem,4.2vw,4rem)}
.svc-head h2,.svc-block h2{font-family:var(--display);text-transform:uppercase;font-weight:600;letter-spacing:.01em}
.svc-head h2{font-size:clamp(26px,2.6vw,38px)}
.svc-block h2{font-size:clamp(2.2rem,3.6vw,3.4rem);line-height:1}
.bg-word{font-family:var(--display);font-weight:700}

/* generic sections */
.sec{position:relative;padding:clamp(46px,8vh,92px) clamp(18px,3.4vw,52px)}
.wide{max-width:1180px;margin:0 auto;width:100%}
.sec-head{margin-bottom:30px;max-width:640px}
.sec-head h2{font-family:var(--display);font-size:clamp(2rem,3.4vw,3.2rem);text-transform:uppercase;font-weight:600;line-height:1;letter-spacing:.01em}
.sec-head h2::after{content:"";display:block;width:56px;height:3px;margin-top:14px;border-radius:2px;background:linear-gradient(90deg,var(--indigo),var(--cyan))}
.sec-head p{margin-top:14px;font-size:14px;line-height:1.7;color:var(--mute)}
.story{max-width:820px;margin:0}
.story p{font-size:16px;line-height:1.85;color:rgba(255,255,255,.8);margin-bottom:20px}
.gr{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.gc{padding:26px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(165deg,rgba(14,34,92,.55),rgba(5,14,38,.78));transition:border-color .3s,transform .3s}
.gc:hover{border-color:rgba(79,179,255,.55);transform:translateY(-3px)}
.gc .ic{color:var(--cyan);margin-bottom:16px;display:block}
.gc h3{font-size:16px;font-weight:600;margin-bottom:8px;letter-spacing:-.005em}
.gc p{font-size:13px;line-height:1.7;color:var(--mute)}
.gc .chips{margin-top:12px}
.quotes .gc{margin:0}
.gc blockquote{margin:0 0 18px;font-size:15px;line-height:1.7;color:rgba(255,255,255,.88)}
.gc figcaption{font-size:12px;color:var(--cyan);font-weight:600}
.nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin-top:28px;border:1px solid var(--line);border-radius:18px;background:rgba(5,14,38,.72);overflow:hidden}
.nums>div{padding:26px 22px;border-right:1px solid var(--line)}
.nums>div:last-child{border-right:0}
.nums b{display:block;font-family:var(--display);font-size:clamp(2.2rem,3.4vw,3.2rem);font-weight:600;line-height:1;background:linear-gradient(90deg,#fff,#7fd0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.nums span{display:block;margin-top:8px;font-size:12px;color:var(--mute)}
.sec .nums:first-child{margin-top:0}
.flow{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;counter-reset:s}
.flow li{position:relative;padding:22px 22px 24px;border-radius:16px;border:1px solid var(--line);background:rgba(5,14,38,.72);}
.flow li::after{content:"";position:absolute;top:34px;right:-12px;width:8px;height:8px;border-top:1.5px solid var(--glow);border-right:1.5px solid var(--glow);transform:rotate(45deg)}
.flow li:last-child::after{display:none}
.flow span{font-family:var(--display);font-size:22px;font-weight:600;color:var(--cyan)}
.flow h3{margin:6px 0;font-size:15px;font-weight:600}
.flow p{font-size:12.5px;line-height:1.65;color:var(--mute)}
.sec .chips{margin-top:18px}
.sec .chips span{font-size:13px;padding:9px 18px}
.sec-links{display:flex;gap:26px;flex-wrap:wrap;margin-top:6px}

/* page hero tweak for wide pages: keep left-aligned over particles */
.about{padding-bottom:clamp(40px,8vh,90px)}

/* contact page */
.contact-page .cp-wrap{width:100%;max-width:1180px;margin:0 auto}
.cp-info{grid-template-columns:repeat(3,1fr);gap:16px}
.ci{padding:22px;border-radius:18px;border:1px solid var(--line);background:linear-gradient(165deg,rgba(14,34,92,.5),rgba(5,14,38,.78));}
.ci .ic{color:var(--cyan);margin-bottom:12px}
.ci a{display:block;margin-bottom:4px}
.cp-form{max-width:820px}

@media (max-width:899px){
  .logo-img{height:32px}
  .brand-custom .custom-logo,.site-header .brand img{height:32px !important;max-height:32px}
  .brand-text small{display:none}
  .foot-grid{grid-template-columns:1fr;gap:28px}
  .foot-cta{flex-direction:column;align-items:flex-start;gap:22px}
  .foot-bar{padding-right:70px}
  .cp-info{grid-template-columns:1fr}
  .flow li::after{display:none}
  .nums>div{border-right:0;border-bottom:1px solid var(--line)}
  .hero-title{font-size:clamp(2.6rem,12vw,3.8rem)}
}
@media (min-width:900px) and (max-width:1180px){.cp-info{grid-template-columns:repeat(2,1fr)}}

/* ================= v2.1: depth ================= */
.gc,.ci,.flow li,.cta-in{backdrop-filter:none;-webkit-backdrop-filter:none;transform-style:preserve-3d;position:relative;}
.gc{background:linear-gradient(165deg,rgba(16,40,108,.72),rgba(5,14,38,.9));box-shadow:0 30px 60px -34px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.07)}
.ci{background:linear-gradient(165deg,rgba(16,40,108,.65),rgba(5,14,38,.9))}
.flow li{background:rgba(5,14,38,.88)}
.gc .ic,.ci .ic{transform:translateZ(34px)}
.gc h3,.ci small{transform:translateZ(22px)}
.gc::after,.ci::after,.flow li::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(circle at var(--mx,50%) var(--my,0%),rgba(120,200,255,.2),transparent 55%)}
.flow li::before{z-index:0}
.gc:hover::after,.ci:hover::after,.flow li:hover::before{opacity:1}
.flow li.on{border-color:rgba(79,179,255,.6);box-shadow:0 0 34px -10px rgba(39,196,255,.55)}
.flow li.on span{text-shadow:0 0 18px rgba(39,196,255,.9)}
#modules.hs .wide{overflow:hidden;padding-bottom:30px}
#modules.hs .gr{display:flex;flex-wrap:nowrap;width:max-content;gap:18px;padding:30px 0}
#modules.hs .gc{flex:0 0 300px;min-height:220px}

/* ================= v2.1: footer ================= */
.site-footer{position:relative;overflow:hidden;margin-top:60px;border-top:1px solid rgba(79,179,255,.25);background:linear-gradient(180deg,rgba(3,10,28,.35) 0%,#020716 38%);backdrop-filter:none}
.foot-glow{position:absolute;left:50%;top:-220px;width:900px;height:460px;transform:translateX(-50%);pointer-events:none;background:radial-gradient(ellipse at center,rgba(31,91,255,.4),rgba(39,196,255,.1) 45%,transparent 70%)}
.foot-cta{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(24px,4vw,54px);max-width:1180px;margin:0 auto;padding:clamp(54px,9vh,90px) clamp(18px,3.4vw,52px) 10px}
.foot-logo-wrap{flex:none;perspective:700px;animation:footfloat 6s ease-in-out infinite}
.foot-logo3d{position:relative;width:clamp(96px,10vw,140px);aspect-ratio:420/342;transform-style:preserve-3d}
.foot-logo3d img{position:absolute;inset:0;width:100%;height:100%}
.foot-cta-text{flex:1}
.foot-cta h2{font-family:var(--display);text-transform:uppercase;font-weight:600;font-size:clamp(2rem,4vw,3.6rem);line-height:1;letter-spacing:.01em}
.foot-cta p{margin-top:10px;font-size:14px;color:var(--mute);max-width:440px}
.foot-word{position:relative;z-index:1;white-space:nowrap;text-align:center;overflow:hidden;font-family:var(--display);font-weight:700;font-size:12vw;line-height:.95;letter-spacing:.02em;padding:0 1vw;margin:clamp(20px,4vh,50px) 0 -.05em;user-select:none;pointer-events:none;background:linear-gradient(180deg,#4fb3ff 0%,#1f5bff 55%,rgba(31,91,255,.05) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;opacity:.75}
.foot-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.4fr .7fr 1.5fr;gap:clamp(28px,4vw,56px);max-width:1180px;margin:0 auto;padding:36px clamp(18px,3.4vw,52px) 40px}
.foot-col{display:flex;flex-direction:column;gap:10px;font-size:13px;color:var(--mute)}
.foot-col h3{font-family:var(--display);font-size:20px;letter-spacing:.1em;text-transform:uppercase;color:#fff;font-weight:600;margin-bottom:6px}
.foot-nav a{width:max-content;transition:color .25s,transform .25s}
.foot-nav a:hover{color:#fff;transform:translateX(6px)}
.foot-contact a,.fc-line{display:flex;gap:12px;align-items:flex-start;line-height:1.6;transition:color .25s}
.foot-contact a:hover{color:#fff}
.foot-contact .ic{width:18px;height:18px;flex:none;color:var(--cyan);margin-top:2px}
.foot-about p{max-width:320px;line-height:1.75;margin-top:16px}
.socials{display:flex;gap:10px;margin-top:20px}
.soc{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);color:#fff;background:rgba(255,255,255,.04);transition:transform .3s,background .3s,box-shadow .3s}
.soc:hover{transform:translateY(-4px);background:var(--indigo);box-shadow:0 10px 26px -8px rgba(31,91,255,.9)}
.foot-bar{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;max-width:1180px;margin:0 auto;padding:20px clamp(18px,3.4vw,52px) 26px;border-top:1px solid var(--line);font-size:11.5px;color:var(--mute)}
.foot-tag{letter-spacing:.3em;text-transform:uppercase;font-size:10.5px;color:rgba(255,255,255,.55)}
.to-top{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.05);color:#fff;cursor:pointer;transition:transform .3s,background .3s}
.to-top:hover{transform:translateY(-4px);background:var(--indigo)}
@keyframes footfloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@media (prefers-reduced-motion:reduce){.foot-logo-wrap{animation:none}}
@media (max-width:899px){.foot-grid{grid-template-columns:1fr}.foot-word{font-size:11.5vw}}

.lite .beam{filter:none;opacity:.5}


/* ================= v3: team, projects, speed ================= */
[hidden]{display:none!important}
.nb-seen #loader{display:none}
.sp{position:fixed;top:0;left:0;width:100%;height:2px;z-index:70;pointer-events:none;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--indigo),var(--cyan))}

/* link cards (Explore) */
a.gc{display:block;color:inherit}
.gc-go{display:inline-flex;align-items:center;gap:8px;margin-top:16px;font-size:12px;font-weight:600;color:var(--glow)}
.gc-go svg{transition:transform .3s}
a.gc:hover .gc-go svg{transform:translate(3px,-3px)}

/* admin-only edit pill */
.edit-link{display:inline-block;margin-top:14px;padding:4px 12px;border-radius:99px;font-size:11px;font-weight:600;color:#fff;background:rgba(31,91,255,.55);border:1px solid rgba(255,255,255,.2);position:relative;z-index:3}
.edit-link:hover{background:var(--indigo)}

/* shared grid: --cols columns on desktop, collapses by itself on small screens */
.team-grid,.pj-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(max(230px,calc((100% - (var(--cols,4) - 1) * 16px) / var(--cols,4) - 1px)),1fr))}

/* team */
.tm{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(165deg,rgba(16,40,108,.72),rgba(5,14,38,.92));box-shadow:0 30px 60px -34px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.07);transition:border-color .3s}
.tm:hover{border-color:rgba(79,179,255,.55)}
.tm-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:radial-gradient(circle at 30% 20%,rgba(79,179,255,.35),rgba(5,14,38,.9) 70%)}
.tm-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:45%;background:linear-gradient(180deg,transparent,rgba(5,14,38,.95));pointer-events:none}
.tm-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.85) contrast(1.05);transition:transform .8s cubic-bezier(.2,.7,.2,1),filter .5s}
.tm:hover .tm-photo img{transform:scale(1.06);filter:none}
.tm-ini{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-weight:700;font-size:clamp(3.4rem,6vw,5rem);letter-spacing:.04em;color:rgba(255,255,255,.9);background-image:radial-gradient(rgba(110,190,255,.45) 1.1px,transparent 1.3px);background-size:11px 11px}
.tm-info{position:relative;z-index:2;padding:6px 20px 22px;margin-top:-46px}
.tm-name{font-size:17px;font-weight:600;letter-spacing:-.005em}
.tm-role{margin-top:3px;font-size:12px;font-weight:600;color:var(--cyan)}
.tm-bio{margin-top:10px;font-size:12.5px;line-height:1.65;color:var(--mute);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tm-soc{display:flex;gap:8px;margin-top:14px}
.tm-soc a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);color:#fff;transition:transform .3s,background .3s}
.tm-soc a:hover{transform:translateY(-3px);background:var(--indigo)}
.tm-soc svg{width:15px;height:15px}

/* projects */
.pj-filter{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.pj-filter button{font:inherit;font-size:12px;font-weight:600;min-height:44px;padding:8px 18px;border-radius:99px;cursor:pointer;color:rgba(255,255,255,.8);background:rgba(255,255,255,.04);border:1px solid var(--line);transition:background .3s,border-color .3s,color .3s}
.pj-filter button:hover{border-color:rgba(79,179,255,.5)}
.pj-filter button.on{background:var(--indigo);border-color:transparent;color:#fff}
.pj{position:relative;display:flex;flex-direction:column;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:linear-gradient(165deg,rgba(16,40,108,.6),rgba(5,14,38,.92));box-shadow:0 30px 60px -34px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.07);transition:border-color .3s}
.pj:hover{border-color:rgba(79,179,255,.55)}
.pj-media{position:relative;display:block;aspect-ratio:16/10;overflow:hidden;background:#050e26}
.pj-media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.pj:hover .pj-media img{transform:scale(1.06)}
.pj-ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--cyan);background:radial-gradient(circle at 70% 20%,rgba(31,91,255,.55),rgba(5,14,38,.95) 70%)}
.pj-ph::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(110,190,255,.4) 1.1px,transparent 1.3px);background-size:12px 12px;-webkit-mask-image:radial-gradient(circle at 100% 100%,#000,transparent 75%);mask-image:radial-gradient(circle at 100% 100%,#000,transparent 75%)}
.pj-ph svg{position:relative;width:58px;height:58px;stroke-width:1.2}
.pj-cat{position:absolute;left:14px;top:14px;font-size:10.5px;font-weight:600;letter-spacing:.04em;padding:5px 12px;border-radius:99px;background:rgba(3,10,28,.78);border:1px solid rgba(255,255,255,.16)}
.pj-body{position:relative;display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.pj-meta{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.pj-title{font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.25}
.pj-title a::after{content:"";position:absolute;inset:0;z-index:1}
.pj-desc{margin-top:8px;font-size:13px;line-height:1.65;color:var(--mute)}
.pj-res{margin-top:12px;font-family:var(--display);font-size:20px;font-weight:600;letter-spacing:.02em;background:linear-gradient(90deg,#fff,#7fd0ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.pj-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:14px}
.pj-tags span{font-size:11px;padding:5px 11px;border-radius:99px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:rgba(255,255,255,.8)}

/* single project */
.pj-single{max-width:900px}
.pj-facts{display:flex;flex-wrap:wrap;align-items:flex-end;gap:22px 40px;padding:24px 28px;margin-bottom:30px;border-radius:18px;border:1px solid var(--line);background:rgba(5,14,38,.78)}
.pj-facts small{display:block;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);margin-bottom:6px}
.pj-facts b{font-size:16px;font-weight:600}
.pj-facts .pj-tags{margin:0;padding:0}
.pj-facts .pill-btn{margin-left:auto}
.pj-hero-img{margin-bottom:34px;border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.pj-hero-img img{display:block;width:100%}
.pj-entry{font-size:15.5px}

@media (max-width:899px){
  .pj-facts{padding:20px}
  .pj-facts .pill-btn{margin-left:0}
  .tm-info{margin-top:-34px}
}
@media (prefers-reduced-motion:reduce){.sp{display:none}}

/* Accessibility + AEO additions (2026-10-25): skip link, breadcrumbs, FAQs */
.skip-link{position:absolute;left:-9999px;top:0;background:#fff;color:#030a1c;padding:10px 16px;z-index:999}
.skip-link:focus{left:12px;top:12px}
.crumbs{max-width:1200px;margin:0 auto;padding:18px 20px 0;font-size:14px;color:var(--mute)}
.crumbs a{color:var(--ink);text-decoration:underline}
.faq-sec details{border-bottom:1px solid var(--line);padding:16px 0}
.faq-sec summary{cursor:pointer;font-weight:600}
.faq-sec summary::-webkit-details-marker{color:var(--cyan)}

/* Interlinking band (2026-10-25): appears in the footer on every page */
.crosslinks{max-width:1200px;margin:0 auto;padding:28px 20px 8px;border-top:1px solid var(--line)}
.crosslinks h3{margin:0 0 12px;font-size:15px;letter-spacing:.08em;text-transform:uppercase;color:var(--mute)}
.crosslinks-list{display:flex;flex-wrap:wrap;gap:10px}
.crosslinks-list a{display:block;border:1px solid var(--line);border-radius:10px;padding:10px 14px;text-decoration:none;color:var(--ink)}
.crosslinks-list a span{display:block;font-size:13px;color:var(--mute)}
.sb-seealso{margin-top:12px;font-size:14px;color:var(--mute)}
.sb-seealso a{color:var(--ink);text-decoration:underline}
.pj-links{margin:24px 0;font-size:15px}

/* Dedicated service pages (2026-10-25) */
.svc-include{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}
.svc-include li{border:1px solid var(--line);border-radius:10px;padding:12px 16px}

/* Page features, one per page (2026-10-25) */
@keyframes hero-rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
.hero-reveal .hero-content > *{animation:hero-rise .8s cubic-bezier(.7,0,.2,1) both}
.hero-reveal .hero-content > *:nth-child(2){animation-delay:.15s}
.hero-reveal .hero-content > *:nth-child(3){animation-delay:.3s}
.word-rotator-line{font-size:clamp(20px,3vw,30px);font-weight:600;padding:24px 20px 0}
.word-rotator{color:var(--cyan);display:inline-block;transition:opacity .3s,transform .3s}
.word-rotator.rot-out{opacity:0;transform:translateY(8px)}
.bento-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.bento-card{border:1px solid var(--line);border-radius:16px;padding:20px;text-decoration:none;color:var(--ink);background:rgba(255,255,255,.03)}
.bento-card:hover{border-color:var(--cyan)}
.bento-wide{grid-column:span 2}
.bento-tall{grid-row:span 2}
.bento-num{font-size:13px;color:var(--mute)}
.bento-card h3{margin:6px 0}
.bento-card p{font-size:14px;color:var(--mute)}
@media(max-width:800px){.bento-grid{grid-template-columns:1fr 1fr}.bento-wide,.bento-tall{grid-column:span 2;grid-row:auto}}
@media(max-width:520px){.bento-grid{grid-template-columns:1fr}.bento-wide,.bento-tall{grid-column:auto;grid-row:auto}}
.sale-ping{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--cyan);margin-left:8px;animation:ping-ring 2s infinite}
.sale-ping::after{content:'';position:absolute;inset:0;border-radius:50%;border:2px solid var(--cyan);animation:ping-ring 2s infinite}
@keyframes ping-ring{0%{transform:scale(1);opacity:.9}100%{transform:scale(2.4);opacity:0}}
main .pill-btn{position:relative}
.process-draw{position:relative}
.process-draw::before{content:'';position:absolute;left:19px;top:0;bottom:0;width:2px;background:var(--cyan);transform:scaleY(0);transform-origin:top;transition:transform 1.4s ease}
.process-draw.drawn::before{transform:scaleY(1)}
.process-draw li{position:relative}
.review-shuffle{border:1px solid var(--line);border-radius:16px;padding:28px;max-width:760px}
.rs-quote{font-size:clamp(18px,2.5vw,24px);margin:12px 0}
.rs-cite{color:var(--mute)}
.rs-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){
  .hero-reveal .hero-content > *{animation:none}
  .sale-ping,.sale-ping::after{animation:none}
  .process-draw::before{transition:none}
}

/* Location pages (2026-10-25) */
.crosslinks-locs{max-width:1200px;margin:0 auto;padding:0 20px 12px;font-size:14px;color:var(--mute)}
.crosslinks-locs a{color:var(--ink);text-decoration:underline;margin-right:10px}

/* Chatbot UI/UX (v3.5.0): attractive, responsive, fast — transform/opacity
   animation only, footer-loaded (never render-blocking), tap targets >= 44px */
#nibra-chat{position:fixed;right:20px;bottom:20px;z-index:9999;font-family:inherit}
#nibra-chat-toggle{width:60px;height:60px;border-radius:50%;border:0;background:linear-gradient(135deg,#38e1c6,#22b8f0);color:#030a1c;cursor:pointer;box-shadow:0 10px 30px rgba(0,0,0,.45),0 0 0 1px rgba(56,225,198,.25);display:flex;align-items:center;justify-content:center;transition:transform .15s ease}
#nibra-chat-toggle:hover{transform:scale(1.06)}
#nibra-chat-toggle:active{transform:scale(.96)}
#nibra-chat-panel{position:absolute;right:0;bottom:76px;width:min(400px,calc(100vw - 32px));height:560px;height:min(560px,calc(100vh - 120px));height:min(560px,calc(100dvh - 120px));background:linear-gradient(180deg,#0c1a36,#0a1730);border:1px solid rgba(255,255,255,.12);border-radius:24px;overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.55);display:flex;flex-direction:column;contain:content;animation:nc-up .22s ease}
#nibra-chat-panel[hidden]{display:none}
@keyframes nc-up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@keyframes nc-bounce{0%,100%{transform:translateY(0);opacity:.45}50%{transform:translateY(-4px);opacity:1}}
@keyframes nc-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.6}}
.nc-head{display:flex;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,rgba(56,225,198,.22),rgba(34,184,240,.14));border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}
.nc-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,#38e1c6,#22b8f0);color:#030a1c;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;box-shadow:0 4px 14px rgba(56,225,198,.35)}
.nc-head-text{flex:1;display:flex;flex-direction:column;min-width:0}
.nc-head-text b{font-size:15px}
.nc-head-text span{font-size:12px;color:var(--mute)}
.nc-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#2ee06b;margin-right:5px;animation:nc-pulse 2s infinite}
.nc-head button{background:rgba(255,255,255,.1);border:0;color:var(--ink);font-size:20px;cursor:pointer;line-height:1;width:44px;height:44px;border-radius:50%;flex-shrink:0}
.nc-head button:hover{background:rgba(255,255,255,.2)}
#nibra-chat-log{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}
.nc-msg{max-width:86%;padding:12px 16px;border-radius:20px;font-size:15px;line-height:1.55;animation:nc-up .18s ease;overflow-wrap:break-word}
.nc-user{align-self:flex-end;background:linear-gradient(135deg,#38e1c6,#22b8f0);color:#030a1c;border-bottom-right-radius:6px;box-shadow:0 4px 14px rgba(56,225,198,.25)}
.nc-bot{align-self:flex-start;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.08);border-bottom-left-radius:6px}
.nc-link{color:#38e1c6;font-weight:600}
.nc-typing i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--mute);margin:0 2px;animation:nc-bounce 1s infinite}
.nc-typing i:nth-child(2){animation-delay:.15s}
.nc-typing i:nth-child(3){animation-delay:.3s}
.nc-feedback{display:block;margin-top:8px}
.nc-feedback button{background:rgba(255,255,255,.1);border:1px solid var(--line);border-radius:20px;padding:10px 14px;cursor:pointer;margin-right:6px;font-size:14px;min-height:44px}
.nc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 12px;flex-shrink:0}
.nc-chips button{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:var(--ink);border-radius:20px;padding:8px 14px;cursor:pointer;font-size:13px;min-height:44px}
.nc-chips button:hover{background:rgba(56,225,198,.22);border-color:rgba(56,225,198,.5)}
#nibra-chat-form{display:flex;gap:8px;padding:12px;border-top:1px solid rgba(255,255,255,.1);flex-shrink:0}
#nibra-chat-form input{flex:1;min-width:0;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:var(--ink);border-radius:24px;padding:0 16px;min-height:46px;font-size:15px}
#nibra-chat-form button,#nibra-chat-email button{background:linear-gradient(135deg,#38e1c6,#22b8f0);border:0;color:#030a1c;border-radius:24px;padding:0 20px;cursor:pointer;font-weight:700;min-height:46px;font-size:15px}
#nibra-chat-form button:active,#nibra-chat-email button:active{transform:scale(.97)}
#nibra-chat-suggest{display:flex;flex-direction:column;gap:6px;padding:0 14px 12px;flex-shrink:0}
#nibra-chat-suggest:empty{display:none}
#nibra-chat-suggest button{background:rgba(56,225,198,.12);border:1px solid rgba(56,225,198,.4);color:var(--ink);border-radius:20px;padding:8px 14px;cursor:pointer;font-size:13px;text-align:left;min-height:44px}
#nibra-chat-email{padding:12px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:8px;overflow-y:auto;flex-shrink:0}
#nibra-chat-email[hidden]{display:none}
#nibra-chat-email input,#nibra-chat-email textarea{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);color:var(--ink);border-radius:12px;padding:0 12px;min-height:46px;font-size:15px}
#nibra-chat-email textarea{padding:12px}
#nibra-chat-email-open,#nibra-chat-clear{background:none;border:0;color:var(--mute);cursor:pointer;padding:0 14px 12px;font-size:13px;text-decoration:underline;min-height:44px}
#nibra-chat-teaser{position:absolute;right:0;bottom:76px;width:min(300px,calc(100vw - 32px));background:#0a1730;border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:13px 15px;font-size:13px;line-height:1.5;box-shadow:0 14px 40px rgba(0,0,0,.5);display:flex;gap:10px;align-items:flex-start;cursor:pointer;animation:nc-up .22s ease}
#nibra-chat-teaser[hidden]{display:none}
#nibra-chat-teaser button{background:none;border:0;color:var(--mute);font-size:18px;cursor:pointer;line-height:1;min-width:44px;min-height:44px}
#nibra-chat .hp{position:absolute;left:-9999px}
#nibra-chat button:focus-visible,#nibra-chat input:focus-visible,#nibra-chat textarea:focus-visible{outline:2px solid #38e1c6;outline-offset:2px}
.main-nav a:focus-visible,.pill-btn:focus-visible,.bento-card:focus-visible,.crosslinks-list a:focus-visible,.foot-nav a:focus-visible,.text-link:focus-visible,.svc-all:focus-visible,.card:focus-visible,.gc:focus-visible,.pj-title a:focus-visible,.chip-link:focus-visible,.soc:focus-visible,.to-top:focus-visible,.nav-toggle:focus-visible,.pj-filter button:focus-visible,.c-arrow:focus-visible{outline:2px solid #38e1c6;outline-offset:2px}
@media(max-width:520px){
  #nibra-chat{right:12px;bottom:12px}
  #nibra-chat-toggle{width:56px;height:56px}
  #nibra-chat-panel{position:fixed;left:12px;right:12px;bottom:80px;width:auto;height:min(640px,72vh);height:min(640px,72dvh);border-radius:22px}
  #nibra-chat-teaser{position:fixed;left:12px;right:12px;bottom:80px;width:auto}
  .nc-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;scroll-snap-type:x mandatory}
  .nc-chips::-webkit-scrollbar{display:none}
  .nc-chips button{flex-shrink:0;scroll-snap-align:start}
  #nibra-chat-log{padding:14px}
  .nc-msg{font-size:15px}
}
@media(prefers-reduced-motion:reduce){#nibra-chat-panel,.nc-msg,#nibra-chat-teaser{animation:none}.nc-dot,.nc-typing i{animation:none}}

/* Chatbot fixes (v3.5.2): obvious links, scroll-down button, email back button */
.nc-log-wrap{position:relative;flex:1;min-height:0;display:flex}
.nc-log-wrap #nibra-chat-log{flex:1}
#nibra-chat-scrolldown{position:absolute;right:14px;bottom:14px;z-index:2;background:linear-gradient(135deg,#38e1c6,#22b8f0);color:#030a1c;border:0;border-radius:20px;padding:12px 16px;font-weight:700;font-size:13px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.45);min-height:44px}
#nibra-chat-scrolldown[hidden]{display:none}
.nc-link{display:inline-block;margin-top:8px;background:rgba(56,225,198,.16);border:1px solid rgba(56,225,198,.55);color:#38e1c6;font-weight:700;padding:7px 14px;border-radius:20px;text-decoration:none}
.nc-link:hover{background:rgba(56,225,198,.3)}
.nc-email-btn{align-self:flex-start;background:linear-gradient(135deg,#38e1c6,#22b8f0);color:#030a1c;border:0;border-radius:20px;padding:9px 16px;font-weight:700;font-size:14px;cursor:pointer;min-height:44px}
#nibra-chat-email-back-top{align-self:flex-start;background:none;border:0;color:var(--mute);cursor:pointer;padding:0;font-size:13px;text-decoration:underline;min-height:44px}

/* Audit fixes (v3.5.3): privacy consent checkbox on the contact form */
.f-check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.f-check input{width:18px;height:18px;flex:none;margin-top:2px;accent-color:#38e1c6}
.f-check a{color:#38e1c6}

/* Floor 02 re-audit fixes: no-JS fallback for the scroll-driven services track.
   Without JS the track never pins and only the first card is active, leaving 9 of 10
   services unreachable on the homepage. With no `js` class on <html> (added by the
   header inline script only when JS runs, and removed again if the theme scripts
   fail), stack the cards and show every expanded face with its link. The "All
   services" link remains as a second route. Specificity (html:not(.js) + classes)
   and end-of-file position both beat the base rules and the 899px media rules. */
html:not(.js) .services{height:auto;overflow:visible}
html:not(.js) .svc-inner{height:auto;padding:84px 18px 36px}
html:not(.js) .svc-viewport{overflow:visible}
html:not(.js) .svc-track{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;transform:none}
html:not(.js) .card{flex:none;height:auto}
html:not(.js) .card .face-off{display:none}
html:not(.js) .card .face-on{position:static;opacity:1;pointer-events:auto;visibility:visible;width:auto}
html:not(.js) .svc-hint,html:not(.js) .svc-count{display:none}
