:root{color-scheme:light;--ink:#173f37;--muted:#52655b;--paper:#f7f8f2;--line:#dce4d9;--accent:#d5f57b}*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}a{color:inherit;text-underline-offset:5px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid #6b8b32;outline-offset:5px}.skip{position:absolute;top:-80px;left:20px;background:white;padding:12px;z-index:2}.skip:focus{top:12px}header,footer{max-width:1160px;margin:auto;padding:26px 32px}header{display:flex;justify-content:space-between;align-items:center;gap:22px;border-bottom:1px solid var(--line)}header img{display:block;object-fit:contain;object-position:left;max-width:100%}.header-link{font-size:14px;font-weight:600;max-width:48%;text-align:right}main{max-width:1080px;margin:auto;padding:0 32px}.hero{padding:88px 0 52px;max-width:940px}.kicker,.index,.step-number{font-size:11px;font-weight:750;letter-spacing:.14em}.kicker{margin:0 0 25px;color:#597145}h1{font-size:clamp(40px,6vw,76px);font-weight:650;letter-spacing:-.055em;line-height:1.04;margin:0 0 30px;text-wrap:balance}h2{font-size:clamp(27px,3.2vw,40px);font-weight:630;letter-spacing:-.035em;line-height:1.17;margin:0 0 25px;text-wrap:balance}h3{font-size:22px;line-height:1.25;letter-spacing:-.02em;font-weight:650}.lead{font-size:21px;color:var(--muted);max-width:770px;margin:0}.actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;margin:32px 0 0}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;background:var(--ink);color:white;text-decoration:none;font-weight:650;border-radius:12px;padding:15px 23px;min-height:52px}.button:hover{background:#285748}.text-link{font-weight:620}.intro{font-size:19px;color:var(--muted);max-width:830px;border-top:1px solid var(--line);padding-top:30px;margin:0 0 75px}section:not(.hero){margin:0 0 76px}section>p{max-width:850px}.section-head{display:grid;grid-template-columns:75px 1fr;gap:15px}.index{padding-top:9px;color:#687a56}.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px;list-style:none;padding:0;margin:20px 0 0}.steps li{border-top:1px solid var(--line);padding-top:23px}.step-number{color:#687a56}.steps p,.cases p{color:var(--muted)}.cases{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 45px}.cases article{padding:22px 0;border-top:1px solid var(--line)}.cases h3{margin-top:0}.small{font-size:13px}.muted{color:var(--muted)}.work{background:#eaf0e2;border-radius:22px;padding:38px}.work p{max-width:780px}details{border-top:1px solid var(--line);padding:20px 0}details:last-of-type{border-bottom:1px solid var(--line)}summary{font-size:18px;font-weight:620;cursor:pointer;padding-right:20px}details p{color:var(--muted);max-width:850px}.closing{padding:40px;border-radius:22px;background:var(--ink);color:white}.closing .button{background:var(--accent);color:var(--ink)}.closing .text-link{color:white}footer{border-top:1px solid var(--line);font-size:13px;color:var(--muted);margin-top:40px;margin-bottom:24px}.footer-top,footer nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:18px}.footer-top{margin-bottom:25px}.footer-top>a:first-child{font-size:18px;font-weight:700;text-decoration:none}footer nav{justify-content:flex-start;margin-bottom:18px}footer [aria-current]{font-weight:750;text-decoration:none}.technical .hero{max-width:900px;padding-bottom:42px}.technical h1{font-size:clamp(38px,5vw,62px)}.technical section:not(.hero){border-top:1px solid var(--line);padding-top:30px;margin-bottom:56px}.technical section>p{max-width:890px}.toc{display:flex;flex-wrap:wrap;gap:12px 24px;padding:22px 0 35px;font-size:14px}.toc a{font-weight:600}.technical pre{background:#143b33;color:#edf6e7;border-radius:14px;padding:24px;overflow-x:auto;font:13px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace}.technical pre code{white-space:pre;overflow-wrap:normal}.technical p code,.technical td code,.technical th code{font-size:.9em;overflow-wrap:anywhere}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:15px}th,td{padding:17px 15px;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-size:12px;text-transform:uppercase;letter-spacing:.07em}tbody th{font-weight:550;white-space:nowrap}blockquote{margin:24px 0;background:#eaf0e2;border-left:3px solid #7e9b4b;padding:25px;font-size:17px;border-radius:0 12px 12px 0}@media(max-width:700px){header,footer{padding:22px}header img{width:112px}.header-link{font-size:12px}main{padding:0 22px}.hero{padding:50px 0 35px}.lead{font-size:18px}.intro{font-size:17px;margin-bottom:50px}.actions{gap:20px}.section-head{display:block}.index{display:block;margin-bottom:15px}h1{font-size:clamp(37px,9.2vw,58px)}.steps{grid-template-columns:1fr;gap:18px}.steps li{display:grid;grid-template-columns:30px 1fr;gap:0 15px}.steps h3{margin:0}.steps p{grid-column:2}.step-number{padding-top:4px}.cases{grid-template-columns:1fr}.work,.closing{padding:25px}section:not(.hero){margin-bottom:50px}.button{max-width:100%;gap:20px}.technical pre{padding:17px;font-size:12px}.technical section:not(.hero){margin-bottom:42px}.technical .hero{padding-top:45px}.technical h1{font-size:38px}th,td{padding:12px 10px}blockquote{padding:20px;font-size:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Mobile: prevent focus zoom and accidental double-tap, without blocking pinch zoom. */
@media(max-width:767px),(hover:none) and (pointer:coarse){input,select,textarea{font-size:16px!important;max-width:100%}button,select,summary,[role=button]{min-height:44px}button,a,summary,input,select,textarea,[role=button]{touch-action:manipulation;-webkit-tap-highlight-color:rgba(24,63,55,.12)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
