:root{
    --bg:#ffffff;
    --bg-2:#f4f4f4;
    --ink:#111111;
    --gray:#5a5a5a;
    --line:#e2e2e2;
    --red:#c8102e;
  }
  *{box-sizing:border-box;}
  body{
    margin:0;
    font-family:'Barlow',Arial,sans-serif;
    color:var(--ink);
    background:var(--bg);
    line-height:1.55;
  }
  h1,h2,h3{ margin:0 0 12px; font-weight:800; }
  p{ margin:0 0 14px; }
  a{ color:var(--red); }
  img{ max-width:100%; display:block; }
  .wrap{ max-width:1080px; margin:0 auto; padding:0 20px; }
  a:focus-visible, button:focus-visible{ outline:2px solid var(--red); outline-offset:2px; }
  @media (prefers-reduced-motion: reduce){ *{ transition:none !important; } }

  /* header */
  header{ border-bottom:3px solid var(--red); background:var(--bg); }
  .nav{ display:flex; align-items:center; justify-content:space-between; padding:16px 20px; max-width:1080px; margin:0 auto; }
  .brand{ font-weight:800; font-size:26px; text-decoration:none; color:var(--ink); letter-spacing:-0.02em; display:flex; align-items:center; gap:8px; }
  .brand-logo{ width:34px; height:34px; }
  .brand span{ color:var(--red); }
  nav.links{ display:flex; gap:22px; }
  nav.links a{ text-decoration:none; color:var(--ink); font-weight:600; font-size:15px; }
  nav.links a:hover{ color:var(--red); }
  .menu-btn{ display:none; background:none; border:1px solid var(--ink); padding:7px 10px; }
  .menu-btn span{ display:block; width:18px; height:2px; background:var(--ink); margin:3px 0; }
  @media (max-width:720px){
    header{ position:relative; z-index:100; }
    nav.links{ position:absolute; top:100%; left:0; right:0; background:var(--bg); border-bottom:1px solid var(--line); flex-direction:column; gap:0; display:none; z-index:100; }
    nav.links.open{ display:flex; }
    nav.links a{ padding:14px 20px; border-top:1px solid var(--line); }
    .menu-btn{ display:block; }
    .hero{ padding:60px 0 50px; }
    .hero .btn{ display:block; margin:8px auto; max-width:280px; }
    .hero-credit{ position:relative; bottom:auto; right:auto; margin-top:20px; text-align:center; }
  }

  /* hero */
  .hero{
    background:
      linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)),
      url('photos/grid-19.jpg') center 35%/cover no-repeat;
    color:#fff; padding:100px 0 80px; text-align:center;
    position:relative;
  }
  .hero-credit{
    position:absolute; bottom:10px; right:16px;
    font-size:12px; color:rgba(255,255,255,0.75);
  }
  .hero-credit a{ color:#fff; }
  .hero-watermark{
    position:absolute; top:16px; left:16px;
    width:48px; height:48px; opacity:0.55;
  }
  .heading-logo{
    width:1em; height:1em; vertical-align:-0.12em; margin-right:10px;
  }
  .hero h1{ font-size:clamp(40px,8vw,72px); color:#fff; margin-bottom:14px; }
  .hero p{ max-width:600px; margin:0 auto 26px; color:#cfcfcf; font-size:18px; }
  .btn{ display:inline-block; padding:12px 24px; background:var(--red); color:#fff; text-decoration:none; font-weight:700; margin:6px; }
  .btn:hover{ background:#a30d25; }
  .btn.outline{ background:transparent; border:2px solid #fff; color:#fff; }
  .btn.outline:hover{ background:#fff; color:var(--ink); }

  section{ padding:56px 0; border-bottom:1px solid var(--line); }
  section h2{ font-size:30px; margin-bottom:24px; }

  /* about — short stacked statements, like spece46 */
  .statement{ font-size:19px; max-width:760px; padding:14px 0; border-top:1px solid var(--line); }
  .statement:first-child{ border-top:none; }
  .statement b{ color:var(--red); }

  /* tables */
  table{ width:100%; border-collapse:collapse; }
  th{ text-align:left; padding:10px; border-bottom:2px solid var(--ink); font-size:14px; text-transform:uppercase; }
  td{ padding:14px 10px; border-bottom:1px solid var(--line); font-size:16px; }
  tr:hover td{ background:var(--bg-2); }
  .row1 td{ background:#fdf1f2; font-weight:700; }

  /* rules */
  .rules-list{ list-style:none; padding:0; max-width:760px; }
  .rules-list li{ padding:12px 0; border-top:1px solid var(--line); font-size:16px; }
  .rules-list li:first-child{ border-top:none; }
  .rules-note{ margin-top:24px; padding:16px 18px; background:var(--bg-2); font-size:15px; }

  /* photos */
  .photo-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:8px; }
  @media (max-width:700px){ .photo-grid{ grid-template-columns:repeat(2,1fr); } }
  .photo-tile{ aspect-ratio:4/3; background:var(--bg-2); border:1px solid var(--line); overflow:hidden; position:relative; cursor:pointer; }
  .photo-tile img{ width:100%; height:100%; object-fit:cover; display:block; }
  .photo-credit-tag{
    position:absolute; bottom:6px; right:6px;
    background:rgba(0,0,0,0.55); color:#fff;
    font-size:11px; padding:3px 7px; border-radius:2px;
  }
  .photo-credit{ margin-top:14px; font-size:13px; color:var(--gray); }
  .photo-credit a{ font-weight:600; }

  /* lightbox */
  .lightbox{
    display:none; position:fixed; inset:0; z-index:1000;
    background:rgba(0,0,0,0.9);
    align-items:center; justify-content:center;
  }
  .lightbox.open{ display:flex; }
  .lightbox-img-wrap{
    position:relative; max-width:92vw; max-height:88vh;
    display:flex; flex-direction:column; align-items:center;
  }
  .lightbox img{
    max-width:92vw; max-height:80vh; width:auto; height:auto;
    display:block; box-shadow:0 10px 40px rgba(0,0,0,0.5);
  }
  .lightbox-credit{ color:#eee; font-size:13px; margin-top:12px; }
  .lightbox-credit a{ color:#fff; }
  .lightbox-close{
    position:absolute; top:-44px; right:0;
    background:none; border:none; color:#fff; font-size:32px;
    line-height:1; cursor:pointer; padding:6px 10px;
  }
  .lightbox-nav{
    position:absolute; top:50%; transform:translateY(-50%);
    background:rgba(255,255,255,0.12); border:none; color:#fff;
    font-size:28px; width:52px; height:52px; border-radius:50%;
    cursor:pointer; display:flex; align-items:center; justify-content:center;
  }
  .lightbox-nav:hover{ background:rgba(255,255,255,0.25); }
  .lightbox-prev{ left:-64px; }
  .lightbox-next{ right:-64px; }
  @media (max-width:820px){
    .lightbox-prev{ left:6px; }
    .lightbox-next{ right:6px; }
    .lightbox-close{ top:-40px; right:6px; }
  }

  /* video embed */
  .video-embed{ position:relative; width:100%; max-width:760px; aspect-ratio:16/9; margin-top:8px; }
  .video-embed iframe{ position:absolute; top:0; left:0; width:100%; height:100%; border:0; }
  .pdf-embed{ width:100%; height:800px; border:1px solid var(--line); margin:20px 0; }

  /* footer */
  footer{ background:var(--bg-2); padding:40px 0; }
  .foot-grid{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:20px; }
  .foot-links{ list-style:none; padding:0; margin:0; display:flex; gap:18px; flex-wrap:wrap; }
  .foot-links a{ text-decoration:none; color:var(--ink); font-weight:600; }
  .foot-bottom{ margin-top:24px; font-size:13px; color:var(--gray); }

/* Share controls stay visible and usable on touch screens. */
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:24px}
.section-heading h2{margin-bottom:0}
.share-control{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.copy-link{border:1px solid var(--line);background:var(--bg);color:var(--red);padding:8px 12px;font:inherit;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}
.copy-link:hover{background:var(--bg-2)}
.copy-status{font-size:12px;color:var(--gray);overflow-wrap:anywhere}
.copy-status input{display:block;width:min(100%,440px);max-width:100%;font:inherit;padding:6px}
#buildModalContent>.share-control{padding:18px 72px 18px 28px;border-bottom:1px solid var(--line)}
#contact .share-control{margin-bottom:18px}
main>section[id],footer[id]{scroll-margin-top:16px}
