/* Structural game themes. They intentionally do not set the board background or
   material colours: backgrounds, block/deck skins and accents remain independent. */
.game-theme-classic{--gt-font:Inter,system-ui,sans-serif;--gt-title:Rajdhani,Inter,sans-serif;--gt-radius:14px;--gt-line:rgba(255,255,255,.16);--gt-shadow:0 12px 30px rgba(0,0,0,.25)}
.game-theme-medieval{--gt-font:Georgia,"Times New Roman",serif;--gt-title:Cinzel,Georgia,serif;--gt-radius:5px;--gt-line:#b77b25;--gt-shadow:0 0 0 1px #3f270b,0 0 18px rgba(225,154,43,.22),inset 0 0 18px rgba(0,0,0,.22)}
.game-theme-fantasy{--gt-font:"Trebuchet MS",serif;--gt-title:Georgia,"Times New Roman",serif;--gt-radius:22px;--gt-line:#a989ff;--gt-shadow:0 0 22px rgba(125,92,255,.36),inset 0 0 20px rgba(112,69,205,.16)}
.game-theme-futuristic{--gt-font:Inter,system-ui,sans-serif;--gt-title:Rajdhani,Inter,sans-serif;--gt-radius:2px;--gt-line:#55e9ff;--gt-shadow:0 0 20px rgba(58,224,255,.28),inset 0 0 18px rgba(0,199,255,.12)}
.game-theme-artdeco{--gt-font:Georgia,"Times New Roman",serif;--gt-title:Rajdhani,Inter,sans-serif;--gt-radius:0;--gt-line:#e3c16e;--gt-shadow:6px 6px 0 rgba(227,193,110,.13),inset 0 0 0 1px rgba(227,193,110,.25)}
.game-theme-arcade{--gt-font:"Trebuchet MS",Inter,sans-serif;--gt-title:Rajdhani,Inter,sans-serif;--gt-radius:12px;--gt-line:#ff61d8;--gt-shadow:4px 5px 0 #372461,0 0 20px rgba(255,71,207,.28)}
.game-theme-runeforged{--gt-font:Georgia,serif;--gt-title:Georgia,serif;--gt-radius:7px;--gt-line:#e1a34a;--gt-shadow:0 0 0 2px #3d2309,0 0 0 5px rgba(225,163,74,.24),inset 0 0 25px rgba(106,55,10,.25)}
.game-theme-astral-crown{--gt-font:"Trebuchet MS",serif;--gt-title:Georgia,serif;--gt-radius:26px;--gt-line:#d6b4ff;--gt-shadow:0 0 0 2px rgba(108,65,174,.65),0 0 34px rgba(181,107,255,.5),inset 0 0 25px rgba(106,64,188,.2)}
.game-theme-dragon{--gt-font:Georgia,serif;--gt-title:Georgia,serif;--gt-radius:3px;--gt-line:#ffb43d;--gt-shadow:0 0 0 2px #4b1609,0 0 28px rgba(255,91,30,.38),inset 0 0 30px rgba(92,18,8,.3)}
.game-theme-imperial{--gt-font:Georgia,serif;--gt-title:Georgia,serif;--gt-radius:0;--gt-line:#ffe28c;--gt-shadow:0 0 0 1px #7d5417,0 0 0 4px #231405,0 0 38px rgba(255,205,94,.42)}

[class*="game-theme-"]{font-family:var(--gt-font)!important}
[class*="game-theme-"] :is(h1,h2,h3,.title,.brand,.logo,.game-title){font-family:var(--gt-title)!important;letter-spacing:.055em}
[class*="game-theme-"] :is(button,.btn,.panel,.card,.box,.sheet,.score-sheet,.dice,.die,.player,.player-pill,.turn,.status,.hud,.toolbar,.table,.case-file,.cluedo-board){border-radius:var(--gt-radius)!important;border-color:var(--gt-line)!important}
[class*="game-theme-"] :is(.panel,.card,.box,.sheet,.score-sheet,.dice,.die,.hud,.toolbar,.case-file,.cluedo-board){box-shadow:var(--gt-shadow)!important}

.game-theme-medieval :is(button,.btn,.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar){outline:1px solid color-mix(in srgb,var(--gt-line) 48%,transparent);outline-offset:-4px}
.game-theme-medieval :is(h1,h2,h3,.title,.brand,.logo,.game-title){text-transform:uppercase;text-shadow:0 1px #000,0 0 10px rgba(225,154,43,.35)}
.game-theme-fantasy :is(.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar){border-width:2px!important}
.game-theme-fantasy :is(h1,h2,h3,.title,.brand,.logo,.game-title){font-style:italic;text-shadow:0 0 12px rgba(147,111,255,.42)}
.game-theme-futuristic :is(.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar){clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.game-theme-futuristic :is(button,.btn){text-transform:uppercase;letter-spacing:.09em}
.game-theme-artdeco :is(.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar){border-style:double!important;border-width:3px!important}
.game-theme-artdeco :is(h1,h2,h3,.title,.brand,.logo,.game-title){text-transform:uppercase;letter-spacing:.16em}
.game-theme-arcade :is(button,.btn,.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar){border-width:2px!important}
.game-theme-arcade :is(h1,h2,h3,.title,.brand,.logo,.game-title){text-transform:uppercase;text-shadow:2px 2px 0 #372461}
.game-theme-runeforged :is(.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar),.game-theme-dragon :is(.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar){border-style:double!important;border-width:3px!important}
.game-theme-runeforged :is(h1,h2,h3,.title,.brand,.logo,.game-title){letter-spacing:.13em;text-transform:uppercase;text-shadow:0 0 12px #d4872e}
.game-theme-astral-crown :is(h1,h2,h3,.title,.brand,.logo,.game-title){font-style:italic;text-shadow:0 0 16px #bb81ff}
.game-theme-dragon :is(h1,h2,h3,.title,.brand,.logo,.game-title){text-transform:uppercase;text-shadow:1px 2px #2b0803,0 0 14px #ff6b24}
.game-theme-imperial :is(.panel,.card,.box,.sheet,.score-sheet,.hud,.toolbar){border-style:double!important;border-width:4px!important;clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px)}
.game-theme-imperial :is(h1,h2,h3,.title,.brand,.logo,.game-title){text-transform:uppercase;letter-spacing:.18em;text-shadow:0 0 14px #eab951}

/* Studio's semantic preview elements. */
[class*="game-theme-"] .studio-table,[class*="game-theme-"] :is(.preview-qwixx,.score-sheet,.preview-cardgame,.preview-cluedo,.cluedo-board,.case-file,.dice-rack i,.card-pile i,.card-hand span){border-radius:var(--gt-radius)!important;border-color:var(--gt-line)!important}
[class*="game-theme-"] :is(.preview-qwixx,.score-sheet,.preview-cardgame,.preview-cluedo,.dice-rack i,.card-pile i,.card-hand span){box-shadow:var(--gt-shadow)!important}
.game-theme-futuristic .studio-table{clip-path:polygon(18px 0,100% 0,100% calc(100% - 18px),calc(100% - 18px) 100%,0 100%,0 18px)}
.game-theme-medieval .studio-table{outline:1px solid #b77b25;outline-offset:-8px}
.game-theme-artdeco .studio-table{border:4px double #e3c16e}
