:root,:root[data-theme=light]{--q2-bg:#fbfbfc;--q2-bg-elev:#fff;--q2-bg-muted:#f2f2f4;--q2-bg-inverse:#111;--q2-text:#242424;--q2-text-strong:#111;--q2-text-muted:#898989;--q2-text-inverse:#fff;--q2-border-ring:#222a3514;--q2-border-strong:#222a3524;--q2-divider:#222a3514;--q2-shadow-card:#131316b3 0 1px 5px -4px, #222a3514 0 0 0 1px, #222a350d 0 4px 8px 0;--q2-shadow-raised:#131316b3 0 1px 5px -4px, #222a351a 0 0 0 1px, #222a3514 0 12px 28px -8px;--q2-shadow-dropdown:#131316b3 0 1px 5px -4px, #222a351a 0 0 0 1px, #222a351f 0 16px 32px -12px;--q2-shadow-inset:inset 0 1px 1.9px #00000029;--q2-shadow-hl:inset 0 2px 0 #ffffff26;--q2-radius-xs:4px;--q2-radius-sm:6px;--q2-radius:8px;--q2-radius-md:12px;--q2-radius-lg:16px;--q2-radius-pill:9999px;--q2-nav-bg:#ffffffc7;--q2-nav-border:#222a3514;--q2-header-height:72px;--pico-font-family-sans-serif:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--pico-font-family-display:"Cal Sans", "Inter", sans-serif;--forum-font-display:var(--pico-font-family-display);--pico-font-family-monospace:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--pico-font-size:16px;--pico-line-height:1.6;--pico-font-weight:400;--pico-border-radius:var(--q2-radius);--pico-spacing:1rem;--pico-background-color:var(--q2-bg);--pico-color:var(--q2-text);--pico-h1-color:var(--q2-text);--pico-h2-color:var(--q2-text);--pico-h3-color:var(--q2-text);--pico-h4-color:var(--q2-text);--pico-h5-color:var(--q2-text);--pico-h6-color:var(--q2-text);--pico-muted-color:var(--q2-text-muted);--pico-muted-border-color:var(--q2-divider);--pico-primary:var(--q2-text);--pico-primary-hover:#000;--pico-primary-focus:var(--q2-focus-ring);--pico-primary-inverse:var(--q2-text-inverse);--pico-secondary:var(--q2-text-muted);--pico-secondary-hover:var(--q2-text);--pico-contrast:var(--q2-text);--pico-contrast-hover:#000;--pico-contrast-inverse:var(--q2-text-inverse);--pico-card-background-color:var(--q2-bg-elev);--pico-card-border-color:transparent;--pico-card-box-shadow:var(--q2-shadow-card);--pico-card-sectioning-background-color:var(--q2-bg-muted);--pico-form-element-background-color:var(--q2-bg);--pico-form-element-border-color:#222a3529;--pico-form-element-color:var(--q2-text);--pico-form-element-focus-color:var(--q2-focus-ring);--pico-primary-background:var(--q2-accent);--pico-primary-border:var(--q2-accent)}:root[data-theme=dark]{--q2-bg:#08090b;--q2-bg-elev:#1d1f25;--q2-bg-muted:#2a2d34;--q2-bg-inverse:#f5f5f5;--q2-text:#f2f2f3;--q2-text-strong:#fff;--q2-text-muted:#9a9aa0;--q2-text-inverse:#111;--q2-border-ring:#ffffff24;--q2-border-strong:#fff3;--q2-divider:#ffffff1a;--q2-shadow-card:#000000d9 0 1px 5px -4px, #ffffff24 0 0 0 1px, #0000008c 0 4px 12px 0;--q2-shadow-raised:#000000d9 0 1px 5px -4px, #ffffff24 0 0 0 1px, #000000a6 0 14px 32px -8px;--q2-shadow-dropdown:#000000d9 0 1px 5px -4px, #ffffff24 0 0 0 1px, #000000bf 0 16px 32px -12px;--q2-shadow-inset:inset 0 1px 1.9px #00000080;--q2-shadow-hl:inset 0 1px 0 #ffffff0f;--q2-nav-bg:#0b0b0cc7;--q2-nav-border:#ffffff0f;--pico-background-color:var(--q2-bg);--pico-color:var(--q2-text);--pico-muted-color:var(--q2-text-muted);--pico-muted-border-color:var(--q2-divider);--pico-primary:var(--q2-text-strong);--pico-primary-hover:#fff;--pico-primary-inverse:var(--q2-text-inverse);--pico-contrast:var(--q2-text-strong);--pico-contrast-inverse:var(--q2-text-inverse);--pico-card-background-color:var(--q2-bg-elev);--pico-card-sectioning-background-color:var(--q2-bg-muted);--pico-form-element-background-color:var(--q2-bg-elev);--pico-form-element-border-color:#ffffff1f;--pico-form-element-color:var(--q2-text);--pico-primary-background:var(--q2-accent);--pico-primary-border:var(--q2-accent)}html{background:var(--q2-bg);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}article{box-shadow:none;background:0 0;border-radius:0;margin-bottom:0;padding:0}article>header,article>footer,.card>header,.card>footer{background:0 0;border:0;border-radius:0;margin:0}body{font-family:var(--pico-font-family-sans-serif);color:var(--q2-text);background-color:var(--q2-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11", "ss01", "ss03";flex-direction:column;min-height:100vh;font-weight:400;display:flex}body.sticky-footer #page-wrapper{flex:1 0 auto}body.sticky-footer #footer{flex-shrink:0}h1,h2,h3,h4,h5,h6,.display,.h-display{font-family:var(--pico-font-family-display);color:var(--q2-text);letter-spacing:-.01em;margin-top:0;margin-bottom:.4em;line-height:1.15}h1{letter-spacing:-.025em;font-size:clamp(2.25rem,5vw + 1rem,3.75rem);font-weight:400;line-height:1.05}h2{letter-spacing:-.015em;color:var(--q2-text-strong);font-size:clamp(1.5rem,2.5vw + .5rem,2.125rem);font-weight:700;line-height:1.15;position:relative}h2:before{content:"";background:var(--q2-text-strong);opacity:.9;border-radius:2px;width:28px;height:3px;margin-bottom:.7rem;display:block}h3{letter-spacing:-.005em;font-size:clamp(1.25rem,1.5vw + .5rem,1.5rem);font-weight:600;line-height:1.25}h4{letter-spacing:0;font-size:1.1875rem;font-weight:600;line-height:1.3}h5{letter-spacing:.2px;font-size:1.0625rem;font-weight:600;line-height:1.3}h6{letter-spacing:.12em;text-transform:uppercase;color:var(--q2-text-muted);font-size:.75rem;font-weight:600;line-height:1.2}:is(h1,h2,h3)+:is(h1,h2,h3){margin-top:.25em}:is(p,ul,ol,dl,blockquote,pre,table,figure,hr,iframe,.card)+h1{margin-top:1.75em}:is(p,ul,ol,dl,blockquote,pre,table,figure,hr,iframe,.card)+h2{margin-top:1.65em}:is(p,ul,ol,dl,blockquote,pre,table,figure,hr,iframe,.card)+h3{margin-top:1.55em}:is(p,ul,ol,dl,blockquote,pre,table,figure,hr,iframe,.card)+h4{margin-top:1.45em}:is(p,ul,ol,dl,blockquote,pre,table,figure,hr,iframe,.card)+:is(h5,h6){margin-top:1.35em}h1+h2:before,.hero h2:before,.text-center h2:before{display:none}h1+h2{color:var(--q2-accent);margin-top:-.25em}p,li{color:var(--q2-text);font-size:1rem;line-height:1.7}.lead{color:var(--q2-text-muted);letter-spacing:-.2px;font-size:1.125rem;font-weight:300;line-height:1.55}.text-muted{color:var(--q2-text-muted)}.text-center{text-align:center}a{color:var(--q2-link);text-underline-offset:2px;text-decoration:underline;text-decoration-thickness:1px;transition:color .15s}a:hover{color:var(--q2-text-strong);text-decoration-thickness:2px}strong,b{color:inherit;font-weight:600}code,pre,kbd,samp{font-family:var(--pico-font-family-monospace);font-size:.9em}pre{background:var(--q2-bg-muted);border-radius:var(--q2-radius);box-shadow:var(--q2-shadow-card);padding:1rem 1.25rem;overflow-x:auto}code:not(pre code){background:var(--q2-bg-muted);border-radius:var(--q2-radius-xs);padding:.12em .35em}.phpdebugbar :is(p,li){color:inherit;font-size:inherit;line-height:inherit}.phpdebugbar a{color:inherit}.phpdebugbar :is(pre,code){box-shadow:none;background:0 0}hr{border:0;border-top:1px solid var(--q2-divider);margin:2.5rem 0}blockquote{border-left:2px solid var(--q2-text);color:var(--q2-text);font-family:var(--pico-font-family-display);letter-spacing:0;margin:1.75rem 0;padding:.25rem 1.25rem;font-size:1.25rem;line-height:1.4}blockquote cite,blockquote footer{font-family:var(--pico-font-family-sans-serif);color:var(--q2-text-muted);letter-spacing:0;margin-top:.5rem;font-size:.875rem;display:block}.markdown-alert{--alert-accent:var(--q2-text);--alert-bg:color-mix(in oklab, var(--alert-accent) 6%, var(--q2-bg-elev));border-left:4px solid var(--alert-accent);background:var(--alert-bg);border-radius:var(--q2-radius-sm);font-family:var(--pico-font-family-sans-serif);letter-spacing:0;color:var(--q2-text);margin:1.5rem 0;padding:.875rem 1.125rem;font-size:1rem;font-style:normal;line-height:1.55}.markdown-alert>:first-child{margin-top:0}.markdown-alert>:last-child{margin-bottom:0}.markdown-alert .markdown-alert-title{font-family:var(--pico-font-family-sans-serif);letter-spacing:0;color:var(--alert-accent);text-transform:none;align-items:center;gap:.4rem;margin:0 0 .375rem;font-size:.9375rem;font-weight:600;line-height:1;display:inline-flex}.markdown-alert .markdown-alert-title svg,.markdown-alert .markdown-alert-title .octicon{fill:currentColor;flex:none;width:16px;height:16px}.markdown-alert p{margin:0 0 .375rem}.markdown-alert p:last-child{margin-bottom:0}.markdown-alert-note{--alert-accent:#0969da}.markdown-alert-tip{--alert-accent:#1a7f37}.markdown-alert-important{--alert-accent:#8250df}.markdown-alert-warning{--alert-accent:#9a6700}.markdown-alert-caution{--alert-accent:#cf222e}:root[data-theme=dark] .markdown-alert-note{--alert-accent:#539bf5}:root[data-theme=dark] .markdown-alert-tip{--alert-accent:#57ab5a}:root[data-theme=dark] .markdown-alert-important{--alert-accent:#b083f0}:root[data-theme=dark] .markdown-alert-warning{--alert-accent:#c69026}:root[data-theme=dark] .markdown-alert-caution{--alert-accent:#e5534b}.container{width:100%;max-width:1200px;margin-inline:auto;padding-inline:clamp(1rem,4vw,2rem)}.container-narrow{max-width:880px;margin-inline:auto}#body-wrapper>.container>.content-item{background:var(--q2-bg-elev);border-radius:var(--q2-radius-lg);max-width:960px;margin-inline:auto;padding:clamp(1.75rem,4vw,3rem) clamp(1.5rem,4vw,3.25rem);box-shadow:0 1px 2px #1313160a,0 8px 24px -8px #1313160a}#body-wrapper>.container>.content-item>:first-child{margin-top:0}#body-wrapper>.container>.content-item>:last-child{margin-bottom:0}:root[data-theme=dark] #body-wrapper>.container>.content-item{box-shadow:0 1px 2px #00000059,0 10px 30px -10px #00000073,inset 0 0 0 1px #ffffff0a}.section{padding-block:clamp(3rem,8vw,6rem);position:relative}.section-tight{padding-block:clamp(2rem,5vw,3.5rem)}#body-wrapper{background:var(--q2-bg);padding-block:clamp(2.5rem,5vw,4rem)}.columns{grid-template-columns:minmax(0,1fr);gap:clamp(2rem,4vw,3rem);display:grid}@media (min-width:960px){.columns.has-sidebar{grid-template-columns:minmax(0,2.5fr) minmax(0,1fr)}.columns.has-sidebar.reverse{grid-template-columns:minmax(0,1fr) minmax(0,2.5fr)}}.column{min-width:0}.extra-spacing>:first-child{margin-top:0}#header{z-index:50;background:var(--q2-nav-bg);-webkit-backdrop-filter:saturate(180%)blur(12px);border-bottom:1px solid var(--q2-nav-border);padding-block:0;transition:padding .2s,background .2s,border-color .2s;position:relative;top:0}body.header-fixed #header{position:sticky;top:0}body.header-transparent #header{-webkit-backdrop-filter:none;background:0 0;border-bottom-color:#0000}body.header-transparent:has(.hero,#blog-hero) #header{width:100%;position:fixed;top:0;left:0}body.header-transparent.scrolled #header{background:var(--q2-nav-bg);-webkit-backdrop-filter:saturate(180%)blur(12px);border-bottom-color:var(--q2-nav-border)}body.header-dark:not(.scrolled) #header,body.header-dark:not(.scrolled) #header .navbar-brand,body.header-dark:not(.scrolled) #header .theme-toggle,body.header-dark:not(.scrolled) #header .login-status-wrapper,body.header-dark:not(.scrolled) #header .dropmenu>ul>li>a{color:#fff}body.header-dark:not(.scrolled) #header .navbar-brand svg path{fill:#fff}body.header-light:not(.scrolled) #header,body.header-light:not(.scrolled) #header .navbar-brand,body.header-light:not(.scrolled) #header .theme-toggle,body.header-light:not(.scrolled) #header .login-status-wrapper,body.header-light:not(.scrolled) #header .dropmenu>ul>li>a{color:#111}body.header-light:not(.scrolled) #header .navbar-brand svg path{fill:#111}body.header-dark:not(.scrolled) #header .dropmenu>ul>li>a.active,body.header-light:not(.scrolled) #header .dropmenu>ul>li>a.active{color:var(--q2-text-inverse)}body.header-dark:not(.scrolled) #header .dropmenu>ul>li>a:hover:not(.active),body.header-light:not(.scrolled) #header .dropmenu>ul>li>a:hover:not(.active){color:var(--q2-text-strong)}#header .navbar{min-height:var(--q2-header-height);align-items:center;gap:1.5rem;transition:min-height .2s;display:flex}.header-animated.scrolled #header .navbar{min-height:60px}.navbar-section{align-items:center;gap:1rem;display:flex}.navbar-section.logo{flex:none}.navbar-section.actions{gap:.75rem;margin-left:auto}.navbar-brand{color:var(--q2-text-strong);font-family:var(--pico-font-family-display);letter-spacing:0;align-items:center;gap:.625rem;font-size:1.125rem;font-weight:600;text-decoration:none;display:inline-flex}.navbar-brand:hover{color:var(--q2-text-strong);text-decoration:none}.navbar-brand img,.navbar-brand svg{width:auto;height:28px;display:block}.navbar-brand svg,.navbar-brand svg *{fill:var(--q2-text-strong)}.desktop-menu{flex:auto;justify-content:flex-end;align-items:center;gap:1.25rem;display:flex}.dropmenu,.dropmenu ul{display:block}.dropmenu ul,.dropmenu ul.navigation,.dropmenu ul:first-of-type,.dropmenu ul:last-of-type{margin:0;padding:0;list-style:none}.dropmenu>ul,.dropmenu ul.navigation{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.dropmenu li{margin:0;padding:0;display:block;position:relative}.dropmenu li:before{content:none!important}.dropmenu a{font-family:var(--pico-font-family-sans-serif);color:var(--q2-text-strong);border-radius:var(--q2-radius-sm);letter-spacing:-.1px;white-space:nowrap;align-items:center;gap:.375rem;margin:0;padding:.5rem .9375rem;font-size:.9375rem;font-weight:500;line-height:1.35;text-decoration:none;transition:background .15s,color .15s;display:inline-flex}.dropmenu a:hover{background:var(--q2-bg-muted);color:var(--q2-text-strong);text-decoration:none}.dropmenu a.active{color:var(--q2-text-inverse);background:var(--q2-text);font-weight:600}.dropmenu a.active:hover{background:var(--q2-text-strong);color:var(--q2-text-inverse)}.dropmenu ul ul,.dropmenu li>ul{top:calc(100% + 8px);background:var(--q2-bg-elev);border-radius:var(--q2-radius-md);min-width:280px;max-width:340px;box-shadow:var(--q2-shadow-dropdown);opacity:0;visibility:hidden;pointer-events:none;z-index:40;flex-direction:column;align-items:stretch;gap:2px;margin:0;padding:.375rem;list-style:none;transition:opacity .15s,transform .15s,visibility .15s;display:flex;position:absolute;inset-inline-start:0;transform:translateY(-4px)}.dropmenu li:hover>ul,.dropmenu li:focus-within>ul,.dropmenu li.open>ul{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.dropmenu li>ul:before{content:"";inset-inline:0;height:10px;position:absolute;top:-10px}.dropmenu li li>ul:before{top:0;width:10px;height:100%;inset-inline:-10px auto}.dropmenu li li.flip-x>ul:before{inset-inline:auto -10px}.dropmenu li>ul>li{align-self:stretch;width:100%;display:block}.dropmenu li>ul a{box-sizing:border-box;border-radius:var(--q2-radius-sm);white-space:normal;letter-spacing:-.1px;width:100%;margin:0;padding:.375rem .875rem;font-size:.9375rem;font-weight:500;line-height:1.4;display:block}.dropmenu li li>ul{top:0;inset-inline-start:calc(100% + 6px)}.dropmenu li.flip-x>ul{inset-inline:auto 0}.dropmenu li li.flip-x>ul{inset-inline:auto calc(100% + 6px)}nav .dropmenu ul ul,nav .dropmenu li>ul{flex-flow:column!important;align-items:stretch!important}.dropmenu li.has-children>a:after{content:"";opacity:.6;border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;margin-left:.25rem;display:inline-block;transform:rotate(45deg)translateY(-2px)}.dropmenu li li.has-children>a:after{margin-left:auto;transform:rotate(-45deg)}.dropmenu li li.has-children.flip-x>a:after{transform:rotate(135deg)}button.theme-toggle,.theme-toggle{--size:36px;width:var(--size);height:var(--size);border-radius:var(--q2-radius-pill);min-width:0;color:var(--q2-text-strong);cursor:pointer;box-shadow:none;background:0 0;border:0;flex:none;justify-content:center;align-items:center;margin:0;padding:0;font-size:0;line-height:0;transition:background .15s;display:inline-flex}button.theme-toggle:hover,.theme-toggle:hover{background:var(--q2-bg-muted)}.theme-toggle:focus-visible{outline:2px solid var(--q2-focus-ring);outline-offset:2px}.theme-toggle .icon{width:18px;height:18px;font-size:16px;line-height:1;display:none}:root[data-theme-preference=light] .theme-toggle .icon-sun,:root[data-theme-preference=dark] .theme-toggle .icon-moon,:root[data-theme-preference=auto] .theme-toggle .icon-auto{display:block}.mobile-menu{z-index:70;transition:top .2s;display:none;position:fixed;top:10px;right:14px}button.button_container,.button_container{border-radius:var(--q2-radius-pill);background:var(--q2-bg-elev);width:44px;height:44px;color:var(--q2-text-strong);box-shadow:var(--q2-shadow-card);cursor:pointer;border:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;margin:0;padding:0;font-size:0;line-height:0;display:flex}button.button_container:hover{background:var(--q2-bg-muted)}button.button_container:focus-visible{outline:2px solid var(--q2-focus-ring);outline-offset:2px}.button_container span{background:var(--q2-text-strong);border-radius:2px;width:18px;height:1.5px;transition:transform .25s,opacity .2s;display:block}.button_container.active .top{transform:translateY(6.5px)rotate(45deg)}.button_container.active .middle{opacity:0}.button_container.active .bottom{transform:translateY(-6.5px)rotate(-45deg)}.mobile-container{display:none}.overlay{background:var(--q2-bg);z-index:60;flex-direction:column;padding:5rem 2rem 2rem;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:flex;position:fixed;inset:0;overflow-y:auto;transform:translate(100%)}.overlay.open{transform:translate(0)}.overlay .mobile-logo{margin-bottom:2rem}.overlay .overlay-menu,.overlay .overlay-menu ul{width:100%;margin:0;padding:0;list-style:none;display:block}.overlay .overlay-menu li{width:100%;margin:0;padding:0;display:block}.overlay .overlay-menu li:before{content:none!important}.overlay .overlay-menu>ul>li+li{margin-top:.125rem}.overlay .overlay-menu a{width:100%;font-family:var(--pico-font-family-display);color:var(--q2-text-strong);letter-spacing:-.01em;border-radius:0;margin:0;padding:.625rem 0;font-size:1.5rem;font-weight:600;line-height:1.25;text-decoration:none;display:block}.overlay .overlay-menu a:hover{color:var(--q2-text-strong);text-decoration:none}.overlay .overlay-menu ul ul{border-left:2px solid var(--q2-divider);margin:.125rem 0 .5rem;padding-left:1rem}.overlay .overlay-menu ul ul a{font-size:1rem;font-weight:500;font-family:var(--pico-font-family-sans-serif);color:var(--q2-text-muted);letter-spacing:0;padding:.5rem 0 .5rem .75rem}@media (max-width:860px){.desktop-menu{display:none}.mobile-menu,.mobile-container{display:block}#header .navbar{min-height:64px}.header-animated.scrolled .mobile-menu{top:8px}.navbar-section.actions{display:none}}body.overlay-open{overflow:hidden}#blog-hero,.modular-hero,.hero{background-color:var(--q2-bg);isolation:isolate;background-position:50%;background-size:cover;padding-block:clamp(5rem,12vw,9rem);position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(ellipse at 20% 0%, color-mix(in oklab, var(--q2-text) 5%, transparent), transparent 60%), radial-gradient(ellipse at 80% 100%, color-mix(in oklab, var(--q2-text) 4%, transparent), transparent 55%);pointer-events:none;z-index:-1;position:absolute;inset:0}.hero[style*=background-image]{color:var(--q2-text-inverse);background-color:var(--q2-bg-inverse)}.hero[style*=background-image] .image-overlay{z-index:-1;background:linear-gradient(#00000059 0%,#0000008c 100%);position:absolute;inset:0}.hero[style*=background-image] h1,.hero[style*=background-image] h2,.hero[style*=background-image] h3,.hero[style*=background-image] p{color:#fff}.hero.hero-fullscreen{min-height:100dvh}.hero.hero-large{min-height:clamp(30rem,60vh,34rem)}.hero.hero-medium{min-height:clamp(24rem,48vh,27rem)}.hero.hero-small{min-height:7rem}.hero.hero-tiny{min-height:5rem}.hero.text-light h1,.hero.text-light h2,.hero.text-light h3{color:#fff}.hero.text-light p,.hero.text-light .lead{color:#ffffffc7;color:lab(100% -.0000298023 .0000119209/.78)}.hero.text-dark h1,.hero.text-dark h2,.hero.text-dark h3{color:var(--q2-text-strong,#111)}.hero.text-dark p,.hero.text-dark .lead{color:#242424b8;color:lab(14.1977% 0 .00000596046/.72)}.title-h1h2 h1{margin-bottom:0;font-weight:100;line-height:1.1}.title-h1h2 h1 strong,.title-h1h2 h1 b{font-weight:400}.title-h1h2 h1+h2{margin-top:0;margin-bottom:3rem;font-weight:700;line-height:1.1}.hero[style*=background-image].overlay-light .image-overlay{background:#fff6;background:lab(100% -.0000298023 .0000119209/.4)}.hero[style*=background-image].overlay-light-gradient .image-overlay{background:linear-gradient(#ffffff80,#fff3);background:linear-gradient(lab(100% -.0000298023 .0000119209/.5),lab(100% -.0000298023 .0000119209/.2))}.hero[style*=background-image].overlay-dark .image-overlay{background:#0006;background:lab(0% 0 0/.4)}.hero[style*=background-image].overlay-dark-gradient .image-overlay{background:linear-gradient(#00000080,#0003);background:linear-gradient(lab(0% 0 0/.5),lab(0% 0 0/.2))}.hero .container{z-index:1;position:relative}.hero h1{margin-bottom:1rem}.hero p,.hero .lead{color:var(--q2-text-muted);max-width:48ch;margin-inline:auto}#to-start{color:var(--q2-text-muted);cursor:pointer;z-index:2;font-size:1.5rem;animation:2.4s ease-in-out infinite q2-bob;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}@keyframes q2-bob{0%,to{transform:translate(-50%)}50%{transform:translate(-50%,6px)}}.btn,button:not([role=button]).btn,a.btn,[type=button].btn,[type=submit].btn{font-family:var(--pico-font-family-sans-serif);letter-spacing:-.1px;color:var(--q2-accent-contrast);background:var(--q2-accent);border-radius:var(--q2-radius);cursor:pointer;box-shadow:var(--q2-shadow-hl);border:0;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.125rem;font-size:.9375rem;font-weight:600;line-height:1;text-decoration:none;transition:opacity .15s,transform 50ms,box-shadow .15s;display:inline-flex}.btn:hover{opacity:.9;color:var(--q2-accent-contrast);text-decoration:none}.btn:active{transform:translateY(.5px)}.btn:focus-visible{outline:2px solid var(--q2-focus-ring);outline-offset:2px}.btn.btn-ghost,.btn.btn-outline{color:var(--q2-text-strong);background:var(--q2-bg-elev);box-shadow:var(--q2-shadow-card)}.btn.btn-ghost:hover,.btn.btn-outline:hover{background:var(--q2-bg-muted);opacity:1}.btn.btn-pill{border-radius:var(--q2-radius-pill)}.btn.btn-sm{padding:.375rem .75rem;font-size:.8125rem}.btn.btn-lg{padding:.875rem 1.5rem;font-size:1rem}.card{background:var(--q2-bg-elev);border-radius:var(--q2-radius-md);break-inside:avoid;flex-direction:column;transition:box-shadow .2s,transform .2s;display:flex;overflow:hidden;box-shadow:0 1px 2px #1313160a,0 8px 24px -8px #1313160f}.card:hover{transform:translateY(-2px);box-shadow:0 1px 2px #1313160f,0 14px 32px -8px #1313161a}:root[data-theme=dark] .card{box-shadow:0 1px 2px #0006,0 10px 28px -8px #0000008c}:root[data-theme=dark] .card:hover{box-shadow:0 1px 2px #00000080,0 16px 36px -8px #000000a6}.card-image{display:block}.card-image img{aspect-ratio:16/9;object-fit:cover;width:100%;height:auto;display:block}.card-header{padding:1.25rem 1.375rem .625rem}.card-body{flex:1;padding:0 1.375rem .75rem}.card-footer{margin-top:auto;padding:.5rem 1.375rem 1.25rem}.card-subtitle{letter-spacing:0;color:var(--q2-text-muted);font-size:.8125rem;font-weight:500}.card-subtitle .blog-date i{opacity:.75;margin-right:.25rem;font-size:.8125rem}.card-title{margin-top:.5rem}.card-title :is(h1,h2,h3,h4,h5,h6){font-family:var(--pico-font-family-display);letter-spacing:-.005em;color:var(--q2-text-strong);margin:0;font-size:1.1875rem;font-weight:600;line-height:1.3}.card-title :is(h1,h2):before{display:none}.card-title a{color:inherit;text-decoration:none}.card-title a:hover{color:var(--q2-link);text-decoration:none}.card-body :is(h1,h2,h3,h4,h5,h6){font-family:var(--pico-font-family-sans-serif);letter-spacing:0;color:var(--q2-text);margin:0 0 .25rem;font-size:.9375rem;font-weight:600;line-height:1.35}.card-body :is(h1,h2):before{display:none}.card-body p{color:var(--q2-text-muted);margin:0 0 .5rem;font-size:.9375rem;line-height:1.55}.card-body p:last-child{margin-bottom:0}.card-body>:first-child{margin-top:0}.bricklayer{display:block}.bricklayer [data-bricklayer-column]{padding:0 .75rem}.bricklayer .card{margin-bottom:1.5rem}@media (max-width:720px){.bricklayer [data-bricklayer-column]{padding:0}}.tags{flex-wrap:wrap;gap:.375rem;display:inline-flex}.label{font-family:var(--pico-font-family-sans-serif);letter-spacing:0;border-radius:var(--q2-radius-pill);background:var(--q2-bg-muted);color:var(--q2-text-strong);box-shadow:inset 0 0 0 1px var(--q2-border-ring);align-items:center;padding:.25rem .625rem;font-size:.75rem;font-weight:500;text-decoration:none;display:inline-flex}.label:hover{background:var(--q2-bg);color:var(--q2-text-strong);text-decoration:none}.label-primary{background:var(--q2-text);color:var(--q2-text-inverse);box-shadow:none}.label-primary:hover{color:var(--q2-text-inverse);opacity:.9}.form-group{margin-bottom:1.25rem}.form-label{color:var(--q2-text-strong);letter-spacing:0;margin-bottom:.375rem;font-size:.9375rem;font-weight:500;display:block}.form-input,.form-select,input[type=text],input[type=email],input[type=url],input[type=password],input[type=search],textarea,select{background:var(--q2-bg-elev);color:var(--q2-text);border-radius:var(--q2-radius);border:1px solid #222a352e;width:100%;padding:.625rem .75rem;font-family:inherit;font-size:.9375rem;transition:box-shadow .15s,border-color .15s}:root[data-theme=dark] .form-input,:root[data-theme=dark] .form-select,:root[data-theme=dark] input[type=text],:root[data-theme=dark] input[type=email],:root[data-theme=dark] input[type=url],:root[data-theme=dark] input[type=password],:root[data-theme=dark] input[type=search],:root[data-theme=dark] textarea,:root[data-theme=dark] select{border-color:#ffffff24}.form-input:focus,.form-select:focus,textarea:focus,select:focus,input:focus{box-shadow:0 0 0 2px var(--q2-focus-ring), 0 0 0 3px var(--q2-bg);border-color:#0000;outline:none}.form-checkbox,.form-radio{align-items:center;gap:.5rem;font-size:.9375rem;display:inline-flex}.form-errors{color:#d12c2c;margin-top:.25rem;font-size:.8125rem}:root[data-theme=dark] #grav-login{background:var(--q2-bg-elev);border-color:var(--q2-border-ring);box-shadow:var(--q2-shadow-card);color:var(--q2-text)}:root[data-theme=dark] #grav-login .delimiter:before{background-image:linear-gradient(to right, var(--q2-text-muted), var(--q2-bg-elev))}:root[data-theme=dark] #grav-login .delimiter:after{background-image:linear-gradient(to left, var(--q2-text-muted), var(--q2-bg-elev))}.form-tabs .tabs-nav{border-bottom:1px solid var(--q2-divider);flex-wrap:wrap;gap:0;margin-bottom:1.5rem;padding:0;display:flex}.form-tabs .tabs-nav a.tab__link,.form-tabs .tabs-nav .tab__link{color:var(--q2-text-muted);text-align:center;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;flex:none;margin:0 0 -1px;padding:.75rem 1.25rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s}.form-tabs .tabs-nav a.tab__link span,.form-tabs .tabs-nav .tab__link span{color:inherit}.form-tabs .tabs-nav a.tab__link:hover,.form-tabs .tabs-nav .tab__link:hover{color:var(--q2-text-strong);text-decoration:none}.form-tabs .tabs-nav a.tab__link.active,.form-tabs .tabs-nav .tab__link.active{color:var(--q2-text-strong);border:0;border-bottom:2px solid var(--q2-accent);margin:0 0 -1px}.form-tabs .tabs-nav a.tab__link.active span,.form-tabs .tabs-nav .tab__link.active span{color:var(--q2-text-strong)}.form-tabs .tabs-content .tab__content{padding-top:1.5rem;display:none}.form-tabs .tabs-content .tab__content.active{display:block}.switch-toggle.switch-grav{background:var(--q2-bg-elev);border:1px solid var(--q2-border-strong);border-radius:var(--q2-radius);align-items:stretch;line-height:1;display:inline-flex;overflow:hidden}.switch-toggle.switch-grav input[type=radio]{opacity:0;pointer-events:none;width:0;height:0;margin:0;position:absolute}.switch-toggle.switch-grav input[type=radio]~label:not(:last-of-type),.switch-toggle.switch-grav input[type=checkbox]~label:not(:last-of-type){margin-inline-end:0}.switch-toggle.switch-grav label{color:var(--q2-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-inline-start:1px solid var(--q2-border-strong);background:0 0;margin:0;padding:.625rem 1rem;font-size:.9375rem;line-height:1.15;transition:background .15s,color .15s}.switch-toggle.switch-grav label:first-of-type{border-inline-start:0}.switch-toggle.switch-grav label:hover{color:var(--q2-text-strong)}.switch-toggle.switch-grav input[type=radio]:checked+label,.switch-toggle.switch-grav input[type=radio].highlight:checked+label{background:var(--q2-accent);color:var(--q2-accent-contrast);border-inline-start-color:var(--q2-accent)}.switch-toggle.switch-grav input[type=radio]:focus-visible+label{outline:2px solid var(--q2-focus-ring);outline-offset:2px}.form-wrapper .buttons,.form-wrapper .button-wrapper{flex-wrap:wrap;gap:.625rem;margin-top:1.75rem;display:flex}.form-wrapper .buttons button,.form-wrapper .buttons input[type=submit],.form-wrapper .buttons input[type=reset],.form-wrapper .button-wrapper button,.form-wrapper .button-wrapper input[type=submit],.form-wrapper .button-wrapper input[type=reset]{letter-spacing:-.1px;width:auto;color:var(--q2-accent-contrast);background:var(--q2-accent);border-radius:var(--q2-radius);cursor:pointer;box-shadow:var(--q2-shadow-hl);border:0;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.125rem;font-family:inherit;font-size:.9375rem;font-weight:600;line-height:1;text-decoration:none;transition:opacity .15s,transform 50ms;display:inline-flex}.form-wrapper .buttons button:hover,.form-wrapper .buttons input[type=submit]:hover,.form-wrapper .button-wrapper button:hover,.form-wrapper .button-wrapper input[type=submit]:hover{opacity:.9;color:var(--q2-accent-contrast)}.form-wrapper .buttons button:active,.form-wrapper .button-wrapper button:active{transform:translateY(.5px)}.form-wrapper .buttons button[type=reset],.form-wrapper .buttons input[type=reset],.form-wrapper .button-wrapper button[type=reset],.form-wrapper .button-wrapper input[type=reset]{background:var(--q2-bg-elev);color:var(--q2-text);box-shadow:var(--q2-shadow-card)}.form-wrapper .buttons button[type=reset]:hover,.form-wrapper .button-wrapper button[type=reset]:hover{background:var(--q2-bg-muted);color:var(--q2-text);opacity:1}.form-wrapper input[type=checkbox],.form-wrapper input[type=radio]{accent-color:var(--q2-accent);vertical-align:middle;width:1.25rem;height:1.25rem;margin-right:.5rem}.form-wrapper input[type=checkbox]{border-radius:var(--q2-radius-xs)}.form-wrapper .checkboxes{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;display:inline-flex}.form-wrapper .checkboxes>label,.form-wrapper .checkboxes.toggleable>label{margin:0;padding:0;position:static}.form-wrapper .checkboxes label:before,.form-wrapper .checkboxes.toggleable label:before{box-sizing:border-box;vertical-align:middle;border:1px solid var(--q2-border-strong);background:var(--q2-bg-elev);border-radius:var(--q2-radius-xs);width:1.25rem;height:1.25rem;color:var(--q2-text);justify-content:center;align-items:center;margin:0 .5rem 0 0;padding:0;font-size:.875rem;line-height:1;display:inline-flex;position:static}.form-wrapper .checkboxes input[type=checkbox]:checked+label:before,.form-wrapper .checkboxes.toggleable input[type=checkbox]:checked+label:before{content:"";background-color:var(--q2-accent);background-image:var(--pico-icon-checkbox);border-color:var(--q2-accent);color:#0000;background-position:50%;background-repeat:no-repeat;background-size:64%}.form-wrapper .form-data.basic-captcha .form-input-wrapper{border-color:var(--q2-border-strong);border-radius:var(--q2-radius);background:var(--q2-bg-elev);align-items:stretch}.form-wrapper .form-data.basic-captcha .form-input-prepend{background:var(--q2-bg-muted);color:var(--q2-text);align-items:center;padding:0 .25rem 0 0}.form-wrapper .form-data.basic-captcha .form-input-prepend img{object-fit:cover;align-self:stretch;width:auto;max-width:130px;height:100%;margin:0;display:block}.form-wrapper .form-data.basic-captcha .form-input-prepend .reload-captcha-button{color:var(--q2-text-muted);border-radius:var(--q2-radius-sm);width:auto;height:auto;box-shadow:none;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:.25rem .5rem;transition:color .15s,background .15s;display:inline-flex}.form-wrapper .form-data.basic-captcha .form-input-prepend .reload-captcha-button:hover{color:var(--q2-text-strong);background:var(--q2-bg-elev);opacity:1}.form-wrapper .form-data.basic-captcha .form-input-prepend .reload-captcha-button svg{width:16px;height:16px;margin:0}.form-wrapper .form-data.basic-captcha input.form-input{background:0 0;border:0;border-radius:0;margin:0}.form-wrapper .form-data.basic-captcha input.form-input:focus{box-shadow:none}.form-wrapper .form-input-file.dropzone,.form-wrapper .dropzone{background:var(--q2-bg-elev);border:2px dashed var(--q2-border-strong);border-radius:var(--q2-radius);color:var(--q2-text-muted);padding:1.25rem .5rem;transition:border-color .15s,color .15s}.form-wrapper .dropzone:hover{border-color:var(--q2-accent);color:var(--q2-text)}.form-wrapper .dropzone .dz-default.dz-message{color:var(--q2-text-muted)}.form-wrapper .dropzone .dz-button,.form-wrapper .dropzone .dz-default button{background:var(--q2-bg-muted);color:var(--q2-text);border:1px solid var(--q2-border-ring);border-radius:var(--q2-radius);box-shadow:none;cursor:pointer;margin:0;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;transition:background .15s,color .15s}.form-wrapper .dropzone .dz-button:hover,.form-wrapper .dropzone .dz-default button:hover{background:var(--q2-bg-elev);color:var(--q2-text-strong);opacity:1}.form-wrapper .dropzone .dz-preview .dz-image{background:var(--q2-bg-muted)}.form-wrapper .dropzone .dz-preview .dz-remove{line-height:1;text-decoration:none}.form-wrapper .dropzone .dz-preview .dz-remove:hover{text-decoration:none}.form-wrapper .filepond--panel-root,.form-wrapper .filepond--panel-top,.form-wrapper .filepond--panel-center,.form-wrapper .filepond--panel-bottom{background:var(--q2-bg-elev)}.form-wrapper .filepond--root{border:1px solid var(--q2-border-strong);border-radius:var(--q2-radius);color:var(--q2-text)}.form-wrapper .filepond--drop-label,.form-wrapper .filepond--drop-label label{color:var(--q2-text-muted)}.form-wrapper .filepond--label-action{color:var(--q2-text-strong);-webkit-text-decoration-color:var(--q2-text-muted);text-decoration-color:var(--q2-text-muted)}.form-wrapper .filepond--credits{color:var(--q2-text-muted);opacity:.5}.form-wrapper .filepond--file-action-button{color:#fff;background-color:#0006}.form-wrapper .filepond--item-panel{background:var(--q2-bg-muted)}.toast{border-radius:var(--q2-radius);background:var(--q2-bg-elev);color:var(--q2-text);box-shadow:var(--q2-shadow-card);align-items:center;gap:.625rem;margin-bottom:1rem;padding:.75rem 1rem;display:flex}.toast-success,.toast.success,.toast.green{box-shadow:var(--q2-shadow-card), inset 3px 0 0 #059669}.toast-error,.toast.error,.toast.red{box-shadow:var(--q2-shadow-card), inset 3px 0 0 #d12c2c}.toast-warning,.toast.warning,.toast.yellow{box-shadow:var(--q2-shadow-card), inset 3px 0 0 #d97706}#sidebar{position:relative}.sidebar-content{background:var(--q2-bg-elev);border-radius:var(--q2-radius-md);margin-bottom:1.5rem;padding:1.25rem;box-shadow:0 1px 2px #1313160a,0 8px 24px -8px #1313160f}:root[data-theme=dark] .sidebar-content{box-shadow:0 1px 2px #0006,0 10px 28px -8px #0000008c}.sidebar-content h4{text-transform:uppercase;letter-spacing:.08em;color:var(--q2-text-muted);margin:0 0 .75rem;font-size:.875rem;font-weight:600}.sidebar-content .btn,.sidebar-content .button{width:auto}.sidebar-content ul{margin:0;padding:0;list-style:none}.sidebar-content ul.archives li,.sidebar-content ul.menu li{margin:0}.sidebar-content ul.archives a,.sidebar-content ul.menu a{color:var(--q2-text);align-items:center;gap:.625rem;padding:.4375rem 0;line-height:1.4;text-decoration:none;display:flex}.sidebar-content ul.archives a:hover,.sidebar-content ul.menu a:hover{color:var(--q2-link);text-decoration:none}.sidebar-content ul.archives a:hover .menu-text,.sidebar-content ul.menu a:hover .menu-text{text-decoration:underline}.sidebar-content .menu-score{background:var(--q2-text);min-width:1.625rem;height:1.625rem;color:var(--q2-text-inverse);font-family:var(--pico-font-family-sans-serif);letter-spacing:0;border-radius:9999px;flex:none;justify-content:center;align-items:center;padding:0 .4375rem;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex}.sidebar-content .menu-text{min-width:0;font-size:.9375rem}.syndicate .btn{margin-bottom:.375rem;margin-right:.375rem}.breadcrumbs{color:var(--q2-text-muted);flex-wrap:wrap;gap:.375rem;margin:0 0 1.5rem;padding:0;font-size:.875rem;list-style:none;display:flex}.breadcrumbs li+li:before{content:"›";opacity:.6;margin-right:.375rem}.breadcrumbs a{color:var(--q2-text-muted);text-decoration:none}.breadcrumbs a:hover{color:var(--q2-text-strong)}.blog-listing .content-item{max-width:760px;margin-inline:auto}.blog-page-header{text-align:center;max-width:720px;margin:0 auto clamp(2rem,4vw,3rem)}.blog-page-header h1{margin:0 0 .5rem}.blog-page-header .lead{margin:0}.blog-page-header .blog-page-intro{color:var(--q2-text-muted);margin-top:1rem;font-size:1rem;line-height:1.6}.blog-grid{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:clamp(1.25rem,2vw,1.75rem);display:grid}@media (min-width:560px){.blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1200px){.blog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.columns.has-sidebar .blog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.blog-grid>.card{align-self:stretch;height:100%}.blog-listing .columns>aside:empty{display:none}@media (min-width:960px){.blog-listing .columns.has-sidebar:has(>aside:empty){grid-template-columns:minmax(0,1fr)}}.content-title{margin-bottom:2rem}.content-title h1,.content-title h2{margin-bottom:.5rem}.blog-date{color:var(--q2-text-muted);font-size:.875rem}.blog-date i{opacity:.7;margin-right:.375rem}.prev-next{justify-content:space-between;gap:.75rem;margin-top:3rem;display:flex}.prev-next .btn{flex:1;max-width:48%}.modular-features{background:var(--q2-bg)}.modular-features .frame-box{max-width:1100px;margin-inline:auto}.modular-features .columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:2.5rem;display:grid}.modular-features[data-layout=standard] .columns{grid-template-columns:minmax(0,1fr)}@media (min-width:640px){.modular-features .columns{grid-template-columns:repeat(3,minmax(0,1fr))}.modular-features[data-layout=standard] .columns{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.modular-features .columns{grid-template-columns:repeat(4,minmax(0,1fr))}.modular-features[data-layout=standard] .columns{grid-template-columns:repeat(3,minmax(0,1fr))}}.modular-features .column{background:var(--q2-bg-elev);border-radius:var(--q2-radius-md);box-shadow:var(--q2-shadow-card);padding:1.5rem 1.25rem;transition:box-shadow .2s,transform .2s}.modular-features .column:hover{box-shadow:var(--q2-shadow-raised);transform:translateY(-2px)}.modular-features .feature-icon{flex-direction:column;gap:.75rem;margin-bottom:.75rem;display:flex}.modular-features .feature-icon i{color:var(--q2-text-strong);font-size:1.5rem}.modular-features h6{letter-spacing:0;margin:0;font-size:1.0625rem;font-weight:600}.modular-features .feature-content p{color:var(--q2-text-muted);margin:0;font-size:.9375rem;line-height:1.55}.modular-text.bg-gray{background:var(--q2-bg-muted)}.modular-text .columns{grid-template-columns:minmax(0,1fr);align-items:center}@media (min-width:860px){.modular-text .columns{grid-template-columns:1fr 1fr;gap:3.5rem}.modular-text .columns.align-left>div:first-child{order:2}}.modular-text img{border-radius:var(--q2-radius-md);box-shadow:var(--q2-shadow-card);width:100%;height:auto}body>footer,body>header,body>main{width:100%;max-width:none;padding:0}#footer{border-top:1px solid var(--q2-divider);background:var(--q2-bg);color:var(--q2-text-muted);text-align:center;padding-block:2.5rem;font-size:.875rem}#footer a{color:var(--q2-text);font-weight:500;text-decoration:none}#footer a:hover{text-decoration:underline}#footer p{margin:0}.bg-gray{background:var(--q2-bg-muted)}.pulse{animation:1.8s ease-in-out infinite q2-pulse;display:inline-block}@keyframes q2-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.15)}}.fa,.fas,.fa-solid,.fa-regular,.far,.fa-brands,.fab{line-height:1;display:inline-block}#error{text-align:center;justify-content:center;align-items:center;min-height:60vh;padding:4rem 1rem;display:flex}#error h1{margin-bottom:.5rem;font-size:clamp(3rem,10vw,6rem)}#error p{max-width:52ch;color:var(--q2-text-muted);margin-inline:auto}.pagination{justify-content:center;gap:.375rem;margin:2rem 0 0;padding:0;list-style:none;display:flex}.pagination li{list-style:none}.pagination li a,.pagination li span{border-radius:var(--q2-radius-sm);min-width:36px;height:36px;color:var(--q2-text);background:var(--q2-bg-elev);box-shadow:var(--q2-shadow-card);justify-content:center;align-items:center;padding:0 .625rem;font-size:.875rem;text-decoration:none;display:inline-flex}.pagination li.active a,.pagination li.active span{background:var(--q2-text);color:var(--q2-text-inverse)}body.scrolled #header{box-shadow:0 1px 0 var(--q2-nav-border), 0 8px 24px -12px #00000014}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mb-2{margin-bottom:1rem}.mr-10{margin-right:.625rem}img{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--q2-focus-ring);outline-offset:2px;border-radius:var(--q2-radius-xs)}::selection{background:var(--q2-text);color:var(--q2-text-inverse)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
:root,:root[data-theme=light],:root[data-theme=dark]{--vda-cyan:#009de0;--vda-blue:#0077ad;--vda-blue-dark:#005e89;--vda-ink:#19171b;--vda-ink-2:#25222a;--vda-text:#2b282f;--vda-muted:#6b6670;--vda-paper:#f5f1ea;--vda-line:#e2dbcf;--vda-white:#fff;--vda-on-ink:#e9e6ee;--vda-on-ink-2:#d8d4de;--vda-on-ink-3:#c9c4d0;--vda-on-ink-muted:#aca6b4;--vda-on-ink-line:#ffffff24;--q2-bg:#fff;--q2-bg-elev:#fff;--q2-text:var(--vda-text);--q2-text-strong:var(--vda-ink);--q2-text-muted:var(--vda-muted);--q2-accent:var(--vda-blue);--q2-link:var(--vda-blue);--q2-nav-bg:#fffffff5;--q2-header-height:80px;--pico-font-family-sans-serif:"Barlow", "Segoe UI", system-ui, sans-serif;--pico-font-family-display:"Barlow Condensed", "Barlow", "Arial Narrow", sans-serif;--pico-font-size:18px;--pico-line-height:1.6;--pico-background-color:#fff;--pico-color:var(--vda-text);--pico-primary:var(--vda-blue);--pico-primary-background:var(--vda-blue);--pico-primary-hover:var(--vda-blue-dark);--pico-primary-hover-background:var(--vda-blue-dark);--pico-h1-color:var(--vda-ink);--pico-h2-color:var(--vda-ink);--pico-h3-color:var(--vda-ink);--pico-h4-color:var(--vda-ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{scroll-behavior:smooth}body,p,li,dd{-webkit-hyphens:manual;hyphens:manual}.vda-hero,.vda-section,.vda-pagehead,.vda-cta,#body-wrapper{margin:0}.module-anchor{height:0}body{background:var(--vda-white);color:var(--vda-text);caret-color:var(--vda-blue);accent-color:var(--vda-blue)}::selection{background:var(--vda-cyan);color:var(--vda-ink)}h1,h2,h3,h4{font-family:var(--pico-font-family-display);letter-spacing:.005em;text-wrap:balance;font-weight:700;line-height:1.08}h1,h2{text-transform:uppercase}p{text-wrap:pretty}a{color:var(--vda-blue)}.container{max-width:1180px}.module-anchor{scroll-margin-top:var(--q2-header-height)}:focus-visible{outline:3px solid var(--vda-cyan);outline-offset:2px}.module-anchor:focus,main:focus{outline:none}.vda-skip{z-index:1000;background:var(--vda-ink);color:var(--vda-white);border-radius:999px;padding:.75rem 1.25rem;font-weight:600;text-decoration:none;transition:top .15s ease-out;position:absolute;top:-4rem;left:1rem}.vda-skip:focus{color:var(--vda-white);top:1rem}main{scroll-margin-top:var(--q2-header-height)}#header{border-bottom:1px solid var(--vda-line)}#header .navbar{min-height:var(--q2-header-height)}#header .navbar-brand img{width:auto;height:50px}#header .dropmenu>ul>li>a,#header .navigation a{color:var(--vda-ink);padding:.5rem .85rem;font-size:1rem;font-weight:600;text-decoration:none}#header .navigation a:hover{color:var(--vda-blue)}#header .navigation a.active{color:var(--vda-blue);box-shadow:inset 0 -2px 0 var(--vda-cyan);background:0 0;border-radius:0}.navbar-section.actions{gap:.5rem}.vda-callbtn{white-space:nowrap;align-items:center;gap:.5rem;text-decoration:none;display:inline-flex}#header .vda-callbtn{background:var(--vda-ink);color:var(--vda-white);font-variant-numeric:tabular-nums;border-radius:999px;padding:.55rem 1rem;font-size:.98rem;font-weight:600}#header .vda-callbtn:hover{background:var(--vda-blue);color:var(--vda-white)}.vda-mobile-call{margin-top:2rem}.vda-mobile-call .vda-callbtn{background:var(--vda-blue);color:var(--vda-white);border-radius:999px;padding:.8rem 1.4rem;font-size:1.15rem;font-weight:600}.mobile-logo img{width:auto;height:52px}.overlay .overlay-menu a{font-family:var(--pico-font-family-display);text-transform:uppercase;color:var(--vda-ink);font-size:1.6rem}.vda-eyebrow{font-family:var(--pico-font-family-display);text-transform:uppercase;letter-spacing:.14em;color:var(--vda-blue);align-items:center;gap:.6rem;margin:0 0 .75rem;font-size:.95rem;font-weight:600;display:inline-flex}.vda-eyebrow:before{content:"";background:var(--vda-cyan);border-radius:2px;width:28px;height:3px}.vda-section{padding:6rem 0}.vda-section.is-paper{background:var(--vda-paper)}.vda-section.is-paper .vda-eyebrow,.vda-section.is-paper .reveal-contact{color:var(--vda-blue-dark)}.vda-section.is-ink{background:var(--vda-ink);color:var(--vda-on-ink)}.vda-section.is-ink h2,.vda-section.is-ink h3{color:var(--vda-white)}.vda-section.is-ink .vda-eyebrow{color:var(--vda-cyan)}.vda-section__head{text-align:center;max-width:760px;margin:0 auto 3.5rem}.vda-section__head.is-left{text-align:left;margin-left:0}.vda-section__head h2{margin:0 0 1rem;font-size:clamp(2.1rem,4.2vw,3.1rem)}.vda-section__intro p{color:inherit;opacity:.88;margin:0;font-size:1.12rem}.vda-buttons{flex-wrap:wrap;gap:.85rem;display:flex}.vda-btn{border:2px solid #0000;border-radius:999px;align-items:center;gap:.55rem;padding:.9rem 1.6rem;font-size:1.05rem;font-weight:600;line-height:1.2;text-decoration:none;transition:background .18s,color .18s,border-color .18s,transform .18s;display:inline-flex}.vda-btn:hover{transform:translateY(-1px)}.vda-btn--primary{background:var(--vda-cyan);color:var(--vda-ink)}.vda-btn--primary:hover{background:var(--vda-white);color:var(--vda-ink)}.vda-btn--ghost-light{color:var(--vda-white);border-color:#ffffff8c}.vda-btn--ghost-light:hover{border-color:var(--vda-white);color:var(--vda-white);background:#ffffff14}.vda-link{color:var(--vda-blue);font-weight:600;text-decoration:none}.vda-link:hover{text-underline-offset:3px;text-decoration:underline}.vda-plainlink{color:inherit;font-weight:600}.vda-plainlink svg{display:none}.vda-hero{background:linear-gradient(180deg, var(--vda-ink-2) 0%, var(--vda-ink) 100%);color:var(--vda-on-ink);position:relative;overflow:hidden}.vda-hero:after,.vda-pagehead:after{content:"";background:linear-gradient(90deg, var(--vda-cyan) 0 33%, transparent 33%);height:6px;position:absolute;inset:auto 0 0}.vda-hero__grid{min-height:min(760px, calc(100svh - var(--q2-header-height)));grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:2rem;padding-block:5.5rem 4.5rem;display:grid}.vda-hero .vda-eyebrow{color:var(--vda-cyan)}.vda-hero h1{color:var(--vda-white);text-wrap:wrap;margin:0 0 1.25rem;font-size:clamp(2.5rem,5vw,3.9rem)}.vda-hero__lead{max-width:36rem;color:var(--vda-on-ink-2);margin:0 0 2.25rem;font-size:clamp(1.1rem,1.8vw,1.28rem);line-height:1.6}.vda-hero__facts{border-top:1px solid var(--vda-on-ink-line);flex-wrap:wrap;gap:0;margin:3rem 0 0;padding:0;list-style:none;display:flex}.vda-hero__facts li{border-right:1px solid var(--vda-on-ink-line);margin:0 1.75rem 0 0;padding:1.1rem 1.75rem 0 0;list-style:none}.vda-hero__facts li:last-child{border-right:0;margin-right:0}.vda-hero__facts strong{font-family:var(--pico-font-family-display);color:var(--vda-white);font-size:1.9rem;line-height:1.1;display:block}.vda-hero__facts span{color:var(--vda-on-ink-muted);font-size:.92rem}.vda-hero__visual{aspect-ratio:10/9;justify-content:center;align-items:flex-end;width:100%;max-height:560px;display:flex;position:relative}.vda-hero__cab{filter:drop-shadow(0 30px 30px #0000008c);width:auto;max-width:none;display:block;position:relative}.vda-hero__cab--1{z-index:3;order:2;height:100%}.vda-hero__cab--2{z-index:2;opacity:.92;order:1;height:84%;margin-right:-9%}.vda-hero__cab--3{z-index:1;opacity:.92;order:3;height:84%;margin-left:-9%}.vda-pagehead{background:var(--vda-ink);color:var(--vda-on-ink);padding:4.5rem 0 3.5rem;position:relative}.vda-pagehead .vda-eyebrow{color:var(--vda-cyan)}.vda-pagehead h1{color:var(--vda-white);max-width:18ch;margin:0 0 1rem;font-size:clamp(2.4rem,5.5vw,4rem)}.vda-pagehead__intro{max-width:44rem;color:var(--vda-on-ink-2);margin:0;font-size:1.2rem}.vda-services{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;display:grid}.vda-service{background:var(--vda-white);border:1px solid var(--vda-line);border-radius:14px;padding:2rem 2rem 1.75rem;transition:border-color .18s,box-shadow .18s,transform .18s;position:relative}.vda-service:hover{border-color:var(--vda-cyan);transform:translateY(-2px);box-shadow:0 14px 30px -18px #19171b59}.vda-service__num{font-family:var(--pico-font-family-display);color:var(--vda-blue);letter-spacing:.1em;font-size:1rem;font-weight:700}.vda-service h3{margin:.4rem 0 .6rem;font-size:1.75rem}.vda-service p{color:var(--vda-muted);margin:0 0 1rem}.vda-steps-wrap.has-photo{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr);align-items:center;gap:4rem;display:grid}.vda-steps{counter-reset:step;gap:1.5rem;margin:0;padding:0;list-style:none;display:grid}.vda-steps li{counter-increment:step;margin:0;padding:0 0 0 4.25rem;list-style:none;position:relative}.vda-steps li:before{content:counter(step);background:var(--vda-ink);width:2.9rem;height:2.9rem;color:var(--vda-white);font-family:var(--pico-font-family-display);border-radius:50%;place-items:center;font-size:1.35rem;font-weight:700;display:grid;position:absolute;top:-.15rem;left:0}.vda-steps-wrap:not(.has-photo) .vda-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem 3.5rem}.vda-steps-wrap:not(.has-photo) .vda-note{max-width:760px}.vda-steps h3{text-transform:none;margin:0 0 .25rem;font-size:1.45rem}.vda-steps p{color:var(--vda-muted);margin:0}.vda-note{border:1px solid var(--vda-line);background:var(--vda-white);border-radius:10px;margin-top:2.25rem;padding:1.1rem 1.35rem 1.1rem 3.25rem;font-size:1rem;position:relative}.vda-note:before{content:"i";background:var(--vda-ink);width:1.4rem;height:1.4rem;color:var(--vda-white);font:700 .85rem/1 var(--pico-font-family-display);border-radius:50%;place-items:center;display:grid;position:absolute;top:1.15rem;left:1.1rem}.vda-note p,.vda-photo{margin:0}.vda-photo img{border-radius:14px;width:100%;height:auto;display:block;box-shadow:0 24px 50px -24px #19171b8c}.vda-photo figcaption{color:var(--vda-muted);margin-top:.75rem;font-size:.9rem}.vda-photo--tilt img{border:10px solid var(--vda-white);border-bottom-width:40px;border-radius:4px;transform:rotate(-2deg)}.vda-cabinets{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));align-items:end;gap:2rem 1rem;margin:0;padding:0;list-style:none;display:grid}.vda-cabinets li{text-align:center;margin:0;list-style:none}.vda-cabinets img{object-fit:contain;filter:drop-shadow(0 18px 18px #00000080);width:auto;max-width:100%;height:300px;margin:0 auto;transition:transform .25s;display:block}.vda-cabinets li:hover img{transform:translateY(-6px)}.vda-cabinets span{font-family:var(--pico-font-family-display);text-transform:uppercase;letter-spacing:.08em;color:var(--vda-on-ink-2);margin-top:1rem;font-size:.95rem;font-weight:600;line-height:1.25;display:block}.vda-about{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:4.5rem;display:grid}.vda-about .vda-photo{justify-self:center;max-width:380px}.vda-about__text h2{margin:0 0 1.25rem;font-size:clamp(2.1rem,4.2vw,3.1rem)}.vda-about__text p{font-size:1.1rem}.vda-facts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin:2rem 0 0;display:grid}.vda-facts div{border-top:3px solid var(--vda-ink);padding-top:.75rem}.vda-facts dt{text-transform:uppercase;letter-spacing:.08em;color:var(--vda-muted);font-size:.85rem;font-weight:600}.vda-facts dd{color:var(--vda-ink);margin:.2rem 0 0;font-weight:600}.vda-contact{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:4rem;display:grid}.vda-contact__info h2{margin:0 0 1rem;font-size:clamp(2.1rem,4.2vw,3.1rem)}.vda-contact__list{gap:1.1rem;margin:2rem 0;padding:0;list-style:none;display:grid}.vda-contact__list li{grid-template-columns:6.5rem 1fr;gap:1rem;margin:0;list-style:none;display:grid}.vda-contact__list li>span:first-child{text-transform:uppercase;letter-spacing:.08em;color:var(--vda-muted);padding-top:.15rem;font-size:.85rem;font-weight:600}.vda-contact__list address{margin:0;font-style:normal}.vda-contact__list li>:last-child{justify-self:start}.vda-notice{background:var(--vda-ink);color:var(--vda-white);border-radius:10px;margin:0;padding:1rem 1.25rem;font-size:1rem}.reveal-contact{cursor:pointer;color:var(--vda-blue);border-bottom:1px dashed;font-weight:600}button.reveal-contact{appearance:none;width:auto;font:inherit;font-weight:600;line-height:inherit;box-shadow:none;background:0 0;border:0;border-bottom:1px dashed;border-radius:0;margin:0;padding:0}button.reveal-contact:hover{color:var(--vda-blue-dark)}.reveal-contact.revealed{border-bottom:0}.vda-form-card{background:var(--vda-white);box-shadow:0 1px 0 var(--vda-line), 0 24px 50px -30px #19171b73;border-radius:16px;padding:2rem}.vda-form-card label,.vda-form-card .form-label{font-size:.98rem;font-weight:600}.vda-form-card input,.vda-form-card select,.vda-form-card textarea{border-radius:10px}.vda-form-card textarea{min-height:8.5rem;margin-bottom:0}.vda-form .button-wrapper{margin-top:.5rem}.vda-form-card .form-field{margin-bottom:.9rem}.vda-form-card button[type=submit],.vda-form-card .button{background:var(--vda-ink);border-color:var(--vda-ink);color:var(--vda-white);border-radius:999px;width:auto;padding:.85rem 1.8rem;font-weight:600}.vda-form-card button[type=submit]:hover{background:var(--vda-blue);border-color:var(--vda-blue)}.vda-form-card .form-message,.vda-form-card .notices,.vda-form-card .alert{margin-bottom:1rem}.vda-form{grid-template-columns:1fr 1fr;column-gap:1rem;display:grid}.vda-form>.form-field.is-full,.vda-form>.button-wrapper{grid-column:1/-1}.vda-form .form-label-wrapper{margin-bottom:.3rem}.vda-form .form-field{margin-bottom:1rem}.vda-form input:not([type=checkbox]):not([type=radio]),.vda-form select{margin-bottom:0}.vda-prose{max-width:34rem;margin:0}.vda-prose h2{margin:2.75rem 0 .75rem;font-size:2rem}.vda-prose h2:first-child{margin-top:0}.vda-prose h3{margin:2rem 0 .5rem;font-size:1.4rem}.vda-prose p,.vda-prose li{font-size:1.08rem}.vda-prose ul li::marker{color:var(--vda-cyan)}.vda-prose .vda-figure-row p{justify-content:center;align-items:flex-end;gap:1.5rem;margin:0;display:flex}.vda-prose .vda-figure-row{background:var(--vda-ink);border-radius:14px;justify-content:center;align-items:flex-end;gap:1.5rem;margin:2.5rem 0;padding:2rem 1rem 1.5rem;display:block}.vda-prose .vda-figure-row img{filter:drop-shadow(0 14px 14px #00000080);width:auto;height:220px}.vda-cta{background:var(--vda-blue-dark);color:var(--vda-white);padding:3.5rem 0}.vda-cta__inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem 3rem;display:flex}.vda-cta h2{color:var(--vda-white);margin:0 0 .4rem;font-size:clamp(1.8rem,3.4vw,2.5rem)}.vda-cta p{color:#d7ecf7;max-width:38rem;margin:0}#footer.vda-footer{background:var(--vda-ink);color:var(--vda-on-ink-3);text-align:left;padding:4rem 0 1.75rem}.vda-footer__title{color:var(--vda-white);font-size:1.1rem;font-family:var(--pico-font-family-display);text-transform:uppercase;letter-spacing:.1em;margin:0 0 .9rem}.vda-footer p{color:var(--vda-on-ink-3);margin:0 0 .6rem}.vda-footer a,#footer.vda-footer a{color:var(--vda-white);text-decoration:none}.vda-footer a:hover{color:var(--vda-cyan)}.vda-footer .reveal-contact{color:var(--vda-white)}.vda-footer__grid{grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;display:grid}.vda-footer__brand img{width:232px;height:auto;margin-bottom:1rem}.vda-footer__links{margin:0;padding:0;list-style:none}.vda-footer__links li{margin:0 0 .45rem;list-style:none}.vda-footer__links a.active{box-shadow:none}.vda-footer__bottom{border-top:1px solid var(--vda-on-ink-line);color:var(--vda-on-ink-muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin-top:3rem;padding-top:1.25rem;font-size:.9rem;display:flex}.vda-footer__bottom a{color:var(--vda-on-ink-3)!important}@media (min-width:861px) and (max-width:1180px){#header .navbar-brand img{height:42px}#header .navigation a{padding:.5rem .55rem;font-size:.95rem}#header .vda-callbtn span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}#header .vda-callbtn{padding:.6rem}.vda-hero__facts li{margin-right:1rem;padding-right:1rem}.vda-hero__facts strong{font-size:1.5rem}}@media (max-width:1000px){.vda-hero__grid{grid-template-columns:1fr;min-height:0;padding-block:4rem 0}.vda-hero__visual{max-width:480px;max-height:430px;margin:0 auto}.vda-steps-wrap.has-photo,.vda-about,.vda-contact{grid-template-columns:1fr;gap:3rem}.vda-steps-wrap .vda-photo{max-width:460px}}@media (max-width:860px){#header .navbar-brand img{height:42px}:root{--q2-header-height:64px}}@media (max-width:700px){:root{--pico-font-size:17px}.vda-section{padding:4rem 0}.vda-services,.vda-steps-wrap:not(.has-photo) .vda-steps{grid-template-columns:1fr}.vda-service{padding:1.5rem}.vda-hero__visual{max-width:340px}.vda-hero__facts{border-top:0;display:block}.vda-hero__facts li{border-right:0;border-top:1px solid var(--vda-on-ink-line);align-items:baseline;gap:.6rem;margin:0;padding:.7rem 0;display:flex}.vda-hero__facts strong{font-size:1.3rem;display:inline}.vda-hero__facts span{font-size:.95rem}.vda-cabinets{grid-template-columns:repeat(2,1fr)}.vda-cabinets img{height:230px}.vda-form{grid-template-columns:1fr}.vda-form-card{padding:1.4rem}.vda-footer__grid{grid-template-columns:1fr;gap:2rem}.vda-contact__list li{grid-template-columns:1fr;gap:.1rem}.vda-prose .vda-figure-row img{height:140px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.vda-btn,.vda-service,.vda-cabinets img,.vda-skip{transition:none}.vda-btn:hover,.vda-service:hover,.vda-cabinets li:hover img{transform:none}}.vda-footer__title:before,.vda-section h2:before,.vda-prose h2:before,.vda-prose h1:before,.vda-cta h2:before,.vda-pagehead h1:before,.vda-hero h1:before{content:none}.vda-hero p,.vda-pagehead p{color:inherit}.vda-hero .vda-hero__lead{color:#d8d4de}.vda-services,.vda-cabinets,.vda-steps{margin-left:0}
