:root{--ink:#182b31;--muted:#53676b;--teal:#087783;--teal-dark:#075d67;--paper:#fff;--wash:#f0f6f4;--hero:#eaf3f3;--line:#d4e1de;--max:1080px;--font:Arial,Helvetica,ui-sans-serif,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.7 var(--font);-webkit-font-smoothing:antialiased}a{color:var(--teal);text-underline-offset:4px}a:hover{color:var(--teal-dark);text-decoration-thickness:2px}a,summary,button,input,textarea{touch-action:manipulation}a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,button:focus-visible{outline:3px solid #294fa0;outline-offset:5px}h1,h2,h3,p,ul,ol{margin-top:0}h1,h2,h3{font-family:var(--font);color:var(--ink);letter-spacing:-.025em;font-weight:700}h1{font-size:clamp(38px,4.7vw,58px);line-height:1.1;max-width:20ch;margin-bottom:24px;text-wrap:balance;color:var(--teal-dark)}h2{font-size:clamp(28px,3vw,36px);line-height:1.2;margin-bottom:22px;max-width:30ch}h3{font-size:23px;line-height:1.3;margin:28px 0 14px}p{margin-bottom:20px}ul,ol{padding-left:24px}li{margin-bottom:9px}img{max-width:100%;height:auto}figure{margin:0}.skip{position:absolute;top:-100px;left:16px;z-index:9;background:var(--ink);color:#fff;padding:12px}.skip:focus{top:12px}.announcement{background:var(--teal-dark);padding:10px 24px;text-align:center;font-size:13px;line-height:1.5}.announcement a{color:#fff;text-decoration:none}header{max-width:1320px;margin:0 auto;padding:25px 40px;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.logo{display:block;width:232px;height:auto}header nav{display:flex;align-items:center;gap:26px;font-size:14px;font-weight:600}header nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none;white-space:nowrap}header nav a[aria-current="page"]:not(.button){box-shadow:inset 0 -2px var(--teal)}header nav a:hover{color:var(--teal)}.button,.cta a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 23px;border:1px solid var(--teal);border-radius:5px;background:var(--teal);color:#fff!important;font-size:16px;font-weight:700;line-height:1.5;text-decoration:none}.button:hover,.cta a:hover{background:var(--teal-dark);border-color:var(--teal-dark)}.cta{margin:28px 0 0}.content-section{max-width:var(--max);margin:0 auto;padding:46px 48px}.content-section+.content-section{border-top:1px solid var(--line)}.content-section>p,.content-section>ul,.content-section>ol{max-width:68ch}.content-section>div:not(.gallery):not(.reviews-grid):not(.project-grid)>p{max-width:68ch}main>.content-section:first-child{margin-top:32px;margin-bottom:8px;padding-top:44px;padding-bottom:44px;background:var(--hero);border-top:3px solid var(--teal);border-radius:0 0 6px 6px}.hero-subtitle{max-width:40ch!important;font-size:22px;font-weight:600;line-height:1.4;color:var(--teal-dark);margin:0 0 28px}main>h1{max-width:var(--max);margin:32px auto 0;padding:38px 48px;background:var(--hero);border-top:3px solid var(--teal)}main>h1+.content-section{padding-top:30px}.content-section:has(>.reviews-grid){background:var(--wash)}.content-section:has(>details){background:#f7f9f8}.content-section:has(>.project-grid){background:#f4f7f6}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}.reviews-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:36px;max-width:880px;margin:auto}.review{font-size:17px;line-height:1.65;min-width:0}.review img{width:100%;margin-bottom:16px;border:1px solid var(--line);border-radius:4px}.review figcaption p:first-child{font-weight:700;color:var(--ink)}.review figcaption a{font-size:15px;display:inline-block;padding:5px 0}.review figcaption p{margin-bottom:14px}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 26px;font-size:16px;line-height:1.65}.project-grid article{min-width:0;border-top:2px solid var(--line);padding-top:18px}.project-grid img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:4px}.project-grid h3,.project-grid .project-heading{font-size:23px;line-height:1.3;letter-spacing:-.02em;margin:20px 0 12px;max-width:none}.project-grid h3 a,.project-grid .project-heading a{color:var(--ink);text-decoration:none}.project-grid h3 a:hover,.project-grid .project-heading a:hover{color:var(--teal);text-decoration:underline}.project-grid p{color:var(--muted)}details{border-bottom:1px solid var(--line);padding:18px 0}summary{cursor:pointer;min-height:44px;align-content:center;padding:5px 0;color:var(--ink);font-size:19px;font-weight:600;line-height:1.45}details[open] summary{color:var(--teal-dark)}details p{font-size:17px;max-width:68ch;margin:18px 0 8px}table{border-collapse:collapse;display:block;overflow:auto;max-width:100%;font-size:16px}th,td{padding:14px;border:1px solid var(--line);text-align:left}th{background:var(--wash)}hr{border:0;border-top:1px solid var(--line);margin:24px 0}footer{border-top:1px solid var(--line);background:var(--wash);margin-top:40px;padding:36px max(24px,calc((100vw - 984px)/2));font-size:16px}footer>p:first-child{font-size:17px}footer nav{display:flex;flex-wrap:wrap;gap:8px 26px;font-size:14px}footer nav a{display:inline-flex;align-items:center;min-height:44px}.demo-note{border-top:1px solid var(--line);padding-top:22px;margin:22px 0 0;font-size:13px;color:var(--muted)}.demo-form{border:1px solid var(--line);border-radius:6px;margin-top:24px;margin-bottom:30px;background:#f7f9f8}.demo-form label{display:block;font-size:16px;font-weight:600;margin-bottom:8px}.demo-form input,.demo-form textarea{display:block;width:100%;font:18px/1.5 var(--font);border:1px solid #758f90;border-radius:4px;padding:12px;margin-bottom:20px;background:#fff;color:var(--ink)}.demo-form button{font:600 16px/1.5 var(--font);padding:14px 20px;background:#e0e7e5;color:#465754;border:1px solid #bdccca;border-radius:5px}.migration-table{font-size:13px;overflow-wrap:anywhere}body:has(.migration-table) main{max-width:1200px;margin:auto;padding:24px}body:has(.migration-table) main>h1{margin-top:8px;margin-bottom:28px}.original-label{font-size:.75em;white-space:nowrap;color:var(--muted)}@media(max-width:1000px){header{flex-wrap:wrap;justify-content:center;gap:14px;padding:22px 24px}header nav{justify-content:center;gap:22px}.content-section{padding:38px 32px}main>.content-section:first-child{margin:24px 20px 6px}main>h1{margin:24px 20px 0;padding:32px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){body{font-size:17px;line-height:1.7}.announcement{font-size:12px;padding:10px 18px}header{padding:20px 18px 16px;gap:16px}.logo{width:216px}header nav{width:100%;flex-wrap:wrap;gap:3px 18px;font-size:14px}.button{font-size:14px;padding:10px 17px;min-height:44px}h1{font-size:36px;line-height:1.13;letter-spacing:-.03em;max-width:21ch}h2{font-size:29px;line-height:1.2}h3{font-size:22px}.hero-subtitle{font-size:20px;line-height:1.4}.content-section{padding:30px 22px}main>.content-section:first-child{margin:18px 12px 0;padding:28px 22px;border-radius:0 0 5px 5px}main>h1{margin:18px 12px 0;padding:28px 22px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reviews-grid,.project-grid{grid-template-columns:1fr;gap:28px}.review{font-size:17px}.review figcaption a{min-height:44px;align-content:center}summary{font-size:18px}.project-grid article{padding-top:16px}footer{padding:30px 22px;margin-top:28px}.demo-form{margin-inline:12px}.migration-table{font-size:12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
