@font-face{font-family:Manrope;src:url("../fonts/manrope-latin.a30ddcd349.woff2") format("woff2");font-style:normal;font-weight:200 800;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-regular-latin.08949f728d.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("../fonts/ibm-plex-mono-semibold-latin.0d1f0b8d07.woff2") format("woff2");font-style:normal;font-weight:600;font-display:swap}

:root{
  color-scheme:dark;
  --paper:#0e1013;
  --paper-rgb:14,16,19;
  --surface:#15191e;
  --surface-2:#1b2026;
  --ink:#f0f3f7;
  --muted:#9aa5b3;
  --faint:#7e8998;
  --line:#27313d;
  --line-bright:#3a4655;
  --accent:#29C9C4;
  --accent-action:#157D83;
  --on-accent:#fff;
  --success:#63d6a1;
  --warning:#ffc466;
  --shadow:0 24px 80px rgba(0,0,0,.3);
  --sans:Manrope,"Segoe UI Variable","Segoe UI",sans-serif;
  --mono:"IBM Plex Mono",Consolas,monospace;
  --max:1280px;
  --gutter:clamp(20px,4vw,56px);
  --header:76px;
  --radius:2px;
  --brand-lockup-image:url("../brand/logo/ferox-lockup-dark-transparent.png");
  --brand-lockup-header-size:215px auto;
  --brand-lockup-footer-size:332px auto;
}

html[data-theme="light"]{
  color-scheme:light;
  --paper:#f5f3ee;
  --paper-rgb:245,243,238;
  --surface:#fbfaf7;
  --surface-2:#ece9e2;
  --ink:#1b1f25;
  --muted:#56606a;
  --faint:#737b84;
  --line:#d6d2c9;
  --line-bright:#aaa69e;
  --accent:#176f74;
  --accent-action:#176f74;
  --on-accent:#fff;
  --shadow:0 24px 70px rgba(27,31,37,.1);
  --brand-lockup-image:url("../brand/logo/ferox-lockup-light-transparent.svg");
  --brand-lockup-header-size:338px auto;
  --brand-lockup-footer-size:520px auto;
}

body.robco{--brand-lockup-image:url("../brand/logo/ferox-lockup-onecolor-white.svg");--brand-lockup-header-size:338px auto;--brand-lockup-footer-size:520px auto}
body.fable{--brand-lockup-image:url("../brand/logo/ferox-lockup-onecolor-black.svg");--brand-lockup-header-size:338px auto;--brand-lockup-footer-size:520px auto}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper);text-size-adjust:100%}
body{margin:0;min-width:320px;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:clamp(15px,.25vw + 14px,17px);line-height:1.65;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background-image:linear-gradient(rgba(129,154,185,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(129,154,185,.045) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,black,transparent 88%)}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 72% 9%,rgba(91,133,255,.08),transparent 30%)}
::selection{background:var(--accent);color:#07101f}
img,svg{display:block;max-width:100%}
img{height:auto}
button,input,textarea,select{font:inherit}
button,a{-webkit-tap-highlight-color:transparent}
a{color:var(--accent);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{text-decoration-color:transparent}
h1,h2,h3,h4,p,ul,ol,dl,figure,blockquote{margin-top:0}
h1,h2,h3,h4{font-weight:520;letter-spacing:-.04em;line-height:1.02;text-wrap:balance}
p{max-width:70ch}
code,kbd,pre,.mono{font-family:var(--mono)}

.wrap{width:min(calc(100% - (2 * var(--gutter))),var(--max));margin-inline:auto}
.narrow{width:min(calc(100% - (2 * var(--gutter))),820px);margin-inline:auto}
.section{position:relative;padding:clamp(84px,10vw,150px) 0;border-top:1px solid var(--line)}
.section--tight{padding:clamp(58px,7vw,96px) 0}
.section--surface{background:color-mix(in srgb,var(--surface) 60%,transparent)}
.section-number{position:absolute;top:24px;right:var(--gutter);font:400 10px/1 var(--mono);color:var(--faint);letter-spacing:.12em}
.eyebrow{display:inline-flex;align-items:center;gap:10px;font:600 10px/1.4 var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{content:"";width:24px;height:1px;background:currentColor}
.display{max-width:1000px;margin:.35em 0;font-size:clamp(2.5rem,6vw,6.4rem);letter-spacing:-.07em}
.section-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:clamp(30px,7vw,120px);align-items:end;margin-bottom:clamp(42px,6vw,78px)}
.section-head p{margin:0;color:var(--muted);font-size:clamp(1rem,1.3vw,1.2rem)}
.muted{color:var(--muted)}
.faint{color:var(--faint)}
.rule{border:0;border-top:1px solid var(--line);margin:0}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.skip-link{position:fixed;left:16px;top:12px;z-index:1000;padding:12px 16px;background:var(--ink);color:var(--paper);transform:translateY(-160%);transition:transform .18s;text-decoration:none}
.skip-link:focus{transform:none}

:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 18px;border:1px solid var(--line-bright);border-radius:var(--radius);background:transparent;color:var(--ink);font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .2s,border-color .2s,background .2s,color .2s}
.btn::after{content:"↗";font-size:1.1em;transition:transform .2s}
.btn[href^="/"]::after,.btn[data-internal]::after{content:"→"}
.btn:hover{border-color:var(--accent);transform:translateY(-2px)}
.btn:hover::after{transform:translate(2px,-2px)}
.btn[href^="/"]:hover::after,.btn[data-internal]:hover::after{transform:translateX(3px)}
.btn--primary{border-color:var(--accent-action);background:var(--accent-action);color:var(--on-accent)}
.btn--quiet{border-color:transparent;padding-inline:0;min-height:40px;color:var(--accent)}
.btn--quiet:hover{background:transparent}
.button-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

.site-header{position:sticky;top:0;z-index:100;background:rgba(var(--paper-rgb),.82);border-bottom:1px solid var(--line);backdrop-filter:blur(18px) saturate(130%)}
.site-header::after{content:"";position:absolute;left:0;bottom:-1px;width:var(--scroll-progress,0%);height:1px;background:var(--accent)}
.nav-shell{height:var(--header);display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:block;width:150px;height:52px;color:var(--ink);text-decoration:none;white-space:nowrap}
.brand-logo{display:block;width:100%;height:100%;background-image:var(--brand-lockup-image);background-repeat:no-repeat;background-position:center;background-size:var(--brand-lockup-header-size)}
.nav-menu{display:flex;align-items:center;gap:clamp(13px,1.55vw,25px)}
.nav-link{position:relative;padding:10px 0;color:var(--muted);font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none}
.nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:4px;height:1px;background:var(--accent);transition:right .2s}
.nav-link:hover,.nav-link[aria-current="page"]{color:var(--ink)}
.nav-link:hover::after,.nav-link[aria-current="page"]::after{right:0}
.nav-tools{display:flex;gap:8px;align-items:center}
.icon-btn{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
.theme-icon{width:15px;height:15px;border:1px solid currentColor;border-radius:50%;background:linear-gradient(90deg,currentColor 50%,transparent 50%)}
.menu-toggle{display:none}
.menu-lines{position:relative;width:17px;height:12px;border-top:1px solid currentColor;border-bottom:1px solid currentColor}
.menu-lines::after{content:"";position:absolute;left:0;right:5px;top:5px;border-top:1px solid currentColor}

.hero{position:relative}
.home-hero{min-height:calc(100svh - var(--header));display:grid;align-items:center;padding:clamp(70px,9vw,132px) 0 48px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.06fr) minmax(360px,.94fr);gap:clamp(32px,5vw,90px);align-items:center}
.hero-copy{position:relative;z-index:2}
.hero-title{max-width:850px;margin:.22em 0 .28em;font-size:clamp(4.25rem,8.7vw,9.4rem);font-weight:520;line-height:.83;letter-spacing:-.085em}
.hero-title span{display:block;color:var(--muted);font-weight:280}
.hero-lede{max-width:690px;color:var(--muted);font-size:clamp(1.08rem,1.55vw,1.38rem);line-height:1.55}
.hero-actions{margin-top:32px}
.hero-index{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(40px,7vh,90px);border-top:1px solid var(--line)}
.hero-index-item{padding:18px 18px 0 0;border-right:1px solid var(--line)}
.hero-index-item:last-child{border-right:0;padding-left:18px}
.hero-index strong{display:block;font:600 10px/1.4 var(--mono);letter-spacing:.12em;color:var(--ink);text-transform:uppercase}
.hero-index span{display:block;margin-top:5px;color:var(--faint);font-size:12px}

