:root{--bg:#f3f0e8;--ink:#141414;--muted:#67645f;--line:#d5d0c6;--accent:#ff4b22;--card:#fbfaf6}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--bg);color:var(--ink);line-height:1.5}a{color:inherit}.site-header{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:26px;padding:0 5vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(243,240,232,.94);backdrop-filter:blur(10px);z-index:10}.brand{font-weight:900;letter-spacing:-1px;text-decoration:none;white-space:nowrap}.brand span{color:var(--accent)}nav{display:flex;gap:24px;margin-left:auto}nav a{text-decoration:none;font-size:.9rem;font-weight:700}.lang-switch{display:flex;border:1px solid var(--ink)}.lang{border:0;background:transparent;padding:7px 9px;font-weight:900;cursor:pointer}.lang.active{background:var(--ink);color:#fff}.hero{padding:9vw 5vw 7vw;min-height:70vh;display:flex;flex-direction:column;justify-content:center;border-bottom:1px solid var(--line)}.eyebrow{font-size:.72rem;font-weight:900;letter-spacing:.18em;color:var(--accent);margin-bottom:20px}.hero h1{font-size:clamp(3.2rem,8vw,8rem);line-height:.88;letter-spacing:-.065em;margin:0;max-width:1200px;text-transform:uppercase}.lead{font-size:clamp(1.05rem,2vw,1.4rem);max-width:790px;color:var(--muted);margin:32px 0}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{padding:14px 20px;border:1px solid var(--ink);text-decoration:none;font-weight:800}.primary{background:var(--ink);color:#fff}.secondary{background:transparent}.intro-grid{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line)}.intro-grid article{padding:36px 5vw;border-right:1px solid var(--line)}.intro-grid article:last-child{border-right:0}.intro-grid strong{font-size:.8rem;color:var(--accent)}.intro-grid h2{font-size:1.4rem;margin:8px 0}.intro-grid p{margin:0;color:var(--muted)}.section{padding:7vw 5vw;border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;gap:40px;align-items:end;margin-bottom:34px}.section-heading h2,.split h2,.about h2,.support h2{font-size:clamp(2.2rem,5vw,4.8rem);line-height:.95;letter-spacing:-.04em;margin:0}.section-heading p{max-width:470px;color:var(--muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.filter{border:1px solid var(--ink);background:transparent;padding:10px 14px;font-weight:800;cursor:pointer}.filter.active{background:var(--ink);color:#fff}.download-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.download-card{background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column}.poster-preview,.photo-preview{aspect-ratio:4/5;margin:16px;overflow:hidden;position:relative}.poster-preview{display:flex;flex-direction:column;justify-content:space-between;padding:22px;font-weight:900}.poster-preview .mini{font-size:.72rem;letter-spacing:.18em}.poster-preview .big{font-size:clamp(3rem,6vw,6rem);line-height:.82;letter-spacing:-.08em}.poster-preview .bottom{align-self:flex-end}.amsterdam{background:#20265a;color:#ff6f2a}.copenhagen{background:#e52c2d;color:#fff3df}.photo-preview img{width:100%;height:100%;object-fit:cover;display:block}.photo-preview:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.65))}.photo-label{position:absolute;left:18px;right:18px;bottom:14px;color:white;z-index:2;display:flex;align-items:end;justify-content:space-between}.photo-label span{font-size:.78rem;font-weight:900;letter-spacing:.18em}.photo-label strong{font-size:2.6rem;line-height:1;letter-spacing:-.07em}.card-copy{padding:4px 18px 20px;display:flex;flex-direction:column;flex:1}.tags{display:flex;gap:6px;flex-wrap:wrap}.tags span{font-size:.66rem;text-transform:uppercase;letter-spacing:.11em;color:var(--accent);font-weight:900;border:1px solid currentColor;padding:3px 6px}.card-copy h3{font-size:1.35rem;margin:10px 0 7px}.card-copy p{color:var(--muted);min-height:48px}.download-options{display:grid;gap:7px;margin-top:auto;padding-top:14px}.file-button{display:flex;justify-content:space-between;align-items:center;gap:10px;border:1px solid var(--ink);text-decoration:none;padding:10px 11px;font-weight:800}.file-button small{font-weight:700;color:var(--muted);text-align:right}.file-button.disabled{opacity:.42;pointer-events:none}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px}.steps{list-style:none;margin:0;padding:0}.steps li{display:flex;gap:18px;padding:22px 0;border-bottom:1px solid var(--line)}.steps li>span{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;font-weight:900;flex:0 0 auto}.steps p{margin:5px 0;color:var(--muted)}.support{display:grid;grid-template-columns:1.2fr .8fr;gap:60px;background:#191919;color:#f6f2e9}.support .support-copy>p{max-width:760px;color:#c9c6be;font-size:1.08rem}.coffee-button{display:inline-block;background:var(--accent);color:#fff;text-decoration:none;font-weight:900;padding:14px 18px;margin-top:10px}.setup-note{display:block;color:#9f9b93;max-width:600px;margin-top:10px}.request-box{border:1px solid #4a4a4a;padding:30px;align-self:start}.request-box h3{font-size:1.8rem;margin:0 0 12px}.request-box p{color:#c9c6be}.request-note{font-weight:800;border-top:1px solid #4a4a4a;padding-top:18px;margin-top:22px}.about p{max-width:800px;font-size:1.2rem;color:var(--muted)}footer{padding:32px 5vw;display:flex;justify-content:space-between;align-items:center;gap:20px}footer p{font-size:.8rem;color:var(--muted)}
@media(max-width:980px){nav{display:none}.download-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.site-header{padding-top:12px;padding-bottom:12px}.intro-grid,.download-grid,.split,.support{grid-template-columns:1fr}.intro-grid article{border-right:0;border-bottom:1px solid var(--line)}.intro-grid article:last-child{border-bottom:0}.section-heading{display:block}.section-heading p{margin-top:16px}.hero{min-height:62vh}.poster-preview .big{font-size:20vw}footer{display:block}.lang-switch{margin-left:auto}}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:5vw;align-items:center}.hero-copy{max-width:820px}.hero-image{margin:0;align-self:stretch;min-height:520px;display:flex;flex-direction:column;justify-content:center}.hero-image img{width:100%;max-height:620px;object-fit:cover;border:1px solid var(--line);display:block}.hero-image figcaption{font-size:.76rem;color:var(--muted);margin-top:8px}.section-copy{max-width:620px;color:var(--muted);font-size:1.06rem}@media(max-width:900px){.hero{grid-template-columns:1fr}.hero-image{min-height:0}.hero-image img{max-height:none}}

