/* Goetschi Arcade · Focused Experience v1.0.001
   CI source: Goetschi Labs CI v2 — original mark, Sora/Manrope, semantic
   colors, restrained light-axis and game artwork. No fake content or new brand.
   Loaded last: a reversible, mobile-first presentation layer. */

/* Keep the manufacturer's motif as a signature, never as competing content. */
body.arcade-portal::before, body.page-store::before {
  opacity: calc(var(--brand-art-opacity) * .12);
  -webkit-mask-image: linear-gradient(to bottom, rgba(0,0,0,.45), transparent 62%);
  mask-image: linear-gradient(to bottom, rgba(0,0,0,.45), transparent 62%);
}
.arcade-portal .portal-header {min-height:67px;gap:clamp(10px,1.4vw,22px)}
.arcade-portal .portal-search {max-width:390px;width:min(32%,390px);margin-left:auto;border-radius:var(--radius-control)}
.arcade-portal .header-actions,.arcade-portal .session-tools {gap:7px;min-width:0}
.arcade-portal .header-tv-link {
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:1px solid var(--line);background:transparent;color:var(--muted);
  border-radius:var(--radius-control);padding:7px 10px;min-height:40px;
  font:600 12px var(--font-body);text-decoration:none;white-space:nowrap;
}
.arcade-portal .header-tv-link svg {width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.arcade-portal .header-tv-link:hover,.arcade-portal .header-tv-link:focus-visible {color:var(--accent);border-color:var(--accent)}
.arcade-portal .header-settings {background:transparent}

/* Desktop: three unobtrusive horizontal destinations. No left navigation rail. */
@media (min-width:761px) {
  .arcade-portal .app-shell {display:block;min-height:0}
  .arcade-portal .portal-sidebar {
    display:flex;position:static;flex-direction:row;align-items:center;
    gap:4px;min-height:0;margin:0;padding:4px 0;
    border:0;border-bottom:1px solid var(--line);
  }
  .arcade-portal .portal-sidebar .portal-nav-link {
    min-height:43px;padding:10px 13px;gap:8px;color:var(--muted);
    border:0;border-bottom:2px solid transparent;border-radius:0;
    font-size:12px;font-weight:600;background:transparent;box-shadow:none;
  }
  .arcade-portal .portal-sidebar .portal-nav-link.current {
    color:var(--text);border-bottom-color:var(--accent);box-shadow:none;
  }
  .arcade-portal .portal-sidebar .portal-nav-link.current::before {display:none}
  .arcade-portal .portal-sidebar .portal-nav-link:hover {color:var(--text);background:color-mix(in srgb,var(--accent) 5%,transparent)}
  .arcade-portal .portal-main {padding:clamp(17px,2vw,28px) 0 35px}
}
.arcade-portal .portal-view h1 {letter-spacing:-.03em}
.arcade-portal .game-card,.arcade-portal .library-catalog-callout,.page-store .store-card {
  box-shadow:none;transition:border-color .16s ease;
}
.arcade-portal .game-card:hover,.page-store .store-card:hover {
  transform:none;box-shadow:none;border-color:var(--accent);
}
.arcade-portal .library-catalog-callout {
  padding:11px 14px;margin:11px 0 14px;border-radius:var(--radius-panel);
  background:var(--surface);
}
.arcade-portal .library-catalog-callout p {margin:3px 0 0;line-height:1.35}
.arcade-portal .library-quick-filters {border-top:0}
.arcade-portal .library-toolbar {margin:10px 0 15px;gap:8px}
.arcade-portal .library .game-grid {gap:12px}
.arcade-portal .library .game-card-tools {gap:6px}
.arcade-portal .library-advanced[open] {box-shadow:none}

/* The public welcome is one game-led view, not a long product brochure. */
.arcade-portal .landing-hero {padding:clamp(25px,4vw,58px) 0 clamp(22px,3vw,42px)}
.arcade-portal .landing-copy h1 {font-size:clamp(34px,4.4vw,61px);margin:13px 0 12px}
.arcade-portal .landing-copy .lede {font-size:clamp(13px,1.2vw,16px)}
.arcade-portal .landing-benefits {padding:12px 0 25px}
.arcade-portal .landing-benefit-grid article {padding-top:16px;padding-bottom:10px}
.arcade-portal .landing-bottom {padding:25px 0 35px}
.arcade-portal .landing-showcase {margin:0}
.arcade-portal .showcase-feature img {max-height:310px;object-fit:cover}

/* Store: useful games and licensed import first; massive introduction last. */
.page-store .shell {max-width:1390px}
.page-store .store-hero {
  margin:17px 0 19px;padding:clamp(16px,2vw,27px);
  border-radius:var(--radius-panel);background:var(--surface);
}
.page-store .store-hero h1 {font-size:clamp(27px,3.2vw,43px);margin:4px 0 8px}
.page-store .store-hero p:not(.section-kicker) {font-size:13px;line-height:1.5;margin:0}
.page-store .store-counter {margin-top:8px}
.page-store .store-counter strong {font-size:24px}
.page-store .archive-heading {margin-block:12px}
.page-store .archive-heading h2,.page-store .store-heading h2 {font-size:clamp(22px,2.4vw,30px)}
.page-store .archive-oneclick {border-radius:var(--radius-panel)}
.page-store .store-card {border-radius:var(--radius-panel)}
.page-store .store-grid {gap:11px;margin:12px 0 25px}
.page-store .store-card-body {padding:14px}
.page-store .store-card-footer {padding:9px 14px}
.page-store .archive-oneclick-source {color:var(--accent);font-size:11px;white-space:nowrap;text-decoration:none}
.page-store .archive-oneclick-source:hover {text-decoration:underline}
.page-store .rom-install-source {display:inline-flex;align-items:center;min-height:42px;color:var(--accent);font-size:12px;text-decoration:underline;text-underline-offset:3px}

/* Mobile: game's cover, search and three bottom tabs. No squeezed desktop UI. */
@media (max-width:760px) {
  body.arcade-portal::before,body.page-store::before {display:none}
  .arcade-portal .portal-header {padding:11px 0 7px;gap:8px}
  .arcade-portal .brand img {width:36px;height:36px}
  .arcade-portal .brand-copy strong {font-size:15px}
  .arcade-portal .brand-copy small {font-size:8px}
  .arcade-portal .header-actions {gap:5px}
  .arcade-portal .header-tv-link {width:40px;padding:7px;flex:0 0 40px}
  .arcade-portal .header-tv-link span {display:none}
  .arcade-portal .portal-search {width:100%;max-width:none;min-width:0;margin:0;grid-column:1/-1}
  .arcade-portal .landing-hero {padding:22px 0 20px;gap:20px}
  .arcade-portal .landing-copy h1 {font-size:clamp(35px,9.5vw,49px);margin:8px 0 12px}
  .arcade-portal .landing-copy .lede {font-size:14px}
  .arcade-portal .landing-benefits {padding:10px 0 20px}
  .arcade-portal .landing-bottom {padding:21px 0 34px}
  .arcade-portal .library-catalog-callout {padding:10px;gap:8px}
  .arcade-portal .mobile-portal-nav {background:var(--bg-elevated);border-top:1px solid var(--line)}
  .arcade-portal .mobile-portal-nav a {min-height:52px}
  .arcade-portal .portal-main {padding-top:11px;padding-bottom:calc(75px + env(safe-area-inset-bottom))}
  .page-store .site-header .primary-nav {overflow-x:auto;flex-wrap:nowrap}
  .page-store .site-header .primary-nav a {white-space:nowrap}
  .page-store .store-hero {margin:10px 0 12px;padding:13px}
  .page-store .store-hero h1 {font-size:27px}
  .page-store .store-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .page-store .store-card-body {padding:10px}
  .page-store .store-card-footer {padding:8px 10px}
}
@media (max-width:390px) {
  .arcade-portal .header-actions .theme-control select {width:75px;max-width:75px}
  .arcade-portal .header-actions .text-button {font-size:11px;padding-inline:6px}
  .arcade-portal .header-settings {flex:0 0 40px}
  .page-store .store-grid {grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce) {
  .arcade-portal .game-card,.page-store .store-card {transition:none}
}
