<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>{{ page.title | default: site.title }}</title>
  <meta name="description" content="{{ site.description }}">
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=DM+Mono:wght@400;500&display=swap" rel="stylesheet">
  <link rel="stylesheet" href="{{ site.baseurl }}/assets/css/base.css">
  {% if page.page_css %}<link rel="stylesheet" href="{{ site.baseurl }}/assets/css/{{ page.page_css }}.css">{% endif %}
  <style>
    /* ===== NAV ===== */
    #main-nav {
      position: fixed;
      top: 0; left: 0; right: 0;
      z-index: 200;
      height: var(--nav-h);
      display: flex;
      align-items: center;
      padding: 0 32px;
      background: rgba(7, 9, 15, 0.92);
      backdrop-filter: blur(16px);
      -webkit-backdrop-filter: blur(16px);
      border-bottom: 1px solid var(--border);
    }

    /* ===== PAGE HEADER ===== */
    .page-header {
      margin-top: var(--nav-h);
      padding: 56px 32px 52px;
      background: var(--surface);
      border-bottom: 1px solid var(--border);
      position: relative;
      overflow: hidden;
    }
    .page-header::before {
      content: '';
      position: absolute;
      inset: 0;
      background-image:
        linear-gradient(rgba(249,115,22,0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(249,115,22,0.06) 1px, transparent 1px);
      background-size: 40px 40px;
      mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
      -webkit-mask-image: linear-gradient(to right, transparent, black 20%, black 80%, transparent);
    }
    .page-header-inner {
      position: relative;
      max-width: 860px;
      margin: 0 auto;
    }
    .page-breadcrumb {
      font-family: "DM Mono", monospace;
      font-size: 11px;
      letter-spacing: 2.5px;
      text-transform: uppercase;
      color: var(--accent);
      margin-bottom: 12px;
    }
    .page-header h1 {
      font-family: "DM Sans", sans-serif;
      font-weight: 800;
      font-size: clamp(28px, 5vw, 44px);
      letter-spacing: -1.5px;
      color: var(--text);
      line-height: 1.1;
    }

    /* ===== PAGE CONTENT ===== */
    .page-main {
      max-width: 860px;
      margin: 0 auto;
      padding: 56px 32px 100px;
    }

    /* hide redundant H1 from markdown (it's in the page header) */
    .page-main > h1:first-child { display: none; }

    .page-main h2 {
      font-family: "DM Sans", sans-serif;
      font-weight: 800;
      font-size: 22px;
      color: var(--text);
      margin: 56px 0 16px;
      letter-spacing: -0.4px;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--border);
    }
    .page-main h3 {
      font-family: "DM Sans", sans-serif;
      font-weight: 700;
      font-size: 17px;
      color: var(--text);
      margin: 32px 0 10px;
    }

    .page-main p { color: var(--text-muted); margin: 0 0 16px; line-height: 1.8; }
    .page-main strong { color: var(--text); font-weight: 600; }
    .page-main em { font-style: italic; color: var(--text-muted); }

    .page-main a { color: var(--accent); text-decoration: none; }
    .page-main a:hover { text-decoration: underline; }

    .page-main ul, .page-main ol {
      margin: 0 0 20px 0;
      padding: 0;
      list-style: none;
    }
    .page-main li {
      color: var(--text-muted);
      padding: 5px 0 5px 22px;
      position: relative;
    }
    .page-main li::before {
      content: '→';
      position: absolute;
      left: 0;
      color: var(--accent);
      font-family: "DM Mono", monospace;
      font-size: 12px;
    }

    /* Schedule table */
    .page-main table {
      width: 100%;
      border-collapse: collapse;
      margin: 20px 0 32px;
      font-size: 14px;
    }
    .page-main thead th {
      background: var(--surface-2);
      color: var(--text-muted);
      font-family: "DM Mono", monospace;
      font-size: 11px;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      padding: 10px 16px;
      text-align: left;
      border-bottom: 1px solid var(--border);
    }
    .page-main tbody tr {
      border-bottom: 1px solid rgba(28,42,58,0.6);
      transition: background 0.15s;
    }
    .page-main tbody tr:hover { background: var(--surface-2); }
    .page-main td {
      padding: 12px 16px;
      color: var(--text-muted);
      vertical-align: top;
    }
    .page-main td:first-child {
      font-family: "DM Mono", monospace;
      font-size: 13px;
      color: var(--accent);
      white-space: nowrap;
      width: 90px;
    }
    .page-main td a { color: var(--text); font-weight: 500; }
    .page-main td a:hover { color: var(--accent); text-decoration: none; }
    .page-main td em { color: var(--text-dim); }

    /* Blockquote as callout */
    .page-main blockquote {
      margin: 20px 0;
      padding: 16px 20px;
      background: var(--surface-2);
      border-left: 3px solid var(--accent);
      border-radius: 0 6px 6px 0;
    }
    .page-main blockquote p {
      color: var(--text-muted);
      margin: 0;
      font-style: italic;
    }

    code {
      font-family: "DM Mono", monospace;
      font-size: 13px;
      background: var(--surface-2);
      color: var(--accent);
      padding: 2px 6px;
      border-radius: 4px;
    }
    pre {
      background: var(--surface-2);
      border: 1px solid var(--border);
      padding: 20px;
      border-radius: 8px;
      overflow-x: auto;
      margin: 16px 0;
    }
    pre code { background: none; padding: 0; color: var(--text-muted); }

    hr { border: none; border-top: 1px solid var(--border); margin: 40px 0; }

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

    /* ===== RESPONSIVE ===== */
    @media (max-width: 680px) {
      .page-header { padding: 40px 20px 36px; }
      .page-main { padding: 36px 20px 80px; }
      .page-main table { font-size: 13px; }
      .page-main td:first-child { width: 70px; }
    }
  </style>
