:root{--ink:#172632;--muted:#536472;--paper:#f6f8fa;--green:#b7ed67;--line:#d6dfe4}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit}a:focus-visible{outline:3px solid #41831f;outline-offset:5px}.skip{position:absolute;top:-100px;background:white;padding:15px}.skip:focus{top:0;z-index:10}header,main,footer{max-width:1240px;margin:auto;padding-left:44px;padding-right:44px}header{height:108px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:800;text-decoration:none;display:flex;align-items:center;gap:20px}.brand span{font-size:16px;font-weight:500}nav{display:flex;gap:32px}nav a{text-decoration:none;font-size:14px;font-weight:bold}.intro{padding:76px 0 88px;display:grid;grid-template-columns:1.7fr 1fr;gap:55px;align-items:end}.eyebrow,.project-no,.note-label{font-size:12px;letter-spacing:.13em;font-weight:700}.eyebrow{margin:0 0 24px}h1{font-size:clamp(42px,5.5vw,72px);line-height:1.08;letter-spacing:-.05em;margin:0 0 28px}h1 span{color:#5b8d33}.lead{font-size:19px;max-width:535px;color:var(--muted)}.button{display:inline-flex;gap:50px;align-items:center;background:var(--ink);color:white;text-decoration:none;padding:15px 22px;border-radius:3px;margin-top:16px;font-weight:bold;font-size:14px}.intro-note{border-left:2px solid var(--green);padding-left:28px;margin-bottom:6px}.intro-note p{font-size:24px;line-height:1.5;letter-spacing:-.03em}.location{font-size:14px;color:var(--muted)}.section-title{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:24px;font-size:13px;color:var(--muted)}.feature{display:grid;grid-template-columns:1fr 1fr;background:#e8eef1;border-radius:6px;overflow:hidden}.feature-image{background:white;position:relative;min-height:540px}.feature-image img{width:100%;height:540px;object-fit:contain;padding:24px}.image-label{position:absolute;bottom:14px;left:22px;font-size:12px;color:var(--muted)}.feature-copy{padding:38px 40px}h2{font-size:38px;line-height:1.15;letter-spacing:-.035em;margin:16px 0 22px}.project-no{color:var(--muted);font-size:12px}.feature-copy>p:not(.project-no){color:var(--muted)}.metrics{display:grid;grid-template-columns:1fr 1.4fr;gap:20px;border-top:1px solid #c4cfd5;padding-top:20px;margin-top:26px}.metrics strong{display:block;font-size:30px;letter-spacing:-.04em}.metrics span{display:block;font-size:13px;line-height:1.4;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:7px;margin:23px 0}.tags span{font-size:12px;border:1px solid #b9c7ce;padding:4px 9px;border-radius:3px}.text-link{font-size:14px;font-weight:bold;text-underline-offset:5px}.feature-copy>small{display:block;font-size:12px;color:var(--muted);margin-top:7px}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px;padding:34px 0 40px}h3{font-size:16px;margin:0 0 10px}.case-grid p{font-size:15px;color:var(--muted);margin:0}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:75px}figure{margin:0}figure img{width:100%;height:340px;object-fit:cover;border-radius:4px}figcaption{font-size:12px;color:var(--muted);padding-top:9px}.beam{background:var(--ink);color:white;display:grid;grid-template-columns:1fr 1fr;gap:55px;padding:42px;border-radius:5px}.beam .project-no{color:#b7c5ce}.beam p:not(.project-no){color:#d0dbe1}.beam .tags{margin-bottom:0}.beam .tags span{border-color:#586873}.results{align-self:center}.results .eyebrow{font-size:11px;color:var(--green)!important}.result-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 10px}.result-row span{font-size:14px}.result-row strong{font-size:29px;white-space:nowrap}.result-row small{font-size:14px;font-weight:400}.bar{height:9px;background:#3b4b59}.bar i{display:block;height:100%;background:var(--green)}.measured i{background:#82bcd3}.result-note{font-size:13px;line-height:1.5;margin-top:24px}.beam-notes{padding-bottom:60px}.tool{display:grid;grid-template-columns:1fr 2fr;gap:35px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:35px 0}.tool h2{font-size:32px;margin-top:10px}.tool p:not(.project-no){color:var(--muted)}.about{display:grid;grid-template-columns:1.3fr 1fr;gap:90px;padding:78px 0}.about h2{font-size:34px}.about p{color:var(--muted)}.about aside{padding:38px 0 0}.about aside p{font-size:14px;margin-bottom:27px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:23px;padding-bottom:30px;font-size:12px;color:var(--muted)}footer>span:first-child{font-weight:bold;color:var(--ink)}@media(max-width:800px){header,main,footer{padding-left:24px;padding-right:24px}.intro{grid-template-columns:1fr;padding:50px 0;gap:35px}.intro-note{display:block;padding-left:20px;margin-bottom:0;min-width:0}.intro-note p{font-size:clamp(20px,5.5vw,24px)}.feature,.beam{grid-template-columns:1fr}.feature-image{min-height:360px}.feature-image img{height:400px}.feature-copy{padding:28px}.beam{padding:28px;gap:20px}.case-grid{gap:24px;grid-template-columns:1fr}.photo-grid{gap:14px;margin-bottom:45px}figure img{height:250px}.about{grid-template-columns:1fr;gap:10px;padding:50px 0}.about aside{padding:0}.tool{grid-template-columns:1fr;gap:0}footer{flex-wrap:wrap}}@media(max-width:480px){header{height:85px}.brand span{display:none}nav{gap:20px}h1{font-size:44px}.photo-grid{grid-template-columns:1fr}figure img{height:330px}.feature-image img{height:360px}h2{font-size:33px}.metrics strong{font-size:27px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.clutch-gallery{margin:28px 0 0;align-items:start}.clutch-gallery img{height:420px;object-fit:contain;background:#e8eef1}.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.65,.3,1)}.reveal.is-visible{opacity:1;transform:translateY(0)}.button,.text-link{transition:background-color .2s ease,transform .2s ease}.button:hover{background:#2b4354;transform:translateY(-2px)}@media(max-width:480px){.clutch-gallery img{height:auto;max-height:480px}}@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.button,.text-link{transition:none}.button:hover{transform:none}}

/* Scroll-linked editorial movement, with native scrolling preserved. */
.evidence{display:grid;grid-template-columns:.8fr 1.4fr;gap:65px;padding:36px 0 80px;position:relative}.evidence-intro{position:sticky;top:100px;align-self:start;padding-top:35px}.evidence-intro h2{font-size:clamp(30px,3.2vw,43px);line-height:1.18}.evidence-intro p:not(.eyebrow){color:var(--muted)}.evidence-hint{font-size:14px;color:var(--muted);display:block;margin-top:35px}.evidence-step{padding:40px 0 65px;min-height:70vh}.evidence-heading span{font-size:13px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.evidence-heading h3{font-size:27px;letter-spacing:-.03em;margin-top:10px}.evidence-frame{display:block;overflow:hidden;background:#e8eef1;border-radius:8px;border:1px solid var(--line);transform-origin:center}.evidence-frame img{display:block;width:100%;height:auto;max-height:530px;object-fit:contain}.evidence-step>p{font-size:16px;color:var(--muted);margin-bottom:8px}.evidence-step>small{font-size:12px;color:var(--muted)}.specimen-detail{display:flex;align-items:center;gap:20px;margin-top:25px;text-decoration:none;font-size:14px}.specimen-detail img{width:105px;height:130px;object-fit:cover;border-radius:5px}.specimen-detail small{display:block;color:var(--muted);margin-top:5px}.scroll-surface{will-change:transform;transform:translate3d(0,var(--drift,0px),0) scale(var(--zoom,1));opacity:var(--clarity,1)}.feature-image{overflow:hidden}.feature-image img{will-change:transform;transform:translate3d(0,var(--hero-drift,0px),0) scale(var(--hero-scale,1))}.intro h1{transform:translate3d(0,var(--title-drift,0px),0);opacity:var(--title-opacity,1)}.reveal{transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
@media(max-width:800px){.evidence{grid-template-columns:1fr;gap:10px;padding-top:0}.evidence-intro{position:static}.evidence-hint{margin-top:15px}.evidence-step{min-height:0;padding:30px 0 45px}.evidence-frame img{max-height:480px}}
@media(prefers-reduced-motion:reduce){.scroll-surface,.feature-image img,.intro h1{transform:none!important;opacity:1!important;will-change:auto}.evidence-intro{position:static}.reveal{transition:none!important}}

.document-links{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:22px}.document-links a{font-size:14px;font-weight:600;text-underline-offset:4px}.evidence-intro .document-links{flex-direction:column}

.about-photo{margin:26px 0}.about-photo img{display:block;width:100%;height:auto;border-radius:6px}.about-photo figcaption{font-size:13px}

.contact-links{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:24px}.contact-links a{font-size:14px;font-weight:600;text-underline-offset:5px}.contact-section{display:flex;align-items:center;justify-content:space-between;gap:35px;border-top:1px solid var(--line);padding:45px 0 55px}.contact-section h2{margin-top:0}.contact-section .eyebrow{margin-bottom:15px}.contact-section p a{font-size:15px}.beam .document-links{margin-top:16px}.contact-section>div:first-child>a{overflow-wrap:anywhere}@media(max-width:800px){.contact-section{flex-direction:column;align-items:flex-start;gap:5px}}



.encoder-test{display:grid;grid-template-columns:1fr 1.35fr;gap:38px;align-items:center;margin:0 0 75px;padding-top:28px;border-top:1px solid var(--line)}
.encoder-test .eyebrow{margin-bottom:12px}.encoder-test h3{font-size:24px;line-height:1.25;letter-spacing:-.02em}.encoder-test p:not(.eyebrow){color:var(--muted)}
.encoder-test figure{min-width:0}.encoder-test figure img{display:block;width:100%;height:auto;object-fit:contain;background:#000}.encoder-test figcaption{font-size:13px}
@media(max-width:800px){.encoder-test{grid-template-columns:1fr;gap:20px;margin-bottom:50px}}

.photo-grid img{display:block}.feeder-final img{object-fit:cover;object-position:center}.feeder-final a{display:block}

/* A clear chapter opening for the final project. */
.tool{background:var(--ink);color:white;border:0;border-radius:5px;padding:42px;gap:45px;margin-top:35px;margin-bottom:28px;align-items:center}
.tool .project-count{display:block;color:var(--green);font-size:clamp(30px,4vw,46px);font-weight:700;line-height:1.1;letter-spacing:-.04em}
.tool .project-no{color:#b7c5ce;margin-top:18px}.tool h2{font-size:38px;margin-top:0}.tool p:not(.project-no){color:#d0dbe1}.tool .tags{margin-bottom:0}.tool .tags span{border-color:#586873}
@media(max-width:800px){.tool{grid-template-columns:1fr;padding:28px;gap:24px}.tool h2{font-size:32px}.tool .project-no{margin-bottom:0}}

.about{display:block;padding:78px 0}.about-heading{max-width:700px;margin-bottom:32px}.about-heading .eyebrow{margin-bottom:14px}.about-heading h2{font-size:clamp(30px,3.4vw,42px);margin:0;line-height:1.15}
.about-introduction{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:42px;align-items:center}.about .about-photo{margin:0}.about-photo img{aspect-ratio:4/3;object-fit:cover}.about-bio p{margin:0 0 18px}.about-bio p:last-child{margin-bottom:0}
.about-details{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;border-top:1px solid var(--line);margin-top:38px;padding-top:30px}.about-detail{min-width:0}.about-detail h3{font-size:18px;margin:0 0 18px}.about-detail p{font-size:14px;line-height:1.65;margin:0 0 18px}.about-detail p:last-child{margin-bottom:0}.about-detail strong{color:var(--ink);font-weight:600}.detail-meta{font-size:13px}.toolkit-list{list-style:none;padding:0;margin:0;display:grid;gap:10px;color:var(--muted);font-size:14px}.toolkit-list span{display:block;font-size:13px}
@media(max-width:800px){.about{padding:52px 0}.about-introduction{grid-template-columns:1fr;gap:26px}.about-details{gap:24px;grid-template-columns:1fr 1fr}.about-detail:last-child{grid-column:1/-1}.toolkit-list{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.about-details{grid-template-columns:1fr;gap:26px}.about-detail+.about-detail{padding-top:24px;border-top:1px solid var(--line)}.toolkit-list{grid-template-columns:1fr}}
