/* TrivexaTech: one visual system, grounded in the original company identity. */
:root{--ink:#102e40;--muted:#546975;--line:#d7e0e4;--paper:#f6f8f9;--teal:#087783;--navy:#092534}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3,.font-display{font-family:Syne,Manrope,sans-serif;letter-spacing:-.045em;line-height:1.09}h2{font-size:clamp(32px,4.2vw,53px);font-weight:600}h3{font-weight:600}p{margin-top:0}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #168e9c;outline-offset:5px}::selection{background:#b4e4e8;color:var(--navy)}[hidden]{display:none!important}.text-muted{color:var(--muted)}.text-sky,.accent-text{color:var(--teal)}.text-white{color:var(--ink)}.max-w-6xl{max-width:1240px}.section-index,#process-label,#about-label,#contact-label{font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:.12em;line-height:1.6;color:var(--teal);font-weight:500}.reveal{opacity:1;transform:none}.company-brand-mark{display:inline-flex;width:32px;height:37px}.company-brand-mark img{width:100%;height:100%;object-fit:contain}.company-logo-lockup{display:block;width:165px}.company-logo-lockup img{width:100%;height:auto}.skip-link{position:fixed;top:16px;left:16px;z-index:200;display:grid;place-items:center;width:44px;height:44px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:3px;opacity:0;pointer-events:none;transform:translateY(-150%)}.skip-link:focus-visible{opacity:1;pointer-events:auto;transform:none}.skip-link:focus:not(:focus-visible){outline:none}:is(#navbar,.publication-page header>nav,.legal-page header>nav){background:#f6f8f9f5;border-bottom:1px solid var(--line);backdrop-filter:blur(15px);color:var(--ink)}:is(#navbar,.publication-page header>nav,.legal-page header>nav)>div:first-child{height:84px}#brand-name{font-family:Syne,sans-serif;font-weight:700;letter-spacing:-.045em;font-size:21px}:is(#navbar,.publication-page header>nav,.legal-page header>nav) .text-muted{font-size:12px;color:var(--muted)}:is(#navbar,.publication-page header>nav,.legal-page header>nav) a:hover{color:var(--teal)}#nav-cta,#nav-cta-mobile{border:1px solid var(--ink);border-radius:3px;padding:11px 19px;color:var(--ink);background:transparent;font-size:12px}#mobile-menu{background:var(--paper);border-top:1px solid var(--line)}#menu-btn{color:var(--ink)}.hero-section{padding-top:145px;overflow:hidden;background:#edf2f4}.hero-shell{display:grid;grid-template-columns:.87fr 1.3fr;gap:28px;align-items:center;min-height:610px;padding-bottom:70px}.hero-copy{position:relative;z-index:2}.hero-kicker{display:flex;align-items:center;gap:9px;font:9px 'IBM Plex Mono',monospace;letter-spacing:.07em;margin-bottom:30px}.status-tick{width:6px;height:6px;background:var(--teal)}.hero-copy h1{font-size:clamp(58px,6.7vw,90px);font-weight:600;letter-spacing:-.065em;margin:0 0 28px;line-height:.99}.hero-copy h1 span:last-child{color:var(--teal)}#hero-description{max-width:380px;font-size:15px;line-height:1.8}.hero-actions{display:flex;align-items:center;gap:23px;margin-top:30px}.primary-link{display:inline-flex;align-items:center;gap:22px;background:var(--navy);color:#fff;padding:16px 19px;font-size:12px;border-radius:3px}.primary-link:hover{background:var(--teal)}.quiet-link{font-size:12px;border-bottom:1px solid #8698a3;padding-bottom:3px}.hero-context{font:8px 'IBM Plex Mono',monospace;letter-spacing:.1em;color:var(--muted);margin-top:44px}.hero-product{position:relative;min-width:0;perspective:1500px;padding:38px 0 34px 20px;isolation:isolate}.hero-architecture{position:absolute;inset:-60px -180px -60px 65px;z-index:-2;overflow:hidden;clip-path:polygon(12% 0,100% 0,100% 100%,0 100%)}.hero-architecture:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#edf2f480,#143e4f20)}.hero-architecture img{width:100%;height:100%;object-fit:cover;filter:saturate(.35);transform:translateY(var(--photo-shift,0));scale:1.12}.product-selector{display:flex;align-items:center;justify-content:space-between;margin:0 0 18px 10px;font:9px 'IBM Plex Mono',monospace;letter-spacing:.04em}.workbench-choices{display:flex;padding:4px;background:#eaf0f2;border:1px solid #d3dfe4;border-radius:4px}.workbench-choices button{padding:7px 14px;font:11px Manrope,sans-serif;color:var(--ink);border:0;background:transparent;border-radius:2px}.workbench-choices button[aria-pressed=true]{background:var(--navy);color:white}.workbench-app{background:#fff;border:1px solid #cedce2;border-radius:6px;box-shadow:15px 30px 0 #1237470b,0 32px 65px #0c283e24;transform-style:preserve-3d;transform:rotateX(var(--hero-rx,8deg)) rotateY(var(--hero-ry,-9deg)) translateZ(var(--hero-z,0));transition:transform .12s linear}.workbench-app:focus-within{transform:none}.workbench-chrome{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding:16px 18px;font:8px 'IBM Plex Mono',monospace;color:#637783}.window-dots{display:flex;gap:4px}.window-dots i{width:5px;height:5px;background:#bdcbd2;border-radius:50%}.example-tag{margin-left:auto;color:var(--teal)}.workbench-body{display:flex}.workbench-sidebar{width:48px;flex-shrink:0;border-right:1px solid var(--line);display:flex;align-items:center;flex-direction:column;gap:28px;padding-top:24px;font:9px 'IBM Plex Mono',monospace;color:#8898a0;background:#f5f8fa}.workbench-brand-mark{width:24px;height:28px}.workbench-content{padding:31px 27px;width:100%;min-width:0}.workbench-kicker{font:7px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:var(--teal);margin-bottom:23px}.workbench-content h3{font-size:29px;margin:0 0 13px}.workbench-content>div>p{font-size:11px;line-height:1.8;max-width:340px;color:var(--muted);min-height:59px}.workflow-path{display:grid;gap:10px;margin:26px 0;transform-style:preserve-3d}.workflow-path>div{position:relative;padding:15px 17px;border:1px solid var(--line);background:#f9fbfc;box-shadow:4px 5px 0 #102e4007;transform:translateZ(18px)}.workflow-path>div:last-child{background:#eaf5f4;border-color:#bcdedc;transform:translateZ(33px)}.workflow-path span{display:block;font:7px 'IBM Plex Mono',monospace;color:var(--muted);margin-bottom:7px}.workflow-path strong{font-size:11px;font-weight:600}.workflow-path i{position:absolute;right:16px;top:26px;font-style:normal;color:var(--teal)}.workbench-bottom{display:flex;gap:15px;justify-content:space-between;font-size:8px;color:var(--muted);border-top:1px solid var(--line);padding-top:17px}.workbench-bottom a{color:var(--teal)}.product-caption{display:flex;justify-content:space-between;font:7px 'IBM Plex Mono',monospace;color:var(--muted);margin:29px 0 0 10px}.hero-bottom{display:flex;justify-content:space-between;border-top:1px solid #cad6dc;padding-top:20px;padding-bottom:23px;font-size:10px;color:var(--muted)}.hero-bottom a{color:var(--ink)}.studio-introduction{padding:94px 0;background:white}.introduction-layout{display:grid;grid-template-columns:1fr 2fr;gap:55px}.introduction-layout h2{font-size:clamp(29px,3.7vw,44px);margin:0 0 22px}.introduction-layout>div>p{max-width:580px;font-size:14px;color:var(--muted)}.capabilities-section{background:var(--navy);color:#f1f7fa;padding:98px 0 30px}.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:55px;margin-bottom:50px}.capabilities-section .section-index{color:#78c4cb}.section-heading h2{max-width:620px;margin:0 0 18px}.section-heading>div>p{font-size:14px;color:#a7bdc9}.service-tabs{display:flex;border-bottom:1px solid #43606e;overflow-x:auto;gap:20px}.service-tabs button{display:flex;align-items:center;gap:9px;flex:1;white-space:nowrap;border:0;border-bottom:2px solid transparent;background:none;color:#a8bfca;padding:18px 0;font-size:12px;text-align:left}.service-tabs button span{font:8px 'IBM Plex Mono',monospace;color:#73929f}.service-tabs button[aria-selected=true]{color:#fff;border-bottom-color:#71ced0}.service-panel{display:grid;grid-template-columns:1fr 1fr;min-height:430px;gap:60px;align-items:center;padding:48px 0 55px}.service-copy h3{font-size:clamp(32px,4vw,49px);margin:22px 0}.service-copy>p:not(.section-index):not(.service-footnote){color:#b0c5cf;font-size:14px;max-width:420px}.service-link{display:flex;justify-content:space-between;max-width:280px;font-size:12px;border-bottom:1px solid #597381;padding:20px 0 13px}.service-footnote{font:7px 'IBM Plex Mono',monospace;color:#89a7b6;margin-top:35px;letter-spacing:.06em}.service-photo{perspective:1100px;position:relative}.service-photo:after{content:'';position:absolute;inset:20px -12px -12px 20px;border:1px solid #4d7888;z-index:0}.service-photo img{position:relative;z-index:1;display:block;width:100%;height:300px;object-fit:cover;filter:saturate(.55);transform:rotateY(var(--scene-ry,-7deg)) rotateX(var(--scene-rx,3deg));box-shadow:0 30px 40px #0003}.capabilities-bottom{border-top:1px solid #385362;display:flex;justify-content:space-between;gap:30px;padding:25px 0;font-size:10px;color:#a7bdc9}.capabilities-bottom p{margin:0}.capabilities-bottom a{color:#b1e6e8}#technology{padding:33px 0;background:#e8eef0;border:0}#techstack-label{font:8px 'IBM Plex Mono',monospace;margin-bottom:22px}#techstack-items{font-family:Manrope,sans-serif;font-size:12px;gap:28px;color:#4b6574}#process{padding:110px 0;background:#fff}#process .grid{align-items:start}#process-title{font-size:clamp(34px,4.2vw,51px);max-width:450px}#process-description{font-size:14px;max-width:440px}.process-photo{margin:35px 40px 0 0;perspective:1200px}.process-photo img{width:100%;height:230px;object-fit:cover;filter:saturate(.4);transform:rotateY(var(--scene-ry,0deg));box-shadow:12px 14px 0 #dce7eb}.process-photo figcaption{font:7px 'IBM Plex Mono',monospace;color:var(--muted);margin-top:27px}#process-list{margin:0;counter-reset:steps;padding-left:25px;border-left:1px solid #c9d8df}#process-list li{border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;padding:27px 0;margin:0;gap:20px}#process-list li:first-child{padding-top:0}#process-list li>span{background:none;width:28px;height:auto;border-radius:0;font:11px 'IBM Plex Mono',monospace;color:var(--teal);align-items:start;padding-top:5px}#process-list h3{font-size:25px;margin-bottom:12px}#process-list p{font-size:12px;line-height:1.9}#about{padding:94px 0;background:#eaf0f2}#about>.max-w-6xl>.relative{border:0;border-radius:0;overflow:visible}#about .absolute{display:none}#about .relative.grid{padding:0;gap:100px}#about-title{font-size:42px;font-weight:600;line-height:1.16;color:var(--ink)}#about-paragraphs{font-size:15px;line-height:1.85;max-width:540px}.about-photo{margin:30px 0 0;max-width:240px}.about-photo img{width:100%;mix-blend-mode:multiply}.about-photo figcaption{font:8px 'IBM Plex Mono',monospace;color:var(--muted)}.studio-principles{margin:0}.studio-principles>div{position:relative;border-top:1px solid #bdcdd5;padding:32px 0 32px 40px}.studio-principles>div>span{position:absolute;left:0;top:35px;font:9px 'IBM Plex Mono',monospace;color:var(--teal)}.studio-principles dt{font-family:Syne,sans-serif;font-size:25px;font-weight:600;line-height:1.25;letter-spacing:-.025em;color:var(--ink);margin-bottom:12px}.studio-principles dd{font-size:14px;line-height:1.85;color:var(--muted);margin:0;max-width:320px}.journal-section{padding:100px 0;background:white}.journal-heading{display:grid;grid-template-columns:1fr 2fr;gap:12px 55px;align-items:end;margin-bottom:45px}.journal-heading h2{margin:0}.journal-heading>a{grid-column:2;font-size:11px;color:var(--teal)}.journal-layout{display:grid;grid-template-columns:2fr 1fr;gap:65px}.publish-card{border-radius:0!important;border:0;background:transparent;box-shadow:none;overflow:visible;height:auto}.publish-image{overflow:hidden}.publish-image img{width:100%;height:270px;object-fit:cover;filter:saturate(.65)}.publish-card h3{font-size:26px;line-height:1.25}.publish-card p{font-size:12px}.publish-card>div:last-child{padding:22px 0}.publish-card .text-sky{color:var(--teal)}#blog-grid{display:block}#blog-grid .publish-card+.publish-card{display:grid;grid-template-columns:180px 1fr;gap:25px;border-top:1px solid var(--line);padding-top:26px;margin-top:26px}#blog-grid .publish-card+.publish-card .publish-image img{height:155px}#blog-grid .publish-card+.publish-card>div:last-child{padding:0}#blog-grid .publish-card+.publish-card h3{font-size:21px}#news{border-left:1px solid var(--line);padding-left:30px}#news>h3{font:10px 'IBM Plex Mono',monospace;letter-spacing:.07em;text-transform:uppercase;margin-bottom:30px}#news-grid .publish-image{display:none}#news-grid .publish-card{border-bottom:1px solid var(--line);margin-bottom:20px}#news-grid .publish-card h3{font-size:21px}#news-grid .publish-card p{display:none}#news-grid .publish-card>div:last-child{padding:0 0 23px}#news-grid .publish-card a{font-size:11px}.faq-section{padding:75px 0 95px;background:#f0f4f6}.faq-layout{max-width:940px}.faq-heading{margin-bottom:40px}.faq-heading h2{margin:15px 0}.faq-list details{border-top:1px solid #c9d7de;padding:22px 0}.faq-list summary{font-size:15px;cursor:pointer;list-style:none;position:relative;padding-right:35px}.faq-list summary:after{content:'+';position:absolute;right:6px;color:var(--teal);font-size:21px;top:-5px}.faq-list details[open] summary:after{content:'−'}.faq-list details p{font-size:13px;color:var(--muted);max-width:730px;margin:20px 0 3px;line-height:1.9}#contact{padding:100px 0;background:#fff;border:0}#contact-title{font-size:clamp(42px,5vw,65px)}#contact-description{max-width:400px;font-size:14px}#contact-form{border:0;border-radius:0;background:none;padding:0;box-shadow:none}#contact-form-title{font-size:27px;margin-bottom:24px}.field-label{display:block;font-size:10px;color:var(--muted);margin-bottom:5px!important}#contact-form input,#contact-form textarea,#newsletter-email{color:var(--ink);background:#f7f9fa;border:1px solid #cbd9df;border-radius:3px;font-size:12px;box-shadow:none;margin-top:0}#contact-form input:focus,#contact-form textarea:focus,#newsletter-email:focus{outline:2px solid #258c98;outline-offset:2px}#contact-form button,#sub-form button{background:var(--navy);color:#fff;border:0;border-radius:3px;font-size:12px;padding:14px 20px}.form-note{font-size:9px;color:var(--muted)}.form-note a{text-decoration:underline}footer{background:#eaf0f2;border:0!important;padding:45px 0 0!important}.footer-invitation{display:none}.footer-newsletter{margin-top:40px;padding-top:30px;border-top:1px solid #c7d5dc}#sub-form{display:grid;grid-template-columns:1fr 1fr;gap:6px 40px;padding:0;border:0;border-radius:0;background:none}#newsletter-title{font-size:23px;margin:0}#newsletter-description{grid-column:1;font-size:11px;margin:0}#sub-form>div{grid-column:2;grid-row:1/3;align-items:center}#sub-status{grid-column:2;margin:0;font-size:11px}.footer-wordmark{display:flex;align-items:center;justify-content:space-between;max-width:1240px;padding:45px 20px 0;margin:auto;font-family:Syne,sans-serif;color:#bccdd6;font-size:clamp(45px,11.5vw,165px);letter-spacing:-.075em;line-height:1.05;overflow:hidden}.footer-wordmark b{font-weight:600}.footer-wordmark span{font-size:.65em}.scroll-progress{position:fixed;top:0;left:0;height:2px;background:var(--teal);z-index:100;transform-origin:left}.publication-page,.legal-page{background:var(--paper);color:var(--ink)}.publication-page main{padding-top:84px}.publication-page #publication-root>section:first-child{padding-top:64px;padding-bottom:48px}.publication-page h1,.legal-page h1{font-size:clamp(38px,6vw,76px);letter-spacing:-.05em}.publication-page .bg-surface,.legal-page .bg-surface{background:#fff}.publication-page .text-white,.legal-page .text-white{color:var(--ink)}.publication-page .publish-card h2{font-size:24px;line-height:1.25;letter-spacing:-.025em;font-weight:600}.publication-page .publish-card{border-bottom:1px solid var(--line);padding-bottom:20px}.publication-page .publish-image img{height:270px}.publication-page .rounded-3xl,.legal-page .rounded-3xl{border-radius:4px}.publication-page article,.legal-page article{line-height:1.9}.publication-page article h2,.legal-page h2{font-size:30px}.publication-page article h3{font-size:24px}.publication-page input{color:var(--ink)}.prose p,.article-body p{margin-bottom:22px}.prose a,.article-body a{color:var(--teal);text-decoration:underline}.publication-page .company-brand-mark{width:30px;height:34px}
@media(min-width:1024px){.hero-shell{gap:45px}.hero-product{margin-right:-10px}.hero-copy{padding-bottom:25px}}
@media(max-width:1023px){.hero-section{padding-top:120px}.hero-shell{grid-template-columns:1fr 1.2fr;gap:15px}.hero-copy h1{font-size:63px}.hero-actions{gap:15px;flex-wrap:wrap}.hero-context{font-size:7px}.workbench-content{padding:26px 19px}.workbench-content h3{font-size:25px}.workbench-chrome{font-size:6px}.hero-architecture{inset:-30px -100px -30px 20px}.service-tabs{gap:18px}.service-tabs button{font-size:10px}.service-panel{gap:30px}.section-heading,.introduction-layout{grid-template-columns:1fr 2.5fr;gap:30px}#about .relative.grid{gap:40px}.journal-layout{gap:35px}}
@media(max-width:767px){html{scroll-padding-top:80px}:is(#navbar,.publication-page header>nav,.legal-page header>nav)>div:first-child{height:72px}.hero-section{padding-top:110px}.hero-shell{display:block;padding-bottom:30px}.hero-copy h1{font-size:clamp(58px,14vw,85px);max-width:540px}.hero-kicker{font-size:8px;margin-bottom:25px}#hero-description{font-size:14px;max-width:460px}.hero-actions{margin-top:25px}.hero-context{margin-top:25px}.hero-product{margin-top:45px;padding:20px 6px 25px;max-width:580px}.hero-architecture{inset:0 -45px 0 30px}.workbench-app{transform:rotateX(calc(var(--hero-rx,0deg)*.5)) rotateY(calc(var(--hero-ry,0deg)*.5))}.product-selector{margin-left:0}.workbench-content h3{font-size:26px}.workbench-content>div>p{font-size:11px;min-height:0}.workflow-path{margin:22px 0}.workbench-bottom{font-size:8px;flex-wrap:wrap}.product-caption{font-size:6px;gap:10px}.hero-bottom{font-size:8px;gap:25px}.hero-bottom span{max-width:170px}.hero-bottom a{text-align:right}.studio-introduction{padding:58px 0}.introduction-layout,.section-heading{display:block}.introduction-layout>.section-index,.section-heading>.section-index{margin-bottom:30px}.introduction-layout h2{font-size:32px}.introduction-layout>div>p{font-size:13px}.capabilities-section{padding-top:60px}.section-heading{margin-bottom:30px}.section-heading h2{font-size:38px}.service-tabs{gap:25px}.service-tabs button{font-size:11px;padding:17px 0;flex:none}.service-panel{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding:30px 0 45px}.service-copy h3{font-size:37px;margin:20px 0}.service-copy>p:not(.section-index):not(.service-footnote){font-size:13px}.service-footnote{margin-top:22px}.service-photo{margin-right:12px}.service-photo img{height:240px}.capabilities-bottom{display:block;font-size:10px}.capabilities-bottom p{margin-bottom:15px}#technology{padding:28px 0}#techstack-items{gap:13px 22px;font-size:11px}#process,#about,#contact{padding:65px 0}#process-title{font-size:37px}.process-photo{margin-right:12px}.process-photo img{height:210px}#process-list{margin-top:8px}#process-list h3{font-size:23px}#about-title{font-size:34px}.studio-principles>div{padding-top:25px;padding-bottom:25px}.studio-principles>div>span{top:30px}.journal-section{padding:65px 0}.journal-heading{display:block}.journal-heading h2{font-size:36px;margin:22px 0 18px}.journal-layout{display:block}.publish-image img{height:240px}#blog-grid .publish-card+.publish-card{grid-template-columns:110px 1fr;gap:18px}#blog-grid .publish-card+.publish-card .publish-image img{height:135px}#blog-grid .publish-card+.publish-card h3{font-size:18px}#blog-grid .publish-card+.publish-card p{display:none}#news{border-left:0;border-top:1px solid var(--line);padding:30px 0 0;margin-top:40px}.faq-section{padding:55px 0}.faq-list summary{font-size:13px}.faq-list details p{font-size:12px}#contact-title{font-size:46px}#contact-form-title{font-size:26px}#contact .grid{gap:42px}.footer-newsletter{margin-top:30px}#sub-form{display:block}#newsletter-description{margin:8px 0 22px}#sub-form>div{gap:10px}#newsletter-email{min-width:0;width:100%}#sub-form button{padding:13px}.footer-wordmark{padding-top:35px;font-size:13vw}footer .text-sm{font-size:10px}.publication-page main{padding-top:72px}.publication-page #publication-root>section:first-child{padding-top:42px;padding-bottom:34px}.publication-page h1{font-size:43px}.company-logo-lockup{width:145px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.workbench-app,.workflow-path>div,.service-photo img,.process-photo img,.hero-architecture img{transform:none!important}}
body.font-sans{font-family:Manrope,sans-serif;color:var(--ink)}#scroll-progress{position:fixed;top:0;left:0;width:100%;height:2px;background:var(--teal);z-index:100;transform-origin:left}#blog-grid>a+a{display:block;border-top:1px solid var(--line);padding-top:26px;margin-top:26px}#blog-grid>a+a .publish-card{display:grid;grid-template-columns:180px 1fr;gap:25px}#blog-grid>a+a .publish-image img{height:155px}#blog-grid>a+a .publish-card>div:last-child{padding:0}#blog-grid>a+a h3{font-size:21px}#process-list li.active>span{color:var(--navy)}.legal-shell{max-width:920px}.legal-note{background:#e7eff2;border:1px solid var(--line)}.legal-copy h2,.prose-copy h2{font-size:28px;margin:40px 0 18px}.legal-copy p,.prose-copy p{font-size:15px;margin-bottom:22px}.legal-copy ul,.prose-copy ul{list-style:disc;padding-left:22px;margin:20px 0 30px}.legal-copy li,.prose-copy li{margin:8px 0}.legal-page main{padding-bottom:70px}.legal-page main>section:first-child{padding-top:130px}.service-detail{padding-bottom:85px}.service-detail h1{margin-top:22px;max-width:850px}.service-lead{font-size:19px;max-width:740px;color:var(--muted);margin:28px 0}.service-primary{display:inline-block;background:var(--navy);color:white;padding:14px 22px;font-size:12px;border-radius:3px;margin:0 0 32px}.service-related{font-size:12px;color:var(--muted)}.section-link{font-size:12px;color:var(--teal)}.eyebrow{font:10px 'IBM Plex Mono',monospace;color:var(--teal);margin-top:30px}.publish-hero img{width:100%;max-height:480px;object-fit:cover}.prose-copy{max-width:750px}.publish-image-fallback{min-height:200px;background:#dbe7ec;display:grid;place-items:center;font-family:Syne,sans-serif;font-size:34px}.publish-back{color:var(--teal);font-size:12px}.article-body,.prose-copy{color:var(--ink)}
@media(max-width:767px){#blog-grid>a+a .publish-card{grid-template-columns:110px 1fr;gap:18px}#blog-grid>a+a .publish-image img{height:135px}#blog-grid>a+a h3{font-size:18px}#blog-grid>a+a .publish-card p{display:none}.service-lead{font-size:16px}.legal-page main>section:first-child{padding-top:110px}.legal-copy p,.prose-copy p{font-size:14px}}

/* Shared typography roles: headings never inherit the utility palette or layout size. */
:is(.publication-page,.legal-page) header>nav{isolation:isolate}
:is(.publication-page,.legal-page) #brand-name{font-size:21px;line-height:1.2;white-space:nowrap}
:is(.publication-page,.legal-page) header .btn-primary{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ink);border-radius:3px;padding:11px 18px;color:var(--ink);background:transparent;white-space:nowrap;font-size:12px}
:is(.publication-page,.legal-page) header .hidden.btn-primary{display:none}
.publication-page #publication-root>section:first-child h1{position:static;margin:12px 0 22px;font-size:clamp(42px,5vw,68px);line-height:1.1;font-weight:600;color:var(--ink)}
.publication-page #publication-root>section:first-child>.max-w-6xl>p:first-child{font:10px 'IBM Plex Mono',monospace;letter-spacing:.12em;color:var(--teal)}
.publication-page #publication-root>section:first-child>.max-w-6xl>p:last-child{font-size:16px;line-height:1.8;max-width:650px}
.publication-page .publish-card{height:auto;display:flex;flex-direction:column}
.publication-page .publish-card>div:last-child{flex:1;display:flex;flex-direction:column}
.publication-page .publish-card>div:last-child>p:last-child{margin-top:auto;padding-top:24px}
.publication-page .publish-card:hover h2{color:var(--teal)}
.publication-page .publish-card .publish-image img{transition:transform .25s ease}
.publication-page .publish-card:hover .publish-image img{transform:scale(1.025)}
.publication-page footer #footer-brand:not(.sr-only){font-size:16px;line-height:1.4}
#contact-form-title{line-height:1.25}#contact-description{font-size:15px;line-height:1.85}
#contact-form button:hover,.primary-link:hover{background:#07616c}
#contact-form button{min-height:48px}.form-note{font-size:11px;line-height:1.7}
@media(min-width:768px){:is(.publication-page,.legal-page) header .hidden.btn-primary{display:inline-flex}}
@media(max-width:1023px) and (min-width:768px){:is(.publication-page,.legal-page) header .gap-8{gap:18px}:is(.publication-page,.legal-page) header .btn-primary{padding:10px;font-size:11px}}
@media(max-width:767px){#about-paragraphs{font-size:14px}.studio-principles dd{font-size:14px}.publication-page .publish-card h2{font-size:23px}.publication-page #publication-root>section:first-child h1{font-size:42px}.publication-page #publication-root>section:first-child>.max-w-6xl>p:last-child{font-size:14px}}

.mobile-action-bar{display:none}
@media(max-width:767px){
 body{padding-bottom:calc(78px + env(safe-area-inset-bottom,0px))}
 .mobile-action-bar{display:flex;position:fixed;inset:auto 0 0;z-index:60;align-items:stretch;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));background:#f6f8f9fa;border-top:1px solid #c5d5dd;backdrop-filter:blur(14px);box-shadow:0 -6px 24px #102e4009}
 .mobile-project-link{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:1;background:var(--navy);color:white;border-radius:3px;min-height:48px;padding:12px 16px;font-size:12px;font-weight:600}
 .mobile-top-link{display:flex;align-items:center;justify-content:center;gap:8px;min-width:76px;min-height:48px;border:1px solid #a6bdc9;border-radius:3px;color:var(--ink);font-size:12px;font-weight:600;background:white}
 .mobile-top-link span{font-size:19px}.mobile-project-link:hover{background:var(--teal)}
}

@media(min-width:768px){.mobile-action-bar,.mobile-top-link{display:none!important}}
