/* Independent game showcases: isolated from the homepage intro and global styles. */
.game-showcase.impero, .game-showcase.sb {
  --scene-accent:var(--gold); --mouse-x:0px; --mouse-y:0px; --scroll-y:0px;
  position:relative; display:block; isolation:isolate; overflow:hidden;
  margin:0 var(--g,64px); min-height:790px; height:auto; padding:0; background:var(--ink);
  color:var(--paper); border:1px solid var(--line);
}
.game-showcase.sb { --scene-accent:var(--ash); margin-top:64px; }
.gs-media { position:absolute; inset:0; z-index:-1; overflow:hidden; }
.gs-camera { position:absolute; inset:-5%; transform:translate3d(var(--mouse-x),calc(var(--mouse-y) + var(--scroll-y)),0); transition:transform .65s cubic-bezier(.2,.7,.2,1); }
.gs-scene { position:absolute; inset:0; opacity:0; visibility:hidden; }
.gs-scene.is-active, .gs-scene.is-previous { opacity:1; visibility:visible; }
.gs-scene.is-active { z-index:1; }
.gs-scene img { width:100%; height:100%; object-fit:cover; object-position:40% center; display:block; }
.gs-scene--portrait img { width:65%; object-position:center 42%; -webkit-mask-image:linear-gradient(90deg,#000 65%,transparent); mask-image:linear-gradient(90deg,#000 65%,transparent); }
.gs-scene.is-active img { animation:gs-travel 7.5s linear both; }
@keyframes gs-travel { from { transform:scale(1.02) translateX(-.5%); } to { transform:scale(1.13) translateX(1%); } }
.gs-shade { position:absolute; z-index:2; inset:0; background:linear-gradient(90deg,#11101608 8%,#11101622 36%,#111016dd 63%,#111016ee),linear-gradient(0deg,#111016 0%,#11101688 18%,transparent 64%,#11101699); }
.game-showcase--breath .gs-shade { background:linear-gradient(90deg,#0b0d0b22 10%,#0b0d0b22 35%,#0b0d0be6 65%),linear-gradient(0deg,#0b0d0b 0%,#0b0d0b88 20%,transparent 70%,#0b0d0b99); }
.gs-light { position:absolute; z-index:3; inset:-20%; pointer-events:none; background:conic-gradient(from 190deg at 35% 0%,transparent 0deg,#d8b25a22 16deg,transparent 27deg); mix-blend-mode:screen; animation:gs-light 10s ease-in-out infinite alternate; }
@keyframes gs-light { to { transform:translateX(6%) rotate(-8deg); opacity:.5; } }
.gs-fog { position:absolute; z-index:3; inset:25% -25% -25%; opacity:.3; background:radial-gradient(ellipse at 25% 80%,var(--scene-accent),transparent 43%); filter:blur(28px); mix-blend-mode:screen; animation:gs-fog 12s ease-in-out infinite alternate; }
@keyframes gs-fog { to { transform:translate(10%,-8%); opacity:.12; } }
.gs-particles { position:absolute; z-index:4; inset:0; overflow:hidden; }
.gs-particles i { position:absolute; left:var(--x); bottom:-5%; height:var(--size); width:var(--size); background:var(--scene-accent); border-radius:50%; color:var(--scene-accent); box-shadow:0 0 8px currentColor; opacity:0; animation:gs-ember var(--duration) var(--delay) linear infinite; }
@keyframes gs-ember { 15%,60% { opacity:.65; } to { transform:translate3d(70px,-850px,0); opacity:0; } }
.game-showcase--breath .gs-particles i { animation-name:gs-spore; }
@keyframes gs-spore { 15%,60% { opacity:.5; } to { transform:translate3d(-140px,-660px,0); opacity:0; } }
.gs-sweep { position:absolute; z-index:5; inset:0; opacity:0; background:linear-gradient(110deg,transparent 35%,#f2eee622 50%,transparent 65%); mix-blend-mode:screen; }
.gs-top { position:relative; display:flex; justify-content:space-between; gap:24px; margin:0 48px; padding:28px 0; border-bottom:1px solid #f2eee62b; font:10px "JetBrains Mono",monospace; letter-spacing:.15em; text-transform:uppercase; }
.gs-top > span:last-child { color:#d5d0c5; }
.gs-status-dot { display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--verm); margin-right:8px; box-shadow:0 0 12px var(--verm); }
.gs-content { position:relative; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:end; gap:48px; padding:180px 48px 64px; min-height:560px; }
.gs-eyebrow { display:block; font:11px "JetBrains Mono",monospace; letter-spacing:.2em; text-transform:uppercase; color:var(--scene-accent); margin-bottom:22px; }
.gs-title { font:500 clamp(68px,8.6vw,164px)/1 "Cinzel",serif; letter-spacing:.045em; margin:0; color:var(--gold); text-shadow:0 4px 36px #0008; }
.game-showcase--breath .gs-title { font:900 clamp(82px,9.5vw,190px)/.81 "Big Shoulders Stencil Display",sans-serif; color:var(--paper); letter-spacing:.005em; }
.game-showcase--breath .gs-title span { display:block; color:transparent; -webkit-text-stroke:1.5px var(--paper); }
.gs-rule { display:block; height:3px; width:56px; background:var(--verm); margin-top:30px; }
.gs-copy { max-width:520px; justify-self:end; }
.gs-copy h4 { font:400 clamp(30px,3.1vw,50px)/1.05 "Instrument Serif",Georgia,serif; margin:0 0 22px; }
.gs-copy h4 em { color:var(--scene-accent); }
.gs-copy p { font-size:15px; line-height:1.7; color:#d2cec6; margin:0; }
.gs-category { font:9px "JetBrains Mono",monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--ash); margin-bottom:24px; }
.gs-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }
.gs-actions .btn { font-size:13px; padding:0 18px; height:48px; gap:12px; }
.gs-actions .btn.o { background:#11101666; }
.gs-facts { display:grid; grid-template-columns:.8fr .9fr 1.2fr; gap:12px; border-top:1px solid #f2eee62b; padding-top:22px; margin:28px 0 0; }
.gs-facts dt { font:9px "JetBrains Mono",monospace; letter-spacing:.14em; text-transform:uppercase; color:#b4afa6; }
.gs-facts dd { margin:7px 0 0; font-size:clamp(16px,1.6vw,24px); font-weight:500; }
.gs-bottom { position:relative; margin:0 48px; border-top:1px solid #f2eee62b; padding:22px 0; display:flex; justify-content:space-between; align-items:center; gap:24px; }
.gs-scene-info { display:grid; grid-template-columns:auto 1fr; gap:8px 18px; align-items:center; }
.gs-counter { color:var(--scene-accent); font:10px "JetBrains Mono",monospace; }
.gs-current { font:italic 22px "Instrument Serif",Georgia,serif; }
.gs-scene-info small { grid-column:2; font-size:10px; color:#b4afa6; }
.gs-controls { display:flex; gap:14px; align-items:center; }
.gs-controls[hidden] { display:none; }
.gs-thumbnails { display:flex; gap:10px; }
.gs-controls button { cursor:pointer; color:var(--paper); font:14px "JetBrains Mono",monospace; padding:0; border:1px solid #f2eee64d; background:#11101699; }
.gs-thumb { width:76px; height:48px; position:relative; overflow:hidden; }
.gs-thumb img { width:100%; height:100%; display:block; object-fit:cover; opacity:.42; transition:opacity .3s,transform .6s; }
.gs-thumb:hover img, .gs-thumb[aria-pressed="true"] img { opacity:.95; transform:scale(1.12); }
.gs-thumb[aria-pressed="true"] { border-color:var(--scene-accent); }
.gs-thumb span { position:absolute; left:6px; bottom:5px; font-size:9px; text-shadow:0 1px 6px #000; }
.gs-thumb i { position:absolute; bottom:0; left:0; height:2px; width:100%; background:var(--verm); transform:scaleX(0); transform-origin:left; }
.gs-pause, .gs-next { width:44px; height:44px; border-radius:50%; }
.gs-controls button:disabled { opacity:.4; cursor:default; }
.gs-controls button:focus-visible, .gs-actions a:focus-visible { outline:2px solid var(--verm); outline-offset:5px; }
.game-showcase.is-paused .gs-media *, .game-showcase.is-paused .gs-media *::before { animation-play-state:paused; }
.gs-identity, .gs-copy { transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.8,.2,1); }
.gs-copy { transition-delay:.12s; }

/* A page dialog, deliberately smaller than the viewport. No browser pop-up. */
.trailer-dialog { box-sizing:border-box; width:min(900px,calc(100vw - 48px),calc((100dvh - 180px) * 16 / 9)); max-width:none; max-height:calc(100dvh - 48px); padding:0; border:1px solid #f2eee640; background:var(--ink); color:var(--paper); overflow:auto; box-shadow:0 32px 100px #000b; }
.trailer-dialog::backdrop { background:#08070cbb; backdrop-filter:blur(10px); }
.trailer-dialog[open] { animation:trailer-in .25s ease-out; }
@keyframes trailer-in { from { opacity:0; transform:translateY(16px) scale(.97); } to { opacity:1; transform:none; } }
.trailer-header { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 22px; border-bottom:1px solid var(--line); }
.trailer-header h2 { margin:0; font:500 13px "JetBrains Mono",monospace; letter-spacing:.06em; }
.trailer-close { display:grid; place-items:center; width:44px; height:44px; flex-shrink:0; border:1px solid #f2eee64d; background:transparent; color:var(--paper); cursor:pointer; font:24px system-ui,sans-serif; }
.trailer-close:hover { background:var(--verm); color:var(--ink); }
.trailer-close:focus-visible, .trailer-footer a:focus-visible { outline:2px solid var(--verm); outline-offset:3px; }
.trailer-player { aspect-ratio:16/9; background:#000; }
.trailer-player iframe { display:block; width:100%; height:100%; border:0; }
.trailer-footer { padding:14px 22px; margin:0; color:var(--mute); font-size:12px; display:flex; justify-content:space-between; gap:16px; }
.trailer-footer a { color:var(--paper); }
html.trailer-open { overflow:hidden; }
@media (min-width:1600px) { .game-showcase.impero,.game-showcase.sb { margin-left:64px; margin-right:64px; } .gs-content { padding-top:230px; padding-bottom:88px; } }
@media (max-width:1100px) {
  .game-showcase.impero,.game-showcase.sb { margin-left:var(--g,40px); margin-right:var(--g,40px); }
  .gs-top,.gs-bottom { margin-left:30px; margin-right:30px; }
  .gs-content { gap:28px; padding:180px 30px 48px; grid-template-columns:minmax(0,.9fr) minmax(0,1fr); }
  .gs-title { font-size:clamp(56px,8vw,90px); } .game-showcase--breath .gs-title { font-size:clamp(74px,10vw,110px); }
  .gs-copy h4 { font-size:34px; } .gs-copy p { font-size:14px; }
  .gs-actions .btn { font-size:12px; padding:0 13px; }
}
@media (max-width:820px) {
  .game-showcase.impero,.game-showcase.sb { margin-left:var(--g,24px); margin-right:var(--g,24px); min-height:0; }
  .game-showcase.sb { margin-top:32px; }
  .gs-top { margin:0 22px; padding:22px 0; font-size:8px; gap:14px; align-items:start; }
  .gs-top > span:last-child { max-width:140px; text-align:right; line-height:1.6; }
  .gs-content { display:flex; flex-direction:column; align-items:stretch; gap:38px; padding:240px 22px 32px; min-height:0; }
  .gs-identity { align-self:stretch; } .gs-eyebrow { font-size:9px; margin-bottom:14px; }
  .gs-title { font-size:clamp(54px,15vw,100px); }
  .game-showcase--breath .gs-title { font-size:clamp(88px,24vw,140px); }
  .gs-rule { margin-top:20px; width:36px; }
  .gs-copy { max-width:none; } .gs-copy h4 { font-size:36px; } .gs-copy p { font-size:14px; }
  .gs-media { bottom:auto; height:630px; -webkit-mask-image:linear-gradient(#000 65%,transparent); mask-image:linear-gradient(#000 65%,transparent); }
  .gs-camera { inset:-2%; }
  .gs-scene img { object-position:30% top; }
  .gs-scene--portrait img { width:100%; -webkit-mask:none; mask:none; object-position:center; }
  .gs-shade, .game-showcase--breath .gs-shade { background:linear-gradient(0deg,var(--ink) 0%,#111016e6 23%,#11101655 48%,transparent 75%,#11101677); }
  .gs-light { opacity:.6; } .gs-fog { opacity:.16; }
  .gs-actions { gap:10px; } .gs-actions .btn { height:46px; font-size:12px; padding:0 13px; }
  .gs-facts { gap:10px; } .gs-facts dd { font-size:18px; }
  .gs-bottom { margin:0 22px; padding:20px 0; flex-direction:column; align-items:stretch; gap:18px; }
  .gs-current { font-size:20px; } .gs-controls { justify-content:space-between; gap:10px; }
  .gs-thumbnails { flex:1; gap:8px; } .gs-thumb { width:58px; height:44px; }
  .gs-pause,.gs-next { width:44px; height:44px; flex-shrink:0; }
  .trailer-dialog { width:min(calc(100vw - 28px),calc((100dvh - 155px) * 16 / 9)); }
  .trailer-header { padding:12px 14px; gap:12px; } .trailer-header h2 { font-size:11px; }
  .trailer-footer { padding:12px 14px; font-size:10px; }
}
@media (max-width:480px) {
  .gs-top,.gs-bottom { margin-left:18px; margin-right:18px; }
  .gs-content { padding-left:18px; padding-right:18px; }
  .gs-thumb { width:44px; }
  .gs-thumbnails { gap:5px; }
  .gs-controls { gap:5px; }
}
@media (prefers-reduced-motion:reduce) {
  .game-showcase *, .trailer-dialog { animation:none !important; transition:none !important; }
  .gs-camera { transform:none; } .gs-particles,.gs-fog,.gs-light,.gs-sweep { display:none; }
  .gs-enhanced:not(.is-seen) .gs-identity,.gs-enhanced:not(.is-seen) .gs-copy { opacity:1; transform:none; }
}
