@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Inter:wght@400;500;600;700&display=swap');
@import url('/refinement.css');

:root{--display:'Inter',Arial,sans-serif;--mono:'IBM Plex Mono','DM Mono',monospace}
body{font-family:var(--display);font-feature-settings:'cv02' 1,'cv03' 1,'cv04' 1;letter-spacing:-.012em}
h1,h2,h3,.section-title,.tw-footer-logo,.brand{font-family:var(--display)!important;font-style:normal!important}
.mono,.eyebrow,.label,.proof,.back,.status,.tw-network h3,.tw-network h4,.tw-footer-links h3{font-family:var(--mono)!important}
h1 em,h1 i,h2 em,h2 i,.outro h2 em,.brand i{font-family:inherit!important;font-style:normal!important;font-weight:inherit!important;letter-spacing:inherit!important}
.brand i{color:var(--accent);margin-left:1px}.intro h1,.chapter h2,.page h1,.contact h1{font-weight:600!important;letter-spacing:-.058em!important}.chapter h2{line-height:.92!important}.page h1{line-height:.94!important}button,input,textarea,select{font-family:var(--display)!important}

.top{transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}.top.is-scrolled{box-shadow:0 10px 30px #1616160d}.links a{position:relative}.links a:after{content:'';position:absolute;left:0;right:0;bottom:-7px;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .28s ease}.links a:hover:after,.links a:focus-visible:after{transform:scaleX(1)}

/* A restrained diagnostic field: mouse position subtly energizes the interface. */
body:before{content:'';position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(440px circle at var(--cursor-x,52%) var(--cursor-y,10%),#ef4f2f0b,transparent 65%);transition:background .16s linear}
.intro{position:relative;isolation:isolate;overflow:hidden}.intro:after{content:'';position:absolute;z-index:-1;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 1px),#1717170d calc(12.5% - 1px),#1717170d 12.5%);mask-image:linear-gradient(90deg,transparent,black 18%,black 82%,transparent);opacity:.55}.intro:before{content:'';position:absolute;z-index:-1;left:-22%;top:0;width:22%;height:100%;background:linear-gradient(90deg,transparent,#ef4f2f13,transparent);animation:hero-scan 10s cubic-bezier(.45,0,.55,1) infinite}@keyframes hero-scan{55%,100%{transform:translateX(600vw)}}

@media(min-width:761px){.intro h1{font-size:clamp(58px,8vw,128px);max-width:10.9ch}.intro-bottom{width:min(100%,1160px);display:grid;grid-template-columns:1.618fr 1fr;gap:clamp(42px,7.2vw,112px);align-items:end}.split-head{grid-template-columns:1.618fr 1fr!important;gap:clamp(42px,7.2vw,112px)!important}.page{padding-top:clamp(88px,9vw,132px)!important;padding-bottom:clamp(88px,8vw,122px)!important}.contact{grid-template-columns:1.35fr 1fr!important;gap:clamp(52px,8vw,124px)!important}.a11y-page~*{isolation:isolate}}

/* Test journey: visual objects act like live diagnostics, without moving the scroll geometry. */
.chapter .visual{transform:translate3d(calc(var(--motion-x,0) * 7px),calc(var(--motion-y,0) * 7px),0);transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.phone,.gridcard,.a11y,.decision{isolation:isolate}.phone:after,.gridcard:after,.a11y:after,.decision:after{content:'';position:absolute;z-index:4;left:0;right:0;height:2px;top:-4px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:0;animation:diagnostic-scan 4.8s ease-in-out infinite}.gridcard:after{background:linear-gradient(90deg,transparent,#ef4f2f,#f2a100,transparent)}.a11y:after{background:linear-gradient(90deg,transparent,#207a62,transparent)}.decision:after{background:linear-gradient(90deg,transparent,#ef4f2f,transparent)}@keyframes diagnostic-scan{10%{opacity:0;transform:translateY(0)}20%,72%{opacity:.8}90%{opacity:0;transform:translateY(560px)}}
.phone .price{position:relative;overflow:hidden}.phone .price:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 30%,#fff6 50%,transparent 70%);transform:translateX(-130%);animation:price-check 4.6s ease-in-out infinite}@keyframes price-check{45%,100%{transform:translateX(130%)}}
.wave{animation:signal-drift 3.8s linear infinite}.meter i{animation-duration:1.35s!important}.a11y:before{animation:orbit-dash 12s linear infinite}@keyframes orbit-dash{to{transform:rotate(360deg)}}.focus{animation:focus-check 3.2s ease-in-out infinite}@keyframes focus-check{50%{box-shadow:17px 17px 0 #207a6250,0 0 0 8px #207a6220}}.decision .rows .on{animation:verified 1.9s ease-in-out infinite}.decision .rows .on:nth-child(2){animation-delay:.24s}.decision .rows .on:nth-child(3){animation-delay:.48s}@keyframes verified{50%{filter:brightness(1.8);transform:scaleY(1.7)}}@keyframes signal-drift{to{background-position:110px 0,-110px 0}}

/* Page transitions: content enters in measured groups, not as a generic slide show. */
/* Content must remain available before JavaScript or an observer callback runs.
   The technical scans below provide motion; never use opacity as a page-loading gate. */
[data-reveal],[data-reveal="stagger"]>*{opacity:1;transform:none}[data-reveal].is-visible{opacity:1;transform:none}[data-reveal="stagger"].is-visible>*{opacity:1;transform:none}[data-reveal="stagger"].is-visible>*:nth-child(2){transition-delay:.08s}[data-reveal="stagger"].is-visible>*:nth-child(3){transition-delay:.16s}[data-reveal="stagger"].is-visible>*:nth-child(4){transition-delay:.24s}[data-reveal="stagger"].is-visible>*:nth-child(5){transition-delay:.32s}
.button,.cta,.tw-footer-contact{transition:transform .25s ease,box-shadow .25s ease,background .25s ease!important}.button:hover,.cta:hover{transform:translateY(-3px);box-shadow:0 12px 25px #17171724}.card,.scenario,.signal,.criteria article,.design-map>div,.decision-map article{transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease}.card:hover,.scenario:hover,.signal:hover,.criteria article:hover,.design-map>div:hover{transform:translateY(-5px);box-shadow:0 14px 28px #1e1d1914}
.signal{position:relative;overflow:hidden}.signal:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:3px;background:#e5b734;transform:scaleX(0);transform-origin:left;transition:transform .45s ease}.signal:hover:after{transform:scaleX(1)}.scenario{position:relative}.scenario:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);transform:scaleY(0);transform-origin:bottom;transition:transform .3s ease}.scenario:hover:before{transform:scaleY(1)}

/* Each practice gets its own verification language. */
.software-matrix{position:relative;overflow:hidden}.software-matrix:after{content:'';position:absolute;z-index:2;left:0;right:0;top:0;height:1px;background:var(--accent);box-shadow:0 0 16px #ef4f2f80;animation:matrix-scan 8s ease-in-out infinite}@keyframes matrix-scan{0%,16%{transform:translateY(0);opacity:0}24%,76%{opacity:.75}92%,100%{transform:translateY(460px);opacity:0}}
.audit{position:relative;overflow:hidden}.audit-screen{position:relative;overflow:hidden}.audit-screen:before{content:'';position:absolute;inset:-25%;background:linear-gradient(115deg,transparent 45%,#207a6215 50%,transparent 55%);animation:audit-sweep 7s ease-in-out infinite}.audit-screen>*{position:relative}.focus-card{animation:accessibility-focus 3.8s ease-in-out infinite}@keyframes audit-sweep{55%,100%{transform:translateX(100%)}}@keyframes accessibility-focus{50%{box-shadow:16px 16px 0 #207a6250,0 0 0 7px #207a621c}}
.compare-panel{position:relative;overflow:hidden}.compare-panel.good:after{content:'';position:absolute;left:-15%;top:0;width:18%;height:100%;background:linear-gradient(90deg,transparent,#fff3,transparent);transform:skewX(-18deg);animation:compare-sweep 6s ease-in-out infinite}@keyframes compare-sweep{48%,100%{left:115%}}
.decision-map{position:relative;overflow:hidden}.decision-map:after{content:'';position:absolute;left:0;top:0;width:20%;height:2px;background:#ef4f2f;box-shadow:0 0 15px #ef4f2f80;animation:decision-route 7s ease-in-out infinite}@keyframes decision-route{50%,100%{transform:translateX(500%)}}
.release-proof{position:relative;overflow:hidden}.release-proof:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent)}
.contact{position:relative;overflow:hidden;background-image:linear-gradient(90deg,transparent 0,transparent 61.8%,#ffffff0a 61.8%,#ffffff0a calc(61.8% + 1px),transparent calc(61.8% + 1px))}.contact:before{content:'';position:absolute;z-index:0;right:0;top:0;width:38.2%;height:100%;background:repeating-linear-gradient(0deg,transparent 0,transparent 47px,#ffffff08 48px),linear-gradient(180deg,#ffffff05,transparent 58%);pointer-events:none}.contact>*{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}[data-reveal],[data-reveal="stagger"]>*{opacity:1!important;transform:none!important}}
