/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: May 24 2026 | 03:11:20 */
 /* ── RESET ──────────────────────────────────── */
    *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

    html, body {
      height: 100%;
      -webkit-font-smoothing: antialiased;
      overflow-x: hidden;
    }

    body {
      font-family: 'DM Sans', sans-serif;
      background: #0E0D1A;
    }

    /* ────────────────────────────────────────────
       HERO SECTION
    ──────────────────────────────────────────── */
    .hero {
      min-height: 100vh;
      background: #3D2A8C;
      display: flex;
      align-items: center;
    }

    .hero-inner {
      /* 1090px container, 64px margins each side */
      width: min(1090px, 100% - 128px);
      margin: 0 auto;
      padding: 64px 0;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 24px;
      align-items: stretch;
    }

    /* ────────────────────────────────────────────
       LEFT COLUMN
    ──────────────────────────────────────────── */
    .col-left {
      display: flex;
      flex-direction: column;
      min-width: 0;
    }

    /* "Hello" — large greeting, light weight */
    .greeting {
      font-family: 'DM Sans', sans-serif;
      font-size: 48px;
      font-weight: 300;
      line-height: 1.10;
      color: #C9B6F5;
      margin-bottom: 4px;
    }

    /* Name + photo on the same row */
    .name-row {
      display: flex;
      align-items: flex-start;
      justify-content: space-between;
      gap: 24px;
      margin-bottom: 16px;
    }

    .name-group {
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    /* H1 — Trebuchet MS 50px */
    .name {
      font-family: 'Trebuchet MS', 'Lucida Grande', sans-serif;
      font-size: 50px;
      font-weight: 700;
      line-height: 1.10;
      letter-spacing: -0.025em;
      color: #FFFFFF;
    }

    /* H5 — Trebuchet MS 20px */
    .job-title {
      font-family: 'Trebuchet MS', 'Lucida Grande', sans-serif;
      font-size: 20px;
      font-weight: 700;
      line-height: 1.35;
      letter-spacing: -0.005em;
      color: #C9B6F5;
    }

    .photo-circle {
      width: 88px;
      height: 88px;
      border-radius: 9999px;
      overflow: hidden;
      border: 2px solid rgba(201, 182, 245, 0.28);
      flex-shrink: 0;
    }

    .photo-circle img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center 15%;
    }

    /* Body text block */
    .body-block {
      display: flex;
      flex-direction: column;
      gap: 4px;
    }

    .body-lead {
      font-family: 'DM Sans', sans-serif;
      font-size: 16px;
      font-weight: 500;
      line-height: 1.50;
      color: #FFFFFF;
    }

    .body-copy {
      font-family: 'DM Sans', sans-serif;
      font-size: 16px;
      font-weight: 400;
      line-height: 1.65;
      color: rgba(226, 217, 255, 0.70);
      text-wrap: pretty;
    }

    /* Small gap between body text and button */
    .col-left-spacer {
      height: 20px;
    }

    /* Button: 28px h · 12px label · 4px radius */
    .cta-btn {
      display: inline-flex;
      align-items: center;
      height: 28px;
      padding: 0 16px;
      background: #FFFFFF;
      color: #2B1C6A;
      border: none;
      border-radius: 4px;
      font-family: 'DM Sans', sans-serif;
      font-size: 14px;
      font-weight: 600;
      letter-spacing: 0.01em;
      cursor: pointer;
      text-decoration: none;
      align-self: flex-start;
      transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
    }

    .cta-btn:hover {
      background: #F2EFFF;
      transform: translateY(-1px);
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18);
    }

    /* ────────────────────────────────────────────
       RIGHT COLUMN
    ──────────────────────────────────────────── */
    .col-right {
      display: flex;
      flex-direction: column;
      gap: 12px;
      min-width: 0;
    }

    /* ── White card ──────────────────────────── */
    .project-card {
      flex: 1;
      background: #FFFFFF;
      border-radius: 16px;
      padding: 32px;
      display: flex;
      flex-direction: column;
      min-height: 320px;
      min-width: 0;
      overflow: hidden;
    }

    /* ── Terminal window ─────────────────────── */
    .terminal-window {
      height: 196px;
      flex-shrink: 0;
      overflow: hidden;
      position: relative;
    }

    .terminal-window::-webkit-scrollbar { display: none; }

    /* Top-fade: text dissolves as it scrolls past the top */
    .terminal-window::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 56px;
      background: linear-gradient(to bottom, rgba(255,255,255,0.96) 0%, rgba(255,255,255,0) 100%);
      z-index: 2;
      pointer-events: none;
    }

    .terminal-inner {
      display: flex;
      flex-direction: column;
      transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    }

    .term-line {
      font-family: 'JetBrains Mono', 'Courier New', monospace;
      font-size: 13px;
      line-height: 1.70;
      white-space: pre-wrap;
      word-break: break-word;
    }

    .term-prompt {
      color: #2B1C6A;
      font-weight: 600;
    }

    .term-output {
      color: #4E3DAA;
      font-weight: 400;
    }

    /* Nathan row */
    .nathan-row {
      display: flex;
      align-items: center;
      gap: 12px;
      padding-top: 16px;
      border-top: 1px solid rgba(61, 42, 140, 0.10);
      margin-top: auto;
    }

    .nathan-img {
      flex-shrink: 0;
    }

    .nathan-speech {
      font-family: 'JetBrains Mono', 'Courier New', monospace;
      font-size: 12px;
      font-weight: 400;
      color: #4E3DAA;
    }

    .blink-cursor {
      display: inline-block;
      width: 2px;
      height: 12px;
      vertical-align: middle;
      margin-left: 2px;
      background: #8470D5;
      animation: blink 1.1s step-end infinite;
    }

    @keyframes blink {
      0%, 100% { opacity: 1; }
      50%       { opacity: 0; }
    }

    /* ── Chips ───────────────────────────────── */
    .chips-row {
      display: flex;
      gap: 8px;
      flex-wrap: wrap;
    }

    .chip {
      display: inline-flex;
      align-items: center;
      padding: 4px 10px;
      border-radius: 4px;
      font-family: 'DM Sans', sans-serif;
      font-size: 11px;
      font-weight: 600;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      white-space: nowrap;
    }

    .chip-claude { background: #FFE0C0; color: #6B3A10; }
    .chip-cursor { background: #C4EDD4; color: #1E6040; }
    .chip-figma  { background: #FFCCD6; color: #6B1830; }
    .chip-vscode { background: #C4D8FF; color: #1E3870; }

    /* ────────────────────────────────────────────
       RESPONSIVE  —  scales down from the 1440 / 1090 / 64 / 24 spec
    ──────────────────────────────────────────── */

    /* Small laptop / large tablet — tighter margins, slightly smaller type */
    @media (max-width: 1024px) {
      .hero-inner {
        width: min(1090px, 100% - 80px); /* 40px margin each side */
        padding: 56px 0;
      }

      .greeting { font-size: 42px; }
      .name     { font-size: 44px; }
    }

    /* Tablet & mobile — collapse to single column */
    @media (max-width: 900px) {
      .hero {
        min-height: auto;
        padding: 48px 0;
      }

      .hero-inner {
        grid-template-columns: 1fr;
        gap: 32px;
        width: min(1090px, 100% - 48px); /* 24px margin each side */
        padding: 0;
      }

      .greeting       { font-size: 36px; }
      .name           { font-size: 38px; }
      .job-title      { font-size: 18px; }
      .body-lead,
      .body-copy      { font-size: 15px; }

      .name-row       { gap: 16px; }
      .photo-circle   { width: 72px; height: 72px; }

      .project-card   {
        padding: 24px;
        min-height: auto;
      }

      .col-left-spacer { height: 16px; }

      /* CTA — larger touch target on mobile */
      .cta-btn {
        height: 40px;
        padding: 0 20px;
        font-size: 15px;
      }
    }

    /* Small phone */
    @media (max-width: 480px) {
      .hero-inner {
        width: min(1090px, 100% - 32px); /* 16px margin each side */
      }

      .greeting       { font-size: 30px; }
      .name           { font-size: 32px; letter-spacing: -0.02em; }
      .photo-circle   { width: 60px; height: 60px; }
      .project-card   { padding: 20px; }
      .terminal-window { height: 156px; }

      .term-line      { font-size: 11px; }
      .nathan-speech  { font-size: 11px; }
    }

