/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ease-out:cubic-bezier(0, 0, .2, 1);--default-font-family:var(--font-body);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.relative{position:relative}.static{position:static}.block{display:block}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-vietnamese-wght-normal.Czsa-EzN.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-ext-wght-normal.C-3rgBeH.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Newsreader Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/newsreader-latin-wght-normal.CCVVNp6i.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-cyrillic-wght-normal.Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-greek-wght-normal.DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-vietnamese-wght-normal.usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-ext-wght-normal.Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/manrope-latin-wght-normal.DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg:#101817;--surface:#1b2523;--surface-raised:#24322f;--ink:#f2f3eb;--muted:#b4c0b9;--accent:#65ded3;--accent-ink:#0d2421;--error:#ffb9ad;--font-body:"Manrope Variable", sans-serif;--font-display:"Newsreader Variable", Georgia, serif;--step-small:.875rem;--step-body:1rem;--step-lead:clamp(1.125rem, 1rem + .35vw, 1.375rem);--step-head:clamp(2.25rem, 1.5rem + 3.7vw, 4.75rem);--step-display:clamp(3.35rem, 2rem + 5.4vw, 7.5rem);--gutter:clamp(1.25rem, 3.2vw, 3rem);--section-space:clamp(5.5rem, 9vw, 8rem);--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--duration-press:.12s;--duration-ui:.2s;--duration-gallery:.28s}*{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%;scrollbar-color:var(--muted) var(--bg);scroll-padding-top:2rem}body{background:var(--bg);color:var(--ink);font:400 var(--step-body)/1.7 var(--font-body);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--accent);color:var(--accent-ink)}button,input,textarea,select{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,summary{cursor:pointer;-webkit-user-select:none;user-select:none}button{border:0}a{color:inherit;text-underline-offset:.3em;text-decoration:none}p{margin:0 0 1.35rem}p:last-child{margin-bottom:0}figure{min-width:0;margin:0}img{max-width:100%;height:auto;display:block}svg{flex:none}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.035em;text-wrap:balance;margin:0;font-weight:400}h1{font-size:var(--step-display);line-height:.98}h2{font-size:var(--step-head);line-height:1.04}h3{font-size:clamp(1.65rem,1.35rem + 1.25vw,2.5rem);line-height:1.15}fieldset{border:0;min-width:0;margin:0;padding:0}legend{padding:0}:focus-visible{outline:3px solid var(--accent);outline-offset:6px}main:focus{outline:none}[hidden]{display:none!important}.frame{padding-inline:max(var(--gutter), env(safe-area-inset-left), env(safe-area-inset-right));max-width:1728px;margin-inline:auto}.section{margin-block:var(--section-space)}.lead{font-size:var(--step-lead);line-height:1.55}.muted{color:var(--muted)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip-link{z-index:20;left:var(--gutter);background:var(--accent);color:var(--accent-ink);padding:.75rem 1.25rem;position:fixed;top:1rem;transform:translateY(-200%)}.skip-link:focus{transform:translateY(0)}.button{background:var(--accent);min-height:3.5rem;color:var(--accent-ink);transition:transform var(--duration-press) var(--ease-out);justify-content:space-between;align-items:center;gap:2rem;padding:.9rem 1.5rem;font-size:1rem;font-weight:600;line-height:1.4;display:inline-flex}.button:active{transform:scale(.975)}.button:focus-visible{outline-offset:6px}.button:active:focus-visible{transform:none}.button:disabled{cursor:wait;opacity:.7}.text-link{align-items:center;gap:.8rem;min-height:2.75rem;text-decoration:underline 1px;display:inline-flex}.text-link svg{transition:transform var(--duration-ui) var(--ease-out)}.site-header{min-height:6.5rem;padding-top:env(safe-area-inset-top,0);z-index:5;justify-content:space-between;align-items:center;gap:2rem;display:flex;position:relative}.brand{white-space:nowrap;align-items:center;gap:1rem;min-height:3rem;font-weight:600;display:inline-flex}.brand img{width:62px;height:auto}.desktop-nav{align-items:center;gap:clamp(1.25rem,2.3vw,2.5rem);display:flex}.desktop-nav a{min-height:2.75rem;color:var(--muted);align-items:center;display:inline-flex}.site-header a[aria-current]{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.5em}.header-contact{font-size:1rem;text-decoration:none}.mobile-nav{display:none}.breadcrumbs{font-size:var(--step-small);color:var(--muted);margin-top:1rem}.breadcrumbs ol{flex-wrap:wrap;gap:.5rem 1rem;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li{align-items:center;gap:1rem;min-width:0;display:flex}.breadcrumbs li+li:before{content:"/"}.breadcrumbs a{align-items:center;min-height:2.75rem;text-decoration:underline;display:inline-flex}.hero{grid-template-columns:1.35fr 1fr;align-items:center;gap:6vw;padding-block:3.25rem 3.5rem;display:grid}.hero h1{white-space:nowrap;margin:0;font-size:clamp(4rem,7.8vw,8rem)}.hero-topic{font:500 1rem/1.5 var(--font-body);letter-spacing:0;white-space:normal;color:var(--muted);margin-bottom:1rem;display:block}.hero h1 br{display:none}.hero-description{font-size:var(--step-lead);max-width:32ch;margin-bottom:1.5rem}figcaption{font-size:var(--step-small);color:var(--muted);margin-top:1rem;line-height:1.55}.project-gallery{--slide-width:min(76vw, 66rem);--slide-inset:calc((100% - var(--slide-width)) / 2);margin-bottom:var(--section-space)}.gallery-heading{justify-content:space-between;align-items:center;gap:1.5rem;margin-bottom:1rem;display:flex}.gallery-heading h2{font-size:clamp(1.65rem,1.35rem + 1.25vw,2.5rem)}.gallery-controls{align-items:center;gap:.6rem;display:flex}.gallery-count{font-size:var(--step-small);font-variant-numeric:tabular-nums;color:var(--muted);margin-right:.75rem}.gallery-arrow{background:var(--surface-raised);width:3rem;height:3rem;color:var(--ink);transition:transform var(--duration-press) var(--ease-out);border-radius:50%;place-items:center;display:grid}.gallery-arrow:not([aria-disabled=true]):active{transform:scale(.94)}.gallery-arrow[aria-disabled=true]{opacity:.35;cursor:default}.arrow-back{display:flex;transform:rotate(180deg)}.project-track{grid-auto-flow:column;grid-auto-columns:var(--slide-width);overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--slide-inset);scrollbar-width:none;padding:1rem var(--slide-inset);gap:clamp(1rem,2.2vw,2rem);margin:0;list-style:none;display:grid;overflow-x:auto}.project-track::-webkit-scrollbar{display:none}.project-track:focus-visible{outline-offset:-5px}.project-slide{scroll-snap-align:center;scroll-snap-stop:always;min-width:0}.project-card{display:block}.project-image{aspect-ratio:60/31;background:var(--surface);transform-origin:50%;transition:transform var(--duration-gallery) var(--ease-out), opacity var(--duration-gallery) var(--ease-out);overflow:hidden}.project-image picture{width:100%;height:100%;display:block}.project-image img{object-fit:cover;width:100%;height:100%}.project-image--interface{background:var(--bg)}.project-image--interface img{object-fit:contain}.is-enhanced .project-slide:not([data-current]) .project-image{opacity:.65;transform:scale(.975)}.project-caption{transition:opacity var(--duration-ui) var(--ease-out);justify-content:space-between;align-items:center;gap:1.5rem;margin-top:1.5rem;display:flex}.is-enhanced .project-slide:not([data-current]) .project-caption{opacity:0}.project-caption h3{color:var(--ink);font-size:clamp(1.65rem,1.35rem + 1.25vw,2.5rem);line-height:1.15}.project-caption p{margin:.4rem 0 0}.project-caption .project-purpose{max-width:62ch;color:var(--ink);font-size:1rem}.project-visit{color:var(--ink);white-space:nowrap;align-items:center;gap:1rem;min-height:2.75rem;display:inline-flex}.project-visit svg{transition:transform var(--duration-ui) var(--ease-out)}.gallery-bottom{justify-content:space-between;align-items:center;gap:3rem;padding-top:2rem;display:flex}.gallery-description{font-size:var(--step-small);min-width:0;color:var(--muted);flex:0 auto;margin:0;line-height:1.7}.project-index{flex-wrap:wrap;justify-content:flex-end;gap:.3rem 1.5rem;display:flex}.project-index a{min-height:2.75rem;font-size:var(--step-small);color:var(--muted);align-items:center;display:inline-flex}.project-index a[aria-current]{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--accent);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:.5em}.project-gallery[data-instant] .project-image,.project-gallery[data-instant] .project-visit svg,.project-gallery[data-instant] .project-caption{transition:none}.gallery-arrow:active:focus-visible{transform:none}.project-index a:active,.mobile-nav-toggle:active{color:var(--accent)}.services-section{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:start;gap:9vw;display:grid}.section-anchor{max-width:34ch;position:sticky;top:3rem}.section-anchor h2{margin-bottom:2rem}.service-list{gap:3.5rem;display:grid}.service-list article{max-width:52ch}.service-list h3{margin-bottom:1.1rem}.service-list p{margin-bottom:1rem}.process-intro{grid-template-columns:1.2fr .85fr 1fr;align-items:start;gap:4vw;margin-bottom:4rem;display:grid}.process-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:4vw;margin:0;padding:0;list-style:none;display:grid}.process-list h3{margin-bottom:1.75rem}.process-list dl{margin:0}.process-list dl>div+div{margin-top:1.5rem}.process-list dt{color:var(--muted);font-size:var(--step-small);margin-bottom:.3rem}.process-list dd{margin:0}.pricing-section{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start;gap:3.5rem 9vw;display:grid}.pricing-section h2{margin-bottom:2rem}.pricing-section>div:first-child{max-width:36ch}.price-value{flex-wrap:wrap;align-items:baseline;column-gap:1.25rem;margin-bottom:1.4rem;line-height:1;display:flex}.price-value strong{font:400 clamp(5rem, 8.8vw, 8rem)/.95 var(--font-display);letter-spacing:-.04em}.price-value span{font-size:var(--step-lead);line-height:1.5}.included-list{gap:.55rem;margin:2rem 0;padding:0;list-style:none;display:grid}.pricing-detail .button{margin:1rem 0}.offer-row{grid-column:1/-1;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:1rem 9vw;display:grid}.offer-row h3{margin-bottom:1rem}.recurring-list{gap:1.25rem;margin:0 0 1.5rem;display:grid}.recurring-list dt{font-weight:600}.recurring-list dd{margin:.25rem 0 0}.intro-actions{flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.5rem;display:flex}.page-links{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem 3rem;display:flex}.page-links>.text-link{font-size:var(--step-lead)}.field-help{font-size:var(--step-small);color:var(--muted);margin-top:.65rem;line-height:1.65}.faq-intro{justify-content:space-between;align-items:baseline;gap:2rem;margin-bottom:3.5rem;display:flex}.faq-list{gap:2.75rem;display:grid}.faq-list article{grid-template-columns:1fr 1fr;gap:9vw;display:grid}.faq-list p{max-width:54ch;margin:0}.brief-section{grid-template-columns:.8fr 1.2fr;align-items:start;gap:8vw;display:grid}.brief-heading h2{margin-bottom:1.75rem}.brief-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;display:grid}.brief-choices label{background:var(--surface);cursor:pointer;align-items:center;gap:.8rem;min-height:5rem;padding:1.2rem;display:flex}.brief-choices input{width:1.1rem;height:1.1rem;accent-color:var(--accent);flex-shrink:0}.brief-choices label:has(input:checked){background:var(--surface-raised)}.brief-choices label:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:3px}.brief-result{margin-top:1.5rem}.brief-result p{max-width:47ch;min-height:5.2em}.site-footer{margin-top:var(--section-space);padding-bottom:max(2rem, env(safe-area-inset-bottom))}.footer-columns{grid-template-columns:1.4fr 1fr 1fr;gap:4vw;display:grid}.footer-columns nav{flex-direction:column;align-items:flex-start;gap:.1rem;display:flex}.footer-columns nav a{align-items:center;gap:.6rem;min-height:2.75rem;display:inline-flex}.footer-statement{font:400 var(--step-lead)/1.4 var(--font-display);letter-spacing:-.025em}.footer-wordmark{font:400 clamp(3.25rem, 12vw, 12rem)/.95 var(--font-display);letter-spacing:-.05em;white-space:nowrap;margin:3rem 0}.footer-bottom{grid-template-columns:1.4fr 1fr auto;align-items:center;gap:2rem;display:grid}.footer-bottom p{font-size:var(--step-small);margin:0}.sal-link{font-size:var(--step-small);align-items:center;gap:1rem;min-height:3.125rem;text-decoration:underline;display:flex}.sal-link img{object-fit:contain;object-position:left center;width:250px;height:50px}.footer-copyright{font-size:var(--step-small);margin-top:1.5rem}.page-heading{margin-block:4.5rem 4rem}.page-heading h1{max-width:17ch;font-size:clamp(3.25rem,7.6vw,7rem)}.page-heading>p{margin-top:2rem}.information-page .page-heading{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:4vw;margin-block:3rem 4rem;display:grid}.information-page .page-heading h1{font-size:clamp(3rem,6.6vw,6rem)}.information-page .section{margin-block:6rem}.information-page .site-footer{margin-top:5rem}.project-heading-copy{flex-wrap:wrap;justify-content:space-between;gap:2rem;margin-top:2rem;display:flex}.contact-page .page-heading{margin-block:3rem}.contact-layout{grid-template-columns:minmax(0,1.24fr) minmax(0,.76fr);align-items:start;gap:8vw;display:grid}.contact-aside{max-width:39ch}.contact-aside h2{margin-bottom:1.5rem;font-size:clamp(2rem,3vw,3rem)}.contact-links{flex-direction:column;align-items:flex-start;gap:.5rem;margin-block:2rem;display:flex}.contact-links a{overflow-wrap:anywhere;max-width:100%}.inquiry-form{background:var(--surface);padding:clamp(1.25rem,3vw,2.75rem)}.inquiry-form .field-help,.inquiry-form .privacy-note{font-size:1rem}.selected-project{font-size:var(--step-small);color:var(--muted)}.optional-details{margin-top:1.25rem}.optional-details summary{justify-content:space-between;align-items:center;min-height:3rem;list-style:none;display:flex}.optional-details summary::-webkit-details-marker{display:none}.optional-details summary span{font-size:1.5rem}.optional-details[open] summary span{transform:rotate(45deg)}.optional-fields{padding-top:1rem}.form-actions{flex-wrap:wrap;align-items:center;gap:.5rem 1.25rem;display:flex}.form-actions .button{gap:1rem;padding-inline:1rem}.copy-button{color:var(--ink);background:0 0;padding:.5rem 0}.copy-fallback{margin-top:1.5rem}.form-field{min-width:0;margin-bottom:1rem}.form-field label{margin-bottom:.55rem;display:block}.optional{color:var(--muted);font-size:var(--step-small)}.form-field input,.form-field textarea,.form-field select{border:1px solid var(--muted);background:var(--bg);width:100%;color:var(--ink);min-height:3.3rem;caret-color:var(--accent);border-radius:0;padding:.85rem;font-size:1rem;display:block}.form-field textarea{resize:vertical;min-height:9rem}.message-label{flex-wrap:wrap;justify-content:space-between;align-items:baseline;column-gap:1rem;display:flex}.draft-button{color:var(--accent);font-size:var(--step-small);background:0 0;padding:0}.privacy-note{font-size:var(--step-small);color:var(--muted);margin-block:1rem 1.5rem}.privacy-note a,.legal-content a{color:var(--ink);text-decoration:underline}.field-error{color:var(--error);font-size:var(--step-small);margin:.5rem 0 0;line-height:1.5}[aria-invalid=true]{border-color:var(--error)!important}.form-feedback{color:var(--ink);margin-bottom:1.5rem}.form-feedback[data-error=true]{color:var(--error)}.form-feedback a{text-decoration:underline}.form-feedback ul{padding-left:1.2rem}.case-cover img{width:100%}.case-context{grid-template-columns:1fr 1fr;gap:8vw;display:grid}.case-context>div{max-width:58ch}.case-detail{grid-template-columns:1.3fr .7fr;align-items:center;gap:15vw;display:grid}.case-detail h2{margin-bottom:2rem}.case-detail figure{max-width:390px}.case-images h2{margin-bottom:3rem}.case-images figure+figure{margin-top:4rem}.case-images img{width:100%}.case-services-image{max-height:1000px;overflow:hidden}.case-close h2,.case-close p{margin-bottom:2rem}.legal-content{max-width:1000px;padding-bottom:2rem}.legal-content section{margin-block:3.5rem}.legal-content h2{margin-bottom:1.25rem;font-size:clamp(1.75rem,3vw,2.75rem)}.legal-content ul{padding-left:1.25rem}.legal-content li+li{margin-top:.65rem}.legal-content dt{color:var(--muted)}.legal-content dd{overflow-wrap:anywhere;margin:0 0 1.25rem}.legal-content .button{color:var(--accent-ink);margin-top:1.5rem;text-decoration:none}.not-found{min-height:60svh;padding-block:5rem}.not-found h1,.not-found .lead{margin-bottom:2rem}.not-found>.text-link{width:fit-content;margin-top:1.5rem;display:flex}.is-revealing{animation:content-arrive .42s var(--ease-out)}[data-reveal-image].is-revealing{animation:image-arrive .7s var(--ease-out)}@keyframes content-arrive{0%{opacity:.65;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes image-arrive{0%{opacity:.65;transform:scale(.975)}to{opacity:1;transform:scale(1)}}@media (hover:hover) and (pointer:fine){.text-link:hover svg,.button:hover svg{transform:translate(2px,-2px)}.desktop-nav a:hover{color:var(--ink)}.footer-columns a:hover,.back-top:hover{color:var(--accent)}.brief-choices label:hover{background:var(--surface-raised)}.gallery-arrow:not([aria-disabled=true]):hover{background:var(--ink);color:var(--bg)}.project-card:hover .project-visit svg{transform:translate(2px,-2px)}.project-card:hover .project-visit{text-decoration:underline}.project-index a:hover{color:var(--ink)}}@media (width>=1728px){.hero{gap:4rem}}@media (width>=1024px){:root{--step-body:1.125rem}.site-header{font-size:1rem}}@media (width<=1023px){.desktop-nav,.header-contact{display:none}.site-header{flex-wrap:wrap;min-height:5.5rem}.mobile-nav{width:100%;display:block}.mobile-nav.is-enhanced{width:auto}.mobile-nav-toggle{min-height:3rem;color:inherit;background:0 0;align-items:center;gap:.75rem;padding:0;display:flex}.menu-glyph{gap:5px;width:20px;display:grid}.menu-glyph span{background:currentColor;width:20px;height:2px}.mobile-nav-toggle[aria-expanded=true] .menu-glyph span:first-child{transform:translateY(3.5px)rotate(45deg)}.mobile-nav-toggle[aria-expanded=true] .menu-glyph span:last-child{transform:translateY(-3.5px)rotate(-45deg)}.mobile-nav nav{background:var(--surface-raised);padding:1rem 1.5rem;display:grid}.mobile-nav.is-enhanced nav{top:100%;left:var(--gutter);right:var(--gutter);position:absolute}.mobile-nav nav a{justify-content:space-between;align-items:center;min-height:3.25rem;display:flex}.hero{grid-template-columns:1.15fr 1fr;gap:2.5rem;padding-top:2.5rem}.hero h1{font-size:clamp(3.5rem,7.2vw,5.5rem)}.hero-description{font-size:1rem}.gallery-bottom{flex-direction:column;align-items:flex-start;gap:1rem}.project-index{justify-content:flex-start}.process-intro{grid-template-columns:1fr 1fr;gap:2rem}.process-intro>p:last-child{grid-column:2}.process-list{gap:2rem}.contact-layout{grid-template-columns:1.2fr .8fr;gap:3rem}.footer-columns{grid-template-columns:1.2fr 1fr 1fr;gap:2rem}.footer-bottom{grid-template-columns:1.5fr 1fr}.back-top{grid-column:2}}@media (width<=767px){:root{--step-display:clamp(3.35rem, 14vw, 5.5rem);--section-space:5.5rem}.brand{gap:.65rem;font-size:1rem}.brand img{width:45px}.site-header{gap:1rem;min-height:5rem}.hero{flex-direction:column;align-items:stretch;gap:1.75rem;padding-block:2rem 2.5rem;display:flex}.hero h1{white-space:normal;font-size:clamp(3.5rem,16vw,6rem);line-height:.98}.hero h1 br{display:initial}.hero-description{max-width:32ch;margin-bottom:1.25rem;font-size:1rem}.project-gallery{--slide-width:calc(100vw - 56px)}.gallery-heading{gap:1rem;margin-bottom:.5rem}.gallery-controls{gap:.4rem}.gallery-count{display:none}.gallery-arrow{width:2.75rem;height:2.75rem}.project-image{aspect-ratio:4/5}.project-caption{flex-direction:column;align-items:flex-start;gap:.75rem;margin-top:1rem}.project-visit{gap:.75rem;font-size:1rem}.project-visit svg{width:24px;height:24px}.gallery-bottom{gap:1rem;padding-top:.75rem}.project-index{gap:0 1.25rem}.gallery-description br{display:none}.services-section,.pricing-section,.brief-section,.case-context,.case-detail,.contact-layout{grid-template-columns:1fr;gap:2.5rem}.section-anchor{max-width:38ch;position:static}.service-list{gap:2.5rem}.process-intro{grid-template-columns:1fr;gap:1.5rem;margin-bottom:2.75rem}.process-intro>p:last-child{grid-column:auto;max-width:48ch}.process-list{grid-template-columns:1fr;gap:2.5rem}.process-list h3{margin-bottom:1rem}.process-list dl{grid-template-columns:1fr;gap:1.5rem;display:grid}.process-list dl>div+div{margin-top:0}.price-value strong{font-size:clamp(5rem,23vw,7rem)}.faq-intro{margin-bottom:2.5rem;display:block}.faq-intro h2{margin-bottom:1.5rem}.faq-list{gap:2rem}.faq-list article{grid-template-columns:1fr;gap:.85rem}.brief-choices{gap:.6rem}.brief-choices label{min-height:5.5rem;padding:.9rem;line-height:1.5}.brief-choices svg{width:16px;height:16px}.brief-result p{min-height:5.2em}.footer-columns{grid-template-columns:1fr 1fr;gap:2rem 1rem}.footer-columns>div{grid-column:1/-1}.footer-columns nav a{line-height:1.45;font-size:var(--step-small);padding-block:.5rem}.footer-wordmark{margin:2.5rem 0;font-size:11.7vw}.footer-bottom{grid-template-columns:1fr;gap:1.5rem}.back-top{grid-column:auto}.sal-link{max-width:20rem}.page-heading{margin-block:2.5rem 3rem}.page-heading h1{font-size:clamp(3rem,12.5vw,4.5rem)}.information-page .page-heading{grid-template-columns:1fr;gap:1.5rem;margin-block:2.5rem 3rem}.information-page .section{margin-block:4.5rem}.offer-row{grid-template-columns:1fr}.contact-aside h2{font-size:2rem}.contact-links{margin-block:1.5rem}.contact-page .page-heading{margin-block:2rem}.inquiry-form{background:0 0;padding:0}.case-detail figure{justify-self:end;width:78%}.case-images h2{margin-bottom:2rem}.case-services-image{max-height:600px}.case-close h2{margin-bottom:1.5rem}.legal-content section{margin-block:2.5rem}.not-found{padding-top:3rem}}@media (width<=1023px){.information-page h2{font-size:clamp(2rem,4.8vw,2.5rem)}}@media (width<=359px){.brand{gap:.4rem}.brand img{width:38px}.mobile-nav-toggle{gap:.4rem}.process-list dl{grid-template-columns:1fr;gap:1rem}.brief-choices{grid-template-columns:1fr}.brief-choices label{min-height:3.75rem}.button{gap:1rem;padding-inline:1.1rem}}@media (prefers-reduced-motion:reduce){.is-revealing,[data-reveal-image].is-revealing{animation:none}.button,.text-link svg{transition:none}.button:active,.text-link:hover svg,.button:hover svg{transform:none}.project-image,.project-visit svg,.gallery-arrow,.project-caption{transition:none}.is-enhanced .project-slide:not([data-current]) .project-image{opacity:1;transform:none}.gallery-arrow:not([aria-disabled=true]):active,.project-card:hover .project-visit svg{transform:none}}@media (forced-colors:active){.button,.brief-choices label,.inquiry-form,.gallery-arrow{border:1px solid buttontext}.brief-choices label:has(input:checked){outline:2px solid highlight}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
