*{transition:background-color .55s ease-out,color .55s ease-in}:where(h1){margin-block:.67em;font-size:2em;line-height:1.2}h2,h3{color:var(--heading)}h2{margin:0;font-size:clamp(1.5em,calc(1.1em + 1.6vw),1.875em);line-height:1.25;text-wrap:balance}h3{font-size:1.25em;line-height:1.3}hr{height:1px;width:80%;max-width:1000px;border:0;background-color:var(--line)}b,h2,h3{font-weight:600}a{color:var(--link);transition:color .2s ease}a:hover{color:var(--link-hover)}:where(a,button,[role=button]):focus-visible{outline:3px solid var(--ring);outline-offset:3px}.no-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.no-scroll{overflow:hidden}.clickable{transition:transform .2s ease}footer{display:flex;flex-direction:row;justify-content:space-evenly;gap:32px;padding:52px 24px;background-color:var(--background-alt)}footer>p{margin:0;text-align:right;font-size:.9375em}.contact-me,footer>div{display:flex;flex-direction:column;gap:16px;text-align:left}.contact-me,footer{text-align:center}.contact-me h3,footer h3{margin:0;color:var(--heading);font-size:1.375em;font-weight:600}.contact-me a,footer a{display:inline-flex;align-items:center;gap:8px;text-decoration:none;color:var(--text);font-weight:500}.contact-me a:hover,footer a:hover{color:var(--coral-strong)}footer>div>div{font-size:.875em}footer>div>div a{display:inline;text-decoration:underline;font-weight:400}@media (max-width:768px){#navMenu,footer{flex-direction:column}#navMenu{position:absolute;width:100%;display:flex;align-items:center;pointer-events:none;gap:8px;opacity:0;transform:translateY(60px);z-index:-1;transition:transform .5s ease,opacity .5s ease,z-index 0s .3s}#navMenu.open{transform:translateY(80px);opacity:1;pointer-events:auto;z-index:98;transition:transform .5s ease,opacity .5s ease,z-index 0s}#navMenu a{display:block;width:90%;font-size:1.0625em;font-weight:600;text-align:center;text-decoration:none;color:var(--heading);background-color:var(--surface);padding:12px;border:1px solid var(--line);border-radius:999px;box-shadow:var(--card-shadow)}footer{align-items:flex-start}footer>p{display:none}}@media (prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine){#navToggle:hover,#navbar a:hover{transform:scale(1.06)}}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:0ms!important;animation-delay:0ms!important;animation-iteration-count:1!important;transition-duration:0ms!important;scroll-behavior:auto!important}}