:root{color-scheme:dark;--bg:#080d18;--panel:#101827;--panel-2:#141f30;--ink:#f2f5fb;--muted:#a2aec2;--soft:#c9d3e2;--line:rgba(188,205,231,.14);--accent:#84e0cf;--accent-2:#a7f0e2;--blue:#8eb7ff;--max:1160px;--radius:24px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse at 83% 7%,rgba(76,117,185,.17),transparent 37%),radial-gradient(ellipse at 5% 48%,rgba(48,147,134,.08),transparent 34%),var(--bg)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}img,svg{max-width:100%}.wrap{width:min(var(--max),calc(100% - 48px));margin-inline:auto}.topline{height:3px;background:linear-gradient(90deg,var(--accent),#6da4f5 48%,#b7a3fa)}.site-header{position:sticky;top:0;z-index:20;background:rgba(8,13,24,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:inline-flex;align-items:center;gap:12px;font-weight:750;letter-spacing:-.04em;font-size:19px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(132,224,207,.42);border-radius:11px;background:linear-gradient(145deg,rgba(132,224,207,.14),rgba(142,183,255,.07));color:var(--accent)}.brand-mark svg{width:22px;height:22px}.brand small{display:block;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1.2;margin-top:2px}.nav-links{display:flex;align-items:center;gap:27px;color:var(--soft);font-size:13px;font-weight:600}.nav-links a{transition:color .2s}.nav-links a[aria-current="page"]{color:var(--accent)}.nav-cta{border:1px solid rgba(132,224,207,.35);padding:10px 15px;border-radius:999px;color:var(--accent)!important}.menu-toggle{display:none;border:1px solid var(--line);background:transparent;color:var(--ink);width:42px;height:42px;border-radius:12px;font-size:20px}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:var(--accent);text-transform:uppercase;letter-spacing:.15em;font-weight:750;font-size:11px}.eyebrow:before{content:"";width:22px;height:1px;background:currentColor}.hero{padding:93px 0 84px;position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.04fr .96fr;align-items:center;gap:54px}.hero h1{font-size:clamp(42px,6.3vw,76px);line-height:1.03;letter-spacing:-.065em;font-weight:680;margin:24px 0 24px;max-width:680px}.hero h1 .accent{color:var(--accent)}.lead{font-size:18px;line-height:1.75;color:var(--muted);max-width:610px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 19px;border-radius:999px;font-size:13px;font-weight:750;border:1px solid var(--line);transition:transform .2s,border-color .2s,background .2s}.button:hover{transform:translateY(-2px)}.button-primary{color:#071511;background:var(--accent);border-color:var(--accent)}.button-primary:hover{background:var(--accent-2);color:#071511}.button-quiet{color:var(--soft);background:rgba(255,255,255,.02)}.button-quiet:hover{border-color:rgba(132,224,207,.5)}.hero-note{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:12px;margin-top:25px}.dot{height:7px;width:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(132,224,207,.1)}.visual{min-height:435px;position:relative;display:grid;place-items:center}.visual-glow{position:absolute;width:74%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(68,160,161,.16),rgba(80,107,171,.08) 48%,transparent 72%);filter:blur(8px)}.orbit{position:absolute;border:1px solid rgba(166,193,231,.16);border-radius:50%;transform:rotate(-24deg)}.orbit.one{width:400px;height:180px}.orbit.two{width:400px;height:180px;transform:rotate(36deg)}.orbit.three{width:305px;height:305px}.core-card{position:relative;width:min(310px,80%);padding:25px;border:1px solid rgba(173,204,233,.21);border-radius:24px;background:linear-gradient(145deg,rgba(23,37,56,.92),rgba(12,20,33,.93));box-shadow:0 30px 100px rgba(0,0,0,.33)}.core-top{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:10px;letter-spacing:.13em;text-transform:uppercase}.tiny-mark{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--accent);background:rgba(132,224,207,.1)}.core-title{font-size:25px;font-weight:650;letter-spacing:-.045em;line-height:1.2;margin:25px 0 8px}.core-copy{font-size:12px;line-height:1.65;color:var(--muted)}.signal{display:flex;gap:5px;align-items:flex-end;height:42px;margin:25px 0 18px}.signal span{display:block;flex:1;border-radius:4px 4px 1px 1px;background:linear-gradient(180deg,var(--accent),rgba(132,224,207,.22));opacity:.8}.signal span:nth-child(1){height:25%}.signal span:nth-child(2){height:43%}.signal span:nth-child(3){height:31%}.signal span:nth-child(4){height:66%}.signal span:nth-child(5){height:47%}.signal span:nth-child(6){height:80%}.signal span:nth-child(7){height:59%}.signal span:nth-child(8){height:94%}.signal span:nth-child(9){height:70%}.signal span:nth-child(10){height:53%}.signal span:nth-child(11){height:77%}.signal span:nth-child(12){height:43%}.core-bottom{border-top:1px solid var(--line);padding-top:14px;display:flex;justify-content:space-between;color:var(--muted);font-size:10px}.core-bottom strong{color:var(--accent);font-weight:650}.float-tag{position:absolute;padding:12px 15px;border:1px solid var(--line);border-radius:14px;background:rgba(16,24,39,.92);box-shadow:0 18px 42px rgba(0,0,0,.18);font-size:11px;color:var(--soft)}.float-tag b{display:block;color:var(--ink);font-size:13px;font-weight:650;margin-bottom:2px}.float-a{top:66px;right:5px}.float-b{left:0;bottom:66px}.section{padding:85px 0}.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:38px}.section h2,.page-hero h1{font-size:clamp(32px,4.2vw,48px);letter-spacing:-.055em;line-height:1.1;font-weight:650;margin:13px 0 0}.section-intro{max-width:430px;color:var(--muted);font-size:14px;margin:0}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{position:relative;overflow:hidden;padding:27px;border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(145deg,rgba(19,29,45,.87),rgba(12,19,31,.76));min-height:248px}.card-number{font-size:11px;letter-spacing:.13em;color:var(--accent);font-weight:750}.card-icon{height:47px;width:47px;border-radius:15px;display:grid;place-items:center;border:1px solid rgba(132,224,207,.2);background:rgba(132,224,207,.06);color:var(--accent);margin:25px 0 21px}.card-icon svg{width:22px;height:22px}.card h3{font-size:20px;font-weight:650;letter-spacing:-.035em;margin:0 0 10px}.card p{font-size:13px;line-height:1.75;color:var(--muted);margin:0}.text-link{display:inline-flex;align-items:center;gap:9px;font-size:13px;font-weight:700;color:var(--accent);margin-top:20px}.text-link span{transition:transform .2s}.text-link:hover span{transform:translateX(4px)}.banner{border:1px solid var(--line);border-radius:28px;padding:clamp(27px,5vw,50px);display:flex;align-items:center;justify-content:space-between;gap:35px;background:radial-gradient(ellipse at 100% 0,rgba(84,127,197,.17),transparent 54%),linear-gradient(120deg,rgba(19,34,50,.96),rgba(11,19,31,.94))}.banner h2{margin:12px 0;font-size:clamp(28px,4vw,42px);line-height:1.14;letter-spacing:-.05em;max-width:600px}.banner p{max-width:560px;color:var(--muted);font-size:14px;margin:0}.page-hero{padding:88px 0 52px;max-width:800px}.page-hero h1{font-size:clamp(42px,6vw,66px);margin:18px 0}.page-hero .lead{font-size:17px}.content-section{padding:20px 0 85px}.prose{max-width:780px;color:var(--soft);font-size:15px;line-height:1.9}.prose h2{font-size:25px;letter-spacing:-.04em;color:var(--ink);margin:40px 0 12px}.prose h3{font-size:18px;color:var(--ink);margin:28px 0 8px}.prose p{margin:0 0 18px}.prose ul{padding-left:22px}.prose li{padding:4px 0}.principles{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:30px}.principle{padding:23px;border:1px solid var(--line);border-radius:18px;background:rgba(17,27,42,.68)}.principle b{display:block;margin-bottom:7px;font-size:15px}.principle p{color:var(--muted);font-size:13px;margin:0;line-height:1.7}.project-list{display:grid;gap:14px}.project-row{display:grid;grid-template-columns:65px 1fr auto;gap:22px;align-items:start;padding:27px;border:1px solid var(--line);border-radius:22px;background:rgba(17,27,42,.65)}.project-index{color:var(--accent);font-size:12px;font-weight:750;letter-spacing:.1em;padding-top:5px}.project-row h2{font-size:22px;letter-spacing:-.04em;margin:0 0 8px}.project-row p{margin:0;color:var(--muted);font-size:14px;max-width:700px}.tag{display:inline-flex;padding:6px 10px;border:1px solid var(--line);border-radius:99px;font-size:10px;letter-spacing:.06em;color:var(--soft);white-space:nowrap}.contact-panel{padding:33px;border:1px solid var(--line);border-radius:24px;background:rgba(17,27,42,.7);max-width:800px}.contact-panel p{color:var(--muted);max-width:620px}.contact-label{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:10px;font-weight:750}.site-footer{border-top:1px solid var(--line);padding:29px 0 35px;color:var(--muted);font-size:11px}.footer-inner{display:flex;justify-content:space-between;gap:26px;align-items:center}.footer-brand{display:flex;align-items:center;gap:10px;color:var(--soft)}.footer-brand .brand-mark{width:29px;height:29px;border-radius:9px}.footer-brand .brand-mark svg{width:18px}.footer-links{display:flex;gap:19px;flex-wrap:wrap}.footer-note{margin-top:12px;color:#738198;font-size:10px}.not-found{min-height:55vh;display:flex;align-items:center;padding:70px 0}.error-code{font-size:clamp(80px,18vw,170px);line-height:.9;letter-spacing:-.09em;font-weight:750;color:rgba(132,224,207,.2);margin:0 0 25px}.rule{height:1px;background:var(--line);margin:30px 0}
@media(max-width:900px){.hero{padding:70px 0 60px}.hero-grid{grid-template-columns:1fr;gap:14px}.hero-copy{max-width:760px}.visual{min-height:365px}.orbit.one,.orbit.two{width:340px;height:155px}.orbit.three{width:260px;height:260px}.float-a{right:8%}.float-b{left:8%}.cards{grid-template-columns:1fr 1fr}.cards .card:last-child{grid-column:span 2;min-height:auto}.section{padding:65px 0}.section-top{align-items:flex-start;flex-direction:column;gap:13px}.nav-links{gap:17px}}
@media(max-width:680px){.wrap{width:min(var(--max),calc(100% - 34px))}.nav{min-height:68px;flex-wrap:wrap}.menu-toggle{display:block}.nav-links{display:none;width:100%;padding:4px 0 19px;flex-direction:column;align-items:stretch;gap:0}.nav-links.is-open{display:flex}.nav-links a{padding:12px 5px;border-top:1px solid var(--line)}.nav-cta{border:none;padding:12px 5px}.hero{padding:56px 0 42px}.hero h1{font-size:clamp(42px,12vw,62px)}.lead{font-size:16px}.visual{min-height:330px;margin-top:0}.core-card{width:260px;padding:21px}.orbit.one,.orbit.two{width:285px;height:135px}.orbit.three{width:230px;height:230px}.float-tag{padding:9px 11px;font-size:10px}.float-tag b{font-size:11px}.float-a{top:26px;right:0}.float-b{left:0;bottom:30px}.section{padding:53px 0}.cards{grid-template-columns:1fr}.cards .card:last-child{grid-column:auto}.card{min-height:auto;padding:24px}.card-icon{margin:20px 0 16px}.banner{align-items:flex-start;flex-direction:column;border-radius:22px}.banner .button{width:100%}.page-hero{padding:64px 0 30px}.page-hero h1{font-size:clamp(40px,11vw,58px)}.page-hero .lead{font-size:16px}.content-section{padding-bottom:60px}.principles{grid-template-columns:1fr}.project-row{grid-template-columns:34px 1fr;gap:12px;padding:22px}.project-row .tag{grid-column:2;justify-self:start}.project-row h2{font-size:20px}.contact-panel{padding:25px}.footer-inner{align-items:flex-start;flex-direction:column}.footer-links{gap:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}


/* North Bridge identity refresh — subtle motion, crisp geometry, no external assets. */
.brand-mark{position:relative;overflow:hidden;isolation:isolate;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 5px 22px rgba(71,157,151,.07);transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease}
.brand-mark:after{content:"";position:absolute;inset:-60% -30%;z-index:-1;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.13) 48%,transparent 60%);transform:translateX(-80%);transition:transform .65s ease}
.brand:hover .brand-mark,.footer-brand:hover .brand-mark{transform:translateY(-1px);border-color:rgba(132,224,207,.75);box-shadow:0 0 0 4px rgba(132,224,207,.05),0 8px 28px rgba(71,157,151,.16)}
.brand:hover .brand-mark:after,.footer-brand:hover .brand-mark:after{transform:translateX(80%)}
.brand-mark svg{width:23px;height:23px;overflow:visible}
.topline{background-size:200% 100%;animation:topline-flow 9s ease-in-out infinite alternate}
.hero{isolation:isolate}
.hero:before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.23;background-image:linear-gradient(rgba(142,183,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(142,183,255,.08) 1px,transparent 1px);background-size:44px 44px;mask-image:linear-gradient(90deg,black,transparent 86%);-webkit-mask-image:linear-gradient(90deg,black,transparent 86%)}
.hero-copy>*{animation:rise-in .72s cubic-bezier(.2,.7,.2,1) both}
.hero-copy>.eyebrow{animation-delay:.04s}.hero-copy>h1{animation-delay:.1s}.hero-copy>.lead{animation-delay:.18s}.hero-copy>.actions{animation-delay:.25s}.hero-copy>.hero-note{animation-delay:.32s}
.visual{animation:rise-in .9s .12s cubic-bezier(.2,.7,.2,1) both}
.visual-glow{animation:glow-breathe 8s ease-in-out infinite alternate}
.orbit.one{animation:orbit-turn-a 42s linear infinite}
.orbit.two{animation:orbit-turn-b 54s linear infinite}
.orbit.three{animation:ring-breathe 7s ease-in-out infinite alternate}
.core-card{animation:card-hover 7s ease-in-out infinite;backdrop-filter:blur(8px)}
.float-a{animation:tag-hover-a 8s ease-in-out infinite}
.float-b{animation:tag-hover-b 9s ease-in-out infinite}
.signal span{transform-origin:bottom;animation:signal-wave 2.8s ease-in-out infinite alternate}
.signal span:nth-child(3n){animation-delay:-.8s}.signal span:nth-child(3n + 1){animation-delay:-1.7s}.signal span:nth-child(4n){animation-duration:3.4s}
.live-dot{display:inline-block;width:6px;height:6px;margin:0 6px 1px 0;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(132,224,207,.11);animation:live-pulse 2s ease-out infinite}
.foundation-strip{position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(90deg,rgba(16,28,43,.62),rgba(10,17,28,.82),rgba(16,28,43,.62))}
.foundation-grid{display:grid;grid-template-columns:.68fr repeat(3,1fr);align-items:center;gap:22px;min-height:112px}
.foundation-label{display:flex;align-items:center;gap:10px;color:#8494ac;font-size:10px;letter-spacing:.16em;font-weight:800}
.foundation-pulse{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(132,224,207,.08)}
.foundation-item{display:flex;align-items:flex-start;gap:13px;min-width:0}
.foundation-item>span{font-size:11px;color:var(--accent);font-weight:800;letter-spacing:.05em;padding-top:2px}
.foundation-item b{display:block;color:var(--soft);font-size:12px;font-weight:680;line-height:1.4}
.foundation-item small{display:block;margin-top:4px;color:#7f8ea5;font-size:10px;line-height:1.5}
.card{transition:transform .28s ease,border-color .28s ease,background .28s ease,box-shadow .28s ease}
.card:before{content:"";position:absolute;width:180px;height:180px;right:-120px;top:-130px;border-radius:50%;background:radial-gradient(circle,rgba(132,224,207,.11),transparent 68%);opacity:0;transition:opacity .3s ease;pointer-events:none}
.card:hover{transform:translateY(-5px);border-color:rgba(132,224,207,.34);background:linear-gradient(145deg,rgba(24,39,57,.94),rgba(12,19,31,.85));box-shadow:0 20px 48px rgba(0,0,0,.16)}
.card:hover:before{opacity:1}
.card-icon{transition:transform .28s ease,background .28s ease,border-color .28s ease}
.card:hover .card-icon{transform:translateY(-2px) rotate(-3deg);background:rgba(132,224,207,.1);border-color:rgba(132,224,207,.4)}
.button{position:relative;overflow:hidden}
.button-primary:after{content:"";position:absolute;inset:0;transform:translateX(-130%);background:linear-gradient(100deg,transparent 25%,rgba(255,255,255,.35) 50%,transparent 75%);transition:transform .65s ease}
.button-primary:hover:after{transform:translateX(130%)}
.banner{position:relative;overflow:hidden}
.banner:after{content:"";position:absolute;right:-100px;bottom:-170px;width:300px;height:300px;border:1px solid rgba(132,224,207,.12);border-radius:50%;box-shadow:0 0 0 35px rgba(132,224,207,.025),0 0 0 70px rgba(132,224,207,.02);pointer-events:none}
.banner>*{position:relative;z-index:1}
::selection{color:#071511;background:var(--accent)}
@keyframes rise-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes topline-flow{from{background-position:0 0}to{background-position:100% 0}}
@keyframes glow-breathe{from{transform:scale(.93);opacity:.65}to{transform:scale(1.08);opacity:1}}
@keyframes orbit-turn-a{from{transform:rotate(-24deg)}to{transform:rotate(336deg)}}
@keyframes orbit-turn-b{from{transform:rotate(36deg)}to{transform:rotate(-324deg)}}
@keyframes ring-breathe{from{transform:scale(.97);opacity:.65}to{transform:scale(1.04);opacity:1}}
@keyframes card-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes tag-hover-a{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes tag-hover-b{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes signal-wave{from{transform:scaleY(.72);opacity:.55}to{transform:scaleY(1);opacity:.95}}
@keyframes live-pulse{0%{box-shadow:0 0 0 0 rgba(132,224,207,.25)}75%,100%{box-shadow:0 0 0 6px rgba(132,224,207,0)}}
@media(max-width:900px){.foundation-grid{grid-template-columns:repeat(3,1fr);gap:20px;padding-block:24px}.foundation-label{grid-column:1/-1}}
@media(max-width:680px){.hero:before{opacity:.15;background-size:34px 34px}.foundation-grid{grid-template-columns:1fr;gap:18px;padding-block:24px}.foundation-label{grid-column:auto}.foundation-item{padding-bottom:14px;border-bottom:1px solid rgba(188,205,231,.08)}.foundation-item:last-child{padding-bottom:0;border-bottom:0}.card:hover{transform:none}.banner:after{right:-185px}}
@media(prefers-reduced-motion:reduce){.topline,.hero-copy>*,.visual,.visual-glow,.orbit.one,.orbit.two,.orbit.three,.core-card,.float-a,.float-b,.signal span,.live-dot{animation:none!important}.brand-mark,.brand-mark:after,.card,.card:before,.card-icon,.button-primary:after{transition:none!important}}
