/* Shared public-site theme. Player canvases keep their own dark backgrounds. */
:root {
  color-scheme: light;
  --bg: #fff;
  --panel: #fff;
  --panel2: #f6f7f9;
  --line: #e1e5ea;
  --text: #202938;
  --muted: #526071;
  --lime: #955100;
  --green: #236944;
  --gold: #8a5000;
  --danger: #ad3529;
  --button: #ffcb58;
}
body { background: #fff; color: var(--text); }
.top { background: #fffffff5; border-bottom: 2px solid #edb247; }
.nav a, .side a, footer a, .site-footer a { color: #344154; }
.nav a:hover, .side a:hover, footer a:hover, .site-footer a:hover { color: var(--lime); }
.age, .chip { border-color: #dce1e7; color: #536071; background: #fafbfc; }
.chip.hot { background: #fff7e8; border-color: #ecd5a6; color: #805009; }
.crumbs, footer, .site-footer, .updated { color: #637081; }
.lead, .intro { color: #526071; }
.side { background: #fafbfc; }
.side a { border-color: var(--line); }
.card, .bonus-card { background: #fff; border-color: var(--line); border-radius: 13px; box-shadow: 0 3px 12px #20293806; transition: border-color .18s, box-shadow .18s, transform .18s; }
.card:hover { border-color: #c8a363; box-shadow: 0 6px 20px #2029380d; }
.card h3, .card h2 { line-height: 1.35; }
.card small, .game-card-body small, .filter-group > span, .bonus-badge { color: #84510b; }
.more, .text-link, .source-list a, .source-line a, .inline-link, .back { color: var(--lime); }
.content > section { border-color: var(--line); }
table { background: #fff; }
th { color: #344154; background: #f5f6f8; }
th, td { border-color: var(--line); }
.note { background: #f5f8f6; color: #40594b; border-left-color: #397756; }
.warning { background: #fff8eb; color: #6c501f; border-left-color: #dda742; }
.empty { background: #fafbfc; border-color: #d3dae3; }
.catalog-toolbar { background: #fafbfc; }
.filter-chip { background: #fff; border-color: #d7dde5; color: #425064; }
.filter-chip:hover { background: #fff7e5; border-color: #dfb75f; color: #614008; }
.filter-chip.active { background: var(--button); border-color: #edbd53; color: #30250c; }
.mechanic-select { background: #fff; border-color: #d7dde5; }
.mechanic-select select { background: #fff; color: #344154; }
.slot-search input, .bonus-toolbar input { background: #fff; border-color: #d7dde5; color: var(--text); }
.slot-search input::placeholder, .bonus-toolbar input::placeholder { color: #718092; }
.pagination a { background: #fff; color: #425064; }
.pagination a:hover { background: #fff8e8; border-color: #dfb75f; }
.pagination a.active { background: var(--button); border-color: #edbd53; color: #30250c; }
.btn, .spin { background: var(--button); color: #30250c; border: 1px solid #edbd53; }
.btn:hover, .spin:hover { background: #ffd77d; }
.btn.alt { background: #fff; border-color: #d2d9e2; color: #344154; }
.btn.alt:hover { background: #f7f8fa; }
.card-play, .player-play { background: #ffcb58f5; color: #30250c; }
.demo-shell { background: #fff; border-color: #d9dfe6; box-shadow: 0 12px 35px #2029380c; }
.demo-head { background: #fafbfc; border-color: var(--line); }
.demo-head b { color: #344154; }
.demo-badge { background: #fff0c9; color: #6d4800; }
.demo-status { color: #425064; }
.demo-note { color: #637081; }
.bonus-card > small { color: #637081; }
.operator-mark { background: #fff4d6; color: #805009; }
.bonus-value { color: #805009; }
.home-banner {
  border-color: #e6dccb !important;
  background: linear-gradient(90deg,#fff 0%,#fffffff0 38%,#ffffffb8 54%,#ffffff00 78%),url('/assets/hero-desktop-v2.png') center/cover no-repeat;
  box-shadow: 0 6px 25px #20293806;
}
.banner-copy h1, .banner-copy h2 { color: #202938; }
.banner-copy h1 span, .banner-copy h2 span { color: #955100; }
.banner-copy p { color: #425064; max-width: 500px; }
.banner-copy small { display: inline-block; padding: 4px 8px; border-radius: 7px; background: #fffffff2; color: #536071; }
.banner-copy .eyebrow { color: #805009; }
.kicker { background: #fff6e1; border-color: #ebd5a3; color: #805009; }
.page .card h2, .policy .card h2, .mini b { color: #344154; }
.page .card p, .page .card li, .policy .card p, .policy .card li { color: #526071; }
.policy h1 span { color: var(--gold); }
.seal { background: #eef7f1; color: #256341; border-color: #bed8c6; }
.mini { background: #fafbfc; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #3974ba; outline-offset: 4px; }
.article-page .hero { padding: 48px 0 32px; }
.article-page .hero h1 { max-width: 950px; font-size: clamp(2.15rem,4.1vw,3.45rem); line-height: 1.17; letter-spacing: -.035em; }
.article-page .lead { max-width: 810px; font-size: 1.08rem; }
.article-page .layout { grid-template-columns: minmax(0,1fr) 260px; gap: 52px; }
.article-page .content { font-size: 1.035rem; line-height: 1.85; }
.article-page .content > section { padding: 32px 0; scroll-margin-top: 110px; }
.article-page .content > section:first-child { border-top: 0; padding-top: 0; }
.article-page .content h2 { font-size: clamp(1.5rem,2.5vw,2rem); line-height: 1.3; }
.article-page .content h3 { margin: 24px 0 10px; font-size: 1.15rem; line-height: 1.4; }
.article-page .content p, .article-page .content li { color: #465366; }
.article-page .content p { margin: 0 0 18px; }
.article-page .content li { margin: 9px 0; }
.article-page .content a:not(.card):not(.btn) { color: #8a4c00; text-underline-offset: 3px; }
.article-page .content .card p { margin: 0; font-size: .9rem; }
.article-toc { padding: 20px 24px; background: #fafbfc; border: 1px solid var(--line); border-radius: 13px; }
.article-toc strong { display: block; margin-bottom: 10px; }
.article-toc ul { margin: 0; padding: 0; list-style: none; font-size: .92rem; }
.article-toc a { text-decoration: none; }
.article-toc a:hover { text-decoration: underline; }
.article-page .table-wrap table { min-width: 540px; font-size: .9rem; line-height: 1.6; }
.article-page .table-wrap th { text-transform: none; letter-spacing: 0; font-size: .85rem; }
.article-page .article-sources { font-size: .9rem; }
.article-page .article-sources p { color: #637081; }
@media(max-width:900px) {
  .article-page .layout { grid-template-columns: 1fr; gap: 24px; }
  .article-page .side { order: initial; }
}
@media(max-width:620px) {
  .home-banner { background: linear-gradient(180deg,#fff 0%,#fffffff7 48%,#ffffffe0 72%,#ffffff20 100%),url('/assets/hero-mobile-v2.png') center/cover no-repeat; }
  .banner-copy h1 { font-size: 2.5rem; }
  .banner-copy p { font-size: .97rem; }
  .article-page .hero { padding: 30px 0 24px; }
  .article-page .hero h1 { font-size: 2.15rem; }
  .article-page .content { font-size: 1rem; }
  .article-toc { padding: 18px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .card, .card-media img { transition: none; }
  .card:hover, .game-card:hover .card-media img { transform: none; }
}
.article-card { padding: 0; overflow: hidden; }
.article-card { position: relative; display: flex; flex-direction: column; }
.article-card-link { display: flex; flex: 1; flex-direction: column; color: inherit; text-decoration: none; }
.article-category { position: absolute; z-index: 1; top: 10px; left: 10px; max-width: calc(100% - 20px); padding: 5px 9px; background: #ffffffed; color: #704000; font-size: .7rem; font-weight: 700; border: 1px solid #eadab8; border-radius: 6px; text-decoration: none; }
.release-date { margin-bottom: 9px; color: #637081; font-size: .75rem; }
.release-context { font-size: .95rem; color: #637081; }
.article-page .content .article-card-link { color: inherit; }
.article-page .content .article-category { color: #704000; }
.article-card-media { display: block; aspect-ratio: 16/9; background: #f7f5ef; }
.article-card-media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.article-card-body { display: flex; flex: 1; flex-direction: column; padding: 18px 20px 22px; }
.article-card-body h3 { margin: 0 0 10px; }
.article-cover { margin: 0 0 30px; }
.article-cover img { display: block; width: 100%; height: auto; border-radius: 13px; }
.article-cover figcaption { margin-top: 9px; font-size: .75rem; line-height: 1.6; color: #637081; }
.reading-topics { display: flex; flex-wrap: wrap; gap: 9px; margin: 0 0 24px; }
.reading-topics a { padding: 9px 13px; border: 1px solid var(--line); border-radius: 20px; background: #fafbfc; color: #465366; font-size: .85rem; text-decoration: none; }
.reading-topics a:hover { border-color: #d9aa3e; color: #8a4c00; }
.topic-hub .reading-topics { display: none; }
.topic-hub .category-directory { display: flex; }
.category-directory a[aria-current="page"] { border-color: #d9aa3e; background: #fff4d6; }
.reading-library .slot-search { margin-top: 22px; }
.pagination button { font: inherit; border: 1px solid var(--line); background: white; color: #465366; border-radius: 8px; padding: 10px 14px; cursor: pointer; }
.pagination button.active { background: #fff0c9; border-color: #d9aa3e; }
.top { z-index: 30; }
.top .wrap { position: relative; }
.desktop-nav { overflow: visible; gap: 18px; }
.nav-group { display: flex; align-items: center; gap: 4px; position: relative; }
.nav-dropdown summary { cursor: pointer; list-style: none; padding: 12px 4px; color: #6c7786; }
.nav-dropdown summary::-webkit-details-marker, .mobile-menu summary::-webkit-details-marker { display: none; }
.nav-panel { position: absolute; right: 0; top: 100%; min-width: 240px; padding: 10px; background: white; border: 1px solid var(--line); box-shadow: 0 12px 30px #20293818; border-radius: 10px; }
.nav-panel a { display: block; padding: 11px 12px; white-space: normal; border-radius: 6px; }
.nav-panel a:hover { background: #fff4d6; }
.mobile-menu { display: none; }
summary:focus-visible { outline: 3px solid #3974ba; outline-offset: 3px; }
.site-policy-footer .wrap { display: grid; grid-template-columns: minmax(220px,1fr) minmax(0,2fr); gap: 24px; align-items: start; }
.home-banner.white-demo-banner { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.05fr); align-items: center; gap: 12px; min-height: 0 !important; padding: 36px 42px; background: #fff; border: 1px solid #e6e8ed !important; border-radius: 20px; overflow: hidden; }
.white-demo-banner .banner-copy { position: relative; width: auto; max-width: none; padding: 0; }
.white-demo-banner .banner-copy h1 { margin-top: 14px; font-size: clamp(2.3rem,4vw,3.8rem); }
.white-demo-banner .banner-copy p { max-width: 470px; }
.banner-art { display: block; min-width: 0; }
.banner-art img { display: block; width: 100%; height: auto; object-fit: contain; }
.white-demo-banner .banner-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.section-heading { flex-wrap: wrap; }
.section-heading > div { min-width: 0; }
.section-heading > .text-link { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
@media(max-width:900px) { .home-banner.white-demo-banner { padding: 28px; gap: 0; } }
@media(max-width:700px) {
  .home-banner.white-demo-banner { grid-template-columns: 1fr; padding: 26px 22px 8px; gap: 4px; background: #fff; }
  .white-demo-banner .banner-copy h1 { font-size: clamp(2.1rem,9vw,3rem); line-height: 1.12; }
  .white-demo-banner .banner-copy p { font-size: .98rem; margin-bottom: 20px; }
  .white-demo-banner .banner-actions { gap: 10px; }
  .white-demo-banner .banner-actions .btn { flex: 1 1 145px; justify-content: center; text-align: center; padding: 12px 14px; }
  .white-demo-banner .banner-actions .btn { padding: 12px 10px; font-size: .85rem; line-height: 1.4; min-height: 44px; }
  .white-demo-banner .banner-copy small { margin-top: 13px; padding-left: 0; font-size: .75rem; }
  .banner-art { max-width: 500px; width: 100%; justify-self: center; }
}
.footer-about { display: grid; gap: 9px; }
.footer-about small { line-height: 1.6; color: #657284; }
.footer-policy-links { display: flex; flex-wrap: wrap; gap: 12px 20px; }
.site-policy-footer .footer-policy-links a { margin: 0; line-height: 1.7; }
.policy-page .content section { max-width: 900px; }
.analytics-choice-controls { display: flex; flex-wrap: wrap; gap: 12px; }
.catalog-discovery-note { color: #657284; font-size: .82rem; line-height: 1.6; }
@media(max-width:700px) { .site-policy-footer .wrap { grid-template-columns: 1fr; } }
@media(max-width:900px) {
  .top .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu > summary { display: flex; gap: 14px; align-items: center; cursor: pointer; list-style: none; padding: 12px 10px; font-weight: 700; color: #344154; border: 1px solid var(--line); border-radius: 8px; }
  .mobile-menu > nav { position: absolute; top: calc(100% + 1px); left: 0; right: 0; max-height: calc(100dvh - 92px); overflow: auto; padding: 16px 22px 24px; background: white; border: 1px solid var(--line); border-radius: 0 0 12px 12px; box-shadow: 0 15px 30px #20293818; }
  .mobile-menu nav a { display: block; color: #465366; padding: 10px 0; font-size: .9rem; text-decoration: none; }
  .mobile-nav-group { border-bottom: 1px solid var(--line); padding-bottom: 9px; margin-bottom: 9px; }
  .mobile-menu nav .mobile-nav-title { font-weight: 750; color: #202938; font-size: 1rem; }
  .mobile-nav-group > div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 16px; }
  .topic-hub .side { order: initial; }
  .topic-hub .reading-topics { display: flex; margin: 20px 0 0; }
}
