:root[data-theme=nova][data-color-mode=light]{color-scheme:light;--pf-bg:#f8f7f1;--pf-section-soft:#eeeee5;--pf-panel:#fffef9;--pf-project-bg:#e4e9dc;--pf-project-panel:#f8f7f1;--pf-map-bg:#e2e9ee;--pf-chart-secondary:#9eb1c0;--pf-text:#18251f;--pf-muted:#4b5c51;--pf-border:#d9ded2;--pf-border-strong:#b8c5b7;--pf-accent:#315c45;--pf-accent-soft:#e0eadc;--pf-accent-ink:#fff;--pf-hover:#e8eee2;--pf-header-bg:#f8f7f1f2;--pf-footer-bg:#eeeee5;--pf-contact-bg:#e4ebde;--pf-contact-text:#18251f;--pf-contact-muted:#4b5c51;--color-brand-dark:var(--pf-text);--color-brand-light:var(--pf-bg);--color-brand-cream:var(--pf-section-soft);--color-brand-primary:var(--pf-accent);--color-brand-accent:var(--pf-accent);--color-surface:var(--pf-panel);--ui-bg-page:var(--pf-bg);--ui-bg-base:var(--pf-section-soft);--ui-bg-surface:var(--pf-panel);--ui-bg-accent:var(--pf-accent);--ui-text-on-light:var(--pf-text);--ui-text-on-light-subtle:var(--pf-muted);--ui-text-on-dark:#f6f8f5;--ui-text-on-dark-subtle:#c2cdc5}:root[data-theme=nova][data-color-mode=dark]{color-scheme:dark;--pf-bg:#101416;--pf-section-soft:#151b1d;--pf-panel:#192123;--pf-project-bg:#151c1e;--pf-project-panel:#1a2224;--pf-map-bg:#202a2b;--pf-chart-secondary:#788887;--pf-text:#f1f4ee;--pf-muted:#aab5ad;--pf-border:#293435;--pf-border-strong:#3c4a48;--pf-accent:#b8e36e;--pf-accent-soft:#25311f;--pf-accent-ink:#151a12;--pf-hover:#202a2b;--pf-header-bg:#101416;--pf-footer-bg:#0c1011;--pf-contact-bg:#1b2422;--pf-contact-text:#f1f4ee;--pf-contact-muted:#c1cbc2;--color-brand-dark:var(--pf-text);--color-brand-light:var(--pf-panel);--color-brand-cream:var(--pf-section-soft);--color-brand-primary:var(--pf-accent);--color-brand-accent:var(--pf-accent);--color-surface:var(--pf-panel);--ui-bg-page:var(--pf-bg);--ui-bg-base:var(--pf-section-soft);--ui-bg-surface:var(--pf-panel);--ui-bg-accent:var(--pf-accent);--ui-text-on-light:var(--pf-text);--ui-text-on-light-subtle:var(--pf-muted);--ui-text-on-dark:#f6f8f5;--ui-text-on-dark-subtle:#c2cdc5}:root[data-theme=nova] body{background:var(--pf-bg);color:var(--pf-text)}:root[data-theme=nova] ::selection{background:var(--pf-accent);color:var(--pf-accent-ink)}:root[data-theme=nova] :focus-visible{outline-color:var(--pf-accent)}.portfolio-card-nav{width:min(24rem,32vw);margin-inline:auto;display:none}.has-js .portfolio-card-nav{display:block}.has-js .portfolio-nav{display:none!important}.portfolio-star-cta{white-space:nowrap;gap:.6rem;min-height:3.1rem;text-decoration:none;box-shadow:0 8px 24px #192b361a;color:var(--pf-text)!important;font:700 .92rem/1.2 var(--font-sans)!important;border-radius:.75rem!important;padding:.85rem 1.1rem!important}.portfolio-star-cta span{color:var(--pf-accent)}.portfolio-star-cta:focus-visible{outline:2px solid var(--pf-accent);outline-offset:4px}.portfolio-hero-art__topography{opacity:.34;pointer-events:none;position:absolute;inset:-1.6rem -1.7rem -1rem;mask-image:linear-gradient(135deg,#000 0%,#0000 94%)}.portfolio-topography-canvas{position:absolute;inset:0}.portfolio-topography-canvas canvas{width:100%;height:100%;display:block}.portfolio-scroll-expand{border-radius:1rem;width:100%;height:min(78vh,50rem);min-height:27rem;overflow:visible!important}.portfolio-project__tilt{width:100%!important;height:18rem!important}.portfolio-magic-bento{font-family:var(--font-sans)}@media (width<=980px){.portfolio-card-nav{display:none}}@media (width<=520px){.portfolio-star-cta{min-height:2.9rem;padding:.78rem .88rem!important;font-size:.84rem!important}}@media (prefers-reduced-motion:reduce){.portfolio-star-cta{transition:none!important}}.quote-page{isolation:isolate;min-height:calc(100vh - 4.6rem);padding-block:clamp(3rem,7vw,6rem);position:relative;overflow:hidden}.quote-page__backdrop{z-index:-1;pointer-events:none;opacity:.7;position:absolute;inset:0;overflow:hidden;mask-image:linear-gradient(#0000,#000 15% 85%,#0000)}.contact-grid{flex-direction:column;justify-content:center;gap:1rem;display:flex;position:absolute;inset:-20%;overflow:hidden;transform:rotate(-8deg)scale(1.1);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.contact-grid__row{gap:1rem;width:max-content;min-width:100%;display:flex}.contact-grid__card{background:color-mix(in srgb,var(--pf-bg) 72%,transparent);width:clamp(14rem,24vw,22rem);min-height:8.5rem;color:var(--pf-text);backdrop-filter:blur(3px);border:1px solid #5b755e30;border-radius:1rem;padding:1rem 1.2rem;box-shadow:0 14px 40px #172a1f0f}.contact-grid__card>span{color:var(--pf-accent);font:700 .65rem/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.6rem;display:block}.contact-grid__card strong{font-size:1.05rem}.contact-grid__card p{max-width:34ch;color:var(--pf-muted);margin:.45rem 0 0;font-size:.78rem;line-height:1.45}.quote-page__surface{z-index:1;border:1px solid color-mix(in srgb,var(--pf-border-strong) 60%,transparent);background:color-mix(in srgb,var(--pf-bg) 94%,transparent);backdrop-filter:blur(18px);border-radius:1.3rem;padding:clamp(1.25rem,3.6vw,2.75rem);position:relative;box-shadow:0 30px 90px #15261b24}.quote-page__back{border:1px solid var(--pf-border-strong);background:var(--pf-bg);color:var(--pf-text);border-radius:999px;align-items:center;margin-bottom:1.2rem;padding:.55rem .8rem;font-weight:700;text-decoration:none;display:inline-flex}.quote-page__back:hover{color:var(--pf-accent);border-color:var(--pf-accent)}.quote-page__back:focus-visible{outline:2px solid var(--pf-accent);outline-offset:3px}.quote-page__container{z-index:1;width:min(100% - 2rem,54rem);position:relative}.quote-page__intro h1{max-width:12ch;margin:0}.quote-page__intro p{max-width:58ch;color:var(--pf-muted);margin:1rem 0 0}.quote-wizard{--quote-line:var(--pf-border);--quote-choice-border:var(--pf-border-strong);color:var(--pf-text)}.quote-wizard__top{border-bottom:1px solid var(--pf-border);grid-template-columns:1fr minmax(5rem,10rem);align-items:center;gap:1.5rem;padding-bottom:1.15rem;display:grid}.quote-wizard__eyebrow{color:var(--pf-accent);font:700 .7rem/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .7rem}.quote-wizard__progress{gap:1.2rem;margin:0;padding:0;list-style:none;display:flex}.quote-wizard__progress li{color:var(--pf-muted);font-size:.78rem}.quote-wizard__progress li.is-active{color:var(--pf-text);font-weight:700}.quote-wizard__progress-bar{background:var(--pf-border);border-radius:4px;height:3px;overflow:hidden}.quote-wizard__progress-bar span{background:var(--pf-accent);height:100%;transition:width .3s;display:block}.quote-wizard__step--enter{animation:.32s cubic-bezier(.22,1,.36,1) both quote-step-enter}@keyframes quote-step-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.quote-choice-fieldset{border:0;min-width:0;margin:0;padding:0}.quote-choice-fieldset legend,.quote-contact-fields h3{font:700 clamp(1.25rem, 3vw, 1.65rem)/1.2 var(--font-heading);letter-spacing:-.025em;margin:0 0 1rem}.quote-choice-list{gap:.65rem;display:grid}.quote-choice{border:1px solid var(--quote-choice-border);background:var(--pf-panel);width:100%;min-height:3.5rem;color:var(--pf-text);text-align:start;font:600 .95rem/1.4 var(--font-sans);cursor:pointer;border-radius:.65rem;justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1rem;transition:border-color .18s,background .18s;display:flex}.quote-choice:hover,.quote-feature:hover{border-color:var(--pf-accent)}.quote-choice.is-selected,.quote-feature.is-selected{border-color:var(--pf-accent);background:var(--pf-accent-soft)}.quote-choice__check{border:1px solid var(--pf-border-strong);width:1.25rem;height:1.25rem;color:var(--pf-accent);border-radius:50%;place-items:center;font-size:.75rem;display:grid}.quote-choice.is-selected .quote-choice__check{border-color:var(--pf-accent)}.quote-feature-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.quote-feature{border:1px solid var(--quote-choice-border);background:var(--pf-panel);min-height:3.25rem;color:var(--pf-text);text-align:start;font:500 .85rem/1.4 var(--font-sans);cursor:pointer;border-radius:.6rem;align-items:center;gap:.65rem;padding:.7rem .8rem;transition:border-color .18s,background .18s;display:flex}.quote-feature__box{border:1px solid var(--pf-border-strong);width:1.05rem;height:1.05rem;color:var(--pf-accent-ink);border-radius:.25rem;flex:0 0 1.05rem;place-items:center;font-size:.7rem;display:grid}.quote-feature.is-selected .quote-feature__box{border-color:var(--pf-accent);background:var(--pf-accent)}.quote-field{color:var(--pf-text);gap:.45rem;font-size:.82rem;font-weight:650;display:grid}.quote-field small{color:var(--pf-muted);font-weight:400}.quote-field input,.quote-field textarea,.quote-field select{border:1px solid var(--pf-border-strong);background:var(--pf-panel);width:100%;min-height:2.9rem;color:var(--pf-text);font:400 .95rem/1.45 var(--font-sans);border-radius:.55rem;padding:.7rem .8rem}.quote-field textarea{resize:vertical}.quote-field input:focus,.quote-field textarea:focus,.quote-field select:focus{outline:2px solid var(--pf-accent);outline-offset:2px}.quote-scope-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.25rem;display:grid}.quote-wizard__fallback{color:var(--pf-muted);margin:1.3rem 0 0;font-size:.84rem}.quote-wizard__fallback a{color:var(--pf-accent);text-underline-offset:.2em;font-weight:700}.quote-review{grid-template-columns:1fr 1fr;gap:1.2rem;display:grid}.quote-summary,.quote-contact-fields{border:1px solid var(--pf-border);background:var(--pf-panel);border-radius:.7rem;padding:1.15rem}.quote-summary h3,.quote-contact-fields h3{margin:0 0 1rem;font-size:1.05rem}.quote-summary dl{margin:0}.quote-summary dl div{border-top:1px solid var(--pf-border);padding-block:.55rem}.quote-summary dt{color:var(--pf-muted);font-size:.72rem}.quote-summary dd{margin:.2rem 0 0;font-size:.88rem;line-height:1.5}.quote-summary>p,.quote-privacy{color:var(--pf-muted);margin:.8rem 0 0;font-size:.75rem;line-height:1.5}.quote-contact-fields{align-content:start;gap:.8rem;display:grid}.quote-contact-fields .quote-field{gap:.35rem}.quote-contact-fields .quote-field input{min-height:2.5rem}.quote-submit{background:var(--pf-accent);min-height:3rem;color:var(--pf-accent-ink);font:700 .9rem/1.3 var(--font-sans);cursor:pointer;border:0;border-radius:.6rem;grid-column:1/-1;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;display:flex}.quote-submit:disabled{opacity:.58;cursor:wait}.quote-wizard__actions{border-top:1px solid var(--pf-border);justify-content:space-between;align-items:center;gap:1rem;padding-top:1.1rem;display:flex}.quote-back,.quote-next{min-height:2.8rem;font:700 .85rem/1.3 var(--font-sans);cursor:pointer;border-radius:.55rem;padding:.65rem .9rem}.quote-back{border:1px solid var(--pf-border-strong);color:var(--pf-text);background:0 0}.quote-next{border:1px solid var(--pf-accent);background:var(--pf-accent);color:var(--pf-accent-ink);align-items:center;gap:1rem;margin-inline-start:auto;display:flex}.quote-error{color:#c13b31;margin:1rem 0 0;font-size:.85rem}.quote-success{align-content:center;justify-items:start;gap:.9rem;min-height:17rem;display:grid}.quote-success__mark{border:1px solid var(--pf-accent);width:2.5rem;height:2.5rem;color:var(--pf-accent);border-radius:50%;place-items:center;display:grid}.quote-success p{max-width:45ch;margin:0;font-size:1.1rem;line-height:1.6}.quote-wizard button:focus-visible{outline:2px solid var(--pf-accent);outline-offset:3px}@media (width<=650px){.quote-wizard__top{grid-template-columns:1fr;gap:.8rem}.quote-wizard__progress{justify-content:space-between;gap:.65rem}.quote-wizard__progress li{font-size:.7rem}.quote-feature-list,.quote-review,.quote-scope-fields{grid-template-columns:1fr}.quote-submit{grid-column:auto}.quote-wizard__step{min-height:auto}}@media (prefers-reduced-motion:reduce){.quote-wizard__step--enter{animation:none}.quote-wizard__progress-bar span,.quote-choice,.quote-feature{transition:none}}.quote-page{min-height:0;padding-block:clamp(1rem,2vw,1.5rem) 2rem}.quote-page__container{width:min(100% - 2rem,46rem)}.quote-page__intro{max-width:44rem;margin-bottom:1rem}.quote-page__intro h1{letter-spacing:-.045em;max-width:none;font-family:Georgia,serif;font-size:clamp(2.1rem,3.2vw,2.75rem);font-style:italic;font-weight:400;line-height:1.06}.quote-page__intro p{margin:.35rem 0 0;font-size:.88rem;line-height:1.4}.quote-wizard__top{gap:1rem;padding-bottom:.55rem}.quote-wizard__eyebrow{margin-bottom:.25rem}.quote-wizard__step{min-height:0;padding-block:.65rem}.quote-choice-fieldset legend{margin-bottom:.5rem;font-family:Georgia,serif;font-size:1.2rem;font-style:italic;font-weight:400}.quote-choice-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}.quote-choice{border-radius:.4rem;min-height:2.55rem;padding:.45rem .7rem;font-size:.78rem}.quote-feature-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.quote-feature{min-height:2.3rem;padding:.4rem .55rem;font-size:.75rem}.quote-field--details{margin-top:.6rem}.quote-field textarea{min-height:3.2rem;padding:.5rem .7rem}.quote-scope-fields{gap:.6rem;margin-top:.6rem}.quote-field{gap:.25rem;font-size:.76rem}.quote-field input,.quote-field select{min-height:2.25rem;padding:.4rem .6rem;font-size:.82rem}.quote-wizard__actions{padding-top:.55rem}.quote-wizard__fallback{margin:.5rem 0 0;font-size:.72rem}.quote-summary,.quote-contact-fields{padding:.65rem}.quote-review{gap:.55rem}.quote-summary dl div{padding-block:.35rem}.quote-contact-fields{gap:.45rem}.quote-submit{min-height:2.5rem;padding:.55rem .8rem}.quote-back,.quote-next{min-height:2.45rem;padding:.45rem .8rem}[dir=rtl] .quote-page__intro h1{font-family:var(--font-sans);letter-spacing:0;font-style:normal;font-weight:750}@media (width<=650px){.quote-page{padding-block:1.2rem 2.5rem}.quote-page__intro{margin-bottom:1rem}.quote-page__intro h1{font-size:2.1rem}.quote-choice-list,.quote-feature-list{grid-template-columns:1fr 1fr}.quote-choice{font-size:.77rem}.quote-wizard__step{padding-block:.75rem}.quote-review{grid-template-columns:1fr}}@media (width<=390px){.quote-choice-list,.quote-feature-list{grid-template-columns:1fr}}.gor{background:radial-gradient(circle at 65% 45%,var(--gor-glow),transparent 19%),var(--gor-ground);position:relative;overflow:hidden}.gor__canvas{width:100%;height:100%;display:block}.gor__content{z-index:1;position:relative}.gor[data-fallback] .gor__canvas{visibility:hidden}.gor[data-fallback]:before{content:"";opacity:.35;background:radial-gradient(circle at 70% 38%,#0000 0 22px,#c8dfbd 23px 24px,#0000 25px 60px) 0 0/90px 78px;position:absolute;inset:0}.aero-shards{width:100%;height:100%;position:relative;overflow:hidden}.aero-shards-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}
/*$vite$:1*/