</head>
<body>

  {% include nav.html %}

  <div class="page-header">
    <div class="page-header-inner">
      <div class="page-breadcrumb">GUS 2026</div>
      <h1>{{ page.title | remove: 'Gerrit User Summit 2026 - ' | remove: 'Gerrit User Summit 2026' }}</h1>
    </div>
  </div>

  <main class="page-main">
    {{ content }}
  </main>

  <footer>
    <div class="footer-brand">Gerrit User Summit <span>2026</span></div>
    <div class="footer-links">
      <a href="https://www.gerritcodereview.com">gerritcodereview.com</a>
      <a href="https://policies.google.com/privacy" target="_blank" rel="noopener">Privacy</a>
      <a href="https://policies.google.com/terms" target="_blank" rel="noopener">Terms</a>
    </div>
  </footer>

  <script>
    // ── Mobile hamburger ─────────────────────────────────────
    const hamburger = document.getElementById('nav-hamburger');
    const mobileMenu = document.getElementById('nav-mobile-menu');
    if (hamburger) {
      hamburger.addEventListener('click', () => mobileMenu.classList.toggle('open'));
    }

    // ── Scroll reveal ────────────────────────────────────────
    const observer = new IntersectionObserver((entries) => {
      entries.forEach(e => {
        if (e.isIntersecting) {
          e.target.classList.add('visible');
          observer.unobserve(e.target);
        }
      });
    }, { threshold: 0.06, rootMargin: '0px 0px -30px 0px' });

    const pageMain = document.querySelector('.page-main');
    if (pageMain) {
      const children = Array.from(pageMain.childNodes);
      let wrap = null;
      children.forEach(node => {
        if (node.nodeType === 1 && (node.tagName === 'H2' || node.tagName === 'H3')) {
          wrap = document.createElement('div');
          wrap.className = 'reveal-wrap';
          node.parentNode.insertBefore(wrap, node);
        }
        if (wrap) wrap.appendChild(node);
      });
      document.querySelectorAll('.reveal-wrap').forEach(el => observer.observe(el));
    }
  </script>

</body>
</html>
