:root {
  --black:#05060a;
  --navy:#17213d;
  --blue:#5e7fc4;
  --sky:#b9dded;
  --cream:#fff8e9;
  --orange:#efa066;
  --yellow:#ffd36b;
  --ink:#172033;
  --screen:#101a31;
  --deep:#08101f;
  --green:#92c786;
  --pink:#f39ab8
}
* {
  box-sizing:border-box
}
html,body {
  width:100%;
  min-height:100%;
  margin:0
}
body {
  min-height:100dvh;
  overflow:hidden;
  background:var(--black);
  color:var(--cream);
  font-family:Consolas,"Lucida Console",Monaco,"Courier New",monospace
}
button,input {
  font:inherit
}
.app,.crt {
  width:100vw;
  height:100dvh
}
.crt {
  display:grid;
  place-items:center;
  padding:clamp(10px,3vw,28px);
  background:#020307
}
.crt-glass {
  position:relative;
  width:min(1180px,calc(100vw - 44px));
  height:min(860px,calc(100dvh - 44px));
  min-height:440px;
  overflow:hidden;
  border:clamp(3px,.7vw,7px) solid var(--cream);
  border-radius:clamp(22px,5vw,52px);
  background:radial-gradient(ellipse at center,rgba(94,127,196,.12),transparent 65%),linear-gradient(180deg,#111c35,#08101f 75%);
  box-shadow:0 0 0 8px var(--ink),0 0 0 12px var(--blue),0 0 70px rgba(94,127,196,.35),inset 0 0 90px rgba(0,0,0,.65);
  animation:crtFlicker 8s steps(1) infinite
}
@keyframes crtFlicker {
  0%,91%,94%,100% {
    filter:brightness(1)
  }
  92% {
    filter:brightness(.82)
  }
  93% {
    filter:brightness(1.08)
  }
}
.scanlines,.vignette {
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:10
}
.scanlines {
  opacity:.21;
  background:repeating-linear-gradient(to bottom,rgba(255,255,255,.08) 0,rgba(255,255,255,.08) 1px,transparent 1px,transparent 4px)
}
.vignette {
  box-shadow:inset 0 0 100px 25px rgba(0,0,0,.72);
  border-radius:inherit
}
.terminal {
  position:relative;
  width:100%;
  height:100%;
  min-height:0;
  display:grid;
  place-items:center;
  padding:clamp(24px,6vw,72px)
}
.boot-text {
  width:min(720px,100%);
  color:var(--sky);
  font-size:clamp(18px,3vw,32px);
  line-height:1.55;
  letter-spacing:.05em;
  text-shadow:0 0 12px rgba(185,221,237,.65)
}
.boot-text::after {
  content:"█";
  margin-left:5px;
  color:var(--yellow);
  animation:blink .7s steps(1) infinite
}
@keyframes blink {
  50% {
    opacity:0
  }
}
.screen {
  width:min(760px,100%);
  text-align:center
}
.screen-enter {
  animation:screenIn .35s steps(2,end) both
}
@keyframes screenIn {
  from {
    opacity:0;
    transform:translateY(5px)
  }
  to {
    opacity:1;
    transform:none
  }
}
.eyebrow {
  margin:0 0 18px;
  color:var(--orange);
  font-size:clamp(11px,1.8vw,17px);
  font-weight:900;
  letter-spacing:.18em
}
.logo,.menu-logo,.compact-logo,.floor-title,.section-title {
  color:var(--blue);
  font-family:Impact,Haettenschweiler,"Arial Black",sans-serif;
  letter-spacing:.025em;
  text-transform:uppercase;
  text-shadow:3px 3px 0 var(--yellow),7px 7px 0 var(--ink)
}
.logo {
  margin:0;
  font-size:clamp(68px,15vw,148px);
  line-height:.82
}
.logo span,.menu-logo span {
  display:block
}
.logo span+span,.menu-logo span+span {
  margin-top:.11em
}
.tagline {
  width:min(650px,95%);
  margin:clamp(25px,5vw,40px) auto 26px;
  font-size:clamp(14px,2.2vw,20px);
  line-height:1.55
}
.menu-logo {
  margin:0 0 24px;
  font-size:clamp(60px,13vw,122px);
  line-height:.84
}
.compact-logo {
  margin:0 0 34px;
  font-size:clamp(45px,9vw,82px)
}
.section-title {
  margin:0;
  font-size:clamp(48px,9vw,92px)
}
.main-menu {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:15px
}
.menu-button {
  border:0;
  padding:8px 12px;
  background:transparent;
  color:var(--yellow);
  font-weight:900;
  font-size:clamp(18px,3vw,28px);
  letter-spacing:.05em;
  cursor:pointer;
  text-shadow:0 0 12px rgba(255,211,107,.4)
}
.menu-button:hover,.menu-button:focus-visible {
  color:var(--orange);
  outline:2px solid var(--cream);
  outline-offset:4px
}
.pulse-button {
  animation:pulse 1.4s ease-in-out infinite
}
@keyframes pulse {
  50% {
    transform:scale(1.04);
    text-shadow:0 0 22px rgba(255,211,107,.95),0 0 4px rgba(255,211,107,.8)
  }
}
.player-chip {
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin:0 0 28px;
  padding:7px 10px;
  border:1px solid rgba(185,221,237,.25);
  border-radius:999px;
  color:var(--sky);
  font-size:11px;
  letter-spacing:.08em
}
.player-chip button {
  border:0;
  background:none;
  color:var(--orange);
  font-size:10px;
  cursor:pointer
}
.player-form {
  width:min(480px,100%);
  margin:auto
}
.player-form label {
  display:block;
  margin-bottom:18px;
  color:var(--yellow);
  font-weight:900
}
.terminal-input-row {
  display:flex;
  align-items:center;
  gap:9px;
  width:min(430px,100%);
  margin:0 auto 22px;
  color:var(--yellow);
  font-size:20px
}
.terminal-input-row input {
  flex:1;
  min-width:0;
  border:0;
  border-bottom:2px solid var(--sky);
  border-radius:0;
  padding:8px 4px;
  background:transparent;
  color:var(--cream);
  outline:none
}
.terminal-input-row input:focus {
  border-color:var(--yellow)
}
.player-list {
  display:grid;
  gap:9px;
  width:min(440px,100%);
  margin:25px auto
}
.player-option {
  border:1px solid rgba(185,221,237,.25);
  border-radius:8px;
  padding:12px;
  background:rgba(8,16,31,.55);
  color:var(--cream);
  text-align:left;
  cursor:pointer
}
.player-option:hover,.player-option.active {
  border-color:var(--orange);
  color:var(--yellow)
}
.scroll-screen {
  position:absolute;
  inset:0;
  width:auto;
  height:auto;
  max-width:none;
  min-height:0;
  overflow:hidden;
  text-align:left
}
.screen-scroller {
  position:absolute;
  inset:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
  padding:clamp(62px,8vw,82px) clamp(14px,4vw,42px) 54px
}
.back-button {
  position:absolute;
  top:20px;
  left:24px;
  z-index:12;
  border:0;
  background:transparent;
  color:var(--sky);
  font-weight:900;
  cursor:pointer;
  letter-spacing:.06em
}
.back-button:hover,.back-button:focus-visible {
  color:var(--yellow);
  outline:none
}
.info-type,.letter {
  max-width:760px;
  margin-left:auto;
  margin-right:auto
}
.info-type {
  margin-bottom:28px;
  color:var(--orange);
  font-size:clamp(13px,1.8vw,18px);
  line-height:1.5;
  font-weight:900
}
.letter {
  padding:clamp(22px,4vw,38px);
  border:3px solid rgba(255,248,233,.72);
  border-radius:18px;
  background:rgba(8,16,31,.72);
  font-family:"Trebuchet MS",Arial,sans-serif;
  font-size:clamp(15px,2vw,18px);
  line-height:1.72
}
.letter p {
  margin:0 0 1.2em
}
.letter strong {
  color:var(--yellow)
}
.unlock-form {
  margin-top:34px;
  padding-top:28px;
  border-top:2px solid rgba(185,221,237,.2);
  font-family:Consolas,"Lucida Console",monospace;
  text-align:center
}
.unlock-form label {
  display:block;
  color:var(--yellow);
  font-weight:900
}
.hint {
  color:var(--sky);
  font-size:.9em
}
.second-hint strong {
  color:var(--yellow)
}
.password-status {
  min-height:26px;
  font-weight:900
}
.password-status.success {
  color:var(--green)
}
.password-status.error {
  color:var(--orange)
}
.small-action {
  display:block;
  margin:18px auto 0;
  border:1px solid rgba(185,221,237,.3);
  border-radius:999px;
  padding:7px 10px;
  background:transparent;
  color:var(--sky);
  font-family:Consolas,monospace;
  font-size:10px;
  cursor:pointer
}
.hardware-scrollbar {
  scrollbar-width:auto;
  scrollbar-color:var(--orange) rgba(5,6,10,.72)
}
.hardware-scrollbar::-webkit-scrollbar {
  width:14px
}
.hardware-scrollbar::-webkit-scrollbar-track {
  background:rgba(5,6,10,.72);
  border-left:2px solid var(--navy)
}
.hardware-scrollbar::-webkit-scrollbar-thumb {
  min-height:44px;
  border:3px solid var(--navy);
  border-radius:4px;
  background:repeating-linear-gradient(to bottom,var(--orange) 0,var(--orange) 8px,var(--navy) 8px,var(--navy) 10px,var(--orange) 10px,var(--orange) 18px)
}
.floor-scroll {
  padding-top:72px
}
.floor-nav {
  position:absolute;
  top:20px;
  left:24px;
  right:34px;
  z-index:12;
  display:flex;
  align-items:center;
  justify-content:space-between;
  pointer-events:none
}
.floor-nav-button {
  pointer-events:auto;
  display:inline-flex;
  align-items:center;
  min-height:44px;
  border:0;
  padding:5px 0;
  background:transparent;
  color:var(--sky);
  font:inherit;
  font-weight:900;
  letter-spacing:.06em;
  cursor:pointer
}
.floor-nav-button:hover,.floor-nav-button:focus-visible {
  color:var(--yellow);
  outline:none
}
.floor-header {
  text-align:center;
  padding:10px 0 36px
}
.floor-header .eyebrow {
  margin-bottom:10px
}
.floor-title {
  margin:0;
  font-size:clamp(52px,9vw,94px);
  line-height:.9
}
.floor-tagline {
  margin:20px 0 0;
  font-weight:900;
  font-size:clamp(14px,2vw,19px);
  letter-spacing:.06em
}
.featured-section,.library-section {
  max-width:900px;
  margin:0 auto
}
.library-section {
  margin-top:42px
}
.section-heading {
  display:flex;
  align-items:center;
  gap:13px;
  color:var(--orange);
  font-size:13px;
  font-weight:900;
  letter-spacing:.16em;
  white-space:nowrap
}
.section-rule {
  width:100%;
  height:2px;
  background:linear-gradient(90deg,var(--orange),transparent);
  opacity:.65
}
.featured-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:18px;
  margin-top:16px
}
.game-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:16px
}
.game-card {
  min-width:0;
  overflow:hidden;
  border:2px solid rgba(255,248,233,.7);
  border-radius:15px;
  background:rgba(8,16,31,.82);
  box-shadow:0 7px 0 rgba(5,6,10,.65);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease
}
.game-card:hover {
  border-color:rgba(239,160,102,.92);
  box-shadow:0 8px 0 rgba(5,6,10,.72),0 0 24px rgba(239,160,102,.52)
}
.featured-card {
  border-width:3px
}
.game-art {
  position:relative;
  aspect-ratio:1/1;
  display:grid;
  place-items:center;
  overflow:hidden;
  border-bottom:2px solid rgba(255,248,233,.55);
  background:radial-gradient(circle at 65% 35%,rgba(185,221,237,.14),transparent 25%),linear-gradient(145deg,#17213d,#0b1428 70%)
}
.game-art::before {
  content:"";
  position:absolute;
  inset:10px;
  border:1px solid rgba(185,221,237,.18);
  border-radius:9px
}
.art-image {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover
}
.game-art.has-art::before {
  z-index:1;
  border-color:rgba(255,248,233,.22)
}
.game-art.has-art .art-label,.game-art.has-art .art-number {
  display:none
}
.art-number {
  position:absolute;
  left:14px;
  bottom:7px;
  color:rgba(255,211,107,.16);
  font-family:Impact,Haettenschweiler,"Arial Black",sans-serif;
  font-size:clamp(54px,8vw,90px);
  line-height:1
}
.art-label {
  position:relative;
  color:rgba(185,221,237,.48);
  font-size:10px;
  font-weight:900;
  letter-spacing:.22em
}
.game-card-body {
  padding:13px
}
.game-card-heading {
  display:flex;
  align-items:flex-start;
  gap:7px
}
.title-stack {
  flex:1;
  min-width:0;
  position:relative;
  min-height:44px;
  overflow:hidden
}
.game-card h3 {
  margin:0;
  color:var(--cream);
  font-size:clamp(13px,1.7vw,17px);
  line-height:1.25;
  transition:color .18s ease
}
.featured-card h3 {
  font-size:clamp(17px,2.5vw,24px)
}
.game-number {
  display:inline-block;
  width:2.65em;
  margin-left:-2.65em;
  color:var(--yellow)
}
.title-stack h3:has(.game-number) { padding-left:2.65em }
.card-tagline {
  margin:5px 0 0;
  color:var(--sky);
  font-size:14px;
  line-height:1.3;
  font-weight:700;
  text-shadow:0 1px 2px rgba(0,0,0,.6);
  opacity:0;
  transform:translateY(4px);
  max-height:0;
  overflow:hidden;
  transition:opacity .18s ease,transform .18s ease,max-height .22s ease
}
.game-card:hover .card-tagline,
.game-card:focus-within .card-tagline {
  opacity:1;
  transform:none;
  max-height:60px
}
.favorite-button,.asha-pick {
  flex:0 0 auto;
  line-height:1;
  font-size:18px
}
.favorite-button {
  border:0;
  padding:0 1px;
  background:transparent;
  color:rgba(255,248,233,.28);
  cursor:pointer
}
.favorite-button:hover,.favorite-button:focus-visible,.favorite-button.is-favorite {
  color:var(--yellow);
  outline:none;
  text-shadow:0 0 10px rgba(255,211,107,.55)
}
.asha-pick {
  color:var(--pink);
  text-shadow:0 0 9px rgba(243,154,184,.45)
}
.card-footer {
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:8px;
  margin-top:9px;
  padding-top:9px;
  border-top:1px solid rgba(185,221,237,.14)
}
.played-status,.game-meta {
  font-size:8px;
  font-weight:900;
  letter-spacing:.04em;
  white-space:nowrap
}
.played-status {
  color:rgba(185,221,237,.58)
}
.played-status.is-played {
  color:var(--green)
}
.game-meta {
  color:rgba(255,248,233,.62);
  overflow:hidden;
  text-overflow:ellipsis
}
.game-meta b {
  color:var(--orange)
}
.play-link {
  color:var(--orange);
  font-size:10px;
  font-weight:900;
  text-decoration:none
}
.play-link:hover,.play-link:focus-visible {
  color:var(--yellow);
  outline:none
}
.library-topline {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px
}
.library-topline .section-heading {
  flex:1
}
.floor-filters {
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:6px
}
.filter-button {
  border:1px solid rgba(185,221,237,.28);
  border-radius:999px;
  padding:6px 9px;
  background:rgba(5,6,10,.3);
  color:rgba(255,248,233,.62);
  font-size:9px;
  font-weight:900;
  cursor:pointer
}
.filter-button:hover,.filter-button:focus-visible,.filter-button.active {
  border-color:var(--yellow);
  color:var(--yellow);
  outline:none
}
.leaderboard-content {
  max-width:900px;
  margin:0 auto
}
.empty-state {
  display:grid;
  gap:12px;
  place-items:center;
  max-width:560px;
  margin:0 auto;
  padding:46px 22px 40px;
  border:3px solid var(--cream);
  border-radius:18px;
  background:rgba(8,16,31,.82);
  box-shadow:0 8px 0 rgba(5,6,10,.7),inset 0 0 40px rgba(94,127,196,.14);
  text-align:center
}
.empty-trophy {
  color:var(--yellow);
  font-size:46px;
  line-height:1;
  text-shadow:3px 3px 0 var(--ink)
}
.empty-state strong {
  color:var(--yellow);
  font-family:Impact,Haettenschweiler,"Arial Black",sans-serif;
  font-size:clamp(30px,5vw,44px);
  font-weight:400;
  letter-spacing:.03em;
  text-shadow:3px 3px 0 var(--ink)
}
.empty-state span {
  color:var(--sky)
}
.empty-play {
  min-height:44px;
  margin-top:8px
}
.score-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:start;
  gap:16px
}
.score-board {
  min-width:0;
  overflow:hidden;
  border:2px solid rgba(255,248,233,.7);
  border-radius:14px;
  background:rgba(8,16,31,.82);
  box-shadow:0 6px 0 rgba(5,6,10,.65)
}
.score-board.has-scores {
  border:3px solid var(--cream);
  box-shadow:0 7px 0 rgba(5,6,10,.7),0 0 22px rgba(94,127,196,.2)
}
.score-board header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:11px 14px
}
.score-board.has-scores header {
  border-bottom:2px solid rgba(255,248,233,.25);
  background:linear-gradient(90deg,rgba(94,127,196,.28),transparent)
}
.score-board h3 {
  min-width:0;
  margin:0;
  overflow:hidden;
  color:var(--cream);
  font-family:Impact,Haettenschweiler,"Arial Black",sans-serif;
  font-size:clamp(17px,2.2vw,21px);
  font-weight:400;
  letter-spacing:.04em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap
}
.score-board.is-empty h3 {
  color:rgba(255,248,233,.72);
  font-size:16px
}
.board-number {
  margin-right:4px;
  color:var(--yellow)
}
.score-board.is-empty .board-number {
  color:rgba(255,211,107,.6)
}
.metric {
  flex:none;
  border:1px solid rgba(185,221,237,.45);
  border-radius:999px;
  padding:3px 8px;
  color:var(--sky);
  font-size:9px;
  font-weight:900;
  letter-spacing:.14em
}
.no-scores {
  margin:-4px 14px 11px;
  color:rgba(185,221,237,.5);
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em
}
.score-board ol {
  margin:0;
  padding:8px 10px 10px;
  list-style:none
}
.score-board li {
  display:grid;
  grid-template-columns:52px auto minmax(12px,1fr) auto;
  align-items:center;
  gap:8px;
  min-height:34px;
  padding:4px 6px;
  border-radius:8px;
  color:var(--sky);
  font-weight:900;
  animation:scoreIn .4s cubic-bezier(.2,1.2,.4,1) both;
  animation-delay:calc(var(--i) * 70ms)
}
.score-board li+li {
  margin-top:3px
}
@keyframes scoreIn {
  from { opacity:0; transform:translateX(-14px) }
  to { opacity:1; transform:none }
}
.score-board .rank {
  position:relative;
  color:rgba(185,221,237,.65);
  font-size:11px;
  letter-spacing:.08em
}
.score-board .player {
  min-width:0;
  overflow:hidden;
  color:var(--cream);
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
  letter-spacing:.04em
}
.score-board .leader {
  height:2px;
  align-self:end;
  margin-bottom:10px;
  background:repeating-linear-gradient(90deg,rgba(185,221,237,.4) 0 3px,transparent 3px 7px)
}
.score-board .value {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  line-height:1.1;
  text-align:right
}
.score-board .value strong {
  color:var(--yellow);
  font-size:15px;
  letter-spacing:.04em;
  white-space:nowrap
}
.score-board .value small {
  color:rgba(185,221,237,.7);
  font-size:9px;
  letter-spacing:.08em;
  white-space:nowrap
}
.score-board li.rank-1 {
  border:2px solid var(--yellow);
  background:rgba(255,211,107,.12);
  animation:scoreIn .4s cubic-bezier(.2,1.2,.4,1) both,firstGlow 1.2s ease-out .45s 1
}
.score-board li.rank-1 .rank {
  color:var(--yellow)
}
.score-board li.rank-1 .value strong {
  font-size:18px;
  text-shadow:2px 2px 0 var(--ink)
}
.crown {
  position:absolute;
  top:-14px;
  left:0;
  color:var(--yellow);
  font-size:13px;
  font-style:normal
}
.score-board li.rank-2 {
  border:1px solid rgba(185,221,237,.6);
  background:rgba(185,221,237,.08)
}
.score-board li.rank-2 .rank {
  color:var(--cream)
}
.score-board li.rank-3 {
  border:1px solid rgba(239,160,102,.7);
  background:rgba(239,160,102,.08)
}
.score-board li.rank-3 .rank {
  color:var(--orange)
}
@keyframes firstGlow {
  0% { box-shadow:0 0 0 rgba(255,211,107,0) }
  40% { box-shadow:0 0 18px rgba(255,211,107,.55) }
  100% { box-shadow:0 0 0 rgba(255,211,107,0) }
}
@media(max-width:700px) {
  .score-grid {
    grid-template-columns:1fr;
    gap:12px
  }
}
@media(max-width:520px) {
  .score-board li {
    grid-template-columns:44px minmax(0,auto) minmax(8px,1fr) auto;
    gap:6px;
    padding:4px
  }
  .score-board .rank {
    font-size:10px
  }
  .score-board header {
    padding:10px 12px
  }
}