.text-link {
  display: inline-block;
  margin-top: .55rem;
  font-weight: 700;
  color: inherit;
  text-underline-offset: 3px;
}
.text-link:hover { text-decoration-thickness: 2px; }

/* Responsive image handling – keeps photos natural on desktop and mobile */
.hero-image{max-width:520px;width:100%;justify-self:end;align-self:center;min-height:0}
.hero-image img{width:100%;height:auto;max-height:none;object-fit:contain;object-position:center;border:1px solid var(--line);display:block}
.photo-preview{background:#e9e6de}
.photo-preview img{object-fit:contain;object-position:center}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:32px}
  .hero-image{max-width:none;width:100%;justify-self:stretch}
  .hero-image img{width:100%;height:auto;max-height:none;object-fit:contain}
}

@media(max-width:700px){
  .hero{padding-top:48px;padding-bottom:48px}
  .hero h1{font-size:clamp(2.8rem,15vw,5rem)}
  .hero-image{margin-top:6px}
  .hero-image img{border-radius:0}
  .photo-preview{aspect-ratio:auto;margin:12px}
  .photo-preview img{width:100%;height:auto;object-fit:contain;display:block}
  .photo-label{left:14px;right:14px;bottom:12px}
  .photo-label strong{font-size:2rem}
}

/* V7 hero: dedicated desktop/mobile photography */
.hero{
  grid-template-columns:minmax(0,1.02fr) minmax(360px,.98fr);
  gap:clamp(32px,5vw,80px);
  padding-top:clamp(64px,8vw,120px);
  padding-bottom:clamp(64px,7vw,105px);
}
.hero-copy{align-self:center}
.hero h1{font-size:clamp(3.2rem,6.9vw,7.2rem);max-width:900px}
.hero .lead{max-width:690px}
.hero-image{max-width:720px;width:100%;justify-self:end;margin:0}
.hero-image picture{display:block;overflow:hidden;border:1px solid var(--line);background:#171717;aspect-ratio:8/5}
.hero-image picture img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;border:0}
.hero-image figcaption{display:flex;justify-content:space-between;gap:12px;padding-top:9px;font-size:.74rem;color:var(--muted)}

@media(max-width:900px){
  .hero{grid-template-columns:1fr;gap:34px}
  .hero-image{max-width:none;justify-self:stretch}
}
@media(max-width:700px){
  .hero{padding-top:42px;padding-bottom:52px;gap:28px}
  .hero h1{font-size:clamp(3rem,14.5vw,4.9rem);line-height:.9}
  .hero .lead{font-size:1.02rem;margin:24px 0}
  .hero-image picture{aspect-ratio:4/5}
  .hero-image picture img{object-position:center}
  .hero-image figcaption{font-size:.7rem}
}

.poster-preview.cardiff{background:linear-gradient(145deg,#182028,#37444f);}


/* Race card images: consistent square previews on desktop and mobile */
.photo-preview{aspect-ratio:1/1;margin:16px;background:#e9e6de}
.photo-preview img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
@media(max-width:700px){
  .photo-preview{aspect-ratio:1/1;margin:12px}
  .photo-preview img{width:100%;height:100%;object-fit:cover}
}


/* V9: force race photo preview itself to be a true square */
.photo-preview{
  width:calc(100% - 32px);
  aspect-ratio:1 / 1 !important;
  height:auto !important;
  margin:16px;
  overflow:hidden;
  position:relative;
  background:#e9e6de;
}
.photo-preview > img{
  position:absolute;
  inset:0;
  width:100% !important;
  height:100% !important;
  max-width:none;
  max-height:none;
  object-fit:cover !important;
  object-position:center;
}
@media(max-width:700px){
  .photo-preview{
    width:calc(100% - 24px);
    aspect-ratio:1 / 1 !important;
    height:auto !important;
    margin:12px;
  }
}

/* V10: every race preview frame is square, including graphic placeholders */
.download-card .poster-preview,
.download-card .photo-preview{
  width:calc(100% - 32px);
  aspect-ratio:1 / 1 !important;
  height:auto !important;
  margin:16px;
  overflow:hidden;
  position:relative;
}

/* Keep graphic placeholder content balanced inside the square */
.download-card .poster-preview{
  padding:22px;
  min-height:0;
}

@media(max-width:700px){
  .download-card .poster-preview,
  .download-card .photo-preview{
    width:calc(100% - 24px);
    aspect-ratio:1 / 1 !important;
    height:auto !important;
    margin:12px;
  }
}
