.contact-page{--flow-muted:color-mix(in oklch, var(--color-ink) 68%, transparent);min-height:100svh;color:var(--color-ink);align-items:center;padding:clamp(5.5rem,8svh,8rem) 1.25rem;display:grid}.contact-page__inner{width:min(100%,52rem);margin-inline:auto}.contact-intro{margin-bottom:clamp(2rem,4svh,3rem)}.contact-intro--leaving{pointer-events:none}.contact-intro--dismissed{opacity:0;pointer-events:none;user-select:none}.contact-intro h1{font-variation-settings:"wght" 370;letter-spacing:-.045em;margin:0;font-size:clamp(2.25rem,4.1vw,3.65rem);font-weight:370;line-height:1.02}.contact-intro h1 span,.contact-intro h1 strong{display:block}.contact-intro h1 strong{font-variation-settings:"wght" 720;font-weight:720}@media (prefers-reduced-motion:no-preference){.contact-intro h1>*,.contact-flow,.contact-direct{animation:.8s cubic-bezier(.22,1,.36,1) backwards contact-page-enter}.contact-intro h1 strong{animation-delay:90ms}.contact-flow{animation-delay:.18s}.contact-direct{animation-delay:.34s}}@keyframes contact-page-enter{0%{opacity:0;visibility:hidden;filter:blur(4px);transform:translateY(16px)}to{opacity:1;visibility:visible;filter:none;transform:none}}.contact-flow{background:color-mix(in oklch, var(--color-reveal) 97%, transparent);border:0;border-radius:1.5rem;padding:clamp(1.4rem,4vw,3rem);scroll-margin-top:7rem;position:relative}.contact-page [hidden]{display:none!important}.flow-dots{justify-self:center;display:flex}.flow-dot{width:24px;height:44px;color:var(--color-ink);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid;position:relative}.flow-dot span{opacity:.22;background:currentColor;border-radius:50%;width:7px;height:7px;transition:transform .38s cubic-bezier(.22,1,.36,1),opacity .24s}.flow-dot[data-complete=true] span{opacity:.65}.flow-dot[aria-current=step] span{opacity:1;transform:scale(1.3)}.flow-dot:disabled{cursor:default}.flow-dot:not(:disabled):hover span{opacity:1}.flow-viewport{min-height:22.5rem;display:grid}.flow-step{grid-area:1/1;align-self:start;min-width:0}.flow-step[data-flow-step=message]{flex-direction:column;align-self:stretch;display:flex}.flow-step[data-flow-step=message] .flow-writing{flex:1;display:flex}.flow-step[data-flow-step=message] textarea{flex:1}.flow-question{margin-bottom:1.8rem}.flow-question h2{font-variation-settings:"wght" 520;letter-spacing:-.04em;text-wrap:balance;outline:none;margin:0;font-size:clamp(2rem,3.3vw,3rem);font-weight:520;line-height:1.12}.flow-choices{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;min-width:0;margin:0;padding:0;display:grid}.flow-choices--project{grid-template-columns:repeat(6,minmax(0,1fr))}.flow-choices--project .flow-choice{grid-column:span 2}.flow-choices--project .flow-choice:nth-of-type(n+4){grid-column:span 3}.flow-choices--timing .flow-choice:last-of-type{grid-column:1/-1}.flow-date{margin-top:1.5rem}.flow-date__summary,.flow-date__tooltip,.flow-date-dialog,.flow-actions{user-select:none}.flow-date__clock input{user-select:text}.flow-date__summary{max-width:100%;color:color-mix(in oklch, var(--color-ink) 70%, var(--color-reveal));font:inherit;letter-spacing:-.035em;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:.5em;padding:.5rem 0;font-size:clamp(1.5rem,3.2vw,2.5rem);font-weight:450;line-height:1.2;transition:color .18s;display:inline-flex}.flow-date__summary>[data-date-label]{min-width:0}.flow-date__summary--empty{visibility:hidden}.flow-date__edit{opacity:.8;flex:none;width:clamp(22px,.7em,28px);height:clamp(22px,.7em,28px);transition:opacity .18s}.flow-date__edit path{stroke:none}.flow-date__summary:hover .flow-date__edit{opacity:1}.flow-date__summary:hover{color:var(--color-ink)}.flow-date__tooltip{z-index:20;background:var(--color-ink);max-width:calc(100vw - 1rem);color:var(--color-reveal);letter-spacing:0;white-space:nowrap;opacity:0;visibility:hidden;pointer-events:none;border-radius:.5rem;padding:.5rem .75rem;font-size:.75rem;font-weight:500;line-height:1.4;transition:opacity .16s,visibility .16s;position:fixed;top:0;left:0}.flow-date__summary:focus-visible+.flow-date__tooltip{opacity:1;visibility:visible}@media (hover:hover) and (pointer:fine){.flow-date__summary:hover+.flow-date__tooltip{opacity:1;visibility:visible}}.flow-date-dialog{background:color-mix(in oklch, var(--color-ink) 5%, var(--color-reveal));width:min(56rem,100% - 2rem);max-width:none;max-height:calc(100dvh - 2rem);color:var(--color-ink);border:0;border-radius:1.4rem;margin:auto;padding:0;overflow:auto;box-shadow:0 24px 80px oklch(5% .002 30/.35)}.flow-date-dialog::backdrop{-webkit-backdrop-filter:blur(5px);background:oklch(5% .002 30/.12);animation:.4s ease-out both flow-date-backdrop-in}.flow-date-dialog[data-closing=true]{pointer-events:none}.flow-date-dialog[data-closing=true]::backdrop{animation:.28s ease-in-out both flow-date-backdrop-out}@keyframes flow-date-backdrop-in{0%{-webkit-backdrop-filter:blur();background:oklch(5% .002 30/0)}}@keyframes flow-date-backdrop-out{to{-webkit-backdrop-filter:blur();background:oklch(5% .002 30/0)}}.flow-date-dialog__body{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;display:grid}.flow-date-dialog__steps,.flow-date__selected,[data-date-next-icon]{display:none}.flow-date-dialog__steps button{-webkit-tap-highlight-color:transparent}.flow-calendar,.flow-date__time{outline:none}.flow-calendar{background:var(--color-reveal);flex-direction:column;min-width:0;height:min(36rem,100dvh - 8rem);padding:1.75rem;display:flex}.flow-calendar__scroll{overscroll-behavior-y:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:color-mix(in oklch, var(--color-ink) 15%, transparent) transparent;flex:1;min-height:0;position:relative;overflow-y:auto}.flow-calendar__month{padding-bottom:3.5rem}.flow-calendar__month:last-child{min-height:100%;padding-bottom:0}.flow-calendar__month h3{z-index:2;background:var(--color-reveal);text-transform:capitalize;margin:0 0 .5rem;padding:.5rem 0 .8rem;font-size:1.25rem;font-weight:550;position:sticky;top:0}.flow-date__time{flex-direction:column;justify-content:center;align-items:center;min-width:0;padding:1.5rem;display:flex}.flow-date__caption{color:var(--flow-muted);font-size:.8rem}.flow-date__clock{align-items:center;gap:.6rem;margin-top:.6rem;font-size:2.25rem;font-weight:500;display:flex}.flow-time-wheel{--time-row-size:4rem;width:5.25rem;height:calc(var(--time-row-size) * 3);isolation:isolate;touch-action:none;cursor:grab;position:relative}.flow-time-wheel:before{content:"";inset:var(--time-row-size) 0 auto;height:var(--time-row-size);background:color-mix(in oklch, var(--color-ink) 7%, var(--color-reveal));border-radius:.65rem;position:absolute}.flow-time-wheel__track{z-index:1;height:100%;padding-block:var(--time-row-size);opacity:0;scrollbar-width:none;transition:opacity .22s;position:relative;overflow:hidden;mask-image:linear-gradient(#0000,#000 32% 68%,#0000)}.flow-time-wheel__track>span{height:var(--time-row-size);line-height:1;font:inherit;font-variant-numeric:tabular-nums;opacity:.4;filter:blur(.7px);place-items:center;transition:opacity .13s,filter .13s,transform .18s cubic-bezier(.22,1,.36,1);display:grid;transform:scale(.9)}.flow-time-wheel__track>[data-current=true]{opacity:1;filter:blur();transform:none}.flow-time-wheel:not([data-rolling=true]) .flow-time-wheel__track>[data-current=true]{opacity:0}.flow-time-wheel:hover .flow-time-wheel__track,.flow-time-wheel:focus-within .flow-time-wheel__track,.flow-time-wheel[data-rolling=true] .flow-time-wheel__track{opacity:1}.flow-date__clock input{z-index:2;top:var(--time-row-size);width:100%;min-width:0;height:var(--time-row-size);color:var(--color-ink);font:inherit;line-height:var(--time-row-size);text-align:center;font-variant-numeric:tabular-nums;caret-color:var(--color-ink);cursor:ns-resize;background:0 0;border:0;border-radius:.65rem;outline:none;padding:0;transition:opacity .1s,box-shadow .18s;position:absolute;left:0}.flow-date__clock input:focus{box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--color-ink) 50%, transparent);cursor:text}.flow-time-wheel[data-rolling=true] input{opacity:0;caret-color:#0000;pointer-events:none}.flow-time-wheel[data-dragging=true],.flow-time-wheel[data-dragging=true] input{cursor:grabbing}.flow-date__clock input::placeholder{color:color-mix(in oklch, var(--color-ink) 35%, transparent)}.flow-date__zone{color:var(--flow-muted);text-align:center;margin:.7rem 0 0;font-size:.65rem;line-height:1.5}@media (hover:none),(pointer:coarse){.flow-time-wheel__track{opacity:1}}.flow-date-dialog__actions{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.flow-date-dialog__actions button{cursor:pointer;border:0;border-radius:0;place-items:center;width:100%;min-height:56px;padding:.75rem;transition:background-color .18s,color .18s,opacity .15s;display:grid}.flow-date-dialog__actions button:first-child{border-bottom-left-radius:1.4rem}.flow-date-dialog__actions button:last-child{border-bottom-right-radius:1.4rem}.flow-date-dialog__actions button svg{width:22px;height:22px}.flow-date-dialog__actions path,.flow-calendar__header path{stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.flow-date-dialog__cancel{background:var(--color-reveal);color:var(--flow-muted)}.flow-date-dialog__cancel:hover{background:color-mix(in oklch, var(--color-ink) 8%, transparent);color:var(--color-ink)}.flow-date-dialog__confirm{background:var(--color-ink);color:var(--color-reveal)}.flow-date-dialog__confirm:disabled{background:color-mix(in oklch, var(--color-ink) 10%, var(--color-reveal));color:var(--flow-muted);cursor:not-allowed}.flow-date-dialog__actions button:not(:disabled):active{opacity:.75}.flow-calendar__header{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.7rem;display:flex}.flow-calendar__header>span:not(.flow-sr){color:var(--flow-muted);font-size:.9rem;font-weight:500}.flow-calendar__header>div{display:flex}.flow-calendar__header button{width:40px;height:40px;color:var(--color-ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:50%;padding:0;font-size:1.2rem}.flow-calendar__header button svg{width:20px;height:20px;margin:auto;display:block}.flow-calendar__header button:disabled{opacity:.2;cursor:default}.flow-calendar__week,.flow-calendar__days{grid-template-columns:repeat(7,minmax(0,1fr));gap:.15rem;display:grid}.flow-calendar__week{color:color-mix(in oklch, var(--color-ink) 75%, transparent);text-align:center;margin-bottom:.3rem;font-size:.75rem}.flow-calendar__week span{padding-block:.4rem}.flow-calendar__days button{aspect-ratio:1;width:100%;min-height:40px;color:var(--color-ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:1.05rem;transition:background-color .16s,color .16s;display:grid}.flow-calendar__days button:disabled{color:color-mix(in oklch, var(--color-ink) 19%, transparent);cursor:default}.flow-calendar__days button[data-outside-month=true]{color:color-mix(in oklch, var(--color-ink) 25%, transparent)}.flow-calendar__days button[data-outside-month=true]:disabled{color:color-mix(in oklch, var(--color-ink) 13%, transparent)}.flow-calendar__days button[aria-current=date]{background:color-mix(in oklch, var(--color-ink) 14%, var(--color-reveal));color:color-mix(in oklch, var(--color-ink) 60%, transparent)}.flow-calendar__days button[aria-pressed=true]{background:var(--color-ink);color:var(--color-reveal);text-decoration:none}.flow-calendar__days button:not(:disabled):not([aria-pressed=true]):hover,.flow-calendar__header button:not(:disabled):hover{background:color-mix(in oklch, var(--color-ink) 10%, transparent)}.flow-choice{min-height:7rem;color:var(--color-ink);background:color-mix(in oklch, var(--color-ink) 8%, var(--color-reveal));text-align:center;text-wrap:balance;user-select:none;cursor:pointer;border:0;border-radius:.9rem;place-items:center;padding:1.4rem 1rem;font-size:1.2rem;font-weight:550;line-height:1.3;transition:background-color .22s,color .22s,scale .15s;display:grid;position:relative}.flow-choices--timing .flow-choice{min-height:4.5rem;padding:.9rem 1rem;font-size:1.05rem}.flow-choice:hover{background:color-mix(in oklch, var(--color-ink) 14%, var(--color-reveal))}.flow-choice:has(input:checked){background:var(--color-ink);color:var(--color-reveal)}.flow-choice:active{scale:.96}.flow-choice input,.flow-method input{opacity:0;width:1px;height:1px;margin:-1px;position:absolute}.flow-choice__check{opacity:0;filter:blur(4px);width:1rem;height:1rem;transition:opacity .18s,scale .18s,filter .18s;position:absolute;top:.7rem;right:.7rem;scale:.25}.flow-choice__check path{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round}.flow-choice:has(input:checked) .flow-choice__check{opacity:1;filter:blur();scale:1}.flow-choice:has(input:focus-visible),.flow-method label:has(input:focus-visible){outline:2px solid var(--color-ink);outline-offset:4px}.flow-writing{position:relative}.flow-writing textarea{border:0;border-bottom:1px solid color-mix(in oklch, var(--color-ink) 28%, transparent);width:100%;min-height:10.5rem;max-height:20rem;color:var(--color-ink);font:inherit;resize:vertical;background:0 0;border-radius:0;outline:none;padding:.9rem 0 1.8rem;font-size:clamp(1.1rem,2.2vw,1.5rem);line-height:1.5;transition:border-color .2s;display:block}.flow-single input{border:0;border-bottom:1px solid color-mix(in oklch, var(--color-ink) 28%, transparent);width:100%;min-width:0;min-height:4.8rem;color:var(--color-ink);font:inherit;background:0 0;border-radius:0;outline:none;padding:.75rem 0;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.2;transition:border-color .2s;display:block}.flow-single input::placeholder,.flow-writing textarea::placeholder{color:color-mix(in oklch, var(--color-ink) 43%, transparent);opacity:1}.flow-single input:focus,.flow-writing textarea:focus{border-color:var(--color-ink)}.flow-char-count{color:var(--flow-muted);font-variant-numeric:tabular-nums;pointer-events:none;font-size:.65rem;position:absolute;bottom:.55rem;right:0}.flow-method{isolation:isolate;background:color-mix(in oklch, var(--color-ink) 7%, var(--color-reveal));border:0;border-radius:999px;gap:.25rem;margin:0 0 1.3rem;padding:.25rem;display:inline-flex;position:relative}.flow-method__indicator{pointer-events:none;width:calc(50% - .375rem);transition:transform .5s cubic-bezier(.22,1,.36,1);position:absolute;top:.25rem;bottom:.25rem;left:.25rem;transform:translate(0)}.flow-method[data-method=phone] .flow-method__indicator{transform:translate(calc(100% + .25rem))}.flow-method__indicator>span{background:var(--color-ink);transform-origin:50%;border-radius:999px;width:100%;height:100%;display:block}.flow-method label{z-index:1;mix-blend-mode:difference;cursor:pointer;user-select:none;place-items:center;min-width:6.4rem;min-height:40px;display:grid;position:relative}.flow-method label span{width:100%;min-height:40px;color:var(--color-ink);opacity:.72;border-radius:999px;place-items:center;padding:.5rem 1rem;font-size:.85rem;transition:opacity .2s;display:grid}.flow-method label:has(input:checked) span{opacity:1}.flow-feedback{color:color-mix(in oklch, var(--color-warm-gold) 60%, var(--color-ink));align-items:flex-start;gap:.65rem;margin-top:1.1rem;font-size:.95rem;line-height:1.5;display:flex}.flow-feedback p{color:inherit;font-size:inherit;margin:0}.flow-feedback__mark{border:1.5px solid;border-radius:50%;flex:0 0 18px;place-items:center;width:18px;height:18px;margin-top:2px;font-size:.68rem;font-weight:700;display:grid}.flow-step [aria-invalid=true]{border-color:color-mix(in oklch, var(--color-warm-gold) 60%, var(--color-ink))}.flow-actions{border:0;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1rem;margin-top:1.6rem;padding-top:.35rem;display:grid}.flow-actions>.flow-back{justify-self:start}.flow-back{min-height:44px;color:var(--flow-muted);font:inherit;cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:.55rem;padding:.5rem .25rem;font-size:.85rem;transition:color .18s;display:inline-flex}.flow-back:hover{color:var(--color-ink)}.flow-forward{justify-self:end;align-items:center;display:flex}.flow-next{isolation:isolate;width:56px;height:56px;color:var(--color-reveal);user-select:none;cursor:pointer;transform-origin:100%;background:0 0;border:0;border-radius:50%;flex:0 0 56px;padding:0;transition:color .2s,scale .15s;position:relative;overflow:visible}.flow-next:before{content:"";z-index:-1;background:var(--color-ink);clip-path:inset(0 0 0 92px round 28px);border-radius:999px;width:148px;height:56px;transition:clip-path .42s cubic-bezier(.22,1,.36,1),background-color .2s;position:absolute;top:0;right:0}.flow-next:disabled{color:color-mix(in oklch, var(--color-ink) 28%, var(--color-reveal));cursor:not-allowed}.flow-next:disabled:before{background:color-mix(in oklch, var(--color-ink) 10%, var(--color-reveal))}.flow-next__label{font:inherit;opacity:0;pointer-events:none;place-items:center;font-size:1rem;font-weight:600;transition:opacity .24s,transform .42s cubic-bezier(.22,1,.36,1);display:grid;position:absolute;inset:0 56px 0 -72px;transform:translate(12px)}.flow-next__arrow{width:22px;height:22px;position:absolute;top:17px;right:17px}.flow-next__arrow path{stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.flow-next:not(:disabled):focus-visible:before{clip-path:inset(0 round 28px)}.flow-next:not(:disabled):focus-visible .flow-next__label{opacity:1;transform:translate(0)}.flow-next:not(:disabled):active{scale:.96}@media (hover:hover) and (pointer:fine){.flow-next:not(:disabled):hover:before{clip-path:inset(0 round 28px)}.flow-next:not(:disabled):hover .flow-next__label{opacity:1;transform:translate(0)}}.flow-primary{background:var(--color-ink);min-height:48px;color:var(--color-reveal);font:inherit;cursor:pointer;border:0;border-radius:999px;justify-content:space-between;align-items:center;gap:1.75rem;padding:.8rem 1.25rem;font-size:.88rem;font-weight:650;transition:scale .15s,opacity .2s;display:inline-flex}.flow-primary:not(:disabled):active{scale:.96}.flow-primary:disabled{cursor:wait;opacity:.65}.flow-primary>span:last-child{font-size:1.1rem}.contact-flow[data-sending=true] .flow-send-icon{animation:1.2s linear infinite flow-sending}@keyframes flow-sending{to{transform:rotate(360deg)}}.flow-status{color:var(--flow-muted);margin:0;font-size:.85rem;line-height:1.55}.flow-status:not(:empty){margin-top:1rem}.flow-status[data-state=error]{color:color-mix(in oklch, var(--color-warm-rose) 40%, var(--color-ink))}.flow-captcha{color:var(--flow-muted);margin:1rem 0 0;font-size:.63rem;line-height:1.65}.flow-captcha a{text-decoration-color:currentColor}.flow-review{gap:0;margin:-.5rem 0 0;display:grid}.flow-review>div{border-bottom:1px solid color-mix(in oklch, var(--color-ink) 12%, transparent);grid-template-columns:6rem minmax(0,1fr);align-items:baseline;gap:1rem;padding:.7rem 0;display:grid}.flow-review dt{color:var(--flow-muted);font-size:.75rem}.flow-review dd{min-width:0;margin:0;font-size:.85rem}.flow-review [data-review-value]{overflow-wrap:anywhere;min-width:0}.flow-review [data-review-value=message]{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.flow-review button{max-width:100%;min-height:40px;color:var(--color-ink);font:inherit;text-align:left;cursor:pointer;user-select:none;background:0 0;border:0;align-items:center;gap:.5rem;margin-block:-.35rem;padding:.35rem 0;line-height:1.6;display:inline-flex}.flow-review__pencil{opacity:0;flex:0 0 15px;width:15px;height:15px;transition:opacity .18s,transform .3s cubic-bezier(.22,1,.36,1);transform:translate(-4px)scale(.85)}.flow-review__pencil path{stroke:none}.flow-review>div:hover .flow-review__pencil,.flow-review button:focus-visible .flow-review__pencil{opacity:.8;transform:none}@media (hover:none),(pointer:coarse){.flow-review__pencil{opacity:.65;transform:none}}.flow-consent{min-height:44px;color:var(--flow-muted);cursor:pointer;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:.85rem;margin-top:2.4rem;padding-block:.35rem;font-size:.8rem;line-height:1.6;display:grid;position:relative}.flow-consent input{clip-path:inset(50%);width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.flow-consent__box{border:1.5px solid color-mix(in oklch, var(--color-ink) 35%, transparent);background:color-mix(in oklch, var(--color-ink) 5%, var(--color-reveal));width:24px;height:24px;color:var(--color-reveal);border-radius:.45rem;place-items:center;margin-top:.05rem;transition:background-color .22s,border-color .22s,transform .26s cubic-bezier(.22,1,.36,1);display:grid}.flow-consent__box svg{width:16px;height:16px}.flow-consent__box path{stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;transition:stroke-dashoffset .32s cubic-bezier(.22,1,.36,1)}.flow-consent input:checked+.flow-consent__box{background:var(--color-ink);border-color:var(--color-ink)}.flow-consent input:checked+.flow-consent__box path{stroke-dashoffset:0;transition-delay:70ms}.flow-consent:active .flow-consent__box{transform:scale(.94)}.flow-consent input:focus-visible+.flow-consent__box{outline:2px solid var(--color-ink);outline-offset:4px}.flow-consent input[aria-invalid=true]+.flow-consent__box{border-color:color-mix(in oklch, var(--color-warm-gold) 60%, var(--color-ink))}.flow-consent:has(input:disabled){opacity:.6;cursor:wait}.flow-consent a{color:var(--color-ink);text-decoration-color:currentColor}.flow-send-error{background:color-mix(in oklch, var(--color-ink) 5%, var(--color-reveal));width:min(30rem,100vw - 2rem);max-height:calc(100dvh - 2rem);color:var(--color-ink);border:0;border-radius:1.4rem;margin:auto;padding:2.5rem 2rem 1.3rem;overflow:auto;box-shadow:0 24px 80px oklch(5% .002 30/.35)}.flow-send-error::backdrop{-webkit-backdrop-filter:blur(5px);background:oklch(5% .002 30/.12);animation:.24s ease-out both flow-date-backdrop-in}.flow-send-error[data-closing=true]{pointer-events:none}.flow-send-error[data-closing=true]::backdrop{animation:.28s ease-in-out both flow-date-backdrop-out}.flow-send-error__close{width:40px;height:40px;color:var(--flow-muted);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;transition:background-color .18s,color .18s;display:grid;position:absolute;top:.6rem;right:.6rem}.flow-send-error__close:hover{background:color-mix(in oklch, var(--color-ink) 8%, transparent);color:var(--color-ink)}.flow-send-error__close svg{width:18px;height:18px}.flow-send-error__close path{stroke:currentColor;stroke-width:1.6px;stroke-linecap:round}.flow-send-error h2{letter-spacing:-.04em;outline:none;max-width:16ch;margin:.5rem 0 1rem;font-size:clamp(2rem,4vw,2.6rem);font-weight:520;line-height:1.08}.flow-send-error>p{color:var(--flow-muted);margin:0;font-size:.95rem;line-height:1.6}.flow-send-error__email{background:var(--color-ink);min-height:54px;color:var(--color-reveal);border-radius:.8rem;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem;padding:1rem 1.15rem;font-size:1rem;font-weight:600;text-decoration:none;transition:opacity .18s,scale .15s;display:flex}.flow-send-error__email:active{scale:.98}.flow-send-error__email:focus-visible{outline:2px solid var(--color-ink);outline-offset:4px}.flow-send-error__copy{min-height:44px;color:var(--flow-muted);font:inherit;cursor:pointer;background:0 0;border:0;margin:.7rem auto 0;padding:.5rem;font-size:.8rem;transition:color .18s;display:block}.flow-send-error__copy:hover{color:var(--color-ink)}.flow-send-error>.flow-send-error__status{text-align:center;margin-top:.35rem;font-size:.75rem}.flow-send-error__status:empty{display:none}.flow-send-error>.flow-send-error__status[data-state=success]{clip-path:inset(50%);width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.flow-success{flex-direction:column;justify-content:center;align-items:flex-start;min-height:30rem;display:flex}.flow-success__mark{width:4rem;height:4rem;stroke:var(--color-ink);stroke-width:1.5px;margin-bottom:2.25rem}.flow-success__mark circle{opacity:.3}.flow-success__mark path{stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.flow-success h2{letter-spacing:-.045em;outline:none;margin:0;font-size:clamp(2rem,4vw,3.2rem);font-weight:500;line-height:1.08}.flow-success>p{max-width:38ch;color:var(--flow-muted);margin:1.2rem 0 2rem;font-size:1rem;line-height:1.6}.contact-direct{color:var(--color-ink);flex-wrap:wrap;justify-content:center;gap:.35rem .65rem;margin:1.5rem 0 0;font-size:.85rem;line-height:1.6;display:flex}.contact-direct a{text-underline-offset:.25em;text-decoration-color:color-mix(in oklch, var(--color-ink) 55%, transparent);align-items:center;gap:.65rem;font-weight:550;display:inline-flex}.contact-direct__arrow{background:currentColor;flex-shrink:0;width:.95rem;height:.95rem;display:inline-block;mask:url(/icons/contact-arrow.svg) 50%/contain no-repeat}.contact-no-script{font-size:.9rem;line-height:1.6}.flow-sr,.flow-honeypot{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.contact-flow button:focus-visible,.contact-direct a:focus-visible,.flow-consent a:focus-visible{outline:2px solid var(--color-ink);outline-offset:4px}@media (width<=600px){:root:has(.contact-page){--header-blur-height:6.5rem}.contact-page{padding-top:calc(var(--header-blur-height) + env(safe-area-inset-top) + 1rem);padding-bottom:max(2rem, env(safe-area-inset-bottom));padding-inline:1rem}.contact-intro{margin-bottom:clamp(1rem,2.7svh,1.8rem)}.contact-intro h1{font-size:clamp(1.65rem,7.5vw,2.6rem);line-height:1.08}.contact-flow{border-radius:1.25rem;padding:clamp(1rem,2.2svh,1.25rem)}.flow-question{margin-bottom:clamp(.9rem,2.2svh,1.2rem)}.flow-question h2{font-size:clamp(1.35rem,6.5vw,1.75rem)}.flow-viewport{min-height:clamp(15rem,37svh,20rem)}.flow-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.flow-choice{min-height:clamp(3.5rem,8.5svh,4.5rem);padding:clamp(.65rem,1.6svh,1rem) .7rem;font-size:1rem}.flow-choices--project .flow-choice,.flow-choices--project .flow-choice:nth-of-type(n+4){grid-column:auto}.flow-choices--project .flow-choice:last-of-type{grid-column:1/-1}.flow-writing textarea{min-height:11rem;font-size:1.05rem}.flow-date-dialog{--date-dialog-gap:max(1rem, env(safe-area-inset-top), env(safe-area-inset-bottom));width:min(30rem,100% - 2rem);max-height:calc(100dvh - 2 * var(--date-dialog-gap))}.flow-date-dialog[open]{height:min(36rem, calc(100dvh - 2 * var(--date-dialog-gap)));flex-direction:column;display:flex;overflow:hidden}.flow-date-dialog__steps{background:var(--color-reveal);flex-shrink:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;padding:.55rem 1rem .2rem;display:grid}.flow-date-dialog__steps button{min-height:44px;color:color-mix(in oklch, var(--color-ink) 40%, transparent);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.25rem 0;font-size:.8rem;transition:color .24s;display:flex}.flow-date-dialog__steps button span{background:color-mix(in oklch, var(--color-ink) 18%, transparent);border-radius:999px;width:100%;height:3px;transition:background-color .3s}.flow-date-dialog__steps button[aria-current=step]{color:var(--color-ink)}.flow-date-dialog__steps button[aria-current=step] span,.flow-date-dialog__steps button[data-complete=true] span{background:var(--color-ink)}.flow-date-dialog__steps button:disabled{cursor:default}.flow-calendar{height:100%;padding:.8rem 1rem}.flow-calendar__month{padding-bottom:2.8rem}.flow-calendar__month h3{font-size:1.1rem}.flow-date-dialog__body{flex:1;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-height:0;overflow:hidden}.flow-date-dialog__body>.flow-calendar,.flow-date-dialog__body>.flow-date__time{visibility:hidden;pointer-events:none;grid-area:1/1}.flow-date-dialog[data-mobile-step=date] .flow-calendar,.flow-date-dialog[data-mobile-step=time] .flow-date__time{visibility:visible;pointer-events:auto}.flow-date__time{background:color-mix(in oklch, var(--color-ink) 5%, var(--color-reveal));text-align:center;height:100%;padding:1rem 1.25rem}.flow-date__time .flow-date__caption{color:var(--color-ink);font-size:1.5rem;font-weight:520}.flow-date__selected{color:var(--flow-muted);margin:.7rem 0 .4rem;font-size:1rem;line-height:1.4;display:block}.flow-date__clock{justify-content:center;margin-top:.3rem;font-size:2.25rem}.flow-time-wheel{--time-row-size:3.5rem;width:5rem}.flow-date-dialog__actions{flex-shrink:0}.flow-date-dialog__actions button{min-height:48px;padding:.6rem}.flow-date-dialog__actions button svg{width:20px;height:20px}.flow-date-dialog[data-mobile-step=date] [data-date-next-icon]{display:block}.flow-date-dialog[data-mobile-step=date] [data-date-confirm-icon]{display:none}.flow-time-wheel__track{opacity:1}.flow-date__zone{margin-top:.6rem}.flow-calendar__days button{min-height:0;font-size:.95rem}.flow-choices--timing .flow-choice{min-height:3.5rem;padding:.65rem .6rem;font-size:.95rem}.flow-single input{font-size:1.4rem}.flow-actions{gap:.6rem;margin-top:.6rem}.flow-actions>.flow-back{min-width:44px;padding:0}.flow-next{flex-basis:48px;width:48px;height:48px}.flow-next:before{clip-path:inset(0 0 0 100px round 24px);height:48px}.flow-next__label{right:48px}.flow-next__arrow{top:13px;right:13px}.contact-flow[data-step=review] .flow-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.contact-flow[data-step=review] .flow-actions .flow-dots{grid-area:1/1/auto/-1}.contact-flow[data-step=review] .flow-actions>.flow-back,.contact-flow[data-step=review] .flow-actions>.flow-forward{grid-row:2}.flow-primary{gap:1rem;padding-inline:1.1rem;font-size:.82rem}.flow-back{font-size:.8rem}.flow-review>div{grid-template-columns:4.5rem minmax(0,1fr);gap:.5rem}.flow-review dd{font-size:.8rem}.flow-review__pencil{opacity:.65;transform:none}.flow-consent{font-size:.75rem}.flow-send-error{padding:2.3rem 1.4rem 1rem}.flow-success{text-align:center;align-items:center;min-height:29rem}.contact-direct{margin-top:clamp(1rem,2.4svh,1.5rem);max-width:26rem;margin-inline:auto;font-size:.9rem}}@media (width<=360px){.contact-flow{padding:1.1rem}.flow-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.35rem .6rem}.flow-actions .flow-dots{grid-area:1/1/auto/-1}.flow-actions>.flow-back,.flow-actions>.flow-forward{grid-row:2}}@media (prefers-reduced-motion:reduce){.flow-date-dialog::backdrop,.flow-send-error::backdrop{animation:none!important}.contact-flow *,.contact-flow :before,.contact-flow :after{transition:none!important}.contact-flow .flow-send-icon{animation:none!important}}