.skip-button {
  position:fixed;
  right:max(18px,env(safe-area-inset-right));
  bottom:max(18px,env(safe-area-inset-bottom));
  z-index:50;
  border:1px solid rgba(255,248,233,.3);
  border-radius:999px;
  padding:8px 12px;
  background:rgba(5,6,10,.72);
  color:rgba(255,248,233,.66);
  font:inherit;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  cursor:pointer
}
.skip-button:hover,.skip-button:focus-visible {
  color:var(--cream);
  border-color:var(--orange);
  outline:none
}
@media(max-width:760px) {
  .game-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .library-topline {
    align-items:flex-start;
    flex-direction:column
  }
  .floor-filters {
    justify-content:flex-start
  }
  .card-footer {
    grid-template-columns:auto 1fr
  }
  .play-link {
    grid-column:1/-1;
    text-align:right
  }
}
@media(max-width:520px) {
  .crt {
    padding:8px
  }
  .crt-glass {
    height:calc(100dvh - 16px);
    min-height:0;
    border-radius:25px;
    box-shadow:0 0 0 5px var(--ink),0 0 0 8px var(--blue),inset 0 0 55px rgba(0,0,0,.65)
  }
  .terminal {
    padding:26px 18px
  }
  .logo {
    font-size:clamp(62px,24vw,102px)
  }
  .menu-logo {
    font-size:clamp(58px,22vw,94px)
  }
  .screen-scroller {
    padding:58px 12px 38px
  }
  .back-button {
    top:15px;
    left:13px
  }
  .letter {
    padding:20px 16px;
    border-width:2px
  }
  .floor-scroll {
    padding:68px 13px 42px
  }
  .floor-nav {
    top:15px;
    left:14px;
    right:22px
  }
  .floor-nav-button {
    font-size:11px
  }
  .floor-header {
    padding:10px 0 30px
  }
  .featured-grid,.game-grid {
    grid-template-columns:1fr
  }
  .featured-grid {
    gap:14px
  }
  .game-grid {
    gap:12px
  }
  .game-card {
    box-shadow:0 6px 0 rgba(5,6,10,.65)
  }
  .game-card:active {
    border-color:var(--orange);
    box-shadow:0 6px 0 rgba(5,6,10,.72),0 0 18px rgba(239,160,102,.45)
  }
  .game-art {
    aspect-ratio:1/1
  }
  .title-stack {
    height:auto;
    overflow:visible
  }
  .game-card h3,.featured-card h3 {
    font-size:18px;
    transform:none!important;
    opacity:1!important
  }
  .card-tagline {
    margin-top:6px;
    opacity:1;
    transform:none!important;
    max-height:none;
    color:var(--sky);
    font-size:13px;
    line-height:1.35
  }
  .card-footer {
    grid-template-columns:auto 1fr auto;
    margin-top:11px
  }
  .played-status,.game-meta {
    font-size:8px
  }
  .play-link {
    grid-column:auto;
    text-align:right
  }
  .favorite-button,.asha-pick {
    font-size:20px;
    min-width:24px;
    min-height:24px
  }
  .floor-filters {
    gap:7px
  }
  .filter-button {
    padding:7px 9px
  }
  .hardware-scrollbar::-webkit-scrollbar {
    width:9px
  }
}
@media(hover:none) {
  .game-card:hover {
    border-color:rgba(255,248,233,.7);
    box-shadow:0 7px 0 rgba(5,6,10,.65)
  }
  .card-tagline {
    opacity:1;
    transform:none;
    max-height:none
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important
  }
}
/* PRESS START gate before the typed intro (needed so the typing sounds can play) */
.boot-text.press-start{animation:pressBlink 1s steps(2,start) infinite;cursor:pointer}
.boot-text.press-start::after{display:none}
@keyframes pressBlink{to{visibility:hidden}}
/* brighter PLAY */
#playButton{color:#ffe08a;text-shadow:0 0 14px rgba(255,211,107,.7)}