.system-visual{position:relative;min-height:530px;isolation:isolate;border:1px solid var(--line);background:linear-gradient(135deg,rgba(255,255,255,.018),transparent 45%),radial-gradient(circle at var(--px,50%) var(--py,50%),rgba(120,162,255,.18),transparent 25%);overflow:hidden;box-shadow:inset 0 0 80px rgba(0,0,0,.16)}
.system-visual::before{content:"";position:absolute;inset:18px;border:1px solid var(--line);clip-path:polygon(0 0,36% 0,36% 5px,64% 5px,64% 0,100% 0,100% 100%,0 100%)}
.system-visual::after{content:"SYS / 04";position:absolute;right:31px;top:30px;font:600 9px/1 var(--mono);letter-spacing:.15em;color:var(--faint)}
.system-svg{position:absolute;inset:9%;width:82%;height:82%}
.system-svg .board{fill:none;stroke:var(--line-bright);stroke-width:1}
.system-svg .trace-path{fill:none;stroke:var(--accent);stroke-width:1.35;stroke-linecap:round;stroke-dasharray:2 7;animation:trace-flow 12s linear infinite}
.system-svg .trace-faint{fill:none;stroke:var(--line-bright);stroke-width:1}
.system-svg .pad{fill:var(--paper);stroke:var(--accent);stroke-width:1.3}
.system-svg .pulse{fill:var(--accent);filter:drop-shadow(0 0 7px var(--accent));animation:node-pulse 3.2s ease-in-out infinite}
.system-label{position:absolute;padding:7px 9px;background:rgba(var(--paper-rgb),.86);border:1px solid var(--line);font:600 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.system-label span{display:block;margin-top:5px;color:var(--faint);font-weight:400;letter-spacing:.04em}
.system-label--a{left:8%;top:20%}.system-label--b{right:7%;top:34%}.system-label--c{left:17%;bottom:16%}.system-label--d{right:13%;bottom:11%}
.crosshair{position:absolute;left:var(--px,50%);top:var(--py,50%);width:38px;height:38px;transform:translate(-50%,-50%);opacity:.7;pointer-events:none}
.crosshair::before,.crosshair::after{content:"";position:absolute;background:var(--accent)}
.crosshair::before{left:50%;top:0;width:1px;height:100%}.crosshair::after{left:0;top:50%;width:100%;height:1px}
.coordinate{position:absolute;left:30px;bottom:27px;font:400 9px/1 var(--mono);letter-spacing:.1em;color:var(--faint)}

@keyframes trace-flow{to{stroke-dashoffset:-180}}
@keyframes node-pulse{0%,100%{opacity:.35}50%{opacity:1}}

.product-feature{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(320px,.7fr);min-height:610px;border:1px solid var(--line);background:var(--surface);overflow:hidden}
.product-feature__media{position:relative;min-height:480px;background:#07090c;overflow:hidden}
.product-feature__media img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.product-feature:hover .product-feature__media img{transform:scale(1.025)}
.product-feature__media::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,transparent 70%,var(--surface)),linear-gradient(0deg,rgba(0,0,0,.42),transparent 40%)}
.measure{position:absolute;z-index:2;color:#cbd7e8;font:600 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.measure--x{left:24px;bottom:24px}.measure--y{right:21px;top:25px;writing-mode:vertical-rl}
.product-feature__copy{padding:clamp(34px,5vw,72px);display:flex;flex-direction:column;justify-content:center}
.product-feature__copy h3{font-size:clamp(2rem,3.5vw,4.2rem);margin:20px 0}
.product-feature__copy p{color:var(--muted)}
.product-feature__price{display:flex;align-items:baseline;gap:12px;margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.product-feature__price strong{font-size:1.5rem}.product-feature__price span{font:400 10px/1 var(--mono);color:var(--faint);text-transform:uppercase;letter-spacing:.1em}

.product-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.product-card{position:relative;border:1px solid var(--line);background:var(--surface);overflow:hidden;transition:border-color .25s,transform .25s}
.product-card:hover{border-color:var(--accent);transform:translateY(-4px)}
.product-card__media{aspect-ratio:16/10;overflow:hidden;background:#080b0f}
.product-card__media img{width:100%;height:100%;object-fit:cover;transition:transform .65s}
.product-card:hover img{transform:scale(1.03)}
.product-card__body{padding:26px}
.product-card__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 18px;font:600 9px/1.4 var(--mono);color:var(--faint);letter-spacing:.12em;text-transform:uppercase}
.product-card h2,.product-card h3{font-size:clamp(1.6rem,2.5vw,2.55rem);margin:28px 0 12px}
.product-card h2 a,.product-card h3 a{color:var(--ink);text-decoration:none}
.product-card p{color:var(--muted)}
.product-card__footer{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}
.product-card__footer strong{font-size:1.15rem}

.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.project-card{grid-column:span 6;position:relative;display:grid;grid-template-rows:260px auto;min-height:540px;border:1px solid var(--line);background:var(--surface);overflow:hidden;transition:border-color .25s,transform .25s}
.project-card:nth-child(3n+1){grid-column:span 7}.project-card:nth-child(3n+2){grid-column:span 5}
.project-card:hover,.project-card:focus-within{border-color:var(--accent);transform:translateY(-4px)}
.project-card[hidden],.article-card[hidden]{display:none}
.project-card__visual{position:relative;border-bottom:1px solid var(--line);background:radial-gradient(circle at 70% 30%,rgba(120,162,255,.14),transparent 33%),#0c1117;overflow:hidden}
.project-card__visual svg{width:100%;height:100%;color:#78a2ff}
.project-card__visual::after{content:attr(data-part);position:absolute;right:18px;bottom:16px;color:#8e9bad;font:600 9px/1 var(--mono);letter-spacing:.12em}
.project-card__body{display:flex;flex-direction:column;padding:28px}
.spec-line{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--faint);font:600 9px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.spec-line span:first-child{color:var(--accent)}
.project-card h2,.project-card h3{margin:28px 0 12px;font-size:clamp(1.65rem,2.7vw,2.8rem)}
.project-card h2 a,.project-card h3 a{color:var(--ink);text-decoration:none}
.project-card p{color:var(--muted)}
.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:22px}
.tag{display:inline-flex;padding:6px 8px;border:1px solid var(--line);font:400 9px/1 var(--mono);letter-spacing:.06em;color:var(--muted);text-decoration:none;text-transform:uppercase}
.tag:hover{border-color:var(--accent);color:var(--ink)}

.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:34px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.filters{display:flex;flex-wrap:wrap;gap:8px}
.filter{min-height:42px;padding:9px 13px;border:1px solid var(--line);background:transparent;color:var(--muted);font:600 10px/1 var(--mono);letter-spacing:.07em;cursor:pointer}
.filter:hover,.filter[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--ink)}
.filter-count{font:400 10px/1 var(--mono);color:var(--faint);white-space:nowrap}

.capability-rail{display:grid;grid-template-columns:repeat(6,1fr);border-block:1px solid var(--line)}
.capability-rail a{position:relative;min-height:160px;padding:22px 16px;border-right:1px solid var(--line);color:var(--ink);text-decoration:none;transition:background .2s}
.capability-rail a:last-child{border-right:0}
.capability-rail a:hover{background:var(--surface)}
.capability-rail small{display:block;color:var(--accent);font:600 9px/1 var(--mono);letter-spacing:.12em}
.capability-rail strong{display:block;margin-top:42px;font-size:clamp(.95rem,1.3vw,1.15rem);line-height:1.25}
.capability-rail svg{position:absolute;right:13px;top:18px;width:16px;height:16px}

.process-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}
.process-step{position:relative;min-height:290px;padding:28px;border-right:1px solid var(--line);background:linear-gradient(to bottom,transparent,var(--surface))}
.process-step:last-child{border-right:0}
.process-step::after{content:"";position:absolute;top:42px;right:-5px;z-index:2;width:9px;height:9px;border-radius:50%;background:var(--paper);border:1px solid var(--accent)}
.process-step:last-child::after{display:none}
.process-step .number{font:600 10px/1 var(--mono);color:var(--accent)}
.process-step h3{margin:78px 0 16px;font-size:1.45rem}
.process-step p{font-size:.94rem;color:var(--muted)}

.proof-block{display:grid;grid-template-columns:.65fr 1.35fr;gap:clamp(30px,8vw,120px);align-items:start}
.proof-quote{margin:0;font-size:clamp(1.8rem,4vw,4.4rem);line-height:1.12;letter-spacing:-.05em}
.proof-meta{padding-top:12px;font:400 10px/1.7 var(--mono);color:var(--faint);letter-spacing:.08em;text-transform:uppercase}

.cta-panel{position:relative;display:grid;grid-template-columns:1fr auto;gap:30px;align-items:end;padding:clamp(38px,7vw,88px);border:1px solid var(--line);background:var(--surface);overflow:hidden}
.cta-panel::before{content:"";position:absolute;width:360px;height:360px;right:-140px;top:-210px;border:1px solid var(--accent);border-radius:50%;box-shadow:0 0 0 45px rgba(120,162,255,.025),0 0 0 90px rgba(120,162,255,.018)}
.cta-panel h2{position:relative;margin:0;font-size:clamp(2.6rem,6vw,6rem);max-width:820px}
.cta-panel .btn{position:relative}

.page-hero{padding:clamp(58px,7vw,104px) 0 clamp(54px,6vw,86px);border-bottom:1px solid var(--line)}
.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:34px;color:var(--faint);font:400 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.breadcrumb a{color:var(--muted);text-decoration:none}.breadcrumb a:hover{color:var(--ink)}
.page-hero__grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(38px,8vw,130px);align-items:end}
.page-title{margin:0;font-size:clamp(3.35rem,6.8vw,7.15rem);line-height:.9;letter-spacing:-.08em}
.page-title em{display:block;color:var(--muted);font-style:normal;font-weight:260}
.page-intro{padding-bottom:8px;color:var(--muted);font-size:clamp(1.05rem,1.5vw,1.28rem)}
.page-intro .button-row{margin-top:28px}

.capability-list{border-top:1px solid var(--line)}
.capability-row{display:grid;grid-template-columns:80px minmax(220px,.8fr) minmax(300px,1fr) minmax(220px,.7fr);gap:28px;padding:36px 0;border-bottom:1px solid var(--line);align-items:start}
.capability-row__number{font:600 10px/1 var(--mono);color:var(--accent)}
.capability-row h2{font-size:clamp(1.5rem,2.5vw,2.5rem);margin:0}
.capability-row p{color:var(--muted);margin:0}
.deliverable-list{display:grid;gap:8px;margin:0;padding:0;list-style:none;color:var(--muted);font:400 10px/1.45 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.deliverable-list li::before{content:"+";margin-right:8px;color:var(--accent)}

.engagement-bench{display:grid;grid-template-columns:minmax(240px,.45fr) minmax(0,1fr);border:1px solid var(--line);min-height:470px}
.engagement-tabs{display:flex;flex-direction:column;border-right:1px solid var(--line)}
.engagement-tab{position:relative;flex:1;padding:22px 26px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--muted);text-align:left;font:600 11px/1.4 var(--mono);letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
.engagement-tab:last-child{border-bottom:0}
.engagement-tab::after{content:"→";position:absolute;right:22px;color:var(--faint)}
.engagement-tab:hover,.engagement-tab[aria-selected="true"]{background:var(--surface-2);color:var(--ink)}
.engagement-tab[aria-selected="true"]::before{content:"";position:absolute;left:-1px;top:0;bottom:0;width:2px;background:var(--accent)}
.engagement-panel{padding:clamp(34px,6vw,76px)}
.engagement-panel[hidden]{display:none}
.engagement-panel h3{font-size:clamp(2rem,4vw,4.2rem);margin-bottom:22px}
.engagement-panel>p{color:var(--muted);font-size:1.08rem}
.engagement-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:52px;padding-top:24px;border-top:1px solid var(--line)}
.engagement-meta dt{font:600 9px/1 var(--mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase}
.engagement-meta dd{margin:9px 0 0;color:var(--muted);font-size:.94rem}

.typical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.typical-card{min-height:310px;padding:28px;border:1px solid var(--line);background:var(--surface)}
.typical-card .meta{font:600 9px/1 var(--mono);letter-spacing:.1em;color:var(--accent);text-transform:uppercase}
.typical-card h3{margin:72px 0 16px;font-size:1.65rem}
.typical-card p{color:var(--muted)}

.product-detail-hero{padding:clamp(60px,8vw,112px) 0;border-bottom:1px solid var(--line)}
.product-detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:clamp(32px,6vw,90px);align-items:start}
.product-main-media{position:relative;aspect-ratio:4/3;border:1px solid var(--line);background:#070a0e;overflow:hidden}
.product-main-media img{width:100%;height:100%;object-fit:cover}
.product-main-media .measure-line{position:absolute;left:7%;right:7%;bottom:7%;height:14px;border-inline:1px solid rgba(230,239,255,.7);border-bottom:1px solid rgba(230,239,255,.7);color:#dce6f5;font:400 9px/1 var(--mono);text-align:center}
.product-summary{position:sticky;top:calc(var(--header) + 28px)}
.product-summary h1{font-size:clamp(3rem,5.6vw,6.6rem);margin:20px 0 24px}
.product-summary>p{color:var(--muted);font-size:1.08rem}
.product-price{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:32px 0 22px;padding-top:24px;border-top:1px solid var(--line)}
.product-price strong{font-size:1.8rem}.product-price span{font:400 9px/1.5 var(--mono);color:var(--faint);text-align:right;text-transform:uppercase;letter-spacing:.08em}
.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.gallery-item{margin:0;border:1px solid var(--line);background:var(--surface);overflow:hidden}
.gallery-item__image{aspect-ratio:4/3;overflow:hidden;background:#080b0f}
.gallery-item img{width:100%;height:100%;object-fit:cover}
.gallery-item[data-crop="detail-right"] img{transform:scale(1.65);object-position:82% 62%}
.gallery-item[data-crop="detail-left"] img{transform:scale(1.6);object-position:22% 52%}
.gallery-item figcaption{padding:15px 18px;font:400 9px/1.4 var(--mono);color:var(--faint);letter-spacing:.08em;text-transform:uppercase}
.spec-table{margin:0;border-top:1px solid var(--line)}
.spec-table div{display:grid;grid-template-columns:minmax(120px,.35fr) 1fr;gap:20px;padding:17px 0;border-bottom:1px solid var(--line)}
.spec-table dt{font:600 9px/1.5 var(--mono);letter-spacing:.1em;color:var(--faint);text-transform:uppercase}
.spec-table dd{margin:0;color:var(--ink)}
.trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
.trust-item{padding:20px;border:1px solid var(--line);color:var(--muted);font-size:.9rem}
.trust-item strong{display:block;margin-bottom:7px;color:var(--ink);font:600 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.08em}

.case-hero{padding:clamp(64px,9vw,126px) 0;border-bottom:1px solid var(--line)}
.case-hero__top{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:clamp(34px,7vw,110px);align-items:end}
.case-hero h1{font-size:clamp(3.5rem,8.2vw,8.8rem);margin:18px 0 0}
.case-hero__lede{color:var(--muted);font-size:clamp(1.08rem,1.6vw,1.32rem)}
.case-visual{position:relative;height:clamp(360px,48vw,620px);margin-top:clamp(48px,7vw,90px);border:1px solid var(--line);background:radial-gradient(circle at 66% 38%,rgba(120,162,255,.16),transparent 30%),#0b1016;overflow:hidden}
.case-visual svg{width:100%;height:100%;color:#78a2ff}
.case-visual .case-coord{position:absolute;font:400 9px/1 var(--mono);color:#8290a3;letter-spacing:.11em}
.case-visual .case-coord:first-of-type{left:20px;bottom:18px}.case-visual .case-coord:last-of-type{right:20px;top:18px}
.outcome-grid{display:grid;grid-template-columns:repeat(3,1fr);border-inline:1px solid var(--line);border-bottom:1px solid var(--line)}
.outcome{padding:28px;border-right:1px solid var(--line)}.outcome:last-child{border-right:0}
.outcome strong{display:block;font-size:clamp(2.4rem,5vw,5.2rem);font-weight:300;letter-spacing:-.07em}
.outcome span{font:600 9px/1.4 var(--mono);letter-spacing:.1em;color:var(--faint);text-transform:uppercase}
.case-layout{display:grid;grid-template-columns:minmax(220px,.32fr) minmax(0,1fr);gap:clamp(42px,9vw,140px)}
.case-aside{align-self:start;position:sticky;top:calc(var(--header) + 36px)}
.case-aside dl{margin:0;border-top:1px solid var(--line)}
.case-aside div{padding:14px 0;border-bottom:1px solid var(--line)}
.case-aside dt{font:600 9px/1 var(--mono);color:var(--faint);letter-spacing:.1em;text-transform:uppercase}
.case-aside dd{margin:7px 0 0;font-size:.92rem}
.case-body h2{font-size:clamp(2.3rem,4.6vw,4.8rem);margin:0 0 26px}
.case-body>p{font-size:clamp(1.07rem,1.5vw,1.28rem);color:var(--muted);margin-bottom:72px}
.detail-list{border-top:1px solid var(--line)}
.detail-row{display:grid;grid-template-columns:minmax(130px,.35fr) 1fr;gap:30px;padding:28px 0;border-bottom:1px solid var(--line)}
.detail-row h3{font:600 10px/1.5 var(--mono);color:var(--accent);letter-spacing:.1em;text-transform:uppercase}
.detail-row p{margin:0;color:var(--muted)}

.repo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.repo-card{display:flex;flex-direction:column;min-height:260px;padding:26px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .2s,transform .2s}
.repo-card:hover{border-color:var(--accent);transform:translateY(-3px)}
.repo-card__top{display:flex;justify-content:space-between;gap:12px;font:400 9px/1.4 var(--mono);color:var(--faint);text-transform:uppercase;letter-spacing:.09em}
.repo-card h3{margin:36px 0 12px;font-size:1.5rem}.repo-card p{color:var(--muted);font-size:.94rem}
.repo-card .tag-row{margin-top:auto}

.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.portal-card{position:relative;min-height:650px;border:1px solid var(--line);background:var(--surface);overflow:hidden;color:var(--ink);text-decoration:none;transition:transform .35s,border-color .35s}
.portal-card:hover,.portal-card:focus-visible{transform:translateY(-5px);border-color:var(--accent)}
.portal-preview{height:58%;overflow:hidden;border-bottom:1px solid var(--line)}
.portal-preview img{width:100%;height:100%;object-fit:cover;filter:saturate(.82);transition:transform .8s,filter .5s}
.portal-card:hover .portal-preview img{transform:scale(1.035);filter:saturate(1)}
.portal-copy{padding:30px}
.portal-copy h2{margin:22px 0 12px;font-size:clamp(2.2rem,4vw,4.4rem)}
.portal-copy p{color:var(--muted)}
.portal-link{display:flex;justify-content:space-between;margin-top:26px;padding-top:20px;border-top:1px solid var(--line);font:600 10px/1 var(--mono);letter-spacing:.09em;text-transform:uppercase}
.terminal-preview{position:relative;height:100%;padding:42px;background:#020906;color:#36ff91;font-family:var(--mono);text-shadow:0 0 8px rgba(54,255,145,.35);overflow:hidden}
.terminal-preview::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.34) 4px);pointer-events:none}
.terminal-preview__head{padding-bottom:15px;border-bottom:1px solid #1c8d53;font-size:11px;letter-spacing:.06em}
.terminal-preview__title{margin:60px 0 24px;font-size:clamp(1.8rem,3vw,3.1rem);line-height:1.05}
.terminal-preview__menu{display:grid;gap:12px;color:#1dcc70;font-size:12px}
.terminal-preview__menu span:first-child{color:#36ff91;border:1px solid #36ff91;padding:7px}

.article-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.article-card{grid-column:span 6;display:flex;flex-direction:column;min-height:410px;padding:28px;border:1px solid var(--line);background:var(--surface);transition:border-color .2s,transform .2s}
.article-card:first-child{grid-column:span 12;min-height:470px;padding:clamp(30px,5vw,64px)}
.article-card:hover{border-color:var(--accent);transform:translateY(-3px)}
.article-card__meta{font:400 9px/1.5 var(--mono);letter-spacing:.09em;color:var(--faint);text-transform:uppercase}
.article-card__diagram{height:100px;margin:32px 0;color:var(--accent)}
.article-card:first-child .article-card__diagram{height:150px;max-width:600px}
.article-card h2,.article-card h3{font-size:clamp(1.7rem,3vw,3.2rem);margin:22px 0 14px}
.article-card h2 a,.article-card h3 a{color:var(--ink);text-decoration:none}
.article-card p{color:var(--muted)}
.article-card .tag-row{margin-top:auto}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:45px;padding-top:22px;border-top:1px solid var(--line);font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.pagination a{color:var(--ink);text-decoration:none}.pagination a:hover{color:var(--accent)}

.article-header{padding:clamp(70px,10vw,145px) 0 clamp(60px,8vw,105px);border-bottom:1px solid var(--line)}
.article-header h1{max-width:1050px;margin:22px 0 28px;font-size:clamp(3.4rem,8vw,8.6rem)}
.article-header__summary{max-width:760px;color:var(--muted);font-size:clamp(1.08rem,1.6vw,1.35rem)}
.article-layout{display:grid;grid-template-columns:minmax(180px,.25fr) minmax(0,760px) minmax(140px,.2fr);gap:clamp(30px,6vw,90px);align-items:start}
.article-toc{position:sticky;top:calc(var(--header) + 34px);font:400 9px/1.65 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.article-toc strong{display:block;margin-bottom:12px;color:var(--ink)}
.article-toc a{display:block;padding:6px 0;color:var(--muted);text-decoration:none}.article-toc a:hover{color:var(--accent)}
.article-prose{font-size:1.04rem}
.article-prose h2{margin:2.2em 0 .65em;font-size:clamp(2rem,4vw,3.7rem)}
.article-prose h3{margin:2em 0 .7em;font-size:1.55rem}
.article-prose p,.article-prose li{color:color-mix(in srgb,var(--ink) 84%,var(--muted))}
.article-prose ul,.article-prose ol{padding-left:1.3em;margin:1.6em 0}
.article-prose li{padding-left:.35em;margin:.5em 0}
.article-prose a{font-weight:600}
.article-prose blockquote{margin:2.4em 0;padding:2px 0 2px 24px;border-left:2px solid var(--accent);color:var(--muted);font-size:1.12rem}
.article-prose pre{position:relative;margin:2.2em 0;padding:28px;background:#06090d;border:1px solid #252f3b;color:#dce5f3;overflow:auto;font:400 13px/1.7 var(--mono);tab-size:2}
.code-label{display:block;margin:-14px 0 16px;color:#7f8da1;font:600 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.tok-key{color:#8ab4ff}.tok-str{color:#a9e6c7}.tok-num{color:#ffc77e}.tok-com{color:#738196;font-style:italic}.tok-fn{color:#dbc3ff}
.callout{margin:2.5em 0;padding:24px;border:1px solid var(--line);background:var(--surface)}
.callout strong{display:block;margin-bottom:9px;color:var(--accent);font:600 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.callout p{margin:0}
.article-figure{margin:2.7em 0;border:1px solid var(--line);background:#0b1016}
.article-figure__visual{height:clamp(240px,38vw,390px);color:#78a2ff}
.article-figure__visual svg{width:100%;height:100%}
.article-figure figcaption{padding:15px 18px;border-top:1px solid #293440;color:#98a6b8;font:400 9px/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase}
.article-share{position:sticky;top:calc(var(--header) + 34px);font:400 9px/1.6 var(--mono);color:var(--faint);text-transform:uppercase;letter-spacing:.08em}
.article-share a{display:block;margin-top:10px;color:var(--muted);text-decoration:none}.article-share a:hover{color:var(--accent)}
.post-nav{display:grid;grid-template-columns:1fr 1fr;margin-top:70px;border-top:1px solid var(--line)}
.post-nav a{padding:28px 0;color:var(--ink);text-decoration:none}.post-nav a:last-child{text-align:right}
.post-nav small{display:block;margin-bottom:8px;font:600 9px/1 var(--mono);color:var(--faint);letter-spacing:.1em;text-transform:uppercase}

.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.6fr);gap:clamp(40px,9vw,130px)}
.brief-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:9px}.field--full{grid-column:1/-1}
.field label,.field legend{font:600 9px/1 var(--mono);letter-spacing:.1em;color:var(--faint);text-transform:uppercase}
.field-optional{color:var(--faint);font-weight:400;letter-spacing:.06em}
.form-section-heading{grid-column:1/-1;display:flex;align-items:end;justify-content:space-between;gap:20px;margin:18px 0 2px;padding-bottom:12px;border-bottom:1px solid var(--line)}
.form-section-heading:first-of-type{margin-top:0}.form-section-heading p{margin:0;color:var(--muted);font-size:.82rem}
.field-note{margin:0;color:var(--faint);font:400 9px/1.55 var(--mono)}
.form-trap{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.field input,.field textarea,.field select{width:100%;border:1px solid var(--line);border-radius:0;background:var(--surface);color:var(--ink);padding:15px 16px;outline:none}
.field input,.field select{height:52px}
.field textarea{min-height:190px;resize:vertical}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.field input:user-invalid,.field textarea:user-invalid{border-color:#e68181}
.form-actions{grid-column:1/-1;display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:8px}
.form-status{min-height:22px;margin:0;color:var(--muted);font:400 10px/1.5 var(--mono)}
.form-status[data-state="success"]{color:var(--success)}.form-status[data-state="error"]{color:#ff9c9c}
.contact-aside{padding-top:6px}
.contact-aside__block{padding:24px 0;border-top:1px solid var(--line)}
.contact-aside__block:last-child{border-bottom:1px solid var(--line)}
.contact-aside dt{font:600 9px/1 var(--mono);color:var(--faint);letter-spacing:.1em;text-transform:uppercase}
.contact-aside dd{margin:10px 0 0}.contact-aside a{color:var(--ink)}

.site-footer{position:relative;padding:clamp(62px,8vw,110px) 0 28px;border-top:1px solid var(--line);background:var(--surface)}
.footer-grid{display:grid;grid-template-columns:1.3fr repeat(3,.55fr);gap:clamp(28px,6vw,80px)}
.footer-brand{min-width:230px}
.footer-logo{display:block;width:230px;height:88px;background-image:var(--brand-lockup-image);background-repeat:no-repeat;background-position:center;background-size:var(--brand-lockup-footer-size)}
.footer-brand p{margin:14px 0 0;color:var(--muted);font-size:.95rem;font-weight:400;letter-spacing:0}
.footer-col{min-width:0}
.footer-col h2{margin-bottom:18px;font:600 9px/1 var(--mono);letter-spacing:.12em;color:var(--faint);text-transform:uppercase}
.footer-col a{display:block;width:max-content;max-width:100%;margin:9px 0;color:var(--muted);text-decoration:none;font-size:.94rem;overflow-wrap:anywhere}.footer-col a:hover{color:var(--accent)}
.footer-bottom{display:flex;justify-content:space-between;gap:24px;margin-top:70px;padding-top:22px;border-top:1px solid var(--line);color:var(--faint);font:400 9px/1.5 var(--mono);letter-spacing:.08em;text-transform:uppercase}

.js .reveal{opacity:0;transform:translateY(22px)}
.js .reveal.is-visible{opacity:1;transform:none;transition:opacity .7s cubic-bezier(.2,.8,.2,1),transform .7s cubic-bezier(.2,.8,.2,1)}
.status-dot{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 12%,transparent)}

@media(max-width:1100px){
  .hero-grid{grid-template-columns:1fr}.system-visual{min-height:440px}.hero-title{font-size:clamp(4rem,12vw,8.5rem)}
  .capability-rail{grid-template-columns:repeat(3,1fr)}.capability-rail a:nth-child(3){border-right:0}.capability-rail a:nth-child(-n+3){border-bottom:1px solid var(--line)}
  .capability-row{grid-template-columns:55px minmax(200px,.8fr) 1fr}.deliverable-list{grid-column:2/-1}
  .article-layout{grid-template-columns:minmax(150px,.22fr) minmax(0,760px)}.article-share{display:none}
}

@media(max-width:980px){
  .menu-toggle{display:inline-grid}
  .nav-menu{position:fixed;inset:var(--header) 0 auto 0;display:grid;gap:0;padding:14px var(--gutter) 28px;background:var(--paper);border-bottom:1px solid var(--line);transform:translateY(-120%);visibility:hidden;transition:transform .25s,visibility .25s}
  .nav-menu[data-open="true"]{transform:none;visibility:visible;box-shadow:var(--shadow)}
  .nav-link{display:flex;align-items:center;min-height:52px;border-bottom:1px solid var(--line);font-size:12px}
  .nav-link::after{display:none}
  .section-head,.page-hero__grid,.product-detail-grid,.case-hero__top,.contact-grid{grid-template-columns:1fr}
  .page-intro{max-width:680px}.product-summary{position:static}
  .project-card,.project-card:nth-child(3n+1),.project-card:nth-child(3n+2){grid-column:span 6}
  .product-feature{grid-template-columns:1fr}.product-feature__media{min-height:430px}.product-feature__media::before{background:linear-gradient(0deg,var(--surface),transparent 22%)}
  .process-grid{grid-template-columns:1fr 1fr}.process-step:nth-child(2){border-right:0}.process-step:nth-child(-n+2){border-bottom:1px solid var(--line)}.process-step:nth-child(2)::after{display:none}
  .portal-card{min-height:580px}
  .footer-grid{grid-template-columns:1.2fr repeat(2,.6fr)}.footer-col:last-child{grid-column:2}
}

@media(max-width:760px){
  :root{--header:68px}
  .section{padding:76px 0}.section--tight{padding:55px 0}
  .hero-title{font-size:clamp(3.5rem,18vw,6.8rem)}.system-visual{min-height:390px}.system-label{font-size:8px}.crosshair{display:none}
  .hero-index{grid-template-columns:1fr 1fr}.hero-index-item{border-bottom:1px solid var(--line);padding:14px 10px}.hero-index-item:nth-child(2){border-right:0}.hero-index-item:nth-child(3),.hero-index-item:nth-child(4){border-bottom:0}.hero-index-item:last-child{padding-left:10px}
  .product-grid,.gallery-grid,.portal-grid,.repo-grid{grid-template-columns:1fr}
  .product-feature{min-height:0}.product-feature__media{min-height:330px}.product-feature__copy{padding:30px}
  .project-card,.project-card:nth-child(3n+1),.project-card:nth-child(3n+2){grid-column:1/-1;min-height:500px}
  .capability-rail{grid-template-columns:1fr 1fr}.capability-rail a:nth-child(3){border-right:1px solid var(--line)}.capability-rail a:nth-child(even){border-right:0}.capability-rail a:nth-child(-n+4){border-bottom:1px solid var(--line)}
  .capability-row{grid-template-columns:38px 1fr;gap:18px}.capability-row p,.deliverable-list{grid-column:2}.deliverable-list{margin-top:4px}
  .engagement-bench{grid-template-columns:1fr}.engagement-tabs{display:grid;grid-template-columns:1fr 1fr;border-right:0;border-bottom:1px solid var(--line)}.engagement-tab{min-height:70px;border-right:1px solid var(--line)}.engagement-tab:nth-child(even){border-right:0}.engagement-tab[aria-selected="true"]::before{top:auto;right:0;bottom:-1px;width:auto;height:2px}.engagement-meta{grid-template-columns:1fr}
  .typical-grid,.trust-row{grid-template-columns:1fr}.typical-card{min-height:240px}.typical-card h3{margin-top:48px}
  .outcome-grid{grid-template-columns:1fr}.outcome{border-right:0;border-bottom:1px solid var(--line)}.outcome:last-child{border-bottom:0}
  .case-layout{grid-template-columns:1fr}.case-aside{position:static}.case-body>p{margin-bottom:48px}
  .detail-row{grid-template-columns:1fr;gap:8px}
  .filter-bar{align-items:flex-start;flex-direction:column}.filter-count{align-self:flex-end}
  .article-card,.article-card:first-child{grid-column:1/-1;min-height:390px;padding:28px}
  .article-layout{grid-template-columns:1fr}.article-toc{position:static;padding-bottom:24px;border-bottom:1px solid var(--line)}
  .proof-block{grid-template-columns:1fr}.cta-panel{grid-template-columns:1fr;align-items:start}
  .brief-form{grid-template-columns:1fr}.field--full,.form-actions{grid-column:1}
  .form-section-heading{align-items:flex-start;flex-direction:column;gap:8px}
  .footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}.footer-col:last-child{grid-column:auto}.footer-bottom{flex-direction:column}
}

@media(max-width:480px){
  :root{--gutter:18px}
  .brand{width:150px}
  .hero-title{font-size:clamp(3.25rem,18vw,5.2rem)}.hero-lede{font-size:1rem}.system-visual{min-height:340px}.system-label--b{right:2%}.system-label--c{left:7%}
  .display{font-size:2.55rem}.page-title{font-size:clamp(3rem,15vw,5.2rem)}
  .button-row{align-items:stretch}.button-row .btn{width:100%}
  .process-grid{grid-template-columns:1fr}.process-step{min-height:240px;border-right:0;border-bottom:1px solid var(--line)!important}.process-step:last-child{border-bottom:0!important}.process-step::after{display:none}.process-step h3{margin-top:46px}
  .capability-rail{grid-template-columns:1fr}.capability-rail a{min-height:125px;border-right:0!important;border-bottom:1px solid var(--line)!important}.capability-rail a:last-child{border-bottom:0!important}.capability-rail strong{margin-top:28px}
  .engagement-tabs{grid-template-columns:1fr}.engagement-tab{border-right:0}.engagement-panel{padding:28px 22px}
  .product-main-media{aspect-ratio:1/1}.gallery-grid{gap:12px}
  .portal-card{min-height:520px}.portal-preview{height:52%}.terminal-preview{padding:28px 20px}.terminal-preview__title{margin-top:42px}
  .post-nav{grid-template-columns:1fr}.post-nav a:last-child{text-align:left;border-top:1px solid var(--line)}
}

/* Consultancy site: restrained, information-led presentation. */
body.consultancy{font-size:clamp(15px,.18vw + 14px,16.5px);line-height:1.7}
body.consultancy::before{background-image:linear-gradient(rgba(85,96,108,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(85,96,108,.035) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,black,transparent 62%)}
body.consultancy::after{background:radial-gradient(circle at 78% 0,color-mix(in srgb,var(--accent) 7%,transparent),transparent 32%)}
.consultancy h1,.consultancy h2,.consultancy h3,.consultancy h4{letter-spacing:-.045em;line-height:1.06}
.consultancy .site-header{background:color-mix(in srgb,var(--paper) 94%,transparent);box-shadow:0 1px 0 var(--line)}
.consultancy .nav-shell{height:82px}
.consultancy .brand{width:158px;height:56px}
.consultancy .nav-menu{gap:clamp(18px,2vw,32px)}
.consultancy .nav-link{padding:12px 0;color:var(--muted);font:700 10px/1 var(--sans);letter-spacing:.08em}
.consultancy .nav-link::after{bottom:5px;height:2px}
.consultancy .icon-btn{width:40px;height:40px;border-radius:50%;background:var(--surface)}
.consultancy .btn{min-height:46px;padding:12px 18px;border-radius:4px;font-family:var(--sans);font-size:10px;font-weight:750;letter-spacing:.08em}
.consultancy .btn::after{font-family:var(--mono)}
.consultancy .section{padding:clamp(76px,8vw,116px) 0}
.consultancy .section--tight{padding:clamp(52px,6vw,78px) 0}
.consultancy .section--surface{background:color-mix(in srgb,var(--surface) 72%,transparent)}
.consultancy .eyebrow{gap:9px;font-size:9px;letter-spacing:.13em}
.consultancy .eyebrow::before{width:18px}
.consultancy .display{max-width:820px;margin:.42em 0 0;font-size:clamp(2.45rem,4.4vw,4.8rem);line-height:1.02;letter-spacing:-.06em}
.consultancy .section-head{grid-template-columns:minmax(0,1fr) minmax(280px,.55fr);gap:clamp(42px,7vw,104px);align-items:end;margin-bottom:clamp(44px,5vw,68px)}
.consultancy .section-head>p{max-width:520px;font-size:1.02rem;line-height:1.75}
.consultancy .section-action{margin-top:34px}

.consulting-hero{padding:clamp(78px,8vw,118px) 0 0;border-bottom:1px solid var(--line)}
.consulting-hero__grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(390px,.72fr);gap:clamp(50px,8vw,124px);align-items:start}
.consulting-hero__copy{padding-top:16px}
.consulting-hero__copy h1{max-width:850px;margin:24px 0 28px;font-size:clamp(3.4rem,6.2vw,6.8rem);line-height:.98;letter-spacing:-.07em}
.consulting-hero__lede{max-width:760px;margin-bottom:32px;color:var(--muted);font-size:clamp(1.08rem,1.4vw,1.28rem);line-height:1.65}
.availability-note{margin:26px 0 0;color:var(--faint);font:500 10px/1.6 var(--mono);letter-spacing:.03em}
.hero-brief{padding:34px;border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:8px;background:var(--surface);box-shadow:0 24px 70px color-mix(in srgb,var(--ink) 8%,transparent)}
.hero-brief .meta{font:650 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.hero-brief h2{margin:24px 0 18px;font-size:clamp(1.75rem,2.5vw,2.55rem)}
.hero-brief>p{color:var(--muted);font-size:.98rem}
.hero-brief dl{margin:28px 0 0;border-top:1px solid var(--line)}
.hero-brief dl div{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}
.hero-brief dt{font:650 9px/1.4 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink)}
.hero-brief dd{margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}
.practice-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(62px,7vw,96px);border-top:1px solid var(--line)}
.practice-strip span{min-height:105px;padding:24px 22px 22px 0;border-right:1px solid var(--line);color:var(--muted);font-size:.82rem;line-height:1.5}
.practice-strip span:not(:first-child){padding-left:22px}
.practice-strip span:last-child{border-right:0}
.practice-strip strong{display:block;margin-bottom:8px;color:var(--ink);font:700 10px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase}

.service-summary-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.service-summary-card{min-height:330px;padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 50%,transparent)}
.service-summary-card>span{font:650 9px/1 var(--mono);color:var(--accent);letter-spacing:.1em}
.service-summary-card h3{margin:52px 0 16px;font-size:1.45rem}
.service-summary-card h3 a{color:var(--ink);text-decoration:none}
.service-summary-card h3 a:hover{color:var(--accent)}
.service-summary-card p{color:var(--muted);font-size:.9rem;line-height:1.65}
.service-summary-card ul{margin:22px 0 0;padding:18px 0 0;list-style:none;border-top:1px solid var(--line)}
.service-summary-card li{position:relative;padding:5px 0 5px 15px;color:var(--faint);font:500 9px/1.5 var(--mono)}
.service-summary-card li::before{content:"";position:absolute;left:0;top:11px;width:5px;border-top:1px solid var(--accent)}
.practice-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.65fr);gap:clamp(48px,8vw,120px);align-items:start}
.practice-copy{padding-top:24px}
.practice-copy>p{color:var(--muted);font-size:1.08rem}
.check-list{margin:34px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.check-list li{padding:16px 0 16px 28px;border-bottom:1px solid var(--line);position:relative}
.check-list li::before{content:"✓";position:absolute;left:0;color:var(--accent);font-family:var(--mono)}

.consultancy .process-grid{gap:0;border-top:1px solid var(--line);border-left:1px solid var(--line)}
.consultancy .process-step{min-height:300px;padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface)}
.consultancy .process-step::after{display:none}
.consultancy .process-step .number{color:var(--accent)}
.consultancy .process-step h3{margin:72px 0 14px;font-size:1.55rem}
.consultancy .process-step p{font-size:.9rem;line-height:1.65}
.consultancy .project-grid{gap:20px}
.consultancy .project-card,.consultancy .project-card:nth-child(3n+1),.consultancy .project-card:nth-child(3n+2){grid-column:span 6;min-height:500px;border-radius:8px;background:var(--surface);box-shadow:0 18px 50px color-mix(in srgb,var(--ink) 5%,transparent)}
.consultancy .project-card:hover,.consultancy .project-card:focus-within{transform:translateY(-2px)}
.consultancy .project-card__visual{background:radial-gradient(circle at 70% 30%,rgba(57,109,161,.2),transparent 36%),#101820}
.consultancy .project-card__body{padding:30px}
.consultancy .project-card h2,.consultancy .project-card h3{margin:24px 0 12px;font-size:clamp(1.65rem,2.3vw,2.35rem)}
.consultancy .product-grid{gap:20px}
.consultancy .product-card{border-radius:8px;box-shadow:0 18px 50px color-mix(in srgb,var(--ink) 5%,transparent)}
.consultancy .product-card:hover{transform:translateY(-2px)}
.consultancy .product-card__body{padding:30px}

.consultancy .page-hero{padding:clamp(72px,7vw,106px) 0 clamp(64px,6vw,92px);background:color-mix(in srgb,var(--surface) 34%,transparent)}
.consultancy .breadcrumb{margin-bottom:54px}
.consultancy .page-hero__grid{grid-template-columns:minmax(0,1.15fr) minmax(300px,.55fr);gap:clamp(48px,8vw,120px)}
.consultancy .page-title{max-width:930px;font-size:clamp(3.15rem,5.4vw,6rem);line-height:1;letter-spacing:-.065em}
.consultancy .page-title em{display:inline;color:inherit;font-weight:inherit}
.consultancy .page-intro{max-width:520px;padding-bottom:4px;font-size:1.08rem;line-height:1.7}
.consultancy .capability-row{grid-template-columns:54px minmax(210px,.75fr) minmax(300px,1.15fr) minmax(210px,.72fr);gap:30px;padding:34px 0}
.consultancy .capability-row h2{font-size:clamp(1.4rem,2vw,2rem)}
.consultancy .capability-row p{font-size:.94rem}
.consultancy .engagement-bench{min-height:440px;border-radius:8px;overflow:hidden;background:var(--surface)}
.consultancy .engagement-tab{font-family:var(--sans);font-size:10px}
.consultancy .engagement-panel h3{font-size:clamp(2rem,3.3vw,3.5rem)}
.consultancy .typical-grid{gap:20px}
.consultancy .typical-card{min-height:270px;padding:30px;border-radius:8px}
.consultancy .typical-card h3{margin:58px 0 16px}
.consultancy .cta-panel{padding:clamp(36px,5vw,64px);border-radius:8px;background:var(--surface)}
.consultancy .cta-panel::before{display:none}
.consultancy .cta-panel h2{max-width:920px;font-size:clamp(2rem,3.7vw,4rem);line-height:1.08}
.next-step-panel{display:grid;grid-template-columns:.55fr 1fr 1fr;gap:clamp(28px,5vw,70px);padding-top:34px!important;border-top:1px solid var(--line)}
.next-step-panel h2{font-size:1.35rem}
.next-step-panel p{color:var(--muted);font-size:.94rem}

.consultancy .filter{border-radius:4px;font-family:var(--sans);font-weight:700}
.consultancy .article-card,.consultancy .article-card:first-child{grid-column:span 4;min-height:430px;padding:30px;border-radius:8px}
.consultancy .article-card:first-child .article-card__diagram,.consultancy .article-card__diagram{height:92px;max-width:none;margin:30px 0}
.consultancy .article-card h2,.consultancy .article-card h3{font-size:clamp(1.55rem,2vw,2.15rem)}
.consultancy .article-header{padding:clamp(72px,8vw,110px) 0 clamp(58px,6vw,84px);background:color-mix(in srgb,var(--surface) 34%,transparent)}
.consultancy .article-header h1{max-width:980px;font-size:clamp(3rem,5.8vw,6.3rem)}
.consultancy .article-prose h2{font-size:clamp(1.9rem,3.1vw,3rem)}

.consultancy .product-detail-hero,.consultancy .case-hero{padding:clamp(72px,7vw,104px) 0}
.consultancy .product-summary h1{font-size:clamp(2.8rem,4.6vw,5rem)}
.consultancy .product-main-media,.consultancy .gallery-item,.consultancy .trust-item{border-radius:8px;overflow:hidden}
.consultancy .case-hero h1{font-size:clamp(3rem,5.8vw,6.5rem)}
.consultancy .case-visual{height:clamp(330px,40vw,520px);margin-top:clamp(40px,5vw,70px);border-radius:8px}
.consultancy .outcome-grid{margin-top:12px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--surface)}
.consultancy .outcome strong{font-size:clamp(2.2rem,4vw,4rem)}
.consultancy .case-body h2{font-size:clamp(2rem,3.3vw,3.45rem)}
.consultancy .repo-card{min-height:240px;border-radius:8px}
.consultancy .contact-grid{grid-template-columns:minmax(0,1.15fr) minmax(290px,.55fr);gap:clamp(50px,8vw,110px)}
.consultancy .field input,.consultancy .field textarea,.consultancy .field select{border-radius:4px}

.consultancy .footer-logo{border-radius:4px}

@media(max-width:1100px){
  .consulting-hero__grid{grid-template-columns:1fr .72fr;gap:48px}
  .service-summary-grid{grid-template-columns:repeat(2,1fr)}
  .consultancy .article-card,.consultancy .article-card:first-child{grid-column:span 6}
  .consultancy .capability-row{grid-template-columns:44px minmax(190px,.75fr) 1fr}.consultancy .deliverable-list{grid-column:2/-1}
}

@media(max-width:820px){
  .consultancy .nav-shell{height:72px}
  .consultancy .brand{width:150px;height:52px}
  .consultancy .nav-menu{top:72px;background:var(--paper)}
  .consulting-hero{padding-top:62px}
  .consulting-hero__grid,.consultancy .section-head,.consultancy .page-hero__grid,.practice-grid,.next-step-panel{grid-template-columns:1fr}
  .consulting-hero__copy h1{font-size:clamp(3rem,11vw,5.5rem)}
  .hero-brief{margin-top:8px}
  .practice-strip{grid-template-columns:1fr 1fr}
  .practice-strip span:nth-child(2){border-right:0}.practice-strip span:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .consultancy .page-title{font-size:clamp(3rem,10vw,5.1rem)}
  .consultancy .capability-row{grid-template-columns:38px 1fr;gap:18px}.consultancy .capability-row p,.consultancy .deliverable-list{grid-column:2}
  .consultancy .engagement-bench{grid-template-columns:1fr}.consultancy .engagement-tabs{display:grid;grid-template-columns:1fr 1fr;border-right:0;border-bottom:1px solid var(--line)}
  .consultancy .engagement-tab{min-height:72px;border-right:1px solid var(--line)}.consultancy .engagement-tab:nth-child(even){border-right:0}
  .consultancy .contact-grid{grid-template-columns:1fr}
}

@media(max-width:620px){
  .consultancy .section{padding:66px 0}.consultancy .section--tight{padding:48px 0}
  .consultancy .display{font-size:2.55rem}
  .consulting-hero__copy h1{font-size:clamp(2.8rem,14vw,4.2rem)}
  .consulting-hero__lede{font-size:1rem}
  .hero-brief{padding:26px}.hero-brief dl div{grid-template-columns:1fr;gap:6px}
  .practice-strip{grid-template-columns:1fr}.practice-strip span,.practice-strip span:not(:first-child){min-height:0;padding:18px 0;border-right:0;border-bottom:1px solid var(--line)}
  .service-summary-grid{grid-template-columns:1fr}.service-summary-card{min-height:0}.service-summary-card h3{margin-top:36px}
  .consultancy .project-card,.consultancy .project-card:nth-child(3n+1),.consultancy .project-card:nth-child(3n+2){grid-column:1/-1;min-height:480px}
  .consultancy .process-grid{grid-template-columns:1fr}.consultancy .process-step{min-height:240px}.consultancy .process-step h3{margin-top:42px}
  .consultancy .product-grid,.consultancy .typical-grid{grid-template-columns:minmax(0,1fr)}
  .consultancy .product-card{min-width:0}
  .consultancy .article-card,.consultancy .article-card:first-child{grid-column:1/-1;min-height:380px}
  .consultancy .cta-panel{grid-template-columns:1fr;align-items:start}
  .consultancy .engagement-tabs{grid-template-columns:1fr}.consultancy .engagement-tab{border-right:0}
  .consultancy .engagement-meta{grid-template-columns:1fr}
  .consultancy .page-hero{padding-top:58px}.consultancy .breadcrumb{margin-bottom:40px}
  .consultancy .page-title{font-size:clamp(2.75rem,13vw,4rem)}
  .consultancy .brief-form{grid-template-columns:1fr}.consultancy .field--full,.consultancy .form-actions{grid-column:1}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.js .reveal,.js .reveal.is-visible{opacity:1;transform:none;transition:none}.system-svg .trace-path,.system-svg .pulse{animation:none}.product-feature__media img,.product-card img,.portal-preview img,.btn,.project-card,.article-card,.repo-card{transition:none}
}

@media(forced-colors:active){
  body::before,body::after,.system-visual::before,.system-visual::after{display:none}.btn,.filter,.tag,.icon-btn{border:1px solid ButtonText}.status-dot{box-shadow:none}.js .reveal{opacity:1;transform:none}
}

@media print{
  .site-header,.site-footer,.button-row,.filter-bar,.article-toc,.article-share{display:none!important}body{background:#fff;color:#000}body::before,body::after{display:none}.section{padding:36px 0}.article-layout{display:block}.article-prose{max-width:none}.article-prose pre{white-space:pre-wrap;border:1px solid #bbb;color:#000;background:#fff}
}
