/* State shell: scrollable content ends above the permanent IP notice. */
:root { --home-header-height: 64px; }
body { height: 100vh; height: 100dvh; min-height: 0; overflow: hidden; }
.marketing-viewport { position: fixed; inset: 0 0 var(--ip-bar-height, 120px); overflow: auto; overscroll-behavior-y: contain; scroll-padding-top: calc(var(--home-header-height) + 90px); }
.site-home-header { position: sticky; top: 0; z-index: 5; height: var(--home-header-height); display: flex; align-items: center; justify-content: flex-end; gap: 24px; padding: 7px 22px; background: linear-gradient(90deg, #1a2a44, #23334c); border-bottom: 1px solid #23334c; }
.home-icon { display: inline-flex; align-items: center; justify-content: center; width: 38px; min-height: 44px; color: #fff; background: transparent; border: 0; }
.home-icon:hover, .home-icon:focus-visible { background: transparent; color: #fff; outline: none; }
.navigation-band { position: sticky; top: var(--home-header-height); z-index: 4; }
nav a[aria-current=page] { background: linear-gradient(#ada991, #ece0bb); color: #693c2c; box-shadow: inset 0 2px 4px #6c675c50, inset 0 -2px #a77748; text-shadow: 0 1px #fff4d2; }
.home-play-slot { display: contents; }
.content { padding-bottom: 26px; }
[data-page]:focus { outline: none; }
.game-page .play-panel { max-width: 660px; margin: 0 auto; }
.game-rules-content { display: none; }
.game-page .panel-tagline { display: none; }
.game-page #play-heading { visibility: hidden; }
.game-page .game-rules-content { display: block; color: #343a45; }
.game-page .panel-content { height: auto; }
.game-page .game-rules-summary { max-width: 54em; }
.game-page .game-rules-summary h3 { margin: 0; color: #273244; font: 700 17px/1.35 Georgia, 'Times New Roman', serif; letter-spacing: .045em; }
.game-page .game-rules-summary p { margin: 11px 0 0; color: #48483f; font-size: 14px; line-height: 1.65; }
.game-page .game-rules-summary .game-rules-note { margin-top: 17px; color: #676457; font-size: 12px; line-height: 1.55; }
.game-page .game-rules { margin: 24px 0 28px; }
.game-page .game-rules summary { display: block; padding: 11px 14px; border-top: 1px solid #a89c83; border-bottom: 1px solid #a89c83; color: #693c2c; font-size: 13px; font-weight: 700; letter-spacing: .065em; text-align: center; cursor: pointer; }
.game-page .game-rules summary::-webkit-details-marker { display: none; }
.game-page .game-rules summary::marker { content: ''; }
.game-page .game-rules summary:hover { background: #fff5dd55; }
.game-page .game-rules-expanded-label { display: none; }
.game-page .game-rules[open] .game-rules-collapsed-label { display: none; }
.game-page .game-rules[open] .game-rules-expanded-label { display: inline; }
.game-page .game-rules-full { margin-top: 24px; padding: 2px 18px 4px; border-left: 1px solid #c3b9a3; }
.game-page .game-rules-full .game-rules-title { margin: 0 0 27px; color: #273244; font: 700 18px/1.35 Georgia, 'Times New Roman', serif; letter-spacing: .045em; text-align: center; }
.game-page .game-rules-full h4 { margin: 0; color: #273244; font: 700 15px/1.4 Georgia, 'Times New Roman', serif; letter-spacing: .02em; }
.game-page .game-rules-full section + section { margin-top: 24px; }
.game-page .game-rules-full p,
.game-page .game-rules-full li { color: #48483f; font-size: 13px; line-height: 1.65; }
.game-page .game-rules-full p { margin: 9px 0 0; }
.game-page .game-rules-full strong { color: #343a45; font-weight: 700; }
.game-page .game-rules-full .game-rules-note { color: #676457; font-size: 12px; line-height: 1.55; }
.game-page .game-rules-full ul { margin: 9px 0 0; padding-left: 22px; }
.game-page .game-rules-full li + li { margin-top: 7px; }
.game-page .action-area { margin-top: 0; }
/* On Home the existing link still covers its panel. In The Game it remains the
   same button, while the rules control and text stay independently interactive. */
.game-page .play-link[href]::after { content: none; }
.game-page .play-panel:has(.play-link[href]) { cursor: default; }
.text-page { min-height: 200px; padding: 12px 0 24px; }
.text-page h2 { font-size: 17px; }
.text-page p { font-size: 12px; color: #676457; }
.skip-link { position: fixed; z-index: 10; }
@media (max-width: 560px) {
 :root { --home-header-height: 56px; }
 .site-home-header { padding: 4px 18px; }
 .game-page .play-panel { padding: 88px 20px 24px; }
 .game-page .game-rules-summary h3 { font-size: 16px; }
 .game-page .game-rules-summary p { font-size: 13px; line-height: 1.58; }
 .game-page .game-rules-summary .game-rules-note { font-size: 11px; line-height: 1.5; }
 .game-page .game-rules { margin: 20px 0 24px; }
 .game-page .game-rules summary { padding: 10px 6px; font-size: 12px; letter-spacing: .045em; }
 .game-page .game-rules-full { margin-top: 20px; padding: 2px 0 2px 14px; }
 .game-page .game-rules-full .game-rules-title { margin-bottom: 23px; font-size: 16px; }
 .game-page .game-rules-full h4 { font-size: 14px; }
 .game-page .game-rules-full section + section { margin-top: 21px; }
 .game-page .game-rules-full p,
 .game-page .game-rules-full li { font-size: 12px; line-height: 1.58; }
 .game-page .game-rules-full .game-rules-note { font-size: 11px; line-height: 1.5; }
}

/* Home places its existing icon over the hero without reserving a header row. */
.site-frame:has(.hero:not([hidden])) { --home-header-height: 0px; width: 100%; max-width: none; margin: 0; }
.site-frame:has(.hero:not([hidden])) .site-home-header { height: 0; padding: 0; border: 0; background: none; }
.site-frame:has(.hero:not([hidden])) .home-icon { position: absolute; top: 7px; right: 22px; background: transparent; }
.site-frame:has(.hero:not([hidden])) .home-icon:hover,
.site-frame:has(.hero:not([hidden])) .home-icon:focus-visible { background: transparent; }
.site-frame:has(.hero:not([hidden])) .content { max-width: 1200px; margin: 0 auto; }
@media (max-width: 560px) {
 .site-frame:has(.hero:not([hidden])) .home-icon { top: 4px; right: 18px; }
}

.limited-edition .limited-edition-logo { display: block; width: min(320px, 100%); height: auto; margin: 12px auto 20px; }