/* mobile fit pass */
button,a,.game-card,.play-link,.favorite-button,.filter-button,.skip-button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.menu-button,.floor-nav-button,.back-button,.small-action,.filter-button,.play-link,.favorite-button,.player-chip button,.skip-button{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}
.game-card{touch-action:manipulation}.game-card-body{min-height:88px}.play-link{padding:8px 10px;border-radius:999px;background:rgba(239,160,102,.12)}
@media (max-width:760px){.crt-glass{min-height:0}.menu-button{padding:10px 14px}.favorite-button{font-size:24px}.filter-button{padding:8px 11px}.skip-button{font-size:11px;padding:10px 14px}}
@media (max-height:430px) and (orientation:landscape){
  .crt{padding:8px}.crt-glass{width:calc(100vw - 18px);height:calc(100dvh - 18px);min-height:0;border-radius:22px;box-shadow:0 0 0 4px var(--ink),0 0 0 7px var(--blue),inset 0 0 45px rgba(0,0,0,.65)}
  .terminal{padding:14px 18px}.logo{font-size:clamp(44px,10vw,82px)}.menu-logo{font-size:clamp(40px,9vw,72px);margin-bottom:12px}.tagline{margin:12px auto 12px;font-size:14px;line-height:1.35}.main-menu{gap:8px}.menu-button{font-size:clamp(16px,3.6vw,22px);padding:8px 14px;min-height:44px}
  .compact-logo,.section-title{font-size:clamp(34px,8vw,60px);margin-bottom:12px}.screen-scroller{padding:52px 12px 26px}.floor-scroll{padding:52px 12px 30px}.floor-header{padding:0 0 14px}.floor-title{font-size:clamp(38px,8vw,64px)}.floor-tagline{margin-top:8px;font-size:12px}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.game-card-body{padding:9px;min-height:76px}.game-art{display:none}.game-card h3,.featured-card h3{font-size:14px}.card-tagline{font-size:11px;line-height:1.25}.card-footer{grid-template-columns:1fr auto;gap:6px}.game-meta{display:none}.library-section{margin-top:18px}.library-topline{gap:8px}.filter-button{font-size:8px;min-height:36px}.skip-button{right:10px;bottom:10px;min-height:44px}
}

/* first visit: the letter must be unlocked before leaving INFO */
body.info-locked #infoScreen .menu-return{display:none}
.skip-button[hidden]{display:none!important}
