    /* ══════════════════════════════════════════
       RESET & TOKENS
    ══════════════════════════════════════════ */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    html { overflow-x: hidden; scroll-behavior: smooth; }

    :root {
      /* Light theme */
      --bg: #f2f1ef;
      --bg-secondary: #e8e7e3;
      --card-bg: #e2e2de;
      --text-primary: #111;
      --text-secondary: #555;
      --text-muted: #5f5f5f;
      --border: #d8d8d4;
      --accent: #111;
      --accent-hover: #333;
      --card-shadow: rgba(0,0,0,0.08);
      --card-shadow-hover: rgba(0,0,0,0.14);
      --sidebar-w: 220px;
      --marquee-gap: 40px;
      --transition: 300ms ease;
      --radius: 12px;
      --radius-sm: 8px;
    }

    [data-theme="dark"] {
      --bg: #111111;
      --bg-secondary: #1a1a1a;
      --card-bg: #1e1e1e;
      --text-primary: #f0efed;
      --text-secondary: #aaa;
      --text-muted: #999;
      --border: #2a2a2a;
      --accent: #f0efed;
      --accent-hover: #ccc;
      --card-shadow: rgba(0,0,0,0.3);
      --card-shadow-hover: rgba(0,0,0,0.5);
    }

    body {
      font-family: 'DM Mono', monospace;
      background: var(--bg);
      color: var(--text-primary);
      display: flex;
      min-height: 100vh;
      overflow-x: hidden;
      transition: background var(--transition), color var(--transition);
    }

    a { color: inherit; text-decoration: none; }

    /* ══════════════════════════════════════════
       SIDEBAR
    ══════════════════════════════════════════ */
    .sidebar {
      position: fixed;
      top: 0; left: 0;
      width: var(--sidebar-w);
      height: 100vh;
      background: var(--bg);
      border-right: 1px solid var(--border);
      display: flex;
      flex-direction: column;
      padding: 32px 24px;
      z-index: 100;
      transition: background var(--transition), border-color var(--transition);
    }

    .sidebar__name {
      font-family: 'DM Mono', monospace;
      font-size: 0.72rem;
      font-weight: 500;
      line-height: 1.4;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      margin-bottom: 40px;
      opacity: 0.6;
      transition: opacity 0.2s;
      cursor: pointer;
    }
    .sidebar__name:hover {
      opacity: 1;
    }

    .sidebar__nav {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 8px;
      flex: 1;
    }

    .sidebar__nav a {
      display: block;
      font-family: 'DM Mono', monospace;
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      color: var(--text-secondary);
      text-transform: uppercase;
      transition: color 0.2s;
      padding: 2px 0;
    }

    .sidebar__nav a:hover,
    .sidebar__nav a.active {
      color: var(--text-primary);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .sidebar__nav .nav-divider {
      height: 1px;
      background: var(--border);
      margin: 8px 0;
    }

    /* Dark mode toggle */
    .theme-toggle {
      margin-top: auto;
      display: flex;
      align-items: center;
      gap: 10px;
      cursor: pointer;
      font-size: 0.68rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      transition: color 0.2s;
      padding: 4px 0;
      border: none;
      background: none;
      color: var(--text-secondary);
      font-family: 'DM Mono', monospace;
    }

    .theme-toggle:hover { color: var(--text-primary); }

    /* ══════════════════════════════════════════
       HAMBURGER BUTTON  (mobile only)
    ══════════════════════════════════════════ */
    .sidebar__hamburger {
      display: none;
      flex-direction: column;
      justify-content: center;
      gap: 5px;
      width: 40px;
      height: 40px;
      padding: 9px;
      background: none;
      border: none;
      cursor: pointer;
      flex-shrink: 0;
      margin-left: auto;
    }
    .sidebar__hamburger span {
      display: block;
      width: 100%;
      height: 1.5px;
      background: var(--text-primary);
      border-radius: 1px;
      transition: transform 0.22s ease, opacity 0.22s ease, background var(--transition);
    }
    .sidebar__hamburger.is-active span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
    .sidebar__hamburger.is-active span:nth-child(2) { opacity: 0; transform: scaleX(0); }
    .sidebar__hamburger.is-active span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

    .toggle-track {
      width: 36px;
      height: 20px;
      background: var(--border);
      border-radius: 10px;
      position: relative;
      transition: background var(--transition);
    }

    .toggle-thumb {
      width: 16px;
      height: 16px;
      background: var(--text-primary);
      border-radius: 50%;
      position: absolute;
      top: 2px;
      left: 2px;
      transition: transform var(--transition), background var(--transition);
    }

    [data-theme="dark"] .toggle-thumb {
      transform: translateX(16px);
    }

    /* ══════════════════════════════════════════
       MAIN CONTENT
    ══════════════════════════════════════════ */
    .main {
      margin-left: var(--sidebar-w);
      flex: 1;
      min-width: 0;
      display: flex;
      flex-direction: column;
      overflow-x: hidden;
      position: relative;
      z-index: 1;
    }

    /* ══════════════════════════════════════════
       MARQUEE HERO
    ══════════════════════════════════════════ */
    .hero {
      border-bottom: 1px solid var(--border);
      overflow: hidden;
      display: flex;
      flex-direction: column;
      transition: border-color var(--transition);
    }

    .marquee-row {
      display: flex;
      width: 100%;           /* ensures <a> stretches full width */
      overflow: hidden;
      border-bottom: 1px solid var(--border);
      height: 120px;
      align-items: center;
      transition: border-color var(--transition), background var(--transition);
      cursor: pointer;
      text-decoration: none;
      color: inherit;
    }

    .marquee-row:hover {
      background: var(--bg-secondary);
    }

    .marquee-row:last-child { border-bottom: none; }

    .marquee-track {
      display: flex;
      align-items: center;
      white-space: nowrap;
      will-change: transform;
      gap: var(--marquee-gap);
      flex-shrink: 0;
    }

    .marquee-row:nth-child(odd)  .marquee-track { animation: scrollLeft  20s linear infinite; }
    .marquee-row:nth-child(even) .marquee-track { animation: scrollRight 26s linear infinite; }

    @keyframes scrollLeft {
      from { transform: translateX(0); }
      to   { transform: translateX(-50%); }
    }
    @keyframes scrollRight {
      from { transform: translateX(-50%); }
      to   { transform: translateX(0); }
    }

    .marquee-word {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(2.8rem, 4.5vw, 5rem);
      line-height: 1;
      letter-spacing: 0.02em;
      text-transform: uppercase;
      color: var(--text-primary);
      flex-shrink: 0;
      transition: color var(--transition);
    }

    .marquee-icon {
      flex-shrink: 0;
      width: 50px;
      height: 50px;
      background: var(--text-primary);
      border-radius: 6px;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background var(--transition);
    }

    .marquee-icon svg {
      width: 28px;
      height: 28px;
      fill: var(--bg);
      transition: fill var(--transition);
    }

    /* ══════════════════════════════════════════
       INTRO / POSITIONING STATEMENT
    ══════════════════════════════════════════ */
    .intro {
      padding: 64px 48px;
      border-bottom: 1px solid var(--border);
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
      gap: 40px;
      transition: border-color var(--transition);
    }

    .intro__text {
      flex: 1;
      max-width: 520px;
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .intro__kicker {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 0.82rem;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      color: var(--text-secondary);
      line-height: 1;
    }

    .intro__title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(2.2rem, 4vw, 3.8rem);
      letter-spacing: 0.02em;
      text-transform: uppercase;
      line-height: 1;
    }

    /* Letter-disperse hover effect on the hero title */
    .intro__title .disperse-word {
      display: inline-block;
      white-space: nowrap;
    }
    .intro__title .disperse-char {
      display: inline-block;
      transition: transform 0.75s cubic-bezier(0.33, 1, 0.68, 1);
      will-change: transform;
    }
    .intro__title:hover .disperse-char {
      transform: var(--disperse);
    }

    /* Scroll reveal */
    .reveal {
      opacity: 0;
      transform: translateY(22px);
      transition: opacity 0.55s ease, transform 0.55s ease;
    }
    .reveal.is-visible {
      opacity: 1;
      transform: none;
    }

    @media (prefers-reduced-motion: reduce) {
      .intro__title .disperse-char { transition: none; }
      .intro__title:hover .disperse-char { transform: none; }
      .reveal { opacity: 1; transform: none; transition: none; }
      .marquee-track { animation: none !important; }
    }

    .marquee-word:hover {
      text-decoration: underline;
      text-decoration-thickness: 3px;
      text-underline-offset: 6px;
      cursor: pointer;
    }

    .intro__statement {
      font-family: 'DM Serif Display', serif;
      font-style: italic;
      font-size: clamp(1rem, 1.6vw, 1.35rem);
      line-height: 1.5;
      letter-spacing: -0.01em;
      color: var(--text-secondary);
    }

    .intro__photo {
      flex-shrink: 0;
      align-self: stretch;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
    }

    .intro__photo img {
      height: 100%;
      width: auto;
      display: block;
    }

    .intro__photo-label {
      font-size: 0.58rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.08em;
      text-align: center;
      padding: 8px;
    }

    .intro__meta {
      display: flex;
      flex-direction: column;
      gap: 4px;
      text-align: right;
      flex-shrink: 0;
      max-width: 160px;
    }

    .intro__meta span {
      font-size: 0.63rem;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      color: var(--text-muted);
    }

    .intro__meta strong {
      font-size: 0.7rem;
      font-weight: 500;
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .intro__abilities {
      display: flex;
      flex-direction: column;
      gap: 3px;
      margin-top: 2px;
    }

    .intro__abilities strong {
      font-size: 0.65rem;
      line-height: 1.5;
    }

    /* ══════════════════════════════════════════
       SECTION HEADERS
    ══════════════════════════════════════════ */
    .section-header {
      padding: 40px 48px 0;
      display: flex;
      justify-content: space-between;
      align-items: baseline;
    }

    .section-header__title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(1.6rem, 3vw, 2.4rem);
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .section-header__count {
      font-size: 0.68rem;
      color: var(--text-muted);
      letter-spacing: 0.06em;
      text-transform: uppercase;
    }

    .section-header__description {
      padding: 12px 48px 0;
      font-size: 0.78rem;
      color: var(--text-secondary);
      max-width: 600px;
      line-height: 1.6;
    }

    /* ══════════════════════════════════════════
       PORTFOLIO GRID — 3 COLUMNS
    ══════════════════════════════════════════ */
    .portfolio-grid {
      padding: 28px 48px 48px;
      display: grid;
      grid-template-columns: repeat(3, 1fr);
      gap: 18px;
      width: 100%;
    }

    /* ══════════════════════════════════════════
       CARDS
    ══════════════════════════════════════════ */
    .card {
      display: block;
      background: var(--card-bg);
      border-radius: var(--radius);
      overflow: hidden;
      cursor: pointer;
      transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
      position: relative;
      color: inherit;
      text-decoration: none;
    }

    .card:hover {
      transform: translateY(-4px);
      box-shadow: 0 16px 40px var(--card-shadow-hover);
    }

    .card__preview {
      width: 100%;
      aspect-ratio: 16 / 10;
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
    }

    .card__preview img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform 0.4s ease;
    }

    .card:hover .card__preview img {
      transform: scale(1.06);
    }

    /* Card info */
    .card__info {
      padding: 14px 18px;
      display: flex;
      align-items: center;
      justify-content: space-between;
    }

    .card__title {
      font-family: 'DM Mono', monospace;
      font-size: 0.74rem;
      font-weight: 500;
      letter-spacing: 0.04em;
      text-transform: uppercase;
      margin-bottom: 4px;
      transition: text-decoration var(--transition);
    }

    .card:hover .card__title {
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .card__tags {
      display: flex;
      gap: 6px;
      flex-wrap: wrap;
    }

    .card__tag {
      font-family: 'DM Mono', monospace;
      font-size: 0.6rem;
      opacity: 0.85;
      letter-spacing: 0.05em;
      text-transform: uppercase;
      background: var(--bg);
      color: var(--text-primary);
      padding: 3px 9px;
      border-radius: 4px;
      border: 1px solid var(--border);
      transition: background var(--transition), border-color var(--transition);
    }

    .card__arrow {
      font-size: 1.1rem;
      opacity: 0.75;
      transition: opacity 0.2s, transform 0.2s;
      flex-shrink: 0;
    }

    .card:hover .card__arrow {
      opacity: 0.9;
      transform: translateX(3px);
    }

    /* ══════════════════════════════════════════
       FEATURED PROJECTS (larger cards)
    ══════════════════════════════════════════ */
    .featured-grid {
      padding: 28px 48px 48px;
      display: grid;
      grid-template-columns: repeat(2, 1fr);
      gap: 18px;
    }

    .featured-grid .card__preview {
      aspect-ratio: 16 / 9;
    }

    /* ══════════════════════════════════════════
       CATEGORY DIVIDER
    ══════════════════════════════════════════ */
    .category-section {
      border-top: 1px solid var(--border);
      transition: border-color var(--transition);
    }

    /* ══════════════════════════════════════════
       ABOUT ME
    ══════════════════════════════════════════ */
    .about {
      border-top: 1px solid var(--border);
      padding: 72px 48px;
      display: grid;
      grid-template-columns: 240px 1fr;
      gap: 48px;
      align-items: start;
      transition: border-color var(--transition);
    }

    .about__left {
      display: flex;
      flex-direction: column;
      gap: 20px;
      width: 240px;
    }

    .about__photo {
      width: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .about__photo img {
      width: 100%;
      height: auto;
      display: block;
    }

    .about__photo-placeholder {
      font-size: 0.68rem;
      color: var(--text-muted);
      text-transform: uppercase;
      letter-spacing: 0.08em;
    }


    .about__content { display: flex; flex-direction: column; gap: 24px; }

    .about__title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(1.8rem, 3vw, 2.8rem);
      letter-spacing: 0.04em;
      text-transform: uppercase;
    }

    .about__bio {
      font-size: 0.82rem;
      line-height: 1.75;
      color: var(--text-secondary);
    }

    .about__details {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 20px;
      margin-top: 8px;
    }

    .about__detail-label {
      font-size: 0.62rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
      margin-bottom: 4px;
    }

    .about__detail-value {
      font-size: 0.78rem;
      font-weight: 500;
    }

    .about__skills {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-top: 8px;
    }

    .skill-tag {
      font-size: 0.62rem;
      letter-spacing: 0.06em;
      text-transform: uppercase;
      padding: 6px 14px;
      border: 1px solid var(--border);
      border-radius: 20px;
      color: var(--text-secondary);
      transition: border-color var(--transition), color var(--transition);
    }

    /* ══════════════════════════════════════════
       CONTACT
    ══════════════════════════════════════════ */
    .contact {
      border-top: 1px solid var(--border);
      padding: 72px 48px;
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      transition: border-color var(--transition);
    }

    .contact__title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: clamp(2rem, 4vw, 3.5rem);
      letter-spacing: 0.04em;
      text-transform: uppercase;
      margin-bottom: 12px;
    }

    .contact__subtitle {
      font-size: 0.82rem;
      color: var(--text-secondary);
      margin-bottom: 48px;
      max-width: 480px;
      line-height: 1.6;
    }

    .contact-form {
      width: 100%;
      max-width: 560px;
      display: flex;
      flex-direction: column;
      gap: 16px;
    }

    .form-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 16px;
    }

    .form-group {
      display: flex;
      flex-direction: column;
      gap: 6px;
      text-align: left;
    }

    .form-group label {
      font-size: 0.62rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: var(--text-muted);
    }

    .form-group input,
    .form-group textarea {
      font-family: 'DM Mono', monospace;
      font-size: 0.78rem;
      padding: 12px 16px;
      border: 1px solid var(--border);
      border-radius: var(--radius-sm);
      background: var(--bg);
      color: var(--text-primary);
      transition: border-color 0.2s, background var(--transition), color var(--transition);
      outline: none;
    }

    .form-group input:focus,
    .form-group textarea:focus {
      border-color: var(--text-primary);
    }

    .form-group textarea {
      min-height: 140px;
      resize: vertical;
    }

    .form-submit {
      font-family: 'DM Mono', monospace;
      font-size: 0.74rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 14px 32px;
      background: var(--text-primary);
      color: var(--bg);
      border: none;
      border-radius: var(--radius-sm);
      cursor: pointer;
      transition: background var(--transition), color var(--transition), opacity 0.2s;
      margin-top: 8px;
    }

    .form-submit:hover { opacity: 0.85; }

    .contact__email {
      margin-top: 32px;
      font-size: 0.72rem;
      color: var(--text-muted);
      letter-spacing: 0.04em;
    }

    .contact__email a {
      color: var(--text-primary);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    /* ══════════════════════════════════════════
       FOOTER
    ══════════════════════════════════════════ */
    .footer {
      border-top: 1px solid var(--border);
      padding: 28px 48px;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 0.62rem;
      color: var(--text-muted);
      letter-spacing: 0.06em;
      text-transform: uppercase;
      transition: border-color var(--transition);
    }

    .footer__links {
      display: flex;
      gap: 20px;
    }

    .footer__links a {
      color: var(--text-muted);
      transition: color 0.2s;
    }

    .footer__links a:hover { color: var(--text-primary); }

    .footer__email {
      color: var(--text-muted);
      font-size: 0.72rem;
      letter-spacing: 0.04em;
      transition: color 0.2s;
    }
    .footer__email:hover { color: var(--text-primary); }

    /* ══════════════════════════════════════════
       RESPONSIVE
    ══════════════════════════════════════════ */
    @media (max-width: 1024px) {
      .portfolio-grid { grid-template-columns: repeat(2, 1fr); }
    }

    @media (max-width: 860px) {
      :root { --sidebar-w: 0px; }

      body { flex-direction: column; }

      /* ── Top bar ── */
      .sidebar {
        position: static;
        width: 100%;
        height: auto;
        border-right: none;
        border-bottom: 1px solid var(--border);
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        padding: 0 20px;
      }

      .sidebar__name { margin-bottom: 0; font-size: 0.72rem; flex-shrink: 0; padding: 14px 0; }

      .sidebar__hamburger { display: flex; }

      /* Collapsed: hide nav, auth, toggle */
      .sidebar > nav,
      .sidebar__auth,
      .sidebar .theme-toggle { display: none; width: 100%; }

      /* ── Open state ── */
      .sidebar.is-open > nav {
        display: block;
        border-top: 1px solid var(--border);
        padding: 10px 0 14px;
      }
      .sidebar.is-open .sidebar__nav { flex-direction: column; gap: 2px; flex: unset; }
      .sidebar.is-open .sidebar__nav a { padding: 10px 0; white-space: nowrap; }
      .sidebar.is-open .sidebar__nav .nav-divider { display: block; margin: 6px 0; }

      .sidebar.is-open .sidebar__auth {
        display: flex;
        flex-direction: column;
        gap: 8px;
        padding: 12px 0;
        border-top: 1px solid var(--border);
        margin-left: 0;
      }
      .sidebar.is-open .sidebar__auth .auth-btn { width: 100%; text-align: left; padding: 10px 14px; }

      .sidebar.is-open .theme-toggle {
        display: flex;
        margin-top: 0;
        margin-left: 0;
        padding: 12px 0 14px;
        border-top: 1px solid var(--border);
      }

      /* ── Rest of page ── */
      .main { margin-left: 0; }

      .marquee-row { height: 72px; }

      .intro { flex-direction: column; padding: 40px 24px; gap: 24px; align-items: flex-start; }
      .intro__meta { text-align: left; max-width: none; }
      .intro__photo { width: 160px; height: 160px; border-radius: 50%; overflow: hidden; flex-shrink: 0; align-self: center; }
      .intro__photo img { width: 100%; height: 100%; object-fit: cover; display: block; }

      .section-header,
      .section-header__description { padding-left: 24px; padding-right: 24px; }

      .portfolio-grid,
      .featured-grid { grid-template-columns: 1fr; padding: 20px 24px; }

      .about { grid-template-columns: 1fr; padding: 48px 24px; gap: 32px; }

      .about__left { width: 100%; max-width: 240px; }

      .contact { padding: 48px 24px; }

      .form-row { grid-template-columns: 1fr; }

      .footer { padding: 20px 24px; flex-direction: column; gap: 12px; }
    }

    @media (max-width: 480px) {
      .marquee-word { font-size: 2rem; }
      .marquee-icon { width: 36px; height: 36px; }
      .marquee-icon svg { width: 20px; height: 20px; }
      .about__details { grid-template-columns: 1fr; }
    }

    /* ══════════════════════════════════════════
       AUTH BUTTONS
    ══════════════════════════════════════════ */
    .sidebar__auth {
      display: flex;
      flex-direction: column;
      gap: 6px;
      margin-top: 16px;
    }

    .auth-btn {
      font-family: 'DM Mono', monospace;
      font-size: 0.68rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 8px 14px;
      border-radius: var(--radius-sm);
      border: 1px solid var(--border);
      cursor: pointer;
      background: none;
      color: var(--text-muted);
      transition: color 0.2s, border-color 0.2s, opacity 0.2s;
      text-align: left;
    }

    .auth-btn:hover { color: var(--text-primary); border-color: var(--text-primary); }

    .auth-btn--login {
      background: var(--text-primary);
      color: var(--bg);
      border-color: var(--text-primary);
    }
    .auth-btn--login:hover { opacity: 0.8; color: var(--bg); }

    .auth-btn--dev {
      background: #22c55e;
      color: #000;
      border-color: #22c55e;
    }
    .auth-btn--dev:hover { opacity: 0.85; color: #000; }

    .auth-btn--map {
      background: none;
      color: #c792ea;
      border-color: #c792ea66;
    }
    .auth-btn--map:hover { color: #000; background: #c792ea; border-color: #c792ea; }

    .dev-badge {
      background: #ff4444;
      color: #fff;
      border-radius: 50%;
      width: 18px;
      height: 18px;
      font-size: 0.58rem;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      margin-left: 6px;
      font-family: 'DM Mono', monospace;
      font-weight: 500;
      vertical-align: middle;
      line-height: 1;
    }

    .dev-message-card {
      background: #1a1a1a;
      border: 1px solid #2a2a2a;
      border-radius: 6px;
      padding: 12px 12px 12px 12px;
      display: flex;
      flex-direction: column;
      gap: 5px;
      position: relative;
    }
    .dev-message-card__from { font-size: 0.72rem; color: #22c55e; font-weight: 500; font-family: 'DM Mono', monospace; letter-spacing: 0.04em; }
    .dev-message-card__email { font-size: 0.63rem; color: #555; font-family: 'DM Mono', monospace; letter-spacing: 0.03em; }
    .dev-message-card__subject { font-size: 0.68rem; color: #888; font-style: italic; font-family: 'DM Mono', monospace; }
    .dev-message-card__body { font-size: 0.68rem; color: #aaa; line-height: 1.55; white-space: pre-wrap; font-family: 'DM Mono', monospace; margin-top: 3px; }
    .dev-message-card__time { font-size: 0.58rem; color: #333; font-family: 'DM Mono', monospace; margin-top: 4px; }
    .dev-message-card__delete {
      position: absolute; top: 8px; right: 8px;
      background: none; border: none; color: #333; cursor: pointer;
      font-size: 0.85rem; transition: color 0.15s; padding: 2px; line-height: 1;
    }
    .dev-message-card__delete:hover { color: #ff4444; }
    #dev-messages-list { display: flex; flex-direction: column; gap: 10px; }

    @media (max-width: 860px) {
      .sidebar__auth { gap: 8px; }
    }

    /* ══════════════════════════════════════════
       ARCHITECTURE MAP OVERLAY  (admin only)
    ══════════════════════════════════════════ */
    .arch-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.8);
      z-index: 250;
      display: none;
      align-items: center;
      justify-content: center;
      padding: 24px;
    }
    .arch-overlay.open { display: flex; }

    .arch-modal {
      width: 100%;
      height: 100%;
      max-width: 1700px;
      background: #0F0F0F;
      border: 1px solid #2a2a2a;
      border-radius: 12px;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      box-shadow: 0 24px 70px rgba(0,0,0,0.6);
    }

    .arch-modal__bar {
      height: 46px;
      flex-shrink: 0;
      display: flex;
      align-items: center;
      justify-content: space-between;
      padding: 0 16px;
      background: #161616;
      border-bottom: 1px solid #2a2a2a;
    }

    .arch-modal__title {
      font-family: 'DM Mono', monospace;
      font-size: 0.7rem;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      color: #c792ea;
    }

    .arch-modal__close {
      background: none;
      border: none;
      color: #666;
      font-size: 1.15rem;
      cursor: pointer;
      padding: 4px 8px;
      line-height: 1;
      transition: color 0.2s;
    }
    .arch-modal__close:hover { color: #fff; }

    .arch-modal__frame {
      flex: 1;
      width: 100%;
      border: none;
      background: #0F0F0F;
    }

    @media (max-width: 860px) {
      .arch-overlay { padding: 0; }
      .arch-modal { border-radius: 0; border: none; }
    }

    /* ══════════════════════════════════════════
       DEV OVERLAY
    ══════════════════════════════════════════ */
    .dev-overlay {
      position: fixed;
      inset: 0;
      background: rgba(0, 0, 0, 0.65);
      z-index: 200;
      display: none;
      justify-content: flex-end;
    }
    .dev-overlay.open { display: flex; }

    .dev-panel {
      width: 400px;
      height: 100vh;
      background: #0d0d0d;
      border-left: 1px solid #22c55e44;
      overflow-y: auto;
      padding: 2rem;
      display: flex;
      flex-direction: column;
      gap: 1.8rem;
    }

    .dev-panel__header {
      display: flex;
      justify-content: space-between;
      align-items: flex-start;
    }

    .dev-panel__title {
      font-family: 'Bebas Neue', sans-serif;
      font-size: 2rem;
      color: #22c55e;
      letter-spacing: 0.04em;
      line-height: 1;
    }

    .dev-panel__meta {
      font-family: 'DM Mono', monospace;
      font-size: 0.65rem;
      color: #444;
      text-transform: uppercase;
      letter-spacing: 0.06em;
      margin-top: 4px;
    }

    .dev-panel__close {
      background: none;
      border: none;
      color: #444;
      font-size: 1.3rem;
      cursor: pointer;
      padding: 4px;
      line-height: 1;
      transition: color 0.2s;
    }
    .dev-panel__close:hover { color: #fff; }

    .dev-section { display: flex; flex-direction: column; gap: 0.9rem; }

    .dev-section__label {
      font-family: 'DM Mono', monospace;
      font-size: 0.62rem;
      color: #444;
      text-transform: uppercase;
      letter-spacing: 0.1em;
      border-bottom: 1px solid #1e1e1e;
      padding-bottom: 6px;
    }

    .dev-field { display: flex; flex-direction: column; gap: 5px; }

    .dev-field label {
      font-family: 'DM Mono', monospace;
      font-size: 0.63rem;
      color: #555;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    .dev-field input,
    .dev-field textarea {
      font-family: 'DM Mono', monospace;
      font-size: 0.8rem;
      padding: 9px 12px;
      background: #161616;
      border: 1px solid #252525;
      border-radius: 6px;
      color: #f0f0f0;
      outline: none;
      transition: border-color 0.2s;
    }
    .dev-field input:focus,
    .dev-field textarea:focus { border-color: #22c55e; }
    .dev-field textarea { resize: vertical; min-height: 80px; }

    .dev-save {
      font-family: 'DM Mono', monospace;
      font-size: 0.68rem;
      font-weight: 500;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      padding: 9px 18px;
      background: #22c55e;
      color: #000;
      border: none;
      border-radius: 6px;
      cursor: pointer;
      align-self: flex-start;
      transition: opacity 0.2s;
    }
    .dev-save:hover { opacity: 0.85; }

    .dev-toast {
      position: fixed;
      bottom: 1.5rem;
      right: 1.5rem;
      background: #22c55e;
      color: #000;
      font-family: 'DM Mono', monospace;
      font-size: 0.78rem;
      font-weight: 600;
      letter-spacing: 0.04em;
      padding: 0.6rem 1.2rem;
      border-radius: 8px;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.3s;
      z-index: 300;
    }
    .dev-toast.show { opacity: 1; }

    /* ══════════════════════════════════════════
       ADMIN / CMS ADDITIONS
    ══════════════════════════════════════════ */

    /* Delete button on dynamic cards */
    .card__delete-btn {
      position: absolute;
      top: 8px; right: 8px;
      width: 28px; height: 28px;
      border-radius: 50%;
      border: none;
      background: rgba(0,0,0,0.7);
      color: #fff;
      font-size: 0.72rem;
      cursor: pointer;
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 10;
      transition: background 0.2s;
      line-height: 1;
    }
    .card__delete-btn:hover { background: #e53e3e; }
    .admin-mode .card__delete-btn { display: flex; }

    /* Featured drag-to-reorder (admin mode) */
    .admin-mode .featured-grid .card[draggable="true"] { cursor: grab; }
    .featured-grid .card--dragging {
      opacity: 0.3;
      outline: 2px dashed #22c55e;
      outline-offset: 3px;
    }
    .featured-grid .card--drag-over {
      outline: 2px solid #22c55e;
      outline-offset: 3px;
    }
    /* "Remove from featured" button — tinted differently so it's clear it won't delete the project */
    .card__unfeatured-btn {
      position: absolute;
      top: 8px; right: 8px;
      width: 28px; height: 28px;
      background: rgba(0,0,0,0.55);
      border: none; border-radius: 4px;
      color: #fff; font-size: 0.9rem;
      display: none;
      align-items: center; justify-content: center;
      cursor: pointer; z-index: 10;
      transition: background 0.2s;
      line-height: 1;
    }
    .card__unfeatured-btn:hover { background: #d97706; }
    .admin-mode .card__unfeatured-btn { display: flex; }

    /* Dynamic card image fill */
    .card--dynamic .card__preview img {
      width: 100%; height: 100%; object-fit: cover;
      transition: transform 0.4s ease;
    }
    .card--dynamic:hover .card__preview img { transform: scale(1.06); }

    /* Dev panel extras */
    .dev-field select {
      font-family: 'DM Mono', monospace;
      font-size: 0.8rem;
      padding: 9px 12px;
      background: #161616;
      border: 1px solid #252525;
      border-radius: 6px;
      color: #f0f0f0;
      outline: none;
      transition: border-color 0.2s;
      cursor: pointer;
      width: 100%;
    }
    .dev-field select:focus { border-color: #22c55e; }

    .dev-field input[type="file"] {
      font-family: 'DM Mono', monospace;
      font-size: 0.7rem;
      padding: 8px 0;
      background: none;
      border: none;
      color: #666;
      cursor: pointer;
      width: 100%;
    }

    /* Drop zone for image uploads */
    .dev-drop-zone {
      border: 1.5px dashed #333;
      border-radius: 8px;
      padding: 18px 12px;
      text-align: center;
      cursor: pointer;
      transition: border-color 0.2s, background 0.2s;
      font-family: 'DM Mono', monospace;
      font-size: 0.72rem;
      color: #555;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      min-height: 80px;
      justify-content: center;
    }
    .dev-drop-zone:hover, .dev-drop-zone.drag-over {
      border-color: #22c55e;
      background: rgba(34,197,94,0.05);
      color: #22c55e;
    }
    .dev-drop-zone .dz-preview {
      max-width: 100%; max-height: 130px;
      border-radius: 6px;
      object-fit: cover;
      display: none;
    }
    .dev-drop-zone .dz-preview.show { display: block; }
    .dev-drop-zone .dz-label { font-size: 0.68rem; }
    .dev-drop-zone .dz-clear {
      font-size: 0.6rem; color: #e53e3e;
      background: none; border: none; cursor: pointer;
      font-family: 'DM Mono', monospace;
      padding: 0; margin-top: 4px;
    }

    /* Edit button on cards (admin only) */
    .card__edit-btn {
      position: absolute;
      top: 8px; left: 8px;
      width: 28px; height: 28px;
      border-radius: 50%;
      border: none;
      background: rgba(0,0,0,0.7);
      color: #22c55e;
      font-size: 0.72rem;
      cursor: pointer;
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 10;
      transition: background 0.2s;
    }
    .card__edit-btn:hover { background: rgba(34,197,94,0.4); }
    .admin-mode .card__edit-btn { display: flex; }
    .card--dynamic { cursor: pointer; }

    /* ── Order arrows (admin mode) ── */
    .card__order-controls {
      position: absolute;
      bottom: 8px; left: 50%;
      transform: translateX(-50%);
      display: none;
      align-items: center;
      gap: 4px;
      z-index: 10;
    }
    .admin-mode .card__order-controls { display: flex; }
    .card__order-btn {
      width: 30px; height: 30px;
      border-radius: 50%;
      border: none;
      background: rgba(0,0,0,0.65);
      backdrop-filter: blur(6px);
      color: #fff;
      font-size: 0.8rem;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      transition: background 0.2s, transform 0.15s;
      line-height: 1;
      padding: 0;
    }
    .card__order-btn:hover { background: rgba(34,197,94,0.6); transform: scale(1.12); }
    .card__order-badge {
      font-family: 'DM Mono', monospace;
      font-size: 0.58rem;
      font-weight: 600;
      background: rgba(0,0,0,0.65);
      backdrop-filter: blur(6px);
      color: #fff;
      min-width: 22px; height: 22px;
      border-radius: 11px;
      display: flex;
      align-items: center;
      justify-content: center;
      padding: 0 5px;
    }

    .dev-proj-checkbox {
      display: flex; align-items: center; gap: 8px;
    }
    .dev-proj-checkbox input[type="checkbox"] {
      width: 15px; height: 15px;
      accent-color: #22c55e;
      cursor: pointer;
    }
    .dev-proj-checkbox span {
      font-family: 'DM Mono', monospace;
      font-size: 0.7rem;
      color: #666;
      text-transform: uppercase;
      letter-spacing: 0.06em;
    }

    #dev-proj-img-preview {
      margin-top: 8px;
      border-radius: 6px;
      overflow: hidden;
      max-height: 110px;
    }
    #dev-proj-img-preview img {
      width: 100%; object-fit: cover; border-radius: 6px;
    }

    .dev-firebase-status {
      font-family: 'DM Mono', monospace;
      font-size: 0.58rem;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      padding: 3px 8px;
      border-radius: 4px;
      display: inline-block;
      margin-top: 2px;
      margin-bottom: 6px;
    }
    .dev-firebase-status.connected    { background: #22c55e22; color: #22c55e; }
    .dev-firebase-status.disconnected { background: #ff444422; color: #ff6666; }

    /* ══════════════════════════════════════════
       CUSTOM CURSOR  (desktop / pointer devices only)
    ══════════════════════════════════════════ */
    @media (hover: hover) and (pointer: fine) {
      *, *::before, *::after { cursor: none !important; }

      #cursor-dot {
        position: fixed;
        top: 0; left: 0;
        width: 7px; height: 7px;
        background: #fff;
        border-radius: 50%;
        pointer-events: none;
        z-index: 99999;
        mix-blend-mode: difference;
        transform: translate(-50%, -50%);
        transition: width 0.18s ease, height 0.18s ease;
        will-change: left, top;
      }

      #cursor-ring {
        position: fixed;
        top: 0; left: 0;
        width: 34px; height: 34px;
        border: 1.5px solid #fff;
        border-radius: 50%;
        pointer-events: none;
        z-index: 99998;
        mix-blend-mode: difference;
        transform: translate(-50%, -50%);
        transition: width 0.22s ease, height 0.22s ease, border-color 0.22s ease;
        will-change: left, top;
      }

      #cursor-dot.cursor--hover  { width: 10px; height: 10px; }
      #cursor-ring.cursor--hover { width: 52px; height: 52px; }
    }
