.contact-page{font-family:Onest,system-ui,sans-serif;color:#eaf1ff}
html:has(body.contact-page:not(.feedback-page)),body.contact-page:not(.feedback-page){height:100dvh;overflow:hidden;overscroll-behavior:none}
body.contact-page:not(.feedback-page) main{height:100dvh;overflow:hidden}
body.contact-page:not(.feedback-page) .contact-methods{height:100%;min-height:0;padding:clamp(76px,12vh,130px) 24px 20px;display:flex;flex-direction:column;align-items:center}
body.contact-page:not(.feedback-page) .contact-cards{width:100%;flex:1;min-height:0;align-items:center;margin:clamp(12px,3vh,32px) auto}
body.contact-page:not(.feedback-page) .contact-card{aspect-ratio:auto;min-height:0;height:100%;max-height:260px;gap:clamp(10px,3vh,28px)}
body.contact-page:not(.feedback-page) .contact-icon{width:clamp(61.6px,14vh,112px);height:clamp(61.6px,14vh,112px);border-radius:30.8px;margin-top:0;flex-shrink:0}
body.contact-page:not(.feedback-page) .contact-icon > svg{width:49px;height:49px}
@media(max-width:460px){body.contact-page:not(.feedback-page) .contact-icon{border-radius:21px}body.contact-page:not(.feedback-page) .contact-icon > svg{width:39.2px;height:39.2px}}
body.contact-page:not(.feedback-page) .contact-intro{margin-top:12px}
body.contact-page:not(.feedback-page) .form-jump{flex-shrink:0;padding:10px 6px;margin-bottom:clamp(20px,4vh,44px)}
.contact-nav{position:absolute;top:22px;left:28px;z-index:5;font:700 24px Oswald,sans-serif}.contact-nav span{color:#6ea8ff}
.contact-page main{position:relative;z-index:1}
.contact-methods{min-height:100svh;max-width:1240px;margin:auto;padding:clamp(130px,18vh,200px) 32px 65px;text-align:center;box-sizing:border-box}
.contact-page h1,.contact-page h2{margin:0;font:600 clamp(38px,5vw,68px)/1.13 Onest,sans-serif;letter-spacing:-.045em;text-transform:none}
.contact-intro{color:#a4b3d0;margin:20px 0 0;font-size:17px}
.contact-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin:76px auto 58px}
.contact-card{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;border:1px solid rgba(164,179,208,.19);border-radius:28px;background:rgba(5,10,28,.35);color:#eaf1ff;cursor:pointer;font:500 18px Onest,sans-serif;position:relative;transition:transform .35s,border-color .35s,background .35s}
.contact-icon{display:grid;place-items:center;width:80px;height:80px;border-radius:22px;background:#6359ff;box-shadow:0 0 0 13px #6359ff26,0 0 0 26px #6359ff0d;transition:transform .45s,box-shadow .45s;margin-top:12px}
.contact-icon > svg{width:35px;height:35px;fill:none;stroke:currentColor;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}
.contact-card:hover{transform:translateY(-6px);background:rgba(22,28,59,.65);border-color:#6ea8ff88}.contact-card:hover .contact-icon{transform:scale(1.05);box-shadow:0 0 0 16px #6359ff26,0 0 0 31px #6359ff0d}
.contact-card.copied .contact-icon{background:#fff;color:#111}
.card-action{position:absolute;bottom:13px;font-size:11px;color:#a4b3d0;opacity:0;transition:opacity .2s}.contact-card:hover .card-action,.contact-card:focus-visible .card-action{opacity:1}
.form-jump{display:inline-flex;align-items:center;gap:20px;padding:14px 6px;border-bottom:1px solid #8fa6d966;font-size:16px}.form-jump span{transition:transform .3s}.form-jump:hover span{transform:translateY(5px)}
.callback{max-width:720px;margin:auto;padding:80px 24px 110px;scroll-margin-top:35px;text-align:center}.callback h2{font-size:clamp(32px,4vw,48px);margin-bottom:42px}.callback h2 em{font-family:Georgia,serif;font-weight:400}
.callback-form{padding:40px;border:1px solid #ffffff16;background:rgba(21,24,34,.85);border-radius:22px;display:grid;gap:25px;text-align:left}
.callback-form label{display:grid;gap:10px;font-size:14px;font-weight:500}.name-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.callback-form input,.callback-form textarea{min-width:0;width:100%;box-sizing:border-box;border:1px solid #ffffff21;background:#ffffff0b;border-radius:13px;padding:16px 18px;color:#eaf1ff;font:400 15px Onest,sans-serif;transition:border-color .25s,background .25s}.callback-form textarea{resize:vertical;min-height:126px}.callback-form input::placeholder,.callback-form textarea::placeholder{color:#8b93a5}
.callback-form input:focus,.callback-form textarea:focus{border-color:#8faeff;background:#ffffff10;outline:2px solid #6ea8ff33;outline-offset:2px}
.form-submit{justify-self:center;border:0;border-radius:14px;background:#eaf1ff;color:#06112d;padding:17px 27px;font:500 16px Onest,sans-serif;cursor:pointer;transition:transform .25s}.form-submit:hover{transform:translateY(-3px)}.form-submit span{margin-left:12px}
.form-note,.form-status{text-align:center;color:#a4b3d0;font-size:12px;line-height:1.6;margin:0}.form-status:empty{display:none}
.copy-toast{position:fixed;z-index:150;bottom:28px;left:50%;transform:translate(-50%,30px) scale(.96);opacity:0;visibility:hidden;pointer-events:none;background:#142039f2;backdrop-filter:blur(16px);border:1px solid #8fa6d955;border-radius:18px;box-shadow:0 18px 70px #0007;padding:18px 28px;display:grid;gap:5px;min-width:220px;max-width:calc(100vw - 40px);box-sizing:border-box;transition:opacity .3s,transform .4s cubic-bezier(.16,1,.3,1),visibility .3s}.copy-toast.visible{transform:translate(-50%,0) scale(1);opacity:1;visibility:visible}.toast-heading{font-size:13px;color:#a4b3d0}.toast-value{font-size:16px;overflow-wrap:anywhere}
.contact-page a:focus-visible,.contact-page button:focus-visible{outline:2px solid #8faeff;outline-offset:5px}
@media(max-width:850px){.contact-cards{grid-template-columns:repeat(2,minmax(0,1fr));max-width:570px;gap:20px;margin-top:55px}.contact-methods{padding-top:115px}.contact-icon{width:72px;height:72px}.contact-card{gap:30px}.card-action{display:none}}
@media(max-width:460px){.contact-methods{padding-inline:20px}.contact-cards{gap:14px}.contact-card{border-radius:20px;font-size:15px;gap:23px}.contact-icon{width:52px;height:52px;border-radius:15px;box-shadow:0 0 0 9px #6359ff26,0 0 0 18px #6359ff0d}.contact-icon > svg{width:28px;height:28px}.callback-form{padding:24px;gap:21px}.name-row{grid-template-columns:1fr}.callback{padding-inline:16px}}
/* Monochrome flip, with the navigation's particle motion on activation. */
.contact-card{background:rgba(10,10,10,.8);color:#fff;border-color:#ffffff26;isolation:isolate}
.contact-icon{position:relative;background:#101010;color:#fff;box-shadow:0 0 0 13px #ffffff09,0 0 0 26px #ffffff04;transition:transform .5s cubic-bezier(.2,.75,.2,1),background .35s,color .35s,box-shadow .35s}
.contact-icon > svg{transition:transform .5s cubic-bezier(.2,.75,.2,1)}
.contact-card:hover,.contact-card:focus-visible{background:rgba(24,24,24,.9);border-color:#ffffff88}
.contact-card:hover .contact-icon,.contact-card:focus-visible .contact-icon{transform:perspective(500px) rotateY(180deg);background:#fff;color:#101010;box-shadow:0 0 0 16px #ffffff15,0 0 0 31px #ffffff08}
.contact-card:hover .contact-icon > svg,.contact-card:focus-visible .contact-icon > svg{transform:rotateY(180deg)}
.contact-card:focus-visible{outline-color:white}
.contact-burst{position:absolute;inset:0;pointer-events:none;filter:blur(7px) contrast(100);z-index:-1}
.contact-burst .particle,.contact-burst .point{position:absolute;width:20px;height:20px;border-radius:50%;display:block}
.contact-burst .particle{left:calc(50% - 10px);top:calc(50% - 10px);animation:contactParticle var(--time) ease both -350ms}
.contact-burst .point{background:#fff;animation:contactPoint var(--time) ease both -350ms}
@keyframes contactParticle{0%{transform:rotate(0deg) translate(var(--sx),var(--sy));animation-timing-function:cubic-bezier(.55,0,1,.45)}70%{transform:rotate(calc(var(--r)*.5)) translate(calc(var(--ex)*1.2),calc(var(--ey)*1.2))}85%{transform:rotate(calc(var(--r)*.66)) translate(var(--ex),var(--ey))}100%{transform:rotate(calc(var(--r)*1.2)) translate(calc(var(--ex)*.5),calc(var(--ey)*.5))}}
@keyframes contactPoint{0%{transform:scale(0);opacity:0}25%{transform:scale(.25)}38%{opacity:1}65%,85%{transform:scale(var(--scale));opacity:1}100%{transform:scale(0);opacity:0}}
@media(max-width:460px){.contact-icon{box-shadow:0 0 0 9px #ffffff09,0 0 0 18px #ffffff04}}
@media(prefers-reduced-motion:reduce){.contact-page *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.contact-burst{display:none}}
.contact-card,.contact-card:hover,.contact-card:focus-visible{background:transparent;border-color:transparent;box-shadow:none}
.contact-icon,.contact-card:hover .contact-icon,.contact-card:focus-visible .contact-icon{box-shadow:none}
/* Callback is one viewport; scrolling upward remains the route-back gesture. */
html:has(body.feedback-page),body.feedback-page{height:100dvh;overflow:hidden;overscroll-behavior:none}
body.feedback-page main{height:100dvh;box-sizing:border-box;padding:72px 20px 16px}
body.feedback-page .callback{height:100%;min-height:0;padding:0;margin:0 auto;max-width:760px;display:flex;flex-direction:column;gap:8px}
body.feedback-page .feedback-back{margin:0;align-self:flex-start;font-size:14px}
body.feedback-page .callback h2{font-size:clamp(26px,4.5vh,42px);margin:0 0 8px}
body.feedback-page .callback-form{min-height:0;flex:0 1 auto;padding:clamp(18px,3vh,32px);gap:clamp(12px,2vh,20px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;overflow:auto}
body.feedback-page .name-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
body.feedback-page .callback-form label{min-width:0;gap:4px;font-size:14px}
body.feedback-page .callback-form label:has([name="company"]),body.feedback-page .callback-form label:has(textarea),body.feedback-page .form-submit,body.feedback-page .form-note,body.feedback-page .form-status{grid-column:1/-1}
body.feedback-page .callback-form input{padding:10px 14px;height:clamp(38px,5.5vh,48px);font-size:16px}
body.feedback-page .callback-form textarea{height:clamp(70px,13vh,120px);min-height:0;resize:none;padding:12px 14px;font-size:16px}
body.feedback-page .form-submit{padding:10px 22px;margin:0}
body.feedback-page .form-note,body.feedback-page .form-status{margin:0;font-size:12px;line-height:1.3;text-align:center}
body.feedback-page .form-status:empty{display:none}
@media(max-height:550px){body.feedback-page main{padding-top:58px;padding-bottom:8px}body.feedback-page .callback{gap:4px}body.feedback-page .callback h2{font-size:24px;margin:0}body.feedback-page .callback-form{overflow:auto;align-content:start;gap:5px;padding:10px}}
