  * { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body:has(.mobile-nav-toggle:checked) { overflow: hidden; }
  body {
    margin: 0;
    background: #e9e7e0;
    color: #1b1b1a;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
  }
  a { color: #2b3a67; text-decoration: none; }
  a:hover { color: #0f7a72; }
  img { display: block; }
  fieldset { min-width: 0; }
  h1, h2, h3, p { margin: 0; }
  @media (max-width: 720px) {
    .profile-photo-col { justify-self: start !important; }
  }
  .profile-photo-wink { transition: opacity .18s ease; }
  .profile-photo-frame:hover .profile-photo-wink { opacity: 1 !important; }

  .mobile-nav-toggle { display: none !important; }
  .hamburger-btn { display: none !important; }
  .mobile-overlay { display: none !important; }
  .mobile-drawer { display: none !important; }

  @media (max-width: 720px) {
    header nav { display: none !important; }

    .hamburger-btn {
      display: flex !important;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: 32px;
      height: 32px;
      margin-left: auto;
      flex: none;
      cursor: pointer;
    }
    .hamburger-btn span {
      display: block !important;
      width: 100%;
      height: 2px;
      background: #1b1b1a !important;
      transition: transform .2s ease, opacity .2s ease;
    }

    .mobile-overlay {
      display: block !important;
      position: fixed !important;
      inset: 0;
      background: rgba(27, 27, 26, .45) !important;
      opacity: 0;
      visibility: hidden;
      transition: opacity .25s ease, visibility .25s ease;
      z-index: 40;
      cursor: pointer;
    }
    .mobile-drawer {
      display: flex !important;
      flex-direction: column;
      gap: 2px;
      position: fixed !important;
      top: 0;
      right: 0;
      height: 100%;
      width: 78%;
      max-width: 300px;
      background: #f6f5f1 !important;
      border-left: 1px solid #1b1b1a;
      padding: 18px 10px;
      z-index: 41;
      transform: translateX(100%);
      transition: transform .28s ease;
      box-shadow: -6px 0 20px rgba(27, 27, 26, .18);
      font-family: 'IBM Plex Mono', monospace;
      font-size: 11.5px;
      letter-spacing: .02em;
    }

    .mobile-nav-toggle:checked ~ .mobile-overlay { opacity: 1 !important; visibility: visible !important; }
    .mobile-nav-toggle:checked ~ .mobile-drawer { transform: translateX(0) !important; }
    .mobile-nav-toggle:checked ~ header .hamburger-btn span:nth-child(1) { transform: translateY(7px) rotate(45deg) !important; }
    .mobile-nav-toggle:checked ~ header .hamburger-btn span:nth-child(2) { opacity: 0 !important; }
    .mobile-nav-toggle:checked ~ header .hamburger-btn span:nth-child(3) { transform: translateY(-7px) rotate(-45deg) !important; }

    .mobile-drawer-close {
      align-self: flex-end;
      width: 28px;
      height: 28px;
      display: flex !important;
      align-items: center;
      justify-content: center;
      border: 1px solid #b9b6ac;
      color: #57544c;
      font-size: 16px;
      cursor: pointer;
      margin-bottom: 8px;
    }
    .mobile-drawer-link {
      display: block !important;
      padding: 13px 10px;
      color: #3d3a34 !important;
      border-bottom: 1px solid #e2dfd6;
    }
  }

  .mobile-nav-toggle:checked ~ .mobile-overlay,
  .mobile-nav-toggle:checked ~ .mobile-drawer {
    pointer-events: auto !important;
  }


/* hover states (converted from style-hover) */
.hov-nav:hover { color:#1b1b1a !important;background:#e2dfd6 !important; }
.hov-btn-primary:hover { color:#fff !important;box-shadow:1px 1px 0 #1b1b1a !important;transform:translate(2px,2px) !important; }
.hov-btn:hover { color:#1b1b1a !important;box-shadow:1px 1px 0 #1b1b1a !important;transform:translate(2px,2px) !important; }
.hov-row:hover { background:#efece5 !important; }
.hov-card:hover { border-color:#1b1b1a !important;background:#f9f8f5 !important; }
