/* GameParlorHQ chrome (slim top bar + bottom dock + More sheet). Classes only; no inline styles. */
.gpd-hide{display:none!important}
header.top .brand .gpd-logo{width:34px;height:34px;border-radius:9px;display:block}
.gpd-title{flex:1;min-width:0;text-align:center;line-height:1.15;display:flex;flex-direction:column;align-items:center}
.gpd-title b{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.gpd-title small{font-size:10.5px;letter-spacing:.6px;text-transform:uppercase;opacity:.72;white-space:nowrap}
.gpd-title small:empty{display:none}
#pills{flex-wrap:nowrap}
.pill.gpd-status{white-space:nowrap}
body.gpd-docked{padding-bottom:calc(76px + env(safe-area-inset-bottom))}
.gpd-dock{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:center;gap:8px;padding:6px 18px calc(6px + env(safe-area-inset-bottom));
  background:rgba(10,12,22,.72);-webkit-backdrop-filter:blur(22px) saturate(1.5);backdrop-filter:blur(22px) saturate(1.5);border-top:.5px solid rgba(255,255,255,.14)}
.gpd-dock[hidden]{display:none}
.gpd-b{position:relative;flex:0 1 110px;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 0;min-height:52px;background:none;border:0;color:#fff;font-family:inherit;font-weight:600;font-size:11px;line-height:1.2;cursor:pointer;opacity:.92}
.gpd-b[hidden]{display:none}
.gpd-b i{font-style:normal;font-size:21px;line-height:28px}
.gpd-b:active{transform:scale(.94)}
.gpd-dot{position:absolute;top:5px;left:calc(50% + 8px);width:9px;height:9px;border-radius:50%;background:#ff3d9a;box-shadow:0 0 0 2px rgba(10,12,22,.9)}
.gpd-dot[hidden]{display:none}
body.chat-open .gpd-dock{display:none}
.gpd-scrim{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:60;animation:gpdf .18s ease}
.gpd-sheet{position:fixed;left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:61;max-width:520px;margin:0 auto;color:#fff;
  background:rgba(28,30,44,.97);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-radius:26px;padding:10px 14px 16px;border:.5px solid rgba(255,255,255,.14);
  box-shadow:0 -10px 40px rgba(0,0,0,.45);animation:gpdu .22s cubic-bezier(.2,.9,.3,1);font-family:inherit}
.gpd-grab{width:38px;height:5px;border-radius:3px;background:rgba(255,255,255,.3);margin:0 auto 12px}
.gpd-h{font-size:18px;margin:0 4px 2px}
.gpd-sub{font-size:13px;opacity:.7;margin:0 4px 12px}
.gpd-grp{background:rgba(255,255,255,.07);border-radius:16px;overflow:hidden;margin-top:10px}
.gpd-row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:13px 16px;border:0;border-bottom:.5px solid rgba(255,255,255,.12);
  background:none;color:inherit;font-family:inherit;font-weight:600;font-size:16px;line-height:1.3;text-decoration:none;text-align:left;cursor:pointer}
div.gpd-row{cursor:default}
.gpd-row:last-child{border-bottom:0}
.gpd-row em{font-style:normal;font-weight:500;font-size:14px;opacity:.7}
.gpd-tip{display:block}.gpd-tip p{margin:4px 0 0;font-weight:400;font-size:13px;opacity:.75}
.gpd-red{color:#ff6b6b;justify-content:center}
.gpd-quiet{opacity:.75}
@keyframes gpdu{from{transform:translateY(30px);opacity:0}}@keyframes gpdf{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.gpd-sheet,.gpd-scrim{animation:none}}
/* nav-mode games (Town, Pack Mentality): Chat + More live in the existing bottom nav */
nav.nav .gpd-chat,nav.nav .gpd-more{position:relative}
.gpd-notify{display:flex;justify-content:center;margin:14px 0 4px}
.gpd-notify button{min-height:40px;padding:0 18px;border-radius:999px;border:1.5px solid rgba(255,255,255,.22);background:rgba(255,255,255,.1);color:inherit;font-family:inherit;font-weight:600;font-size:15px;cursor:pointer}
.gpd-notify button.on{background:none;border-color:transparent;opacity:.7;cursor:default}
.gpd-backlink{display:block;text-align:center;margin:22px 0 6px;font-size:14px;opacity:.75;text-decoration:none;color:inherit}
/* ---- GameParlorHQ lockup (matches gameparlorhq.com/parlor/ .brandrow/.wordmark/.hq) ---- */
.brand.gpd-brand{display:flex;align-items:center;gap:10px;flex:none;color:#f5ecdc;text-decoration:none;min-width:0}
html.gpd-g-half-past-true .brand.gpd-brand{color:#1d1d1f}
.brand.gpd-brand .gpd-logo{width:34px;height:34px;border-radius:9px;box-shadow:0 2px 10px rgba(0,0,0,.35);display:block;flex:none}
.gpd-wm{font-family:"New York","Iowan Old Style","Palatino Linotype",Palatino,"P052","Gelasio",Georgia,serif;font-weight:500;letter-spacing:-.02em;font-size:19px;line-height:1.2;white-space:nowrap}
.gpd-wm .gpd-hq{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:600;font-size:.48em;letter-spacing:.22em;vertical-align:.25em;margin-left:.18em;padding:.22em .4em .2em .6em;border:1px solid currentColor;border-radius:.5em;opacity:.82}
@media (max-width:600px){.gpd-wm{font-size:17px}}
@media (max-width:520px){.gpd-title small{display:none}.gpd-title b{font-size:13px}header.top{gap:8px}}
/* ---- desktop: content column + centered title/footer over the game area ---- */
html{--gpd-w:640px;--gpd-c:var(--gpd-w)}
html.gpd-g-punchline-party{--gpd-w:640px}
html.gpd-g-codegames{--gpd-w:1080px;--gpd-c:1080px}
html.gpd-g-half-past-true{--gpd-w:560px}
html.gpd-g-the-town{--gpd-w:820px}
html.gpd-g-pack-mentality{--gpd-w:760px}
@media (min-width:900px){
  header.top{position:relative;box-sizing:border-box;max-width:none;margin:0;padding-left:max(16px,calc((100% - var(--gpd-w))/2));padding-right:max(16px,calc((100% - var(--gpd-w))/2))}
  header.top .gpd-title{position:absolute;left:50%;top:50%;transform:translate(calc(-50% + (var(--gpd-c) - var(--gpd-w))/2),-50%);max-width:calc(var(--gpd-c) - 360px);pointer-events:none}
  .hall-foot .back-hall,footer .back-hall{position:relative;left:calc((var(--gpd-c) - var(--gpd-w))/2)}
  .gpd-dock{left:50%;right:auto;width:var(--gpd-c);max-width:100%;transform:translateX(calc(-50% + (var(--gpd-c) - var(--gpd-w))/2));border-radius:20px 20px 0 0;border:.5px solid rgba(255,255,255,.14);border-bottom:0;box-sizing:border-box}
  /* Punchline Party: avatars in a compact row above the card (as on mobile), not around a big empty table */
  html.gpd-g-punchline-party .table{height:auto;max-width:640px}
  html.gpd-g-punchline-party .table .ring{position:static;display:flex;justify-content:center;flex-wrap:wrap;gap:10px;overflow:visible;padding:8px 2px 12px;pointer-events:auto}
  html.gpd-g-punchline-party .table .seat{position:static;margin:0;width:84px}
  html.gpd-g-punchline-party .table .bubble{width:60px;height:60px;font-size:32px}
  html.gpd-g-punchline-party .table .stage{position:static;transform:none;width:auto;max-width:620px;max-height:none;overflow:visible;margin:0 auto;padding:4px 4px 12px}
}
@media (min-width:1100px){
  /* chat stays open on the right exactly as before; the game column + panel are centered together */
  html.gpd-g-punchline-party:has(.layout){--gpd-w:976px;--gpd-c:640px}
  html.gpd-g-punchline-party main.has-chat,html.gpd-g-punchline-party #app.has-chat{max-width:1008px}
  html.gpd-g-punchline-party .layout{grid-template-columns:minmax(0,640px) 320px;justify-content:center}
  html.gpd-g-punchline-party .layout.chat-collapsed{grid-template-columns:minmax(0,640px) 56px}
  html.gpd-g-punchline-party:has(.layout) .gpd-dock .gpd-chat{display:none}
  html.gpd-g-codegames main{max-width:1080px}
  html.gpd-g-codegames:has(.game){--gpd-c:704px}
  html.gpd-g-pack-mentality:has(.shell){--gpd-w:1240px;--gpd-c:860px}
}
@media (min-width:1000px){html.gpd-g-codegames .gpd-dock .gpd-chat{display:none}}
.brand.gpd-brand .gpd-wm{display:inline!important}
.brand.gpd-brand .gpd-wm .gpd-hq{display:inline-block!important}
@media (max-width:520px){header.top .title small{display:none}header.top .title b{font-size:14px}.gpd-title b{max-width:30vw}}
@media (max-width:400px){.gpd-wm{font-size:16px}}
@media (min-width:900px){
  html.gpd-g-the-town header.top .title,html.gpd-g-pack-mentality header.top .title{position:absolute;left:50%;top:50%;transform:translate(calc(-50% + (var(--gpd-c) - var(--gpd-w))/2),-50%);max-width:calc(var(--gpd-c) - 400px);text-align:center;align-items:center;flex:none}
}
@media (min-width:900px){html.gpd-g-the-town header.top .title+*,html.gpd-g-pack-mentality header.top .title+*{margin-left:auto}}
/* ---- quiet back link (pt423u/pt443u): small muted text, no pill, centered over the game column, clear of the dock ---- */
.hall-foot{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:center!important;gap:6px!important;text-align:center}
.hall-foot a.back-hall{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;padding:6px 10px;min-height:32px;font:500 13px/1.3 -apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:inherit;opacity:.6;cursor:pointer;text-decoration:none;position:relative;transition:opacity .15s}
.hall-foot a.back-hall span{font:inherit;font-size:15px;line-height:1;color:inherit;margin:0}
.hall-foot a.back-hall:hover{opacity:.9;text-decoration:underline;text-underline-offset:3px}
.hall-foot a.back-hall:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:6px}
body.gpd-docked .hall-foot{padding-bottom:calc(28px + env(safe-area-inset-bottom))!important;margin-bottom:0}
body.gpd-docked{padding-bottom:calc(96px + env(safe-area-inset-bottom))!important}
@media (min-width:900px){.hall-foot a.back-hall{left:calc((var(--gpd-c) - var(--gpd-w))/2)}.aside .hall-foot a.back-hall{left:0}}
/* turn notices (push) */
.gpd-push{margin:10px auto 6px;width:100%}
.gpd-g-half-past-true .gpd-notify button{border-color:rgba(0,0,0,.18);background:rgba(0,0,0,.05)}
.gpd-toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:2147483000;max-width:min(92vw,420px);padding:10px 16px;border-radius:12px;background:#1d1d1f;color:#fff;font:500 14px/1.35 system-ui,-apple-system,sans-serif;box-shadow:0 6px 24px rgba(0,0,0,.35);text-align:center}

/* ---- back button with the game's logo (pt444u/pt445u/pt446u) ---- */
.hall-foot a.back-hall.gpd-backbtn{gap:8px;padding:6px 18px 6px 7px;min-height:46px;border-radius:999px;font:700 15px/1.2 -apple-system,BlinkMacSystemFont,"SF Pro Text","Inter","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;opacity:1;color:inherit;background:rgba(255,255,255,.12);border:1.5px solid rgba(255,255,255,.26);box-shadow:0 6px 20px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.14);transition:transform .15s,background .15s,box-shadow .15s}
.hall-foot a.back-hall.gpd-backbtn:hover{opacity:1;text-decoration:none;background:rgba(255,255,255,.18);transform:translateY(-1px);box-shadow:0 10px 26px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.18)}
.hall-foot a.back-hall.gpd-backbtn:active{transform:translateY(0) scale(.98)}
.hall-foot a.back-hall.gpd-backbtn:focus-visible{border-radius:999px}
.hall-foot a.back-hall .gpd-bk-ico{width:30px;height:30px;border-radius:9px;flex:none;display:block;object-fit:contain}
.hall-foot a.back-hall span.gpd-bk-chev{font-size:19px;font-weight:700;opacity:.8;margin:0 -2px 0 2px}
.hall-foot a.back-hall span.gpd-bk-t{font-size:15px;font-weight:700;line-height:1.2}
.gpd-g-half-past-true .hall-foot a.back-hall.gpd-backbtn{background:#fff;border-color:rgba(0,0,0,.1);color:#1d1d1f;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.gpd-g-half-past-true .hall-foot a.back-hall.gpd-backbtn:hover{background:#fff;box-shadow:0 10px 24px rgba(0,0,0,.16)}
