.fm-nav { display:flex; align-items:center; flex-wrap:wrap; gap:4px 14px; }
.fm-nav a { display:inline-flex; align-items:center; min-height:44px; color:inherit; font:500 13px/1.3 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; text-decoration:none; }
.fm-nav a[aria-current="page"] { text-decoration:underline; text-underline-offset:6px; text-decoration-thickness:1.5px; }
.fm-nav a:hover { text-decoration:underline; text-underline-offset:6px; }
.fm-nav a:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.fm-page { --fm-bg:#fff; --fm-fg:#111; --fm-dim:#595959; --fm-line:#dedede; --fm-link:#175cc7; margin:0; background:var(--fm-bg); color:var(--fm-fg); font:16px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; -webkit-font-smoothing:antialiased; }
@media(prefers-color-scheme:dark) { :root:not([data-theme="light"]) .fm-page { --fm-bg:#0b0b0c; --fm-fg:#f2f2f3; --fm-dim:#b4b4b8; --fm-line:#353538; --fm-link:#80adff; } }
:root[data-theme="dark"] .fm-page { --fm-bg:#0b0b0c; --fm-fg:#f2f2f3; --fm-dim:#b4b4b8; --fm-line:#353538; --fm-link:#80adff; }
.fm-page * { box-sizing:border-box; }
.fm-page a { color:inherit; }
.fm-site-head { padding:16px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-bottom:1px solid var(--fm-line); }
.fm-brand { font-size:13px; font-weight:640; text-decoration:none; }
.fm-main { width:min(1180px,100%); margin:auto; padding:64px 24px 80px; }
.fm-page h1 { font-size:clamp(38px,6vw,76px); line-height:1.05; font-weight:650; letter-spacing:-.055em; margin:0 0 28px; overflow-wrap:anywhere; }
.fm-page h2 { font-size:26px; line-height:1.2; letter-spacing:-.025em; font-weight:600; margin:0 0 18px; }
.fm-page p { max-width:62ch; margin:0 0 22px; }
.fm-page a:focus-visible,.fm-page audio:focus-visible { outline:2px solid var(--fm-link); outline-offset:5px; }
.fm-text-link { color:var(--fm-link) !important; text-decoration:underline; text-underline-offset:4px; }
.fm-site-foot { width:min(1180px,100%); margin:auto; padding:28px 24px 36px; border-top:1px solid var(--fm-line); display:flex; justify-content:space-between; align-items:start; gap:24px; font-size:13px; }
.fm-socials { display:flex; flex-wrap:wrap; gap:8px 20px; }
.fm-socials a { display:inline-flex; align-items:center; min-height:44px; text-underline-offset:4px; }
.fm-site-foot > span { padding-top:12px; color:var(--fm-dim); }
.fm-about-layout { display:grid; grid-template-columns:1.05fr 1fr; gap:80px; align-items:start; }
.fm-about-copy { padding-top:18px; }
.fm-about-copy h1 { font-size:32px; line-height:1.2; letter-spacing:-.025em; }
.fm-about-copy section { margin-top:46px; }
.fm-cover-stack { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.fm-cover-stack img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.fm-cover-stack figure { margin:0; }
.fm-cover-stack figure:first-child { grid-column:1 / -1; }
.fm-cover-stack figcaption { padding-top:9px; color:var(--fm-dim); font-size:12px; }
.fm-games-intro { margin-bottom:46px; }
.fm-games-list { display:grid; gap:24px; }
.fm-game-link { display:grid; grid-template-columns:1fr 1fr; min-height:280px; overflow:hidden; color:inherit; text-decoration:none; border:1px solid var(--fm-line); }
.fm-game-link:focus-visible { outline-offset:6px; }
.fm-game-visual { position:relative; overflow:hidden; min-height:260px; }
.fm-game-visual img { display:block; height:100%; width:100%; object-fit:cover; }
.fm-game-visual--runner { background:#f4c582; }
.fm-game-visual--runner img { object-position:center bottom; }
.fm-game-visual--chase { background:#d7c66c url('/minigames/otoole-chase/assets/yellow-wallpaper.jpg') center/240px; }
.fm-game-visual--chase img { position:absolute; bottom:0; left:10%; width:80%; height:90%; object-fit:contain; object-position:center bottom; image-rendering:pixelated; }
.fm-game-visual--cover { background:#d5cfbb; }
.fm-game-visual--cover img { object-fit:contain; padding:24px; }
.fm-game-copy { padding:36px; display:flex; flex-direction:column; justify-content:center; }
.fm-game-copy h2 { font-size:clamp(28px,4vw,46px); line-height:1; margin-bottom:18px; letter-spacing:-.045em; }
.fm-game-copy p { font-size:15px; color:var(--fm-dim); margin:0 0 24px; }
.fm-game-copy span { align-self:flex-start; border-bottom:1px solid; font-size:13px; font-weight:600; padding-bottom:5px; }
.fm-release { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.15fr); gap:64px; align-items:start; }
.fm-release-art { position:sticky; top:24px; }
.fm-release-art img { display:block; width:100%; aspect-ratio:1; object-fit:cover; }
.fm-release h1 { font-size:clamp(32px,4.5vw,58px); margin-bottom:16px; }
.fm-release-date { color:var(--fm-dim); font-size:14px; }
.fm-release-links { display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; margin:28px 0 42px; font-size:14px; }
.fm-release-links a { min-height:44px; display:inline-flex; align-items:center; }
.fm-track-list { list-style:none; margin:0; padding:0; counter-reset:track; }
.fm-track { counter-increment:track; padding:20px 0; border-top:1px solid var(--fm-line); }
.fm-track-heading { display:grid; grid-template-columns:24px 1fr auto; gap:12px; align-items:baseline; }
.fm-track-heading::before { content:counter(track); color:var(--fm-dim); font-size:13px; }
.fm-track-heading h3 { font-size:16px; line-height:1.4; font-weight:600; margin:0; }
.fm-track-heading time { font-size:12px; color:var(--fm-dim); font-variant-numeric:tabular-nums; }
.fm-track-links { display:flex; flex-wrap:wrap; gap:18px; margin:10px 0 0 36px; font-size:12px; }
.fm-track-links a { min-height:32px; display:inline-flex; align-items:center; text-underline-offset:3px; }
.fm-track audio { display:block; width:calc(100% - 36px); height:38px; margin:12px 0 0 36px; }
.fm-preview-label { display:block; margin:10px 0 0 36px; font-size:12px; color:var(--fm-dim); }
.fm-release-return { margin-top:40px; font-size:14px; }
@media(max-width:750px) {
  .fm-site-head { padding:12px 20px; flex-wrap:wrap; gap:4px 20px; }
  .fm-nav { gap:2px 18px; }
  .fm-nav a { font-size:12px; }
  .fm-main { padding:36px 20px 56px; }
  .fm-about-layout,.fm-release { grid-template-columns:1fr; gap:36px; }
  .fm-about-copy { padding-top:0; }
  .fm-cover-stack { gap:14px; }
  .fm-cover-stack figure:first-child { grid-column:auto; }
  .fm-cover-stack figure:last-child { display:none; }
  .fm-game-link { grid-template-columns:1fr; }
  .fm-game-visual { height:280px; min-height:0; }
  .fm-game-copy { padding:24px; }
  .fm-release-art { position:static; max-width:540px; }
  .fm-site-foot { padding:22px 20px 28px; display:block; }
  .fm-site-foot > span { display:block; padding-top:18px; }
}
