.ball{border:1.5px solid var(--strong);width:44px;height:44px;font:500 13px/1 var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;text-decoration:none;transition:background-color .25s,color .25s,border-color .25s;display:inline-flex;position:relative;overflow:hidden}.ball .n,.ball .h{transition:transform .4s var(--e-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.ball .h{font-size:15px;transform:translateY(110%)}.ball:focus-visible{background:var(--ink);border-color:var(--ink);color:var(--bg)}.ball:focus-visible .n{transform:translateY(-110%)}.ball:focus-visible .h{transform:none}@media (hover:hover) and (pointer:fine){.ball:hover,.head:hover .ball{background:var(--ink);border-color:var(--ink);color:var(--bg)}.ball:hover .n,.head:hover .ball .n{transform:translateY(-110%)}.ball:hover .h,.head:hover .ball .h{transform:none}}.contact{border-top:1px solid var(--line)}.contact .head{align-items:flex-start;margin-bottom:64px}.contact .head .ball{margin-top:18px}.contact h2{font-size:var(--size-contact);letter-spacing:-.05em;line-height:.95}.cgrid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:96px;display:grid}.cgrid .lede{font-size:var(--size-lede-sm)}.alt{color:var(--body);margin-top:24px;font-size:17px}.cform{grid-template-columns:1fr 1fr;gap:24px;display:grid}.field{flex-direction:column;gap:10px;display:flex;position:relative}.field.full{grid-column:1/-1}.field label{color:var(--ink);font-size:15px;font-weight:500}.field input,.field textarea{border:1px solid var(--strong);background:var(--bg);width:100%;color:var(--ink);font:400 17px/1.5 var(--font-sans);border-radius:0;transition:border-color .15s,box-shadow .2s}.field input{height:56px;padding:0 16px}.field textarea{resize:vertical;min-height:176px;padding:14px 16px}.field input::placeholder,.field textarea::placeholder{color:var(--muted);opacity:1}.field input:focus-visible,.field textarea:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px var(--ring);outline:none}@media (hover:hover) and (pointer:fine){.field input:hover:not(:focus),.field textarea:hover:not(:focus){box-shadow:inset 0 0 0 1px var(--strong)}}.field .ok{width:20px;height:20px;color:var(--accent-text);opacity:0;transition:opacity .2s ease, transform .45s var(--e-spring);pointer-events:none;position:absolute;top:50px;right:16px;transform:scale(.4)rotate(-25deg)}.field.full .ok{top:46px}.field .ok svg{width:20px;height:20px}.field:has(:user-valid):not(.is-invalid) .ok{opacity:1;transform:none}.field:has(:user-invalid) :is(input,textarea),.field.is-invalid :is(input,textarea){border-color:var(--error);animation:field-shake .42s var(--e-io)}.err{color:var(--error);font-size:14px}.field:has(:user-invalid) .err:empty:before{content:attr(data-msg)}@keyframes field-shake{0%,to{transform:none}20%{transform:translate(-6px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.submit{grid-column:1/-1;align-items:center;gap:24px;margin-top:8px;display:flex}.help{color:var(--muted);font-size:15px}.status{color:var(--body);grid-column:1/-1;font-size:15px}.status:empty{position:absolute}@media (width<=1199px){.cgrid{gap:48px}}@media (width<=1023px){.cgrid{grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.cgrid{gap:36px}.cgrid .lede{font-size:19px}.cform{grid-template-columns:minmax(0,1fr)}.submit{flex-direction:column;align-items:stretch;gap:14px}.submit .btn{justify-content:center}}
