/* Shared finishing layer: readable controls, restrained neon, mobile-first tasks. */
html { background-color: #0c0a0b; }
body { --muted: #bfb2b7; background-color: #0c0a0b; }
body :is(button, input, select) { font-size: 16px; }
body :is(button, .btn, .hero-primary, .hero-secondary) { min-height: 44px; }
body :is(a, button, input, summary, select):focus-visible { outline: 2px solid #ff9ca9; outline-offset: 4px; }
body > header nav a { font-size: 13px; letter-spacing: .03em; }
body :is(.badge, .kicker, .eyebrow, .step, .room-label, .setup-action, .form-note, .breadcrumb, .difficulty) { font-size: 12px; }
body[data-mode] .hero .badge, body[data-mode] .setup-action { font-size: 12px; }
body[data-mode] .hero-sub { font-size: 15px; }
body .panel { background: #151114; border-color: #ffffff19; box-shadow: 0 12px 35px #0002; }
body :is(.ghost, .icon-btn) { box-shadow: none; }
body .article .page-switcher a { font-size: 12px; }
body footer { background: #100d0f; box-shadow: none; border-color: #ffffff12; }
body footer .footer-links { display: flex; flex-wrap: nowrap; align-items: center; gap: 4px; overflow-x: auto; padding: 6px 2px 14px; border: 0; border-bottom: 1px solid #ffffff12; border-radius: 0; background: none; scrollbar-width: thin; scrollbar-color: #79404d transparent; }
body footer .footer-links a { flex: 1 0 auto; min-height: 44px; padding: 10px 12px; gap: 7px; font-size: 12px; font-weight: 600; letter-spacing: 0; text-transform: none; white-space: nowrap; color: #c4b5bd; border-radius: 8px; }
body footer .footer-links a::before { width: 16px; height: 16px; color: #da8798; opacity: .9; }
body footer .footer-links a + a::after { display: none; }
body footer .footer-links a:hover { color: #fff; background: #bd35431a; transform: none; }
body footer .footer-links a:focus-visible { outline-offset: -2px; }
body footer .footer-links a[hreflang]::before { content: '↗'; background: none; mask: none; -webkit-mask: none; font-size: 17px; }
.home-page :is(.hero-facts, .hero-join, .join-kicker, .difficulty, .mode-label, .age-badge, .play) { font-size: 12px; }
.home-page .hero-actions a { font-size: 15px; }
.home-page .hero-secondary { background: #20151bcc; border-color: #b68a95; color: #fff; }
.home-page .hero-join { align-self: flex-start; padding-block: 10px; }
.home-page .hero-facts { flex-wrap: wrap; gap: 10px; }
.home-page .join { margin: 0 0 56px; border: 1px solid #ffffff24; background: #171115; box-shadow: none; scroll-margin-top: 125px; }
.home-page .join-form button { font-size: 14px; }
.home-page .join p { font-size: 15px; }
.home-page .mode-card { background: #171215; border-color: #ffffff20; box-shadow: none; overflow: hidden; }
.home-page .mode-card p { font-size: 15px; line-height: 1.65; }
.home-page .mode-card .hover-image { filter: none; }
.home-page .mode-card:nth-child(1) { border-top: 3px solid #ff5a68; background: radial-gradient(ellipse at 50% 0,#a72e3b22,transparent 70%),#171215; }
.home-page .mode-card:nth-child(2) { border-top: 3px solid #c64857; background: linear-gradient(135deg,transparent 60%,#8a263529 60%,transparent 62%),#171215; }
.home-page .mode-card:nth-child(3) { border-top: 3px solid #f3acb5; background: repeating-linear-gradient(125deg,transparent 0 38px,#c9586810 39px 40px),#171215; }
.home-page .mode-card:nth-child(4) { border-top: 3px solid #986371; background: radial-gradient(circle at 80% 30%,#c8617b1c,transparent 55%),#171215; }
.home-page .mode-card:hover { border-color: #ee7d8e; box-shadow: 0 12px 28px #0005; }
.home-page .mode-label { letter-spacing: 0; text-transform: none; }
.home-page .mode-card .play { background: #ffffff08; border-color: #ffffff22; color: #f5e9ed; box-shadow: none; }
.home-page .mode-recommended .play { background: #ad1730; border-color: #e84861; color: #fff; }
.home-page .support { padding-block: 24px; margin-block: 36px; background: #151013; box-shadow: none; }
.home-page .support-cards { transform: scale(.85); }
.home-page .guide-link { min-height: 110px; box-shadow: none; background: #171215; }
.more-guides { margin-top: 18px; text-align: left; }
.more-guides summary { display: list-item; width: fit-content; padding: 12px 0; color: #f1c7d0; cursor: pointer; font-size: 15px; }
.more-guides .guide-links { margin-top: 16px; }
.home-page .about { margin-top: 40px; }
.home-page .about > p { font-size: 15px; line-height: 1.75; }
.account-shell .auth-card .form-note, .account-shell .form-note { font-size: 13px; line-height: 1.6; }
.account-shell .auth-card label { font-size: 14px; }
.account-shell .auth-card .google-btn { font-size: 15px; }
.account-shell .perks li span { font-size: 14px; }
.setup-progress { display: flex; flex-wrap: wrap; gap: 10px 20px; list-style: none; padding: 0; margin: 0 0 24px; color: #b9aab1; font-size: 13px; }
.setup-progress li[aria-current="step"] { color: #ff9dad; }
.session-options { border: 0; padding: 0; margin: 20px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.session-options legend { font-size: 16px; font-weight: 650; margin-bottom: 12px; }
.session-options label { display: flex; align-items: flex-start; gap: 10px; padding: 18px 14px; border: 1px solid #ffffff25; border-radius: 12px; cursor: pointer; background: #ffffff03; }
.session-options label:has(input:checked) { border-color: #ee7187; background: #94213b22; }
.session-options input { width: 18px; height: 18px; flex: 0 0 18px; margin: 2px 0; accent-color: #eb4965; }
.session-options strong { display: block; font-size: 15px; }
.session-options small { display: block; margin-top: 6px; color: #c6b8bf; font-size: 13px; line-height: 1.5; }
.player-stepper { display: flex; gap: 8px; align-items: center; }
.player-stepper button { min-width: 44px; padding: 8px; background: #292026; border: 1px solid #ffffff25; box-shadow: none; }
body[data-mode] #playerCount { width: 80px; text-align: center; }
body[data-mode] #playerSetup[data-session="online"] > :is(h2,.row,.recommend,.resume),
body[data-mode] #playerSetup[data-session="local"] > #lobbyCta { display: none; }
body[data-mode] #playerSetup[data-session="online"] .lobby-cta { border: 0; padding-top: 0; margin-top: 0; }
body[data-mode] #playerSetup[data-session="online"] .lobby-cta button { background: #ad1730; color: #fff; border-color: #e84861; }
body[data-mode] #playerSetup:has(~ #nameInputs:not([hidden])) { display: none; }
.setup-back { margin: 0 0 20px; }
body[data-mode] #playground { display: none; }
body[data-mode] #gameArea .game-tools { gap: 10px; }
@media (max-width: 740px) {
  .account-shell #signedOut .account-access { grid-row: 1; }
  .account-shell .account-story { padding-top: 24px; }
  .account-shell .account-story h1 { font-size: 48px; }
  .home-page .home-hero, .home-page .home-hero-copy { min-height: 0; }
  .home-page .home-hero-copy { padding-top: 22px; padding-bottom: 28px; }
  .home-page .bar-status { margin-bottom: 22px; }
  .home-page .hero-kicker { margin-top: 0; font-size: 12px; }
  .home-page .home-logo { display: none; }
  .home-page .hero-actions { gap: 10px; }
  .home-page .hero-join { margin-bottom: 8px; }
  .home-page .join { margin-bottom: 36px; padding: 22px 18px; }
  .home-page .mode-card { padding-top: 40px; }
  .home-page .support-cards { display: none; }
  body[data-mode] #playerSetup .row { flex-wrap: wrap; }
  body[data-mode] #specialButton { flex: 0 0 auto; width: 100%; }
}
@media (max-width: 480px) {
  body > header { display: flex; flex-wrap: wrap; width: calc(100% - 20px); padding: 7px 9px; gap: 3px 8px; }
  body > header > a:first-child { margin-right: auto; }
  body > header nav { order: 2; flex: 1 0 100%; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 3px; overflow: visible; }
  body > header nav a { display: flex; justify-content: center; min-height: 44px; padding: 7px 2px; font-size: 12px; letter-spacing: 0; }
  .session-options { grid-template-columns: 1fr; }
  .home-page .hero-facts { font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .home-page .mode-card, .home-page .scene-cards img { transition: none; }
}
