/* Functional accessibility support without changing the portfolio's visual design. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #e3c48c;outline-offset:5px}
.skip{position:fixed;z-index:1000;border-radius:12px;min-height:44px}
main:focus{outline:none}
.site-footer{flex-wrap:wrap;align-items:center;gap:24px 48px}
.site-footer .footer-links{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:inherit;max-width:none}
.site-footer .footer-links a,.site-footer .footer-links a:first-child,.site-footer>a{display:inline-flex;align-items:center}
.meeting-form .form-instructions{font-size:14px;margin-bottom:28px}
.meeting-form .field-error{display:block;color:#f1b9a9;font-size:14px;line-height:1.6;margin-top:12px}
.meeting-form [aria-invalid=true]{border-color:#f1b9a9}
.meeting-form .form-errors{margin-bottom:32px}
.meeting-form .form-errors p{margin:0 0 12px;color:var(--paper)}
.meeting-form .form-errors ul{padding-left:22px;margin:0}
.meeting-form .form-errors a{color:var(--paper);text-decoration:underline;text-underline-offset:3px;line-height:1.8}
.meeting-form .privacy-note{max-width:65ch;font-size:14px;line-height:1.8;margin-top:28px}
.privacy-note a{text-decoration:underline;text-underline-offset:3px}
.meeting-form input,.meeting-form textarea{scroll-margin-top:36px}
.effects-paused .hero h1,.effects-paused .hero h1::before,.effects-paused .terminal-cursor{animation:none!important}
.effects-paused .hero h1::before{opacity:0}
.effects-paused .terminal-cursor{opacity:1}
/* Retain the analog character without repeated rapid opacity pulses. */
@keyframes analog-interference{0%,100%{transform:none;filter:none;text-shadow:none}30%{transform:translateX(-2px) skewX(-.4deg);filter:none;text-shadow:2px 0 #c5a05970}65%{transform:translateX(2px);filter:none;text-shadow:-2px 0 #699b9b}}
@keyframes signal-tear{0%,100%{opacity:0;transform:none}20%,65%{opacity:.5;clip-path:inset(40% 0 45% 0);transform:translateX(6px)}}
@media(max-width:600px){.site-footer .footer-links{gap:8px 20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero h1,.hero h1::before,.terminal-cursor{animation:none!important}}
@media(forced-colors:active){.hero .terminal-text{background:none;color:CanvasText}.hero .hello,.hero .cta{background:Canvas;color:CanvasText}.meeting-form input,.meeting-form textarea,.meeting-form button{border:1px solid ButtonText}.hero h1::before{display:none}}
