.contact-page{background:radial-gradient(ellipse at 22% 45%,rgb(var(--accent-rgb) / 0.0471),transparent 54%),radial-gradient(ellipse at 90% 80%,rgb(var(--accent-alt-rgb) / 0.0235),transparent 50%),var(--bg)}
.contact-page .content-view{align-items:stretch;min-height:100dvh;padding:clamp(100px,16dvh,138px) 5.8vw clamp(24px,4dvh,48px)}
.contact-shell{display:flex;flex-direction:column;width:100%;max-width:1460px;min-width:0;margin:0 auto}
.contact-title{width:fit-content;margin:0;font:180 clamp(36px,4.3vw,72px)/1.03 Roboto Flex,Arial,sans-serif;font-variation-settings:'opsz' 144,'wdth' 68;letter-spacing:-.025em;text-transform:uppercase;animation:contact-arrive .8s var(--ease) both}
.contact-main{flex:1;display:flex;flex-direction:column;justify-content:center;min-height:300px;padding:clamp(24px,4dvh,48px) 0;animation:contact-arrive 1s .12s var(--ease) both}
.contact-intro{margin:0 0 clamp(28px,5dvh,52px);font:350 clamp(14px,1.3vw,18px)/1.5 Roboto Flex,Arial,sans-serif;color:var(--muted)}
.contact-channels{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(40px,7vw,110px)}
.contact-channel{position:relative;display:grid;align-content:start;gap:20px;min-width:0;padding:8px 0 24px;transition:color .4s}
.contact-channel::after{content:'';position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,var(--accent),var(--accent-alt));transform:scaleX(.18);transform-origin:left;transition:transform .7s var(--ease)}
.contact-channel-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;font:180 clamp(44px,min(7.5vw,11dvh),112px)/1.05 Roboto Flex,Arial,sans-serif;font-variation-settings:'opsz' 144,'wdth' 82;letter-spacing:-.04em;transition:font-variation-settings .7s var(--ease)}
.contact-channel-heading svg{flex:none;width:clamp(30px,3.4vw,52px);height:auto;stroke:var(--accent);stroke-width:1;transition:translate .7s var(--ease),stroke .4s}
.contact-detail{color:var(--muted);font:11px/1.6 Plex,monospace;overflow-wrap:anywhere;transition:color .4s}
.contact-channel:hover,.contact-channel:focus-visible{color:var(--accent)}
.contact-channel:hover::after,.contact-channel:focus-visible::after{transform:scaleX(1)}
.contact-channel:hover .contact-channel-heading,.contact-channel:focus-visible .contact-channel-heading{font-variation-settings:'opsz' 144,'wdth' 94}
.contact-channel:hover svg,.contact-channel:focus-visible svg{translate:4px -4px;stroke:var(--accent-alt)}
.contact-channel:hover .contact-detail,.contact-channel:focus-visible .contact-detail{color:var(--ink)}
.contact-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;padding-top:14px;border-top:1px solid var(--line);animation:contact-arrive 1s .24s var(--ease) both}
.contact-tools{display:flex;align-items:center;flex-wrap:wrap;column-gap:20px;row-gap:0;min-height:44px}
.contact-copy{position:relative;min-height:44px;padding:8px 0;background:none;color:var(--muted);font:11px/1.6 Plex,monospace;transition:color .3s}
.contact-copy::after{content:'';position:absolute;left:0;right:0;bottom:8px;height:1px;background:var(--accent);transform:scaleX(.25);transform-origin:left;transition:transform .5s var(--ease),background .3s}
.contact-copy:hover,.contact-copy:focus-visible{color:var(--accent-alt)}
.contact-copy:hover::after,.contact-copy:focus-visible::after{transform:scaleX(1);background:var(--accent-alt)}
.contact-copy:disabled{cursor:wait}
.contact-status{margin:0;color:var(--accent);font:11px/1.6 Plex,monospace}
.contact-bottom>p{margin:0;color:var(--muted);font:11px/1.6 Plex,monospace;white-space:nowrap}
.contact-bottom>p span{margin:0 10px;color:var(--accent)}
@keyframes contact-arrive{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
@media(max-width:760px){
 .contact-page .content-view{padding:112px 5vw 24px}
 .contact-title{font-size:42px}
 .contact-main{padding:20px 0}
 .contact-intro{font-size:15px;margin-bottom:24px}
 .contact-channels{grid-template-columns:1fr;gap:22px}
 .contact-channel{gap:10px;padding:0 0 14px}
 .contact-channel-heading{font-size:clamp(36px,11vw,56px)}
 .contact-channel-heading svg{width:28px}
 .contact-channel:hover .contact-channel-heading,.contact-channel:focus-visible .contact-channel-heading{font-variation-settings:'opsz' 144,'wdth' 88}
 .contact-bottom{gap:12px;padding-top:12px}
 .contact-tools{column-gap:12px}
 .contact-bottom>p{font-size:11px}
 .contact-bottom>p span{margin:0 6px}
}
