/* Shared public-page theme, scoped so the staff application is unaffected.
 * The existing layout layer retains game geometry, states and interactions.
 */
html.ps-public.ps-glass{
  --display:system-ui,-apple-system,'Segoe UI',sans-serif;
  --body:system-ui,-apple-system,'Segoe UI',sans-serif;
  --ink:#14110e;--bg:#14110e;--surface:#ffffff0d;--surface-soft:#ffffff08;
  --surface-solid:#28221c;--text:#f4f3f1;--muted:#e4dfd7;--muted-2:#ccc3b6;
  --gold:#e8d8b3;--line:#ffffff26;--line-soft:#ffffff14;--border:#ffffff26;
  --border-strong:#ffffff45;--radius:20px;--shadow:0 18px 48px #0003;
  --glass:linear-gradient(125deg,#ffffff1f,#ffffff04 65%),#17130f45;
  --glass-shadow:0 18px 48px #0002,inset 0 1px #ffffff40;
  --panel:var(--glass);--accent:#e8d8b3;--accent-soft:#ffffff10;
  --games-text:#f4f3f1;--games-muted:#e4dfd7;--games-dim:#ccc3b6;
  --games-line:#ffffff26;--games-radius:20px;
  --exo-bg:#14110e;--exo-bg2:#28221c;--exo-bg3:#211c17;
  --exo-panel:#ffffff0d;--exo-panel-2:#ffffff08;--exo-line:#ffffff26;
  --exo-line-strong:#ffffff45;--exo-text:#f4f3f1;--exo-muted:#e4dfd7;
  --exo-dim:#ccc3b6;--exo-cyan:#e8d8b3;--exo-blue:#e8d8b3;--exo-purple:#e8d8b3;
  --exo-shadow:var(--glass-shadow);--exo-radius:20px;--exo-brand-font:var(--body);
  background:#14110e;
}
.ps-public.ps-glass body{
  margin:0;min-height:100vh;color:var(--text);font-family:var(--body);
  background:linear-gradient(180deg,#14110e45 0,#14110e66 650px,#14110ee6 1400px,#14110e 1650px),url('/assets/img/medieval/great-hall.webp') center top/auto 1650px no-repeat,#14110e;
}
.ps-public.ps-glass body :is(h1,h2,h3,h4){font-family:var(--body);font-weight:600;letter-spacing:-.035em;color:var(--text);text-shadow:none}
.ps-public.ps-glass body h1{font-size:clamp(32px,4.1vw,56px);line-height:1.16;overflow-wrap:break-word}
.ps-public.ps-glass body :is(p,.lead,.prism-lead,.exo-lead){line-height:1.75}
.ps-public.ps-glass body :is(.eyebrow,.kicker,.ps-eyebrow,.prism-eyebrow,.exo-kicker,.games-kicker){font:550 12px/1.6 var(--body);letter-spacing:.05em;text-transform:none;color:#e4d7c2}
/* One navigation shell on all public pages. */
.ps-public.ps-glass .ps-header{
  position:relative;z-index:60;width:min(1360px,calc(100% - 40px));min-height:76px;
  margin:20px auto 32px;padding:12px 20px;gap:24px;border:1px solid #ffffff26;border-radius:20px;
  background:linear-gradient(115deg,#ffffff20,#ffffff05),#17130f38;
  box-shadow:0 12px 40px #0002,inset 0 1px #ffffff40;
  backdrop-filter:blur(16px) saturate(115%);-webkit-backdrop-filter:blur(16px) saturate(115%);
}
.ps-public.ps-glass .ps-header::before,.ps-public.ps-glass .ps-header::after{display:none}
.ps-public.ps-glass .ps-brand{gap:8px;font:600 21px/1 Cinzel,Georgia,serif;letter-spacing:.12em}
.ps-public.ps-glass .ps-brand img{width:42px;height:38px;padding:0;clip-path:none;background:none;border:0;filter:none}
.ps-public.ps-glass .ps-nav{gap:5px}
.ps-public.ps-glass .ps-nav a,.ps-public.ps-glass .ps-nav a:last-child{min-height:44px;padding:10px 15px;border:1px solid transparent;border-radius:12px;background:none;box-shadow:none;font:550 14px/1.4 var(--body);color:#e4dfd7;text-transform:none;letter-spacing:0;text-shadow:none}
.ps-public.ps-glass .ps-nav a:hover,.ps-public.ps-glass .ps-nav a[aria-current=page]{background:#ffffff14;color:#fff;border-color:transparent}
.ps-public.ps-glass .ps-nav a:last-child{background:#ffffff0f;border-color:#ffffff26;color:#fff}
.ps-public.ps-glass .ps-menu{font:600 14px var(--body);min-height:44px;padding:10px 14px;border:1px solid #ffffff29;border-radius:12px;background:#ffffff0c;color:#fff}
.ps-public.ps-glass .md-subnav{width:var(--container);margin:0 auto 28px;border:1px solid #ffffff26;border-radius:16px;padding:12px 18px;gap:8px 24px;background:#17130f45;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ps-public.ps-glass .md-subnav a{font:550 14px/1.5 var(--body);color:#e4dfd7}
.ps-public.ps-glass .ps-footer{border-top:1px solid #ffffff18;background:#14110e80;box-shadow:none;color:#ccc3b6;font:400 13px/1.8 var(--body);padding-block:30px}
.ps-public.ps-glass .ps-footer a{color:#e4dfd7}
/* Surface-only styling: board cells, pieces and playable cards are not selected. */
.ps-public.ps-glass body :is(
 .card,.panel,.official-card,.article-card,.result-card,.search-box,.level-card,.ps-document,
 .prism-hero,.cgu-hero,.cgu-card,.exo-hero,.exo-detail-hero,.exo-panel,.exo-card,.exo-module-panel,.exo-module-card,.exo-detail-box,.exo-detail-section,.exo-status-box,
 .support-public-card,.support-ticket-card,.support-public-hero,
 .game-card,.player-banner,.mode-card,.player-progress-card,.menu-hero,
 .profile-card,.profile-hero,.join-card,.feature-card,.directory-head,.member-card,
 .lobby-panel,.lobby-players,.status-card,.hand-panel,.side-panel,.game-panel,.round-panel,
 .glass-card,.role-teaser,.village-panel,.action-card,.chronicle-card,.chat-panel,.lobby-card,
 .social-center,.social-add-panel,.friend-add-panel,.friend-hub,
 .login-card,.editor,.track-list,.lyrics-dialog,.empty
 ){
  border:1px solid #ffffff26;border-radius:22px;background:var(--glass);color:var(--text);
  box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.ps-public.ps-glass body :is(.card,.panel,.official-card,.mode-card,.profile-card,.support-public-card,.exo-panel) :is(.card,.panel,.toc-block,.search-panel,.support-meta,.support-muted-box,.social-list,.profile-stats){background:#ffffff07;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
.ps-public.ps-glass body :is(.game-card,.hero-card,.prism-hero,.mode-card,.profile-card)::before,
.ps-public.ps-glass body :is(.game-card,.hero-card,.prism-hero,.mode-card)::after,
.ps-public.ps-glass body :is(.game-card__glow,.mode-card__halo){display:none}
.ps-public.ps-glass body :is(.top,.exo-topbar,.app-shell>.topbar,.royal-topbar,.support-meta,.support-trust-item,.support-muted-box,.support-inline-form,.player-level,.player-xp,.progress-card,.member-pill,.member-chip,.toc-block,.level-chip,.search-panel,.examples,.article-note,.notice,.no-result,.ps-notice,.room-card,.audio-panel){border:1px solid #ffffff26;border-radius:16px;background:linear-gradient(130deg,#ffffff15,#ffffff04),#17130f38;box-shadow:inset 0 1px #ffffff26;color:var(--text);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.ps-public.ps-glass body .ps-notice{border-left:3px solid #e8d8b3}
.ps-public.ps-glass body :is(.top,.exo-topbar){margin-top:20px}
.ps-public.ps-glass body :is(.app-shell,.royal-app){width:var(--container);max-width:1260px;margin:28px auto 64px;min-width:0}
.ps-public.ps-glass body :is(.card,.panel,.game-card,.mode-card,.exo-panel,.support-public-card,.page,.page-shell,.app-shell,.hero-grid)>*{min-width:0}
/* Form controls and actions retain all disabled, selected and danger states. */
.ps-public.ps-glass body :is(.btn,.prism-btn,.ps-button,.button,.game-card__play,.game-card__button,.game-play-button,.game-card__footer a,.article-actions a,.article-actions button,.exo-btn,.primary-button,.secondary-button,.quick a){border:1px solid #ffffff30;border-radius:12px;background:#ffffff0f;box-shadow:inset 0 1px #ffffff18;color:#f4f3f1;font:600 15px/1.5 var(--body);text-shadow:none;letter-spacing:0;min-height:44px;transition:background .2s,transform .2s}
.ps-public.ps-glass body :is(.btn.primary,.prism-btn.primary,.prism-btn.turquoise,.ps-button:not(.ps-secondary),.button--primary,.primary-button,.exo-btn:not(.secondary):not(.danger),.game-card__play,.game-card__footer a){background:#5865f2;border-color:#ffffff25;color:#fff;box-shadow:0 6px 22px #25277a30}
.ps-public.ps-glass body :is(.btn,.prism-btn,.ps-button,.button,.game-card__footer a,.exo-btn,.primary-button,.secondary-button):hover{transform:translateY(-1px);box-shadow:0 8px 24px #0002;border-color:#ffffff50}
.ps-public.ps-glass body :is(.btn.danger,.button--danger,.exo-btn.danger,.text-button--danger){color:#ffc3c6;background:#b3263829;border-color:#e8828866}
.ps-public.ps-glass body :is(button:disabled,.button:disabled){opacity:.5;cursor:not-allowed;transform:none}
.ps-public.ps-glass body :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]),textarea,select){border:1px solid #ffffff36;border-radius:12px;background:#14110e66;box-shadow:inset 0 1px #ffffff0a;color:#fff;font:400 16px/1.5 var(--body);min-height:44px}
.ps-public.ps-glass body :is(input,textarea)::placeholder{color:#c9c0b4;opacity:1}
.ps-public.ps-glass body select option{background:#28221c;color:#fff}
.ps-public.ps-glass body label{color:#ede6dc}
.ps-public.ps-glass body :is(.tabs button,.support-tabs button,.exo-tab,.difficulty-cards button,.filters button,.friend-tab,.social-tab){border:1px solid #ffffff20;border-radius:12px;background:#ffffff08;box-shadow:none;color:#e4dfd7;min-height:44px;font-family:var(--body)}
.ps-public.ps-glass body :is(.tabs button.active,.support-tabs button.active,.exo-tab.active,.difficulty-cards button.is-active,.filters button.selected,.friend-tab.is-active,.social-tab.is-active){background:#ffffff20;border-color:#ffffff50;color:#fff;box-shadow:inset 0 1px #ffffff25}
.ps-public.ps-glass body :is(.meta-pill,.tag,.level-badge,.game-card__tags span,.availability-badge,.exo-pill,.exo-link-pill,.profile-kicker){border-radius:9px;border-color:#ffffff26;background:#ffffff0b;color:#e4dfd7;font-family:var(--body)}
/* Rulebook: readable articles, same glass as the homepage. */
.ps-public.ps-glass .court-code .hero-card{padding:38px;border-radius:24px;background:var(--glass);box-shadow:var(--glass-shadow)}
.ps-public.ps-glass .court-code .hero h1{font:650 clamp(32px,4vw,56px)/1.15 var(--body);letter-spacing:-.04em;max-width:690px}
.ps-public.ps-glass .court-code .hero .lead{font-size:17px;color:var(--muted)}
.ps-public.ps-glass .court-code .page-title-card{background:var(--glass);border-color:#ffffff26}
.ps-public.ps-glass .court-code :is(.article-content,.article-content p,.toc-link span,.result-card p,.level-card p,.examples li){color:#e4dfd7;font-size:16px}
.ps-public.ps-glass .court-code :is(.level-chip strong,.search-panel label,.toc-compact-book h3){font-family:var(--body);font-size:14px;color:#f4f3f1}
.ps-public.ps-glass .court-code .level-chip{border-top-width:3px;box-shadow:inset 0 1px #ffffff15}
.ps-public.ps-glass .court-code .level-chip.green{border-top-color:#86ae90}.ps-public.ps-glass .court-code .level-chip.yellow{border-top-color:#d9bd70}.ps-public.ps-glass .court-code .level-chip.orange{border-top-color:#c39264}.ps-public.ps-glass .court-code .level-chip.red{border-top-color:#c97d75}.ps-public.ps-glass .court-code .level-chip.deepred{border-top-color:#ac6c85}
.ps-public.ps-glass .court-code .level-chip span{font-size:13px;color:#e4dfd7}
.ps-public.ps-glass .md-book{transform:rotateY(-12deg) rotateZ(-3deg);box-shadow:10px 20px 28px #0005}
.ps-public.ps-glass .md-book-cover{background:linear-gradient(125deg,#ffffff20,#ffffff04),#28221c;border:1px solid #ffffff40;border-radius:12px;box-shadow:inset 0 1px #ffffff30}
.ps-public.ps-glass .md-book-cover strong{font:650 23px/1.25 var(--body);letter-spacing:.01em;text-shadow:none}
.ps-public.ps-glass .md-book-cover>span,.ps-public.ps-glass .md-book-cover small{font-family:var(--body);letter-spacing:.08em}
/* Game menus share the material; functional playfields keep their own palette. */
.ps-public.ps-glass body .game-card--throneshard{background:var(--glass)}
.ps-public.ps-glass body :is(.game-card__body h3,.menu-hero h1,.hero__copy h1){font-family:var(--body);text-shadow:none}
.ps-public.ps-glass body .game-card__body p{font-size:16px}
.ps-public.ps-glass body .menu-hero{border-radius:24px}
.ps-public.ps-glass body .game-card:hover{transform:translateY(-3px)}
.ps-public.ps-glass body .royal-topbar{width:var(--container);margin:20px auto;padding:16px 20px}
.ps-public.ps-glass body .menu-view .hero{padding:32px;border:1px solid #ffffff26;border-radius:24px;background:var(--glass);box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ps-public.ps-glass body :is(.prism-hero-logo,.hero-emblem){mix-blend-mode:normal}
/* Member, partner and sound-library subcomponents. */
.ps-public.ps-glass body :is(.exo-gradient,.profile-title){background:none;color:#f7e8c8;-webkit-text-fill-color:currentColor}
.ps-public.ps-glass body :is(.exo-visual,.exo-visual-inner,.exo-dashboard-intro,.social-hero,.profile-cover,.profile-stats,.friend-tabs,.social-tabs){background:#ffffff08;border-color:#ffffff20;box-shadow:none}
.ps-public.ps-glass body :is(.exo-detail-box,.exo-detail-section,.exo-module-panel){padding:24px}
.ps-public.ps-glass body :is(.exo-table,.exo-sanction-table) :is(th,td){border-color:#ffffff18;color:#e4dfd7}
.ps-public.ps-glass body :is(.exo-table,.exo-sanction-table) th{background:#ffffff0b}
.ps-public.ps-glass body .directory-head{padding:30px;margin-bottom:24px}
.ps-public.ps-glass body :is(.member-search,.social-search){background:#14110e38;border-color:#ffffff26;border-radius:12px}
.ps-public.ps-glass body .catalogue{width:var(--container);max-width:1260px;margin:auto;padding-inline:0}
.ps-public.ps-glass body .track{background:#ffffff04;border-color:#ffffff20;color:#f4f3f1}
.ps-public.ps-glass body .track:hover{background:#ffffff10}
.ps-public.ps-glass body :is(.track-text strong,.now strong){font:550 16px/1.5 var(--body)}
.ps-public.ps-glass body :is(.track-text small,.duration,.section-title>span){color:#ccc3b6}
.ps-public.ps-glass body .player{background:#28221ccc;border-color:#ffffff26;box-shadow:0 -10px 30px #0002;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.ps-public.ps-glass body .lyrics-dialog{background:#28221ce8}
.ps-public.ps-glass body .lyrics-dialog::backdrop{background:#14110e66;backdrop-filter:blur(6px)}
.ps-public.ps-glass body .version-content{width:min(850px,calc(100% - 32px));margin:40px auto 64px;padding:30px;border:1px solid #ffffff26;border-radius:24px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
/* Remove legacy entrance opacity: it prevents child glass from sampling the scene. */
.ps-public.ps-glass body :is(.menu-view,.mode-grid,.directory-head){animation:none}
.ps-public.ps-glass body .mode-card{padding:28px}
.ps-public.ps-glass body .mode-grid{gap:20px;margin-top:24px}
.ps-public.ps-glass body .menu-hero{width:100%;max-width:none;margin:24px 0}
.ps-public.ps-glass body .player-progress-card{margin:20px 0}
.ps-public.ps-glass body :is(.menu-hero,.hero__copy) h1 span{color:#f7e8c8}
.ps-public.ps-glass body :is(.mode-card>p,.menu-hero p,.hero__copy p){font:400 16px/1.8 var(--body);color:#e4dfd7}
.ps-public.ps-glass body .player-banner h1{font-size:clamp(23px,2.7vw,34px)}
.ps-public.ps-glass body .game-card__eyebrow{font:550 12px/1.6 var(--body);letter-spacing:.05em;text-transform:none}
.ps-public.ps-glass body :is(.menu-hero,.hero__copy)::before,.ps-public.ps-glass body .menu-hero::after{display:none}
.ps-public.ps-glass body .menu>.hero{padding:32px;border:1px solid #ffffff26;border-radius:24px;background:var(--glass);box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ps-public.ps-glass body .menu>.hero::before,.ps-public.ps-glass body .menu>.hero::after{display:none}
.ps-public.ps-glass body>.topbar{width:var(--container);margin:20px auto;border:1px solid #ffffff26;border-radius:16px;background:var(--glass);box-shadow:var(--glass-shadow);padding:16px 20px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ps-public.ps-glass body :is(.support-public-hero,.prism-hero.support-public-hero){min-height:320px;height:auto;max-height:none;padding:36px}
.ps-public.ps-glass body:has(.catalogue)>.hero{width:var(--container);margin:28px auto;padding:44px 32px;border:1px solid #ffffff26;border-radius:24px;background:var(--glass);box-shadow:var(--glass-shadow);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ps-public.ps-glass body:has(.catalogue) :is(.hero p,.empty p,.no-results){font:400 16px/1.8 var(--body);color:#e4dfd7}
.ps-public.ps-glass body:has(.catalogue) :is(.hero .stats strong,.section-title h2){font-family:var(--body)}
.ps-public.ps-glass body:has(.catalogue) :is(.edition,.empty small,.stats span,.section-title small){font:500 12px/1.6 var(--body);letter-spacing:.04em;color:#ccc3b6}
.ps-public.ps-glass body:has(.catalogue) .filters button{font-size:14px;padding:10px 16px}
.ps-public.ps-glass body :is(.login-card button,.editor form>button){border:1px solid #ffffff25;border-radius:12px;background:#5865f2;color:#fff;min-height:46px;font:600 15px/1.5 var(--body)}
.ps-public.ps-glass body .editor-grid aside{border:1px solid #ffffff26;border-radius:20px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.ps-public.ps-glass body :is(.login-card label,.editor label){font:500 14px/1.6 var(--body);letter-spacing:0;text-transform:none}
/* Modals must paint over both their backdrop and the page. */
.ps-public.ps-glass body :is(.modal-card,.modal-panel,.dialog-card,.dialog-panel,.end-card,.modal,.dialog){background:linear-gradient(125deg,#ffffff15,#ffffff03),#28221ce8;border:1px solid #ffffff30;border-radius:22px;box-shadow:0 24px 70px #0005;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);color:var(--text)}
@media(max-width:1050px){.ps-public.ps-glass .ps-nav a,.ps-public.ps-glass .ps-nav a:last-child{padding:10px;font-size:13px}.ps-public.ps-glass .ps-header{gap:12px}}
@media(max-width:760px){
 .ps-public.ps-glass .ps-header{width:calc(100% - 24px);margin:12px auto 24px;padding:12px 14px;min-height:76px;border-radius:18px;flex-wrap:wrap}
 .ps-public.ps-glass .ps-brand{font-size:19px}.ps-public.ps-glass .ps-menu{display:block}
 .ps-public.ps-glass .ps-nav{width:100%;flex-direction:column;align-items:stretch;gap:5px;padding:8px 0 0}
 .ps-public.ps-glass .ps-nav a,.ps-public.ps-glass .ps-nav a:last-child{min-height:46px;font-size:15px;padding:12px}
 .ps-public.ps-glass body :is(.page,.page-shell,.support-public-wrap,.cgu-page,.exo-page,.games-page,.app-shell,.royal-app){margin-top:24px}
 .ps-public.ps-glass .court-code .hero-card{padding:26px 22px}.ps-public.ps-glass .court-code .hero h1{font-size:34px}
 .ps-public.ps-glass body :is(.prism-hero,.cgu-hero,.exo-hero,.menu-hero,.directory-head){padding:24px}
 .ps-public.ps-glass body .menu-view .hero,.ps-public.ps-glass body .menu>.hero{padding:24px}
 .ps-public.ps-glass body :is(.support-public-hero,.prism-hero.support-public-hero){min-height:0;padding:24px}
 .ps-public.ps-glass body .mode-card{padding:24px}
 .ps-public.ps-glass body :is(.tabs,.support-tabs,.exo-tabs){flex-wrap:wrap}
 .ps-public.ps-glass body .royal-topbar{padding:14px;gap:12px;flex-wrap:wrap}
}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){html.ps-public.ps-glass{--glass:#28221cf2}.ps-public.ps-glass .ps-header{background:#28221cf2}}
@media(prefers-reduced-transparency:reduce){html.ps-public.ps-glass{--glass:#28221c}.ps-public.ps-glass body :is(.ps-header,.card,.panel,.official-card,.game-card,.mode-card,.prism-hero,.menu-hero,.ps-document,.exo-panel,.support-public-card){background:#28221c;backdrop-filter:none;-webkit-backdrop-filter:none}}
@media print{.ps-public.ps-glass body{background:white!important;color:black!important}.ps-public.ps-glass body :is(.ps-document,.official-card,.article-card,.article-content,.card){background:white!important;box-shadow:none!important;backdrop-filter:none!important}.ps-public.ps-glass body :is(h1,h2,h3,p){color:black!important}}
