/* Mobile layout is isolated so the desktop composition stays intact. */
.hero-tool-ticker { display:none; }
.hero__photo > picture { display:contents; }
.hero__actions a[href="#contact"],.hero__actions .button--filled,.contact-footer__email { font-weight:700; }
.contact-footer__email { letter-spacing:-.055em; }
@media (min-width:721px) and (prefers-reduced-motion:no-preference) {
  .reveal-enabled .hero__photo--entrance img { opacity:0; }
  .reveal-enabled .hero__photo--entrance.is-photo-visible img {
    opacity:1;
    transition:opacity 1400ms cubic-bezier(.16,1,.3,1) 200ms, transform 1600ms cubic-bezier(.16,1,.3,1) 200ms;
  }
}
.mobile-social-drawer { position:fixed; inset:auto 0 0; margin:0; width:100%; max-width:none; max-height:calc(100dvh - 64px); padding:12px 24px max(28px,env(safe-area-inset-bottom)); border:0; border-top:1px solid var(--border-color); border-radius:0; background:var(--surface-primary); color:var(--text-primary); }
.mobile-social-drawer[open] { animation:social-drawer-in 280ms var(--ease) both; }
.mobile-social-drawer::backdrop { background:rgb(1 4 17 / .38); }
.mobile-social-drawer__handle { width:40px; height:3px; margin:0 auto 24px; background:var(--border-color); }
.mobile-social-drawer__heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.mobile-social-drawer__heading h2 { margin:0; font-size:24px; line-height:1.25; font-weight:600; }
.mobile-social-drawer__close { display:grid; place-items:center; width:44px; height:44px; padding:11px; border:1px solid var(--border-color); border-radius:0; color:var(--text-primary); background:transparent; cursor:pointer; }
.mobile-social-drawer__close svg { width:100%; height:100%; fill:none; stroke:currentColor; stroke-width:1.5; }
.mobile-social-drawer__links { display:flex; flex-direction:column; }
.mobile-social-drawer__links a { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:22px 0; border-top:1px solid var(--border-color); color:var(--text-primary); font-family:var(--font-body); font-size:20px; font-weight:500; line-height:1.3; }
.mobile-social-drawer__links a > span:last-child { color:var(--text-muted); }
html.social-drawer-open { overflow:hidden; }
@keyframes social-drawer-in { from { opacity:0; transform:translateY(100%); } to { opacity:1; transform:translateY(0); } }
@keyframes hero-tools-ticker { to { transform:translateX(-50%); } }
@media(max-width:720px) {
  html,body { min-width:0; }
  :root { --nav-height:80px; --header-height:80px; --badge-width:40px; --badge-height:46px; --badge-row-step:34.5px; }
  .site-nav__inner { display:flex; flex-direction:row; align-items:center; justify-content:space-between; width:100%; min-height:80px; gap:16px; padding:16px; }
  .site-nav__left { width:auto; flex:0 0 auto; min-width:0; }
  .site-logo { gap:8px; }
  .site-logo__mark { width:46px; }
  .site-nav__right { width:auto; margin-left:auto; gap:0; }
  .site-nav .site-nav__links,.site-nav__separator { display:none; }
  .site-nav__actions { gap:20px; }
  .site-nav__actions > a,.site-nav .profile-menu summary { display:flex; align-items:center; min-height:44px; font-size:18px; font-weight:500; line-height:1.35; }
  .site-nav .profile-menu__panel { display:none; }
  .site-logo__tooltip { display:none; }
  .hero { display:block; min-height:0; padding-block:40px 64px; }
  .hero__copy { width:100%; padding:0; transform:none; }
  .hero__photo,.hero__badges { display:none; }
  .hero__title-accent { white-space:normal; }
  .hero__actions { margin-top:24px; }
  .hero__actions .button { font-size:18px; }
  .hero-tool-ticker { display:block; position:relative; width:100%; margin-top:32px; overflow:hidden; -webkit-mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 16px),transparent); mask-image:linear-gradient(to right,transparent,#000 16px,#000 calc(100% - 16px),transparent); }
  .hero-tool-ticker__track { display:flex; width:max-content; animation:hero-tools-ticker 24s linear infinite; }
  .hero-tool-ticker__set { display:flex; gap:12px; padding-right:12px; list-style:none; }
  .hero-tool-chip { display:grid; place-items:center; width:64px; height:56px; flex:0 0 64px; }
  .hero-tool-chip img { width:36px; height:36px; object-fit:contain; }
  .hero-tool-ticker:is(:hover,:focus-within) .hero-tool-ticker__track { animation-play-state:paused; }
  .contact-footer__email { font-size:clamp(64px,21.333vw,112px); font-weight:700; line-height:1.1; letter-spacing:-.055em; overflow-wrap:normal; }
  .contact-footer__bottom { display:flex; flex-direction:row; align-items:center; justify-content:space-between; flex-wrap:nowrap; gap:12px; font-size:14px; }
  .contact-footer__bottom > p { white-space:nowrap; }
  .contact-footer__links { display:flex; flex:0 0 auto; gap:0; }
  .contact-footer__links > span,.contact-footer__links > .profile-menu { display:none; }
  .contact-footer__links > a[download] { font-size:14px; white-space:nowrap; }
}
@media(prefers-reduced-motion:reduce) {
  .mobile-social-drawer[open],.hero-tool-ticker__track { animation:none; }
  .hero-tool-ticker { overflow-x:auto; }
  .hero-tool-ticker__set[aria-hidden="true"] { display:none; }
}

@media(max-width:360px) {
  .site-nav__actions { gap:12px; }
  .site-nav__actions > a,.site-nav .profile-menu summary { font-size:16px; }
}

/* Contact interaction keeps its space, so the arrow appears without a layout shift. */
.contact-footer__email { display:inline-flex; align-items:center; max-width:100%; gap:.06em; transition:color 200ms var(--ease); }
.contact-footer__label { min-width:0; }
.contact-footer__arrow { width:.32em; height:.32em; flex:0 0 .32em; opacity:0; transform:translate(-6px,6px); transition:opacity 200ms var(--ease),transform 250ms var(--ease); }
.contact-footer__email:is(:hover,:focus-visible) { color:#000; }
.contact-footer__email:is(:hover,:focus-visible) .contact-footer__arrow { opacity:1; transform:translate(0,0); }
@media(prefers-reduced-motion:reduce) { .contact-footer__email,.contact-footer__arrow { transition:none; } }
