.floating-contact { position:fixed; z-index:4; left:0; top:0; display:inline-flex; align-items:center; min-height:36px; padding:8px 11px; border:1px solid var(--accent); background:#071718c9; color:#fff; font:500 14px/1.2 Arial,Helvetica,sans-serif; letter-spacing:.1em; text-decoration:none; box-shadow:0 0 18px rgb(var(--accent-rgb) / .12); transform:translate3d(12vw,24vh,0); will-change:transform; }
.floating-contact:hover,.floating-contact:focus-visible { background:var(--accent); color:#071718; outline:2px solid white; outline-offset:5px; }
[data-page="portfolio"] .floating-contact,[data-entering="true"] .floating-contact { display:none; }
[data-work-page="contact"] .portfolio-intro { display:none; }
.contact-page { margin-bottom:100px; --contact-accent:#00777c; }
[data-portfolio-theme="dark"] .contact-page { --contact-accent:var(--accent); }
.contact-page .catalog-heading h2 { font-size:clamp(1.75rem,2.6vw,2.25rem); }
.contact-page .catalog-heading p { font-size:clamp(1.125rem,1.5vw,1.25rem); line-height:1.5; opacity:.75; }
.contact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:clamp(18px,3.6vw,54px); }
.contact-panel { min-width:0; padding:clamp(22px,3vw,34px); border:1px solid color-mix(in srgb,var(--portfolio-foreground) 15%,transparent); border-radius:16px; }
.contact-direct { display:flex; flex-direction:column; }
.contact-direct a { display:flex; flex-direction:column; gap:8px; padding:22px 0; color:inherit; font-size:clamp(1.375rem,2vw,1.75rem); line-height:1.5; text-decoration:none; overflow-wrap:anywhere; border-bottom:1px solid color-mix(in srgb,var(--portfolio-foreground) 15%,transparent); }
.contact-direct a:first-child { padding-top:0; }
.contact-direct a:last-child { padding-bottom:0; border-bottom:0; }
.contact-direct a span:first-child { font-size:clamp(1.125rem,1.5vw,1.25rem); font-weight:700; letter-spacing:.06em; }
.contact-direct a:hover { color:var(--contact-accent); }
.contact-direct a:focus-visible,.contact-page button:focus-visible,.contact-page input:focus-visible,.contact-page a:focus-visible { outline:2px solid var(--contact-accent); outline-offset:5px; }
.contact-offer { margin-bottom:24px; }
.contact-offer h2 { margin:0 0 12px; color:var(--contact-accent); font-size:clamp(24px,3vw,32px); line-height:1.15; font-weight:800; letter-spacing:-.035em; }
.contact-offer p { margin:0; font-size:16px; line-height:1.55; }
.contact-form label { display:block; margin-bottom:12px; font-size:14px; }
.contact-email-row { display:flex; flex-wrap:wrap; gap:12px; }
.contact-email-row input { width:100%; min-width:0; min-height:54px; padding:14px 16px; border:1px solid color-mix(in srgb,var(--portfolio-foreground) 38%,transparent); border-radius:12px; color:inherit; background:transparent; font:16px Arial,Helvetica,sans-serif; }
.contact-email-row input[aria-invalid="true"] { border-color:#e45065; }
.contact-submit { width:100%; min-height:52px; padding:14px 18px; border:1px solid var(--accent); border-radius:12px; color:#071718; background:var(--accent); font:700 14px Arial,Helvetica,sans-serif; letter-spacing:.04em; cursor:pointer; }
.contact-submit:disabled { cursor:wait; opacity:.65; }
.contact-consent { margin:14px 0 0; font-size:14px; line-height:1.5; opacity:.75; }
.contact-trap { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
.contact-form-status { margin:16px 0 0; font-size:15px; line-height:1.5; }
.contact-form-status:empty { display:none; }
.contact-success { margin-top:18px; padding:22px; border:1px solid var(--contact-accent); border-radius:12px; }
.contact-success h3 { margin:0 0 12px; font-size:24px; letter-spacing:-.03em; }
.contact-success p { margin:10px 0; font-size:15px; line-height:1.5; }
.contact-code { display:block; overflow-wrap:anywhere; color:var(--contact-accent); font:bold 20px/1.4 monospace; letter-spacing:.05em; }
.contact-copy,.contact-unsubscribe { padding:8px 0; border:0; background:transparent; color:inherit; cursor:pointer; font:14px Arial,Helvetica,sans-serif; text-decoration:underline; text-underline-offset:4px; }
.contact-success-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; }
.contact-success-actions a { color:var(--contact-accent); font-size:14px; text-decoration:none; }
@media(max-width:700px) {
 .contact-grid { grid-template-columns:1fr; gap:24px; }
 .contact-panel { border-radius:12px; }
}
@media(prefers-reduced-motion:reduce) { .floating-contact { will-change:auto; } }
@media(pointer:coarse) { .floating-contact { min-height:44px; } }
