@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.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:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.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{--night:#07060f;--night-2:#0d0b1c;--night-3:#15122a;--ink:#f4f0ff;--ink-2:#cdc6e8;--ink-3:#a59dc9;--line:#cec4ff29;--line-strong:#cec4ff5c;--violet:#8b6cff;--blue:#4f7bff;--magenta:#ff4fb8;--magenta-hi:#ff7ccc;--on-accent:#14051a;--danger:#ff9db0;--success:#9ff0c4;--font:"Archivo Variable", "Archivo", system-ui, -apple-system, sans-serif;--w-compressed:62%;--w-normal:100%;--w-expanded:125%;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--press:.16s;--swift:.2s;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--section:clamp(96px, 14vw, 192px);--radius:0px;--z-world:0;--z-content:1;--z-nav:100;--z-skip:300;--header-height:68px;--max-width:1320px;--gutter:clamp(16px, 4vw, 48px)}@media (width<=640px){:root{--header-height:60px}}*,:before,:after{box-sizing:border-box}html{scroll-padding-top:calc(var(--header-height) + 16px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scrollbar-color:var(--violet) var(--night);-webkit-text-size-adjust:100%}body{min-height:100dvh;color:var(--ink);background:radial-gradient(ellipse 80% 60% at 70% 100%, #ff4fb847, transparent 70%), radial-gradient(ellipse 90% 70% at 20% 0%, #4f7bff2e, transparent 70%), linear-gradient(180deg, #0b0a24 0%, #160f3d 55%, #2a1650 100%) fixed, var(--night);font-family:var(--font);font-size:1.0625rem;font-stretch:var(--w-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;caret-color:var(--magenta);accent-color:var(--magenta);margin:0;font-weight:400;line-height:1.65;overflow-x:clip}::selection{color:var(--on-accent);background:var(--magenta)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,h4,p{margin:0}p,li{text-wrap:pretty}ul,ol{margin:0;padding:0;list-style:none}main{z-index:var(--z-content);position:relative}section{position:relative}.container{width:100%;max-width:var(--max-width);padding:0 var(--gutter);margin:0 auto}.section-pad{padding:var(--section) 0}.title{font-stretch:var(--w-compressed);letter-spacing:-.005em;text-transform:uppercase;text-wrap:balance;font-weight:800;line-height:.88}.title--xl{font-size:clamp(3.4rem,10.5vw,6rem)}.title--lg{font-size:clamp(2.9rem,7.4vw,6rem)}.title--md{font-size:clamp(2.1rem,4.4vw,3.5rem)}.title--sm{font-size:clamp(1.6rem,2.6vw,2.1rem);line-height:.95}.lead{max-width:34ch;color:var(--ink-2);text-wrap:pretty;font-size:clamp(1.125rem,1.6vw,1.375rem);line-height:1.5}.body{max-width:62ch;color:var(--ink-2);text-wrap:pretty}.chrome{font-stretch:var(--w-expanded);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem;font-weight:600;line-height:1}.mask{margin-bottom:-.04em;padding-bottom:.04em;display:block;overflow:hidden}.mask>span{display:block}.btn{border-radius:var(--radius);min-height:52px;font-stretch:var(--w-expanded);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;transition:transform var(--press) var(--ease-out), background-color var(--swift) ease, border-color var(--swift) ease, color var(--swift) ease;-webkit-tap-highlight-color:transparent;border:1px solid #0000;justify-content:center;align-items:center;gap:10px;padding:0 24px;font-size:.8125rem;font-weight:650;line-height:1;display:inline-flex;position:relative}.btn:active{transform:scale(.97)}.btn svg{flex:none}.btn-primary{color:var(--on-accent);background:var(--magenta)}.btn-ghost{color:var(--ink);border-color:var(--line-strong);background:#07060f6b}.btn-sm{min-height:40px;padding:0 16px;font-size:.75rem}@media (hover:hover) and (pointer:fine){.btn-primary:hover{background:var(--magenta-hi)}.btn-ghost:hover{border-color:var(--ink);background:#07060fb3}}.btn:disabled{cursor:not-allowed;opacity:.6;transform:none}:focus-visible{outline:2px solid var(--magenta);outline-offset:3px}section[tabindex="-1"]:focus{outline:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:var(--z-skip);color:var(--on-accent);background:var(--magenta);transition:transform var(--swift) var(--ease-out);padding:12px 16px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.btn,.btn:active,.contact__copy:active,.pywork .pywork__arrow{transform:none!important}}.world{z-index:var(--z-world);opacity:0;pointer-events:none;width:100%;height:100lvh;transition:opacity .6s var(--ease-out);display:block;position:fixed;inset:0}.world.is-live{opacity:1}.nav{z-index:var(--z-nav);height:var(--header-height);border-bottom:1px solid #0000;transition:background-color .24s,border-color .24s;position:fixed;inset:0 0 auto}.nav--solid{border-bottom-color:var(--line);background:#07060ff5}.nav__inner{align-items:center;gap:var(--sp-5);height:100%;display:flex}.nav__logo{font-stretch:var(--w-expanded);letter-spacing:.14em;font-size:.875rem;font-weight:800}.nav__links{gap:clamp(20px,3vw,40px);margin-left:auto;display:flex}.nav__link{color:var(--ink-2);transition:color var(--swift) ease;padding:10px 0;position:relative}.nav__link:after{background:var(--magenta);content:"";transform-origin:0;height:2px;transition:transform var(--swift) var(--ease-out);position:absolute;bottom:4px;left:0;right:0;transform:scaleX(0)}.nav__link.is-active{color:var(--ink)}.nav__link.is-active:after{transform:scaleX(1)}@media (hover:hover) and (pointer:fine){.nav__link:hover{color:var(--ink)}}.nav__toggle{width:44px;height:44px;color:var(--ink);background:0 0;border:0;justify-content:center;align-items:center;margin-right:-10px;padding:0;display:none}.nav__mobile{inset:var(--header-height) 0 0;background:var(--night);position:fixed;overflow-y:auto}.nav__mobile:not([hidden]){animation:menu-in .22s var(--ease-out)}.nav__mobile-links{padding-top:var(--sp-7);padding-bottom:var(--sp-7);flex-direction:column;align-items:flex-start;gap:4px;display:flex}.nav__mobile-link{padding:6px 0;font-size:clamp(3rem,15vw,4.5rem)}.nav__mobile-link,.nav__mobile-cta{animation:menu-item-in .28s var(--ease-out) backwards;animation-delay:calc(var(--i) * 40ms + 40ms)}.nav__mobile-cta{margin-top:var(--sp-6)}@keyframes menu-in{0%{opacity:0}}@keyframes menu-item-in{0%{opacity:0;transform:translateY(12px)}}@media (width<=860px){.nav__links,.nav__cta{display:none}.nav__toggle{margin-left:auto;display:inline-flex}}@media (prefers-reduced-motion:reduce){.nav__mobile-link,.nav__mobile-cta{animation-name:menu-in}}.hero{min-height:100dvh;padding:calc(var(--header-height) + var(--sp-7)) 0 clamp(48px, 9vh, 104px);align-items:flex-end;display:flex}.hero__veil{z-index:0;opacity:0;background:var(--night);pointer-events:none;position:absolute;inset:0}.hero:before{content:"";pointer-events:none;background:radial-gradient(70% 60% at 0 100%,#07060fd1,#07060f66 55%,#0000 80%),linear-gradient(#0000 60%,#07060f8c);position:absolute;inset:0}.hero__content{z-index:1;position:relative}.hero__headline{margin-bottom:var(--sp-5)}.hero__line--accent{color:var(--magenta-hi)}.hero__lead{max-width:40ch;margin-bottom:var(--sp-6);color:var(--ink)}.hero__lead strong{font-weight:700}.hero__ctas{gap:var(--sp-3);flex-wrap:wrap;display:flex}@media (width<=640px){.hero{padding-bottom:40px}.hero:before{background:linear-gradient(#0000 25%,#07060f99 55%,#07060fe6 100%)}.hero__ctas .btn{flex:auto}}.about__grid{column-gap:var(--sp-5);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.about__title{margin-bottom:var(--sp-8);grid-column:1/span 8}.about__manifesto{letter-spacing:-.015em;text-wrap:balance;grid-column:3/span 9;font-size:clamp(1.6rem,3.3vw,2.75rem);font-weight:500;line-height:1.18}.about__body{gap:var(--sp-4);margin-top:var(--sp-7);grid-column:7/span 5;display:grid}.about__body .body{color:var(--ink)}.about__principles{column-gap:var(--sp-5);margin-top:var(--sp-9);padding-top:var(--sp-6);border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.about__principles-title{grid-column:1/span 4}.principles{gap:var(--sp-6) var(--sp-6);grid-column:6/-1;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.principle:nth-child(2n){transform:translateY(var(--sp-6))}.principle__title{margin-bottom:var(--sp-2);font-stretch:var(--w-compressed);text-transform:uppercase;font-size:1.6rem;font-weight:750;line-height:1}.principle__body{color:var(--ink-2);margin:0}@media (width<=900px){.about__title,.about__manifesto,.about__body,.about__principles-title,.principles{grid-column:1/-1}.about__title,.about__principles-title{margin-bottom:var(--sp-6)}}@media (width<=560px){.principles{grid-template-columns:minmax(0,1fr)}.principle:nth-child(2n){transform:none}}.technology__title{margin-bottom:var(--sp-7)}.stack-row{align-items:baseline;gap:var(--sp-5);padding:var(--sp-5) 0 var(--sp-6);border-top:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,7fr);display:grid}.stack-row__name{color:var(--ink)}.stack-row__items{color:var(--ink-2);flex-wrap:wrap;gap:6px 28px;font-size:clamp(1.0625rem,1.5vw,1.25rem);display:flex}@media (width<=760px){.stack-row{gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}.stack-row__items{gap:4px 20px}}.work__title{max-width:11ch;margin-bottom:var(--sp-5)}.work__lead{max-width:44ch;margin-bottom:var(--sp-8)}.frames{gap:var(--sp-8);max-width:var(--max-width);padding:0 var(--gutter);margin:0 auto;display:grid}.frame__card{border:1px solid var(--line);background:var(--night-2);transform-origin:50% 0;grid-template-columns:minmax(0,1fr);display:grid;position:relative;overflow:hidden}.frame__visual{aspect-ratio:2.14;background:var(--night-3);position:relative;overflow:hidden}.frame__image{object-fit:cover;object-position:top center;width:100%;height:100%}.frame__body{align-items:start;gap:var(--sp-5) var(--sp-6);padding:var(--sp-5) var(--sp-6) var(--sp-6);grid-template-columns:minmax(0,3.2fr) minmax(0,5fr) minmax(0,2.6fr);display:grid}.frame__kind{color:var(--ink-3)}.frame__kind.is-client{color:var(--violet)}.frame__title{margin-bottom:var(--sp-2)}.frame__subtitle{color:var(--ink-2);font-weight:500}.frame__story{gap:var(--sp-3);display:grid}.frame__brief{max-width:54ch;color:var(--ink);text-wrap:pretty;font-size:1rem;line-height:1.55}.frame__label{margin-top:var(--sp-1);color:var(--ink-3)}.frame__built{color:var(--ink-2);gap:6px;font-size:.9375rem;display:grid}.frame__built li{padding-left:20px;position:relative}.frame__built li:before{background:var(--ink-3);content:"";width:10px;height:1px;position:absolute;top:.8em;left:0}.frame__meta{gap:var(--sp-5);display:grid}.frame__tech{color:var(--ink-2);flex-wrap:wrap;gap:2px 14px;font-size:.875rem;display:flex}.frame__actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.frame__shade{opacity:0;background:var(--night);pointer-events:none;position:absolute;inset:0}@media (width>=900px) and (height>=620px){.frame{top:calc(var(--header-height) + 16px);position:sticky}.frames{max-width:none;padding:0 16px}.frame__card{height:calc(100dvh - var(--header-height) - 32px)}.frame__visual{aspect-ratio:auto;position:absolute;inset:0}.frame__body{padding:var(--sp-5) var(--sp-7) var(--sp-6);border-top:1px solid var(--line-strong);background:var(--night-2);position:absolute;bottom:0;left:0;right:0}}@media (width<=1100px){.frame__body{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr)}.frame__meta{grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:end}}@media (width<=899px){.frame__body{flex-direction:column;display:flex}.frame__meta{display:contents}.frame__heading{order:1}.frame__kind{margin-top:calc(var(--sp-3) * -1);order:2}.frame__story{order:3}.frame__tech{order:4}.frame__actions{order:5}.frames{gap:var(--sp-6)}.frame__body{padding:var(--sp-5) var(--sp-4);grid-template-columns:minmax(0,1fr)}.frame__meta{grid-template-columns:minmax(0,1fr)}}.pyworks{margin-top:var(--section)}.pyworks__title{margin-bottom:var(--sp-3)}.pyworks__lead{margin-bottom:var(--sp-6)}.pyworks__list{border-top:1px solid var(--line)}.pywork{align-items:baseline;gap:var(--sp-5);padding:var(--sp-4) 0;border-bottom:1px solid var(--line);color:var(--ink-2);transition:color var(--swift) ease;grid-template-columns:minmax(0,3fr) minmax(0,6fr) minmax(0,3fr) 24px;display:grid}.pywork__title{color:var(--ink);font-stretch:var(--w-compressed);text-transform:uppercase;font-size:1.5rem;font-weight:750;line-height:1}.pywork__tech{color:var(--ink-2);font-size:.875rem}.pywork__arrow{color:var(--ink-3);transition:transform var(--swift) var(--ease-out), color var(--swift) ease;align-self:center}@media (hover:hover) and (pointer:fine){.pywork:hover .pywork__title,.pywork:hover .pywork__arrow{color:var(--magenta-hi)}.pywork:hover .pywork__arrow{transform:translate(2px,-2px)}}@media (width<=760px){.pywork{gap:var(--sp-2) var(--sp-4);grid-template-columns:minmax(0,1fr) 24px}.pywork__title{grid-column:1}.pywork__arrow{grid-area:1/2}.pywork__summary,.pywork__tech{grid-column:1/-1}}.services{padding-bottom:calc(var(--section) * .4)}.services__title{margin-bottom:var(--sp-5)}.services__lead{margin-bottom:var(--sp-8)}.services__grid{gap:var(--sp-8) var(--sp-7);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.service{align-content:start;gap:var(--sp-4);padding-top:var(--sp-5);border-top:1px solid var(--line-strong);display:grid}.service__title{font-size:clamp(2.6rem,5.6vw,4.5rem)}.service__value{max-width:44ch;color:var(--ink);font-size:clamp(1.0625rem,1.3vw,1.1875rem);line-height:1.55}.service__label{margin-top:var(--sp-2);color:var(--ink-3)}.service__examples{gap:var(--sp-2);color:var(--ink-2);display:grid}.service__examples li{padding-left:20px;position:relative}.service__examples li:before{background:var(--ink-3);content:"";width:10px;height:1px;position:absolute;top:.8em;left:0}.service__tech{margin-top:var(--sp-2);color:var(--ink-2);flex-wrap:wrap;gap:2px 16px;font-size:.9375rem;display:flex}.process{margin-top:var(--section)}.process__title{margin-bottom:var(--sp-7);color:var(--violet)}.route{position:relative}.route__line{background:var(--line-strong);height:1px;position:absolute;top:5px;left:0;right:0}.route__fill{background:var(--magenta);transform-origin:0;position:absolute;inset:0;transform:scaleX(1)}.route__steps{gap:var(--sp-5);counter-reset:none;grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.route__step{padding-top:var(--sp-6);position:relative}.route__stop{border:1px solid var(--line-strong);background:var(--night);width:11px;height:11px;transition:background-color .3s,border-color .3s;position:absolute;top:0;left:0}.route__step.is-reached .route__stop{border-color:var(--magenta);background:var(--magenta)}.route__name{margin-bottom:var(--sp-3);font-size:clamp(1.8rem,2.6vw,2.4rem)}.route__body{font-size:.9375rem}@media (width<=860px){.services__grid{gap:var(--sp-7);grid-template-columns:minmax(0,1fr)}.route__line{width:1px;height:auto;top:0;bottom:0;left:5px}.route__fill{transform-origin:top}.route__steps{gap:var(--sp-6);grid-template-columns:minmax(0,1fr)}.route__step{padding-top:0;padding-left:var(--sp-6)}}.contact{padding-bottom:clamp(96px,12vw,160px)}.contact:before{content:"";pointer-events:none;background:radial-gradient(60% 70% at 0 85%,#07060fb8,#07060f59 55%,#0000 80%);position:absolute;inset:0}.contact__grid{grid-template-columns:minmax(0,1fr) minmax(0,560px);align-items:start;gap:clamp(40px,7vw,112px);display:grid;position:relative}.contact__headline{margin-bottom:var(--sp-5);font-size:clamp(2.9rem,5.4vw,4.75rem)}.contact__line--accent{color:var(--magenta-hi)}.contact__lead{margin-bottom:var(--sp-6);color:var(--ink)}.contact__direct{gap:var(--sp-2);display:grid}.contact__link{align-items:center;gap:var(--sp-3);min-height:44px;color:var(--ink);overflow-wrap:anywhere;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:6px;transition:color var(--swift) ease, text-decoration-color var(--swift) ease;text-decoration-thickness:1px;display:inline-flex}.contact__link svg{color:var(--magenta-hi);flex:none}@media (hover:hover) and (pointer:fine){.contact__link:hover{-webkit-text-decoration-color:var(--magenta);text-decoration-color:var(--magenta)}}.contact__email{align-items:center;gap:var(--sp-2) var(--sp-4);flex-wrap:wrap;display:flex}.contact__copy{border:1px solid var(--line-strong);border-radius:var(--radius);min-height:36px;color:var(--ink-2);font-stretch:var(--w-expanded);letter-spacing:.06em;text-transform:uppercase;transition:transform var(--press) var(--ease-out), border-color var(--swift) ease, color var(--swift) ease;background:#07060f6b;align-items:center;gap:6px;padding:0 12px;font-size:.6875rem;font-weight:650;display:inline-flex}.contact__copy:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.contact__copy:hover{border-color:var(--ink);color:var(--ink)}}.next{margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--line)}.next__title{margin-bottom:var(--sp-4);color:var(--ink-2)}.next__steps{gap:var(--sp-3);counter-reset:step;max-width:46ch;display:grid}.next__steps li{color:var(--ink);counter-increment:step;grid-template-columns:28px minmax(0,1fr);display:grid}.next__steps li:before{color:var(--ink);font-stretch:var(--w-compressed);content:counter(step);font-size:1.25rem;font-weight:800;line-height:1.35}.contact-panel{border:1px solid var(--line-strong);background:#0a0816bf;padding:clamp(20px,3vw,36px)}.contact-form{gap:var(--sp-5);display:grid}.contact-form__row{gap:var(--sp-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.field{gap:var(--sp-2);display:grid}.field__label{color:var(--ink-2)}.field input:not([type=range]),.field select,.field textarea{border:1px solid var(--line-strong);border-radius:var(--radius);width:100%;min-height:48px;color:var(--ink);background:var(--night);transition:border-color var(--swift) ease;padding:12px 14px;font-size:1rem}.field__select{position:relative}.field__select svg{color:var(--ink-2);pointer-events:none;position:absolute;top:50%;right:16px;transform:translateY(-50%)}.field select{appearance:none;padding-right:44px}.field select option{color:var(--ink);background:var(--night-2)}.field textarea{resize:vertical;min-height:140px}.field input::placeholder,.field textarea::placeholder{color:var(--ink-3);opacity:1}.field input:not([type=range]):focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--magenta);outline:2px solid var(--magenta);outline-offset:0}@media (hover:hover) and (pointer:fine){.field input:not([type=range]):hover,.field select:hover,.field textarea:hover{border-color:var(--ink-3)}}.field.is-invalid input,.field.is-invalid textarea{border-color:var(--danger)}.field__error{color:var(--danger);font-size:.875rem}.field__count{margin-top:calc(var(--sp-3) * -1);color:var(--ink-3);font-variant-numeric:tabular-nums;text-align:right;font-size:.8125rem}.field__count.is-near{color:#ffd38a}.budget__head{justify-content:space-between;align-items:baseline;display:flex}.budget__value{color:var(--magenta-hi);font-variant-numeric:tabular-nums;font-weight:600}.budget input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:28px;margin:0}.budget input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--magenta) var(--fill), var(--line-strong) var(--fill));height:2px}.budget input[type=range]::-moz-range-track{background:linear-gradient(to right, var(--magenta) var(--fill), var(--line-strong) var(--fill));height:2px}.budget input[type=range]::-webkit-slider-thumb{border:2px solid var(--night);background:var(--magenta);appearance:none;width:18px;height:18px;margin-top:-8px}.budget input[type=range]::-moz-range-thumb{border:2px solid var(--night);background:var(--magenta);border-radius:0;width:14px;height:14px}.budget input[type=range]:focus-visible{outline:2px solid var(--magenta);outline-offset:4px}.budget__ticks{color:var(--ink-3);justify-content:space-between;font-size:.8125rem;display:flex}.contact-form__feedback{border:1px solid var(--line-strong);padding:12px 14px;font-size:.9375rem}.contact-form__feedback--email{color:var(--ink);border-color:#8b6cff99}.contact-form__feedback--error{border-color:var(--danger);color:var(--danger)}.contact-form__submit{justify-self:start;overflow:hidden}.contact-form__submit.is-busy:after{background:var(--on-accent);content:"";width:40%;height:3px;animation:.9s linear infinite sending;position:absolute;bottom:0;left:0}@keyframes sending{0%{transform:translate(-100%)}to{transform:translate(250%)}}.contact-success{justify-items:start;gap:var(--sp-4);display:grid}.contact-success__icon{color:var(--success)}@media (width<=900px){.contact__grid{grid-template-columns:minmax(0,1fr)}}@media (width<=520px){.contact-form__row{grid-template-columns:minmax(0,1fr)}.contact-form__submit{justify-self:stretch}}@media (prefers-reduced-motion:reduce){.contact-form__submit.is-busy:after{animation-duration:2.4s}}@media (prefers-reduced-transparency:reduce){.contact-panel{background:var(--night-2)}}.footer{z-index:var(--z-content);padding:var(--sp-7) 0;border-top:1px solid var(--line);background:var(--night);position:relative}.footer:before{background:linear-gradient(to bottom, transparent, var(--night));content:"";pointer-events:none;height:64px;position:absolute;bottom:100%;left:0;right:0}.footer__inner{justify-content:space-between;align-items:center;gap:var(--sp-5);flex-wrap:wrap;display:flex}.footer__name{font-stretch:var(--w-expanded);letter-spacing:.14em;font-size:.875rem;font-weight:800}.footer__role,.footer__meta{color:var(--ink-3);font-size:.875rem}.footer__links{flex-wrap:wrap;gap:8px 24px;display:flex}.footer__links a{min-height:44px;color:var(--ink-2);transition:color var(--swift) ease;align-items:center;display:inline-flex}@media (hover:hover) and (pointer:fine){.footer__links a:hover{color:var(--ink)}}
