/* Webflow base styles the prototype does not have */
figcaption{text-align:inherit;margin-top:0}
label{font-weight:inherit;margin-bottom:0}
:root{--ph:#e1e4e5;color-scheme:light;--ground:#f1f3f4;--ink:#333134;--ink-soft:#5d5a5e;--sage:#d1d4b5;--green:#668170;--green-text:#4f6857;--rule-on-dark:rgba(241,243,244,0.35);--font-display:"interstate","Overpass",Arial,sans-serif;--font-body:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;--space-2xs:4px;--space-xs:8px;--space-s:16px;--space-m:28px;--space-l:40px;--space-xl:72px;--frame-inset:16px;--max-width:1680px;--ease:cubic-bezier(.2,.7,.2,1)}*{box-sizing:border-box}*::before{box-sizing:border-box}*::after{box-sizing:border-box}[hidden]{display:none !important}html{background:var(--ground)}body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}img{max-width:100%;display:block}a{color:var(--green-text);text-underline-offset:3px;text-decoration-thickness:1px}a:hover{color:var(--ink)}:focus-visible{outline:2px solid var(--green);outline-offset:2px}p{margin:0}ul{margin:0;padding:0;list-style:none}.panel.is-image img{width:100%;height:100%;object-fit:cover}.t-body p + p{margin-top:var(--space-s)}.is-dark .t-meta{color:var(--ground);opacity:.82}.nav a.t-label{color:var(--ink);text-decoration:none;position:relative;padding-block:6px}.nav a.t-label::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease)}.nav a.t-label:hover::after{transform:scaleX(1)}.nav a.t-label[aria-current="page"]::after{transform:scaleX(1)}.nav a.t-label[aria-current="page"]::before{content:"";position:absolute;left:-11px;top:50%;width:5px;height:5px;margin-top:-3px;background:var(--green)}.page[hidden]{display:none !important}.ci-panel:hover .t-h3{color:var(--green-text)}.ci-panel:focus-visible .t-h3{color:var(--green-text)}.bi-row .t-h2{transition:color 200ms ease}.bi-row .bi-side{text-align:right}.bi-row:hover .t-h2{color:var(--green-text)}.bi-row:focus-visible .t-h2{color:var(--green-text)}.bi-row.is-on .t-h2{color:var(--green-text)}.bi-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 200ms ease}.bi-frame img.is-on{opacity:1}.step + .step{border-top:1px solid var(--ink)}.spec-strip>div{background:var(--sage);color:var(--ink);padding:var(--space-m);display:flex;flex-direction:column;gap:var(--space-xs)}.spec-strip .t-meta{color:var(--ink)}.filter-row button,.filter-row .w-button{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.06em;background:var(--ground);color:var(--ink);border:0;padding:14px 18px;cursor:pointer;transition:background-color 200ms ease}.view-switch button,.view-switch .w-button{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:13px;letter-spacing:.06em;background:var(--ground);color:var(--ink);border:0;padding:14px 18px;cursor:pointer;transition:background-color 200ms ease}.filter-row button:hover,.filter-row .w-button:hover{background:#e4e7df}.view-switch button:hover,.view-switch .w-button:hover{background:#e4e7df}.filter-row button[aria-pressed="true"],.filter-row .w-button[aria-pressed="true"]{background:var(--sage)}.view-switch button[aria-pressed="true"],.view-switch .w-button[aria-pressed="true"]{background:var(--sage)}.filter-row .grow{flex:1;background:var(--ground)}.work-card .wc-img{aspect-ratio:4 / 3;overflow:hidden}.work-card .wc-img img{width:100%;height:100%;object-fit:cover;transition:transform 300ms ease}.work-card:hover .wc-img img{transform:scale(1.03)}.work-card .wc-text{padding:var(--space-s) var(--space-s) var(--space-m);display:flex;flex-direction:column;gap:6px}.work-card:hover .t-h3{color:var(--green-text)}.work-card .loc{font-style:italic;font-weight:300;color:var(--ink-soft)}.case-hero img{width:100%;height:100%;object-fit:cover}.case-hero.is-drawing img{object-fit:contain;background:#fff}.gallery .is-drawing img{object-fit:contain;background:#fff}.gallery .panel.is-image{aspect-ratio:4 / 3}.gallery .panel.is-image.is-wide{grid-column:span 2;aspect-ratio:16 / 9}.pager a{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:4px}.pager a:hover .t-h3{color:var(--green-text)}.pager .next{text-align:right;align-items:flex-end}.pager .t-h3{font-size:clamp(16px,1.3vw,22px)}.pf-video img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.9}.pf-video .cap{position:relative;color:var(--ground);padding:var(--space-m);display:flex;justify-content:space-between;width:100%;gap:var(--space-s);border-top:1px solid var(--rule-on-dark);background:var(--ink)}.features .panel{display:flex;flex-direction:column;gap:var(--space-s);min-height:240px}.features .fi{width:44px;height:44px;stroke:var(--ink);fill:none;stroke-width:1.5;margin-bottom:auto}table.compare{width:100%;border-collapse:collapse;min-width:520px}.compare th{text-align:left;padding:16px var(--space-m);border-bottom:1px solid var(--ink);vertical-align:top}.compare td{text-align:left;padding:16px var(--space-m);border-bottom:1px solid var(--ink);vertical-align:top}.compare thead th{background:var(--ground)}.compare th + th{border-left:1px solid var(--ink)}.compare td + td{border-left:1px solid var(--ink)}.compare tbody tr:last-child td{border-bottom:0}.compare tbody tr:last-child th{border-bottom:0}.compare td{font-size:15px}.compare .yes::before{content:"";display:inline-block;width:7px;height:7px;background:var(--ink);margin-right:10px;vertical-align:2px}.compare .col-full{background:#e7eadc}.pf-strip>div{background:var(--sage);padding:var(--space-m);display:flex;flex-direction:column;gap:var(--space-xs)}.pf-strip .t-meta{color:var(--ink)}.pf-strip .buy{grid-row:span 2;grid-column:4;justify-content:space-between;gap:var(--space-m)}.faq details{border-bottom:1px solid var(--ink)}.faq details:last-child{border-bottom:0}.faq summary{list-style:none;cursor:pointer;padding:20px var(--space-l);display:flex;justify-content:space-between;gap:var(--space-s);font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:18px}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";font-size:22px;line-height:1;transition:transform 200ms ease}.faq details[open] summary::after{transform:rotate(45deg)}.faq summary:hover{color:var(--green-text)}.faq .ans{padding:0 var(--space-l) 22px;max-width:46em;color:var(--ink-soft);font-size:16px}.bullets li{position:relative;padding-left:20px;font-size:15px;line-height:1.5}.bullets li + li{margin-top:8px}.bullets li::before{content:"";position:absolute;left:0;top:.55em;width:6px;height:6px;background:currentColor}.is-dark a{color:var(--sage)}.foot .panel{padding:var(--space-m)}.foot ul li{font-size:15px;line-height:1.9}.foot a{color:var(--ink);text-decoration:none}.foot a:hover{color:var(--green-text);text-decoration:underline}.menu .bar{border-bottom:1px solid var(--ink)}.menu nav a{display:block;padding:18px var(--space-s);border-bottom:1px solid var(--ink);color:var(--ink);text-decoration:none}@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important}*::before{transition:none !important;animation:none !important}*::after{transition:none !important;animation:none !important}.reveal.pre{opacity:1;transform:none}}@media (max-width:991px){.pf-strip .buy{grid-column:span 2;grid-row:auto}}@media (max-width:767px){.pf-strip .buy{grid-column:auto}.gallery .panel.is-image.is-wide{grid-column:auto}.bi-row .bi-side{text-align:left}}@media (max-width:478px){body{font-size:16px}}.svc-cell .arrow{margin-top:auto;font-family:var(--font-display);font-weight:700;font-size:22px;transition:transform 200ms ease}.svc-cell:hover .t-h3{color:var(--green-text)}.svc-cell:hover .arrow{transform:translateX(6px)}.svc-cell.is-dark .t-meta{color:var(--ground);opacity:.82}.svc-cell.is-dark:hover .t-h3{color:var(--sage)}.bullets.big li{position:relative;padding-left:20px;font-size:16px;line-height:1.5}.bullets.big li + li{margin-top:14px}.field>label{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.06em;padding:0;margin-bottom:var(--space-xs)}.field legend{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:14px;letter-spacing:.06em;padding:0;margin-bottom:var(--space-xs)}.field input{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--ground);border:1px solid var(--ink);border-radius:0;padding:14px 16px;appearance:none}.field select{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--ground);border:1px solid var(--ink);border-radius:0;padding:14px 16px;appearance:none}.field textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--ground);border:1px solid var(--ink);border-radius:0;padding:14px 16px;appearance:none}.field select{background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}.field input:focus{background-color:var(--sage);outline:2px solid var(--green);outline-offset:0}.field select:focus{background-color:var(--sage);outline:2px solid var(--green);outline-offset:0}.field textarea:focus{background-color:var(--sage);outline:2px solid var(--green);outline-offset:0}.field input::placeholder{color:var(--ink-soft);opacity:.8}.field textarea::placeholder{color:var(--ink-soft);opacity:.8}.field .err{font-size:13px;color:#8a2b2b}.choice input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}.choice span{display:block;background:var(--ground);padding:12px 16px;font-size:15px;transition:background-color 200ms ease;height:100%}.choice:hover span{background:#e7eadc}.choice input:checked + span{background:var(--sage)}.choice input:checked + span::before{content:"";display:inline-block;width:7px;height:7px;background:var(--ink);margin-right:10px;vertical-align:2px}.choice input:focus-visible + span{outline:2px solid var(--green);outline-offset:-2px}.tl-num span{display:inline-block;transition:opacity 200ms ease,transform 200ms ease}.tl-num span.flip{opacity:0;transform:translateY(12%)}.tl-row img{aspect-ratio:4 / 3;object-fit:cover;width:100%;max-width:520px}.contact-card .t-meta a{color:var(--sage)}.contact-more a{color:var(--sage)}.partner-list a{background:var(--ground);padding:22px var(--space-l);display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-s);text-decoration:none;color:var(--ink)}.partner-list a:hover .t-h3{color:var(--green-text)}.pr-img img{width:100%;height:100%;object-fit:contain;transition:transform 300ms ease}.product:hover .pr-img img{transform:scale(1.03)}.pr-text .row-between{width:100%;margin-top:auto;padding-top:var(--space-s);align-items:center}.product:hover .t-display{color:var(--green-text)}.install .t-numeral{font-size:clamp(48px,5vw,88px);margin-bottom:var(--space-s)}.legal-tabs a{color:var(--ink);text-decoration:none;padding-bottom:3px;border-bottom:1px solid transparent}.legal-tabs a[aria-current="page"]{border-color:var(--ink)}.legal-toc ol{list-style:none;margin:0;padding:0;position:sticky;top:100px;display:grid;gap:8px}.legal-toc a{color:var(--ink-soft);text-decoration:none;font-size:14px;line-height:1.35;display:block}.legal-toc a:hover{color:var(--green-text)}.legal-body>*{max-width:42em}.legal-body h2{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.03em;font-size:22px;line-height:1.15;margin:var(--space-l) 0 var(--space-s);padding-top:var(--space-m);border-top:1px solid var(--ink);max-width:none;scroll-margin-top:90px}.legal-body h2:first-child{margin-top:0;padding-top:0;border-top:0}.legal-body h3{font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:16px;margin:var(--space-m) 0 var(--space-xs)}.legal-body p{font-size:16px;line-height:1.65}.legal-body li{font-size:16px;line-height:1.65}.legal-body p + p{margin-top:12px}.legal-body ul{padding-left:0;list-style:none;margin:12px 0}.legal-body li{position:relative;padding-left:20px}.legal-body li + li{margin-top:8px}.legal-body li::before{content:"";position:absolute;left:0;top:.6em;width:6px;height:6px;background:var(--ink)}.legal-body table{border-collapse:collapse;width:100%;font-size:15px;margin:12px 0;display:block;overflow-x:auto}.legal-body th{border:1px solid var(--ink);padding:10px 12px;text-align:left;vertical-align:top}.legal-body td{border:1px solid var(--ink);padding:10px 12px;text-align:left;vertical-align:top}@media (max-width:991px){.partner-list a{padding:18px var(--space-m)}}@media (max-width:767px){.svc-grid{grid-template-columns:1fr !important}.products{grid-template-columns:1fr !important}.partner-list{grid-template-columns:1fr !important}.form,.form-grid{grid-template-columns:1fr !important}.spec-strip.is-4{grid-template-columns:1fr !important}[data-three]{grid-template-columns:1fr !important}.choices:not(.is-check) .choice{flex:1 1 auto}}@media (max-width:478px){.partner-list a{padding-left:var(--space-s);padding-right:var(--space-s)}}@media (prefers-reduced-motion:reduce){.tl-side{display:none}.tl{grid-template-columns:1fr}.tl-row{min-height:0}}.ph .t-label{color:var(--ink)}.bi-frame>.ph{position:absolute;inset:0;opacity:0;transition:opacity 200ms ease}.bi-frame>.ph.is-on{opacity:1}.case-hero .ph{aspect-ratio:auto}.brand-index.is-compact .bi-row,.brand-index[data-brand-index="work"] .bi-row{grid-template-columns:minmax(0,4fr) minmax(0,6fr) auto;align-items:baseline;padding:12px var(--space-l)}.brand-index.is-compact .bi-row .t-h3,.brand-index[data-brand-index="work"] .bi-row .t-h3{transition:color 200ms ease}.brand-index.is-compact .bi-row:hover .t-h3,.brand-index[data-brand-index="work"] .bi-row:hover .t-h3{color:var(--green-text)}.brand-index.is-compact .bi-row:focus-visible .t-h3,.brand-index[data-brand-index="work"] .bi-row:focus-visible .t-h3{color:var(--green-text)}.brand-index.is-compact .bi-row.is-on .t-h3,.brand-index[data-brand-index="work"] .bi-row.is-on .t-h3{color:var(--green-text)}.brand-index.is-compact .bi-row.is-on,.brand-index[data-brand-index="work"] .bi-row.is-on{background:#e7eadc}.brand-index.is-compact .bi-name,.brand-index[data-brand-index="work"] .bi-name{color:var(--ink)}@media (max-width:991px){.brand-index.is-compact .bi-row,.brand-index[data-brand-index="work"] .bi-row{padding:12px var(--space-m)}}@media (max-width:767px){.brand-index.is-compact .bi-row,.brand-index[data-brand-index="work"] .bi-row{grid-template-columns:minmax(0,1fr) auto}.brand-index.is-compact .bi-name,.brand-index[data-brand-index="work"] .bi-name{grid-column:1 / -1;grid-row:2}.filter-row>*{flex:1 1 auto}.filter-row .grow{display:none}}:root{--frost-light:rgba(241,243,244,0.64);--frost-dark:rgba(51,49,52,0.58);--blur:22px}.frost{background:var(--frost-light);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.15);backdrop-filter:blur(var(--blur)) saturate(1.15)}.frost-dark{background:var(--frost-dark);color:var(--ground);-webkit-backdrop-filter:blur(18px) saturate(1.1);backdrop-filter:blur(18px) saturate(1.1)}@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.frost{background:rgba(241,243,244,0.9)}.frost-dark{background:rgba(51,49,52,0.88)}}.hero-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1200ms ease,transform 7000ms linear}.hero-stage img.is-on{opacity:1;transform:scale(1)}.hero-frost .t-lede{color:var(--ink);max-width:30em}.hc-bar i{position:absolute;inset:0;background:var(--ground);transform-origin:left;transform:scaleX(0)}.hc-bar i.run{transition:transform 6000ms linear;transform:scaleX(1)}.hero-cap.is-swap .hc-brand{opacity:0}.hero-cap.is-swap .hc-name{opacity:0}.mq-item .logo{height:34px;width:auto;display:block}@keyframes marquee{to{transform:translateX(-50%)}}.sec-head a{color:var(--ink);text-decoration:none}.sec-head a:hover{color:var(--green-text)}.sec-head.is-dark a{color:var(--ground)}.sec-head.is-dark a:hover{color:var(--sage)}.bi-frame::after{content:"";position:absolute;inset:0;background:var(--frost-light);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);opacity:0;pointer-events:none;transition:opacity 520ms ease}.bi-frame.is-frost::after{opacity:1;transition:none}.rail-tile img{width:100%;height:100%;object-fit:cover}.rail-tile.pre .rail-cap{transform:translateY(100%)}.wwd-survey .t-meta{color:var(--ground);opacity:.85}.wwd-survey .arrow{font-family:var(--font-display);font-weight:700;transition:transform 200ms ease}.wwd-survey:hover .arrow{transform:translateX(6px)}.home-cta>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.cta-frost .t-small{color:var(--ink)}.home-cta.pre .cta-frost{transform:translateX(-101%)}@media (max-width:991px){.hero-frost>.t-subtitle{display:none}.hero-cap .hc-foot{margin-top:6px}.work-rail::-webkit-scrollbar{display:none}.wwd-survey .t-meta{grid-column:1;grid-row:2}.wwd-survey .arrow{grid-column:2;grid-row:1 / span 2;align-self:center}.home-cta>img{position:relative;height:240px}.home-cta.pre .cta-frost{transform:translateY(40px)}}@media (max-width:478px){.hero-frost .t-display{font-size:40px}}@media (prefers-reduced-motion:reduce){.marquee-track{animation:none;flex-wrap:wrap;width:auto}.marquee-track [aria-hidden="true"]{display:none}.marquee-track{justify-content:flex-start}.hero-stage img{transition:none;transform:none}.reveal.pre{opacity:1;transform:none;filter:none}.home-cta.pre .cta-frost{transform:none}.rail-tile.pre .rail-cap{transform:none}.bi-frame::after{display:none}}.foot{grid-template-columns:repeat(4,minmax(0,1fr)) !important}.foot.grid-rules{grid-template-columns:repeat(4,minmax(0,1fr)) !important}.foot .panel{padding:18px var(--space-m)}.foot .t-label{font-size:11px;margin-bottom:6px !important}.foot ul li{font-size:13px;line-height:1.7;overflow-wrap:anywhere}.bar.is-footer .t-icon{height:18px}@media (max-width:767px){.foot .panel{padding:14px 10px}.foot .t-label{font-size:10px;letter-spacing:.04em}.foot ul li{font-size:11px;line-height:1.6}.bar.is-footer .legal{font-size:11px}.mq-item .logo{height:28px}.foot .m-hide{display:none}.foot .m-show{display:inline}}.bar.is-footer .legal{padding:0;border:0;margin:0;text-align:right}p{text-wrap:pretty}li{text-wrap:pretty}dd{text-wrap:pretty}figcaption{text-wrap:pretty}blockquote{text-wrap:pretty}.filter-row button[data-f],.filter-row .w-button[data-f]{flex:1 1 auto}@media (max-width:767px){.filter-row>*{flex:none}.filter-row button[data-f],.filter-row .w-button[data-f]{flex:none}.f-svc::-webkit-scrollbar{display:none}.f-svc button,.f-svc .w-button{flex:none;white-space:nowrap;scroll-snap-align:start;padding:12px 16px}.f-svc button:last-child,.f-svc .w-button:last-child{margin-right:32px}.f-tools .work-count{padding:0 12px;white-space:nowrap}.f-tools .view-switch{display:none}}.case-facts>div{background:var(--ink);color:var(--ground);padding:14px var(--space-m)}.case-facts dt{font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.06em;opacity:.7}.case-facts dd{margin:3px 0 0;font-size:14px;line-height:1.4}.case-facts dd .t-small{font-size:12px;opacity:.8}.case-facts a{color:var(--sage)}.fp-img img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto}.fp-img .ph{width:100%;height:100%;object-fit:cover;aspect-ratio:auto}.fp-img img{display:block}.fp.is-drawing .fp-img img{object-fit:contain;background:#fff}.fp-cap .t-h3{font-size:clamp(18px,1.6vw,24px)}.fp-cap .t-meta{margin:0}.fp.pre .fp-img img{filter:blur(18px);transform:scale(1.04)}.fp .fp-img img{transition:filter 900ms ease,transform 900ms ease}.fp.pre .fp-cap{opacity:0;transform:translateY(24px)}.car-wrap:hover .car-btn{opacity:1}.car-track::-webkit-scrollbar{display:none}.car-slide img{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;display:block}.car-slide .ph{width:100%;height:100%;object-fit:cover;aspect-ratio:auto;display:block}.car-slide .ph{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px}.car-slide.is-drawing img{object-fit:contain;background:#fff}.car-bar i{position:absolute;inset:0;background:var(--ink);transform-origin:left;transform:scaleX(0)}.car-bar i.run{transition:transform 5000ms linear;transform:scaleX(1)}[data-full]{cursor:zoom-in}.lightbox::backdrop{background:rgba(51,49,52,0.72);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.lightbox[open]{display:grid;place-items:center}.lightbox img{max-width:calc(100vw - 2 * var(--space-l));max-height:calc(100dvh - 2 * var(--space-l));object-fit:contain;animation:lb-in 400ms ease}@keyframes lb-in{from{opacity:0;filter:blur(16px)}}.case-next .t-h3{max-width:20ch}@media (max-width:767px){.case-facts>div{padding:10px var(--space-s)}.case-facts>div:last-child:nth-child(odd){grid-column:span 2}.lightbox img{max-width:100vw;max-height:calc(100dvh - 120px)}.case-next .button{padding-left:16px;padding-right:16px}}@media (hover:none){.car-btn{display:none}}@media (prefers-reduced-motion:reduce){.car-track{scroll-behavior:auto}.fp-cap{transition:none}.fp .fp-img img{transition:none}.lightbox img{animation:none}}.case-main .stat{background:var(--ink);color:var(--ground);border-bottom:1px solid var(--ink)}.step-rail::-webkit-scrollbar{display:none}.step-card img{width:100%;height:100%;object-fit:cover;object-position:var(--fx,50%) 50%;display:block;transition:scale 900ms ease;height:calc((1 - var(--r,0)) * 100%)}.step-card.is-drawing img{object-fit:contain;object-position:50% 50%;height:calc((1 - var(--r,0)) * 100%);transform:none;background:#fff}.step-card:hover img{scale:1.02}.step-cap .t-numeral{font-size:clamp(40px,4vw,64px);line-height:.9}.step-cap .t-meta{margin:0}.case-next .t-meta{margin:0;color:var(--ink)}@media (max-width:767px){.step-card img{height:auto;aspect-ratio:4 / 3;flex:none}.step-card.is-drawing img{height:auto;aspect-ratio:4 / 3;flex:none}.step-cap .t-numeral{font-size:36px}.svc-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.svc-cell .t-h3{font-size:16px}.svc-cell .t-meta{font-size:13px}.svc-cell .arrow{font-size:18px}#svc-grid .grid-filler{display:none}}@media (prefers-reduced-motion:reduce){.step-card img{transition:none}}.step-card[data-fx="40"]{--fx:40%}.step-card[data-fx="60"]{--fx:60%}.svc-grid{display:block !important}.svc-group + .svc-group{border-top:1px solid var(--ink)}.svc-cells{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:1px;background:var(--ink)}.svc-cells .svc-cell{min-height:200px}@media (max-width:767px){.svc-cells[data-n="1"]{grid-template-columns:1fr}.svc-cells .svc-cell{min-height:0}.svc-cells[data-n="3"] .svc-cell:last-child{grid-column:span 2}.svc-cells[data-n="5"] .svc-cell:last-child{grid-column:span 2}}.ss-hero .panel{max-width:none}.ss-hero .t-body{max-width:68ch}.bullets.is-tight li{font-size:14px;line-height:1.4}.bullets.is-tight li + li{margin-top:4px}.step-cap .bullets.is-tight li::before{top:.5em;width:5px;height:5px}.spec-scroll::-webkit-scrollbar{display:none}#request .panel{padding-top:var(--space-m);padding-bottom:var(--space-m)}#request .form,#request .form-grid{gap:12px 16px}#request .field{gap:4px}#request .field>label{font-size:12px;margin-bottom:2px}#request .field legend{font-size:12px;margin-bottom:2px}#request .field input{padding:10px 12px;font-size:15px}#request .field select{padding:10px 12px;font-size:15px}#request .field textarea{padding:10px 12px;font-size:15px}#request .choice span{padding:8px 14px}#request .stack.gap-m{gap:var(--space-s)}@media (max-width:767px){.buttons.is-row .button{flex:1 1 0;padding-left:10px;padding-right:10px;font-size:12px;white-space:nowrap;text-align:center;justify-content:center}.spec-scroll{display:flex !important;overflow-x:auto;scroll-snap-type:x mandatory}.spec-scroll>div{flex:0 0 72%;scroll-snap-align:start;padding:var(--space-s)}#get .cols{grid-template-columns:1fr 1fr}#get .get-col{grid-column:span 1;padding:var(--space-s)}#get .get-col .t-h3{font-size:16px}#get .get-col .bullets li{font-size:13px;padding-left:14px}#get .get-col .bullets li::before{width:5px;height:5px}#get .panel.c-12{grid-column:1 / -1}#request .panel{padding:var(--space-s)}#request .form,#request .form-grid{grid-template-columns:1fr 1fr !important;gap:10px 10px}#request .field.is-wide{grid-column:1 / -1}#request .choices{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}#request .choice span{text-align:center;padding:8px 4px}}.spec-2l span{display:block}@media (min-width:1200px){.spec-scroll.is-4{grid-template-columns:1fr 1.4fr 1fr 1fr}.spec-2l span{white-space:nowrap}}#request .field:not(fieldset){display:grid;grid-template-rows:1fr auto}#request .field>label{align-self:end}#request .field input{height:42px;padding-top:0;padding-bottom:0;line-height:40px}#request .field select{height:42px;padding-top:0;padding-bottom:0;line-height:40px}#request .field input[type="date"]{line-height:normal}@media (max-width:767px){.spec-scroll>div{flex-basis:86%}.spec-scroll .t-meta{font-size:13px}.spec-2l span{white-space:nowrap}}.about-contact .t-label{opacity:.7}.about-contact:hover .t-h2{color:var(--sage)}@media (min-width:768px){.step-card{aspect-ratio:5 / 4}}.ag-middle>.panel{border-bottom:1px solid var(--ink)}.ag-middle>.panel .t-body{max-width:62ch}@media (max-width:767px){.partner-list{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.partner-list a{flex-direction:column;justify-content:flex-start;gap:4px;padding:16px var(--space-s)}.partner-list a .t-h3{font-size:17px}.partner-list a .t-small{font-size:12px;overflow-wrap:anywhere}}[data-page=contact] .cols>.panel{padding-top:var(--space-m);padding-bottom:var(--space-m)}[data-page=contact] .form,[data-page=contact] .form-grid{gap:12px 16px}[data-page=contact] .field{gap:4px}[data-page=contact] .field>label{font-size:12px;margin-bottom:2px}[data-page=contact] .field legend{font-size:12px;margin-bottom:2px}[data-page=contact] .field input{padding:10px 12px;font-size:15px}[data-page=contact] .field textarea{padding:10px 12px;font-size:15px}[data-page=contact] .field:not(fieldset){display:grid;grid-template-rows:1fr auto}[data-page=contact] .field>label{align-self:end}[data-page=contact] .field input{height:42px;padding-top:0;padding-bottom:0;line-height:40px}[data-page=contact] .field.is-wide:not(fieldset){grid-template-rows:auto auto}[data-page=contact] .choice span{padding:8px 14px}[data-page=contact] .contact-card{gap:var(--space-m)}@media (max-width:767px){[data-page=contact] .cols>.panel{padding:var(--space-s)}[data-page=contact] .form,[data-page=contact] .form-grid{grid-template-columns:1fr 1fr !important;gap:10px}[data-page=contact] .choices:not(.is-check){display:grid;grid-template-columns:repeat(3,1fr)}[data-page=contact] .choices.is-check{grid-template-columns:1fr 1fr}[data-page=contact] .choice span{text-align:center;padding:8px 4px;font-size:13px}[data-page=contact] .choices.is-check .choice span{text-align:left;padding:8px 10px}[data-page=contact] .choices.is-check .choice:last-child:nth-child(odd){grid-column:1 / -1}}.card-cap .t-label{color:var(--ink-soft)}.card-cap .t-h3{margin:0}.card-cap .loc{font-style:italic;font-weight:300;color:var(--ink-soft);margin:0}.work-card .wc-img{aspect-ratio:4 / 5}.work-card .wc-text{padding:var(--space-s) var(--space-m)}.work-card .t-h3{font-size:clamp(18px,1.5vw,22px)}@media (max-width:767px){.work-card .wc-img{aspect-ratio:4 / 5}.work-card .wc-text{padding:var(--space-s)}}.bi-capbox .t-h3{font-size:18px}.rail-cap .t-h3{font-size:17px}.fp-cap .fp-num{color:var(--ink);font-size:clamp(40px,4vw,64px);line-height:.9}@media (max-width:767px){.fp-cap .fp-num{font-size:36px}}.tl-row .tl-fig img{width:100%;max-width:none;aspect-ratio:4 / 3;display:block}.tl-fig .card-cap .tl-year{color:var(--green-text)}@media (max-width:767px){.tl-row .tl-fig img{aspect-ratio:4 / 5}}.wwd-rail .wwd-survey{margin:0;border:0;border-top:1px solid var(--ink);padding:18px var(--space-l);color:var(--ink);background:var(--ground)}.wwd-rail .wwd-survey .t-meta{color:var(--ink-soft);opacity:1}.wwd-rail .wwd-survey:hover{color:var(--ink);background:var(--sage)}@media (max-width:767px){.wwd-rail .wwd-survey{padding:14px var(--space-s)}}.work-card .ph{justify-content:flex-start}.rail-tile .ph{justify-content:flex-start}.bi-frame .ph{justify-content:flex-start}.work-card .ph>.t-label{display:none}.rail-tile .ph>.t-label{display:none}.brand-index.is-compact .bi-row,.brand-index[data-brand-index="work"] .bi-row{grid-template-columns:minmax(0,4fr) minmax(0,6fr) 4em}@media (max-width:767px){.brand-index.is-compact .bi-row,.brand-index[data-brand-index="work"] .bi-row{grid-template-columns:minmax(0,1fr) auto}}.hero-fit img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);transition:opacity 1200ms ease,transform 7000ms linear}.hero-fit img.is-on{opacity:1;transform:scale(1)}@media (prefers-reduced-motion:reduce){.hero-fit img{transition:none;transform:none}}.wwd-rail .sec-head{background:var(--ink);color:var(--ground);border-color:var(--ink)}.wwd-rail .sec-head a{color:var(--ground)}.wwd-rail .sec-head a:hover{color:var(--sage)}.wwd-rail .wwd-survey{background:var(--sage);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:var(--space-l);padding:var(--space-l)}.wwd-rail .wwd-survey .t-label{font-size:clamp(22px,2.2vw,32px);letter-spacing:.01em;color:var(--ink)}.wwd-rail .wwd-survey .t-meta{font-size:17px;color:var(--ink)}.wwd-rail .wwd-survey .arrow{font-size:28px}.wwd-rail .wwd-survey:hover{background:#c6caa6}@media (max-width:767px){.wwd-rail .wwd-survey{grid-template-columns:minmax(0,1fr) auto;row-gap:4px;padding:var(--space-m) var(--space-s)}.wwd-rail .wwd-survey .t-label{font-size:22px}.wwd-rail .wwd-survey .t-meta{font-size:15px;grid-column:1;grid-row:2}.wwd-rail .wwd-survey .arrow{grid-column:2;grid-row:1 / span 2}}.case-story .t-body{max-width:none}@media (min-width:992px){.case-story .t-body{columns:2;column-gap:var(--space-xl)}.case-story .t-body p{margin:0 0 1em}.case-story .t-body p:last-child{margin-bottom:0}.fp-cap{top:0;bottom:0;left:0;right:auto;width:min(34%,460px);grid-template-columns:1fr;align-content:end;row-gap:var(--space-s);padding:var(--space-l);border-top:0;border-right:1px solid rgba(51,49,52,0.35)}.fp.is-flip .fp-cap{left:auto;right:0;border-right:0;border-left:1px solid rgba(51,49,52,0.35)}.fp.pre .fp-cap{transform:translateX(-24px)}.fp.pre.is-flip .fp-cap{transform:translateX(24px)}.fp .fp-img img{object-position:70% 50%}.fp.is-flip .fp-img img{object-position:30% 50%}.step-rail{overflow:visible;scroll-snap-type:none}.step-card{flex:1 1 0;aspect-ratio:4 / 5}.step-wrap .car-btn{display:none}.step-cap{grid-template-columns:1fr;row-gap:var(--space-xs);padding:var(--space-m)}}@media (min-width:992px) and (max-width:1279px){.step-card{aspect-ratio:3 / 5}}[data-page=experimental] .case-next .t-h3{max-width:none}[data-page=experimental] .case-next{border-top:0}[data-page=load-sheet] code{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:.9em;background:rgba(51,49,52,.07);padding:1px 4px;overflow-wrap:anywhere}.ls-steps .panel{min-height:0}.ls-handles .panel{min-height:0}.ls-handles .panel{gap:var(--space-xs)}.ls-names th[scope=row]{white-space:nowrap}@media (max-width:767px){table.ls-names{min-width:0}.ls-names thead{display:none}.ls-names tr{display:block;border-bottom:1px solid var(--ink);padding:var(--space-s)}.ls-names tbody tr:last-child{border-bottom:0}.ls-names th{display:block;border:0 !important;padding:0}.ls-names td{display:block;border:0 !important;padding:0}.ls-names th{margin-bottom:8px}.ls-names td + td{margin-top:6px}.ls-names td::before{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:2px}.ls-names td:nth-of-type(1)::before{content:"Template files"}.ls-names td:nth-of-type(2)::before{content:"Render name"}[data-page=load-sheet] code{overflow-wrap:normal;word-break:normal}}.placard>span{display:block;border:1px solid var(--ink);padding:.12em .32em .06em;font-family:var(--font-display);font-weight:700;text-transform:uppercase;letter-spacing:.14em;line-height:1;font-size:clamp(34px,7.4vw,124px);white-space:nowrap}.placard.is-sm>span{font-size:11px;letter-spacing:.2em;padding:4px 7px 3px}.x-products .ph{position:absolute;inset:0}.x-products .pr-img{position:relative}.x-products .pr-img.is-dark .ph{background:#333134;color:var(--ground)}@media (max-width:767px){.placard>span{letter-spacing:.08em}}.placard>span{font-size:clamp(30px,5.2vw,88px)}.placard.is-sm>span{font-size:11px}.x-products .t-display{font-size:clamp(40px,3.8vw,64px);overflow-wrap:anywhere}.x-products .button{white-space:nowrap}@media (min-width:992px) and (max-width:1279px){.x-products .button{padding-left:16px;padding-right:16px}}[data-page=preflight] h1.t-display{font-size:clamp(48px,6vw,108px)}[data-page=load-sheet] h1.t-display{font-size:clamp(48px,6vw,108px)}[data-page=dispatch] h1.t-display{font-size:clamp(48px,6vw,108px)}[data-page=preflight-download] h1.t-display{font-size:clamp(48px,6vw,108px)}@media (min-width:992px) and (max-width:1279px){[data-page=preflight] h1.t-display{font-size:5.1vw}[data-page=load-sheet] h1.t-display{font-size:5.1vw}[data-page=dispatch] h1.t-display{font-size:5.1vw}[data-page=preflight-download] h1.t-display{font-size:5.1vw}}@media (max-width:991px){[data-page=preflight] h1.t-display{font-size:clamp(48px,11vw,96px)}[data-page=load-sheet] h1.t-display{font-size:clamp(48px,11vw,96px)}[data-page=dispatch] h1.t-display{font-size:clamp(48px,11vw,96px)}[data-page=preflight-download] h1.t-display{font-size:clamp(48px,11vw,96px)}}.placard>span{border:0;padding:.22em .4em .16em;letter-spacing:.12em}.placard.is-sm>span{padding:5px 8px 4px;letter-spacing:.12em}.x-products .x-stamp{margin-bottom:4px}.pf-account .t-h3{max-width:none}.ls-card-img{background:var(--ground) !important;position:relative}.ls-card-img img.reveal{object-fit:contain;padding:4% 5% 2%}.ls-hero-img img{position:static !important;width:100%;height:auto !important;object-fit:contain}.ls-title .ls-icon{width:clamp(64px,7vw,120px);height:auto;flex:none;margin-left:-6%}.ls-title .ls-icon{width:clamp(72px,6vw,104px);margin-left:calc(clamp(72px,6vw,104px) * -0.09);margin-bottom:calc(clamp(72px,6vw,104px) * -0.09)}.pf-price strong{font-family:var(--font-display);font-weight:700;font-size:28px;line-height:1.1}.pf-buttons .button{white-space:nowrap}.pf-feats .panel{min-height:0;gap:var(--space-xs)}.pf-feats .fi{margin-bottom:var(--space-s)}.pf-stats .t-numeral{font-size:clamp(34px,3.4vw,60px);white-space:nowrap}.pf-stats .t-numeral small{font-size:.45em}.pf-steps .panel{min-height:0}@media (max-width:991px){.pf-feats{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.pf-steps{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.pf-stats{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}@media (max-width:767px){.pf-feats{grid-template-columns:1fr !important}.pf-steps{grid-template-columns:1fr !important}.pf-stats .t-numeral{font-size:30px}.pf-stats>div{padding:var(--space-s)}table.pf-compare{min-width:0;table-layout:fixed}.pf-compare thead th:first-child{width:36%}.pf-compare th{padding:10px 8px !important;font-size:12.5px;line-height:1.35}.pf-compare td{padding:10px 8px !important;font-size:12.5px;line-height:1.35}.pf-compare th.t-label{font-size:10.5px;letter-spacing:.05em}.pf-compare .yes{font-size:0 !important}.pf-compare .yes::before{content:"✓";display:inline;width:auto;height:auto;background:none;margin:0;font-size:15px;font-weight:700;vertical-align:0}}.pf-beta .t-h3{margin:0}.pf-beta .pf-price{color:var(--ink-soft)}.pf-shot img{object-fit:cover;object-position:top center;opacity:1}.pf-shot .cap{background:var(--ink)}.pf-numbers-head .t-meta{color:var(--ground);opacity:.8}.pf-stats.is-dark>div{background:var(--ink);color:var(--ground)}.pf-stats.is-dark .t-meta{color:var(--ground)}.pf-stats.is-dark .t-numeral{color:var(--ground)}.pf-stats.is-dark .t-meta{opacity:.8}.pf-window-img img{display:block;width:100%;height:auto;border:1px solid var(--ink)}.pf-window-img figcaption{margin-top:var(--space-s);color:var(--ink-soft)}.pf-window>.panel{position:sticky;top:80px;align-self:start}.pf-marks>div{border-top:1px solid var(--ink);padding-top:var(--space-s)}.pf-marks dd{margin:6px 0 0}.pf-vray .t-body{max-width:68ch}.pf-expect .bullets li strong{font-weight:700}@media (max-width:991px){.pf-window>.panel{position:static}}@media (max-width:767px){.pf-beta .pf-buttons .button{flex:0 1 auto}}.pf-shot img{inset:var(--space-m) var(--space-m) 76px;width:calc(100% - 2 * var(--space-m));height:calc(100% - var(--space-m) - 76px);object-fit:contain;object-position:top center}@media (min-width:768px){table.pf-compare{table-layout:fixed}.pf-compare thead th:first-child{width:22%}}.pf-free-list .panel{gap:var(--space-xs);display:flex;flex-direction:column;align-items:flex-start;min-height:0}.pf-allfixes summary{list-style:none;cursor:pointer;align-items:center;gap:var(--space-m)}.pf-allfixes summary::-webkit-details-marker{display:none}.pf-toggle::before{content:"";position:absolute;left:0;top:9px;width:20px;height:2px;background:var(--ink);transition:transform .2s}.pf-toggle::after{content:"";position:absolute;left:0;top:9px;width:20px;height:2px;background:var(--ink);transition:transform .2s}.pf-toggle::after{transform:rotate(90deg)}.pf-allfixes details[open] .pf-toggle::after{transform:rotate(0)}.pf-fixgroup h3{margin:0 0 var(--space-s)}.pf-fixlist li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:6px;font-size:14px;line-height:1.45;padding:8px 0;border-top:1px solid rgba(51,49,52,.2)}.pf-fixlist li:first-child{border-top:0;padding-top:0}.pf-fixlist .pf-n{font-family:var(--font-display);font-weight:700;font-size:12px;color:var(--ink-soft);padding-top:2px}.pf-fixlist .pf-mark{margin-top:6px;font-size:10px}@media (max-width:1279px){.pf-fixgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}.pf-jump{position:sticky;top:var(--hdr-h,84px);z-index:15;display:flex;align-items:stretch;gap:0;background:var(--ground);border-bottom:1px solid var(--ink);overflow-x:auto;scrollbar-width:none}.pf-jump::-webkit-scrollbar{display:none}.pf-jump button,.pf-jump .w-button{flex:1 0 auto;text-align:center;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:14px var(--space-m);background:none;border:0;border-right:1px solid var(--ink);color:var(--ink);cursor:pointer;text-decoration:none}.pf-jump a{flex:1 0 auto;text-align:center;font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.06em;text-transform:uppercase;padding:14px var(--space-m);background:none;border:0;border-right:1px solid var(--ink);color:var(--ink);cursor:pointer;text-decoration:none}.pf-jump button:hover,.pf-jump .w-button:hover{background:var(--sage)}.pf-jump button.is-on,.pf-jump .w-button.is-on{background:var(--sage)}.pf-jump .pf-jump-cta{border-right:0;border-left:1px solid var(--ink);background:var(--ink);color:var(--ground)}.pf-scroll img{border:0 !important}.pf-window>.panel{position:static}.pf-acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--space-s);margin-bottom:var(--space-m)}.pf-acc summary::-webkit-details-marker{display:none}.pf-acc summary::after{content:"+";font-family:var(--font-display);font-weight:700;font-size:22px;line-height:1;transition:transform 200ms ease}.pf-acc[open] summary::after{transform:rotate(45deg)}.pf-acc summary h2{margin:0}@media (min-width:768px){.pf-acc summary{pointer-events:none}.pf-acc summary::after{display:none}}@media (max-width:767px){.pf-jump button,.pf-jump .w-button{font-size:11px;padding:12px 9px}.pf-jump a{font-size:11px;padding:12px 9px}.pf-jump .pf-jump-cta{display:none}.pf-feats{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.pf-feats .panel{padding:var(--space-s)}.pf-feats .fi{width:30px;height:30px;margin-bottom:6px}.pf-feats .t-h3{font-size:14px;line-height:1.2}.pf-feats .t-meta{font-size:12.5px;line-height:1.45}.pf-steps{display:flex !important;overflow-x:auto;scroll-snap-type:x mandatory;gap:1px;scrollbar-width:none}.pf-steps::-webkit-scrollbar{display:none}.pf-steps .panel{flex:0 0 78%;scroll-snap-align:start}.pf-steps .t-numeral{font-size:44px}.pf-strip{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.pf-strip>div{padding:var(--space-s)}.pf-strip .buy{grid-column:1 / -1 !important;grid-row:auto;order:10}.pf-strip .t-meta{font-size:13px}.pf-acc summary{margin-bottom:0}.pf-acc[open] summary{margin-bottom:var(--space-s)}.pf-allfixes summary{flex-direction:row;align-items:flex-start}.pf-free-list .panel{padding:var(--space-s)}.pf-free-list .t-h3{font-size:15px}.pf-allfixes summary.row-between{flex-direction:row !important;align-items:center !important}}.ls-numbers{grid-template-columns:repeat(3,minmax(0,1fr)) !important}.ls-numbers .t-numeral{font-size:clamp(48px,5vw,88px)}.ls-good .pf-acc summary h2{margin:0}.ls-handles.pf-feats .panel{gap:var(--space-xs)}@media (max-width:767px){.ls-numbers .t-numeral{font-size:36px}.ls-numbers>div{padding:var(--space-s)}.ls-good .bullets.big li{font-size:14px}}.pf-card-img img.reveal{object-position:top center}@media (max-width:478px){.title-block .t-h1{font-size:26px}.pf-stats .t-numeral{font-size:26px}}#svc-intro p + p{margin-top:.8em}.svc-inc li{background:var(--ground);padding:var(--space-m) var(--space-l);display:flex;flex-direction:column;gap:10px;min-height:120px}@media (max-width:767px){.svc-inc li{padding:var(--space-s);min-height:96px}.svc-inc li .t-h3{font-size:16px}}.ss-why .t-body{max-width:68ch}.about-body .t-body{max-width:none}@media (min-width:992px){.about-body .t-body{columns:2;column-gap:var(--space-xl)}.about-body .t-body p{break-inside:avoid}}@media (min-width:768px){.tl-row .tl-fig img{aspect-ratio:16 / 9}}.brand-dd.is-open .bd-btn{background:var(--sage)}.brand-dd.is-open .bd-chev{transform:rotate(180deg)}.bd-list[hidden]{display:none}.bd-list button,.bd-list .w-button{width:100%;height:100%;display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 16px;background:var(--ground);border:0;color:var(--ink);cursor:pointer;font-family:var(--font-display);font-weight:700;text-transform:uppercase;font-size:12px;letter-spacing:.06em;text-align:left}.bd-list button:hover,.bd-list .w-button:hover{background:#e4e7df}.bd-list button[aria-selected="true"],.bd-list .w-button[aria-selected="true"]{background:var(--sage)}@media (max-width:767px){.f-tools .brand-dd{flex:1;min-width:0}}.pager .next{justify-self:end}@media (min-width:992px){[data-brand-index="work"]{grid-template-columns:minmax(0,6fr) minmax(0,6fr)}.case-next .t-h3{max-width:none}}.ls-good>.c-8{border-right:1px solid var(--ink)}.ls-good .pf-acc{height:100%}@media (max-width:767px){.ls-good>.c-8{border-right:0;border-bottom:1px solid var(--ink)}}@media (min-width:768px){.ls-names th:first-child{width:33.333%}}.dl-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block}@media (min-width:992px){.hero-frost .t-display{font-size:clamp(40px,3.9vw,72px)}}.nav a.nav-x{border:1px solid var(--ink);padding:5px 8px 4px;letter-spacing:.12em}.nav a.nav-x::after{left:8px;right:8px;bottom:3px}.nav a.nav-x[aria-current="page"]::before{left:-13px}@media (max-width:640px){.case-next{grid-template-columns:minmax(0,1fr);justify-items:start}}@media (max-width:400px){.foot .t-label{font-size:min(10px,2.6vw);letter-spacing:.02em}}.page-head>.panel.c-4{justify-content:center !important}.sec-head a{color:var(--ink);text-decoration:none;text-underline-offset:4px;text-decoration-thickness:1px}a.sec-link{color:var(--ink);text-decoration:none;text-underline-offset:4px;text-decoration-thickness:1px}.sec-head a:hover{color:var(--ink);text-decoration:underline}a.sec-link:hover{color:var(--ink);text-decoration:underline}.sec-head.is-dark a:hover{color:var(--ground)}.wwd-rail .sec-head a:hover{color:var(--ground)}.case-next.pf-end .t-h3{max-width:none}@media (min-width:992px){.cta-frost{padding:var(--space-l)}}@media (max-width:767px){.faq summary{padding:18px 16px;font-size:16px}.faq .ans{padding:0 16px 20px}}.faq summary::after{content:"";flex:none;width:20px;height:20px;margin-top:1px;background:linear-gradient(var(--ink),var(--ink)) center / 20px 1.5px no-repeat,linear-gradient(var(--ink),var(--ink)) center / 1.5px 20px no-repeat;font-size:0;transition:transform 200ms ease}.pf-acc summary::after{content:"";flex:none;width:20px;height:20px;margin-top:1px;background:linear-gradient(var(--ink),var(--ink)) center / 20px 1.5px no-repeat,linear-gradient(var(--ink),var(--ink)) center / 1.5px 20px no-repeat;font-size:0;transition:transform 200ms ease}.faq summary:hover::after{background:linear-gradient(var(--green-text),var(--green-text)) center / 20px 1.5px no-repeat,linear-gradient(var(--green-text),var(--green-text)) center / 1.5px 20px no-repeat}.faq details[open] summary::after{transform:rotate(45deg)}.pf-acc[open] summary::after{transform:rotate(45deg)}.pf-toggle::before{height:1.5px;top:9.25px;transition:none}.pf-toggle::after{height:1.5px;top:9.25px;transition:none}.pf-allfixes details[open] .pf-toggle::after{transform:rotate(90deg)}.pf-allfixes details[open] .pf-toggle{transform:rotate(45deg)}.nav a.nav-x[aria-current="page"]::after{transform:scaleX(0)}.nav a.nav-x:hover::after{transform:scaleX(1)}p{text-wrap:wrap}li{text-wrap:wrap}dd{text-wrap:wrap}figcaption{text-wrap:wrap}blockquote{text-wrap:wrap}.pf-stats .t-meta{text-wrap:balance}.stat p{text-wrap:balance}.case-next.pf-end .t-meta{color:var(--ground);opacity:.82}.pf-allfixes summary.row-between{flex-wrap:nowrap}.pf-allfixes summary.row-between>.stack{flex:1 1 auto;min-width:0}.foot ul li{overflow-wrap:normal}@media (max-width:400px){.foot .panel{padding:12px 7px}.foot ul li{font-size:min(10.5px,2.8vw)}}@media (max-width:478px){h1.placard>span{font-size:clamp(22px,6.6vw,30px);letter-spacing:.08em}}@media (max-width:400px){.t-display.is-xl{font-size:min(56px,14.2vw)}.title-block .t-h1{font-size:min(26px,6.7vw)}}.stat>*{min-width:0}.pf-jump + .pf-numbers{border-top:1px solid var(--ground)}.mq-item .logo{height:calc(var(--lh,34) * .85px);max-width:none}@media (max-width:767px){.mq-item .logo{height:calc(var(--lh,34) * .7px)}}.pf-stats .t-numeral{font-size:clamp(30px,2.8vw,52px)}.pf-stats .pf-num-words{white-space:normal;line-height:.95}@media (max-width:767px){.pf-stats .t-numeral{font-size:26px;white-space:normal;line-height:1}}@media (max-width:478px){.pf-stats .t-numeral{font-size:24px}}.pf-stats .t-numeral{white-space:normal;line-height:1}.pf-stats .t-numeral .pf-nw{white-space:nowrap}.pf-stats>div>*{min-width:0;overflow-wrap:break-word}@media (max-width:359px){.pf-stats .t-numeral{font-size:21px}}@media (max-width:1279px){.x-products{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1280px){.x-products .t-display{font-size:clamp(36px,3vw,56px)}}.dp-fig img{width:100%;max-width:1200px;height:auto;display:block}@media (max-width:1100px){.dp-steps.pf-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.dp-steps.pf-steps{grid-template-columns:1fr !important}}.dp-stepimg img{display:block;width:100%;height:auto}@media (max-width:767px){.dp-fig img{min-width:640px}}.x-products .pf-title-beta{display:table;margin:12px 0 0;top:0}.dp-full .t-body{max-width:none}.dp-words>div{display:flex;flex-direction:column;gap:8px}.dp-words .t-h2{color:var(--ground);font-size:clamp(22px,1.9vw,32px);line-height:1.05}@media (max-width:767px){.dp-words{grid-template-columns:1fr !important}}.brand-index.is-compact .bi-row,.brand-index[data-brand-index="work"] .bi-row{grid-template-columns:minmax(0,4fr) minmax(0,6fr) 3.2em;column-gap:var(--space-m)}.brand-index.is-compact .bi-row>*,.brand-index[data-brand-index="work"] .bi-row>*{min-width:0}@media (min-width:992px) and (max-width:1279px){.brand-index.is-compact .bi-row .t-h3,.brand-index[data-brand-index="work"] .bi-row .t-h3{font-size:clamp(15px,1.55vw,20px)}}@media (max-width:767px){.brand-index.is-compact .bi-row,.brand-index[data-brand-index="work"] .bi-row{grid-template-columns:minmax(0,1fr) auto}}
.bi-row:last-child{border-bottom: 0;}
.tl-row:last-child{border-bottom: 0;}
.car-slide:last-child{scroll-snap-align: end;}
.step-card:last-child{scroll-snap-align: end;}
.reveal.pre{opacity:.4;transform:scale(1.03);filter:blur(18px) saturate(.7)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-m) var(--space-m)}
.car-btn:focus-visible{opacity: 1;}
.wwd{--clear:0}
/* Webflow build additions */
.frame{display:flex;flex-direction:column;min-height:100vh;background:var(--ground);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
figure{margin:0}
.menu:not(.is-open){display:none}
.toast:not(.is-open){display:none}
a.car-btn,a.menu-btn,a.bd-btn,.f-svc>a,.view-switch>a,[data-b],[data-lb]{cursor:pointer;user-select:none}
.w-dyn-empty{display:none}
.case-more-src{display:none}
.pager-src{display:none}
.case-facts>div.is-empty{display:none}
.w-richtext figure{margin:0;max-width:none}
.w-richtext figure div{display:contents}
.car-slide img{width:100%;height:100%;object-fit:cover}
.brand-index .bi-side{color:var(--ink-soft)}
.w-dyn-item[hidden]{display:none}
.bi-frame .w-dyn-list,.bi-frame .w-dyn-items,.bi-frame .w-dyn-item{display:contents}
.svc-inc-slot,.svc-pager-slot{display:none}
#svc-pager{border-top:0}
@media (min-width:768px){.svc-cells[data-n="6"]{grid-template-columns:repeat(3,minmax(0,1fr))}.svc-cells[data-n="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.svc-cells[data-n="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}.svc-cells[data-n="1"]{grid-template-columns:1fr}}

.choice .w-checkbox{display:contents}
.choice .w-form-label{display:none}
.choice:has(input:checked) span{background:var(--sage)}
.choice:has(input:checked) span::before{content:"";display:inline-block;width:7px;height:7px;background:var(--ink);margin-right:10px;vertical-align:2px}
.choice:has(input:focus-visible) span{outline:2px solid var(--green);outline-offset:-2px}
.choice .w-radio-input,.choice .w-checkbox-input{float:none;margin:0}
.w-form-done,.w-form-fail{margin-top:var(--space-m)}

/* v4 fixes from the staging review */
.mq-item .logo[src*="logo-nike."]{--lh:34}
.mq-item .logo[src*="logo-adidas."]{--lh:28.0}
.mq-item .logo[src*="logo-asics."]{--lh:33.5}
.mq-item .logo[src*="logo-converse."]{--lh:19.9}
.mq-item .logo[src*="logo-wilson."]{--lh:28.8}
.mq-item .logo[src*="logo-underarmour."]{--lh:14.7}
.mq-item .logo[src*="logo-hoka."]{--lh:31.0}
.mq-item .logo[src*="logo-oakley."]{--lh:34}
.mq-item .logo[src*="logo-fanatics"]{--lh:26.7}
.mq-item .logo[src*="logo-fender."]{--lh:34}
@media (max-width:420px){.hero .buttons .button{padding-left:16px;padding-right:16px}}
.bi-list .w-dyn-item .bi-row{border-bottom:1px solid var(--ink)}
.bi-list .w-dyn-item:last-child .bi-row{border-bottom:0}
.k-slug{display:none}
/* Auto-named combo classes from inline styles collide across pages */
.panel.c-4.inline-div-0,.panel.c-12.inline-div-0{border-top-width:0}
.t-label.inline-p-0.inline-p-0-parent{margin-bottom:0}
.pf-video .cap .t-small{color:inherit;opacity:.8}
.spec-strip.pf-stats{border-top-width:0}
/* Webflow link-buttons: drop the default blue button look where the prototype sets none */
.menu-btn.w-button{background-color:transparent}
.car-btn.w-button{padding:0;display:flex;align-items:center;justify-content:center;line-height:1}
/* Form submit is an input in Webflow, so the text-input rules reached it */
.form-grid input[type=submit].button,.form input[type=submit].button{font-family:var(--font-display);font-weight:700;font-size:14px;text-transform:uppercase;letter-spacing:.06em;line-height:1.2;padding:14px 22px;height:auto;width:auto;border:1px solid var(--ink);border-radius:0;background:var(--ink);color:var(--ground);cursor:pointer;-webkit-appearance:none;appearance:none;transition:background-color 200ms ease,border-color 200ms ease}
.form-grid input[type=submit].button:hover,.form input[type=submit].button:hover{background:var(--green-text);border-color:var(--green-text)}
/* Selected work captions: one fixed three-row height (brand, name, location); long names shrink to one line (terminal-site JS fits them) */
.rail-cap .t-h3,.bi-capbox .t-h3{white-space:nowrap}
.rail-cap .t-label,.bi-capbox .t-label{min-height:1.2em}
.rail-cap .loc,.bi-capbox .loc{min-height:1.5em}
/* Desktop: the site sits in a keyline frame with a max width, as in the prototype (Braden, 29 Sept) */
@media (min-width:992px){.frame{max-width:var(--max-width);margin:0 auto var(--frame-inset);margin-inline:max(var(--frame-inset),calc((100% - var(--max-width)) / 2));border:1px solid var(--ink);border-top:0;min-height:calc(100vh - var(--frame-inset))}}
/* Slider arrows: hidden on phones and touch screens (swipe instead), and on desktop step rails (Braden, 29 Sept) */
@media (hover:none),(max-width:767px){.car-btn.w-button{display:none}}
@media (min-width:992px){.step-wrap .car-btn.w-button{display:none}}
/* A copy of the photo that fills only the clear area beside a side frost panel (set by terminal-site JS) */
.k-fit{position:absolute;top:0;bottom:0;height:100%;max-width:none;object-fit:cover;object-position:50% 50%;pointer-events:none}
/* Section divider bars are dark, like What we do (Braden, 29 Sept): home section heads and heading-only bands on every page */
.sec-head,.panel.rule-b:has(> h2:only-child),.panel.row-between.rule-b:has(> h2),.panel.pf-free-head{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.sec-head .t-h2,.sec-head h2,.panel.rule-b:has(> h2:only-child) h2,.panel.row-between.rule-b:has(> h2) h2,.panel.pf-free-head h2{color:var(--ground)}
.panel.row-between.rule-b:has(> h2) .t-meta,.panel.pf-free-head .t-meta{color:var(--ground);opacity:.82}
.sec-head a,.panel.row-between.rule-b:has(> h2) a{color:var(--ground)}
.sec-head a:hover,.panel.row-between.rule-b:has(> h2) a:hover{color:var(--sage)}
/* Work filters: the space after Index and Grid stays light, not the dark rule colour (Braden, 29 Sept) */
@media (min-width:768px){.filter-row::after{content:"";flex:1 1 0;min-width:1px;background:var(--ground)}}
/* Work index: list and photo fit on one screen under the header; the list scrolls (Braden, 29 Sept) */
@media (min-width:768px){
[data-brand-index="work"]{height:calc(100vh - var(--hdr,84px));min-height:420px;grid-template-rows:100%}
[data-brand-index="work"] .bi-list{height:100%;min-height:0;overflow-y:auto}
[data-brand-index="work"] .bi-preview{height:100%;min-height:0;overflow:hidden}
[data-brand-index="work"] .bi-sticky{position:relative;top:0;height:100%}
}
/* Brand names stay on one line; terminal-site JS shrinks long ones to fit */
.bi-row .t-h3{white-space:nowrap}
@media (min-width:768px){.brand-index[data-brand-index="work"] .bi-row{grid-template-columns:minmax(0,5fr) minmax(0,5fr) 3.2em}}
/* Desktop: the same inset above the frame as at its sides and bottom (Braden, 29 Sept) */
@media (min-width:992px){.frame{margin-top:var(--frame-inset);border-top:1px solid var(--ink);min-height:calc(100vh - 2 * var(--frame-inset))}}
/* Work index box 25% shorter than the screen under the header (Braden, 29 Sept) */
@media (min-width:768px){[data-brand-index="work"]{height:calc((100vh - var(--hdr,84px)) * .75);min-height:360px}}
/* Scroll bars site-wide: a thin, square-ended dark grey bar (Braden, 29 Sept). Chrome and Safari draw it from ::-webkit-scrollbar (the standard scrollbar-color would give rounded system ends there), Firefox from scrollbar-color */
@supports (-moz-appearance:none){*{scrollbar-width:thin;scrollbar-color:var(--ink) transparent}}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent;margin:4px}
::-webkit-scrollbar-thumb{background:var(--ink);border-radius:0;border:0}
::-webkit-scrollbar-button{display:none;width:0;height:0}
::-webkit-scrollbar-corner{background:transparent}
/* Thin light rules where one dark band meets another, matching the fact cells' dividers (Braden, 29 Sept) */
.case-facts{border-bottom-color:var(--ink-soft)}
.pf-numbers-head{border-bottom:1px solid var(--ink-soft)}
.pf-stats-note{border-top:1px solid var(--ink-soft)}
.pf-stats-note + .panel,.case-facts + .case-facts,.panel.is-dark + .panel.is-dark{border-top:1px solid var(--ink-soft)}
.pf-numbers + * > .panel:first-child{border-top:1px solid var(--ink-soft)}
.pf-numbers.rule-b{border-bottom-color:var(--ink-soft)}
@media (max-width:991px){.frame{border-top:0}.bar.is-header,.menu{box-shadow:inset 0 1px 0 var(--ink)}}
.lightbox{border:0;padding:0;margin:0;width:100vw;height:100dvh;max-width:none;max-height:none;background:transparent}
.lb-btn{position:fixed;display:flex;align-items:center;justify-content:center;padding:0;font:700 20px/1 var(--font-display);width:48px;height:48px;border:1px solid rgba(51,49,52,.35);color:var(--ink);cursor:pointer;border-radius:0}
.lb-close{top:var(--space-s);right:var(--space-s);font-size:26px}
.lb-prev{left:var(--space-s);top:50%;transform:translateY(-50%)}
.lb-next{right:var(--space-s);top:50%;transform:translateY(-50%)}
.lb-count{position:fixed;bottom:var(--space-s);left:50%;right:auto;top:auto;transform:translateX(-50%);color:var(--ground)}
@media (max-width:767px){
.lightbox img{max-width:100vw;max-height:calc(50dvh - 40px)}
.lb-prev,.lb-close,.lb-next{top:calc(75dvh - 24px);bottom:auto;right:auto;transform:none}
.lb-prev{left:calc(50% - 88px)}
.lb-close{left:calc(50% - 24px)}
.lb-next{left:calc(50% + 40px)}
.lb-count{bottom:auto;top:calc(75dvh + 40px)}
}
img.k-fit{position:absolute !important;margin:0 !important;transform:none !important}

/* 404 page (prototype): tall display panel, both panels bottom-aligned */
[data-nf]>.panel{justify-content:flex-end}
[data-nf]{flex:1 0 auto}
[data-nf]>.c-8{min-height:420px}
@media (max-width:767px){[data-nf]>.c-8{min-height:220px}}

/* Experimental page (Braden 29 Sept): Hardware and Software bands; Hangar Outdoor full width, photo fills the left half, text on the right */
[data-x="hardware"].x-products{grid-template-columns:minmax(0,1fr) !important}
[data-x="hardware"] .pr-img{aspect-ratio:4/3;background:var(--ground)}
[data-x="hardware"] .pr-img img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
@media (min-width:768px){
[data-x="hardware"] .product{flex-direction:row}
[data-x="hardware"] .pr-img{flex:0 0 50%;aspect-ratio:auto;min-height:480px;border-right:1px solid var(--ink)}
[data-x="hardware"] .pr-text{flex:1 1 0%;padding:48px}
}
@media (min-width:992px){[data-x="software"].x-products{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:768px) and (max-width:991px){[data-x="software"] .product:last-child:nth-child(odd){grid-column:1/-1}}

/* Preflight V-Ray band: copy runs the full container width (Braden 29 Sept) */
.pf-vray .t-body{max-width:none}
/* Preflight: body copy and FAQ answers run the full container width (Braden 29 Sept) */
[data-page="preflight"] .t-body,[data-page="preflight"] .ans,[data-page="load-sheet"] .t-body,[data-page="load-sheet"] .ans,[data-page="dispatch"] .t-body,[data-page="dispatch"] .ans{max-width:none}
/* Dark section bars: the short line ("Through the menu, or with shortcut keys.", "Four steps, and you can stop after the first one.") sits under the headline, not at the far right (Braden 29 Sept) */
.panel.pf-free-head,.panel.row-between.rule-b:has(> h2):has(.t-meta){flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:8px}
.panel.pf-free-head .t-meta,.panel.row-between.rule-b:has(> h2) .t-meta{text-align:left;margin:0;max-width:none}

/* Number and feature bands: cell text lines up with the band title (Braden 29 Sept) */
@media (min-width:992px){.pf-numbers .pf-stats > div{padding-left:40px;padding-right:40px}}

/* Keep the keyline gap under the frame (the frame's bottom margin was collapsing, so the footer sat on the window edge) */
@media (min-width:992px){body{padding-bottom:var(--frame-inset,0px)}.frame{margin-bottom:0 !important}}
/* Same for the top gap: the frame's top margin collapsed through the body, pushing short pages (404) 16px past the window */
@media (min-width:992px){body{padding-top:var(--frame-inset,0px)}.frame{margin-top:0 !important}}
/* Phones and tablets: frame runs edge to edge, no gap above or below (Braden 2026-09-29) */
@media (max-width:991px){.frame{margin-top:0 !important;margin-bottom:0 !important}}
/* Case study story: a one-paragraph story stays in one column, and no paragraph breaks across columns (Braden 2026-09-29) */
.t-body.w-richtext:not(:has(> :nth-child(2))){column-count:1 !important}
.t-body.w-richtext > *{break-inside:avoid}
/* Case study carousel arrows are links, not Webflow buttons: centre the arrow and drop the link underline (Braden 2026-09-29) */
@media (hover:hover) and (min-width:768px){a.car-btn:not(.w-button){display:flex;align-items:center;justify-content:center;padding:0;text-decoration:none;font:700 18px/1 var(--font-display);color:var(--ink)}}
/* Beta: anything marked data-at-launch (Preflight Releases, buying and refund FAQs) stays hidden until the paid launch. Webflow drops the hidden attribute on publish. */
[data-at-launch]{display:none !important}
/* Form success and error messages: house copy on the page ground, left aligned, like the prototype */
.w-form-done,.w-form-fail{background:none;padding:0;text-align:left;color:var(--ink)}
.w-form-done .form-done{display:flex;flex-direction:column;gap:var(--space-s);padding-block:var(--space-l)}
.w-form-fail{padding:var(--space-s) 0;border-top:1px solid var(--ink)}
/* No widows at any width (Braden's rule): short labels and headings balance their lines; running copy avoids a one-word last line */
h1,h2,h3,h4,h5,h6,summary,th,label,dt,.t-label,.t-small,.t-meta,.t-h3,.t-h2,.t-h1,.t-display,.t-subtitle{text-wrap:balance}
p,li,dd,td,figcaption,blockquote,.pf-fixlist li > div{text-wrap:pretty}
/* Case study facts: on desktop each cell takes the width its text needs, so long Role and Services values don't strand one word; on tablets, they wrap and the last row stretches to the edge */
@media (min-width:1200px){.case-facts{grid-template-columns:none !important;grid-auto-flow:column;grid-auto-columns:auto}}
@media (min-width:768px) and (max-width:1199px){.case-facts{display:flex !important;flex-wrap:wrap}.case-facts>div{flex:1 1 230px}}
/* Phones: Role (always the first fact, and the longest) takes the full row; the odd last fact rule shifts by one */
@media (max-width:767px){.case-facts>div:first-child{grid-column:1/-1}.case-facts>div:last-child:nth-child(odd){grid-column:auto}.case-facts>div:last-child:nth-child(even){grid-column:span 2}}
