<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Mortgage Options | Executive Summary</title>

  <style>

    :root {

      --bg: #f8fafc;

      --card-bg: #ffffff;

      --text-main: #0f172a;

      --text-sub: #475569;

      --border: #cbd5e1;

      --border-light: #e2e8f0;

      --primary: #1e40af;

      --primary-light: #eff6ff;

      --green-bg: #f0fdf4;

      --green-text: #166534;

      --shadow: 0 4px 12px rgba(15, 23, 42, 0.05);

    }


    * { box-sizing: border-box; margin: 0; padding: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; }

    body { background: var(--bg); color: var(--text-main); min-height: 100vh; padding: 2rem 1rem; display: flex; flex-direction: column; align-items: center; }


    .header-bar { width: 100%; max-width: 1200px; display: flex; justify-content: space-between; align-items: center; margin-bottom: 1rem; flex-wrap: wrap; gap: 1rem; }

    .title { font-size: 1.5rem; font-weight: 700; color: var(--text-main); }

    .subtitle { font-size: 0.875rem; color: var(--text-sub); }


    .controls { display: flex; gap: 0.5rem; align-items: center; }

    select, button { background: var(--card-bg); color: var(--text-main); border: 1px solid var(--border); padding: 0.6rem 1rem; border-radius: 6px; font-weight: 600; cursor: pointer; transition: all 0.2s ease; }

    select:hover, button:hover { background: #f1f5f9; }

    button.btn-next { background: var(--primary); color: #ffffff; border-color: var(--primary); }

    button.btn-next:hover { background: #1d4ed8; }


    .nav-tip { width: 100%; max-width: 1200px; background: var(--primary-light); border: 1px solid #bfdbfe; color: #1e3a8a; padding: 0.75rem 1rem; border-radius: 8px; font-size: 0.875rem; margin-bottom: 1.5rem; display: flex; justify-content: space-between; align-items: center; }

    kbd { background: #ffffff; border: 1px solid #93c5fd; padding: 0.15rem 0.4rem; border-radius: 4px; font-weight: 700; font-size: 0.75rem; }


    .table-container { width: 100%; max-width: 1200px; background: var(--card-bg); border-radius: 12px; border: 1px solid var(--border-light); box-shadow: var(--shadow); overflow-x: auto; }

    table { width: 100%; border-collapse: collapse; text-align: left; }

    th, td { padding: 1rem 1.25rem; border-bottom: 1px solid var(--border-light); }

    th { background: #f8fafc; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--text-sub); font-weight: 700; }


    /* Columns reveal effect */

    .opt-col { opacity: 0; transform: translateY(6px); transition: all 0.3s ease; pointer-events: none; }

    .opt-col.revealed { opacity: 1; transform: translateY(0); pointer-events: auto; }


    /* Financial row styling */

    tr.highlight-rate { background: #f8fafc; font-weight: 600; }

    tr.highlight-total { background: var(--primary-light); font-weight: 700; }

    tr.highlight-total td { color: var(--primary); font-size: 1.05rem; }

    tr.highlight-points { background: var(--green-bg); font-weight: 600; }

    tr.highlight-points td { color: var(--green-text); }

  </style>

</head>

<body>


  <div class="header-bar">

    <div>

      <div class="title">Mortgage Financing Options</div>

      <div class="subtitle">Monterey Bay Mortgage | Prepared for Fessler</div>

    </div>

    <div class="controls">

      <select id="priceSelect" onchange="changeTab()">

        <option value="$2.0M">$2.0M Purchase Price</option>

        <option value="$1.8M">$1.8M Purchase Price</option>

        <option value="$1.6M">$1.6M Purchase Price</option>

        <option value="$2.2M">$2.2M Purchase Price</option>

      </select>

      <button onclick="revealPrev()">Back</button>

      <button class="btn-next" onclick="revealNext()">Next Option <kbd>Space</kbd></button>

      <button onclick="resetReveal()">Reset</button>

    </div>

  </div>


  <div class="nav-tip">

    <span>Press <kbd>Spacebar</kbd> or <kbd>→</kbd> to reveal options one at a time. Press <kbd>←</kbd> to step back.</span>

    <span id="counter" style="font-weight: 700;">Option 1 of 5</span>

  </div>


  <div class="table-container">

    <table id="mainTable"></table>

  </div>


  <script>

    // Embedded exact values directly from your Google Sheet

    const PRESENTATION_DATA = {

      "$2.0M": [

        ["Loan Structure", "Option 1 (Fixed 30)", "Option 2 (Fixed 30)", "Option 3 (ARM 10/6)", "Option 4 (ARM 7/6)", "Option 5 (Fixed 30)"],

        ["Sales Price", "$2,000,000", "$2,000,000", "$2,000,000", "$2,000,000", "$2,000,000"],

        ["Loan Amount", "$1,600,000", "$1,500,000", "$1,600,000", "$1,600,000", "$1,200,000"],

        ["Down Payment", "$400,000 (20%)", "$500,000 (25%)", "$400,000 (20%)", "$400,000 (20%)", "$800,000 (40%)"],

        ["Interest Rate", "7.375%", "7.375%", "6.875%", "6.750%", "7.000%"],

        ["APR", "7.503%", "7.501%", "6.947%", "6.896%", "7.000%"],

        ["Mortgage Pmt", "$11,051", "$10,360", "$10,511", "$10,378", "$7,984"],

        ["Property Tax", "$2,083", "$2,083", "$2,083", "$2,083", "$2,083"],

        ["Home Insurance", "$333", "$333", "$333", "$333", "$333"],

        ["Total Payment", "$13,467", "$12,777", "$12,928", "$12,794", "$10,400"],

        ["Discount Points (%)", "0.73%", "0.67%", "0.09%", "1.03%", "1.03%"],

        ["Discount Points ($)", "$11,648", "$10,045", "$1,472", "$16,512", "$12,384"]

      ],

      "$1.8M": [

        ["Loan Structure", "Option 1 (Fixed 30)", "Option 2 (Fixed 30)", "Option 3 (ARM 10/6)", "Option 4 (ARM 7/6)", "Option 5 (Fixed 30)"],

        ["Sales Price", "$1,800,000", "$1,800,000", "$1,800,000", "$1,800,000", "$1,800,000"],

        ["Loan Amount", "$1,440,000", "$1,350,000", "$1,440,000", "$1,440,000", "$1,080,000"],

        ["Down Payment", "$360,000", "$450,000", "$360,000", "$360,000", "$720,000"],

        ["Interest Rate", "7.375%", "7.375%", "6.875%", "6.750%", "7.000%"],

        ["APR", "7.518%", "7.515%", "6.955%", "6.912%", "7.000%"],

        ["Mortgage Pmt", "$9,946", "$9,324", "$9,460", "$9,340", "$7,185"],

        ["Property Tax", "$1,875", "$1,875", "$1,875", "$1,875", "$1,875"],

        ["Home Insurance", "$300", "$300", "$300", "$300", "$300"],

        ["Total Payment", "$12,121", "$11,499", "$11,635", "$11,515", "$9,360"],

        ["Discount Points (%)", "0.80%", "0.74%", "0.16%", "1.10%", "1.10%"],

        ["Discount Points ($)", "$11,483", "$10,040", "$2,325", "$15,861", "$11,896"]

      ],

      "$1.6M": [

        ["Loan Structure", "Option 1 (Fixed 30)", "Option 2 (Fixed 30)", "Option 3 (ARM 10/6)", "Option 4 (ARM 7/6)", "Option 5 (Fixed 30)"],

        ["Sales Price", "$1,600,000", "$1,600,000", "$1,600,000", "$1,600,000", "$1,600,000"],

        ["Loan Amount", "$1,280,000", "$1,200,000", "$1,280,000", "$1,280,000", "$960,000"],

        ["Down Payment", "$320,000", "$400,000", "$320,000", "$320,000", "$640,000"],

        ["Interest Rate", "7.375%", "7.375%", "6.875%", "6.750%", "7.000%"],

        ["APR", "7.536%", "7.533%", "6.965%", "6.932%", "7.000%"],

        ["Mortgage Pmt", "$8,841", "$8,288", "$8,409", "$8,302", "$6,387"],

        ["Property Tax", "$1,667", "$1,667", "$1,667", "$1,667", "$1,667"],

        ["Home Insurance", "$267", "$267", "$267", "$267", "$267"],

        ["Total Payment", "$10,774", "$10,221", "$10,342", "$10,235", "$8,320"],

        ["Discount Points (%)", "0.88%", "0.84%", "0.25%", "1.19%", "1.19%"],

        ["Discount Points ($)", "$11,318", "$10,036", "$3,178", "$15,210", "$11,407"]

      ],

      "$2.2M": [

        ["Loan Structure", "Option 1 (Fixed 30)", "Option 2 (Fixed 30)", "Option 3 (ARM 10/6)", "Option 4 (ARM 7/6)", "Option 5 (Fixed 30)"],

        ["Sales Price", "$2,200,000", "$2,200,000", "$2,200,000", "$2,200,000", "$2,200,000"],

        ["Loan Amount", "$1,760,000", "$1,650,000", "$1,760,000", "$1,760,000", "$1,320,000"],

        ["Down Payment", "$440,000", "$550,000", "$440,000", "$440,000", "$880,000"],

        ["Interest Rate", "7.375%", "7.375%", "6.875%", "6.750%", "7.000%"],

        ["APR", "7.492%", "7.490%", "6.940%", "6.882%", "7.000%"],

        ["Mortgage Pmt", "$12,156", "$11,396", "$11,562", "$11,415", "$8,782"],

        ["Property Tax", "$2,292", "$2,292", "$2,292", "$2,292", "$2,292"],

        ["Home Insurance", "$367", "$367", "$367", "$367", "$367"],

        ["Total Payment", "$14,814", "$14,054", "$14,220", "$14,074", "$11,440"],

        ["Discount Points (%)", "0.67%", "0.61%", "0.04%", "0.98%", "0.98%"],

        ["Discount Points ($)", "$11,813", "$10,049", "$619", "$17,163", "$12,872"]

      ]

    };


    let currentStep = 1;

    const maxSteps = 5;


    function renderTable() {

      const selectedKey = document.getElementById('priceSelect').value;

      const rows = PRESENTATION_DATA[selectedKey];

      const table = document.getElementById('mainTable');

      table.innerHTML = '';


      rows.forEach((row, rowIndex) => {

        const tr = document.createElement('tr');

        const label = row[0];


        if (label === 'Total Payment') tr.className = 'highlight-total';

        else if (label === 'Interest Rate') tr.className = 'highlight-rate';

        else if (label === 'Discount Points ($)') tr.className = 'highlight-points';


        row.forEach((cellText, colIndex) => {

          const cell = rowIndex === 0 ? document.createElement('th') : document.createElement('td');

          cell.innerText = cellText;


          if (colIndex > 0) {

            cell.classList.add('opt-col', `col-${colIndex}`);

          }


          tr.appendChild(cell);

        });


        table.appendChild(tr);

      });


      updateVisibility();

    }


    function changeTab() {

      currentStep = 1;

      renderTable();

    }


    function revealNext() {

      if (currentStep < maxSteps) {

        currentStep++;

        updateVisibility();

      }

    }


    function revealPrev() {

      if (currentStep > 1) {

        currentStep--;

        updateVisibility();

      }

    }


    function resetReveal() {

      currentStep = 1;

      updateVisibility();

    }


    function updateVisibility() {

      for (let i = 1; i <= maxSteps; i++) {

        const cols = document.querySelectorAll(`.col-${i}`);

        cols.forEach(col => {

          if (i <= currentStep) col.classList.add('revealed');

          else col.classList.remove('revealed');

        });

      }

      document.getElementById('counter').innerText = `Option 1 to ${currentStep} of ${maxSteps}`;

    }


    document.addEventListener('keydown', (e) => {

      if (e.code === 'Space' || e.code === 'ArrowRight') {

        e.preventDefault();

        revealNext();

      } else if (e.code === 'ArrowLeft') {

        e.preventDefault();

        revealPrev();

      }

    });


    // Render immediately on boot

    renderTable();

  </script>

</body>

</html>