:root{--header-h:72px;--dock-h:74px;--ink:#0a0b0d;--paper:#f4f4f1;--line:rgba(10,11,13,.14);--muted:#676b72;--think:#4a38ff;--think-hot:#ff4d67;--build:#5b8cff;--build-cyan:#74e8ff;--grow:#46e6a4;--grow-cyan:#43d9ff;--radius:28px;--mono:"SFMono-Regular",Consolas,"Liberation Mono",monospace;--sans:Arial,"Helvetica Neue",Helvetica,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:#08090b}body{margin:0;font-family:var(--sans);font-size:16px;line-height:1.45;color:var(--ink);background:var(--paper);overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img,svg{display:block;max-width:100%}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;left:16px;top:-60px;z-index:1000;background:#fff;color:#000;padding:10px 14px;border-radius:8px}.skip-link:focus{top:12px}.section-shell{width:min(1440px,calc(100% - 64px));margin-inline:auto}.reveal{opacity:0;transform:translateY(34px);transition:opacity .75s cubic-bezier(.2,.8,.2,1),transform .75s cubic-bezier(.2,.8,.2,1)}.reveal.visible{opacity:1;transform:none}
/* Header */
.site-header{position:fixed;inset:0 0 auto;height:var(--header-h);z-index:90;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid rgba(0,0,0,.12);background:rgba(247,247,244,.88);backdrop-filter:blur(18px);transition:background .3s,border-color .3s,color .3s}.site-signature{display:flex;align-items:center;gap:11px;letter-spacing:-.045em}.site-signature strong{font-size:23px}.site-signature i{width:7px;height:7px;background:currentColor;border-radius:50%;animation:brandPulse 2.2s ease-in-out infinite}.main-nav{display:flex;align-items:center;gap:8px}.main-nav a{font-size:12px;font-weight:700;padding:10px 13px;border-radius:999px;transition:.2s}.main-nav a:hover,.main-nav a.active{background:rgba(0,0,0,.08)}.main-nav .nav-contact{border:1px solid currentColor;padding-inline:17px}.menu-toggle{display:none;border:0;background:none;color:inherit;width:42px;height:42px}.menu-toggle>span:not(.sr-only){display:block;width:22px;height:1px;background:currentColor;margin:5px auto}.theme-home .site-header,.theme-build .site-header,.theme-grow .site-header,.theme-maintenance .site-header{color:#fff;background:rgba(6,8,12,.72);border-color:rgba(255,255,255,.12)}.theme-home .main-nav a:hover,.theme-home .main-nav a.active,.theme-build .main-nav a:hover,.theme-build .main-nav a.active,.theme-grow .main-nav a:hover,.theme-grow .main-nav a.active{background:rgba(255,255,255,.12)}.site-header.scrolled{box-shadow:0 8px 30px rgba(0,0,0,.08)}
.maintenance-preview{height:32px;position:fixed;inset:0 0 auto;z-index:120;background:#ffd33d;color:#111;display:flex;align-items:center;justify-content:center;gap:12px;font-size:11px}.maintenance-preview strong{text-transform:uppercase;letter-spacing:.08em}.maintenance-preview a{text-decoration:underline}.maintenance-preview+.site-header{top:32px}.maintenance-preview~.pillar-dock{top:calc(var(--header-h) + 32px);margin-top:calc(var(--header-h) + 32px)}
/* Area dock */
.pillar-dock{height:var(--dock-h);position:sticky;top:var(--header-h);z-index:75;margin-top:var(--header-h);display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid rgba(0,0,0,.16);background:#fff}.pillar-link{position:relative;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px;padding:0 24px;border-right:1px solid rgba(0,0,0,.13);overflow:hidden;isolation:isolate;transition:color .3s}.pillar-link:last-child{border-right:0}.pillar-link:before{content:"";position:absolute;inset:100% 0 0;z-index:-1;transition:inset .35s cubic-bezier(.2,.8,.2,1)}.pillar-link:hover:before,.pillar-link.active:before{inset:0}.pillar-link span,.pillar-link small{font:10px var(--mono);letter-spacing:.08em}.pillar-link strong{font-size:21px;letter-spacing:-.055em}.pillar-link small{text-transform:uppercase}.pillar-link.think:before{background:#d8d2ff}.pillar-link.build:before{background:#10141d}.pillar-link.grow:before{background:#08242c}.pillar-link.build:hover,.pillar-link.build.active,.pillar-link.grow:hover,.pillar-link.grow.active{color:#fff}
/* Portal */
.theme-home{background:#07080a;color:#fff;overflow:hidden}.theme-home main{height:100svh}.portal-v3{height:100svh;padding:calc(var(--header-h) + 14px) 14px 14px;position:relative}.portal-heading{position:absolute;left:34px;top:calc(var(--header-h) + 24px);z-index:3;display:flex;gap:8px;pointer-events:none}.portal-heading span{font:9px var(--mono);letter-spacing:.16em;background:#fff;color:#000;padding:5px 7px}.portal-grid{height:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;transition:grid-template-columns .55s cubic-bezier(.2,.8,.2,1)}.portal-grid:has(.portal-think:hover){grid-template-columns:1.18fr .91fr .91fr}.portal-grid:has(.portal-build:hover){grid-template-columns:.91fr 1.18fr .91fr}.portal-grid:has(.portal-grow:hover){grid-template-columns:.91fr .91fr 1.18fr}.portal-card{position:relative;border-radius:24px;overflow:hidden;min-width:0;padding:26px;color:#fff;isolation:isolate;transition:filter .4s,transform .4s cubic-bezier(.2,.8,.2,1)}.portal-card:after{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.16);border-radius:inherit;pointer-events:none}.portal-card:hover{transform:translateY(-3px)}.portal-meta{display:flex;justify-content:space-between;align-items:flex-start;position:relative;z-index:4}.portal-meta span{font:10px var(--mono);letter-spacing:.12em}.portal-meta em{font:9px var(--mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;opacity:.66;text-align:right;max-width:220px}.portal-name{position:absolute;left:28px;bottom:28px;z-index:5;display:grid}.portal-name strong{font-size:clamp(58px,6vw,118px);line-height:.82;letter-spacing:-.085em}.portal-name span{font:10px var(--mono);text-transform:uppercase;letter-spacing:.13em;margin-top:15px;opacity:.68}.portal-arrow{position:absolute;right:25px;bottom:24px;z-index:5;width:42px;height:42px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-style:normal;transition:transform .3s,background .3s,color .3s}.portal-card:hover .portal-arrow{transform:rotate(45deg);background:#fff;color:#000}.portal-hint{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:8;font:8px var(--mono);letter-spacing:.15em;text-transform:uppercase;opacity:.55;pointer-events:none}
.portal-think{background:#e9e5ff;color:#111}.portal-think:before{content:"";position:absolute;width:55%;aspect-ratio:1;border-radius:50%;background:#ff4e69;filter:blur(1px);right:-18%;top:16%;opacity:.92}.think-object{position:absolute;inset:14% 8% 24%;z-index:2}.think-word{position:absolute;font-weight:900;line-height:.8;letter-spacing:-.09em}.word-one{font-size:clamp(62px,7vw,128px);top:7%;left:1%;transform:rotate(-6deg)}.word-two{font-size:clamp(56px,6vw,112px);right:-3%;bottom:9%;color:#fff;transform:rotate(5deg)}.shape{position:absolute;display:block;mix-blend-mode:multiply;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.shape-a{width:33%;aspect-ratio:1;background:#ffc800;border-radius:50%;left:13%;bottom:13%}.shape-b{width:34%;height:20%;background:#4a38ff;right:10%;top:25%;transform:rotate(19deg)}.shape-c{width:18%;aspect-ratio:1;border:4px solid #111;left:48%;top:41%;transform:rotate(45deg)}.think-object>b{position:absolute;right:5%;top:1%;font-size:82px;font-weight:300}.portal-think:hover .shape-a{transform:translate(-12px,12px)}.portal-think:hover .shape-b{transform:rotate(4deg) translateX(12px)}.portal-think:hover .shape-c{transform:rotate(90deg)}
.portal-build{background:#0d1016}.portal-build:before{content:"";position:absolute;inset:15% -25% auto auto;width:80%;aspect-ratio:1;background:radial-gradient(circle,#4f79ff55,transparent 62%)}.build-object{position:absolute;inset:17% 7% 25%;perspective:1100px}.build-screen{position:absolute;width:82%;height:62%;left:1%;top:9%;border:1px solid #59647b;background:linear-gradient(145deg,#1e2635,#0b0d12 72%);border-radius:18px;box-shadow:0 35px 80px #000;transform:rotateY(8deg) rotateX(3deg);overflow:hidden;transition:transform .55s}.build-screen header{height:32px;border-bottom:1px solid #3a4354;display:flex;align-items:center;gap:6px;padding:0 12px}.build-screen header i{width:6px;height:6px;border-radius:50%;background:#62708a}.build-screen header span{font:7px var(--mono);color:#8390a7;margin-left:8px}.screen-grid{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;height:calc(100% - 64px);gap:7px;padding:10px}.screen-grid b{border-radius:7px;background:linear-gradient(120deg,#263247,#141922);position:relative;overflow:hidden}.screen-grid b:first-child{grid-row:span 2;background:linear-gradient(145deg,#3558c5,#141b31)}.screen-grid b:after{content:"";position:absolute;inset:auto 10% 13%;height:2px;background:#76eaff;box-shadow:0 -18px 0 #ffffff20,-36px -7px 0 #7595ff}.build-screen footer{height:32px;border-top:1px solid #313948;display:flex;justify-content:space-between;align-items:center;padding:0 12px;font:7px var(--mono);color:#7d8aa0}.build-phone{position:absolute;right:2%;bottom:3%;width:27%;height:52%;border:1px solid #69748b;border-radius:24px;background:#10141c;box-shadow:0 24px 60px #000;transform:rotate(7deg);padding:20px 10px 10px;transition:transform .55s}.build-phone>i{position:absolute;top:8px;left:50%;width:34%;height:4px;border-radius:8px;background:#354055;transform:translateX(-50%)}.build-phone b{display:block;height:18%;border-radius:7px;background:#202b3d;margin-bottom:8px}.build-phone b:first-of-type{height:38%;background:linear-gradient(145deg,#4f79ff,#24304d)}.build-orbit{position:absolute;width:100%;aspect-ratio:1;border:1px solid #5b8cff55;border-radius:50%;left:8%;top:-19%;animation:spin 14s linear infinite}.build-orbit:after{content:"";position:absolute;width:10px;height:10px;border-radius:50%;background:#74e8ff;left:16%;top:7%;box-shadow:0 0 30px #74e8ff}.portal-build:hover .build-screen{transform:rotateY(1deg) rotateX(0) translateY(-8px)}.portal-build:hover .build-phone{transform:rotate(1deg) translateY(-14px)}
.portal-grow{background:#071b23}.portal-grow:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,#0e2d36 100%)}.grow-object{position:absolute;inset:16% 6% 24%;border:1px solid #25505c;background:#08151b;border-radius:18px;padding:18px;box-shadow:0 35px 90px #00151b;overflow:hidden}.grow-mini-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.grow-mini-kpis span{border:1px solid #1c3d47;border-radius:7px;padding:9px;background:#0c2028;display:grid}.grow-mini-kpis i{font:6px var(--mono);font-style:normal;color:#78a0aa}.grow-mini-kpis b{font:12px var(--mono);color:#55e5bb;margin-top:4px}.grow-object svg{width:100%;height:58%;margin-top:6px;overflow:visible}.grid-line{fill:none;stroke:#1e3c46;stroke-width:1}.data-line{fill:none;stroke:url(#portalGrow);stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 7px #43d9ff);stroke-dasharray:520;stroke-dashoffset:520;animation:drawLine 2.2s .3s ease forwards}.grow-bars{position:absolute;right:20px;bottom:18px;display:flex;align-items:end;gap:5px;height:30%}.grow-bars i{width:8px;background:#46e6a4;border-radius:3px 3px 0 0;animation:barPulse 2.4s ease-in-out infinite}.grow-bars i:nth-child(1){height:28%}.grow-bars i:nth-child(2){height:47%;animation-delay:.1s}.grow-bars i:nth-child(3){height:38%;animation-delay:.2s}.grow-bars i:nth-child(4){height:68%;animation-delay:.3s}.grow-bars i:nth-child(5){height:57%;animation-delay:.4s}.grow-bars i:nth-child(6){height:88%;animation-delay:.5s}.portal-grow:hover .grow-object{border-color:#43d9ff}.portal-exiting .portal-card:not(.selected){transform:scale(.94);opacity:0;filter:blur(8px)}.portal-exiting .portal-card.selected{transform:scale(1.02)}
/* Shared area */
.area-kicker,.section-intro>span{font:10px var(--mono);letter-spacing:.16em;text-transform:uppercase}.section-intro{display:grid;grid-template-columns:180px 1fr;align-items:end;padding-bottom:24px;border-bottom:1px solid currentColor}.section-intro h2{margin:0;font-size:clamp(36px,5vw,78px);line-height:.95;letter-spacing:-.065em}.area-capability-line{position:absolute;left:0;right:0;bottom:0;border-top:1px solid currentColor;overflow:hidden;white-space:nowrap;padding:13px 0}.area-capability-line span{display:inline-block;font:9px var(--mono);letter-spacing:.14em;text-transform:uppercase;animation:ticker 20s linear infinite}.area-capability-line span:after{content:" · " attr(data-copy)}.capability-list{border-bottom:1px solid currentColor}.capability-row{display:grid;grid-template-columns:70px minmax(220px,1.1fr) minmax(280px,1.2fr) minmax(260px,1fr) 28px;gap:22px;align-items:center;padding:32px 0;border-top:1px solid currentColor;transition:padding .3s,background .3s}.capability-row:hover{padding-left:18px;padding-right:18px}.capability-row .cap-number{font:10px var(--mono)}.capability-row h3{font-size:clamp(23px,2.5vw,40px);letter-spacing:-.055em;line-height:1;margin:0}.capability-row p{margin:0;font-size:14px}.capability-row small{font:9px var(--mono);line-height:1.55;text-transform:uppercase;letter-spacing:.06em}.capability-row>i{font-style:normal;font-size:22px;transition:transform .25s}.capability-row:hover>i{transform:rotate(45deg)}.area-projects{padding-block:130px}.project-grid{margin-top:45px;border-top:1px solid currentColor}.project-grid a{display:grid;grid-template-columns:1fr 1fr 40px;gap:30px;padding:30px 0;border-bottom:1px solid currentColor}.project-grid a>div{display:grid}.project-grid span{font:9px var(--mono);letter-spacing:.1em}.project-grid strong{font-size:30px;letter-spacing:-.04em}.project-grid p{margin:0}.project-grid i{font-style:normal;font-size:25px}.area-end{min-height:420px;padding:70px max(32px,calc((100vw - 1376px)/2));display:flex;align-items:flex-end;justify-content:space-between}.area-end p{font:10px var(--mono);text-transform:uppercase;letter-spacing:.12em}.area-end a{font-size:clamp(42px,7vw,104px);font-weight:800;letter-spacing:-.075em;line-height:.85}.area-end a span{font-weight:300}
/* THINK */
.theme-think{background:#f2f0eb;color:#0a0a0b}.think-v3-hero{min-height:calc(100svh - var(--header-h) - var(--dock-h));position:relative;display:grid;grid-template-columns:43% 57%;padding:58px 4vw 64px;overflow:hidden}.think-v3-copy{align-self:center;position:relative;z-index:2}.think-v3-copy h1{font-size:clamp(58px,7.3vw,138px);line-height:.84;letter-spacing:-.09em;max-width:950px;margin:28px 0}.think-v3-copy>p:last-child{font-size:clamp(17px,1.4vw,25px);max-width:600px}.think-stage{position:relative;min-height:620px;align-self:center;background:#ddd8ff;border-radius:38px;overflow:hidden;box-shadow:0 30px 90px rgba(29,15,84,.14)}.think-stage-grid{position:absolute;inset:0;background-image:linear-gradient(#2d246418 1px,transparent 1px),linear-gradient(90deg,#2d246418 1px,transparent 1px);background-size:46px 46px}.kinetic-type{position:absolute;font-weight:900;line-height:.78;letter-spacing:-.095em;z-index:2}.kinetic-a{font-size:clamp(72px,8vw,150px);left:-2%;top:10%;color:#0c0c0d;transform:rotate(-5deg);animation:floatA 7s ease-in-out infinite}.kinetic-b{font-size:clamp(65px,7vw,130px);right:-2%;bottom:8%;color:#fff;transform:rotate(4deg);animation:floatB 8s ease-in-out infinite}.kinetic-chip{position:absolute;padding:9px 12px;font:9px var(--mono);letter-spacing:.1em;border:1px solid #101011;background:#f4f0ea;z-index:3}.chip-a{left:10%;bottom:17%;transform:rotate(-4deg)}.chip-b{right:8%;top:18%;background:#111;color:#fff;transform:rotate(5deg)}.chip-c{left:42%;top:47%;background:#ffdf2b;transform:rotate(-8deg)}.creative-orb{position:absolute;border-radius:50%;z-index:1}.orb-a{width:32%;aspect-ratio:1;background:#ff4d67;right:8%;top:28%;animation:orbMove 8s ease-in-out infinite}.orb-b{width:24%;aspect-ratio:1;background:#4a38ff;left:12%;bottom:13%;mix-blend-mode:multiply}.think-stage svg{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}.think-stage svg path{fill:none;stroke:#101011;stroke-width:3;stroke-dasharray:9 12}.think-stage svg circle{fill:#fff;stroke:#101011;stroke-width:3}.think-capabilities{padding-block:140px 80px}.think-list .capability-row:hover{background:#dcd6ff}.think-canvas{padding-block:100px 150px}.canvas-title{display:grid;grid-template-columns:180px 1fr;margin-bottom:55px}.canvas-title>span{font:10px var(--mono);letter-spacing:.16em}.canvas-title h2{margin:0;max-width:920px;font-size:clamp(42px,6vw,92px);line-height:.92;letter-spacing:-.07em}.canvas-composition{height:660px;position:relative;background:#0d0d0f;border-radius:36px;overflow:hidden;color:#fff}.canvas-composition:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff14 1px,transparent 1px),linear-gradient(90deg,#ffffff14 1px,transparent 1px);background-size:60px 60px}.canvas-block{position:absolute;padding:24px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 25px 60px #0005;transition:transform .4s}.canvas-block:hover{transform:rotate(0) scale(1.03)!important}.canvas-block b{font-size:clamp(38px,5vw,82px);letter-spacing:-.08em}.canvas-block span{font:9px var(--mono);letter-spacing:.1em}.block-brand{left:5%;top:7%;width:38%;height:35%;background:#4a38ff;transform:rotate(-4deg)}.block-campaign{right:6%;top:10%;width:44%;height:29%;background:#ff4d67;color:#111;transform:rotate(3deg)}.block-product{left:17%;bottom:7%;width:39%;height:42%;background:#f7f2e9;color:#111;transform:rotate(2deg)}.block-content{right:6%;bottom:11%;width:34%;height:39%;background:#ffdf2b;color:#111;transform:rotate(-3deg)}.canvas-cross{position:absolute;left:50%;top:46%;font-size:110px;font-weight:200;z-index:5}.think-end{background:#4a38ff;color:#fff}
/* BUILD */
.theme-build{background:#07090d;color:#f7f8fb}.theme-build .pillar-dock{background:#0c0f15;color:#dce2ee;border-color:#263041}.theme-build .pillar-link{border-color:#263041}.build-v3-hero{min-height:calc(100svh - var(--header-h) - var(--dock-h));position:relative;display:grid;grid-template-columns:39% 61%;align-items:center;padding:70px 4vw 90px;background:radial-gradient(circle at 77% 38%,#24438a55,transparent 36%),#07090d;overflow:hidden}.build-v3-copy{position:relative;z-index:3}.build-v3-copy h1{font-size:clamp(58px,7vw,128px);line-height:.86;letter-spacing:-.085em;margin:27px 0 30px}.build-v3-copy>p{font-size:clamp(17px,1.35vw,23px);color:#aeb8ca;max-width:610px}.build-tags,.grow-platforms{display:flex;flex-wrap:wrap;gap:7px;margin-top:32px}.build-tags span,.grow-platforms span{border:1px solid #344156;border-radius:999px;padding:7px 10px;font:8px var(--mono);letter-spacing:.08em;text-transform:uppercase}.product-stage{position:relative;min-height:650px;perspective:1500px}.product-glow{position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:#487cff44;filter:blur(60px);right:4%;top:4%}.desktop-frame{position:absolute;width:82%;height:68%;left:4%;top:12%;border:1px solid #66738a;border-radius:24px;background:#111722;box-shadow:0 55px 120px #000,0 0 0 1px #ffffff12 inset;overflow:hidden;transform:rotateY(-8deg) rotateX(4deg);animation:deviceFloat 7s ease-in-out infinite}.frame-bar{height:46px;border-bottom:1px solid #303b4d;background:#171d28;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 16px}.frame-bar>span{display:flex;gap:6px}.frame-bar i{width:7px;height:7px;border-radius:50%;background:#546176}.frame-bar b,.frame-bar em{font:8px var(--mono);font-style:normal;color:#8995aa}.frame-bar em{justify-self:end;color:#74e8ff}.frame-body{height:calc(100% - 46px);display:grid;grid-template-columns:64px 1fr}.frame-body>aside{border-right:1px solid #273143;padding:18px 13px;display:flex;flex-direction:column;gap:16px}.frame-body>aside i{width:24px;height:5px;border-radius:5px;background:#43506a}.frame-body>section{padding:24px}.frame-body>section>header{display:flex;justify-content:space-between}.frame-body>section>header span{width:90px;height:7px;background:#53627b;border-radius:7px}.frame-body>section>header b{width:52px;height:22px;background:#5b8cff;border-radius:7px}.ui-hero{height:54%;margin-top:24px;border-radius:17px;background:linear-gradient(135deg,#3e62cf,#151e36);padding:22px;position:relative;overflow:hidden}.ui-hero:after{content:"";position:absolute;width:220px;height:220px;border:1px solid #74e8ff;border-radius:50%;right:-60px;bottom:-100px;box-shadow:0 0 50px #5b8cff66}.ui-hero span{font:7px var(--mono);color:#a9c8ff}.ui-hero strong{display:block;margin-top:28px;font-size:clamp(28px,3vw,55px);line-height:.82;letter-spacing:-.07em}.ui-hero i{position:absolute;width:56px;height:7px;border-radius:7px;background:#74e8ff;left:22px;bottom:22px}.ui-modules{height:25%;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:10px}.ui-modules b{border:1px solid #29364b;border-radius:12px;background:#151c28}.mobile-frame{position:absolute;width:23%;height:57%;right:1%;bottom:3%;border:1px solid #758198;border-radius:34px;background:#0d121b;box-shadow:0 45px 100px #000;padding:40px 14px 20px;transform:rotateY(-11deg) rotateZ(3deg);animation:phoneFloat 6s ease-in-out infinite}.mobile-frame>span{position:absolute;top:12px;left:50%;width:38%;height:6px;border-radius:10px;background:#344055;transform:translateX(-50%)}.mobile-frame>div{height:100%;display:grid;grid-template-rows:1.5fr repeat(3,.55fr);gap:9px}.mobile-frame b{border-radius:11px;background:#1d293a}.mobile-frame b:first-child{background:linear-gradient(150deg,#567fff,#263556)}.mobile-frame>i{position:absolute;bottom:8px;left:50%;width:32%;height:3px;background:#6b778b;transform:translateX(-50%)}.system-node{position:absolute;z-index:4;border:1px solid #4c5e7c;background:#111925;padding:7px 10px;border-radius:8px;font:8px var(--mono);color:#74e8ff;box-shadow:0 10px 30px #000}.node-api{left:0;bottom:14%}.node-data{right:4%;top:6%}.node-flow{right:28%;bottom:0}.build-capabilities{padding-block:140px}.build-intro{color:#e9edf6}.build-scenes{display:grid;gap:26px;margin-top:60px}.build-scene{min-height:560px;border:1px solid #273144;border-radius:38px;display:grid;grid-template-columns:42% 58%;overflow:hidden;background:#0c1017;position:relative}.build-scene-copy{padding:60px;display:flex;flex-direction:column;justify-content:center}.build-scene-copy>span{font:9px var(--mono);color:#74e8ff}.build-scene-copy h3{font-size:clamp(42px,5vw,82px);line-height:.9;letter-spacing:-.07em;margin:25px 0}.build-scene-copy p{font-size:16px;color:#b4bece;max-width:530px}.build-scene-copy small{font:8px var(--mono);text-transform:uppercase;line-height:1.7;letter-spacing:.08em;color:#748096;margin-top:25px}.build-scene-visual{position:relative;background:radial-gradient(circle at 50% 50%,#3157ae44,transparent 55%);display:grid;place-items:center;overflow:hidden}.build-scene-visual:before{content:"";position:absolute;inset:0;background-image:linear-gradient(#ffffff09 1px,transparent 1px),linear-gradient(90deg,#ffffff09 1px,transparent 1px);background-size:45px 45px}.visual-browser{width:75%;aspect-ratio:1.35;border:1px solid #64728b;border-radius:20px;background:#111823;box-shadow:0 35px 80px #000;overflow:hidden;transform:rotate(-4deg)}.visual-browser header{height:36px;border-bottom:1px solid #344056;display:flex;gap:6px;align-items:center;padding:0 13px}.visual-browser header i{width:6px;height:6px;border-radius:50%;background:#67758d}.visual-browser>div{height:calc(100% - 36px);padding:22px;display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;gap:12px}.visual-browser span,.visual-browser b{border-radius:12px;background:#22304a}.visual-browser span{grid-row:span 2;background:linear-gradient(145deg,#4f73e5,#1d2940)}.visual-flow{width:85%;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.visual-flow span{width:28%;aspect-ratio:1;border:1px solid #647493;border-radius:50%;display:grid;place-items:center;font:8px var(--mono);background:#111925;box-shadow:0 0 40px #345ed855}.visual-flow i{flex:1;height:1px;background:#5b8cff;position:relative}.visual-flow i:after{content:"";position:absolute;right:0;top:-3px;border-left:6px solid #5b8cff;border-top:3px solid transparent;border-bottom:3px solid transparent}.visual-automation{width:80%;display:grid;grid-template-columns:auto 1fr auto 1fr auto;align-items:center;position:relative;z-index:2}.visual-automation b{border:1px solid #61718c;border-radius:14px;padding:25px 16px;font:9px var(--mono);background:#111925}.visual-automation i{height:2px;background:#5b8cff}.visual-automation .pulse{position:absolute;width:12px;height:12px;border-radius:50%;background:#74e8ff;left:17%;box-shadow:0 0 20px #74e8ff;animation:flowPulse 3.2s linear infinite}.visual-stack{width:64%;display:flex;flex-direction:column-reverse;align-items:center;perspective:700px}.visual-stack span{width:100%;height:85px;border:1px solid #60708e;background:#131c2b;margin-top:-24px;transform:rotateX(58deg) rotateZ(-5deg);display:grid;place-items:center;font:9px var(--mono);color:#74e8ff;box-shadow:0 25px 45px #000}.visual-stack span:nth-child(2){width:88%}.visual-stack span:nth-child(3){width:76%}.visual-stack span:nth-child(4){width:64%}.build-system{padding-block:40px 160px}.build-system-title{display:grid;grid-template-columns:180px 1fr}.build-system-title span{font:9px var(--mono);letter-spacing:.14em}.build-system-title h2{font-size:clamp(48px,6vw,92px);letter-spacing:-.075em;line-height:.9;margin:0}.system-track{margin-top:70px;display:flex;align-items:center}.system-track>div{min-width:170px}.system-track>div span{font:9px var(--mono);color:#74e8ff}.system-track>div strong{display:block;font-size:23px;margin-top:9px}.system-track>div small{font:8px var(--mono);color:#778399}.system-track>i{height:1px;background:#34415a;flex:1;margin:0 18px;position:relative}.system-track>i:after{content:"";position:absolute;right:0;top:-3px;border-left:6px solid #5b8cff;border-top:3px solid transparent;border-bottom:3px solid transparent}.build-end{background:#f1f3f8;color:#0a0b0d}
/* GROW */
.theme-grow{background:#061219;color:#eaf9f5}.theme-grow .pillar-dock{background:#07171e;color:#eaf9f5;border-color:#19414a}.theme-grow .pillar-link{border-color:#19414a}.grow-v3-hero{min-height:calc(100svh - var(--header-h) - var(--dock-h));padding:72px 4vw 90px;background:radial-gradient(circle at 80% 22%,#0e6c7555,transparent 29%),#061219;display:grid;grid-template-columns:34% 66%;gap:38px;align-items:center}.grow-v3-copy h1{font-size:clamp(56px,6.6vw,122px);line-height:.85;letter-spacing:-.085em;margin:26px 0}.grow-v3-copy>p{color:#a2c2c2;font-size:clamp(17px,1.25vw,22px);max-width:580px}.grow-platforms span{border-color:#27515b;color:#a9d3d4}.dashboard-stage{border:1px solid #27616a;border-radius:25px;background:#071a21;box-shadow:0 40px 120px #000,0 0 80px #00b7c31a;overflow:hidden;min-width:0}.dash-top{height:46px;border-bottom:1px solid #1d4650;display:flex;align-items:center;padding:0 16px;gap:16px;font:8px var(--mono);letter-spacing:.08em}.dash-top span{color:#51e7bd;margin-left:auto}.dash-top i{width:7px;height:7px;border-radius:50%;background:#51e7bd;box-shadow:0 0 12px #51e7bd}.dash-kpis{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid #1d4650}.dash-kpis>div{padding:15px;border-right:1px solid #1d4650;display:grid}.dash-kpis>div:last-child{border-right:0}.dash-kpis span,.dash-kpis small{font:7px var(--mono);color:#73979c}.dash-kpis b{font:14px var(--mono);margin:9px 0 4px;color:#e3fffa}.dash-main{display:grid;grid-template-columns:1fr 220px;min-height:420px}.dash-chart{padding:17px;border-right:1px solid #1d4650}.dash-chart header{display:flex;justify-content:space-between;font:7px var(--mono);color:#75969b}.dash-chart header div{display:flex;align-items:center;gap:6px}.dash-chart header i{width:9px;height:2px;background:#43d9ff}.dash-chart header i:nth-child(2){background:#46e6a4}.dash-chart svg{margin-top:12px;width:100%;height:345px}.dash-grid{fill:none;stroke:#163841;stroke-width:1}.dash-reference{fill:none;stroke:#46e6a4;stroke-width:2;stroke-dasharray:7 8}.dash-primary{fill:none;stroke:#43d9ff;stroke-width:4;stroke-linecap:round;filter:drop-shadow(0 0 8px #43d9ff);stroke-dasharray:900;stroke-dashoffset:900;animation:drawLine 2.5s .4s ease forwards}.dash-chart circle{fill:#071a21;stroke:#43d9ff;stroke-width:3}.dash-side{display:grid;grid-template-rows:1fr 1fr}.dash-side>div{padding:16px}.dash-side header{font:7px var(--mono);color:#75969b;margin-bottom:13px}.funnel{border-bottom:1px solid #1d4650}.funnel span{display:block;width:var(--w);margin:7px auto;background:linear-gradient(90deg,#144f5c,#1b826f);padding:7px;text-align:center;font:6px var(--mono);clip-path:polygon(4% 0,96% 0,100% 100%,0 100%)}.channel-mix>div{display:grid;grid-template-columns:1fr 42px;gap:8px;align-items:center;margin:12px 0}.channel-mix i{height:5px;width:var(--v);background:#43d9ff;border-radius:4px;box-shadow:0 0 10px #43d9ff66}.channel-mix span{font:7px var(--mono);color:#9bbbbe}.dash-log{min-height:44px;border-top:1px solid #1d4650;display:grid;grid-template-columns:50px 150px 1fr auto;align-items:center;gap:12px;padding:0 16px;font:7px var(--mono);color:#77999e}.dash-log b{color:#e8faf7}.dash-log i{font-style:normal;border:1px solid #2e6b70;border-radius:5px;padding:5px 7px;color:#51e7bd}.grow-capabilities{padding-block:140px}.grow-intro{color:#eaf9f5}.grow-operations{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid #1d4650;border-left:1px solid #1d4650;margin-top:60px}.grow-operation{padding:34px;border-right:1px solid #1d4650;border-bottom:1px solid #1d4650;min-height:320px;display:flex;flex-direction:column;position:relative;overflow:hidden}.operation-head{display:grid;grid-template-columns:50px 1fr auto;align-items:center}.operation-head span{font:8px var(--mono);color:#43d9ff}.operation-head b{font-size:25px;letter-spacing:-.045em}.operation-head i{font:7px var(--mono);font-style:normal;color:#51e7bd}.grow-operation>p{color:#a3c0c1;max-width:560px;margin-top:35px}.grow-operation>small{font:8px var(--mono);line-height:1.6;color:#668b90;text-transform:uppercase;margin-top:auto}.operation-signal{height:65px;display:flex;align-items:end;gap:5px;position:absolute;right:28px;bottom:28px;opacity:.55}.operation-signal span{width:5px;background:#43d9ff;border-radius:4px;animation:barPulse 2.3s ease-in-out infinite}.operation-signal span:nth-child(1){height:28%}.operation-signal span:nth-child(2){height:52%;animation-delay:.15s}.operation-signal span:nth-child(3){height:40%;animation-delay:.3s}.operation-signal span:nth-child(4){height:74%;animation-delay:.45s}.operation-signal span:nth-child(5){height:63%;animation-delay:.6s}.operation-signal span:nth-child(6){height:92%;animation-delay:.75s}.grow-loop-v3{padding-block:50px 160px;display:grid;grid-template-columns:42% 58%;align-items:center}.grow-loop-title span{font:9px var(--mono);letter-spacing:.14em;color:#43d9ff}.grow-loop-title h2{font-size:clamp(50px,6vw,98px);line-height:.88;letter-spacing:-.08em;max-width:650px}.loop-orbit{position:relative;width:min(620px,100%);aspect-ratio:1;margin-inline:auto}.loop-orbit svg{position:absolute;inset:0;width:100%;height:100%;animation:spin 45s linear infinite}.loop-orbit svg circle{fill:none;stroke:#19454e;stroke-width:1}.loop-orbit svg path{fill:none;stroke:#43d9ff;stroke-width:3;stroke-linecap:round}.loop-center{position:absolute;inset:33%;border:1px solid #2a6870;border-radius:50%;display:grid;place-content:center;text-align:center;background:#071a21;box-shadow:0 0 70px #1ac3bd22}.loop-center span,.loop-center small{font:7px var(--mono);color:#6e9da0}.loop-center b{font-size:clamp(20px,2vw,34px);letter-spacing:-.05em;margin:4px 0}.loop-step{position:absolute;display:grid;background:#08232b;border:1px solid #2a6870;border-radius:12px;padding:10px 14px;min-width:100px;box-shadow:0 15px 30px #0004}.loop-step span{font:7px var(--mono);color:#43d9ff}.loop-step b{font-size:14px}.step-1{left:42%;top:2%}.step-2{right:0;top:43%}.step-3{left:42%;bottom:2%}.step-4{left:0;top:43%}.grow-end{background:#46e6a4;color:#061219}
/* ABOUT */
.theme-about,.theme-contact{background:#f4f4f1;color:#111}.theme-about main,.theme-contact main{padding-top:var(--header-h)}.about-v3{padding-block:85px 150px}.about-v3-hero{padding:40px 0 70px;border-bottom:1px solid #222}.about-v3-hero>p,.contact-v3-header>p{font:9px var(--mono);letter-spacing:.15em}.about-v3-hero h1{font-size:clamp(64px,9vw,165px);line-height:.82;letter-spacing:-.09em;max-width:1300px;margin:45px 0}.about-v3-hero>div{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end}.about-v3-hero>div p{max-width:700px;font-size:20px}.about-v3-hero>div span{font:9px var(--mono)}.about-v3-summary{display:grid;grid-template-columns:36% 64%;padding:110px 0}.about-profile-mark{width:260px;aspect-ratio:1;border-radius:50%;background:#111;color:#fff;display:grid;place-items:center;position:relative}.about-profile-mark span{font-size:82px;font-weight:900;letter-spacing:-.09em}.about-profile-mark i{position:absolute;border:1px solid #111;border-radius:50%;inset:-20px}.about-profile-mark i:last-child{inset:-45px;border-style:dashed;animation:spin 25s linear infinite}.about-v3-copy{font-size:clamp(27px,3.5vw,55px);line-height:1.08;letter-spacing:-.045em}.about-v3-copy p{margin:0 0 1.1em}.about-disciplines,.experience-v3{padding:90px 0}.discipline-map{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1.2fr;align-items:stretch;border:1px solid #222;margin-top:55px}.discipline-map>div{min-height:250px;padding:26px;display:flex;flex-direction:column}.discipline-map>i{font-style:normal;font-size:38px;align-self:center;padding:12px}.discipline-map strong{font-size:38px;letter-spacing:-.06em;margin-bottom:auto}.discipline-map span{font:9px var(--mono);margin-top:8px;text-transform:uppercase}.discipline-result{background:#111;color:#fff}.experience-table{margin-top:55px;border-top:1px solid #222}.experience-table>div{display:grid;grid-template-columns:70px 1fr 1.2fr;gap:28px;padding:30px 0;border-bottom:1px solid #222}.experience-table span{font:9px var(--mono)}.experience-table strong{font-size:29px;letter-spacing:-.05em}.experience-table p{margin:0}.about-area-nav{display:grid;grid-template-columns:repeat(3,1fr);margin-top:100px;border:1px solid #111}.about-area-nav a{min-height:210px;padding:25px;border-right:1px solid #111;display:flex;flex-direction:column;justify-content:space-between;transition:.25s}.about-area-nav a:last-child{border-right:0}.about-area-nav span{font:9px var(--mono)}.about-area-nav strong{font-size:64px;letter-spacing:-.08em}.about-area-nav a:nth-child(1):hover{background:#d8d2ff}.about-area-nav a:nth-child(2):hover{background:#111;color:#fff}.about-area-nav a:nth-child(3):hover{background:#46e6a4}
/* Contact */
.contact-v3{padding-block:85px 140px}.contact-v3-header{padding:40px 0 75px;border-bottom:1px solid #222}.contact-v3-header h1{font-size:clamp(70px,10vw,180px);line-height:.78;letter-spacing:-.095em;margin:55px 0}.contact-v3-header>div{display:flex;justify-content:space-between;gap:40px;align-items:end}.contact-v3-header>div p{font-size:19px;max-width:650px}.contact-v3-header>div a{font:11px var(--mono);text-decoration:underline}.contact-v3-layout{display:grid;grid-template-columns:28% 72%;padding-top:70px}.contact-v3-aside{padding-right:60px}.contact-v3-aside>div{border-top:1px solid #222;padding:20px 0 35px;display:grid}.contact-v3-aside span{font:8px var(--mono);letter-spacing:.13em;margin-bottom:14px}.contact-v3-aside a,.contact-v3-aside p{font-size:21px;margin:3px 0}.contact-v3-form{border-left:1px solid #222;padding-left:60px}.contact-v3-form form{display:grid;gap:25px}.contact-v3-form label{display:grid;gap:9px}.contact-v3-form label>span{font:9px var(--mono);letter-spacing:.1em;text-transform:uppercase}.contact-v3-form input,.contact-v3-form select,.contact-v3-form textarea{width:100%;border:0;border-bottom:1px solid #999;background:transparent;border-radius:0;padding:14px 0;color:#111;outline:none}.contact-v3-form input:focus,.contact-v3-form select:focus,.contact-v3-form textarea:focus{border-color:#111}.contact-v3-form textarea{resize:vertical}.contact-fields-two{display:grid;grid-template-columns:repeat(2,1fr);gap:30px}.contact-v3-form button{margin-top:18px;border:0;background:#111;color:#fff;min-height:86px;padding:0 28px;display:flex;justify-content:space-between;align-items:center;font-size:21px;font-weight:700}.contact-v3-form button b{font-size:32px;font-weight:300}.form-legal{font-size:10px;color:#6a6a6a}.form-legal a{text-decoration:underline}.hp-field{position:absolute;left:-9999px}.public-flash{padding:15px;border:1px solid #bb3d3d;background:#fff0f0}.contact-success{min-height:500px;display:flex;flex-direction:column;justify-content:center}.contact-success>span{font:9px var(--mono);letter-spacing:.14em}.contact-success h2{font-size:70px;letter-spacing:-.07em;margin:25px 0}.contact-success a{text-decoration:underline;margin-top:25px}
/* Project, legal, 404 */
.project-page{padding-block:80px 150px}.project-back{font:10px var(--mono)}.project-header{display:grid;grid-template-columns:1.2fr .8fr;gap:80px;padding:70px 0;border-bottom:1px solid currentColor}.project-header span{font:9px var(--mono)}.project-header h1{font-size:clamp(65px,9vw,150px);line-height:.82;letter-spacing:-.09em;margin:18px 0}.project-header>p{font-size:22px;align-self:end}.project-cover{margin:70px 0}.project-cover img{width:100%;max-height:850px;object-fit:cover;border-radius:24px}.project-content{display:grid;grid-template-columns:28% 72%;gap:50px}.project-content aside{display:grid;align-content:start;gap:8px;border-top:1px solid;padding-top:20px}.project-content aside span{font:8px var(--mono);margin-top:18px}.project-content aside b,.project-content aside li{font-size:14px}.project-content aside ul{list-style:none;padding:0;margin:0}.project-description{font-size:clamp(22px,2.5vw,38px);line-height:1.25}.project-description a{text-decoration:underline}.legal-page,.not-found{padding-block:100px 150px}.legal-page header{border-bottom:1px solid;padding-bottom:50px}.legal-page header p{font:9px var(--mono)}.legal-page h1,.not-found h1{font-size:clamp(70px,10vw,160px);line-height:.8;letter-spacing:-.09em;margin:45px 0}.legal-copy{max-width:850px;margin:80px auto 0}.legal-copy h2{font-size:30px;margin-top:50px}.legal-copy p{font-size:17px}.legal-copy a{text-decoration:underline}.not-found{min-height:80vh;display:flex;flex-direction:column;justify-content:center}.not-found>span{font:12px var(--mono)}.not-found p{font-size:20px}.not-found a{text-decoration:underline}
/* Footer */
.site-footer{border-top:1px solid currentColor;padding:58px 32px 26px;display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:45px;position:relative}.footer-identity strong{font-size:42px;letter-spacing:-.07em}.footer-identity p{font-size:12px;max-width:280px}.footer-map,.footer-meta{display:grid;align-content:start;gap:9px;font-size:12px}.footer-year{position:absolute;right:32px;bottom:18px;font:8px var(--mono)}.theme-build .site-footer,.theme-grow .site-footer{border-color:#263643}.consent{position:fixed;right:20px;bottom:20px;z-index:110;width:min(410px,calc(100% - 40px));padding:18px;background:#111;color:#fff;border:1px solid #444;border-radius:14px;box-shadow:0 20px 60px #0008}.consent p{font-size:11px;margin:0 0 13px}.consent div{display:flex;gap:7px}.consent button{border:1px solid #777;background:#fff;color:#111;border-radius:8px;padding:8px 11px;font-size:10px}.consent button:last-child{background:transparent;color:#fff}
/* Maintenance */
.theme-maintenance{background:#08090c;color:#fff;overflow:hidden}.theme-maintenance .site-header{display:none}.theme-maintenance main{height:100svh}.maintenance-page{height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;padding:40px}.maintenance-grid{position:absolute;inset:0;background-image:linear-gradient(#ffffff0b 1px,transparent 1px),linear-gradient(90deg,#ffffff0b 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(circle at center,#000,transparent 78%)}.maintenance-visual{position:absolute;width:min(780px,70vw);aspect-ratio:1;border:1px solid #2d3442;border-radius:50%;animation:spin 35s linear infinite}.maintenance-visual:before,.maintenance-visual:after{content:"";position:absolute;border:1px solid #2d3442;border-radius:50%;inset:15%}.maintenance-visual:after{inset:31%;border-color:#5b8cff}.maintenance-visual span{position:absolute;width:17px;height:17px;background:#5b8cff;border-radius:50%;box-shadow:0 0 30px #5b8cff}.maintenance-visual span:nth-child(1){left:13%;top:17%}.maintenance-visual span:nth-child(2){right:4%;top:48%;background:#46e6a4;box-shadow:0 0 30px #46e6a4}.maintenance-visual span:nth-child(3){left:45%;bottom:-1%;background:#ff4d67;box-shadow:0 0 30px #ff4d67}.maintenance-copy{position:relative;z-index:2;text-align:center;max-width:1000px}.maintenance-copy p{font:9px var(--mono);letter-spacing:.18em;color:#8f99aa}.maintenance-copy h1{font-size:clamp(70px,11vw,190px);line-height:.78;letter-spacing:-.095em;margin:40px 0}.maintenance-copy>span{font-size:17px;color:#aab1bd}.maintenance-admin{position:absolute;right:20px;bottom:18px;font:8px var(--mono);color:#626b78}
/* Animations */
@keyframes brandPulse{0%,100%{transform:scale(.8);opacity:.6}50%{transform:scale(1.25);opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes drawLine{to{stroke-dashoffset:0}}@keyframes barPulse{0%,100%{transform:scaleY(.75);opacity:.6}50%{transform:scaleY(1);opacity:1}}@keyframes floatA{0%,100%{transform:rotate(-5deg) translate(0)}50%{transform:rotate(-2deg) translate(15px,8px)}}@keyframes floatB{0%,100%{transform:rotate(4deg) translate(0)}50%{transform:rotate(1deg) translate(-13px,-8px)}}@keyframes orbMove{0%,100%{transform:translate(0)}50%{transform:translate(-24px,18px)}}@keyframes deviceFloat{0%,100%{transform:rotateY(-8deg) rotateX(4deg) translateY(0)}50%{transform:rotateY(-5deg) rotateX(2deg) translateY(-11px)}}@keyframes phoneFloat{0%,100%{transform:rotateY(-11deg) rotateZ(3deg) translateY(0)}50%{transform:rotateY(-5deg) rotateZ(1deg) translateY(-14px)}}@keyframes flowPulse{0%{left:17%}100%{left:82%}}@keyframes ticker{to{transform:translateX(-40%)}}
/* Responsive */
@media(max-width:1180px){.portal-name strong{font-size:72px}.think-v3-hero,.build-v3-hero,.grow-v3-hero{grid-template-columns:1fr;gap:50px}.think-v3-copy,.build-v3-copy,.grow-v3-copy{padding-top:30px}.think-stage,.product-stage{min-height:620px}.dashboard-stage{width:100%}.capability-row{grid-template-columns:55px 1fr 1fr 28px}.capability-row small{grid-column:2/5}.build-scene{grid-template-columns:1fr}.build-scene-copy{min-height:420px}.build-scene-visual{min-height:500px}.grow-loop-v3{grid-template-columns:1fr}.grow-loop-title{margin-bottom:50px}.about-v3-summary{grid-template-columns:30% 70%}.discipline-map{grid-template-columns:1fr 1fr}.discipline-map>i{display:none}.discipline-map>div{border:1px solid #222;margin:-1px 0 0 -1px}.contact-v3-layout{grid-template-columns:1fr}.contact-v3-aside{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-right:0}.contact-v3-form{border-left:0;padding-left:0;margin-top:50px}.dash-main{grid-template-columns:1fr 190px}}
@media(max-width:850px){:root{--header-h:64px;--dock-h:64px}.section-shell{width:min(100% - 32px,1440px)}.site-header{height:var(--header-h);padding:0 18px}.site-signature strong{font-size:20px}.menu-toggle{display:block}.main-nav{position:fixed;inset:var(--header-h) 0 0;background:#f4f4f1;color:#111;display:flex;flex-direction:column;align-items:stretch;padding:30px 18px;gap:8px;transform:translateX(100%);transition:transform .35s cubic-bezier(.2,.8,.2,1)}.main-nav.open{transform:none}.main-nav a{font-size:42px;letter-spacing:-.06em;border-bottom:1px solid #bbb;border-radius:0;padding:18px 0}.main-nav .nav-contact{border:0;border-bottom:1px solid #bbb}.theme-home .main-nav,.theme-build .main-nav,.theme-grow .main-nav{background:#090b0f;color:#fff}.pillar-link{grid-template-columns:26px 1fr;padding:0 10px}.pillar-link strong{font-size:17px}.pillar-link small{display:none}.portal-v3{height:auto;min-height:100svh;padding:calc(var(--header-h) + 10px) 10px 10px}.portal-grid{height:auto;display:grid;grid-template-columns:1fr!important;grid-template-rows:repeat(3,minmax(56vh,1fr));gap:8px}.portal-card{min-height:56vh;padding:20px}.portal-heading,.portal-hint{display:none}.portal-meta em{max-width:160px}.portal-name strong{font-size:76px}.portal-name{left:22px;bottom:22px}.portal-arrow{right:20px;bottom:20px}.theme-home{overflow:auto}.theme-home main{height:auto}.think-object,.build-object,.grow-object{inset:15% 7% 26%}.think-v3-hero,.build-v3-hero,.grow-v3-hero{padding:48px 18px 70px}.think-v3-copy h1,.build-v3-copy h1,.grow-v3-copy h1{font-size:clamp(58px,15vw,90px)}.think-stage{min-height:520px;border-radius:24px}.product-stage{min-height:500px}.desktop-frame{width:90%;height:66%;left:0}.mobile-frame{width:28%;height:54%}.system-node{display:none}.section-intro{grid-template-columns:1fr;gap:18px}.capability-row{grid-template-columns:38px 1fr 24px;gap:14px;padding:26px 0}.capability-row h3{grid-column:2}.capability-row p,.capability-row small{grid-column:2/4}.capability-row>i{grid-column:3;grid-row:1/3}.think-capabilities,.build-capabilities,.grow-capabilities{padding-block:95px}.canvas-title,.build-system-title{grid-template-columns:1fr;gap:20px}.canvas-composition{height:720px}.block-brand{width:65%;height:26%}.block-campaign{width:63%;height:25%;top:28%}.block-product{width:62%;height:29%;left:7%;bottom:16%}.block-content{width:55%;height:27%;bottom:2%}.canvas-cross{display:none}.build-scene{border-radius:24px}.build-scene-copy{padding:36px 25px;min-height:390px}.build-scene-visual{min-height:390px}.visual-flow{width:92%}.visual-flow span{font-size:6px}.visual-automation{width:93%}.visual-automation b{padding:18px 7px;font-size:7px}.system-track{display:grid;grid-template-columns:1fr 1fr;gap:30px}.system-track>i{display:none}.dash-kpis{grid-template-columns:1fr 1fr}.dash-kpis>div:nth-child(2){border-right:0}.dash-kpis>div:nth-child(-n+2){border-bottom:1px solid #1d4650}.dash-main{grid-template-columns:1fr}.dash-chart{border-right:0}.dash-side{grid-template-columns:1fr 1fr;grid-template-rows:auto;border-top:1px solid #1d4650}.funnel{border-bottom:0;border-right:1px solid #1d4650}.dash-log{grid-template-columns:45px 1fr auto}.dash-log span:nth-child(3){display:none}.grow-operations{grid-template-columns:1fr}.grow-loop-v3{padding-bottom:100px}.loop-orbit{width:100%}.area-end{min-height:300px;display:grid;gap:40px}.area-end a{font-size:55px}.about-v3,.contact-v3{padding-block:50px 100px}.about-v3-hero h1,.contact-v3-header h1{font-size:clamp(65px,17vw,105px)}.about-v3-hero>div,.contact-v3-header>div{grid-template-columns:1fr;display:grid}.about-v3-summary{grid-template-columns:1fr;gap:80px;padding:80px 0}.about-profile-mark{width:190px}.discipline-map{grid-template-columns:1fr}.experience-table>div{grid-template-columns:40px 1fr}.experience-table p{grid-column:2}.about-area-nav{grid-template-columns:1fr}.about-area-nav a{min-height:150px;border-right:0;border-bottom:1px solid}.about-area-nav a:last-child{border-bottom:0}.contact-v3-aside{grid-template-columns:1fr}.contact-fields-two{grid-template-columns:1fr}.project-header,.project-content{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr;padding-bottom:55px}.footer-year{left:32px;right:auto}.maintenance-copy h1{font-size:clamp(65px,18vw,115px)}}
@media(max-width:520px){.portal-grid{grid-template-rows:repeat(3,minmax(62vh,1fr))}.portal-name strong{font-size:64px}.portal-meta em{display:none}.think-stage{min-height:440px}.kinetic-a{font-size:70px}.kinetic-b{font-size:64px}.build-v3-hero,.grow-v3-hero,.think-v3-hero{padding-inline:16px}.product-stage{min-height:400px}.desktop-frame{height:64%;top:13%}.frame-body{grid-template-columns:38px 1fr}.frame-body>aside{padding:14px 7px}.frame-body>section{padding:13px}.mobile-frame{height:54%;width:31%}.build-scenes{margin-top:40px}.build-scene{min-height:0}.build-scene-visual{min-height:310px}.visual-browser{width:86%}.visual-stack{width:75%}.dashboard-stage{border-radius:16px}.dash-main{min-height:0}.dash-chart svg{height:250px}.dash-side{grid-template-columns:1fr}.funnel{border-right:0;border-bottom:1px solid #1d4650}.grow-operation{padding:24px;min-height:360px}.operation-head{grid-template-columns:40px 1fr}.operation-head i{display:none}.loop-step{min-width:76px;padding:7px}.loop-step b{font-size:11px}.about-v3-copy{font-size:29px}.discipline-map strong{font-size:31px}.contact-success h2{font-size:52px}.project-grid a{grid-template-columns:1fr 30px}.project-grid a p{grid-column:1/3}.project-grid a i{grid-column:2;grid-row:1}.consent{right:12px;bottom:12px;width:calc(100% - 24px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}
.portal-card .think-object,.portal-card .build-object,.portal-card .grow-object{translate:var(--tx,0) var(--ty,0);transition:translate .25s ease-out}

/* =========================================================
   V4 — compact scale, physical portal transition, tech Think
   ========================================================= */
:root{--header-h:64px;--dock-h:64px;--shell:1320px;--v4-blue:#6e8dff;--v4-cyan:#73e8ff;--v4-violet:#815dff;--v4-pink:#ff70b7;--v4-green:#57e7b0;--v4-panel:rgba(17,22,33,.72);--v4-line:rgba(150,171,215,.2)}
body{font-size:15px}.section-shell{width:min(var(--shell),calc(100% - 56px))}.reveal{opacity:0;transform:translate3d(0,26px,0) scale(.985);filter:blur(5px);transition:opacity .7s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms),transform .75s cubic-bezier(.2,.8,.2,1) var(--reveal-delay,0ms),filter .65s ease var(--reveal-delay,0ms)}.reveal.visible{opacity:1;transform:translate3d(0,var(--parallax-y,0),0) scale(1);filter:none}.motion-card{transform:translate3d(0,var(--parallax-y,0),0) perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transform-style:preserve-3d;transition:transform .25s ease-out,border-color .35s,box-shadow .35s}.motion-card.reveal:not(.visible){transform:translate3d(0,26px,0) scale(.985)}

/* Header and compact area selector */
.site-header{height:var(--header-h);padding:0 28px;background:rgba(6,8,12,.78);border-color:rgba(255,255,255,.1);color:#f7f8fb;backdrop-filter:blur(24px) saturate(140%)}.site-signature strong{font-size:20px}.main-nav a{font-size:11px;padding:8px 12px}.main-nav .nav-contact{padding-inline:15px}.theme-think .main-nav a:hover,.theme-think .main-nav a.active,.theme-about .main-nav a:hover,.theme-about .main-nav a.active,.theme-contact .main-nav a:hover,.theme-contact .main-nav a.active{background:rgba(255,255,255,.12)}
.pillar-dock{height:var(--dock-h);top:var(--header-h);margin-top:var(--header-h);background:#080b11;color:#fff;border-color:#263041;box-shadow:0 14px 40px rgba(0,0,0,.24)}.pillar-link{grid-template-columns:34px auto 1fr 68px;gap:10px;padding:0 18px;border-color:rgba(255,255,255,.13);color:#fff;isolation:isolate;background:#0c1017}.pillar-link:before{inset:0;opacity:.58;transition:opacity .3s,transform .5s cubic-bezier(.2,.8,.2,1)}.pillar-link:hover:before,.pillar-link.active:before{inset:0;opacity:1}.pillar-link strong{font-size:18px;letter-spacing:-.045em;position:relative;z-index:2}.pillar-link span,.pillar-link small{font-size:8px;position:relative;z-index:2}.pillar-link small{text-align:left;opacity:.58}.pillar-link .pillar-art{position:relative;z-index:2;width:64px;height:34px;justify-self:end;border-radius:8px;overflow:hidden;border:1px solid rgba(255,255,255,.16);box-shadow:0 8px 24px #0005}.pillar-link.think:before{background:radial-gradient(circle at 80% 30%,#ff70b755,transparent 34%),linear-gradient(125deg,#241c56,#111827 62%,#162750)}.pillar-link.build:before{background:radial-gradient(circle at 75% 20%,#5b8cff66,transparent 42%),linear-gradient(135deg,#111722,#07090d)}.pillar-link.grow:before{background:radial-gradient(circle at 75% 18%,#43d9ff33,transparent 42%),linear-gradient(135deg,#071a21,#082832)}.pillar-link.think .pillar-art{background:linear-gradient(135deg,#704cff,#18213c)}.pillar-link.think .pillar-art:before{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:#ff70b7;right:7px;top:5px;box-shadow:-23px 10px 0 #6e8dff}.pillar-link.think .pillar-art:after{content:"";position:absolute;left:7px;right:7px;bottom:6px;height:1px;background:#73e8ff;transform:rotate(-9deg)}.pillar-link.build .pillar-art{background:#111722}.pillar-link.build .pillar-art:before{content:"";position:absolute;inset:6px 9px;border:1px solid #5b8cff;border-radius:4px;background:linear-gradient(135deg,#3458bf,#111827)}.pillar-link.build .pillar-art:after{content:"";position:absolute;width:13px;height:21px;right:6px;bottom:3px;border:1px solid #74e8ff;border-radius:4px;background:#121b2b}.pillar-link.grow .pillar-art{background:#071a21}.pillar-link.grow .pillar-art:before{content:"";position:absolute;inset:7px;background:linear-gradient(150deg,transparent 48%,#43d9ff 49% 52%,transparent 53%),linear-gradient(165deg,transparent 54%,#46e6a4 55% 58%,transparent 59%)}.pillar-link.grow .pillar-art:after{content:"";position:absolute;inset:5px;background-image:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px);background-size:12px 12px}.pillar-link.active{box-shadow:inset 0 -3px 0 #fff}.portal-arrived .pillar-dock{animation:dockSettle .42s cubic-bezier(.2,.8,.2,1) both}.portal-arrived main>section{opacity:0;transform:translateY(14px)}.portal-arrived-ready main>section{opacity:1;transform:none;transition:opacity .5s ease,transform .6s cubic-bezier(.2,.8,.2,1)}

/* Full-screen portal and physical compression */
.theme-home{background:#06080c;color:#fff;overflow:hidden}.theme-home main{height:100svh}.portal-v4{height:100svh;padding:calc(var(--header-h) + 10px) 10px 10px;position:relative;background:#06080c}.portal-v4 .portal-grid{height:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;transition:left .78s cubic-bezier(.22,.78,.18,1),top .78s cubic-bezier(.22,.78,.18,1),width .78s cubic-bezier(.22,.78,.18,1),height .78s cubic-bezier(.22,.78,.18,1),gap .72s cubic-bezier(.22,.78,.18,1),grid-template-columns .48s ease}.portal-v4 .portal-grid:has(.portal-think:hover){grid-template-columns:1.12fr .94fr .94fr}.portal-v4 .portal-grid:has(.portal-build:hover){grid-template-columns:.94fr 1.12fr .94fr}.portal-v4 .portal-grid:has(.portal-grow:hover){grid-template-columns:.94fr .94fr 1.12fr}.portal-v4 .portal-card{border-radius:20px;padding:22px;transition:border-radius .68s cubic-bezier(.22,.78,.18,1),padding .68s cubic-bezier(.22,.78,.18,1),transform .35s,filter .35s}.portal-v4 .portal-card:after{border-color:rgba(255,255,255,.15)}.portal-v4 .portal-think{background:radial-gradient(circle at 78% 27%,#ff70b755,transparent 29%),radial-gradient(circle at 25% 76%,#6e8dff55,transparent 32%),linear-gradient(145deg,#1a1635,#0f1420 58%,#132544);color:#fff}.portal-v4 .portal-think:before{display:none}.portal-v4 .portal-meta em{max-width:190px}.portal-v4 .portal-name strong{font-size:clamp(52px,5.5vw,96px)}.portal-v4 .think-object-v4{position:absolute;inset:14% 5% 25%;transform:translate(var(--tx,0),var(--ty,0));transition:transform .25s ease-out,opacity .5s}.think-glow{position:absolute;width:68%;aspect-ratio:1;border-radius:50%;right:-8%;top:-8%;background:conic-gradient(from 190deg,#6e8dff,#ff70b7,#73e8ff,#6e8dff);filter:blur(28px);opacity:.27;animation:spin 18s linear infinite}.think-window{position:absolute;border:1px solid rgba(187,204,255,.34);background:rgba(9,13,23,.76);backdrop-filter:blur(15px);box-shadow:0 28px 65px #0008;border-radius:16px;overflow:hidden}.think-window-main{width:82%;height:62%;left:2%;top:10%;transform:rotateY(8deg) rotateX(3deg)}.think-window-main header{height:30px;border-bottom:1px solid #ffffff18;display:flex;align-items:center;gap:5px;padding:0 10px}.think-window-main header i{width:5px;height:5px;border-radius:50%;background:#6c7891}.think-window-main header span{font:6px var(--mono);color:#8797b9;margin-left:7px}.think-window-body{height:calc(100% - 30px);padding:18px;position:relative;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:30px 30px}.think-window-body b{font-size:clamp(30px,3.2vw,58px);line-height:.85;letter-spacing:-.07em}.think-window-body span{position:absolute;left:19px;bottom:18px;font:6px var(--mono);color:#a8b6d3}.think-window-body i{position:absolute;right:12%;top:18%;width:32%;aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,#ff70b7,#6e8dff);box-shadow:0 0 40px #6e8dff55}.think-window-side{right:0;bottom:1%;width:34%;height:48%;padding:15px;transform:rotate(5deg);display:grid;grid-template-rows:auto 1fr repeat(3,8px);gap:7px}.think-window-side>span{font:6px var(--mono);color:#73e8ff}.think-window-side>b{font-size:24px;align-self:center}.think-window-side>i{border-radius:4px;background:#26324b}.think-window-side>i:nth-of-type(1){background:linear-gradient(90deg,#6e8dff,#ff70b7)}.think-cursor{position:absolute;right:29%;top:25%;width:34px;height:34px;border-radius:50%;background:#fff;color:#10121a;display:grid;place-items:center;font-size:16px;box-shadow:0 12px 30px #0008;animation:cursorDrift 5s ease-in-out infinite}.think-object-v4 svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.think-object-v4 svg path{fill:none;stroke:#73e8ff;stroke-width:2;stroke-dasharray:8 9}.think-object-v4 svg circle{fill:#0f1420;stroke:#ff70b7;stroke-width:2}.portal-v4.collapse-active .portal-grid{left:0!important;top:var(--header-h)!important;width:100vw!important;height:var(--dock-h)!important;gap:0!important;grid-template-columns:repeat(3,1fr)!important;grid-template-rows:1fr!important}.portal-v4.is-collapsing .portal-card{border-radius:0;padding:0 18px;transform:none!important}.portal-v4.is-collapsing .portal-card:after{border-radius:0}.portal-v4.is-collapsing .portal-meta{position:absolute;left:18px;top:50%;transform:translateY(-50%)}.portal-v4.is-collapsing .portal-meta em{opacity:0;visibility:hidden}.portal-v4.is-collapsing .portal-name{left:50px;bottom:auto;top:50%;transform:translateY(-50%);display:block}.portal-v4.is-collapsing .portal-name strong{font-size:18px;letter-spacing:-.04em}.portal-v4.is-collapsing .portal-name span{opacity:0;display:none}.portal-v4.is-collapsing .portal-arrow{opacity:0;transform:scale(.5)}.portal-v4.is-collapsing .think-object,.portal-v4.is-collapsing .build-object,.portal-v4.is-collapsing .grow-object{inset:auto 15px 8px auto;width:68px;height:42px;opacity:.72;transform:scale(.82)!important;transform-origin:right center;overflow:hidden}.portal-v4.is-collapsing .think-window-main{width:62px;height:32px;top:4px;left:0;border-radius:5px}.portal-v4.is-collapsing .think-window-main header,.portal-v4.is-collapsing .think-window-side,.portal-v4.is-collapsing .think-cursor,.portal-v4.is-collapsing .think-object-v4 svg{display:none}.portal-v4.is-collapsing .think-window-body{padding:0;background:linear-gradient(135deg,#6e8dff,#18213c)}.portal-v4.is-collapsing .think-window-body>*{display:none}.portal-v4.is-collapsing .build-screen{width:54px;height:34px;left:0;top:3px;border-radius:5px;transform:none}.portal-v4.is-collapsing .build-screen header,.portal-v4.is-collapsing .build-screen footer{display:none}.portal-v4.is-collapsing .screen-grid{height:100%;padding:4px;gap:2px}.portal-v4.is-collapsing .build-phone{width:18px;height:29px;right:0;bottom:0;border-radius:5px;padding:0;transform:none}.portal-v4.is-collapsing .build-phone>*{display:none}.portal-v4.is-collapsing .build-orbit{display:none}.portal-v4.is-collapsing .grow-object{padding:4px;border-radius:5px}.portal-v4.is-collapsing .grow-mini-kpis,.portal-v4.is-collapsing .grow-bars{display:none}.portal-v4.is-collapsing .grow-object svg{height:100%;margin:0}.portal-v4.is-collapsing .portal-card.selected{box-shadow:inset 0 -3px 0 #fff}.portal-collapsing .portal-heading,.portal-collapsing .portal-hint{opacity:0;transition:opacity .2s}.portal-card .think-object,.portal-card .build-object,.portal-card .grow-object{translate:none}

/* Think — creative technology rather than editorial */
.theme-think,.theme-about,.theme-contact{background:#07090d;color:#f5f7fb}.theme-think .pillar-dock{background:#080b11;color:#fff;border-color:#263041}.theme-think main{background:radial-gradient(circle at 82% 12%,#3c2b7b33,transparent 28%),#07090d}.think-v4-hero{min-height:650px;display:grid;grid-template-columns:42% 58%;gap:42px;align-items:center;padding-block:46px 68px}.think-v4-copy{position:relative;z-index:3}.think-v4-copy h1{font-size:clamp(48px,5.35vw,88px);line-height:.9;letter-spacing:-.072em;margin:21px 0 24px;max-width:720px}.think-v4-copy>p:not(.area-kicker){font-size:clamp(15px,1.15vw,19px);color:#aeb8ca;max-width:570px}.think-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:25px}.think-tags span{border:1px solid #344156;border-radius:999px;padding:6px 9px;font:7px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#bdc8dc}.think-product-stage{position:relative;min-height:520px;border:1px solid #29344b;border-radius:28px;background:#0b1019;overflow:hidden;box-shadow:0 40px 100px #0009,0 0 80px #6e8dff18}.think-mesh{position:absolute;inset:0;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(#000,transparent 95%)}.think-halo{position:absolute;border-radius:50%;filter:blur(35px);opacity:.42}.halo-one{width:48%;aspect-ratio:1;background:#6e8dff;right:-9%;top:-11%;animation:haloDrift 9s ease-in-out infinite}.halo-two{width:35%;aspect-ratio:1;background:#ff70b7;left:-10%;bottom:-13%;animation:haloDrift 11s ease-in-out infinite reverse}.creative-os{position:absolute;width:78%;height:68%;left:8%;top:13%;border:1px solid #63708a;border-radius:20px;background:rgba(14,19,30,.88);box-shadow:0 35px 80px #000b;overflow:hidden;transform:rotateY(6deg) rotateX(2deg);animation:creativeDevice 7s ease-in-out infinite}.creative-os-bar{height:38px;border-bottom:1px solid #303a50;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 13px}.creative-os-bar>span{display:flex;gap:5px}.creative-os-bar i{width:6px;height:6px;border-radius:50%;background:#59677f}.creative-os-bar b,.creative-os-bar em{font:7px var(--mono);font-style:normal;color:#8491aa}.creative-os-bar em{justify-self:end;color:#73e8ff}.creative-os-body{height:calc(100% - 38px);display:grid;grid-template-columns:62px 1fr}.creative-os-body>aside{border-right:1px solid #2a3448;padding:15px 10px;display:flex;flex-direction:column;gap:14px}.creative-os-body>aside b{font:12px var(--mono);color:#ff70b7}.creative-os-body>aside span{font:6px var(--mono);color:#76839b;writing-mode:vertical-rl}.creative-os-body>section{padding:17px}.creative-os-body>section>header{display:flex;justify-content:space-between;font:6px var(--mono);color:#75839b}.creative-os-body>section>header i{font-style:normal}.creative-artboard{height:calc(100% - 21px);margin-top:11px;border-radius:13px;position:relative;overflow:hidden;background:#151c2a}.art-gradient{position:absolute;inset:0;background:radial-gradient(circle at 72% 28%,#ff70b7,transparent 24%),radial-gradient(circle at 32% 73%,#6e8dff,transparent 33%),linear-gradient(145deg,#101522,#222947)}.creative-artboard strong{position:absolute;left:8%;top:13%;font-size:clamp(31px,3.6vw,58px);line-height:.8;letter-spacing:-.075em}.art-chip{position:absolute;padding:6px 8px;border:1px solid #ffffff66;border-radius:999px;font:6px var(--mono);backdrop-filter:blur(8px)}.chip-one{left:9%;bottom:12%}.chip-two{right:8%;top:13%}.creative-artboard svg{position:absolute;inset:0;width:100%;height:100%}.creative-artboard path{fill:none;stroke:#73e8ff;stroke-width:2;stroke-dasharray:8 9}.creative-artboard circle{fill:#151c2a;stroke:#fff;stroke-width:2}.creative-panel{position:absolute;border:1px solid #5b6780;background:rgba(12,17,27,.86);backdrop-filter:blur(16px);border-radius:13px;box-shadow:0 25px 55px #0009}.panel-tools{right:3%;top:22%;width:23%;padding:13px;display:grid;gap:7px;transform:rotate(4deg)}.panel-tools span,.panel-swatch span{font:6px var(--mono);color:#7f8ca5}.panel-tools b{font:8px var(--mono);padding:7px;border-radius:5px;background:#1c2536}.panel-swatch{left:3%;bottom:5%;padding:11px;display:flex;gap:6px;align-items:center;transform:rotate(-4deg)}.panel-swatch span{position:absolute;left:10px;top:-15px}.panel-swatch i{width:19px;height:19px;border-radius:5px;background:#6e8dff}.panel-swatch i:nth-of-type(2){background:#ff70b7}.panel-swatch i:nth-of-type(3){background:#73e8ff}.panel-swatch i:nth-of-type(4){background:#f4f6fb}.creative-pointer{position:absolute;right:19%;bottom:15%;width:36px;height:36px;border-radius:50%;background:#fff;color:#0d111a;display:grid;place-items:center;font-size:16px;box-shadow:0 14px 30px #0009;animation:cursorDrift 5.5s ease-in-out infinite}.creative-pointer small{position:absolute;top:41px;font:6px var(--mono);color:#fff}.think-v4-capabilities{padding-block:80px 58px}.section-intro{grid-template-columns:140px 1fr;padding-bottom:18px;border-color:#2c3545}.section-intro h2{font-size:clamp(32px,3.8vw,58px)}.think-service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:30px}.think-service-card{min-height:310px;border:1px solid #29344b;border-radius:22px;padding:24px;background:linear-gradient(145deg,#111722,#0b0f17);display:flex;flex-direction:column;position:relative;overflow:hidden}.think-service-card:hover{border-color:#6e8dff;box-shadow:0 24px 70px #0008,0 0 45px #6e8dff17}.think-service-head{display:flex;justify-content:space-between;font:8px var(--mono);color:#8e9bb1}.think-service-head span{color:#73e8ff}.think-service-visual{height:72px;display:flex;gap:7px;align-items:end;margin:25px 0 20px;position:relative}.think-service-visual b{width:10px;border-radius:5px;background:linear-gradient(#6e8dff,#3e4a78);animation:barPulse 2.4s ease-in-out infinite}.think-service-visual b:nth-child(1){height:35%}.think-service-visual b:nth-child(2){height:78%;animation-delay:.18s}.think-service-visual b:nth-child(3){height:52%;animation-delay:.36s}.think-service-visual span{height:1px;flex:1;background:linear-gradient(90deg,#73e8ff,transparent);margin-bottom:18px}.think-service-card h3{font-size:clamp(24px,2.4vw,36px);line-height:.96;letter-spacing:-.055em;margin:0 0 13px}.think-service-card p{color:#aab5c7;margin:0 0 19px;max-width:560px}.think-service-card small{font:7px var(--mono);line-height:1.65;color:#718098;text-transform:uppercase;margin-top:auto}.think-v4-system{padding-block:58px 110px}.think-system-copy{display:grid;grid-template-columns:140px 1fr;align-items:start}.think-system-copy>span{font:8px var(--mono);letter-spacing:.14em;color:#73e8ff}.think-system-copy h2{font-size:clamp(38px,4.7vw,72px);line-height:.92;letter-spacing:-.067em;margin:0;max-width:900px}.think-system-board{height:520px;margin-top:38px;border:1px solid #29344b;border-radius:26px;position:relative;overflow:hidden;background:#0a0f17;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:52px 52px}.system-tile{position:absolute;padding:19px;border:1px solid #4a5872;border-radius:16px;background:rgba(18,25,39,.86);backdrop-filter:blur(12px);display:flex;flex-direction:column;box-shadow:0 20px 50px #0006;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s}.system-tile:hover{transform:translateY(-7px) scale(1.015)!important;border-color:#73e8ff}.system-tile span{font:7px var(--mono);color:#73e8ff}.system-tile strong{font-size:clamp(27px,3vw,45px);letter-spacing:-.06em;margin:auto 0 8px}.system-tile small{font:7px var(--mono);color:#8490a6}.tile-brand{left:5%;top:9%;width:34%;height:34%;transform:rotate(-2deg)}.tile-campaign{right:5%;top:8%;width:41%;height:31%;transform:rotate(2deg)}.tile-product{left:8%;bottom:8%;width:38%;height:37%;transform:rotate(1deg)}.tile-content{right:7%;bottom:9%;width:34%;height:39%;transform:rotate(-2deg)}.system-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:130px;aspect-ratio:1;border-radius:50%;background:#0d1421;border:1px solid #6e8dff;box-shadow:0 0 70px #6e8dff33;display:grid;place-content:center;text-align:center;z-index:4}.system-core i{position:absolute;inset:-16px;border:1px dashed #506187;border-radius:50%;animation:spin 18s linear infinite}.system-core b{font-size:22px}.system-core span{font:6px var(--mono);color:#73e8ff}

/* Build and Grow — same visual language, reduced scale and section height */
.build-v3-hero,.grow-v3-hero{min-height:620px;padding:42px 4vw 60px}.build-v3-hero{grid-template-columns:38% 62%}.grow-v3-hero{grid-template-columns:34% 66%;gap:28px}.build-v3-copy h1,.grow-v3-copy h1{font-size:clamp(46px,5.2vw,86px);line-height:.9;margin:20px 0 22px}.build-v3-copy>p,.grow-v3-copy>p{font-size:clamp(15px,1.08vw,18px)}.build-tags,.grow-platforms{margin-top:23px}.product-stage{min-height:500px}.desktop-frame{height:66%;top:13%}.mobile-frame{height:54%;bottom:5%}.dashboard-stage{border-radius:21px}.dash-main{min-height:330px;grid-template-columns:1fr 190px}.dash-chart svg{height:265px}.build-capabilities,.grow-capabilities{padding-block:82px}.build-scenes{gap:16px;margin-top:34px}.build-scene{min-height:410px;border-radius:26px}.build-scene-copy{padding:38px}.build-scene-copy h3{font-size:clamp(34px,3.65vw,58px);margin:18px 0}.build-scene-copy p{font-size:14px}.build-scene-copy small{margin-top:18px}.visual-browser{width:67%}.build-system{padding-block:35px 105px}.build-system-title{grid-template-columns:140px 1fr}.build-system-title h2{font-size:clamp(38px,4.5vw,68px)}.system-track{margin-top:42px}.grow-operations{margin-top:34px}.grow-operation{padding:27px;min-height:265px}.operation-head b{font-size:21px}.grow-operation>p{margin-top:25px;font-size:14px}.operation-signal{height:49px;right:23px;bottom:23px}.grow-loop-v3{padding-block:38px 105px;grid-template-columns:44% 56%}.grow-loop-title h2{font-size:clamp(40px,4.8vw,72px)}.loop-orbit{width:min(500px,100%)}.area-projects{padding-block:80px}.project-grid{margin-top:30px}.project-grid a{padding:22px 0}.project-grid strong{font-size:25px}

/* About and Contact — shared dark product language */
.theme-about main,.theme-contact main{padding-top:var(--header-h);background:radial-gradient(circle at 84% 5%,#3f2f8433,transparent 25%),#07090d}.about-tech,.contact-tech{padding-block:48px 105px}.about-tech-hero,.contact-tech-header{display:grid;grid-template-columns:52% 48%;gap:40px;align-items:center;min-height:540px;border-bottom:1px solid #29344b;padding-bottom:55px}.about-tech-copy>p:first-child,.contact-tech-copy>p:first-child{font:8px var(--mono);letter-spacing:.15em;color:#73e8ff}.about-tech-copy h1,.contact-tech-copy h1{font-size:clamp(48px,5.2vw,82px);line-height:.9;letter-spacing:-.072em;margin:22px 0 28px}.about-tech-copy>div,.contact-tech-copy>div{display:grid;gap:14px}.about-tech-copy>div p,.contact-tech-copy>div p{font-size:17px;color:#aeb8ca;max-width:620px;margin:0}.about-tech-copy>div span,.contact-tech-copy>div a{font:8px var(--mono);color:#8592a8}.about-tech-visual{height:420px;border:1px solid #29344b;border-radius:26px;background:#0b1019;position:relative;overflow:hidden}.profile-mesh{position:absolute;inset:0;background-image:linear-gradient(#ffffff0a 1px,transparent 1px),linear-gradient(90deg,#ffffff0a 1px,transparent 1px);background-size:45px 45px}.profile-core{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:142px;aspect-ratio:1;border:1px solid #6e8dff;border-radius:50%;display:grid;place-content:center;text-align:center;background:#111827;box-shadow:0 0 70px #6e8dff33;z-index:3}.profile-core span{font-size:48px;font-weight:800;letter-spacing:-.08em}.profile-core i{position:absolute;inset:-15px;border:1px dashed #52617e;border-radius:50%;animation:spin 20s linear infinite}.profile-core b{font:6px var(--mono);color:#73e8ff}.profile-node{position:absolute;width:128px;padding:12px;border:1px solid #46536b;border-radius:13px;background:rgba(17,23,35,.88);box-shadow:0 16px 35px #0008;display:grid;z-index:3}.profile-node span{font:6px var(--mono);color:#73e8ff}.profile-node strong{font-size:18px;margin:7px 0 1px}.profile-node small{font:6px var(--mono);color:#8591a7}.node-think{left:7%;top:8%}.node-build{right:6%;top:7%}.node-grow{right:8%;bottom:8%}.about-tech-visual svg{position:absolute;inset:0;width:100%;height:100%}.about-tech-visual svg path,.about-tech-visual svg circle{fill:none;stroke:#40506c;stroke-width:1.2;stroke-dasharray:7 8}.about-tech-summary{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;padding:70px 0}.about-tech-story{border:1px solid #29344b;border-radius:22px;padding:30px;background:#0d121b}.about-tech-story>span{font:7px var(--mono);color:#73e8ff}.about-tech-story p{font-size:clamp(22px,2.3vw,34px);line-height:1.15;letter-spacing:-.035em;color:#e9edf6;margin:25px 0 0}.about-tech-status{display:grid;gap:11px}.status-card{min-height:130px;border:1px solid #29344b;border-radius:18px;padding:20px;background:#0d121b;display:grid;grid-template-columns:1fr auto;position:relative;overflow:hidden}.status-card>span{font:7px var(--mono);color:#73e8ff}.status-card strong{font-size:26px;letter-spacing:-.045em;align-self:end}.status-card small{grid-column:1/3;font:7px var(--mono);color:#78869d;margin-top:7px}.status-card i{width:9px;height:9px;border-radius:50%;background:#57e7b0;box-shadow:0 0 14px #57e7b0}.about-tech-experience{padding-block:45px 75px}.experience-console{border:1px solid #29344b;border-radius:22px;overflow:hidden;margin-top:28px}.experience-console article{display:grid;grid-template-columns:50px 1fr auto;gap:18px;align-items:center;padding:22px 25px;border-bottom:1px solid #29344b;background:#0c111a;transition:background .25s,padding .25s}.experience-console article:last-child{border-bottom:0}.experience-console article:hover{background:#111827;padding-left:31px}.experience-console article>span{font:8px var(--mono);color:#73e8ff}.experience-console article>div{display:grid;grid-template-columns:minmax(210px,.7fr) 1.3fr;gap:25px;align-items:center}.experience-console strong{font-size:21px}.experience-console p{margin:0;color:#98a5b8}.experience-console i{font:6px var(--mono);font-style:normal;color:#57e7b0;border:1px solid #2c6655;padding:5px 7px;border-radius:5px}.about-tech-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.about-tech-nav a{min-height:150px;border:1px solid #29344b;border-radius:18px;padding:18px;display:flex;flex-direction:column;position:relative;overflow:hidden;background:#0d121b}.about-tech-nav a:before{content:"";position:absolute;inset:0;opacity:.32;transition:opacity .3s}.about-tech-nav a.think:before{background:radial-gradient(circle at 80% 20%,#ff70b7,transparent 32%),linear-gradient(135deg,#392b80,#111827)}.about-tech-nav a.build:before{background:radial-gradient(circle at 80% 20%,#5b8cff,transparent 34%),#111722}.about-tech-nav a.grow:before{background:radial-gradient(circle at 80% 20%,#43d9ff,transparent 34%),#071a21}.about-tech-nav a:hover:before{opacity:.62}.about-tech-nav span,.about-tech-nav strong,.about-tech-nav small{position:relative;z-index:2}.about-tech-nav span,.about-tech-nav small{font:7px var(--mono);color:#9eabc0}.about-tech-nav strong{font-size:37px;letter-spacing:-.06em;margin:auto 0 2px}.contact-tech-header{grid-template-columns:58% 42%;min-height:440px}.contact-signal{height:330px;border:1px solid #29344b;border-radius:25px;background:#0b1019;position:relative;overflow:hidden}.signal-orbit{position:absolute;width:230px;aspect-ratio:1;left:50%;top:48%;transform:translate(-50%,-50%);border:1px solid #3e4e69;border-radius:50%;animation:spin 24s linear infinite}.signal-orbit:before,.signal-orbit:after{content:"";position:absolute;border:1px solid #3e4e69;border-radius:50%;inset:20%}.signal-orbit:after{inset:38%;border-color:#6e8dff}.signal-orbit i{position:absolute;width:10px;height:10px;border-radius:50%;background:#73e8ff;box-shadow:0 0 20px #73e8ff}.signal-orbit i:nth-child(1){left:13%;top:12%}.signal-orbit i:nth-child(2){right:-2%;top:49%;background:#ff70b7}.signal-orbit i:nth-child(3){left:45%;bottom:-2%;background:#57e7b0}.signal-orbit span{position:absolute;inset:46%;border-radius:50%;background:#fff;box-shadow:0 0 40px #fff8}.signal-status{position:absolute;left:18px;right:18px;bottom:16px;border:1px solid #324058;border-radius:12px;background:#101722;padding:12px;display:grid;grid-template-columns:auto 1fr;gap:3px 12px}.signal-status span{font:6px var(--mono);color:#7f8da5}.signal-status b{font:11px var(--mono);color:#57e7b0;justify-self:end}.signal-status small{grid-column:1/3;font:6px var(--mono);color:#77849a}.contact-tech-layout{display:grid;grid-template-columns:29% 71%;gap:22px;padding-top:55px}.contact-tech-aside{display:grid;gap:11px;align-content:start}.contact-info-card{border:1px solid #29344b;border-radius:18px;padding:20px;background:#0d121b;display:grid;position:relative}.contact-info-card>span{font:7px var(--mono);color:#73e8ff;margin-bottom:13px}.contact-info-card a,.contact-info-card p{font-size:18px;margin:3px 0}.contact-info-card i{position:absolute;right:16px;top:16px;font:6px var(--mono);font-style:normal;color:#57e7b0}.contact-tech-form{border:1px solid #29344b;border-radius:22px;padding:30px;background:#0d121b}.contact-tech-form form{display:grid;gap:20px}.contact-tech-form label{display:grid;gap:7px}.contact-tech-form label>span{font:7px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#8b99ae}.contact-tech-form input,.contact-tech-form select,.contact-tech-form textarea{width:100%;border:1px solid #303c51;background:#090d14;border-radius:11px;padding:13px 14px;color:#f4f7fb;outline:none;transition:border .2s,box-shadow .2s}.contact-tech-form input:focus,.contact-tech-form select:focus,.contact-tech-form textarea:focus{border-color:#6e8dff;box-shadow:0 0 0 3px #6e8dff22}.contact-tech-form select option{background:#0d121b}.contact-tech-form textarea{resize:vertical}.contact-fields-two{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.contact-tech-form button{margin-top:5px;border:1px solid #708cff;background:linear-gradient(135deg,#6e8dff,#7257d7);color:#fff;min-height:58px;border-radius:13px;padding:0 19px;display:flex;justify-content:space-between;align-items:center;font-size:16px;font-weight:700;box-shadow:0 15px 35px #4f62d72b}.contact-tech-form button b{font-size:24px;font-weight:300}.form-legal{font-size:9px;color:#6f7c91}.form-legal a{text-decoration:underline}.public-flash{padding:13px;border:1px solid #bb3d3d;background:#351419;border-radius:10px}.contact-success{min-height:390px}.contact-success>span{font:8px var(--mono);color:#57e7b0}.contact-success h2{font-size:52px;color:#fff}.contact-success p{color:#9eabba}

/* No sales banner and no global footer */
.area-end,.site-footer{display:none!important}

/* Motion details */
.dashboard-stage.visible .dash-primary{animation:drawLine 2.2s .2s ease forwards}.dashboard-stage.visible .dash-reference{animation:signalDash 12s linear infinite}.grow-operation.visible .operation-signal{animation:signalEnter .7s ease both}.build-scene.visible .build-scene-visual:before,.think-product-stage.visible .think-mesh{animation:gridBreath 8s ease-in-out infinite}.build-scene.visible .visual-browser{animation:softFloat 7s ease-in-out infinite}.system-track.visible>i:before{content:"";position:absolute;left:0;top:-2px;width:5px;height:5px;border-radius:50%;background:#74e8ff;box-shadow:0 0 14px #74e8ff;animation:trackSignal 3.5s linear infinite}.system-track.visible>i:nth-of-type(2):before{animation-delay:.7s}.system-track.visible>i:nth-of-type(3):before{animation-delay:1.4s}

@keyframes dockSettle{from{transform:translateY(-7px)}to{transform:none}}@keyframes cursorDrift{0%,100%{transform:translate(0,0)}50%{transform:translate(13px,-10px)}}@keyframes haloDrift{0%,100%{transform:translate(0,0) scale(1)}50%{transform:translate(-20px,17px) scale(1.08)}}@keyframes creativeDevice{0%,100%{transform:rotateY(6deg) rotateX(2deg) translateY(0)}50%{transform:rotateY(3deg) rotateX(1deg) translateY(-8px)}}@keyframes signalDash{to{stroke-dashoffset:-120}}@keyframes signalEnter{from{opacity:0;transform:translateY(18px)}to{opacity:.55;transform:none}}@keyframes gridBreath{0%,100%{opacity:.72}50%{opacity:1}}@keyframes softFloat{0%,100%{transform:rotate(-4deg) translateY(0)}50%{transform:rotate(-2deg) translateY(-8px)}}@keyframes trackSignal{from{left:0}to{left:100%}}

/* Tablet */
@media(max-width:1080px){.section-shell{width:min(100% - 36px,var(--shell))}.pillar-link{grid-template-columns:28px auto 1fr 52px;padding:0 12px}.pillar-link .pillar-art{width:50px}.think-v4-hero,.about-tech-hero,.contact-tech-header{grid-template-columns:1fr;min-height:0}.think-v4-hero{padding-top:42px}.think-product-stage{min-height:500px}.about-tech-visual{height:390px}.contact-signal{height:310px}.build-v3-hero,.grow-v3-hero{grid-template-columns:1fr;gap:25px;min-height:0;padding:44px 24px 60px}.product-stage{min-height:470px}.dashboard-stage{width:100%}.build-scene{grid-template-columns:40% 60%}.build-scene-copy{padding:31px}.about-tech-summary{grid-template-columns:1fr}.contact-tech-layout{grid-template-columns:1fr}.contact-tech-aside{grid-template-columns:repeat(3,1fr)}.experience-console article>div{grid-template-columns:.8fr 1.2fr}}

/* Mobile: compact sections, horizontal area dock, no giant one-screen blocks */
@media(max-width:850px){:root{--header-h:58px;--dock-h:58px}.section-shell{width:min(100% - 24px,var(--shell))}.site-header{height:var(--header-h);padding:0 14px}.site-signature strong{font-size:18px}.main-nav{inset:var(--header-h) 0 0;background:#080b11;color:#fff}.main-nav a{font-size:34px;padding:15px 0}.pillar-dock{overflow:hidden}.pillar-link{grid-template-columns:20px 1fr;padding:0 8px;gap:5px}.pillar-link strong{font-size:15px}.pillar-link small,.pillar-link .pillar-art{display:none}.pillar-link span{font-size:6px}.portal-v4{height:auto;min-height:100svh;padding:calc(var(--header-h) + 7px) 7px 7px}.theme-home{overflow:auto}.theme-home main{height:auto}.portal-v4 .portal-grid{height:auto;grid-template-columns:1fr!important;grid-template-rows:repeat(3,minmax(48svh,1fr));gap:6px}.portal-v4 .portal-card{min-height:48svh;padding:17px;border-radius:17px}.portal-v4 .portal-name{left:18px;bottom:18px}.portal-v4 .portal-name strong{font-size:54px}.portal-v4 .portal-name span{margin-top:8px}.portal-v4 .portal-arrow{right:16px;bottom:16px;width:34px;height:34px}.portal-v4 .portal-meta em{font-size:7px;max-width:140px}.portal-v4 .think-object-v4,.portal-v4 .build-object,.portal-v4 .grow-object{inset:13% 6% 24%}.portal-v4.collapse-active .portal-grid{grid-template-columns:repeat(3,1fr)!important;grid-template-rows:1fr!important}.portal-v4.is-collapsing .portal-card{min-height:0}.portal-v4.is-collapsing .portal-meta{left:8px}.portal-v4.is-collapsing .portal-name{left:28px}.portal-v4.is-collapsing .portal-name strong{font-size:14px}.portal-v4.is-collapsing .think-object,.portal-v4.is-collapsing .build-object,.portal-v4.is-collapsing .grow-object{display:none}.think-v4-hero{grid-template-columns:1fr;gap:25px;padding-block:34px 45px;min-height:0}.think-v4-copy h1,.build-v3-copy h1,.grow-v3-copy h1,.about-tech-copy h1,.contact-tech-copy h1{font-size:clamp(42px,12vw,60px);line-height:.92}.think-product-stage{min-height:390px;border-radius:20px}.creative-os{width:84%;height:68%;left:5%}.creative-os-body{grid-template-columns:42px 1fr}.creative-os-body>aside{padding:12px 7px}.creative-os-body>aside span{display:none}.creative-os-body>section{padding:11px}.creative-artboard strong{font-size:35px}.panel-tools{width:29%;right:2%}.panel-swatch{left:2%;bottom:4%}.think-v4-capabilities,.build-capabilities,.grow-capabilities{padding-block:55px}.section-intro,.think-system-copy,.build-system-title{grid-template-columns:1fr;gap:10px}.think-service-grid{grid-template-columns:1fr;gap:10px}.think-service-card{min-height:250px;padding:20px}.think-v4-system{padding-block:35px 70px}.think-system-board{height:610px}.system-tile{width:82%!important;height:22%!important;left:9%!important;right:auto!important;transform:none!important}.tile-brand{top:4%}.tile-campaign{top:28%}.tile-product{top:52%;bottom:auto}.tile-content{top:76%;bottom:auto}.system-core{display:none}.build-v3-hero,.grow-v3-hero{padding:32px 14px 45px}.product-stage{min-height:370px}.desktop-frame{width:88%;height:65%;left:0}.mobile-frame{width:29%;height:54%;right:0}.build-scenes{margin-top:25px}.build-scene{grid-template-columns:1fr;min-height:0;border-radius:20px}.build-scene-copy{padding:25px;min-height:300px}.build-scene-copy h3{font-size:38px}.build-scene-visual{min-height:300px}.build-system{padding-bottom:70px}.system-track{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:30px}.system-track>i{display:none}.dash-main{grid-template-columns:1fr;min-height:0}.dash-chart{border-right:0}.dash-chart svg{height:220px}.dash-side{grid-template-columns:1fr 1fr;grid-template-rows:auto;border-top:1px solid #1d4650}.dash-log{grid-template-columns:42px 1fr auto}.dash-log span:nth-child(3){display:none}.grow-operations{grid-template-columns:1fr}.grow-operation{min-height:235px;padding:23px}.grow-loop-v3{grid-template-columns:1fr;padding-block:30px 70px}.loop-orbit{width:min(390px,92%)}.about-tech,.contact-tech{padding-block:34px 75px}.about-tech-hero,.contact-tech-header{grid-template-columns:1fr;gap:28px;min-height:0;padding-bottom:40px}.about-tech-copy>div p,.contact-tech-copy>div p{font-size:15px}.about-tech-visual{height:330px}.profile-node{width:105px;padding:9px}.profile-core{width:105px}.profile-core span{font-size:37px}.about-tech-summary{padding:42px 0;gap:12px}.about-tech-story{padding:22px}.about-tech-story p{font-size:24px}.status-card{min-height:115px}.about-tech-experience{padding-block:30px 55px}.experience-console article{grid-template-columns:36px 1fr;padding:18px}.experience-console article>div{grid-template-columns:1fr;gap:6px}.experience-console article>i{display:none}.about-tech-nav{grid-template-columns:1fr}.about-tech-nav a{min-height:120px}.contact-signal{height:270px}.contact-tech-layout{padding-top:40px}.contact-tech-aside{grid-template-columns:1fr}.contact-tech-form{padding:20px}.contact-fields-two{grid-template-columns:1fr}.contact-success h2{font-size:43px}.consent{right:10px;bottom:10px;width:calc(100% - 20px)}}

@media(max-width:520px){.portal-v4 .portal-grid{grid-template-rows:repeat(3,minmax(44svh,1fr))}.portal-v4 .portal-card{min-height:44svh}.portal-v4 .portal-name strong{font-size:48px}.think-product-stage{min-height:330px}.creative-os{height:70%;top:12%}.creative-panel{display:none}.creative-artboard strong{font-size:29px}.think-service-card{min-height:230px}.product-stage{min-height:320px}.desktop-frame{height:64%}.mobile-frame{height:51%;width:31%}.build-scene-copy{min-height:260px}.build-scene-visual{min-height:250px}.dash-kpis>div{padding:11px}.dash-kpis b{font-size:11px}.dash-chart{padding:11px}.dash-chart svg{height:190px}.grow-operation{min-height:220px}.operation-head{grid-template-columns:40px 1fr}.operation-head i{display:none}.loop-orbit{width:100%}.profile-node{width:92px}.profile-node strong{font-size:15px}.about-tech-visual{height:290px}.contact-signal{height:240px}.signal-orbit{width:180px}}

@media(prefers-reduced-motion:reduce){.portal-v4 .portal-grid,.portal-v4 .portal-card{transition-duration:.01ms!important}.motion-card{transform:none!important}.reveal{filter:none}.portal-arrived main>section{opacity:1;transform:none}}

/* V4 final: real FLIP-style portal compression and a single-screen mobile portal */
.portal-v4 .portal-card.is-flying{
  transition:left .78s cubic-bezier(.76,0,.24,1),top .78s cubic-bezier(.76,0,.24,1),width .78s cubic-bezier(.76,0,.24,1),height .78s cubic-bezier(.76,0,.24,1),border-radius .78s cubic-bezier(.76,0,.24,1),filter .35s ease!important;
  transform:none!important;
  overflow:hidden;
  will-change:left,top,width,height;
}
.portal-v4 .portal-card.is-flying .portal-meta{
  position:absolute;left:13px;top:50%;transform:translateY(-50%);transition:left .65s cubic-bezier(.2,.8,.2,1),top .65s,transform .65s;
}
.portal-v4 .portal-card.is-flying .portal-meta em{opacity:0;visibility:hidden}
.portal-v4 .portal-card.is-flying .portal-name{
  left:46px;bottom:auto;top:50%;transform:translateY(-50%);transition:left .68s cubic-bezier(.2,.8,.2,1),top .68s,bottom .68s,transform .68s;
}
.portal-v4 .portal-card.is-flying .portal-name strong{font-size:clamp(15px,1.5vw,22px);line-height:1;letter-spacing:-.055em;transition:font-size .68s cubic-bezier(.2,.8,.2,1)}
.portal-v4 .portal-card.is-flying .portal-name span{font-size:7px;margin-top:4px;white-space:nowrap;transition:font-size .5s,margin .5s}
.portal-v4 .portal-card.is-flying .portal-arrow{opacity:0;transform:scale(.2);transition:opacity .18s,transform .25s}
.portal-v4 .portal-card.is-flying .think-object-v4,
.portal-v4 .portal-card.is-flying .think-object,
.portal-v4 .portal-card.is-flying .build-object,
.portal-v4 .portal-card.is-flying .grow-object{opacity:0;transform:scale(.72);transition:opacity .24s,transform .5s cubic-bezier(.2,.8,.2,1)}
.portal-v4 .portal-card.is-flying.selected{filter:brightness(1.13) saturate(1.08)}

@media(max-width:850px){
  .theme-home{overflow:hidden}
  .theme-home main{height:100svh;overflow:hidden}
  .portal-v4{height:100svh;min-height:0;padding:calc(var(--header-h) + 6px) 6px 6px;overflow:hidden}
  .portal-v4 .portal-grid{height:calc(100svh - var(--header-h) - 12px);grid-template-columns:1fr!important;grid-template-rows:repeat(3,minmax(0,1fr));gap:5px}
  .portal-v4 .portal-card{min-height:0;height:auto;padding:11px 13px;border-radius:15px}
  .portal-v4 .portal-meta span{font-size:7px}
  .portal-v4 .portal-meta em{font-size:6px;max-width:120px}
  .portal-v4 .portal-name{left:14px;bottom:12px}
  .portal-v4 .portal-name strong{font-size:clamp(30px,9vw,42px);line-height:.84}
  .portal-v4 .portal-name span{font-size:7px;margin-top:5px}
  .portal-v4 .portal-arrow{right:12px;bottom:11px;width:29px;height:29px;font-size:12px}
  .portal-v4 .think-object-v4,.portal-v4 .think-object,.portal-v4 .build-object,.portal-v4 .grow-object{inset:8% 8% 23%}
  .portal-v4 .portal-card.is-flying .portal-meta{left:7px}
  .portal-v4 .portal-card.is-flying .portal-name{left:25px}
  .portal-v4 .portal-card.is-flying .portal-name strong{font-size:clamp(12px,3.8vw,16px)}
  .portal-v4 .portal-card.is-flying .portal-name span{display:none}
}
@media(max-width:520px){
  .portal-v4 .portal-grid{grid-template-rows:repeat(3,minmax(0,1fr))}
  .portal-v4 .portal-card{min-height:0}
}

/* ========================================================================== */
/* V5 — spacing audit, differentiated area systems and physical portal motion  */
/* ========================================================================== */
:root{
  --shell:1320px;
  --micro:11px;
  --micro-small:9px;
}

/* Portal cleanup */
.portal-heading,.portal-hint{display:none!important}
.portal-transitioning{overflow:hidden!important}
.portal-transitioning .site-header{box-shadow:none}
.portal-flight-layer{position:fixed;inset:0;z-index:145;pointer-events:none;overflow:hidden}
.portal-flight-card{pointer-events:none!important;overflow:hidden!important;will-change:left,top,width,height,border-radius,padding;transform:none!important}
.portal-flight-card .portal-meta,
.portal-flight-card .portal-name,
.portal-flight-card .portal-arrow,
.portal-flight-card .think-object-v4,
.portal-flight-card .build-object,
.portal-flight-card .grow-object{
  transition:left 1.16s cubic-bezier(.76,0,.24,1),top 1.16s cubic-bezier(.76,0,.24,1),width 1.16s cubic-bezier(.76,0,.24,1),height 1.16s cubic-bezier(.76,0,.24,1),transform 1.16s cubic-bezier(.76,0,.24,1),font-size 1.06s cubic-bezier(.76,0,.24,1),clip-path .7s cubic-bezier(.76,0,.24,1),max-width .7s cubic-bezier(.76,0,.24,1),border-radius 1.06s cubic-bezier(.76,0,.24,1)!important
}
.portal-flight-card .portal-meta em{transition:clip-path .58s cubic-bezier(.76,0,.24,1),max-width .58s cubic-bezier(.76,0,.24,1),margin .58s!important;clip-path:inset(0);overflow:hidden;white-space:nowrap}
.portal-flight-card.portal-flight-compact .portal-meta{left:14px!important;top:50%!important;width:26px!important;height:auto!important;transform:translateY(-50%)!important;display:block}
.portal-flight-card.portal-flight-compact .portal-meta span{font-size:9px}
.portal-flight-card.portal-flight-compact .portal-meta em{clip-path:inset(0 100% 0 0);max-width:0!important;margin:0!important}
.portal-flight-card.portal-flight-compact .portal-name{left:48px!important;top:50%!important;width:auto!important;height:auto!important;transform:translateY(-50%)!important;display:grid}
.portal-flight-card.portal-flight-compact .portal-name strong{font-size:21px!important;line-height:.9!important;letter-spacing:-.06em!important}
.portal-flight-card.portal-flight-compact.selected .portal-name strong{font-size:25px!important}
.portal-flight-card.portal-flight-compact .portal-name span{font-size:8px!important;margin-top:4px!important;white-space:nowrap}
.portal-flight-card.portal-flight-compact .portal-arrow{left:auto!important;right:12px!important;top:50%!important;width:0!important;height:0!important;border-width:0!important;transform:translateY(-50%) scale(0)!important;clip-path:circle(0)}
.portal-flight-card.portal-flight-compact .think-object-v4,
.portal-flight-card.portal-flight-compact .build-object,
.portal-flight-card.portal-flight-compact .grow-object{
  left:auto!important;right:16px!important;top:50%!important;width:116px!important;height:72px!important;transform:translateY(-50%) scale(.58)!important;transform-origin:right center!important;overflow:visible
}
.portal-flight-card.portal-flight-compact.selected{filter:brightness(1.12) saturate(1.08)}

/* Area dock keeps the visual identity of the portal cards. */
.pillar-dock{
  color:#f7f8fb;
  background:#080a0f;
  border-color:#283143;
  overflow:visible;
  transition:grid-template-columns .58s cubic-bezier(.2,.8,.2,1),background .35s;
}
.pillar-dock:has(.pillar-link.think.active){grid-template-columns:1.16fr .92fr .92fr}
.pillar-dock:has(.pillar-link.build.active){grid-template-columns:.92fr 1.16fr .92fr}
.pillar-dock:has(.pillar-link.grow.active){grid-template-columns:.92fr .92fr 1.16fr}
.pillar-dock:has(.pillar-link.think:hover){grid-template-columns:1.16fr .92fr .92fr}
.pillar-dock:has(.pillar-link.build:hover){grid-template-columns:.92fr 1.16fr .92fr}
.pillar-dock:has(.pillar-link.grow:hover){grid-template-columns:.92fr .92fr 1.16fr}
.pillar-link{
  color:#f7f8fb;
  border-color:#2b3342;
  opacity:.76;
  transition:opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1),filter .35s,box-shadow .35s,padding .45s;
  transform-origin:center;
}
.pillar-link:before{display:none!important}
.pillar-link.think{background:radial-gradient(circle at 82% 28%,#ff55b866,transparent 29%),radial-gradient(circle at 34% 95%,#725cff55,transparent 35%),linear-gradient(135deg,#211942,#12172a 68%,#16223c)}
.pillar-link.build{background:radial-gradient(circle at 78% 18%,#4e78ff66,transparent 36%),linear-gradient(135deg,#111827,#070a10 74%)}
.pillar-link.grow{background:radial-gradient(circle at 78% 18%,#3cddff38,transparent 35%),linear-gradient(135deg,#061b21,#07303a)}
.pillar-link:hover,.pillar-link.active{opacity:1;z-index:3;transform:translateY(-3px) scaleY(1.055);filter:saturate(1.08) brightness(1.08);box-shadow:0 12px 32px #0007}
.pillar-link strong{font-size:19px;transition:font-size .42s cubic-bezier(.2,.8,.2,1),letter-spacing .42s}
.pillar-link:hover strong,.pillar-link.active strong{font-size:23px;letter-spacing:-.065em}
.pillar-link .pillar-art{transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .35s}
.pillar-link:hover .pillar-art,.pillar-link.active .pillar-art{transform:scale(1.08);filter:brightness(1.12)}
.pillar-link.active{box-shadow:0 12px 32px #0008,inset 0 -3px 0 rgba(255,255,255,.9)}
.portal-arrived main>section,.portal-arrived-ready main>section{opacity:1!important;transform:none!important;transition:none!important}

/* Clear visual separation between the three systems. */
.theme-think,.theme-think main{background:#090712;color:#f7f5ff}
.theme-think main{background-image:radial-gradient(circle at 79% 5%,#7a4fff38,transparent 26%),radial-gradient(circle at 18% 36%,#ff4fb21d,transparent 31%),linear-gradient(180deg,#090712,#0b0b18 52%,#080912)}
.theme-think .think-v4-capabilities{background:linear-gradient(180deg,transparent,#171127 22%,#0d0b18 88%,transparent)}
.theme-think .think-service-card{background:linear-gradient(145deg,#181329,#0d101c);border-color:#3a3158}
.theme-think .think-service-card:hover{border-color:#a37cff;box-shadow:0 26px 70px #0009,0 0 48px #8d63ff20}
.theme-think .think-system-board{background-color:#0c0a16;border-color:#41365e}
.theme-think .system-tile{background:#171329;border-color:#4b3f69}
.theme-think .section-intro{border-color:#413753}
.theme-think .think-product-stage{background:linear-gradient(145deg,#11101e,#0a0c15);border-color:#40365c;box-shadow:0 38px 100px #000a,0 0 90px #7f5cff24}

.theme-build,.theme-build main{background:#05070b;color:#f7f9ff}
.theme-build main{background-image:radial-gradient(circle at 78% 8%,#1f4eaa38,transparent 28%),linear-gradient(180deg,#05070b,#070c16 47%,#05070b)}
.theme-build .build-v3-hero{background:radial-gradient(circle at 74% 43%,#285bc45e,transparent 35%),linear-gradient(135deg,#05070b,#09101d 70%,#070a10)}
.theme-build .build-capabilities{background:linear-gradient(180deg,#05070b,#080d17 48%,#05070b)}
.theme-build .build-scene{background:linear-gradient(145deg,#0d121c,#070a10);border-color:#273753}
.theme-build .build-scene-visual{background:radial-gradient(circle at 50% 50%,#315fd75a,transparent 55%),#080c13}

.theme-grow,.theme-grow main{background:#031317;color:#eafff9}
.theme-grow main{background-image:linear-gradient(#20d8d108 1px,transparent 1px),linear-gradient(90deg,#20d8d108 1px,transparent 1px),radial-gradient(circle at 78% 6%,#10aab34a,transparent 27%),linear-gradient(180deg,#031317,#041b20 48%,#031317);background-size:54px 54px,54px 54px,auto,auto}
.theme-grow .grow-v3-hero{background:radial-gradient(circle at 78% 30%,#0a8f9b55,transparent 32%),linear-gradient(135deg,#031317,#052129 72%,#031419)}
.theme-grow .grow-capabilities{background:linear-gradient(180deg,transparent,#06252b 32%,#04171c 88%,transparent)}
.theme-grow .grow-operation{background:#04191e;border-color:#1b5960}
.theme-grow .grow-loop-v3{background:radial-gradient(circle at 68% 53%,#00bfd21b,transparent 31%)}

/* Hero rhythm: every first area section occupies the whole remaining viewport. */
.think-v4-hero,.build-v3-hero,.grow-v3-hero{
  height:calc(100svh - var(--header-h) - var(--dock-h));
  min-height:620px;
  box-sizing:border-box;
  overflow:hidden;
  align-items:center;
}
.think-v4-hero{padding-block:clamp(28px,4.6vh,54px);gap:clamp(28px,3vw,48px)}
.build-v3-hero,.grow-v3-hero{padding-block:clamp(28px,4.6vh,54px)}
main>section:first-of-type .reveal{opacity:1;transform:none;animation:heroEnter .72s cubic-bezier(.2,.8,.2,1) both}
main>section:first-of-type .reveal:nth-child(2){animation-delay:.12s}
@keyframes heroEnter{from{opacity:0;transform:translateY(18px) scale(.992)}to{opacity:1;transform:none}}

/* More contained type and modules. */
.section-shell{width:min(var(--shell),calc(100% - 64px))}
.think-v4-copy h1{font-size:clamp(46px,4.75vw,80px);max-width:650px}
.build-v3-copy h1{font-size:clamp(48px,5.25vw,96px);margin:22px 0 24px}
.grow-v3-copy h1{font-size:clamp(48px,5vw,92px);margin:22px 0 24px}
.think-v4-copy>p:not(.area-kicker),.build-v3-copy>p,.grow-v3-copy>p{font-size:clamp(15px,1.05vw,18px)}
.section-intro{grid-template-columns:150px 1fr;padding-bottom:19px}
.section-intro h2{font-size:clamp(34px,3.5vw,54px)}
.area-kicker,.section-intro>span,.think-system-copy>span,.build-system-title>span,.grow-loop-title>span,.about-tech-copy>p:first-child,.contact-tech-copy>p:first-child{font-size:var(--micro)!important;line-height:1.35;letter-spacing:.14em}
.think-tags span,.build-tags span,.grow-platforms span{font-size:var(--micro-small)!important;padding:7px 10px}
.think-service-head,.build-scene-copy>span,.operation-head span,.operation-head i{font-size:var(--micro-small)!important}
.think-service-card small,.build-scene-copy small,.grow-operation>small,.system-track small{font-size:var(--micro-small)!important}
.about-tech-copy>div span,.contact-tech-copy>div a{font-size:11px!important;line-height:1.5}
.profile-node span,.profile-node small,.status-card>span,.status-card small,.about-tech-story>span,.experience-console article>span,.experience-console i,.about-tech-nav span,.about-tech-nav small,.contact-info-card>span,.contact-info-card i,.contact-tech-form label>span,.signal-status span,.signal-status small{font-size:9px!important}

/* Hero illustrations keep their internal proportions. */
.think-product-stage{height:min(62vh,590px);min-height:480px}
.product-stage{height:min(64vh,620px);min-height:500px;align-self:center}
.desktop-frame{width:84%;height:74%;left:2%;top:9%}
.frame-body>section{padding:18px}
.ui-hero{height:55%;margin-top:14px;padding:18px}
.ui-hero strong{margin-top:16px;font-size:clamp(25px,2.35vw,44px);line-height:.86}
.ui-hero i{left:18px;bottom:17px}
.ui-modules{height:24%;gap:8px;margin-top:8px}
.mobile-frame{width:22%;height:58%;right:0;bottom:1%}
.dashboard-stage{width:100%;align-self:center}
.dash-main{min-height:350px;grid-template-columns:minmax(0,1fr) 190px}
.dash-chart svg{height:285px}

/* Tighter, more deliberate subsequent sections. */
.think-v4-capabilities,.build-capabilities,.grow-capabilities{padding-block:88px 64px}
.think-service-grid{margin-top:26px;gap:14px}
.think-service-card{min-height:280px;padding:22px}
.think-v4-system{padding-block:55px 92px}
.think-system-board{height:570px}
.build-scenes{gap:18px;margin-top:36px}
.build-scene{min-height:455px;border-radius:28px;grid-template-columns:40% 60%}
.build-scene-copy{padding:42px}
.build-scene-copy h3{font-size:clamp(34px,4vw,62px);margin:19px 0}
.build-scene-copy p{font-size:15px}
.build-scene-copy small{margin-top:18px}
.build-system{padding-block:58px 92px}
.build-system-title{grid-template-columns:150px 1fr}
.build-system-title h2{font-size:clamp(38px,4.5vw,70px)}
.grow-operations{margin-top:36px}
.grow-operation{min-height:270px;padding:28px}
.operation-head b{font-size:23px}
.grow-operation>p{margin-top:26px}
.grow-loop-v3{padding-block:54px 100px}
.grow-loop-title h2{font-size:clamp(44px,5vw,78px)}
.loop-orbit{width:min(520px,100%)}

/* About balance: Think and Build above, Grow centred below the core. */
.node-think{left:7%;top:8%}
.node-build{right:7%;top:8%}
.node-grow{left:50%;right:auto;bottom:5%;transform:translateX(-50%)}

/* Scroll motion is visible without leaving empty placeholders. */
.reveal{transform:translateY(22px);transition-duration:.68s}
.reveal.visible{opacity:1;transform:none}

@media(max-width:1180px){
  :root{--micro:10px;--micro-small:8px}
  .think-v4-hero,.build-v3-hero,.grow-v3-hero{min-height:560px}
  .think-v4-copy h1{font-size:clamp(44px,5.2vw,70px)}
  .build-v3-copy h1,.grow-v3-copy h1{font-size:clamp(46px,5.6vw,78px)}
  .product-stage{height:min(58vh,530px);min-height:450px}
  .think-product-stage{height:min(57vh,520px);min-height:430px}
  .dash-main{min-height:320px;grid-template-columns:minmax(0,1fr) 165px}
  .dash-chart svg{height:255px}
  .build-scene{min-height:410px}
  .build-scene-copy{padding:34px}
}

@media(max-width:850px){
  .pillar-dock:has(.pillar-link.think.active),.pillar-dock:has(.pillar-link.think:hover){grid-template-columns:1.22fr .89fr .89fr}
  .pillar-dock:has(.pillar-link.build.active),.pillar-dock:has(.pillar-link.build:hover){grid-template-columns:.89fr 1.22fr .89fr}
  .pillar-dock:has(.pillar-link.grow.active),.pillar-dock:has(.pillar-link.grow:hover){grid-template-columns:.89fr .89fr 1.22fr}
  .pillar-link{grid-template-columns:18px 1fr;padding:0 8px;transform:none!important;box-shadow:none!important}
  .pillar-link strong{font-size:14px}
  .pillar-link:hover strong,.pillar-link.active strong{font-size:17px}
  .pillar-link .pillar-art,.pillar-link small{display:none}
  .pillar-link span{font-size:8px!important}
  .portal-flight-card.portal-flight-compact .portal-name{left:26px!important}
  .portal-flight-card.portal-flight-compact .portal-name strong{font-size:13px!important}
  .portal-flight-card.portal-flight-compact.selected .portal-name strong{font-size:16px!important}
  .portal-flight-card.portal-flight-compact .portal-name span{display:none}
  .portal-flight-card.portal-flight-compact .portal-meta{left:7px!important;width:16px!important}
  .portal-flight-card.portal-flight-compact .portal-meta span{font-size:7px}
  .portal-flight-card.portal-flight-compact .think-object-v4,.portal-flight-card.portal-flight-compact .build-object,.portal-flight-card.portal-flight-compact .grow-object{display:none}
  .section-shell{width:calc(100% - 24px)}
  .think-v4-hero,.build-v3-hero,.grow-v3-hero{height:auto;min-height:calc(100svh - var(--header-h) - var(--dock-h));overflow:visible;grid-template-columns:1fr;gap:24px;padding-block:30px 42px}
  .think-product-stage,.product-stage{height:auto;min-height:340px}
  .dashboard-stage{height:auto}
  .desktop-frame{width:88%;height:68%;left:0;top:10%}
  .mobile-frame{width:29%;height:53%;right:0}
  .dash-main{grid-template-columns:1fr;min-height:0}
  .dash-chart svg{height:210px}
  .think-v4-capabilities,.build-capabilities,.grow-capabilities{padding-block:58px 48px}
  .section-intro,.think-system-copy,.build-system-title{grid-template-columns:1fr;gap:10px}
  .build-scene{grid-template-columns:1fr;min-height:0}
  .build-scene-copy{min-height:250px;padding:25px}
  .build-scene-visual{min-height:260px}
  .grow-operation{min-height:225px;padding:22px}
  .grow-loop-v3{padding-block:35px 72px}
  .node-grow{bottom:3%}
}

@media(max-width:520px){
  :root{--micro:10px;--micro-small:8px}
  .site-header{padding-inline:13px}
  .portal-v4 .portal-card{padding:10px 12px}
  .portal-v4 .portal-meta em{font-size:7px;max-width:145px}
  .portal-v4 .portal-name strong{font-size:clamp(29px,8.8vw,40px)}
  .think-v4-copy h1,.build-v3-copy h1,.grow-v3-copy h1,.about-tech-copy h1,.contact-tech-copy h1{font-size:clamp(40px,11.5vw,56px)}
  .think-product-stage,.product-stage{min-height:310px}
  .desktop-frame{height:66%;width:89%}
  .frame-body>section{padding:10px}
  .ui-hero{margin-top:8px;padding:11px;border-radius:10px}
  .ui-hero strong{font-size:22px;margin-top:9px}
  .ui-hero i{left:11px;bottom:10px;width:34px;height:4px}
  .ui-modules{gap:5px;margin-top:5px}
  .mobile-frame{width:31%;height:50%;padding:28px 8px 14px;border-radius:22px}
  .think-service-card{min-height:225px}
  .think-system-board{height:600px}
  .build-scene-copy{min-height:225px}
  .build-scene-visual{min-height:225px}
  .grow-operation{min-height:205px}
  .operation-signal{height:48px;right:18px;bottom:18px}
  .about-tech-visual{height:330px}
  .profile-node{width:96px}
  .node-think{left:3%;top:5%}.node-build{right:3%;top:5%}.node-grow{bottom:2%}
}

@media(prefers-reduced-motion:reduce){
  main>section:first-of-type .reveal{animation:none}
  .pillar-dock,.pillar-link,.pillar-link strong{transition:none}
}

/* V5.1 — mobile hero compaction, especially the data dashboard. */
@media(max-width:850px){
  .grow-v3-hero{gap:15px;padding:20px 12px 24px}
  .grow-v3-copy h1{margin:12px 0 14px;font-size:clamp(38px,10.8vw,52px)}
  .grow-v3-copy>p{font-size:14px;line-height:1.42}
  .grow-platforms{margin-top:14px;gap:5px}
  .grow-platforms span{padding:5px 7px}
  .dashboard-stage{border-radius:18px}
  .dash-top{height:32px;padding:0 9px;font-size:7px;gap:7px}
  .dash-kpis>div{padding:7px 6px}
  .dash-kpis span,.dash-kpis small{font-size:6px}
  .dash-kpis b{font-size:9px;margin:4px 0 2px}
  .dash-main{display:block;min-height:0}
  .dash-chart{padding:8px;border-right:0}
  .dash-chart header{font-size:6px}
  .dash-chart svg{height:132px;margin-top:2px}
  .dash-side{display:none}
  .dash-log{min-height:31px;padding:6px 8px;grid-template-columns:35px 1fr auto;font-size:6px}
  .dash-log span:nth-child(3){display:none}
}
@media(max-width:520px){
  .grow-v3-hero{min-height:calc(100svh - var(--header-h) - var(--dock-h));padding-top:16px}
  .grow-v3-copy h1{font-size:clamp(36px,10.4vw,46px)}
  .dash-chart svg{height:116px}
}

/* V5.2 — Think and Build also close on a single mobile viewport. */
@media(max-width:850px){
  .think-v4-hero,.build-v3-hero{
    height:calc(100svh - var(--header-h) - var(--dock-h));
    min-height:0;
    grid-template-rows:auto minmax(270px,1fr);
    gap:18px;
    padding:24px 12px 30px;
    overflow:hidden;
  }
  .think-product-stage,.product-stage{height:100%;min-height:0}
}

/* V5.3 — prevent mobile product UI clipping and decorative horizontal overflow. */
.theme-grow main,.grow-loop-v3{overflow-x:clip}
@media(max-width:850px){
  .frame-bar{height:30px;padding:0 8px}
  .frame-bar b,.frame-bar em{font-size:6px}
  .frame-body{height:calc(100% - 30px);grid-template-columns:38px 1fr}
  .frame-body>aside{padding:9px 8px}
  .frame-body>section{padding:8px}
  .frame-body>section>header span{width:52px;height:4px}
  .frame-body>section>header b{width:34px;height:14px}
  .ui-hero{height:50%;margin-top:6px;padding:8px;border-radius:9px}
  .ui-hero span{font-size:5px}
  .ui-hero strong{font-size:18px;margin-top:5px;line-height:.88}
  .ui-hero i{left:8px;bottom:7px;width:28px;height:3px}
  .ui-modules{height:21%;gap:4px;margin-top:5px}
  .ui-modules b{border-radius:6px}
}

/* ========================================================================== */
/* V6 — full-bleed systems, stronger area palettes and project portfolio       */
/* ========================================================================== */

/* Three deliberately different but compatible colour systems. */
@media(min-width:851px){
  .portal-flight-card .portal-meta,
  .portal-flight-card .portal-name,
  .portal-flight-card .portal-arrow,
  .portal-flight-card .think-object-v4,
  .portal-flight-card .build-object,
  .portal-flight-card .grow-object{transition-duration:2.15s!important}
  .portal-flight-card .portal-meta em{transition-duration:1.85s!important}
}
.portal-v4 .portal-think{
  color:#fff;
  background:
    radial-gradient(circle at 74% 18%,#ff7ba4 0,transparent 28%),
    radial-gradient(circle at 18% 68%,#7e4dff88 0,transparent 38%),
    linear-gradient(155deg,#210827 0%,#522044 54%,#9b3759 100%);
}
.portal-v4 .portal-think:before{background:#ff697f;opacity:.36;filter:blur(38px)}
.portal-v4 .portal-build{
  background:
    radial-gradient(circle at 72% 14%,#58a6ff88 0,transparent 34%),
    linear-gradient(155deg,#04112d 0%,#0a2c6b 55%,#1354b9 100%);
}
.portal-v4 .portal-grow{
  background:
    radial-gradient(circle at 80% 8%,#b5ff7880 0,transparent 31%),
    linear-gradient(155deg,#021b18 0%,#064839 58%,#08785b 100%);
}
.portal-v4 .portal-grow:before{background:linear-gradient(180deg,transparent 35%,#053b31 100%)}

.pillar-link.think{background:radial-gradient(circle at 82% 18%,#ff7ba477,transparent 34%),linear-gradient(135deg,#3a1238,#791f54)}
.pillar-link.build{background:radial-gradient(circle at 82% 18%,#5aa6ff77,transparent 36%),linear-gradient(135deg,#061631,#104aa7)}
.pillar-link.grow{background:radial-gradient(circle at 82% 18%,#b5ff785c,transparent 36%),linear-gradient(135deg,#03241e,#087258)}

.theme-think,.theme-think main{
  color:#fff5fb;
  background:#17091d;
}
.theme-think main{
  background-image:
    radial-gradient(circle at 78% 4%,#ff68843b 0,transparent 24%),
    radial-gradient(circle at 16% 35%,#9e58ff30 0,transparent 30%),
    linear-gradient(180deg,#17091d 0%,#27102d 46%,#14091b 100%);
}
.theme-think .think-v4-hero{
  background:
    radial-gradient(circle at 73% 40%,#b25cff42 0,transparent 32%),
    linear-gradient(145deg,#16091c 0%,#361533 58%,#5b1f42 100%);
}
.theme-think .think-v4-capabilities{background:linear-gradient(180deg,#2a102d 0%,#3a1536 52%,#241027 100%)}
.theme-think .think-v4-system{background:linear-gradient(180deg,#1d0c24 0%,#120a1c 100%)}
.theme-think .think-service-card{background:linear-gradient(145deg,#401838,#1c1028);border-color:#8b456f}
.theme-think .think-service-card:hover{border-color:#ff8db8;box-shadow:0 26px 70px #09000baa,0 0 54px #ff65962c}
.theme-think .think-system-board{background-color:#190d22;border-color:#81476f}
.theme-think .system-tile{background:#32162f;border-color:#8a4a70}
.theme-think .think-product-stage{background:linear-gradient(145deg,#29152d,#100c1a);border-color:#8b4d79}
.theme-think .section-intro{border-color:#a46389}

.theme-build,.theme-build main{
  color:#f4f8ff;
  background:#020b1d;
}
.theme-build main{
  background-image:
    radial-gradient(circle at 78% 6%,#3182ff47 0,transparent 28%),
    linear-gradient(180deg,#020b1d 0%,#061d48 50%,#020a19 100%);
}
.theme-build .build-v3-hero{
  background:
    radial-gradient(circle at 75% 40%,#3c82ff6b 0,transparent 35%),
    linear-gradient(145deg,#020b1c 0%,#09275e 61%,#0d4396 100%);
}
.theme-build .build-capabilities{background:linear-gradient(180deg,#041635 0%,#08265a 48%,#03122d 100%)}
.theme-build .build-system{background:linear-gradient(180deg,#02102a 0%,#020815 100%)}
.theme-build .build-scene{background:linear-gradient(145deg,#0a2450,#050d1d);border-color:#2d65b4}
.theme-build .build-scene-visual{background:radial-gradient(circle at 50% 50%,#3785ff80,transparent 56%),#04102a}

.theme-grow,.theme-grow main{
  color:#effff7;
  background:#021a15;
}
.theme-grow main{
  background-image:
    linear-gradient(#8dffc20b 1px,transparent 1px),
    linear-gradient(90deg,#8dffc20b 1px,transparent 1px),
    radial-gradient(circle at 78% 5%,#4bf0a74d 0,transparent 28%),
    linear-gradient(180deg,#021a15 0%,#063c30 50%,#021813 100%);
  background-size:54px 54px,54px 54px,auto,auto;
}
.theme-grow .grow-v3-hero{
  background:
    radial-gradient(circle at 77% 34%,#61efbd55 0,transparent 34%),
    linear-gradient(145deg,#021914 0%,#064333 58%,#087259 100%);
}
.theme-grow .grow-capabilities{background:linear-gradient(180deg,#043127 0%,#07513f 48%,#03271f 100%)}
.theme-grow .grow-loop-v3{background:radial-gradient(circle at 68% 53%,#b5ff7822,transparent 32%),linear-gradient(180deg,#03261f,#011612)}
.theme-grow .grow-operation{background:#052e26;border-color:#238468}

.theme-think .site-header,.theme-build .site-header,.theme-grow .site-header,
.theme-about .site-header,.theme-contact .site-header,.theme-projects .site-header{
  color:#fff;
  background:rgba(4,7,13,.82);
  border-color:rgba(255,255,255,.14);
}
.theme-think .main-nav a:hover,.theme-think .main-nav a.active,
.theme-about .main-nav a:hover,.theme-about .main-nav a.active,
.theme-contact .main-nav a:hover,.theme-contact .main-nav a.active,
.theme-projects .main-nav a:hover,.theme-projects .main-nav a.active{background:rgba(255,255,255,.12)}

/* Full-width section backgrounds with one consistent content rail. */
.theme-think main>.section-shell,
.theme-build main>.section-shell,
.theme-grow main>.section-shell{
  width:100%;
  max-width:none;
  margin:0;
  padding-inline:max(32px,calc((100vw - var(--shell))/2));
}
.think-v4-capabilities,.build-capabilities,.grow-capabilities{padding-block:72px}
.think-v4-system,.build-system,.grow-loop-v3{padding-block:72px 92px}
.area-projects{padding-block:72px 92px}
.think-service-grid,.build-scenes,.grow-operations{margin-top:34px}
.area-projects-more{
  display:inline-flex;
  margin-top:34px;
  border:1px solid currentColor;
  border-radius:999px;
  padding:11px 16px;
  font:10px var(--mono);
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* About portrait and LinkedIn action. */
.profile-photo{
  position:absolute;
  left:50%;
  top:49%;
  width:min(54%,290px);
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  overflow:hidden;
  border:1px solid #7f96bf;
  box-shadow:0 0 0 13px #0b1019,0 0 0 14px #40516f,0 28px 70px #0009,0 0 80px #6e8dff3b;
  z-index:2;
}
.profile-photo img{width:100%;height:100%;object-fit:cover}
.profile-core{
  left:50%;
  top:auto;
  bottom:14px;
  width:82px;
  transform:translateX(-50%);
  background:#111827e8;
}
.profile-core span{font-size:26px}
.about-linkedin{
  width:max-content;
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-top:24px;
  border:1px solid #4b6fa6;
  border-radius:999px;
  padding:10px 14px 10px 10px;
  font:10px var(--mono);
  color:#dceaff;
  transition:background .25s,border-color .25s,transform .25s;
}
.about-linkedin span{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#0a66c2;color:#fff;font:bold 13px Arial}
.about-linkedin:hover{background:#10233e;border-color:#76b8ff;transform:translateY(-2px)}

/* Public project index and cards. */
.theme-projects,.theme-projects main{background:#06080d;color:#f7f8fb}
.theme-about main,.theme-contact main,.theme-projects main{padding-top:0}
.theme-projects main{background-image:radial-gradient(circle at 12% 8%,#9b3d7938,transparent 25%),radial-gradient(circle at 50% 14%,#1655b94d,transparent 27%),radial-gradient(circle at 86% 8%,#1183603d,transparent 25%),linear-gradient(180deg,#06080d,#0a0d15 60%,#05070b)}
.projects-page{min-height:100vh}
.projects-hero{
  min-height:500px;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:60px;
  align-items:center;
  padding-block:74px;
}
.projects-hero-copy>p{font:10px var(--mono);letter-spacing:.15em;color:#8fb8ff}
.projects-hero-copy h1{font-size:clamp(55px,6.8vw,112px);line-height:.86;letter-spacing:-.082em;margin:24px 0}
.projects-hero-copy>span{display:block;max-width:650px;color:#aeb8ca;font-size:18px}
.projects-spectrum{height:310px;position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:9px;transform:rotate(-3deg)}
.projects-spectrum i{border:1px solid #ffffff28;border-radius:22px;box-shadow:0 30px 80px #0008}
.projects-spectrum .think{background:linear-gradient(155deg,#45133f,#b23f6b)}
.projects-spectrum .build{background:linear-gradient(155deg,#071b46,#1765d4)}
.projects-spectrum .grow{background:linear-gradient(155deg,#042920,#09906b)}
.projects-spectrum b{position:absolute;bottom:17px;color:#fff;font:10px var(--mono)}
.projects-spectrum b:nth-of-type(1){left:14%}.projects-spectrum b:nth-of-type(2){left:49%}.projects-spectrum b:nth-of-type(3){right:14%}
.projects-index{padding-block:34px 110px}
.project-filters{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:38px}
.project-filters a{border:1px solid #3a4252;border-radius:999px;padding:9px 14px;font:9px var(--mono);text-transform:uppercase;letter-spacing:.09em;color:#9ca7b9}
.project-filters a:hover,.project-filters a.active{color:#fff;background:#171c27;border-color:#68738a}
.project-filters .think.active{background:#6a2452;border-color:#d05a94}.project-filters .build.active{background:#104698;border-color:#4f8fff}.project-filters .grow.active{background:#087052;border-color:#3ce1aa}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:38px}
.portfolio-card{border:1px solid #ffffff20;border-radius:22px;overflow:hidden;background:#0c1018;transition:transform .35s,border-color .35s,box-shadow .35s}
.portfolio-card:hover{transform:translateY(-6px);box-shadow:0 30px 80px #0008}
.portfolio-think:hover{border-color:#d45b98}.portfolio-build:hover{border-color:#4f8fff}.portfolio-grow:hover{border-color:#42dca9}
.portfolio-card-media{position:relative;aspect-ratio:16/10;overflow:hidden;display:grid;place-items:center}
.portfolio-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.portfolio-card:hover .portfolio-card-media img{transform:scale(1.035)}
.portfolio-card-media>strong{font-size:92px;letter-spacing:-.1em}
.portfolio-card-media>span{position:absolute;left:14px;top:14px;background:#07090dcc;border:1px solid #ffffff35;border-radius:999px;padding:6px 9px;font:8px var(--mono);letter-spacing:.1em}
.portfolio-card-copy{padding:24px}
.portfolio-card-copy>div{display:flex;justify-content:space-between;gap:20px;font:9px var(--mono);color:#8e9aad;text-transform:uppercase;letter-spacing:.08em}
.portfolio-card-copy i{font-style:normal}
.portfolio-card-copy h3{font-size:clamp(28px,3vw,48px);line-height:.95;letter-spacing:-.06em;margin:30px 0 15px}
.portfolio-card-copy p{color:#aab3c1;margin:0;max-width:700px}
.projects-empty{min-height:320px;border:1px dashed #343c4a;border-radius:22px;display:grid;place-content:center;text-align:center;color:#8792a3}
.projects-empty span{font-size:42px}.projects-empty p{max-width:520px}

/* Project detail with a full-width header and mixed media gallery. */
.project-page{padding:0 0 110px}
.project-top{padding-top:72px}
.project-header{padding:64px 0;border-color:#ffffff38}
.project-header h1{font-size:clamp(58px,8vw,132px)}
.project-hero-media{width:100%;margin:0;max-height:82vh;overflow:hidden;background:#05070b}
.project-hero-media img{width:100%;height:min(82vh,900px);object-fit:cover}
.project-content{padding-block:90px;grid-template-columns:25% 75%;gap:70px}
.project-description{max-width:980px}
.project-gallery{padding-block:25px 95px}
.project-media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:38px}
.project-media-item{margin:0;border:1px solid #ffffff24;border-radius:20px;overflow:hidden;background:#070a10}
.project-media-item.wide{grid-column:1/-1}
.project-media-item img,.project-media-item video{width:100%;max-height:82vh;object-fit:cover;background:#000}
.project-media-item figcaption{padding:14px 17px;font-size:12px;color:#aeb7c5;border-top:1px solid #ffffff1d}
.project-navigation{display:grid;grid-template-columns:1fr auto 1fr;gap:25px;align-items:center;padding-top:45px;border-top:1px solid #ffffff35}
.project-navigation>a:not(.all){display:grid;gap:8px}.project-navigation .next{text-align:right}
.project-navigation span{font:9px var(--mono);text-transform:uppercase;letter-spacing:.09em;color:#8f9bad}
.project-navigation strong{font-size:24px;letter-spacing:-.04em}
.project-navigation .all{border:1px solid currentColor;border-radius:999px;padding:10px 14px;font:9px var(--mono);text-transform:uppercase}

@media(max-width:850px){
  .theme-think main>.section-shell,.theme-build main>.section-shell,.theme-grow main>.section-shell{padding-inline:12px}
  .think-v4-capabilities,.build-capabilities,.grow-capabilities,.think-v4-system,.build-system,.grow-loop-v3,.area-projects{padding-block:56px}
  .theme-about .main-nav,.theme-contact .main-nav,.theme-projects .main-nav{background:#080b11;color:#fff}
  .profile-photo{width:min(57%,210px)}
  .profile-core{width:67px;bottom:9px}.profile-core span{font-size:21px}.profile-core b{font-size:5px}
  .projects-hero{grid-template-columns:1fr;gap:34px;min-height:0;padding-block:48px}
  .projects-spectrum{height:220px}
  .portfolio-grid{grid-template-columns:1fr;gap:14px}
  .portfolio-card-copy{padding:19px}
  .portfolio-card-copy h3{margin-top:22px}
  .project-top{padding-top:46px}
  .project-header,.project-content{grid-template-columns:1fr;gap:28px}
  .project-header{padding:45px 0}
  .project-content{padding-block:58px}
  .project-media-grid{grid-template-columns:1fr}
  .project-media-item.wide{grid-column:auto}
  .project-navigation{grid-template-columns:1fr 1fr}
  .project-navigation .all{grid-column:1/-1;grid-row:2;text-align:center}
}

@media(max-width:520px){
  .profile-photo{width:58%}
  .projects-hero-copy h1{font-size:clamp(45px,13vw,62px)}
  .projects-spectrum{height:180px}
  .portfolio-card-media>strong{font-size:65px}
  .project-hero-media img{height:55vh}
  .project-navigation strong{font-size:17px}
}

/* ========================================================================== */
/* V7 — deliberate portal compression, full-bleed Think and seamless systems  */
/* ========================================================================== */

/* Keep the internal transformation alive for the whole physical flight. */
.portal-flight-card .portal-meta,
.portal-flight-card .portal-name,
.portal-flight-card .portal-arrow,
.portal-flight-card .think-object-v4,
.portal-flight-card .build-object,
.portal-flight-card .grow-object{
  transition-duration:var(--portal-flight-detail-duration,3380ms)!important;
  transition-timing-function:cubic-bezier(.76,0,.24,1)!important;
}
.portal-flight-card .portal-name strong,
.portal-flight-card .portal-name span,
.portal-flight-card .portal-meta span{
  transition-property:font-size,line-height,letter-spacing,margin,opacity!important;
  transition-duration:var(--portal-flight-detail-duration,3380ms)!important;
  transition-timing-function:cubic-bezier(.76,0,.24,1)!important;
}
.portal-flight-card .portal-meta em{
  transition-duration:var(--portal-flight-meta-duration,2974ms)!important;
}

/* Think is structurally full bleed; only its content follows the common rail. */
.think-v4-hero{
  width:100%;
  max-width:none;
  margin-inline:0;
  padding-inline:max(32px,calc((100vw - var(--shell))/2));
}
@media(min-width:1081px){
  .think-v4-hero{grid-template-columns:minmax(0,42fr) minmax(0,58fr)}
  .build-v3-hero{grid-template-columns:minmax(0,38fr) minmax(0,62fr)}
  .grow-v3-hero{grid-template-columns:minmax(0,34fr) minmax(0,66fr)}
}

/* One continuous canvas per area: sections no longer paint hard-edged bands. */
.theme-think main{
  background-color:#17091d;
  background-image:
    radial-gradient(ellipse 68% 24% at 82% 7%,#ff688447 0,transparent 72%),
    radial-gradient(ellipse 74% 30% at 10% 38%,#a75dff35 0,transparent 74%),
    radial-gradient(ellipse 66% 27% at 84% 73%,#ff65962c 0,transparent 76%),
    linear-gradient(180deg,#17091d 0%,#351435 31%,#28112f 63%,#130918 100%);
}
.theme-build main{
  background-color:#020b1d;
  background-image:
    radial-gradient(ellipse 72% 25% at 82% 7%,#3487ff59 0,transparent 72%),
    radial-gradient(ellipse 66% 29% at 12% 43%,#175dcc3f 0,transparent 74%),
    radial-gradient(ellipse 70% 27% at 84% 76%,#3aa4ff30 0,transparent 76%),
    linear-gradient(180deg,#020b1d 0%,#08275d 34%,#051b43 65%,#020815 100%);
}
.theme-grow main{
  background-color:#021a15;
  background-image:
    linear-gradient(#8dffc20b 1px,transparent 1px),
    linear-gradient(90deg,#8dffc20b 1px,transparent 1px),
    radial-gradient(ellipse 70% 25% at 82% 7%,#63f1bd55 0,transparent 72%),
    radial-gradient(ellipse 68% 28% at 12% 45%,#18b88d38 0,transparent 75%),
    radial-gradient(ellipse 72% 27% at 82% 78%,#8dffb92b 0,transparent 77%),
    linear-gradient(180deg,#021a15 0%,#07513f 34%,#04362b 66%,#011612 100%);
  background-size:54px 54px,54px 54px,auto,auto,auto,auto;
}
.theme-think .think-v4-hero,
.theme-think .think-v4-capabilities,
.theme-think .think-v4-system,
.theme-think .think-projects,
.theme-build .build-v3-hero,
.theme-build .build-capabilities,
.theme-build .build-system,
.theme-build .build-projects,
.theme-grow .grow-v3-hero,
.theme-grow .grow-capabilities,
.theme-grow .grow-loop-v3,
.theme-grow .grow-projects{
  background-color:transparent;
  background-image:none;
}

/* About and Contact share the same brighter, colourful neutral system. */
.theme-about,.theme-contact{
  color:#f7f9fd;
  background:#121724;
}
.theme-about main,.theme-contact main{
  background-color:#151b29;
  background-image:
    radial-gradient(ellipse 55% 24% at 10% 5%,#9e3f7840 0,transparent 72%),
    radial-gradient(ellipse 58% 27% at 88% 12%,#2f6ecf45 0,transparent 73%),
    radial-gradient(ellipse 62% 24% at 50% 70%,#16846a2f 0,transparent 76%),
    linear-gradient(180deg,#171c2a 0%,#20283a 48%,#141a27 100%);
}
.about-tech-visual,.contact-signal{
  background:
    radial-gradient(circle at 50% 45%,#31456a5c 0,transparent 62%),
    #182132;
  border-color:#465775;
}
.about-tech-story,
.status-card,
.experience-console article,
.about-tech-nav a,
.contact-info-card,
.contact-tech-form{
  background:rgba(27,36,53,.9);
  border-color:#465775;
}
.experience-console,.about-tech-hero,.contact-tech-header{border-color:#465775}
.experience-console article:hover{background:#242f45}
.about-tech-copy>div p,.contact-tech-copy>div p{color:#c4cddd}
.about-tech-copy>div span,.contact-tech-copy>div a{color:#a7b5cc}
.contact-tech-form input,.contact-tech-form select,.contact-tech-form textarea{
  background:#111827;
  border-color:#485a78;
}
.contact-tech-form select option{background:#182132}
.signal-status{background:#1b2639;border-color:#4c6081}

/* The portrait stays centred and clears the Grow node on every breakpoint. */
.profile-photo{
  left:50%;
  top:50%;
  width:min(40%,210px);
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 8px #182132,0 0 0 9px #60749a,0 24px 60px #0007,0 0 64px #6e8dff35;
}
.profile-core{
  left:calc(50% + 91px);
  top:calc(50% + 72px);
  bottom:auto;
  width:58px;
  transform:translate(-50%,-50%);
  background:#1a2538ed;
}
.profile-core span{font-size:17px}
.profile-core b{font-size:5px}

@media(max-width:850px){
  .think-v4-hero{padding-inline:12px}
  .profile-photo{
    width:min(44%,170px);
    box-shadow:0 0 0 6px #182132,0 0 0 7px #60749a,0 20px 50px #0007,0 0 52px #6e8dff30;
  }
  .profile-core{
    left:calc(50% + 72px);
    top:calc(50% + 57px);
    width:51px;
  }
  .profile-core span{font-size:15px}
}
@media(max-width:520px){
  .profile-photo{width:150px}
  .profile-core{
    left:calc(50% + 63px);
    top:calc(50% + 50px);
    width:47px;
  }
}

/* ========================================================================== */
/* V8 — exact rails, clean background joins and deploy-safe portal motion      */
/* ========================================================================== */

/*
 * The complete card flight uses two explicit CSS states. This keeps the
 * physical movement tied to the same duration as the internal compaction and
 * avoids Web Animations being deferred in some browser/rendering conditions.
 */
.portal-v4 .portal-flight-card{
  transition-property:left,top,width,height,border-radius,padding,filter!important;
  transition-duration:var(--portal-flight-duration,3600ms)!important;
  transition-timing-function:cubic-bezier(.45,0,.55,1)!important;
}
.portal-v4 .portal-flight-card.portal-flight-to-dock{
  left:var(--portal-target-left)!important;
  top:var(--portal-target-top)!important;
  width:var(--portal-target-width)!important;
  height:var(--portal-target-height)!important;
  border-radius:0!important;
  padding:var(--portal-target-padding)!important;
}
.portal-flight-card .portal-meta,
.portal-flight-card .portal-name,
.portal-flight-card .portal-arrow,
.portal-flight-card .think-object-v4,
.portal-flight-card .build-object,
.portal-flight-card .grow-object,
.portal-flight-card .portal-name strong,
.portal-flight-card .portal-name span,
.portal-flight-card .portal-meta span,
.portal-flight-card .portal-meta em{
  transition-timing-function:cubic-bezier(.45,0,.55,1)!important;
}

/*
 * Think now uses the same lateral rail as Build and Grow. The previous
 * max-width calculation produced 300 px of internal padding on a 1920 px
 * viewport, while the other two covers use 4vw.
 */
.think-v4-hero{
  padding-inline:4vw;
}

/*
 * Let the soft shadows continue into the following transparent section instead
 * of clipping them at the hero box. The section headings no longer draw a hard
 * full-width rule that looked like a colour seam.
 */
.think-v4-hero,
.build-v3-hero,
.grow-v3-hero{
  position:relative;
  overflow:visible;
}
.theme-think main,
.theme-build main,
.theme-grow main{
  overflow-x:clip;
}
.theme-think .section-intro,
.theme-build .section-intro,
.theme-grow .section-intro{
  border-bottom:0;
}

/*
 * The old blurred solid circle could be rasterised as a rectangular layer in
 * Chromium. A radial gradient reaches full transparency before its own bounds,
 * so there is no visible lower or right edge.
 */
.product-glow{
  width:108%;
  aspect-ratio:1.35;
  right:-12%;
  top:-16%;
  border-radius:50%;
  background:radial-gradient(ellipse at center,#487cff4f 0,#2e73ff25 42%,transparent 72%);
  filter:none;
  pointer-events:none;
}

/* Centre the portrait in the triangle formed by Think, Build and Grow. */
.profile-photo{
  top:40%;
  width:min(35%,188px);
}
.profile-core{
  left:calc(50% + 77px);
  top:calc(40% + 62px);
  width:54px;
}
.profile-core span{font-size:16px}

/*
 * Projects inherits the neutral About/Contact canvas in "Todos" and the exact
 * area canvas when one of the three filters is active.
 */
.theme-projects.projects-all{
  color:#f7f9fd;
  background:#121724;
}
.theme-projects.projects-all main{
  background-color:#151b29;
  background-image:
    radial-gradient(ellipse 55% 24% at 10% 5%,#9e3f7840 0,transparent 72%),
    radial-gradient(ellipse 58% 27% at 88% 12%,#2f6ecf45 0,transparent 73%),
    radial-gradient(ellipse 62% 24% at 50% 70%,#16846a2f 0,transparent 76%),
    linear-gradient(180deg,#171c2a 0%,#20283a 48%,#141a27 100%);
}
.theme-projects.projects-think{
  color:#fff5fb;
  background:#17091d;
}
.theme-projects.projects-think main{
  background-color:#17091d;
  background-image:
    radial-gradient(ellipse 68% 24% at 82% 7%,#ff688447 0,transparent 72%),
    radial-gradient(ellipse 74% 30% at 10% 38%,#a75dff35 0,transparent 74%),
    radial-gradient(ellipse 66% 27% at 84% 73%,#ff65962c 0,transparent 76%),
    linear-gradient(180deg,#17091d 0%,#351435 31%,#28112f 63%,#130918 100%);
}
.theme-projects.projects-build{
  color:#f4f8ff;
  background:#020b1d;
}
.theme-projects.projects-build main{
  background-color:#020b1d;
  background-image:
    radial-gradient(ellipse 72% 25% at 82% 7%,#3487ff59 0,transparent 72%),
    radial-gradient(ellipse 66% 29% at 12% 43%,#175dcc3f 0,transparent 74%),
    radial-gradient(ellipse 70% 27% at 84% 76%,#3aa4ff30 0,transparent 76%),
    linear-gradient(180deg,#020b1d 0%,#08275d 34%,#051b43 65%,#020815 100%);
}
.theme-projects.projects-grow{
  color:#effff7;
  background:#021a15;
}
.theme-projects.projects-grow main{
  background-color:#021a15;
  background-image:
    linear-gradient(#8dffc20b 1px,transparent 1px),
    linear-gradient(90deg,#8dffc20b 1px,transparent 1px),
    radial-gradient(ellipse 70% 25% at 82% 7%,#63f1bd55 0,transparent 72%),
    radial-gradient(ellipse 68% 28% at 12% 45%,#18b88d38 0,transparent 75%),
    radial-gradient(ellipse 72% 27% at 82% 78%,#8dffb92b 0,transparent 77%),
    linear-gradient(180deg,#021a15 0%,#07513f 34%,#04362b 66%,#011612 100%);
  background-size:54px 54px,54px 54px,auto,auto,auto,auto;
}

@media(max-width:1080px){
  .think-v4-hero{padding-inline:24px}
}
@media(max-width:850px){
  .think-v4-hero{padding-inline:14px}
  .profile-photo{
    top:40%;
    width:min(40%,158px);
  }
  .profile-core{
    left:calc(50% + 65px);
    top:calc(40% + 52px);
    width:49px;
  }
}
@media(max-width:520px){
  .profile-photo{width:140px}
  .profile-core{
    left:calc(50% + 58px);
    top:calc(40% + 46px);
    width:45px;
  }
}

/* ========================================================================== */
/* V9 — live destination morph, persistent motion and area-specific patterns   */
/* ========================================================================== */

/*
 * The destination page is already mounted below this fixed layer. The clones
 * keep their text outside the clipping context while the visual modules shrink
 * into the real dock dimensions.
 */
.portal-flight-layer{
  overflow:visible;
}
.portal-v4 .portal-flight-card{
  overflow:visible!important;
  transition-duration:var(--portal-flight-duration,1800ms)!important;
}
.portal-flight-card .portal-meta,
.portal-flight-card .portal-name,
.portal-flight-card .portal-name strong,
.portal-flight-card .portal-name span{
  overflow:visible!important;
  white-space:nowrap!important;
}
.portal-flight-card .portal-meta em{
  clip-path:none!important;
  max-width:220px!important;
  overflow:visible!important;
  opacity:.66;
  transform:translateX(0) scale(1);
  transform-origin:left center;
  transition-property:transform,opacity!important;
  transition-duration:var(--portal-flight-meta-duration,1260ms)!important;
}
.portal-flight-card.portal-flight-compact .portal-meta em{
  clip-path:none!important;
  max-width:220px!important;
  margin:0!important;
  opacity:0;
  transform:translateX(-8px) scale(.01);
}
.portal-flight-card.portal-flight-compact .portal-name{
  max-width:calc(100% - 150px);
}
.portal-flight-card.portal-flight-compact .portal-name strong,
.portal-flight-card.portal-flight-compact .portal-name span{
  text-overflow:clip;
}
.portal-destination-live main{
  min-height:calc(100svh - var(--header-h) - var(--dock-h));
}

/*
 * Each area has a persistent visual language over its continuous gradient:
 * Think uses creative registration marks, Build uses circuit traces and Grow
 * keeps its analytical grid.
 */
.theme-think main,
.theme-build main,
.theme-grow main{
  position:relative;
  isolation:isolate;
}
.theme-think main>*,
.theme-build main>*,
.theme-grow main>*{
  position:relative;
  z-index:1;
}
.theme-think main:before,
.theme-build main:before,
.theme-grow main:before{
  content:"";
  position:fixed;
  inset:calc(var(--header-h) + var(--dock-h)) 0 0;
  z-index:0;
  pointer-events:none;
  will-change:background-position;
}
.theme-think main:before{
  opacity:.62;
  background-image:
    radial-gradient(circle at 18px 18px,#ffb1d526 0 1.5px,transparent 2px),
    repeating-linear-gradient(128deg,transparent 0 62px,#ffd0e50b 63px 64px,transparent 65px 128px),
    radial-gradient(circle at 50% 50%,transparent 0 30px,#b98cff12 31px 32px,transparent 33px);
  background-size:36px 36px,180px 180px,176px 176px;
  animation:thinkPatternDrift 34s linear infinite;
}
.theme-build main:before{
  opacity:.62;
  background-image:
    linear-gradient(135deg,transparent 0 47%,#73e8ff13 48% 49%,transparent 50%),
    linear-gradient(45deg,transparent 0 47%,#5b8cff0e 48% 49%,transparent 50%),
    radial-gradient(circle at 2px 2px,#8ff4ff3b 0 1.5px,transparent 2px);
  background-size:144px 144px,216px 216px,72px 72px;
  animation:buildPatternDrift 38s linear infinite;
}
.theme-grow main:before{
  opacity:.44;
  background-image:
    linear-gradient(#9dffd214 1px,transparent 1px),
    linear-gradient(90deg,#9dffd214 1px,transparent 1px);
  background-size:54px 54px;
  animation:growPatternDrift 42s linear infinite;
}

/* Ambient motion remains deliberately low-amplitude but visible on desktop. */
html.ambient-motion .site-signature i{
  animation:brandPulse 2.2s ease-in-out infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .think-glow{
  animation:spin 18s linear infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .think-window-main{
  animation:portalCreativeFloat 7.5s ease-in-out infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .think-window-side{
  animation:portalCreativeSide 8.5s ease-in-out infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .think-cursor,
html.ambient-motion .creative-pointer{
  animation:cursorDrift 5.5s ease-in-out infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .build-screen{
  animation:portalBuildFloat 7.2s ease-in-out infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .build-phone{
  animation:portalPhoneFloat 6.2s ease-in-out infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .build-orbit{
  animation:spin 14s linear infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .grow-object{
  animation:portalDashboardFloat 7.8s ease-in-out infinite!important;
}
html.ambient-motion .data-line{
  animation:drawLine 1.9s .2s ease forwards,lineGlow 4.6s 2.1s ease-in-out infinite!important;
}
html.ambient-motion .grow-bars i,
html.ambient-motion .think-service-visual b,
html.ambient-motion .operation-signal span{
  animation:barPulse 2.4s ease-in-out infinite!important;
}
html.ambient-motion .think-service-visual b:nth-child(2),
html.ambient-motion .grow-bars i:nth-child(2),
html.ambient-motion .operation-signal span:nth-child(2){animation-delay:.15s!important}
html.ambient-motion .think-service-visual b:nth-child(3),
html.ambient-motion .grow-bars i:nth-child(3),
html.ambient-motion .operation-signal span:nth-child(3){animation-delay:.3s!important}
html.ambient-motion .grow-bars i:nth-child(4),
html.ambient-motion .operation-signal span:nth-child(4){animation-delay:.45s!important}
html.ambient-motion .grow-bars i:nth-child(5),
html.ambient-motion .operation-signal span:nth-child(5){animation-delay:.6s!important}
html.ambient-motion .grow-bars i:nth-child(6),
html.ambient-motion .operation-signal span:nth-child(6){animation-delay:.75s!important}

html.ambient-motion .halo-one{
  animation:haloDrift 9s ease-in-out infinite!important;
}
html.ambient-motion .halo-two{
  animation:haloDrift 11s ease-in-out infinite reverse!important;
}
html.ambient-motion .creative-os{
  animation:creativeDevice 7s ease-in-out infinite!important;
}
html.ambient-motion .creative-artboard path{
  stroke-dasharray:8 9;
  animation:creativePath 14s linear infinite!important;
}
html.ambient-motion .panel-tools{
  animation:panelToolsFloat 8.5s ease-in-out infinite!important;
}
html.ambient-motion .panel-swatch{
  animation:panelSwatchFloat 7.5s ease-in-out infinite!important;
}
html.ambient-motion .system-core i,
html.ambient-motion .profile-core i,
html.ambient-motion .signal-orbit,
html.ambient-motion .loop-orbit svg{
  animation:spin 24s linear infinite!important;
}
html.ambient-motion .loop-orbit svg{
  animation-duration:45s!important;
}

html.ambient-motion .desktop-frame{
  animation:deviceFloat 7s ease-in-out infinite!important;
}
html.ambient-motion .mobile-frame{
  animation:phoneFloat 6s ease-in-out infinite!important;
}
html.ambient-motion .ui-hero:after{
  animation:buildRing 8s ease-in-out infinite!important;
}
html.ambient-motion .system-node{
  animation:systemNodeLive 4.8s ease-in-out infinite!important;
}
html.ambient-motion .system-node:nth-of-type(2){animation-delay:.6s!important}
html.ambient-motion .system-node:nth-of-type(3){animation-delay:1.2s!important}
html.ambient-motion .visual-automation .pulse{
  animation:flowPulse 3.2s linear infinite!important;
}
html.ambient-motion .build-scene.visible .visual-browser{
  animation:softFloat 7s ease-in-out infinite!important;
}
html.ambient-motion .build-scene.visible .build-scene-visual:before,
html.ambient-motion .think-product-stage.visible .think-mesh{
  animation:gridBreath 8s ease-in-out infinite!important;
}
html.ambient-motion .system-track.visible>i:before{
  animation:trackSignal 3.5s linear infinite!important;
}

html.ambient-motion .dashboard-stage.visible .dash-primary{
  animation:drawLine 2.2s .2s ease forwards,lineGlow 4.8s 2.4s ease-in-out infinite!important;
}
html.ambient-motion .dashboard-stage.visible .dash-reference{
  animation:signalDash 12s linear infinite!important;
}
html.ambient-motion .dash-chart circle{
  transform-box:fill-box;
  transform-origin:center;
  animation:metricNodePulse 3.2s ease-in-out infinite!important;
}
html.ambient-motion .dash-chart circle:nth-of-type(2){animation-delay:.55s!important}
html.ambient-motion .dash-chart circle:nth-of-type(3){animation-delay:1.1s!important}
html.ambient-motion .channel-mix i{
  transform-origin:left center;
  animation:metricBarBreath 4.4s ease-in-out infinite!important;
}
html.ambient-motion .channel-mix>div:nth-child(3) i{animation-delay:.5s!important}
html.ambient-motion .channel-mix>div:nth-child(4) i{animation-delay:1s!important}
html.ambient-motion .funnel span{
  animation:funnelLive 5s ease-in-out infinite!important;
}
html.ambient-motion .funnel span:nth-of-type(2){animation-delay:.35s!important}
html.ambient-motion .funnel span:nth-of-type(3){animation-delay:.7s!important}
html.ambient-motion .funnel span:nth-of-type(4){animation-delay:1.05s!important}

@keyframes thinkPatternDrift{
  to{background-position:144px 72px,180px 90px,-176px 88px}
}
@keyframes buildPatternDrift{
  to{background-position:144px 144px,-216px 216px,72px 72px}
}
@keyframes growPatternDrift{
  to{background-position:54px 54px,54px 54px}
}
@keyframes portalCreativeFloat{
  0%,100%{transform:rotateY(8deg) rotateX(3deg) translateY(0)}
  50%{transform:rotateY(5deg) rotateX(1deg) translateY(-7px)}
}
@keyframes portalCreativeSide{
  0%,100%{transform:rotate(5deg) translateY(0)}
  50%{transform:rotate(2deg) translateY(-10px)}
}
@keyframes portalBuildFloat{
  0%,100%{transform:rotateY(8deg) rotateX(3deg) translateY(0)}
  50%{transform:rotateY(4deg) rotateX(1deg) translateY(-9px)}
}
@keyframes portalPhoneFloat{
  0%,100%{transform:rotate(7deg) translateY(0)}
  50%{transform:rotate(3deg) translateY(-12px)}
}
@keyframes portalDashboardFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes lineGlow{
  0%,100%{opacity:.78;filter:drop-shadow(0 0 5px currentColor)}
  50%{opacity:1;filter:drop-shadow(0 0 12px currentColor)}
}
@keyframes creativePath{
  to{stroke-dashoffset:-170}
}
@keyframes panelToolsFloat{
  0%,100%{transform:rotate(4deg) translateY(0)}
  50%{transform:rotate(2deg) translateY(-8px)}
}
@keyframes panelSwatchFloat{
  0%,100%{transform:rotate(-4deg) translateY(0)}
  50%{transform:rotate(-2deg) translateY(7px)}
}
@keyframes buildRing{
  0%,100%{transform:scale(.94);opacity:.6}
  50%{transform:scale(1.05);opacity:1}
}
@keyframes systemNodeLive{
  0%,100%{box-shadow:0 10px 30px #000;transform:translateY(0)}
  50%{box-shadow:0 10px 30px #000,0 0 20px #74e8ff35;transform:translateY(-4px)}
}
@keyframes metricNodePulse{
  0%,100%{transform:scale(.82);opacity:.7}
  50%{transform:scale(1.18);opacity:1}
}
@keyframes metricBarBreath{
  0%,100%{transform:scaleX(.86);opacity:.72}
  50%{transform:scaleX(1);opacity:1}
}
@keyframes funnelLive{
  0%,100%{filter:brightness(.9);transform:translateX(0)}
  50%{filter:brightness(1.15);transform:translateX(3px)}
}

.portal-flight-card,
.portal-flight-card *{
  animation-play-state:paused!important;
}

@media(prefers-reduced-motion:reduce){
  html.ambient-motion .reveal{
    transition:opacity .68s cubic-bezier(.2,.8,.2,1),transform .68s cubic-bezier(.2,.8,.2,1),filter .55s ease!important;
  }
  html.ambient-motion main>section:first-of-type .reveal{
    animation:heroEnter .72s cubic-bezier(.2,.8,.2,1) both!important;
  }
}

@media(max-width:1080px){
  .contact-tech-aside{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .portal-v4 .portal-flight-card{
    transition-duration:var(--portal-flight-duration,1400ms)!important;
  }
  .portal-flight-card.portal-flight-compact .portal-name{
    max-width:calc(100% - 42px);
  }
  .contact-tech-aside{grid-template-columns:1fr}
}

/* ========================================================================== */
/* V10 — continuous portal scene, early content and neutral contour system     */
/* ========================================================================== */

/*
 * The flight layer also carries the portal-v4 class, whose base style paints a
 * black full-screen background. It must remain a transparent interaction layer
 * so the destination is visible from the first frame of the transformation.
 */
.portal-flight-layer{
  height:auto!important;
  min-height:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.portal-v4 .portal-flight-card{
  overflow:hidden!important;
  contain:paint;
  isolation:isolate;
}
.portal-flight-card .portal-meta,
.portal-flight-card .portal-name{
  transition-timing-function:cubic-bezier(.16,.76,.2,1)!important;
}
.portal-flight-card .portal-name strong,
.portal-flight-card .portal-name span,
.portal-flight-card .portal-meta span{
  transition-duration:var(--portal-flight-text-duration,1044ms)!important;
  transition-timing-function:cubic-bezier(.12,.78,.18,1)!important;
}
.portal-flight-card .portal-meta em{
  transform-origin:left top;
  transition-timing-function:cubic-bezier(.12,.78,.18,1)!important;
}
.portal-flight-card.portal-flight-compact .portal-name{
  max-width:calc(100% - 180px);
}
.portal-flight-card.portal-flight-compact .portal-name strong,
.portal-flight-card.portal-flight-compact .portal-name span{
  max-width:100%;
}
.portal-destination-live main>section:first-child .reveal{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
}

/*
 * Once the cards reach the dock they remain the actual interactive dock. The
 * server-rendered dock keeps the document spacing but stays hidden underneath,
 * avoiding the final one-frame replacement that looked like a jump.
 */
.pillar-dock.portal-dock-shadow{
  visibility:hidden!important;
}
.portal-flight-dock{
  pointer-events:none;
}
.portal-flight-dock .portal-flight-card{
  pointer-events:auto!important;
  cursor:pointer;
  transition-duration:.18s!important;
  will-change:auto;
}
.portal-flight-dock .portal-flight-card:hover{
  filter:brightness(1.12) saturate(1.08)!important;
}

/* About reveals the first section below its cover before any manual scroll. */
.about-tech-summary .reveal{
  opacity:1;
  transform:none;
}

/*
 * About, Contact and the unfiltered project index share a fourth visual
 * language: quiet topographic contours over a dotted field. Area-filtered
 * projects inherit the pattern of Think, Build or Grow.
 */
.theme-about main,
.theme-contact main,
.theme-projects main{
  position:relative;
  isolation:isolate;
}
.theme-about main>*,
.theme-contact main>*,
.theme-projects main>*{
  position:relative;
  z-index:1;
}
.theme-about main:before,
.theme-contact main:before,
.theme-projects main:before{
  content:"";
  position:fixed;
  inset:calc(var(--header-h) + var(--dock-h)) 0 0;
  z-index:0;
  pointer-events:none;
  opacity:.64;
}
.theme-about main:before,
.theme-contact main:before,
.theme-projects.projects-all main:before{
  background-image:
    radial-gradient(circle at 1px 1px,#d9e6ff20 0 1px,transparent 1.6px),
    repeating-radial-gradient(ellipse at 8% 18%,transparent 0 44px,#dce8ff0d 45px 46px,transparent 47px 84px),
    repeating-radial-gradient(ellipse at 92% 78%,transparent 0 52px,#8edfc50c 53px 54px,transparent 55px 96px);
  background-size:40px 40px,760px 540px,900px 650px;
  animation:neutralContourDrift 58s ease-in-out infinite alternate;
}
.theme-projects.projects-think main:before{
  background-image:
    radial-gradient(circle at 18px 18px,#ffb1d526 0 1.5px,transparent 2px),
    repeating-linear-gradient(128deg,transparent 0 62px,#ffd0e50b 63px 64px,transparent 65px 128px),
    radial-gradient(circle at 50% 50%,transparent 0 30px,#b98cff12 31px 32px,transparent 33px);
  background-size:36px 36px,180px 180px,176px 176px;
  animation:thinkPatternDrift 34s linear infinite;
}
.theme-projects.projects-build main:before{
  background-image:
    linear-gradient(135deg,transparent 0 47%,#73e8ff13 48% 49%,transparent 50%),
    linear-gradient(45deg,transparent 0 47%,#5b8cff0e 48% 49%,transparent 50%),
    radial-gradient(circle at 2px 2px,#8ff4ff3b 0 1.5px,transparent 2px);
  background-size:144px 144px,216px 216px,72px 72px;
  animation:buildPatternDrift 38s linear infinite;
}
.theme-projects.projects-grow main:before{
  background-image:
    linear-gradient(#9dffd214 1px,transparent 1px),
    linear-gradient(90deg,#9dffd214 1px,transparent 1px);
  background-size:54px 54px;
  animation:growPatternDrift 42s linear infinite;
}
@keyframes neutralContourDrift{
  from{background-position:0 0,-80px -35px,120px 70px}
  to{background-position:80px 40px,25px 20px,-40px -10px}
}

/* Contact starts with the form and keeps the supporting information secondary. */
.contact-tech{
  padding-block:clamp(28px,4vw,56px) 96px;
}
.contact-direct{
  display:grid;
  grid-template-columns:minmax(0,1.65fr) minmax(280px,.68fr);
  gap:22px;
  align-items:start;
}
.contact-direct-main{
  border:1px solid #465775;
  border-radius:26px;
  padding:clamp(24px,3vw,42px);
  background:rgba(24,33,50,.92);
  box-shadow:0 28px 80px #06091252;
}
.contact-direct-intro{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,.72fr);
  gap:14px 36px;
  align-items:end;
  padding-bottom:28px;
  border-bottom:1px solid #465775;
}
.contact-direct-intro>p{
  grid-column:1/-1;
  margin:0;
  font:9px var(--mono);
  letter-spacing:.15em;
  text-transform:uppercase;
  color:#73e8ff;
}
.contact-direct-intro h1{
  margin:0;
  max-width:760px;
  font-size:clamp(38px,4.1vw,64px);
  line-height:.92;
  letter-spacing:-.065em;
}
.contact-direct-intro>span{
  color:#c4cddd;
  font-size:15px;
  line-height:1.55;
}
.contact-direct-main .contact-tech-form{
  margin-top:30px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.contact-direct-main .contact-tech-form form{
  gap:17px;
}
.contact-direct-main .contact-tech-form textarea{
  min-height:160px;
}
.contact-direct-aside{
  display:grid;
  gap:12px;
  position:sticky;
  top:calc(var(--header-h) + var(--dock-h) + 22px);
}
.contact-direct-block{
  min-height:150px;
  display:flex;
  flex-direction:column;
  padding:21px;
  border:1px solid #465775;
  border-radius:19px;
  background:rgba(27,36,53,.9);
}
.contact-direct-block>span{
  font:9px var(--mono);
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#73e8ff;
}
.contact-direct-block>a,
.contact-direct-block>strong{
  margin-top:auto;
  font-size:clamp(18px,1.45vw,24px);
  line-height:1.05;
  letter-spacing:-.035em;
}
.contact-direct-block>p{
  margin:12px 0 0;
  color:#95a5bc;
  font-size:12px;
}
.contact-direct-status strong{
  display:flex;
  align-items:center;
  gap:9px;
}
.contact-direct-status strong i{
  flex:0 0 auto;
  width:9px;
  height:9px;
  border-radius:50%;
  background:#57e7b0;
  box-shadow:0 0 17px #57e7b0;
  animation:brandPulse 2.2s ease-in-out infinite;
}
.contact-direct-status small{
  margin-top:10px;
  font:8px var(--mono);
  color:#91a0b7;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.projects-index{
  transition:opacity .18s ease;
}
.projects-index[aria-busy="true"]{
  opacity:.72;
  pointer-events:none;
}

@media(max-width:960px){
  .contact-direct{
    grid-template-columns:1fr;
  }
  .contact-direct-aside{
    position:static;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:850px){
  .portal-flight-card.portal-flight-compact .portal-name{
    max-width:calc(100% - 42px);
  }
  .contact-tech{
    padding-block:24px 70px;
  }
  .contact-direct-intro{
    grid-template-columns:1fr;
    gap:14px;
  }
  .contact-direct-intro>p{
    grid-column:auto;
  }
  .contact-direct-main{
    padding:20px;
    border-radius:20px;
  }
  .contact-direct-aside{
    grid-template-columns:1fr;
  }
  .contact-direct-block{
    min-height:125px;
  }
}

/* ========================================================================== */
/* V11 — stable dock handoff, interactive portal graphics and one-screen form */
/* ========================================================================== */

/* The selected clone already arrives with the same visual cue as the real dock. */
.portal-flight-card.portal-flight-compact.selected{
  box-shadow:0 12px 32px #0008,inset 0 -3px 0 rgba(255,255,255,.95)!important;
}

/* Hovering a portal card now actively drives its graphic instead of only scaling the card. */
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-think:hover .think-window-main{
  animation:portalThinkHoverMain .82s cubic-bezier(.2,.8,.2,1) infinite alternate!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-think:hover .think-window-side{
  animation:portalThinkHoverSide .94s cubic-bezier(.2,.8,.2,1) infinite alternate!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-think:hover .think-cursor{
  animation:portalThinkHoverCursor .72s cubic-bezier(.2,.8,.2,1) infinite alternate!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-think:hover .think-object-v4 svg path{
  animation:portalPathRush 1.1s linear infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-build:hover .build-screen{
  animation:portalBuildHoverScreen .86s cubic-bezier(.2,.8,.2,1) infinite alternate!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-build:hover .build-phone{
  animation:portalBuildHoverPhone .72s cubic-bezier(.2,.8,.2,1) infinite alternate!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-build:hover .build-orbit{
  animation:spin 2.8s linear infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .grow-object{
  animation:portalGrowHover .8s cubic-bezier(.2,.8,.2,1) infinite alternate!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .data-line{
  stroke-dasharray:14 7;
  animation:portalDataRush .85s linear infinite!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .grow-bars i{
  animation:portalBarSprint .68s ease-in-out infinite alternate!important;
}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .grow-bars i:nth-child(2){animation-delay:.08s!important}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .grow-bars i:nth-child(3){animation-delay:.16s!important}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .grow-bars i:nth-child(4){animation-delay:.24s!important}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .grow-bars i:nth-child(5){animation-delay:.32s!important}
html.ambient-motion .portal-v4:not(.portal-flight-layer) .portal-grow:hover .grow-bars i:nth-child(6){animation-delay:.4s!important}

@keyframes portalThinkHoverMain{
  from{transform:rotateY(8deg) rotateX(3deg) translate3d(0,0,0)}
  to{transform:rotateY(2deg) rotateX(-1deg) translate3d(10px,-10px,18px)}
}
@keyframes portalThinkHoverSide{
  from{transform:rotate(5deg) translate3d(0,0,0)}
  to{transform:rotate(-1deg) translate3d(-12px,-8px,24px)}
}
@keyframes portalThinkHoverCursor{
  from{transform:translate(0,0) rotate(0)}
  to{transform:translate(24px,-18px) rotate(24deg)}
}
@keyframes portalPathRush{to{stroke-dashoffset:-45}}
@keyframes portalBuildHoverScreen{
  from{transform:rotateY(8deg) rotateX(3deg) translate3d(0,0,0)}
  to{transform:rotateY(2deg) rotateX(0) translate3d(10px,-9px,22px)}
}
@keyframes portalBuildHoverPhone{
  from{transform:rotate(7deg) translate3d(0,0,0)}
  to{transform:rotate(1deg) translate3d(-10px,-15px,28px)}
}
@keyframes portalGrowHover{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-5px,-10px,18px) scale(1.025)}
}
@keyframes portalDataRush{to{stroke-dashoffset:-42}}
@keyframes portalBarSprint{
  from{transform:scaleY(.72);filter:brightness(.92)}
  to{transform:scaleY(1.12);filter:brightness(1.28)}
}

/* Contact: one complete desktop scene, with no dead vertical space inside cards. */
.contact-direct-block>a,
.contact-direct-block>strong{
  margin-top:14px;
}
.contact-direct-block>p{
  margin-top:8px;
}
.contact-direct-status small{
  margin-top:8px;
}
.contact-tech-form button[disabled]{
  cursor:wait;
  opacity:.66;
}
.contact-tech-form [hidden]{display:none!important}

@media(min-width:851px){
  .theme-contact{
    height:100svh;
    overflow:hidden;
  }
  .theme-contact main{
    height:calc(100svh - var(--header-h) - var(--dock-h));
    min-height:0;
    overflow:hidden;
  }
  .theme-contact main:before{
    inset:calc(var(--header-h) + var(--dock-h)) 0 0;
  }
  .contact-tech{
    height:100%;
    padding-block:clamp(14px,2.1vh,24px);
    display:flex;
  }
  .contact-direct{
    width:100%;
    height:100%;
    min-height:0;
    grid-template-columns:minmax(0,1.7fr) minmax(280px,.7fr);
    gap:18px;
    align-items:stretch;
  }
  .contact-direct-main{
    min-height:0;
    overflow:hidden;
    padding:clamp(22px,2.2vw,34px);
    display:flex;
    flex-direction:column;
  }
  .contact-direct-intro{
    grid-template-columns:minmax(0,1fr) minmax(220px,.72fr);
    gap:10px 30px;
    padding-bottom:18px;
  }
  .contact-direct-intro h1{
    font-size:clamp(38px,3.45vw,54px);
  }
  .contact-direct-intro>span{
    font-size:14px;
    line-height:1.45;
  }
  .contact-direct-main .contact-tech-form{
    min-height:0;
    margin-top:18px;
    flex:1;
    display:flex;
    flex-direction:column;
  }
  .contact-direct-main .contact-tech-form form{
    min-height:0;
    flex:1;
    gap:12px;
  }
  .contact-tech-form label{
    gap:5px;
  }
  .contact-tech-form input,
  .contact-tech-form select,
  .contact-tech-form textarea{
    padding:10px 12px;
  }
  .contact-direct-main .contact-tech-form textarea{
    min-height:96px;
    height:100%;
    resize:none;
  }
  .contact-tech-form button{
    min-height:50px;
    margin-top:0;
  }
  .contact-direct-aside{
    min-height:0;
    position:static;
    grid-auto-rows:minmax(0,1fr);
    align-content:stretch;
  }
  .contact-direct-block{
    min-height:0;
    padding:18px;
    justify-content:flex-start;
  }
}

/* Popup replaces the old full success screen and disappears automatically. */
.contact-toast{
  position:fixed;
  z-index:220;
  right:clamp(16px,2.4vw,36px);
  bottom:clamp(16px,2.4vw,34px);
  width:min(420px,calc(100vw - 32px));
  padding:22px 48px 21px 22px;
  border:1px solid #6680ad;
  border-radius:18px;
  background:rgba(18,26,41,.97);
  color:#f7f9fd;
  box-shadow:0 28px 80px #000b,0 0 42px #668cff25;
  backdrop-filter:blur(20px);
  opacity:0;
  transform:translateY(20px) scale(.97);
  pointer-events:none;
  transition:opacity .25s ease,transform .32s cubic-bezier(.2,.8,.2,1);
}
.contact-toast.is-visible{
  opacity:1;
  transform:none;
  pointer-events:auto;
}
.contact-toast>button{
  position:absolute;
  top:11px;
  right:11px;
  width:30px;
  height:30px;
  border:1px solid #ffffff2d;
  border-radius:50%;
  background:#ffffff0b;
  color:#fff;
  font-size:20px;
  line-height:1;
}
.contact-toast>span{
  display:block;
  font:8px var(--mono);
  letter-spacing:.14em;
  color:#73e8ff;
}
.contact-toast>strong{
  display:block;
  margin-top:10px;
  font-size:24px;
  line-height:1.05;
  letter-spacing:-.035em;
}
.contact-toast>p{
  margin:8px 0 0;
  color:#b9c5d8;
  font-size:13px;
  line-height:1.45;
}

@media(max-width:850px){
  .theme-contact{overflow:auto}
  .theme-contact main{height:auto;overflow:visible}
  .contact-tech{height:auto;padding-block:24px 70px}
  .contact-direct{height:auto}
  .contact-direct-main{overflow:visible}
  .contact-direct-main .contact-tech-form textarea{height:auto;min-height:150px;resize:vertical}
  .contact-toast{left:12px;right:12px;bottom:12px;width:auto}
}

@media(min-width:851px) and (max-height:720px){
  .contact-tech{padding-block:10px}
  .contact-direct-main{padding:18px 22px}
  .contact-direct-intro{padding-bottom:13px}
  .contact-direct-main .contact-tech-form{margin-top:12px}
  .contact-direct-main .contact-tech-form form{gap:9px}
  .contact-tech-form input,.contact-tech-form textarea{padding:8px 10px}
  .contact-direct-main .contact-tech-form textarea{min-height:72px}
  .contact-tech-form button{min-height:44px}
  .contact-direct-block{padding:14px}
}

/* ========================================================================== */
/* V12 — dock without handoff jump, centred contact layout and clean grow grid */
/* ========================================================================== */

/* Keep the final dock visually identical to the compressed card state. */
.pillar-dock{
  grid-template-columns:repeat(3,1fr);
  background:#070b10;
  border-bottom:1px solid rgba(255,255,255,.12);
}
.pillar-link{
  position:relative;
  display:block;
  min-width:0;
  height:100%;
  padding:0;
  color:#f6f8fc;
  opacity:.88;
  overflow:hidden;
  isolation:isolate;
  border-right:1px solid rgba(255,255,255,.12);
  transition:opacity .24s ease,transform .28s cubic-bezier(.2,.8,.2,1),filter .24s ease,box-shadow .24s ease;
}
.pillar-link:last-child{border-right:0}
.pillar-link:before{display:none!important}
.pillar-link .portal-meta{
  position:absolute;
  left:14px;
  top:50%;
  transform:translateY(-50%);
  z-index:5;
  display:block;
}
.pillar-link .portal-meta span{
  font:8px var(--mono);
  letter-spacing:.12em;
  color:#f6f8fc;
}
.pillar-link .portal-meta em{
  position:absolute;
  opacity:0;
  transform:translateX(-8px) scale(.01);
  pointer-events:none;
}
.pillar-link .portal-name{
  position:absolute;
  left:48px;
  top:50%;
  bottom:auto;
  transform:translateY(-50%);
  z-index:5;
  display:grid;
  gap:4px;
  max-width:calc(100% - 124px);
}
.pillar-link .portal-name strong{
  font-size:clamp(15px,1.25vw,18px);
  line-height:1;
  letter-spacing:-.055em;
}
.pillar-link .portal-name span{
  margin:0;
  font:8px var(--mono);
  text-transform:uppercase;
  letter-spacing:.14em;
  opacity:.68;
}
.pillar-link .think-object,
.pillar-link .build-object,
.pillar-link .grow-object{
  position:absolute;
  right:14px;
  top:50%;
  inset:auto 14px auto auto;
  width:72px;
  height:42px;
  transform:translateY(-50%);
  z-index:4;
  opacity:.98;
  pointer-events:none;
}
.pillar-link .think-object{overflow:visible}
.pillar-link .think-glow{inset:-10% auto auto 22%;width:55%;filter:blur(10px);opacity:.45}
.pillar-link .think-window-main{
  width:46px;
  height:30px;
  left:0;
  top:6px;
  border-radius:8px;
}
.pillar-link .think-window-main header{height:8px;padding:0 4px;gap:2px}
.pillar-link .think-window-main header i{width:2px;height:2px}
.pillar-link .think-window-main header span,
.pillar-link .think-window-body span,
.pillar-link .think-window-side span,
.pillar-link .think-window-side b{font-size:4px}
.pillar-link .think-window-body{padding:4px 5px}
.pillar-link .think-window-body b{font-size:5px;margin-bottom:2px}
.pillar-link .think-window-body i{width:16px;height:3px;margin-top:3px}
.pillar-link .think-window-side{
  width:24px;
  height:18px;
  right:0;
  top:0;
  border-radius:7px;
  padding:4px 4px 0;
}
.pillar-link .think-window-side i{height:2px;margin-top:2px;border-radius:3px}
.pillar-link .think-cursor{width:11px;height:11px;right:-2px;bottom:2px;font-size:7px}
.pillar-link .think-object svg{inset:0 5px 3px 0}
.pillar-link .think-object svg path,
.pillar-link .think-object svg circle{stroke-width:6px}

.pillar-link .build-screen{
  width:49px;
  height:32px;
  left:0;
  top:5px;
  border-radius:8px;
  transform:rotateY(0) rotateX(0);
}
.pillar-link .build-screen header{height:8px;padding:0 4px;gap:2px}
.pillar-link .build-screen header i{width:2px;height:2px}
.pillar-link .build-screen header span,
.pillar-link .build-screen footer{font-size:4px}
.pillar-link .build-screen .screen-grid{height:calc(100% - 16px);gap:3px;padding:4px}
.pillar-link .build-screen footer{height:8px;padding:0 4px}
.pillar-link .build-phone{
  right:2px;
  bottom:2px;
  width:16px;
  height:28px;
  border-radius:8px;
  transform:rotate(0);
  padding:6px 3px 3px;
}
.pillar-link .build-phone>i{top:2px;height:2px}
.pillar-link .build-phone b{margin-bottom:3px}
.pillar-link .build-orbit{width:38px;left:34px;top:-7px;border-width:1px}

.pillar-link .grow-object{
  width:60px;
  height:34px;
}
.pillar-link .grow-mini-kpis{display:none}
.pillar-link .grow-object svg{inset:0;width:100%;height:100%}
.pillar-link .grow-object svg .grid-line{stroke-width:3px}
.pillar-link .grow-object svg .data-line{stroke-width:7px}
.pillar-link .grow-bars{right:4px;bottom:3px;gap:2px;height:18px}
.pillar-link .grow-bars i{width:2px;border-radius:2px}

.pillar-link:hover,
.pillar-link.active{
  opacity:1;
  z-index:3;
  transform:translateY(-2px) scaleY(1.03);
  filter:saturate(1.05) brightness(1.06);
  box-shadow:0 12px 30px #0008,inset 0 -3px 0 rgba(255,255,255,.96);
}
.pillar-link:hover .portal-name strong,
.pillar-link.active .portal-name strong{font-size:clamp(16px,1.32vw,19px)}
.pillar-link:hover .think-object,
.pillar-link.active .think-object,
.pillar-link:hover .build-object,
.pillar-link.active .build-object,
.pillar-link:hover .grow-object,
.pillar-link.active .grow-object{filter:brightness(1.08)}

/* Slightly faster handoff to keep the navbar responsive once selected. */
.portal-v4 .portal-flight-card{transition-duration:var(--portal-flight-duration,1120ms)!important}
.portal-flight-card .portal-meta,
.portal-flight-card .portal-name,
.portal-flight-card .portal-arrow,
.portal-flight-card .think-object-v4,
.portal-flight-card .build-object,
.portal-flight-card .grow-object,
.portal-flight-card .portal-name strong,
.portal-flight-card .portal-name span,
.portal-flight-card .portal-meta span,
.portal-flight-card .portal-meta em{transition-duration:var(--portal-flight-duration,1120ms)!important}

/* Contact: normal-height form, centred on screen, with three info cards below. */
.theme-contact{overflow:auto}
.theme-contact main{
  min-height:calc(100svh - var(--header-h) - var(--dock-h));
  display:flex;
  align-items:center;
}
.theme-contact main:before{inset:calc(var(--header-h) + var(--dock-h)) 0 0}
.contact-tech{
  width:min(1120px,calc(100% - 64px));
  margin:auto;
  padding-block:36px;
}
.contact-direct.contact-direct-centered{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
  align-items:start;
}
.contact-direct.contact-direct-centered .contact-direct-main{
  width:min(100%,980px);
  margin-inline:auto;
  padding:28px 30px 30px;
}
.contact-direct-intro.contact-direct-intro-subtle{
  grid-template-columns:1fr;
  gap:8px;
  align-items:start;
  padding-bottom:18px;
}
.contact-direct-intro.contact-direct-intro-subtle>p{margin:0;font-size:8px;opacity:.9}
.contact-direct-intro.contact-direct-intro-subtle h1{
  font-size:clamp(42px,4.6vw,58px);
  margin:0;
}
.contact-direct-intro.contact-direct-intro-subtle>span{
  max-width:620px;
  font-size:14px;
  line-height:1.5;
  color:#b8c4d6;
}
.contact-direct-main .contact-tech-form{margin-top:20px}
.contact-direct-main .contact-tech-form form{gap:14px}
.contact-tech-form textarea{min-height:160px;resize:vertical}
.contact-direct-cards{
  width:min(100%,980px);
  margin-inline:auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.contact-direct-cards .contact-direct-block{
  min-height:auto;
  padding:18px 18px 16px;
  justify-content:flex-start;
}
.contact-direct-block-primary a + a{margin-top:8px}
.contact-direct-phone{font-size:16px!important;opacity:.96}
.contact-direct-cards .contact-direct-block>span{margin-bottom:12px}
.contact-direct-cards .contact-direct-block>a,
.contact-direct-cards .contact-direct-block>strong{
  margin-top:0;
  font-size:clamp(18px,1.45vw,23px);
}
.contact-direct-cards .contact-direct-block>p{margin-top:10px;font-size:12px;line-height:1.5}
.contact-direct-cards .contact-direct-status{justify-content:flex-start}
.contact-direct-cards .contact-direct-status small{margin-top:12px}

/* Grow: keep one continuous grid instead of a duplicated lower pattern. */
.theme-grow main,
.theme-projects.projects-grow main{
  background-image:
    radial-gradient(ellipse 70% 25% at 82% 7%,#63f1bd55 0,transparent 72%),
    radial-gradient(ellipse 68% 28% at 12% 45%,#18b88d38 0,transparent 75%),
    radial-gradient(ellipse 72% 27% at 82% 78%,#8dffb92b 0,transparent 77%),
    linear-gradient(180deg,#021a15 0%,#07513f 34%,#04362b 66%,#011612 100%)!important;
  background-size:auto,auto,auto,auto!important;
}
.theme-grow main:before,
.theme-projects.projects-grow main:before{
  opacity:.34!important;
  background-image:
    linear-gradient(#9dffd214 1px,transparent 1px),
    linear-gradient(90deg,#9dffd214 1px,transparent 1px)!important;
  background-size:54px 54px!important;
}
.theme-grow .grow-loop-v3,
.theme-projects.projects-grow .projects-page,
.theme-projects.projects-grow .projects-index{
  background-image:none!important;
}

@media(max-width:960px){
  .contact-tech{width:min(100% - 32px,1120px)}
  .contact-direct-cards{grid-template-columns:1fr}
}
@media(max-width:850px){
  .pillar-link{
    padding:0;
    transform:none!important;
    box-shadow:none!important;
  }
  .pillar-link .portal-meta{left:8px}
  .pillar-link .portal-name{left:30px;max-width:calc(100% - 36px)}
  .pillar-link .portal-name strong{font-size:14px}
  .pillar-link .portal-name span,
  .pillar-link .portal-meta em,
  .pillar-link .think-object,
  .pillar-link .build-object,
  .pillar-link .grow-object{display:none}
  .theme-contact main{display:block;min-height:0}
  .contact-tech{width:min(100% - 24px,1120px);padding-block:24px 62px}
  .contact-direct.contact-direct-centered .contact-direct-main{padding:22px 20px 22px}
  .contact-direct-intro.contact-direct-intro-subtle h1{font-size:clamp(36px,13vw,52px)}
  .contact-direct-main .contact-tech-form form{gap:12px}
  .contact-tech-form textarea{min-height:150px}
  .contact-direct-cards .contact-direct-block{padding:18px}
}

/* V12.1 — the compressed cards stay in place; no final dock replacement frame. */
.portal-flight-layer.portal-flight-dock{
  pointer-events:none;
  overflow:visible!important;
}
.portal-flight-dock .portal-flight-card{
  pointer-events:auto!important;
  cursor:pointer;
  transition-property:filter,box-shadow,transform!important;
  transition-duration:.22s!important;
  will-change:auto!important;
}
.portal-flight-dock .portal-flight-card:hover{
  filter:brightness(1.12) saturate(1.08)!important;
}
.portal-flight-dock .portal-flight-card.selected,
.portal-flight-dock .portal-flight-card[aria-current="page"]{
  box-shadow:0 12px 32px #0008,inset 0 -3px 0 rgba(255,255,255,.96)!important;
}

/* The server-rendered dock uses the same proportions as the compact state. */
.pillar-link.think{
  background:radial-gradient(circle at 74% 18%,#ff7ba4 0,transparent 28%),radial-gradient(circle at 18% 68%,#7e4dff88 0,transparent 38%),linear-gradient(155deg,#210827 0%,#522044 54%,#9b3759 100%);
}
.pillar-link.build{
  background:radial-gradient(circle at 72% 14%,#58a6ff88 0,transparent 34%),linear-gradient(155deg,#04112d 0%,#0a2c6b 55%,#1354b9 100%);
}
.pillar-link.grow{
  background:radial-gradient(circle at 80% 8%,#b5ff7880 0,transparent 31%),linear-gradient(155deg,#021b18 0%,#064839 58%,#08785b 100%);
}
.pillar-link .portal-name strong{
  font-size:21px;
  line-height:.9;
  letter-spacing:-.06em;
}
.pillar-link:hover .portal-name strong,
.pillar-link.active .portal-name strong{
  font-size:25px;
}
.pillar-link:hover,
.pillar-link.active{
  transform:translateY(-3px) scaleY(1.055);
  box-shadow:0 12px 32px #0008,inset 0 -3px 0 rgba(255,255,255,.96);
}

/* Contact stays compact and centred rather than stretching its panels vertically. */
@media(min-width:961px){
  .theme-contact main{align-items:center}
  .contact-tech{padding-block:24px}
  .contact-direct.contact-direct-centered{gap:14px}
  .contact-direct.contact-direct-centered .contact-direct-main{
    width:min(100%,940px);
    padding:24px 26px 26px;
  }
  .contact-direct-intro.contact-direct-intro-subtle{
    padding-bottom:15px;
    gap:6px;
  }
  .contact-direct-intro.contact-direct-intro-subtle h1{
    font-size:clamp(38px,3.8vw,52px);
  }
  .contact-direct-intro.contact-direct-intro-subtle>span{
    font-size:13px;
    line-height:1.45;
  }
  .contact-direct-main .contact-tech-form{margin-top:16px}
  .contact-direct-main .contact-tech-form form{gap:11px}
  .contact-tech-form input,
  .contact-tech-form textarea{padding:10px 12px}
  .contact-tech-form textarea{
    min-height:112px;
    height:112px;
    resize:none;
  }
  .contact-tech-form button{min-height:48px}
  .contact-direct-cards{
    width:min(100%,940px);
    gap:10px;
  }
  .contact-direct-cards .contact-direct-block{
    min-height:112px;
    padding:16px;
  }
  .contact-direct-cards .contact-direct-block>span{margin-bottom:8px}
  .contact-direct-cards .contact-direct-block>a,
  .contact-direct-cards .contact-direct-block>strong{
    font-size:clamp(17px,1.25vw,21px);
  }
  .contact-direct-cards .contact-direct-block>p{margin-top:7px}
}


/* ========================================================================== */
/* V13 — stable compact dock and genuinely centred contact scene               */
/* ========================================================================== */

/* Same rail height for every area: active state is width + underline only. */
.pillar-dock{
  overflow:hidden;
  padding-right:0;
}
.pillar-link,
.pillar-link:hover,
.pillar-link.active{
  height:100%;
  transform:none!important;
}
.pillar-link:hover,
.pillar-link.active{
  opacity:1;
  filter:saturate(1.05) brightness(1.06);
  box-shadow:inset 0 -3px 0 rgba(255,255,255,.98)!important;
}
.pillar-link .portal-name{
  display:flex;
  align-items:baseline;
  gap:10px;
  max-width:calc(100% - 150px);
  white-space:nowrap;
}
.pillar-link .portal-name strong,
.pillar-link:hover .portal-name strong,
.pillar-link.active .portal-name strong{
  flex:0 0 auto;
  font-size:clamp(18px,1.35vw,22px);
  line-height:1;
}
.pillar-link .portal-name span{
  flex:0 1 auto;
  margin:0;
  overflow:hidden;
  text-overflow:ellipsis;
  font-size:7px;
  line-height:1.2;
}
.pillar-link:last-child .portal-name{max-width:calc(100% - 158px)}

/* Compact, recognisable graphics that never protrude above the rail. */
.pillar-link .think-object,
.pillar-link .build-object,
.pillar-link .grow-object{
  right:22px;
  top:50%;
  width:74px;
  height:40px;
  transform:translateY(-50%)!important;
  overflow:hidden!important;
  border:1px solid rgba(106,164,216,.32);
  border-radius:10px;
  background:#07131b;
  box-shadow:0 8px 20px #0006;
}
.pillar-link:last-child .grow-object{right:28px}

.pillar-link .think-object>*{display:none!important}
.pillar-link .think-object:before,
.pillar-link .think-object:after{
  content:"";
  position:absolute;
  top:10px;
  width:28px;
  height:20px;
  border-radius:14px 14px 8px 8px;
  transform:rotate(-8deg);
}
.pillar-link .think-object:before{
  left:16px;
  background:linear-gradient(145deg,#6e78ff,#7e5cff);
  box-shadow:0 0 18px #735dff99;
}
.pillar-link .think-object:after{
  right:14px;
  background:linear-gradient(145deg,#ff84cf,#ff5d9a);
  transform:rotate(8deg);
  box-shadow:0 0 18px #ff6ba488;
}

.pillar-link .build-object>*{display:none!important}
.pillar-link .build-object:before,
.pillar-link .build-object:after{
  content:"";
  position:absolute;
  background:linear-gradient(145deg,#17366d,#081525);
  box-shadow:inset 0 0 0 1px #ffffff0d;
}
.pillar-link .build-object:before{
  left:9px;
  top:8px;
  width:43px;
  height:24px;
  border:1.5px solid #6f99ff;
  border-radius:5px;
}
.pillar-link .build-object:after{
  right:8px;
  top:5px;
  width:14px;
  height:29px;
  border:1.5px solid #75e8ff;
  border-radius:5px;
}

.pillar-link .grow-mini-kpis{display:none!important}
.pillar-link .grow-object svg{
  position:absolute!important;
  inset:6px 8px!important;
  width:58px!important;
  height:28px!important;
  margin:0!important;
  overflow:visible!important;
}
.pillar-link .grow-object .grid-line{
  stroke:#2d5660!important;
  stroke-width:3px!important;
}
.pillar-link .grow-object .data-line{
  stroke:#43d9ff!important;
  stroke-width:8px!important;
  stroke-dasharray:none!important;
  stroke-dashoffset:0!important;
  animation:none!important;
  filter:drop-shadow(0 0 5px #43d9ff)!important;
}
.pillar-link .grow-bars{
  display:none!important;
}

/* Final flight frame is pixel-compatible with the server-rendered dock. */
.portal-flight-card.portal-flight-compact,
.portal-flight-card.portal-flight-compact.selected{
  filter:none!important;
  box-shadow:none!important;
}
.portal-flight-card.portal-flight-compact.selected{
  box-shadow:inset 0 -3px 0 rgba(255,255,255,.98)!important;
}
.portal-flight-card.portal-flight-compact .portal-name{
  left:48px!important;
  top:50%!important;
  width:auto!important;
  height:auto!important;
  max-width:calc(100% - 150px)!important;
  display:flex!important;
  align-items:baseline!important;
  gap:10px!important;
  transform:translateY(-50%)!important;
  white-space:nowrap!important;
}
.portal-flight-card.portal-flight-compact .portal-name strong,
.portal-flight-card.portal-flight-compact.selected .portal-name strong{
  flex:0 0 auto;
  font-size:clamp(18px,1.35vw,22px)!important;
  line-height:1!important;
}
.portal-flight-card.portal-flight-compact .portal-name span{
  flex:0 1 auto;
  margin:0!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-size:7px!important;
  line-height:1.2!important;
}
.portal-flight-card.portal-flight-compact .think-object-v4,
.portal-flight-card.portal-flight-compact .build-object,
.portal-flight-card.portal-flight-compact .grow-object{
  left:auto!important;
  right:22px!important;
  top:50%!important;
  width:74px!important;
  height:40px!important;
  transform:translateY(-50%)!important;
  transform-origin:center!important;
  overflow:hidden!important;
  border:1px solid rgba(106,164,216,.32)!important;
  border-radius:10px!important;
  background:#07131b!important;
  box-shadow:0 8px 20px #0006!important;
}
.portal-flight-card.portal-flight-compact.portal-think .think-object>*{display:none!important}
.portal-flight-card.portal-flight-compact.portal-think .think-object:before,
.portal-flight-card.portal-flight-compact.portal-think .think-object:after{
  content:"";
  position:absolute;
  top:10px;
  width:28px;
  height:20px;
  border-radius:14px 14px 8px 8px;
}
.portal-flight-card.portal-flight-compact.portal-think .think-object:before{
  left:16px;
  background:linear-gradient(145deg,#6e78ff,#7e5cff);
  transform:rotate(-8deg);
}
.portal-flight-card.portal-flight-compact.portal-think .think-object:after{
  right:14px;
  background:linear-gradient(145deg,#ff84cf,#ff5d9a);
  transform:rotate(8deg);
}
.portal-flight-card.portal-flight-compact.portal-build .build-object>*{display:none!important}
.portal-flight-card.portal-flight-compact.portal-build .build-object:before,
.portal-flight-card.portal-flight-compact.portal-build .build-object:after{
  content:"";
  position:absolute;
  background:linear-gradient(145deg,#17366d,#081525);
}
.portal-flight-card.portal-flight-compact.portal-build .build-object:before{
  left:9px;top:8px;width:43px;height:24px;border:1.5px solid #6f99ff;border-radius:5px;
}
.portal-flight-card.portal-flight-compact.portal-build .build-object:after{
  right:8px;top:5px;width:14px;height:29px;border:1.5px solid #75e8ff;border-radius:5px;
}
.portal-flight-card.portal-flight-compact.portal-grow .grow-mini-kpis,
.portal-flight-card.portal-flight-compact.portal-grow .grow-bars{display:none!important}
.portal-flight-card.portal-flight-compact.portal-grow .grow-object svg{
  position:absolute!important;inset:6px 8px!important;width:58px!important;height:28px!important;margin:0!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grid-line{stroke:#2d5660!important;stroke-width:3px!important}
.portal-flight-card.portal-flight-compact.portal-grow .data-line{
  stroke:#43d9ff!important;stroke-width:8px!important;stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important;
}

/* Contact: one compact block centred inside the available viewport. */
html:has(body.theme-contact){overflow:hidden}
body.theme-contact{
  height:100svh;
  overflow:hidden!important;
}
.theme-contact main{
  height:calc(100svh - var(--header-h) - var(--dock-h))!important;
  min-height:0!important;
  padding:0!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.theme-contact main:before{inset:calc(var(--header-h) + var(--dock-h)) 0 0!important}
.theme-contact main>.contact-toast{position:fixed!important}
.theme-contact .contact-tech{
  width:min(1060px,calc(100% - 48px))!important;
  height:auto!important;
  max-height:100%!important;
  margin:0!important;
  padding:12px 0!important;
  display:block!important;
}
.theme-contact .contact-direct.contact-direct-centered{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:12px!important;
  height:auto!important;
  min-height:0!important;
  align-items:start!important;
}
.theme-contact .contact-direct-main{
  width:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:20px 22px 22px!important;
  overflow:visible!important;
}
.theme-contact .contact-direct-intro.contact-direct-intro-subtle{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  grid-template-areas:"kicker kicker" "title copy"!important;
  align-items:end!important;
  gap:5px 24px!important;
  padding-bottom:13px!important;
}
.theme-contact .contact-direct-intro>p{grid-area:kicker!important}
.theme-contact .contact-direct-intro h1{
  grid-area:title!important;
  font-size:clamp(34px,3vw,46px)!important;
  white-space:nowrap;
}
.theme-contact .contact-direct-intro>span{
  grid-area:copy!important;
  max-width:520px!important;
  justify-self:end;
  font-size:12px!important;
  line-height:1.4!important;
}
.theme-contact .contact-direct-main .contact-tech-form{margin-top:13px!important}
.theme-contact .contact-direct-main .contact-tech-form form{gap:9px!important}
.theme-contact .contact-tech-form label{gap:4px!important}
.theme-contact .contact-tech-form input,
.theme-contact .contact-tech-form textarea{padding:9px 11px!important}
.theme-contact .contact-tech-form textarea{
  height:100px!important;
  min-height:100px!important;
  resize:none!important;
}
.theme-contact .contact-tech-form button{min-height:46px!important}
.theme-contact .contact-direct-cards{
  width:100%!important;
  margin:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:10px!important;
  position:static!important;
}
.theme-contact .contact-direct-cards .contact-direct-block{
  min-height:92px!important;
  padding:15px!important;
  justify-content:flex-start!important;
}
.theme-contact .contact-direct-cards .contact-direct-block>span{margin:0 0 9px!important}
.theme-contact .contact-direct-cards .contact-direct-block>a,
.theme-contact .contact-direct-cards .contact-direct-block>strong{
  margin:0!important;
  font-size:clamp(17px,1.3vw,21px)!important;
  line-height:1.1!important;
}
.theme-contact .contact-direct-empty{color:#8493a9;font-weight:600}

@media(max-width:850px){
  html:has(body.theme-contact){overflow:auto}
  body.theme-contact{height:auto;overflow:auto!important}
  .theme-contact main{height:auto!important;min-height:calc(100svh - var(--header-h) - var(--dock-h))!important;overflow:visible!important;display:block!important}
  .theme-contact .contact-tech{width:min(1060px,calc(100% - 24px))!important;padding:24px 0 60px!important}
  .theme-contact .contact-direct-intro.contact-direct-intro-subtle{grid-template-columns:1fr!important;grid-template-areas:"kicker" "title" "copy"!important;align-items:start!important}
  .theme-contact .contact-direct-intro>span{justify-self:start}
  .theme-contact .contact-direct-cards{grid-template-columns:1fr!important}
  .pillar-link .portal-name{left:30px;max-width:calc(100% - 38px)}
  .pillar-link .portal-name span,
  .pillar-link .think-object,
  .pillar-link .build-object,
  .pillar-link .grow-object{display:none!important}
}

/* ========================================================================== */
/* V14 — compact contact rhythm, uppercase dock and continuous portal visuals  */
/* ========================================================================== */

/* Navbar typography and a slightly calmer visual weight. */
.pillar-link .portal-name strong,
.pillar-link:hover .portal-name strong,
.pillar-link.active .portal-name strong,
.portal-flight-card.portal-flight-compact .portal-name strong,
.portal-flight-card.portal-flight-compact.selected .portal-name strong{
  text-transform:uppercase;
}
.pillar-link .portal-name span,
.portal-flight-card.portal-flight-compact .portal-name span{
  font-size:9px!important;
  letter-spacing:.12em!important;
  opacity:.76;
}

/* Build devices: more breathing room inside the dark frame. */
.pillar-link .build-object:before,
.portal-flight-card.portal-flight-visual-ready.portal-build .build-object:before{
  left:11px!important;
  top:9px!important;
  width:39px!important;
  height:20px!important;
}
.pillar-link .build-object:after,
.portal-flight-card.portal-flight-visual-ready.portal-build .build-object:after{
  right:10px!important;
  top:7px!important;
  width:12px!important;
  height:24px!important;
}

/* During the flight, retain each card's real artwork while it physically
   shrinks. The compact dark icon only appears once the object is already
   rail-sized, preventing the three large identical grey panels. */
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready) .think-object-v4,
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready) .build-object,
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready) .grow-object{
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-think .think-object>*{
  display:block!important;
}
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-think .think-object:before,
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-think .think-object:after,
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-build .build-object:before,
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-build .build-object:after{
  content:none!important;
}
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-build .build-object>*{
  display:block!important;
}
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-grow .grow-mini-kpis,
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-grow .grow-bars{
  display:flex!important;
}
.portal-flight-card.portal-flight-compact:not(.portal-flight-visual-ready).portal-grow .grow-object svg{
  inset:0!important;
  width:100%!important;
  height:100%!important;
}
.portal-flight-card.portal-flight-visual-ready .think-object-v4,
.portal-flight-card.portal-flight-visual-ready .build-object,
.portal-flight-card.portal-flight-visual-ready .grow-object{
  animation:portalCompactVisualIn .2s ease both;
}
.portal-flight-card.portal-flight-visual-ready.portal-think .think-object:before,
.portal-flight-card.portal-flight-visual-ready.portal-think .think-object:after,
.portal-flight-card.portal-flight-visual-ready.portal-build .build-object:before,
.portal-flight-card.portal-flight-visual-ready.portal-build .build-object:after{
  animation:portalCompactVisualIn .2s ease both;
}
@keyframes portalCompactVisualIn{
  from{opacity:0;filter:blur(3px)}
  to{opacity:1;filter:none}
}

/* Contact: normal form spacing without losing the single-screen composition. */
.theme-contact .contact-direct-main{
  padding:18px 22px 20px!important;
}
.theme-contact .contact-direct-main .contact-tech-form{
  margin-top:15px!important;
}
.theme-contact .contact-direct-main .contact-tech-form form{
  gap:13px!important;
}
.theme-contact .contact-tech-form label{
  gap:7px!important;
}
.theme-contact .contact-tech-form label>span{
  display:block;
  line-height:1.2;
}
.theme-contact .contact-tech-form input,
.theme-contact .contact-tech-form textarea{
  padding:9px 11px!important;
}
.theme-contact .contact-tech-form textarea{
  height:88px!important;
  min-height:88px!important;
}
.theme-contact .contact-direct-cards .contact-direct-block{
  min-height:78px!important;
  padding:12px 14px!important;
}
.theme-contact .contact-direct-cards .contact-direct-block>span{
  margin-bottom:7px!important;
}
.theme-contact .contact-direct-cards .contact-direct-block>a,
.theme-contact .contact-direct-cards .contact-direct-block>strong{
  font-size:clamp(16px,1.2vw,20px)!important;
}

@media(max-height:700px) and (min-width:851px){
  .theme-contact .contact-tech{padding-block:6px!important}
  .theme-contact .contact-direct-main{padding:15px 20px 17px!important}
  .theme-contact .contact-direct-intro.contact-direct-intro-subtle{padding-bottom:10px!important}
  .theme-contact .contact-direct-main .contact-tech-form{margin-top:11px!important}
  .theme-contact .contact-direct-main .contact-tech-form form{gap:10px!important}
  .theme-contact .contact-tech-form label{gap:5px!important}
  .theme-contact .contact-tech-form textarea{height:76px!important;min-height:76px!important}
  .theme-contact .contact-direct-cards .contact-direct-block{min-height:70px!important;padding:10px 13px!important}
}


/* ========================================================================== */
/* V15 — overlapped portal crossfade and natural contact spacing              */
/* ========================================================================== */

/*
 * The original portal artwork and the compact rail icon overlap for part of
 * the journey. Nothing is removed with display:none while the card is moving,
 * so there is no empty frame between both visual states.
 */
.portal-flight-card.portal-flight-compact.portal-think .think-object>* ,
.portal-flight-card.portal-flight-compact.portal-build .build-object>*{
  display:block!important;
  opacity:1;
  transition:opacity .34s cubic-bezier(.22,.78,.18,1)!important;
}
.portal-flight-card.portal-flight-compact.portal-think.portal-flight-crossfade .think-object>* ,
.portal-flight-card.portal-flight-compact.portal-build.portal-flight-crossfade .build-object>*{
  opacity:0!important;
}

.portal-flight-card.portal-flight-compact.portal-think .think-object:before,
.portal-flight-card.portal-flight-compact.portal-think .think-object:after,
.portal-flight-card.portal-flight-compact.portal-build .build-object:before,
.portal-flight-card.portal-flight-compact.portal-build .build-object:after{
  content:""!important;
  opacity:0;
  filter:blur(3px);
  transition:opacity .34s cubic-bezier(.22,.78,.18,1),filter .34s cubic-bezier(.22,.78,.18,1)!important;
}
.portal-flight-card.portal-flight-compact.portal-think.portal-flight-crossfade .think-object:before,
.portal-flight-card.portal-flight-compact.portal-think.portal-flight-crossfade .think-object:after,
.portal-flight-card.portal-flight-compact.portal-build.portal-flight-crossfade .build-object:before,
.portal-flight-card.portal-flight-compact.portal-build.portal-flight-crossfade .build-object:after{
  opacity:1;
  filter:none;
}

/* Keep the improved Build spacing during the whole overlap, not only at the end. */
.portal-flight-card.portal-flight-compact.portal-build .build-object:before{
  left:11px!important;
  top:9px!important;
  width:39px!important;
  height:20px!important;
}
.portal-flight-card.portal-flight-compact.portal-build .build-object:after{
  right:10px!important;
  top:7px!important;
  width:12px!important;
  height:24px!important;
}

/* Grow is one continuous chart: its own line shrinks into the rail graphic. */
.portal-flight-card.portal-flight-compact.portal-grow .grow-object{
  opacity:1!important;
  filter:none!important;
  animation:none!important;
  transition:left var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             top var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             width var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             height var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             transform var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             border-color .34s ease,background-color .34s ease,box-shadow .34s ease!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grow-mini-kpis,
.portal-flight-card.portal-flight-compact.portal-grow .grow-bars{
  display:flex!important;
  opacity:1;
  transition:opacity .34s cubic-bezier(.22,.78,.18,1)!important;
}
.portal-flight-card.portal-flight-compact.portal-grow.portal-flight-crossfade .grow-mini-kpis,
.portal-flight-card.portal-flight-compact.portal-grow.portal-flight-crossfade .grow-bars{
  opacity:0!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grow-object svg{
  display:block!important;
  opacity:1!important;
  filter:none!important;
  animation:none!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grid-line,
.portal-flight-card.portal-flight-compact.portal-grow .data-line{
  transition:stroke .34s ease,stroke-width .34s ease,filter .34s ease!important;
}
.portal-flight-card.portal-flight-compact.portal-grow:not(.portal-flight-visual-ready) .grid-line{
  stroke:#25505c!important;
  stroke-width:1px!important;
}
.portal-flight-card.portal-flight-compact.portal-grow:not(.portal-flight-visual-ready) .data-line{
  stroke:url(#portalGrow)!important;
  stroke-width:4px!important;
  filter:drop-shadow(0 0 7px #43d9ff88)!important;
}
.portal-flight-card.portal-flight-visual-ready.portal-grow .grow-object{
  animation:none!important;
  opacity:1!important;
  filter:none!important;
}

/* Disable the old one-shot reveal: the overlap above already performs it. */
.portal-flight-card.portal-flight-visual-ready .think-object-v4,
.portal-flight-card.portal-flight-visual-ready .build-object,
.portal-flight-card.portal-flight-visual-ready .grow-object,
.portal-flight-card.portal-flight-visual-ready.portal-think .think-object:before,
.portal-flight-card.portal-flight-visual-ready.portal-think .think-object:after,
.portal-flight-card.portal-flight-visual-ready.portal-build .build-object:before,
.portal-flight-card.portal-flight-visual-ready.portal-build .build-object:after{
  animation:none!important;
}

/* Contact: clear label/field rhythm, a little air before Send, centred cards. */
.theme-contact .contact-direct-main .contact-tech-form{
  margin-top:18px!important;
}
.theme-contact .contact-direct-main .contact-tech-form form{
  gap:17px!important;
}
.theme-contact .contact-tech-form label{
  gap:9px!important;
}
.theme-contact .contact-tech-form label>span{
  margin:0!important;
  line-height:1!important;
}
.theme-contact .contact-tech-form button{
  margin-top:3px!important;
}
.theme-contact .contact-direct-cards .contact-direct-block{
  justify-content:center!important;
}
.theme-contact .contact-direct-cards .contact-direct-block>span{
  margin:0 0 8px!important;
}

@media(max-height:700px) and (min-width:851px){
  .theme-contact .contact-direct-main .contact-tech-form{margin-top:13px!important}
  .theme-contact .contact-direct-main .contact-tech-form form{gap:13px!important}
  .theme-contact .contact-tech-form label{gap:7px!important}
  .theme-contact .contact-tech-form button{margin-top:1px!important}
}

/* Ensure the compact pseudo-artwork exists from the first crossfade frame. */
.portal-flight-card.portal-flight-compact.portal-flight-crossfade.portal-think .think-object:before,
.portal-flight-card.portal-flight-compact.portal-flight-crossfade.portal-think .think-object:after,
.portal-flight-card.portal-flight-compact.portal-flight-crossfade.portal-build .build-object:before,
.portal-flight-card.portal-flight-compact.portal-flight-crossfade.portal-build .build-object:after{
  content:""!important;
}


/* ========================================================================== */
/* V16 — compositor-safe dock handoff and 30 px contact rhythm                 */
/* ========================================================================== */

/*
 * The compact visual now reaches its final appearance through the existing
 * crossfade class. No second "visual ready" state is applied near the end,
 * eliminating the first of the two late repaints.
 */
.portal-flight-card.portal-flight-compact .think-object-v4,
.portal-flight-card.portal-flight-compact .build-object,
.portal-flight-card.portal-flight-compact .grow-object{
  transition:left var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             top var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             width var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             height var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             transform var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             border-color .34s cubic-bezier(.22,.78,.18,1),
             background-color .34s cubic-bezier(.22,.78,.18,1),
             box-shadow .34s cubic-bezier(.22,.78,.18,1)!important;
}
.portal-flight-card.portal-flight-compact:not(.portal-flight-crossfade) .think-object-v4,
.portal-flight-card.portal-flight-compact:not(.portal-flight-crossfade) .build-object,
.portal-flight-card.portal-flight-compact:not(.portal-flight-crossfade) .grow-object{
  background-color:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
}
.portal-flight-card.portal-flight-compact.portal-flight-crossfade .think-object-v4,
.portal-flight-card.portal-flight-compact.portal-flight-crossfade .build-object,
.portal-flight-card.portal-flight-compact.portal-flight-crossfade .grow-object{
  background-color:#07131b!important;
  border-color:rgba(106,164,216,.32)!important;
  box-shadow:0 8px 20px #0006!important;
}

/* Grow changes the stroke itself during the same overlap, rather than through
   a late class swap that briefly repainted the whole card. */
.portal-flight-card.portal-flight-compact.portal-grow:not(.portal-flight-crossfade) .grid-line{
  stroke:#25505c!important;
  stroke-width:1px!important;
}
.portal-flight-card.portal-flight-compact.portal-grow:not(.portal-flight-crossfade) .data-line{
  stroke:url(#portalGrow)!important;
  stroke-width:4px!important;
  filter:drop-shadow(0 0 7px #43d9ff88)!important;
}
.portal-flight-card.portal-flight-compact.portal-grow.portal-flight-crossfade .grid-line{
  stroke:#2d5660!important;
  stroke-width:3px!important;
}
.portal-flight-card.portal-flight-compact.portal-grow.portal-flight-crossfade .data-line{
  stroke:#43d9ff!important;
  stroke-width:8px!important;
  filter:drop-shadow(0 0 5px #43d9ff)!important;
}

/* The real rail is revealed under the already-finished clone, and the clone
   then fades only through opacity. This prevents Chrome from re-rasterising
   all text and artwork on a single frame when the temporary layer disappears. */
.pillar-dock.portal-dock-handoff-ready{
  visibility:visible!important;
  opacity:1!important;
}
.portal-flight-layer.portal-flight-handoff .portal-flight-card{
  opacity:0!important;
  transition:opacity 120ms linear!important;
}

/* Requested form rhythm. */
.theme-contact .contact-direct-main .contact-tech-form form{
  gap:30px!important;
}

@media(max-height:700px) and (min-width:851px){
  .theme-contact .contact-direct-main .contact-tech-form form{
    gap:30px!important;
  }
}

/* ========================================================================== */
/* V17 — compact project index and a neutral project rail                     */
/* ========================================================================== */

/* The index starts with copy, then filters and work. No decorative colour
   cards compete with the projects themselves. */
.projects-hero{
  min-height:0!important;
  display:block!important;
  padding-block:42px 20px!important;
}
.projects-hero-copy{
  max-width:820px;
}
.projects-hero-copy>p{
  margin:0 0 12px;
}
.projects-hero-copy h1{
  font-size:clamp(42px,4.8vw,76px)!important;
  line-height:.92!important;
  margin:0 0 16px!important;
}
.projects-hero-copy>span{
  max-width:720px!important;
  font-size:15px!important;
  line-height:1.55;
}
.projects-spectrum{display:none!important}
.projects-index{
  padding-block:12px 100px!important;
}
.project-filters{
  margin-bottom:24px!important;
}

/* A denser three-column catalogue prevents every case study from reading as
   a full-width hero card. */
.portfolio-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
  margin-top:24px!important;
}
.portfolio-card{
  border-radius:18px!important;
}
.portfolio-card-media{
  aspect-ratio:16/9!important;
}
.portfolio-card-media>strong{
  font-size:clamp(54px,5vw,74px)!important;
}
.portfolio-card-copy{
  padding:17px 18px 19px!important;
}
.portfolio-card-copy>div{
  gap:12px!important;
  font-size:8px!important;
}
.portfolio-card-copy h3{
  font-size:clamp(25px,2.35vw,36px)!important;
  margin:18px 0 10px!important;
}
.portfolio-card-copy p{
  font-size:14px;
  line-height:1.5;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

@media(max-width:1100px){
  .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:700px){
  .projects-hero{padding-block:34px 16px!important}
  .projects-index{padding-block:10px 70px!important}
  .portfolio-grid{grid-template-columns:1fr!important}
}

/* ========================================================================== */
/* V18 — cleaner project flow, private /0501 panel and interactive portal art */
/* ========================================================================== */

/* Projects belong only to the portfolio index, never inside Think/Build/Grow. */
.projects-page{
  min-height:0!important;
}
.projects-index{
  padding-block:12px 24px!important;
}

/* Pillar-coloured project labels. */
.portfolio-think .portfolio-card-media>span{
  color:#fff2fb;
  background:rgba(150,38,102,.92);
  border-color:#ff78b9;
  box-shadow:0 8px 24px rgba(126,24,84,.32);
}
.portfolio-build .portfolio-card-media>span{
  color:#f1f7ff;
  background:rgba(20,76,171,.94);
  border-color:#6fa5ff;
  box-shadow:0 8px 24px rgba(17,72,168,.32);
}
.portfolio-grow .portfolio-card-media>span{
  color:#effff9;
  background:rgba(8,112,82,.94);
  border-color:#53e7b2;
  box-shadow:0 8px 24px rgba(4,94,68,.32);
}

/* Project detail: compact top rhythm with a clear action at the right. */
.project-top{
  padding-top:28px!important;
}
.project-top-actions{
  display:flex;
  justify-content:flex-end;
  margin-bottom:12px;
}
.project-back-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:9px 15px;
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;
  font:9px var(--mono);
  text-transform:uppercase;
  letter-spacing:.08em;
  transition:background .22s ease,color .22s ease,border-color .22s ease,transform .22s ease;
}
.project-back-button:hover{
  background:#fff;
  color:#090b10;
  border-color:#fff;
  transform:translateY(-2px);
}
.project-header{
  padding:38px 0 48px!important;
}

/* Contact cards: stronger key data and an explicit WhatsApp marker. */
.contact-direct-email,
.contact-direct-phone{
  font-weight:800!important;
}
.contact-direct-email strong,
.contact-direct-phone strong{
  font-weight:800;
}
.contact-direct-phone{
  display:flex!important;
  align-items:center;
  gap:7px;
  width:max-content;
  max-width:100%;
}
.contact-whatsapp-emoji{
  display:inline-grid;
  place-items:center;
  flex:0 0 auto;
  width:23px;
  height:23px;
  margin:0!important;
  border-radius:50%;
  background:#25d366;
  font-size:13px!important;
  line-height:1;
  filter:saturate(1.08);
  box-shadow:0 0 0 1px rgba(255,255,255,.18),0 6px 16px rgba(37,211,102,.22);
}

/* Think: abstract composition instead of the literal Concept/Form labels. */
.think-abstract-board{
  overflow:hidden;
}
.think-abstract-board .think-abstract-orb{
  position:absolute;
  left:49%;
  top:48%;
  width:31%;
  aspect-ratio:1;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:linear-gradient(145deg,#ff72ba,#6f7dff 58%,#75eaff);
  box-shadow:0 0 52px rgba(112,126,255,.4);
}
.think-abstract-board .think-abstract-line{
  position:absolute;
  display:block;
  height:2px;
  border-radius:999px;
  background:linear-gradient(90deg,transparent,#77e9ff 20% 80%,transparent);
  transform-origin:left center;
}
.think-abstract-board .line-a{
  left:12%;
  top:33%;
  width:72%;
  transform:rotate(-9deg);
}
.think-abstract-board .line-b{
  left:18%;
  top:69%;
  width:65%;
  transform:rotate(12deg);
  opacity:.62;
}
.think-abstract-board .think-abstract-node{
  position:absolute;
  display:block;
  width:11px;
  height:11px;
  border:2px solid #ff73b9;
  border-radius:50%;
  background:#0d1422;
  box-shadow:0 0 18px rgba(255,112,184,.45);
}
.think-abstract-board .node-a{left:14%;top:27%}
.think-abstract-board .node-b{right:13%;top:40%;border-color:#76eaff}
.think-abstract-board .node-c{left:28%;bottom:16%;border-color:#7f82ff}
.think-idea-card{
  display:grid!important;
  place-items:center!important;
  grid-template:1fr/1fr!important;
  padding:12px!important;
}
.think-bulb{
  width:min(68%,92px);
  height:auto;
  overflow:visible;
  filter:drop-shadow(0 12px 24px rgba(0,0,0,.4));
}
.think-bulb-rays path,
.think-bulb-glass,
.think-bulb-filament,
.think-bulb-base{
  fill:none;
  stroke:#8797b9;
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:stroke .35s ease,fill .35s ease,opacity .35s ease,filter .35s ease,transform .35s ease;
}
.think-bulb-rays{
  opacity:.14;
  transform-origin:60px 67px;
}
.think-bulb-filament{stroke-width:4}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb-glass{
  fill:rgba(255,222,86,.22);
  stroke:#ffe56f;
  filter:drop-shadow(0 0 13px #ffd85e) drop-shadow(0 0 28px rgba(255,211,73,.7));
}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb-filament,
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb-base,
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb-rays path{
  stroke:#ffe56f;
}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb-rays{
  opacity:1;
  animation:thinkBulbPulse .9s ease-in-out infinite alternate;
}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb{
  animation:thinkBulbFloat 1.15s cubic-bezier(.2,.8,.2,1) infinite alternate;
}
@keyframes thinkBulbPulse{
  from{transform:scale(.94);filter:drop-shadow(0 0 3px rgba(255,225,101,.35))}
  to{transform:scale(1.05);filter:drop-shadow(0 0 9px rgba(255,225,101,.95))}
}
@keyframes thinkBulbFloat{
  from{transform:translateY(3px) rotate(-1deg)}
  to{transform:translateY(-5px) rotate(1deg)}
}

/* Build: code is typed inside the large blue panel on hover. */
.build-code-panel:after{
  display:none!important;
}
.build-code-lines{
  position:absolute;
  inset:12% 9%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:9%;
  overflow:hidden;
}
.build-code-lines i{
  display:block;
  width:max-content;
  max-width:100%;
  overflow:hidden;
  white-space:nowrap;
  color:#d9f7ff;
  font:clamp(5px,.52vw,9px)/1.2 var(--mono);
  font-style:normal;
  letter-spacing:.01em;
  opacity:0;
  clip-path:inset(0 100% 0 0);
  text-shadow:0 0 8px rgba(116,232,255,.42);
}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i{
  animation:buildCodeType 2.45s steps(24,end) infinite;
}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i:nth-child(2){animation-delay:.24s}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i:nth-child(3){animation-delay:.48s}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i:nth-child(4){animation-delay:.72s}
@keyframes buildCodeType{
  0%,8%{opacity:0;clip-path:inset(0 100% 0 0)}
  14%{opacity:1}
  48%,82%{opacity:1;clip-path:inset(0 0 0 0)}
  100%{opacity:0;clip-path:inset(0 0 0 0)}
}

@media(max-width:850px){
  .project-top{padding-top:20px!important}
  .project-top-actions{margin-bottom:4px}
  .project-header{padding:28px 0 38px!important}
  .projects-index{padding-bottom:36px!important}
}

/* Bulb SVG must opt out of the generic route-line SVG rules used by Think. */
.think-object-v4 .think-bulb{
  position:static!important;
  inset:auto!important;
  width:min(68%,92px)!important;
  height:auto!important;
  overflow:visible!important;
}
.think-object-v4 .think-bulb path{
  fill:none;
  stroke:#8797b9;
  stroke-width:5;
  stroke-linecap:round;
  stroke-linejoin:round;
  stroke-dasharray:none!important;
  filter:none;
}
.think-object-v4 .think-bulb .think-bulb-glass{
  fill:rgba(117,139,183,.035);
}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb .think-bulb-glass{
  fill:rgba(255,222,86,.22)!important;
  stroke:#ffe56f!important;
  filter:drop-shadow(0 0 13px #ffd85e) drop-shadow(0 0 28px rgba(255,211,73,.7))!important;
}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb .think-bulb-filament,
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb .think-bulb-base,
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb .think-bulb-rays path{
  stroke:#ffe56f!important;
}

/* Make the idea turning on unmistakable without losing the minimal language. */
.think-idea-card:before{
  content:"";
  position:absolute;
  inset:16%;
  border-radius:50%;
  background:radial-gradient(circle,rgba(255,229,111,.72) 0,rgba(255,211,73,.24) 34%,transparent 72%);
  opacity:0;
  transform:scale(.72);
  filter:blur(8px);
  transition:opacity .35s ease,transform .48s cubic-bezier(.2,.8,.2,1);
}
.think-idea-card .think-bulb{position:relative!important;z-index:1}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-idea-card:before{
  opacity:1;
  transform:scale(1.15);
}
.portal-v4:not(.portal-flight-layer) .portal-think:hover .think-bulb .think-bulb-glass{
  fill:rgba(255,229,111,.36)!important;
}
.contact-direct-empty{
  display:flex!important;
  align-items:center;
  gap:7px;
}

/* ========================================================================== */
/* V19 — contact actions, aligned project header and visible Build code       */
/* ========================================================================== */

/* Contact: clean direct links and a real WhatsApp mark after the number. */
.contact-direct-email,
.contact-direct-phone{
  text-decoration:none;
}
.contact-direct-phone,
.contact-direct-empty{
  display:inline-flex!important;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
}
.contact-whatsapp-icon{
  display:block;
  flex:0 0 auto;
  width:22px;
  height:22px;
  overflow:visible;
  filter:drop-shadow(0 5px 10px rgba(37,211,102,.2));
}
.contact-whatsapp-icon .whatsapp-bubble{fill:#25d366}
.contact-whatsapp-icon .whatsapp-phone{fill:#fff}

/* Project detail: category and back action share the same visual baseline. */
.project-top{
  padding-top:22px!important;
}
.project-header{
  grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr)!important;
  column-gap:80px!important;
  row-gap:22px!important;
  padding:16px 0 46px!important;
}
.project-header-kicker{
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-width:0;
}
.project-header-kicker>span{
  font:9px var(--mono);
  text-transform:none;
}
.project-header-title{
  min-width:0;
}
.project-header-title h1{
  margin:0!important;
}
.project-header>p{
  margin:0;
  align-self:end;
}
.project-back-button{
  flex:0 0 auto;
}
.project-navigation{
  grid-template-columns:1fr 1fr!important;
}

/* Build: the blue product panel becomes a small live code editor on hover. */
.build-code-panel{
  isolation:isolate;
  background:
    linear-gradient(180deg,rgba(104,145,255,.14),transparent 36%),
    linear-gradient(145deg,#3159c9 0%,#1c347d 48%,#111a35 100%)!important;
}
.build-code-panel:before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  background:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);
  background-size:18px 18px;
  opacity:.55;
  pointer-events:none;
}
.build-code-lines{
  inset:11% 8%!important;
  z-index:2;
  justify-content:center;
  gap:10%!important;
}
.build-code-lines i{
  position:relative;
  width:0;
  max-width:100%;
  min-height:1.25em;
  overflow:hidden;
  white-space:nowrap;
  color:#effbff!important;
  font:clamp(7px,.72vw,12px)/1.25 var(--mono)!important;
  font-style:normal;
  font-weight:600;
  letter-spacing:-.01em;
  opacity:0;
  clip-path:none!important;
  text-shadow:0 0 10px rgba(117,232,255,.52);
}
.build-code-lines i span{
  color:#79efff;
}
.build-code-caret{
  position:absolute;
  left:8%;
  bottom:8%;
  width:1px;
  height:11%;
  background:#83f3ff;
  opacity:0;
  box-shadow:0 0 9px #74e8ff;
}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i{
  animation:buildCodeWriteV19 3.2s steps(25,end) infinite!important;
}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i:nth-child(2){animation-delay:.32s!important}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i:nth-child(3){animation-delay:.64s!important}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-lines i:nth-child(4){animation-delay:.96s!important}
.portal-v4:not(.portal-flight-layer) .portal-build:hover .build-code-caret{
  animation:buildCodeCaretV19 .72s steps(1,end) infinite;
}
@keyframes buildCodeWriteV19{
  0%,8%{width:0;opacity:0}
  12%{opacity:1}
  42%,82%{width:100%;opacity:1}
  94%,100%{width:100%;opacity:0}
}
@keyframes buildCodeCaretV19{
  0%,46%{opacity:1}
  47%,100%{opacity:0}
}

@media(max-width:850px){
  .project-header{
    grid-template-columns:1fr!important;
    row-gap:20px!important;
    padding:12px 0 36px!important;
  }
  .project-header-kicker{grid-column:1;gap:14px}
  .project-back-button{min-height:34px;padding:8px 11px;font-size:8px}
  .project-navigation{grid-template-columns:1fr 1fr!important}
}


/* ========================================================================== */
/* V20 — continuous Grow flight, complete project canvas and working /0501   */
/* ========================================================================== */

/* The project canvas always covers the full space below the fixed header and
   sticky area rail. This removes the exposed black body strip on short lists. */
.theme-projects main{
  min-height:calc(100svh - var(--header-h) - var(--dock-h));
}
.theme-projects .projects-page{
  min-height:calc(100svh - var(--header-h) - var(--dock-h))!important;
}

/* Grow uses the SVG already visible in the large card. Its exact starting
   geometry is captured by JS, then the same element moves and scales into the
   final rail icon instead of being replaced by KPI boxes or bar miniatures. */
.portal-flight-card.portal-grow .grow-object svg{
  transform:none!important;
  transform-origin:center!important;
  transition:left var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             top var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             width var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             height var(--portal-flight-detail-duration,1075ms) cubic-bezier(.45,0,.55,1),
             stroke .34s cubic-bezier(.22,.78,.18,1),
             stroke-width .34s cubic-bezier(.22,.78,.18,1),
             filter .34s cubic-bezier(.22,.78,.18,1)!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grow-object svg{
  position:absolute!important;
  left:8px!important;
  top:6px!important;
  right:auto!important;
  bottom:auto!important;
  width:58px!important;
  height:28px!important;
  margin:0!important;
  opacity:1!important;
}
.portal-flight-card.portal-grow .grow-mini-kpis,
.portal-flight-card.portal-grow .grow-bars{
  opacity:1;
  transition:opacity 360ms cubic-bezier(.22,.78,.18,1)!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grow-mini-kpis{
  display:grid!important;
  opacity:0!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grow-bars{
  display:flex!important;
  opacity:0!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .grid-line{
  stroke:#2d5660!important;
  stroke-width:3px!important;
}
.portal-flight-card.portal-flight-compact.portal-grow .data-line{
  stroke:#43d9ff!important;
  stroke-width:8px!important;
  stroke-dasharray:none!important;
  stroke-dashoffset:0!important;
  animation:none!important;
  filter:drop-shadow(0 0 5px #43d9ff)!important;
}

/* ========================================================================== */
/* V21 — responsive UX/UI audit: mobile, tablet, touch and safe-area support  */
/* ========================================================================== */
html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:calc(var(--header-h) + var(--dock-h) + 18px);
}
body{
  overflow-x:clip;
}
main,
main>*,
.section-shell,
.portal-grid,
.portal-card,
.pillar-link,
.project-header>*,
.project-content>*,
.contact-direct>*,
.about-tech-hero>*,
.think-v4-hero>*,
.build-v3-hero>*,
.grow-v3-hero>*{
  min-width:0;
}
img,video,canvas{max-width:100%}
h1,h2,h3,p,a,strong,span,small,li,figcaption{
  overflow-wrap:anywhere;
}
button,input,select,textarea{
  max-width:100%;
}
:where(a,button,input,select,textarea,summary):focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}
.site-signature,
.menu-toggle{
  min-width:44px;
  min-height:44px;
}
.site-signature{display:flex;align-items:center}
.skip-link{min-height:44px;display:flex;align-items:center}

@media(max-width:1024px){
  .section-shell{width:min(100% - 32px,var(--shell))}
  .think-v4-hero,.build-v3-hero,.grow-v3-hero{
    gap:clamp(28px,5vw,54px);
  }
  .portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .project-header{column-gap:clamp(28px,5vw,60px)!important}
  .project-content{gap:clamp(34px,6vw,72px)}
  .legal-page{padding-bottom:80px}
  .legal-copy{max-width:760px}
}

@media(max-width:850px){
  html{scroll-padding-top:calc(var(--header-h) + var(--dock-h) + 12px)}
  body.public-nav-open{overflow:hidden!important;touch-action:none}
  .site-header{
    padding-left:max(14px,env(safe-area-inset-left));
    padding-right:max(14px,env(safe-area-inset-right));
  }
  .site-signature{padding:0 4px}
  .menu-toggle{
    width:48px;
    height:48px;
    margin-right:-7px;
    display:grid;
    place-items:center;
    touch-action:manipulation;
  }
  .main-nav{
    padding:24px max(18px,env(safe-area-inset-right)) calc(32px + env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .main-nav a{
    display:flex;
    align-items:center;
    min-height:60px;
    padding:12px 0;
  }
  .pillar-dock{
    padding-left:env(safe-area-inset-left);
    padding-right:env(safe-area-inset-right);
  }
  .pillar-link{touch-action:manipulation}
  .pillar-link .portal-name{
    left:clamp(25px,8vw,34px);
    max-width:calc(100% - clamp(31px,10vw,42px));
  }
  .pillar-link .portal-name strong{
    font-size:clamp(13px,4vw,16px)!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .think-v4-copy h1,.build-v3-copy h1,.grow-v3-copy h1,
  .about-tech-copy h1,.contact-tech-copy h1,
  .projects-hero-copy h1,.project-header-title h1,.legal-page h1{
    max-width:100%;
    word-break:normal;
    hyphens:auto;
  }
  .think-v4-copy>p:not(.area-kicker),
  .build-v3-copy>p:not(.area-kicker),
  .grow-v3-copy>p:not(.area-kicker){
    max-width:62ch;
    font-size:clamp(15px,4.2vw,18px);
    line-height:1.55;
  }
  .think-tags,.build-tags,.grow-tags{
    gap:7px;
  }
  .think-tags span,.build-tags span,.grow-tags span{
    min-height:32px;
    display:inline-flex;
    align-items:center;
    line-height:1.25;
    white-space:normal;
  }
  .think-product-stage,.product-stage,.dashboard-stage,
  .about-tech-visual,.contact-signal{
    width:100%;
    max-width:100%;
  }
  .think-product-stage{
    overflow:hidden;
  }
  .think-service-card,.build-scene,.grow-operation,
  .about-tech-story,.status-card,.contact-tech-form,
  .contact-direct-block,.portfolio-card{
    min-width:0;
  }
  .think-service-card h3,.build-scene-copy h3,.grow-operation h3,
  .about-tech-story p,.portfolio-card-copy h3{
    overflow-wrap:anywhere;
  }

  .contact-tech-form form{gap:18px!important}
  .contact-tech-form label{gap:8px}
  .contact-tech-form input,
  .contact-tech-form select,
  .contact-tech-form textarea{
    min-height:48px;
    padding:12px 13px!important;
    font-size:16px!important;
    line-height:1.35;
  }
  .contact-tech-form textarea{
    height:auto!important;
    min-height:144px!important;
    resize:vertical!important;
  }
  .contact-tech-form button{
    min-height:50px!important;
    padding:12px 15px;
    font-size:15px;
  }
  .contact-direct-cards .contact-direct-block{
    min-height:94px!important;
    padding:17px!important;
  }
  .contact-direct-email,.contact-direct-phone,.contact-direct-empty{
    min-height:44px;
    width:100%;
    display:flex!important;
    align-items:center;
  }
  .contact-direct-email strong,.contact-direct-phone strong,.contact-direct-empty{
    overflow-wrap:anywhere;
  }
  .contact-toast{
    max-height:calc(100svh - 24px);
    overflow:auto;
    padding:22px 54px 22px 20px;
  }
  .contact-toast>button{
    width:44px;
    height:44px;
    right:7px;
    top:7px;
  }

  .project-filters{
    display:flex;
    gap:7px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    padding:2px 1px 7px;
    scrollbar-width:none;
  }
  .project-filters::-webkit-scrollbar{display:none}
  .project-filters a{
    flex:0 0 auto;
    min-height:44px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:10px 14px;
    scroll-snap-align:start;
  }
  .portfolio-grid{grid-template-columns:1fr!important}
  .portfolio-card-copy p{-webkit-line-clamp:unset;overflow:visible}
  .project-header-kicker{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .project-header-kicker>span{
    flex:1 1 190px;
    line-height:1.45;
  }
  .project-back-button{
    min-height:44px!important;
    padding:10px 14px!important;
    white-space:normal;
    text-align:center;
  }
  .project-content aside{position:static}
  .project-description p{font-size:17px;line-height:1.7}
  .project-description>a{min-height:46px;display:inline-flex;align-items:center}
  .project-media-grid{grid-template-columns:1fr!important}
  .project-media-item.wide{grid-column:auto!important}
  .project-navigation{
    gap:10px;
  }
  .project-navigation a{
    min-height:88px;
    padding:16px;
  }
  .project-navigation strong{overflow-wrap:anywhere}

  .legal-page{padding-top:40px;padding-bottom:70px}
  .legal-page header{padding-bottom:34px;margin-bottom:34px}
  .legal-page h1{font-size:clamp(48px,15vw,76px)!important}
  .legal-copy{font-size:16px;line-height:1.68}
  .legal-copy h2{font-size:clamp(25px,7.5vw,36px);line-height:1.12;margin:34px 0 14px}
  .legal-copy h3{font-size:clamp(20px,6vw,28px);line-height:1.2}
  .legal-copy p,.legal-copy li{font-size:16px;line-height:1.68}

  .area-end a{min-height:64px;display:flex;align-items:center}
}

@media(max-width:520px){
  .section-shell{width:min(100% - 24px,var(--shell))}
  .think-v4-hero,.build-v3-hero,.grow-v3-hero{padding-left:12px!important;padding-right:12px!important}
  .think-v4-copy h1,.build-v3-copy h1,.grow-v3-copy h1,
  .about-tech-copy h1,.contact-tech-copy h1{
    font-size:clamp(40px,12.8vw,58px)!important;
  }
  .projects-hero-copy h1{font-size:clamp(40px,12vw,58px)!important}
  .about-tech-story p{font-size:clamp(21px,6.4vw,28px)}
  .contact-tech{width:calc(100% - 20px)!important}
  .contact-direct-main{padding:20px 16px 18px!important}
  .contact-direct-intro.contact-direct-intro-subtle h1{font-size:clamp(36px,11.5vw,50px)!important}
  .project-navigation{grid-template-columns:1fr!important}
  .project-navigation>span:empty{display:none}
  .project-navigation .next{text-align:left}
  .project-navigation .next span,.project-navigation .next strong{text-align:left}
  .project-header-title h1{font-size:clamp(42px,13vw,62px)}
}

/* Small-height phones must scroll instead of compressing the three choices
   into unusably short cards. */
@media(max-width:850px) and (max-height:680px) and (orientation:portrait){
  .theme-home main{height:auto!important;min-height:100svh}
  .portal-v4{height:auto!important;min-height:100svh!important}
  .portal-v4 .portal-grid{
    height:auto!important;
    grid-template-rows:repeat(3,minmax(220px,1fr))!important;
  }
  .portal-v4 .portal-card{min-height:220px!important}
}

/* Mobile and small-tablet landscape: preserve hierarchy by returning to a
   horizontal three-door layout instead of squeezing three vertical cards. */
@media(min-width:600px) and (max-width:850px) and (max-height:600px) and (orientation:landscape){
  .theme-home main{height:100svh!important;overflow:hidden}
  .portal-v4{height:100svh!important;min-height:100svh!important}
  .portal-v4 .portal-grid{
    height:calc(100svh - var(--header-h) - 14px)!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    grid-template-rows:1fr!important;
  }
  .portal-v4 .portal-card{min-height:0!important}
  .portal-v4 .portal-name strong{font-size:clamp(31px,5.2vw,46px)!important}
  .portal-v4 .portal-name span,.portal-v4 .portal-meta em{display:none}
  .portal-v4 .think-object-v4,.portal-v4 .build-object,.portal-v4 .grow-object{inset:14% 6% 29%}
}

/* Hover-only artwork gets a stable touch state. */
@media(hover:none),(pointer:coarse){
  .portal-v4:not(.portal-flight-layer) .portal-build .build-code-lines i{
    width:100%;
    opacity:.88;
    animation:none!important;
  }
  .portal-v4:not(.portal-flight-layer) .portal-build .build-code-caret{opacity:.7;animation:buildCodeCaretV19 .9s steps(1,end) infinite}
  .portal-v4:not(.portal-flight-layer) .portal-think .think-idea-card:before{opacity:.42;transform:scale(.95)}
  .portal-v4:not(.portal-flight-layer) .portal-think .think-bulb .think-bulb-glass{
    fill:rgba(255,229,111,.14)!important;
    stroke:#d7cc7a!important;
  }
  .portal-card,.pillar-link,.motion-card{touch-action:manipulation}
}

/* V21 touch-target finishing pass. */
@media(max-width:850px){
  .contact-toast>button{width:46px;height:46px}
}

/* V21 contact mobile overflow correction: the intro title inherited a
   no-wrap rule and expanded the grid beyond the viewport. */
@media(max-width:520px){
  .theme-contact .contact-direct-intro,
  .theme-contact .contact-direct-intro>*{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
  }
  .theme-contact .contact-direct-intro h1{
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
}

/* ========================================================================== */
/* V22 — real-device mobile refinement: navigation, type, graphics and rhythm */
/* ========================================================================== */

/* Long display copy must wrap at word boundaries, never in the middle of a
   word. The previous global `overflow-wrap:anywhere` was the source of the
   artificial hyphenation visible on Android. */
h1,h2,h3,h4,h5,h6{
  overflow-wrap:normal!important;
  word-break:normal!important;
  hyphens:none!important;
  text-wrap:balance;
}
p,li,figcaption,small{
  overflow-wrap:break-word;
  word-break:normal;
  hyphens:none;
}

@media(max-width:850px){
  :root{--header-h:58px;--dock-h:56px}

  /* Public navigation is visible directly in the header. There is no drawer
     or hamburger on phone/tablet. */
  .site-header{
    display:flex;
    justify-content:flex-start;
    gap:10px;
    padding:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));
  }
  .site-signature{
    flex:0 0 auto;
    min-width:0;
    min-height:44px;
    padding:0;
    gap:8px;
  }
  .site-signature strong{font-size:18px;white-space:nowrap}
  .site-signature i{width:6px;height:6px}
  .menu-toggle{display:none!important}
  .main-nav{
    position:static!important;
    inset:auto!important;
    transform:none!important;
    margin-left:auto;
    padding:0!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end;
    gap:2px!important;
    overflow:visible!important;
    overscroll-behavior:auto!important;
    background:transparent!important;
    color:inherit!important;
  }
  .main-nav a{
    min-height:40px!important;
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    padding:8px 9px!important;
    border:0!important;
    border-radius:999px!important;
    font-size:11px!important;
    line-height:1!important;
    letter-spacing:0!important;
    white-space:nowrap;
  }
  .main-nav .nav-contact{
    border:1px solid currentColor!important;
    padding-inline:11px!important;
  }

  /* Stable equal-width area rail. The changing column widths made labels and
     graphics jump on touch devices. */
  .pillar-dock,
  .pillar-dock:has(.pillar-link.think.active),
  .pillar-dock:has(.pillar-link.build.active),
  .pillar-dock:has(.pillar-link.grow.active),
  .pillar-dock:has(.pillar-link:hover){
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  .pillar-link{
    min-width:0;
    grid-template-columns:18px minmax(0,1fr)!important;
    gap:5px!important;
    padding:0 8px!important;
    transform:none!important;
  }
  .pillar-link .portal-meta{min-width:0}
  .pillar-link .portal-meta em,
  .pillar-link .think-object-v4,
  .pillar-link .build-object,
  .pillar-link .grow-object{display:none!important}
  .pillar-link .portal-name{
    position:static!important;
    min-width:0;
    max-width:none!important;
    transform:none!important;
  }
  .pillar-link .portal-name strong,
  .pillar-link strong,
  .pillar-link:hover strong,
  .pillar-link.active strong{
    display:block;
    min-width:0;
    font-size:clamp(14px,3.9vw,17px)!important;
    line-height:1!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .pillar-link .portal-name span{display:none!important}
  .pillar-link .portal-meta span{font-size:7px!important}

  /* Parallax displacement is decorative on desktop but makes mobile sections
     appear to collide with the sticky rail. */
  [data-parallax]{--parallax-y:0px!important}
  .reveal.visible{transform:translate3d(0,0,0) scale(1)!important}
  .motion-card.reveal.visible{
    transform:translate3d(0,0,0) perspective(1200px) rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg))!important;
  }

  /* Mobile typography: clear hierarchy without six-line display headings. */
  .think-v4-copy h1,
  .build-v3-copy h1,
  .grow-v3-copy h1{
    width:100%;
    max-width:15ch;
    margin:16px 0 18px!important;
    font-size:clamp(38px,10.35vw,46px)!important;
    line-height:.97!important;
    letter-spacing:-.062em!important;
  }
  .about-tech-copy h1{
    width:100%;
    max-width:14ch;
    margin:18px 0 22px!important;
    font-size:clamp(40px,10.8vw,49px)!important;
    line-height:.98!important;
    letter-spacing:-.06em!important;
  }
  .projects-hero-copy h1,
  .project-header-title h1{
    font-size:clamp(39px,10.4vw,48px)!important;
    line-height:.98!important;
    letter-spacing:-.058em!important;
  }
  .contact-direct-intro.contact-direct-intro-subtle h1{
    font-size:clamp(36px,9.8vw,45px)!important;
    line-height:1!important;
    letter-spacing:-.055em!important;
  }
  .section-intro h2,
  .think-system-copy h2,
  .build-system-title h2,
  .grow-loop-title h2{
    max-width:18ch;
    font-size:clamp(33px,8.9vw,40px)!important;
    line-height:1.02!important;
    letter-spacing:-.055em!important;
  }
  .think-v4-copy>p:not(.area-kicker),
  .build-v3-copy>p:not(.area-kicker),
  .grow-v3-copy>p:not(.area-kicker),
  .about-tech-copy>div p{
    font-size:16px!important;
    line-height:1.5!important;
  }

  /* Every area cover grows with its content. Fixed viewport rows were clipping
     the lower edge of device/dashboard illustrations on real phones. */
  .think-v4-hero,
  .build-v3-hero,
  .grow-v3-hero{
    height:auto!important;
    min-height:calc(100svh - var(--header-h) - var(--dock-h))!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    align-content:center;
    gap:26px!important;
    padding:30px 12px 44px!important;
    overflow:visible!important;
  }
  .grow-v3-hero{gap:22px!important}
  .think-product-stage,
  .product-stage{
    width:100%;
    height:340px!important;
    min-height:340px!important;
    max-height:none!important;
    overflow:hidden;
  }
  .dashboard-stage{
    width:100%;
    height:auto!important;
    min-height:0!important;
    overflow:hidden;
  }
  .creative-os{width:87%;height:70%;left:4%;top:11%}
  .desktop-frame{width:88%;height:68%;left:1%;top:10%}
  .mobile-frame{width:29%;height:52%;right:1%;bottom:2%}

  /* Consistent section rhythm. */
  .think-v4-capabilities,
  .build-capabilities,
  .grow-capabilities,
  .think-v4-system,
  .build-system,
  .grow-loop-v3,
  .about-tech-experience{
    padding-top:52px!important;
    padding-bottom:60px!important;
  }
  .section-intro{
    gap:9px!important;
    padding-bottom:18px!important;
  }
  .think-service-grid,
  .build-scenes,
  .grow-operations{
    margin-top:24px!important;
    gap:14px!important;
  }

  /* Think cards and system board. */
  .think-service-card{
    min-height:0!important;
    padding:20px!important;
    border-radius:22px;
  }
  .think-service-card h3{
    margin:18px 0 10px;
    font-size:clamp(27px,7.4vw,32px)!important;
    line-height:1.04!important;
    letter-spacing:-.045em;
  }
  .think-service-card p{font-size:15px;line-height:1.48}
  .think-service-card small{margin-top:14px;line-height:1.5}
  .think-system-board{
    height:auto!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
    padding:10px;
    overflow:visible!important;
  }
  .think-system-board .system-tile{
    position:relative!important;
    inset:auto!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    width:auto!important;
    height:auto!important;
    min-height:150px;
    padding:16px!important;
    transform:none!important;
  }
  .system-tile strong{
    font-size:clamp(22px,6.2vw,28px)!important;
    line-height:1!important;
  }
  .system-tile small{line-height:1.45}
  .system-core{display:none!important}

  /* Build service modules preserve the whole illustration and use a compact,
     predictable text block. */
  .build-scene{
    grid-template-columns:1fr!important;
    min-height:0!important;
    border-radius:22px!important;
  }
  .build-scene-copy{
    min-height:0!important;
    padding:24px 22px!important;
  }
  .build-scene-copy h3{
    margin:16px 0 14px!important;
    font-size:clamp(31px,8.3vw,38px)!important;
    line-height:1!important;
    letter-spacing:-.055em!important;
  }
  .build-scene-copy p{font-size:15px;line-height:1.5}
  .build-scene-copy small{margin-top:16px;line-height:1.5}
  .build-scene-visual{
    min-height:220px!important;
    height:220px!important;
    overflow:hidden!important;
  }
  .visual-browser{max-width:84%}
  .visual-flow,.visual-automation{max-width:90%}
  .visual-stack{max-width:74%}
  .system-track{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:20px 14px!important;
    margin-top:26px!important;
  }
  .system-track>div strong{
    font-size:clamp(26px,7.4vw,34px)!important;
    line-height:1!important;
  }

  /* Grow operation signals no longer sit on top of labels or descriptions. */
  .grow-operations{
    display:grid!important;
    grid-template-columns:1fr!important;
    border:0!important;
  }
  .grow-operation{
    min-height:0!important;
    padding:22px!important;
    border:1px solid #238468!important;
    border-radius:20px;
    overflow:hidden;
  }
  .operation-head{
    grid-template-columns:42px minmax(0,1fr)!important;
    gap:10px;
    align-items:start!important;
  }
  .operation-head b{
    font-size:clamp(25px,7vw,31px)!important;
    line-height:1.04!important;
    letter-spacing:-.045em;
  }
  .operation-head i{display:none!important}
  .grow-operation>p{
    margin:22px 0 0!important;
    max-width:none;
    font-size:15px;
    line-height:1.5;
  }
  .grow-operation>small{
    margin-top:18px!important;
    padding:0!important;
    line-height:1.55;
  }
  .operation-signal{
    position:static!important;
    align-self:flex-end;
    width:76px;
    height:38px!important;
    margin-top:16px;
    right:auto!important;
    bottom:auto!important;
    opacity:.62;
  }
  .grow-loop-v3{
    grid-template-columns:1fr!important;
    gap:34px;
  }
  .grow-loop-title h2{margin:16px 0 0}
  .loop-orbit{
    width:min(350px,calc(100vw - 44px))!important;
    max-width:100%;
  }
  .loop-step{min-width:82px;padding:8px 10px}
  .loop-step b{font-size:12px}
  .loop-center b{font-size:clamp(19px,5.3vw,25px)}

  /* About: shorter cards, readable body copy and a balanced portrait module. */
  .about-tech{padding-top:34px!important;padding-bottom:68px!important}
  .about-tech-hero{
    gap:28px!important;
    padding-bottom:44px!important;
  }
  .about-tech-visual{height:310px!important;overflow:hidden}
  .about-tech-summary{
    padding:42px 0!important;
    gap:12px!important;
  }
  .about-tech-story{padding:20px!important}
  .about-tech-story p{
    font-size:clamp(19px,5.2vw,23px)!important;
    line-height:1.25!important;
  }
  .status-card{min-height:108px!important;padding:18px!important}
  .experience-console article{
    grid-template-columns:34px minmax(0,1fr)!important;
    gap:14px!important;
    padding:18px!important;
  }
  .experience-console article>div{grid-template-columns:1fr!important;gap:5px!important}
  .experience-console article strong{
    font-size:clamp(23px,6.4vw,29px)!important;
    line-height:1.05!important;
  }
  .experience-console article p{font-size:15px;line-height:1.5}
  .about-tech-nav{gap:10px!important}
  .about-tech-nav a{min-height:112px!important;padding:18px!important}
  .about-tech-nav strong{font-size:clamp(34px,9vw,43px)!important;line-height:1!important}

  /* Contact and project spacing. */
  .contact-tech{padding-top:30px!important;padding-bottom:60px!important}
  .contact-direct.contact-direct-centered{gap:14px!important}
  .contact-direct-main{padding:20px 16px 18px!important}
  .contact-direct-intro{padding-bottom:16px!important}
  .contact-direct-cards{gap:10px!important}
  .projects-hero{padding-top:44px!important;padding-bottom:50px!important}
  .project-content{padding-top:48px!important;padding-bottom:60px!important}
}

@media(max-width:600px){
  /* On phones the 114 px combined header/area rail scrolls with the page. This
     prevents section headings from travelling underneath two persistent bars
     and gives the content back its vertical space after the first screen. */
  body:not(.theme-home) .site-header{
    position:relative!important;
    inset:auto!important;
    top:auto!important;
  }
  body:not(.theme-home) .pillar-dock{
    position:relative!important;
    top:auto!important;
    margin-top:0!important;
  }
  body:not(.theme-home) main{min-height:0}
  .main-nav .nav-projects{display:none!important}
}

@media(max-width:380px){
  .site-header{gap:6px}
  .site-signature strong{font-size:16px}
  .site-signature i{display:none}
  .main-nav a{font-size:10px!important;padding-inline:7px!important}
  .main-nav .nav-contact{padding-inline:9px!important}
  .think-v4-copy h1,.build-v3-copy h1,.grow-v3-copy h1{font-size:37px!important}
  .about-tech-copy h1{font-size:39px!important}
  .think-system-board{grid-template-columns:1fr}
  .think-system-board .system-tile{min-height:126px}
}

@media(max-width:850px){
  .theme-contact .contact-direct-intro h1{
    overflow-wrap:normal!important;
    word-break:normal!important;
    hyphens:none!important;
  }
}

@media(max-width:850px){
  body:not(.theme-home) .site-header{
    position:relative!important;
    inset:auto!important;
    top:auto!important;
  }
  body:not(.theme-home) .pillar-dock{
    position:relative!important;
    top:auto!important;
    margin-top:0!important;
  }
  .legal-page h1{
    font-size:clamp(42px,11vw,56px)!important;
    line-height:.96!important;
    letter-spacing:-.055em!important;
  }
}

@media(min-width:601px) and (max-width:850px){
  .think-v4-copy h1,
  .build-v3-copy h1,
  .grow-v3-copy h1,
  .about-tech-copy h1{
    max-width:700px!important;
    font-size:clamp(44px,7.4vw,54px)!important;
  }
  .think-product-stage,.product-stage{height:420px!important;min-height:420px!important}
  .about-tech-visual{height:390px!important}
  .think-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .think-service-card{min-height:300px!important}
  .section-intro h2,.think-system-copy h2,.build-system-title h2,.grow-loop-title h2{max-width:24ch}
}

/* ========================================================================== */
/* V23 — mobile rail alignment, contact gutters, section rhythm and Build FX  */
/* ========================================================================== */

@media(max-width:850px){
  :root{--dock-h:60px}

  /* The area rail uses one explicit row: number on the left, then a centred
     title/subtitle stack. This avoids the inherited portal grid placing the
     title at the top and the number underneath it. */
  .pillar-link{
    display:grid!important;
    grid-template-columns:18px minmax(0,1fr)!important;
    grid-template-rows:1fr!important;
    align-items:center!important;
    align-content:center!important;
    column-gap:6px!important;
    row-gap:0!important;
    padding:0 9px!important;
  }
  .pillar-link .portal-meta{
    position:static!important;
    grid-column:1!important;
    grid-row:1!important;
    display:block!important;
    align-self:center!important;
    justify-self:start!important;
    min-width:0!important;
    margin:0!important;
  }
  .pillar-link .portal-meta span{
    display:block!important;
    font:7px/1 var(--mono)!important;
    letter-spacing:.12em!important;
    opacity:.9;
  }
  .pillar-link .portal-meta em{display:none!important}
  .pillar-link .portal-name{
    position:static!important;
    inset:auto!important;
    grid-column:2!important;
    grid-row:1!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    align-self:stretch!important;
    min-width:0!important;
    max-width:100%!important;
    gap:4px!important;
    margin:0!important;
    transform:none!important;
  }
  .pillar-link .portal-name strong,
  .pillar-link strong,
  .pillar-link:hover strong,
  .pillar-link.active strong{
    width:100%!important;
    margin:0!important;
    font-size:clamp(14px,3.85vw,17px)!important;
    line-height:.94!important;
    letter-spacing:-.055em!important;
    text-transform:uppercase;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .pillar-link .portal-name span{
    display:block!important;
    width:100%!important;
    margin:0!important;
    color:inherit!important;
    font:clamp(5.5px,1.55vw,7px)/1.05 var(--mono)!important;
    letter-spacing:.1em!important;
    text-transform:uppercase!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    opacity:.68!important;
  }

  /* Give Contact a real gutter independent from the accumulated section-shell
     rules. The card and every form control stay inside that gutter. */
  .theme-contact .contact-tech{
    width:auto!important;
    max-width:none!important;
    margin-left:clamp(12px,3.2vw,20px)!important;
    margin-right:clamp(12px,3.2vw,20px)!important;
    padding:28px 0 54px!important;
  }
  .theme-contact .contact-direct,
  .theme-contact .contact-direct-main,
  .theme-contact .contact-tech-form,
  .theme-contact .contact-tech-form form{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  .theme-contact .contact-direct-main{
    margin:0!important;
    padding:22px 18px 24px!important;
    border-radius:22px!important;
  }
  .theme-contact .contact-tech-form input,
  .theme-contact .contact-tech-form select,
  .theme-contact .contact-tech-form textarea{
    width:100%!important;
  }

  /* Mobile section rhythm: reduce the stacked bottom/top padding that was
     creating large empty bands between consecutive blocks. */
  .think-v4-hero,
  .build-v3-hero,
  .grow-v3-hero{
    padding-bottom:28px!important;
  }
  .think-v4-capabilities,
  .build-capabilities,
  .grow-capabilities{
    padding-top:34px!important;
    padding-bottom:30px!important;
  }
  .think-v4-system,
  .build-system,
  .grow-loop-v3{
    padding-top:32px!important;
    padding-bottom:50px!important;
  }
  .about-tech-experience{
    padding-top:30px!important;
    padding-bottom:42px!important;
  }
  .section-intro{
    padding-bottom:16px!important;
  }
  .think-service-grid,
  .build-scenes,
  .grow-operations{
    margin-top:20px!important;
  }
  .grow-loop-v3{gap:24px!important}

  /* Build hero: the very large desktop shadows were being clipped by the
     fixed-height stage, leaving a rectangular dark edge on Android. */
  .theme-build .product-stage{
    overflow:visible!important;
    isolation:isolate;
  }
  .theme-build .product-glow{
    width:62%!important;
    right:8%!important;
    top:9%!important;
    filter:blur(42px)!important;
    opacity:.76;
  }
  .theme-build .desktop-frame{
    box-shadow:0 24px 52px rgba(0,0,0,.56),0 0 0 1px #ffffff12 inset!important;
  }
  .theme-build .mobile-frame{
    box-shadow:0 22px 48px rgba(0,0,0,.6)!important;
  }
  .theme-build .system-node{
    box-shadow:0 10px 24px rgba(0,0,0,.48)!important;
  }
}

@media(max-width:520px){
  .pillar-link{grid-template-columns:16px minmax(0,1fr)!important;padding-inline:7px!important;column-gap:5px!important}
  .pillar-link .portal-meta span{font-size:6px!important}
  .pillar-link .portal-name strong,
  .pillar-link strong,
  .pillar-link:hover strong,
  .pillar-link.active strong{font-size:14px!important}
  .pillar-link .portal-name span{font-size:5.5px!important;letter-spacing:.075em!important}

  .theme-contact .contact-tech{
    margin-left:12px!important;
    margin-right:12px!important;
    padding-top:24px!important;
  }
  .theme-contact .contact-direct-main{padding:20px 16px 22px!important}

  .think-v4-capabilities,
  .build-capabilities,
  .grow-capabilities{
    padding-top:30px!important;
    padding-bottom:26px!important;
  }
  .think-v4-system,
  .build-system,
  .grow-loop-v3{
    padding-top:28px!important;
    padding-bottom:44px!important;
  }
}

/* V23.1 — final mobile rhythm pass after real-device screenshot comparison. */
@media(max-width:850px){
  .think-v4-hero,
  .build-v3-hero,
  .grow-v3-hero{padding-bottom:20px!important}
  .think-v4-capabilities,
  .build-capabilities,
  .grow-capabilities{
    padding-top:24px!important;
    padding-bottom:20px!important;
  }
  .think-v4-system,
  .build-system,
  .grow-loop-v3{
    padding-top:24px!important;
    padding-bottom:46px!important;
  }
  .about-tech-experience{padding-bottom:34px!important}
}
@media(max-width:520px){
  .think-v4-hero,
  .build-v3-hero,
  .grow-v3-hero{padding-bottom:18px!important}
  .think-v4-capabilities,
  .build-capabilities,
  .grow-capabilities{
    padding-top:22px!important;
    padding-bottom:18px!important;
  }
  .think-v4-system,
  .build-system,
  .grow-loop-v3{
    padding-top:22px!important;
    padding-bottom:40px!important;
  }
}
