/* FM2: intact photographs in a quiet frame. Interaction adds depth without moving the layout. */
.games-section { padding-top:55px; padding-bottom:66px; }
.games-section .section-heading { display:block; }
.games-section .section-heading p { max-width:70ch; margin-top:16px; font-size:16px; line-height:1.5; }
.games-collection { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
.game-detail {
  --game-surface:#f0e5cf; --game-light:#fff9ed; --game-deep:#254c38; --game-glow:#42674a;
  --game-title:#173b2c; --game-copy:#435d4d;
  position:relative; isolation:isolate; display:flex; min-width:0; overflow:hidden; border-radius:18px;
  color:var(--game-title); background:linear-gradient(145deg,var(--game-light),var(--game-surface));
  box-shadow:0 9px 25px rgb(34 63 39 / 7%); transition:box-shadow 400ms var(--ease);
}
.game-detail-lasertag { --game-surface:#e6ecd9; --game-light:#f8faee; --game-deep:#284c3c; --game-glow:#426755; }
.game-detail-strikeball { --game-surface:#e0e9e2; --game-light:#f3f7ee; --game-deep:#20493f; --game-glow:#3d6858; }
.game-detail-events { --game-surface:#f1e0d0; --game-light:#fff7eb; --game-deep:#304936; --game-glow:#53634a; }
.game-detail::before {
  content:""; position:absolute; inset:0; z-index:-1; pointer-events:none;
  background:radial-gradient(ellipse at 12% 65%,var(--game-glow),transparent 80%),linear-gradient(145deg,var(--game-deep),#183c2e);
  opacity:0; transition:opacity 420ms var(--ease);
}
.game-detail-main { display:flex; flex:1; flex-direction:column; min-width:0; color:inherit; border-radius:inherit; }
.game-detail-main:focus-visible { outline:none; box-shadow:none; }
.game-detail-photo { position:relative; isolation:isolate; overflow:hidden; margin:12px 12px 0; border-radius:10px; background:#c9d1be; }
.game-detail-photo img { display:block; width:100%; height:clamp(255px,28vw,370px); object-fit:cover; transition:transform 700ms var(--ease),filter 600ms var(--ease); }
.game-detail-paintball img { object-position:50% 18%; }
.game-detail-lasertag img { object-position:61% 50%; }
.game-detail-strikeball img { object-position:50% 50%; }
.game-detail-events img { object-position:50% 45%; }
/* The thin frame is above the full photo. No cutouts, extra subjects, or camera motion. */
.game-detail-photo::before {
  content:""; position:absolute; z-index:2; inset:13px; border:1px solid rgb(255 250 234 / 60%); border-radius:4px;
  box-shadow:0 1px 3px rgb(10 32 20 / 16%),inset 0 1px 2px rgb(10 32 20 / 8%); pointer-events:none;
  transition:transform 500ms var(--ease),border-color 400ms var(--ease),box-shadow 400ms var(--ease);
}
.game-detail-photo::after {
  content:""; position:absolute; z-index:1; inset:0; pointer-events:none;
  background:linear-gradient(108deg,transparent 28%,rgb(255 246 214 / 15%) 49%,transparent 71%); transform:translateX(-110%);
}
.game-detail-copy { display:flex; flex-direction:column; align-items:flex-start; flex:1; padding:27px 30px 30px; }
.game-detail h3 { max-width:97%; font-size:clamp(28px,2.5vw,36px); line-height:1.13; color:var(--game-title); transform-origin:left center; transition:transform 420ms var(--ease),color 220ms ease; }
.game-detail-mood { margin-top:11px; font-size:16px; font-weight:600; line-height:1.4; color:var(--game-title); transition:color 220ms ease; }
.game-detail-description { margin:17px 0 25px; font-size:17px; color:var(--game-copy); line-height:1.55; transition:color 220ms ease; }
.game-detail .button { margin-top:auto; min-height:52px; padding:15px 21px; }
.game-detail .button svg { transition:transform 350ms var(--ease); }
.game-detail:focus-within { --game-title:#fff7e5; --game-copy:#e4eddb; outline:3px solid #173b2c; outline-offset:5px; box-shadow:0 17px 34px rgb(23 59 44 / 18%); }
.game-detail:focus-within::before { opacity:1; }
.game-detail:focus-within .game-detail-photo::before { border-color:var(--accent-highlight); transform:scale(.985); }
.game-detail:focus-within h3 { transform:translateY(-1px) scale(1.02); }
.game-detail:focus-within .button { background-position:80% 100%; }
.game-detail:focus-within .button svg { transform:translateX(3px); }
.games-afterword { display:flex; justify-content:space-between; align-items:center; gap:35px; margin-top:29px; }
.games-afterword p { color:var(--muted); font-size:16px; max-width:570px; }
.games-afterword a { display:inline-flex; align-items:center; gap:12px; min-height:44px; font-size:15px; font-weight:600; text-decoration:underline; }
.games-afterword svg { width:21px; height:21px; }
.company-section:has(+ .day-section) { padding-bottom:30px; }
.company-section + .day-section { padding-top:30px; }
@media (hover:hover) and (pointer:fine) {
  .game-detail:hover { --game-title:#fff7e5; --game-copy:#e4eddb; box-shadow:0 17px 34px rgb(23 59 44 / 18%); }
  .game-detail:hover::before { opacity:1; }
  .game-detail:hover .game-detail-photo img { transform:scale(1.035); filter:brightness(1.035) saturate(1.035); }
  .game-detail:hover .game-detail-photo::before { border-color:var(--accent-highlight); transform:scale(.985); box-shadow:0 2px 7px rgb(12 38 25 / 20%),inset 0 1px 1px rgb(255 250 232 / 22%); }
  .game-detail:hover .game-detail-photo::after { animation:game-photo-light 800ms var(--ease) both; }
  .game-detail:hover h3 { transform:translateY(-1px) scale(1.02); }
  .game-detail:hover .button { background-position:80% 100%; box-shadow:inset 0 1px 1px var(--accent-highlight),inset 0 -2px 2px rgb(var(--accent-edge) / .2),0 9px 21px rgb(5 25 15 / 20%); }
  .game-detail:hover .button svg { transform:translateX(3px); }
}
@keyframes game-photo-light { from { transform:translateX(-110%); } to { transform:translateX(110%); } }
.game-detail-main:active .button { transform:translateY(1px); box-shadow:inset 0 2px 5px rgb(var(--accent-pressed) / .25),0 2px 5px rgb(20 36 20 / 12%); }
@media (hover:none), (pointer:coarse) {
  .game-detail:active { --game-title:#fff7e5; --game-copy:#e4eddb; }
  .game-detail:active::before { opacity:1; transition-duration:120ms; }
  .game-detail h3, .game-detail-mood, .game-detail-description { transition-duration:120ms; }
  .game-detail:focus-within h3 { transform:none; }
}
@media (min-width:701px) and (max-width:1099px) {
  .games-collection { gap:22px; }
  .game-detail-copy { padding:24px; }
  .game-detail h3 { font-size:29px; }
  .game-detail-description { font-size:16px; }
}
@media (max-width:700px) {
  .games-section { padding-top:32px; padding-bottom:42px; }
  .games-collection { grid-template-columns:1fr; gap:26px; }
  .game-detail-photo { margin:9px 9px 0; border-radius:10px; }
  .game-detail-photo img { height:244px; }
  .game-detail-photo::before { inset:10px; }
  .game-detail-copy { padding:23px 23px 25px; }
  .game-detail h3 { font-size:30px; }
  .game-detail-description { font-size:16px; margin-top:14px; margin-bottom:23px; }
  .game-detail .button { width:100%; justify-content:space-between; }
  .games-afterword { display:block; margin-top:25px; }
  .games-afterword a { margin-top:10px; font-size:15px; }
}
@media (prefers-reduced-motion:reduce) {
  .game-detail, .game-detail::before, .game-detail-photo::before, .game-detail-photo::after, .game-detail-photo img, .game-detail h3, .game-detail-mood, .game-detail-description, .game-detail .button, .game-detail .button svg { animation:none!important; transition:none!important; transform:none!important; }
  .game-detail-photo::after { display:none; }
}
html[data-reduced="true"] .game-detail,
html[data-reduced="true"] .game-detail::before,
html[data-reduced="true"] .game-detail-photo::before,
html[data-reduced="true"] .game-detail-photo img,
html[data-reduced="true"] .game-detail h3,
html[data-reduced="true"] .game-detail-mood,
html[data-reduced="true"] .game-detail-description,
html[data-reduced="true"] .game-detail .button,
html[data-reduced="true"] .game-detail .button svg { animation:none!important; transition:none!important; transform:none!important; }
html[data-reduced="true"] .game-detail-photo::after { display:none; }
