@font-face{font-family:Club;src:url('assets/fonts/bai-jamjuree-400-thai.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0E00-0E7F}
@font-face{font-family:Club;src:url('assets/fonts/bai-jamjuree-400-latin.woff2') format('woff2');font-weight:400;font-display:swap;unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:Club;src:url('assets/fonts/bai-jamjuree-600-thai.woff2') format('woff2');font-weight:600 800;font-display:swap;unicode-range:U+0E00-0E7F}
@font-face{font-family:Club;src:url('assets/fonts/bai-jamjuree-600-latin.woff2') format('woff2');font-weight:600 800;font-display:swap;unicode-range:U+0000-024F,U+2000-206F}
@font-face{font-family:ClubDisplay;src:url('assets/fonts/chonburi-400-thai.woff2') format('woff2');font-display:swap;unicode-range:U+0E00-0E7F}
@font-face{font-family:ClubDisplay;src:url('assets/fonts/chonburi-400-latin.woff2') format('woff2');font-display:swap;unicode-range:U+0000-024F,U+2000-206F}

/* Nungplay club page standard. Board rendering and rules remain game-owned. */
body.portal-club {
 --club-bg:#170f13; --club-surface:#24191e; --club-raised:#302029;
 --club-text:#f6eddf; --club-muted:#bdada8; --club-gold:#e6c38b;
 --club-line:#e6c38b26; color:var(--club-text); color-scheme:dark;
 font-family:Club,system-ui,sans-serif; font-size:15px; line-height:1.6;
}
body.game-go { --club-bg:#0d1b18; --club-surface:#142721; --club-raised:#1d362d; --club-muted:#b0c3b5; --club-gold:#e2c893; --club-line:#d4e3bf24; }
body.portal-club * { box-sizing:border-box; font-family:Club,system-ui,sans-serif!important; letter-spacing:normal!important; }
body.portal-club [hidden] { display:none!important; }
body.portal-club :is(a,button,summary) { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
body.portal-club :is(a,button,input,select,summary):focus-visible { outline:3px solid var(--club-gold); outline-offset:3px; }
body.portal-club a { text-decoration:none; }
body.portal-club :is(input,select) { min-width:0; font-size:15px; color:var(--club-text); }
body.portal-club :is(button,summary) { cursor:pointer; }
body.portal-club button:disabled { cursor:default; opacity:.48; }
body.portal-club button::after { pointer-events:none; }
body.portal-club .club-site-header { position:relative; z-index:10; width:100%; margin:0; padding:0; background:var(--club-bg); border:0; border-bottom:1px solid var(--club-line); box-shadow:none; }
.club-header-inner { max-width:1320px; min-height:88px; margin:auto; padding:12px 28px; display:flex; align-items:center; gap:24px; }
body.portal-club .club-brand { display:flex; align-items:center; gap:12px; flex-shrink:0; color:var(--club-text); }
body.portal-club .club-brand b { display:block; font:400 27px/1.4 ClubDisplay,serif!important; white-space:nowrap; }
.club-brand b>span { color:var(--club-gold); }
body.portal-club .club-brand .club-play-title { display:block; margin:0; color:inherit; font:400 24px/1.4 ClubDisplay,serif!important; text-shadow:none; white-space:nowrap; }
.club-play-title>span { color:var(--club-gold); }
.club-brand small { display:block; font-size:9px; color:var(--club-muted); letter-spacing:1.9px!important; }
.club-brand-mark { position:relative; display:grid; place-items:center; width:43px; height:52px; flex-shrink:0; }
.club-brand-mark img { width:56px; height:64px; object-fit:contain; filter:drop-shadow(0 5px 7px #0005); }
.club-go-mark i { position:absolute; width:31px; height:31px; border-radius:50%; border:1px solid #ffffff70; box-shadow:0 4px 4px #0006; background:radial-gradient(circle at 30% 20%,#626a62,#101916 68%); left:0; top:5px; }
.club-go-mark i+i { background:radial-gradient(circle at 30% 20%,#fffdf1,#d6d4bf 75%); left:15px; top:21px; }
.portal-menu-row,.club-console { display:flex; align-items:center; justify-content:flex-end; gap:22px; margin-left:auto; min-width:0; }
body.portal-club .portal-home-link { display:inline-flex; align-items:center; gap:9px; flex-shrink:0; min-height:49px; padding:7px 12px; border:1px solid #d0ab7550; border-radius:11px; background:linear-gradient(135deg,#bb8b3922,transparent),var(--club-raised); color:var(--club-gold); box-shadow:inset 0 1px #fff2ce12,0 3px 7px #0002; }
.portal-back-cue { font-size:19px; }
.portal-brand-tile { display:grid; place-items:center; width:29px; height:32px; background:linear-gradient(145deg,#fff0c6,#c99855); color:#493121; border:1px solid #ffe8b5; border-radius:6px; box-shadow:0 2px #8a623f; transform:rotate(-6deg); font-size:21px; font-weight:600; }
.portal-brand-copy { display:grid; line-height:1.25; gap:3px; }
.portal-brand-copy b { color:#f8e9d3; font-size:14px; }
.portal-brand-copy b span { color:var(--club-gold); }
.portal-brand-copy small { font-size:9px; color:var(--club-muted); }
body.portal-club .portal-home-link:hover { border-color:var(--club-gold); background:var(--club-raised); }
body.portal-club .club-site-nav { display:flex; align-items:stretch; gap:6px; width:auto; padding:0; margin:0; overflow:visible; background:none; border:0; box-shadow:none; }
body.portal-club .club-site-nav .nav-menu { display:contents; }
body.portal-club .club-site-nav a { display:flex; align-items:center; justify-content:center; gap:7px; flex:0 0 auto; min-width:61px; min-height:46px; padding:8px 9px; color:var(--club-muted); border:1px solid transparent; border-radius:8px; background:none; box-shadow:none; font-size:12px; line-height:1.5; text-decoration:none; transform:none; }
body.portal-club .club-site-nav :is(.nav-icon,i) { display:inline; width:auto; height:auto; border:0; background:none; box-shadow:none; font:16px/1 Club,serif!important; color:inherit; font-style:normal; }
body.portal-club .club-site-nav a>span:not(.nav-icon) { display:inline; font-size:12px; }
body.portal-club .club-site-nav a:hover { color:var(--club-text); background:#fff5df0a; }
body.portal-club .club-site-nav a[aria-current=page] { color:var(--club-gold); background:#e6c38b0e; border-color:#e6c38b25; }
.club-menu-toggle { display:none; }
/* Play navigation sits beside game actions, as in Slave; no portal backlink. */
.club-play .club-header-inner { padding-inline:0; min-height:77px; }
.club-play .club-brand b { font-size:24px!important; }
.club-console :is(.game-tools,.club-game-actions) { display:flex; flex:0 1 auto; width:auto; flex-wrap:nowrap; align-items:center; gap:8px; margin:0; }
body.portal-club .club-console button { min-height:44px; padding:9px 13px; font-size:13px; line-height:1.5; border:1px solid #aac2da55; border-radius:10px; background:linear-gradient(145deg,#354b60,#22313e); color:#eef1ed; box-shadow:inset 0 1px #ffffff17,0 2px #0c1727; }
body.portal-club .club-console .club-site-nav { gap:8px; padding:5px; border:1px solid #dab99044; border-radius:12px; background:linear-gradient(135deg,#4b3049,#291f33); box-shadow:0 0 0 3px #332638; }
body.portal-club .club-console .club-site-nav a { flex-direction:column; min-width:48px; min-height:47px; padding:6px 8px; gap:4px; color:#e5d6e4; border-color:#efcedd24; background:#ffffff05; }
body.portal-club .club-console .club-site-nav a>span:not(.nav-icon) { font-size:10px; }
body.portal-club .club-console .club-site-nav a[aria-current=page] { color:#382b34; border-color:#ffe6b5; background:linear-gradient(145deg,#f5dfac,#d3ae74); }
body.portal-club .club-settings { flex:0 0 auto; width:100%; margin:12px 0; border:1px solid var(--club-line); border-radius:12px; background:var(--club-surface); color:var(--club-muted); }
.club-settings>summary { display:flex; align-items:center; gap:10px; min-height:44px; padding:10px 15px; font-size:13px; color:var(--club-gold); list-style:none; }
.club-settings>summary::-webkit-details-marker { display:none; }
.club-settings>summary::after { content:'⌄'; margin-left:auto; font-size:17px; }
.club-settings[open]>summary::after { content:'⌃'; }
.club-settings>summary span { color:var(--club-muted); font-size:12px; }
body.portal-club .club-settings :is(.controls,.game-command-bar) { margin:0; padding:12px 15px; width:100%; border:0; border-top:1px solid var(--club-line); box-shadow:none; background:none; }
body.portal-club .club-settings .online-tools { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
body.portal-club .club-settings :is(button,input,select) { min-height:44px; border:1px solid var(--club-line); border-radius:8px; color:var(--club-text); background:var(--club-bg); font-size:13px; }
body.portal-club .club-settings button { padding:8px 12px; }
body.portal-club .club-settings output { color:var(--club-muted); font-size:12px; }
/* Supporting pages share exact header geometry and a calm editorial layout. */
body.portal-club.club-pages { min-width:320px; margin:0; overflow-x:hidden; background:radial-gradient(ellipse at 90% 14%,#9e66351a,transparent 55%),var(--club-bg); }
body.game-go.club-pages { background:radial-gradient(ellipse at 95% 4%,#77997818,transparent 55%),var(--club-bg); }
body.portal-club.club-pages :is(.app-shell,.page-shell) { display:block; width:min(1180px,100%); min-height:65vh; height:auto; margin:auto; padding:0 30px 56px; overflow:visible; background:none; border:0; box-shadow:none; }
body.portal-club.club-pages .page-main { padding:0; margin:0; }
body.portal-club.club-pages :is(.club-intro,.page-hero) { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 310px; align-items:center; gap:35px; margin:0; padding:50px 0 42px; border:0; background:none; box-shadow:none; }
body.portal-club.club-pages :is(.club-intro h1,.page-hero h1) { margin:12px 0 18px; color:var(--club-text); font:400 clamp(35px,4.1vw,57px)/1.35 ClubDisplay,serif!important; letter-spacing:-1px!important; text-shadow:none; text-transform:none; }
body.portal-club.club-pages :is(.club-intro h1,.page-hero h1) em { color:var(--club-gold); font-family:inherit!important; font-style:normal; }
body.portal-club.club-pages :is(.club-intro,.page-hero) p { max-width:650px; margin:0; font-size:15px; line-height:1.9; color:var(--club-muted); }
body.portal-club :is(.club-kicker,.eyebrow) { font-size:11px; line-height:1.5; color:var(--club-gold); text-shadow:none; }
body.portal-club .club-kicker { letter-spacing:2px!important; }
.club-hero-art { position:relative; display:grid; place-items:center; min-height:255px; min-width:0; }
.club-hero-art small { position:absolute; bottom:0; color:var(--club-muted); font-size:9px; letter-spacing:1px!important; }
.makruk-art img { position:relative; z-index:1; width:250px; height:250px; object-fit:contain; filter:drop-shadow(0 18px 16px #0005); transform:rotate(-8deg); }
.club-art-ring { position:absolute; width:230px; height:230px; border:1px solid #dab47c3a; border-radius:50%; background:radial-gradient(circle,#c08c4626,transparent 68%); box-shadow:0 0 0 15px #d7a35705,0 0 0 16px #e5b66812; }
.mini-goban { position:relative; width:225px; height:225px; transform:perspective(700px) rotateX(22deg) rotateZ(-15deg); border:12px solid #a18c62; border-radius:13px; background:repeating-linear-gradient(90deg,transparent 0 39px,#3e4c3259 39px 40px),repeating-linear-gradient(0deg,#c7ba86 0 39px,#3e4c3259 39px 40px); box-shadow:0 9px #3e4c37,0 25px 35px #0006,inset 0 0 16px #5e57253b; }
.art-stone { position:absolute; width:37px; height:37px; border-radius:50%; background:radial-gradient(circle at 30% 25%,#6a6d62,#0d1c16 70%); box-shadow:0 4px 2px #0007,inset 0 1px #ffffff57; }
.stone-a { left:62px; top:22px; }.stone-b { left:102px; top:62px; }.stone-c { left:142px; top:102px; }.stone-d { left:62px; top:62px; }.stone-e { left:102px; top:102px; }
.stone-d,.stone-e { background:radial-gradient(circle at 30% 25%,#fffdf3,#d6d0b8 80%); }
body.portal-club.club-pages :is(.arcade-content-shell,.arcade-screen) { display:grid; gap:24px; padding:0; margin:0; border:0; border-radius:0; background:none; box-shadow:none; overflow:visible; }
body.portal-club.club-pages :is(.arcade-content-shell,.arcade-screen,.lobby-standalone)::before,
body.portal-club.club-pages :is(.arcade-content-shell,.arcade-screen,.lobby-standalone)::after { display:none; }
body.portal-club.club-pages .screen-head { display:none; }
body.portal-club.club-pages .screen-grid { gap:24px; padding:0; }
body.portal-club.club-pages :is(.lobby-standalone,.panel) { min-width:0; padding:26px; border:1px solid var(--club-line); border-radius:18px; color:var(--club-text); background:linear-gradient(145deg,#ffffff03,transparent 70%),var(--club-surface); box-shadow:0 15px 30px #00000018; }
body.portal-club.club-pages :is(.lobby-standalone,.panel) h2 { color:var(--club-text); font-size:24px; font-weight:600!important; line-height:1.5; margin:8px 0 20px; }
body.portal-club.club-pages .controls { border:1px solid var(--club-line); border-radius:14px; margin:0 0 20px; padding:13px 16px; background:var(--club-surface); box-shadow:none; }
body.portal-club.club-pages .game-tools { display:flex; flex-wrap:wrap; gap:10px; align-items:center; }
body.portal-club.club-pages :is(button,.page-button,.club-cta) { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:46px; padding:10px 17px; border:1px solid #eed4a375; border-radius:10px; color:#392922; background:linear-gradient(130deg,#f2ddb1,#c6a471); box-shadow:inset 0 1px #fff4d754,0 2px #8c684339; font-size:14px; font-weight:600; line-height:1.6; text-shadow:none; }
body.portal-club.club-pages :is(button,.page-button):hover { filter:brightness(1.06); transform:none; }
body.portal-club.club-pages :is(.page-button.secondary,#refresh-lobby,#back-to-game,#join-by-code) { color:var(--club-text); border-color:var(--club-line); background:#ffffff07; box-shadow:none; }
body.portal-club.club-pages :is(input:not([type=checkbox]),select) { width:100%; min-height:46px; padding:10px 12px; border:1px solid #d5bd943d; border-radius:9px; background:var(--club-bg); color:var(--club-text); font-size:15px; line-height:1.5; }
body.portal-club.club-pages .game-tools input { width:155px; }
body.portal-club.club-pages input[type=checkbox] { accent-color:var(--club-gold); width:19px; height:19px; }
body.portal-club.club-pages :is(label,.form-grid label,.table-config-fields label) { color:var(--club-muted); font-size:13px; line-height:1.6; }
body.portal-club.club-pages :is(.form-grid,.table-config-fields) { gap:17px; }
body.portal-club.club-pages :is(.lobby-status,.status-line) { display:block; margin-top:15px; color:var(--club-muted); font-size:13px; line-height:1.8; overflow-wrap:anywhere; }
body.portal-club.club-pages :is(.room-list,.lobby-list,.ranking-list,.leaderboard-list) { margin:0; padding:0; list-style:none; }
body.portal-club.club-pages :is(.room-list,.lobby-list,.ranking-list,.leaderboard-list)>li { border:1px solid var(--club-line); border-radius:12px; padding:16px; color:var(--club-muted); background:#00000012; font-size:14px; }
body.portal-club.club-pages :is(.empty-state,.lobby-list>li:only-child) { line-height:1.9; }
body.portal-club.club-pages .empty-state { min-height:160px; display:flex; flex-direction:column; justify-content:center; gap:10px; text-align:center; }
body.portal-club.club-pages .empty-state b { font-size:17px; color:var(--club-text); }
body.portal-club.club-pages .empty-state span { font-size:13px; }
body.portal-club.club-pages :is(.room-list,.ranking-list) strong { color:var(--club-text); font-size:15px; }
body.portal-club.club-pages .stat-grid>div { padding:24px 12px; border:1px solid var(--club-line); border-radius:14px; background:#ffffff04; }
body.portal-club.club-pages .stat-grid b { color:var(--club-gold); font-size:35px; }
body.portal-club.club-pages .stat-grid span { color:var(--club-muted); font-size:12px; }
body.portal-club.club-pages .profile-stats { margin:10px 0; padding:0; color:var(--club-muted); font-size:15px; }
body.portal-club.club-pages .profile-stats dd { color:var(--club-gold); font-size:40px; line-height:1.4; margin:0 0 25px; }
body.portal-club.club-pages .player-card .player-emblem { background:var(--club-raised); color:var(--club-gold); border-color:var(--club-line); box-shadow:none; }
body.portal-club.club-pages .rating { font-size:13px; color:var(--club-muted); }
body.portal-club.club-pages .rating b { color:var(--club-gold); font-size:34px; }
body.portal-club.club-pages :is(.rules,.rules-manual) { padding:0; border:0; background:none; box-shadow:none; }
body.portal-club.club-pages :is(.rules-module,.beginner-roadmap) { padding:26px; border:1px solid var(--club-line); border-radius:18px; background:var(--club-surface); color:var(--club-muted); box-shadow:none; margin:0 0 22px; }
body.portal-club.club-pages :is(.rules-manual-heading p,.piece-guide-identity p,.rules-bullets,.rule-copy p) { color:var(--club-muted); font-size:14px; line-height:1.85; }
body.portal-club.club-pages :is(.piece-guide-card,.rule-card) { border-color:var(--club-line); border-radius:16px; background:var(--club-surface); box-shadow:none; }
body.portal-club.club-pages .piece-guide-identity h3 { color:var(--club-text); font-size:25px; }
body.portal-club.club-pages .piece-code { color:var(--club-gold); font-size:11px; }
body.portal-club.club-pages :is(.rules-module h2,.rules-manual-heading h2) { color:var(--club-text); font-size:24px; line-height:1.6; }
body.portal-club.club-pages .rule-copy h2 { margin:5px 0 13px; font-size:23px; }
body.portal-club.club-pages .rules-grid { gap:22px; padding:0; }
body.portal-club.club-pages .rule-number { font-size:16px; color:var(--club-gold); }
body.portal-club.club-pages :is(.roadmap-step span,.turn-checklist em,.flow-node span,.demo-legend,.score-strip,.move-legend,.piece-guide-card footer) { font-size:12px; line-height:1.6; }
body.portal-club.club-pages :is(.roadmap-step b,.turn-checklist b,.beginner-roadmap strong) { font-size:14px; }
body.portal-club.club-pages :is(.roadmap-step,.turn-checklist>span) { border-color:var(--club-line); background:#ffffff04; }
body.portal-club.club-pages .rule-demo { background:#0b191540; border-color:var(--club-line); border-radius:10px; }
body.portal-club.club-pages :is(.page-footer,.club-footer) { max-width:1180px; margin:auto; padding:22px 30px; border-top:1px solid var(--club-line); display:flex; justify-content:space-between; gap:16px; color:var(--club-muted); font-size:11px; line-height:1.8; text-transform:none; }
.club-footer a { color:var(--club-gold); }
/* A shared creator card, with the same contact details as Slave. */
.creator-card { display:grid; grid-template-columns:280px minmax(0,1fr); overflow:hidden; border:1px solid var(--club-line); border-radius:22px; background:var(--club-surface); }
.creator-signature { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; min-height:345px; background:radial-gradient(circle,#bf92501c,transparent 70%),#00000018; border-right:1px solid var(--club-line); }
.creator-monogram { position:relative; color:var(--club-gold); font:400 80px/1 ClubDisplay,serif!important; }
.creator-monogram span { position:absolute; right:-15px; top:-16px; font-size:22px; }
.creator-origin { color:var(--club-muted); font-size:10px; letter-spacing:2px!important; }
.creator-details { padding:38px; }
body.portal-club .creator-details h2 { color:var(--club-text); font:400 35px/1.5 ClubDisplay,serif!important; margin:12px 0; }
.creator-copy { color:var(--club-muted); font-size:15px; line-height:1.8; }
.creator-contact { display:grid; gap:9px; font-style:normal; margin-top:22px; }
.creator-contact a { display:flex; align-items:center; gap:15px; padding:11px 0; border-top:1px solid var(--club-line); color:var(--club-text); }
.creator-contact a span { min-width:45px; font-size:10px; color:var(--club-muted); }
.creator-contact a b { font-size:15px; overflow-wrap:anywhere; }
.creator-contact a i { margin-left:auto; color:var(--club-gold); }
.credits-thanks { display:flex; justify-content:space-between; align-items:center; gap:25px; padding-top:35px; }
.credits-thanks h2 { font-size:23px; color:var(--club-text); margin:7px 0; }
/* Readable play panels, without replacing the original boards or animations. */
body.portal-club.club-play { overflow-y:auto; }
body.portal-club.club-play .app-shell { width:min(1400px,100%); height:auto; min-height:100svh; margin:auto; padding:0 24px 20px; overflow:visible; }
body.game-thaichess.club-play[data-theme=classic] { background:radial-gradient(ellipse at 30% 35%,#61402150,transparent 65%),#170f10; }
body.game-thaichess.club-play[data-theme=classic] :is(.inspection-panel,.game-start) { background:linear-gradient(145deg,#30201ef5,#1c1414f5); color:var(--club-text); border:1px solid var(--club-line); border-radius:17px; box-shadow:0 10px 35px #0003; }
body.game-thaichess.club-play .content-grid { gap:24px; margin-top:18px; }
body.game-thaichess.club-play :is(.inspection-panel button,.game-start button) { min-height:44px; border-radius:9px; font-size:13px; line-height:1.5; }
body.game-thaichess.club-play .inspection-panel h2 { font-size:17px; line-height:1.5; }
body.game-thaichess.club-play :is(.inspection-panel output,.game-start p) { line-height:1.7; }
body.game-thaichess.club-play .game-start h2 { font-size:25px; line-height:1.5; }
body.game-go.club-play .game-layout { flex:none; padding:10px 0; margin:0; }
body.game-go.club-play .board-zone { width:min(740px,calc(100svh - 340px),100%); }
body.game-go.club-play .player-panel { border:1px solid var(--club-line); border-radius:16px; padding:20px; background:#10251ee8; box-shadow:0 10px 30px #0003; }
body.game-go.club-play .player-panel h2 { color:var(--club-text); font-size:24px; line-height:1.4; }
body.game-go.club-play :is(.player-note,.player-heading,.section-label,.board-caption,.board-match-badge,.legend-row) { font-size:12px; line-height:1.7; }
body.game-go.club-play .captured-stat>span { font-size:11px; }
body.game-go.club-play .captured-stat strong { font-size:35px; }
body.game-go.club-play .control-strip { min-height:68px; padding:12px 16px; border:1px solid var(--club-line); border-radius:14px; background:#12251feb; box-shadow:0 7px 24px #0002; }
body.game-go.club-play .control-button { min-height:44px; padding:9px 17px; border:1px solid var(--club-line); border-radius:9px; font-size:13px; line-height:1.5; }
body.game-go.club-play .primary-control { color:#233329; background:linear-gradient(135deg,#f4dfaf,#c6a66d); }
body.game-go.club-play .match-info strong { font-size:12px; }
body.game-go.club-play .game-command-bar .compact-toolbar { display:block; width:100%; }
body.game-go.club-play .game-command-bar .compact-toolbar>p { font-size:12px; margin:0 0 10px; }
body.game-go.club-play .game-command-bar .compact-toolbar .board-tools { display:flex; flex-wrap:wrap; gap:12px; }
body.game-go.club-play .game-command-bar .compact-toolbar .visual-select { display:grid; gap:4px; font-size:11px; }
body.game-go.club-play .game-command-bar .compact-toolbar .visual-select select { width:auto; min-width:120px; max-width:100%; min-height:44px; font-size:12px; }
body.game-go.club-play .game-command-bar .compact-toolbar .board-tools .text-button { min-height:44px; font-size:12px; padding:8px 12px; align-self:end; }
body.game-go.club-play .result-dialog { max-width:min(440px,calc(100vw - 30px)); border:1px solid var(--club-line); border-radius:20px; color:var(--club-text); background:var(--club-surface); }
body.game-go.club-play .result-dialog h2 { font-size:30px; line-height:1.4; }
body.game-go.club-play .result-dialog p { font-size:15px; line-height:1.8; }
body.game-go.club-play .result-dialog button { min-height:46px; border-radius:10px; font-size:14px; }
@media(max-width:1100px) {
 .club-header-inner { flex-wrap:wrap; gap:14px; padding:16px 24px 10px; }
 .portal-menu-row { width:100%; margin:0; justify-content:space-between; padding-top:10px; border-top:1px solid var(--club-line); }
 .club-play .club-header-inner { flex-wrap:wrap; padding-block:12px; }
 .club-play .club-console { flex:1; gap:16px; flex-wrap:wrap; }
 .club-play .club-menu-toggle { display:inline-flex; margin-left:auto; }
 body.club-play .club-console .club-site-nav { display:none; }
 body.club-play .club-console .club-site-nav.club-menu-open { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); flex-basis:100%; width:100%; }
 body.game-go.club-play .board-zone { width:min(700px,100%); }
}
@media(max-width:760px) {
 body.portal-club.club-pages :is(.app-shell,.page-shell) { padding:0 20px 35px; }
 body.portal-club.club-pages :is(.club-intro,.page-hero) { grid-template-columns:minmax(0,1fr) 190px; gap:10px; padding:32px 0; }
 body.portal-club.club-pages :is(.club-intro h1,.page-hero h1) { font-size:34px!important; }
 .club-hero-art { min-height:210px; }
 .makruk-art img { width:180px; height:210px; }
 .club-art-ring { width:150px; height:150px; }
 .mini-goban { width:175px; height:175px; transform:perspective(700px) rotateX(22deg) rotateZ(-15deg) scale(.9); }
 .art-stone { width:30px; height:30px; }.stone-c{left:105px;top:106px}.stone-e{left:65px;top:106px}
 .club-hero-art small { display:none; }
 body.portal-club.club-pages :is(.screen-grid,.lobby-grid) { grid-template-columns:1fr; }
 .creator-card { grid-template-columns:200px minmax(0,1fr); }
 .creator-details { padding:25px; }
 body.portal-club .creator-details h2 { font-size:27px!important; }
}
@media(max-width:600px) {
 .club-header-inner { padding-inline:16px; }
 body.portal-club .club-brand b { font-size:25px!important; }
 .portal-menu-row { gap:12px; }
 body.portal-club .portal-menu-row .club-site-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:3px; flex:1; }
 body.portal-club .portal-menu-row .club-site-nav a { flex-direction:column; min-width:0; min-height:44px; padding:5px 3px; gap:2px; }
 body.portal-club .portal-menu-row .club-site-nav a>span:not(.nav-icon) { font-size:10px; }
 .portal-brand-tile { width:25px; height:29px; font-size:18px; }
 body.portal-club .portal-home-link { padding:8px; gap:6px; }
 .portal-back-cue { display:none; }
 .portal-brand-copy b { font-size:12px; }
 .portal-brand-copy small { font-size:8px; }
 body.portal-club.club-pages :is(.club-intro,.page-hero) { grid-template-columns:1fr 90px; gap:0; padding:28px 0; }
 body.portal-club.club-pages :is(.club-intro h1,.page-hero h1) { font-size:28px!important; line-height:1.5!important; }
 body.portal-club.club-pages :is(.club-intro,.page-hero) p { font-size:13px; }
 body.portal-club.club-pages :is(.club-intro,.page-hero)>div:first-child { position:relative; z-index:2; }
 .club-hero-art { min-height:170px; align-self:start; margin-top:25px; }
 .makruk-art img { width:135px; height:175px; max-width:none; }
 .club-art-ring { width:85px; height:85px; }
 .mini-goban { transform:scale(.48) rotate(-14deg); transform-origin:center; flex-shrink:0; margin-left:-10px; }
 .go-art .mini-goban { position:absolute; left:50%; top:50%; margin:0; transform:translate(-50%,-50%) scale(.43) rotate(-14deg); }
 body.portal-club.club-pages :is(.lobby-standalone,.panel,.rules-module,.beginner-roadmap) { padding:18px; border-radius:14px; }
 body.portal-club.club-pages .rules-grid { grid-template-columns:1fr; }
 body.portal-club.club-pages .piece-move-gallery { grid-template-columns:1fr; }
 body.portal-club.club-pages .game-tools { display:grid; grid-template-columns:1fr 1fr; }
 body.portal-club.club-pages .game-tools input { width:100%; }
 body.portal-club.club-pages .inline-actions { flex-wrap:wrap; }
 body.portal-club.club-pages .inline-actions>* { flex:1; min-width:0; }
 body.portal-club.club-pages .inline-actions input { min-width:120px; }
 .creator-card { grid-template-columns:1fr; }
 .creator-signature { min-height:190px; gap:18px; border-right:0; border-bottom:1px solid var(--club-line); }
 .creator-monogram { font-size:60px!important; }
 .creator-contact a { gap:8px; }
 .creator-contact a b { font-size:13px; }
 .credits-thanks { flex-direction:column; align-items:start; }
 body.portal-club.club-play .app-shell { padding:0 10px 20px; }
 .club-play .club-console { flex-basis:100%; margin:0; }
 body.portal-club .club-console button { display:inline-flex; align-items:center; justify-content:center; width:auto; }
 body.portal-club.club-pages .club-hero-art { overflow:hidden; }
 body.portal-club.club-pages .makruk-art img { width:100%; height:170px; }
 .club-play .club-header-inner { gap:10px; }
 body.club-play .club-console .club-site-nav.club-menu-open { grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
 body.club-play .club-console .club-site-nav a { min-height:48px; }
 .club-settings>summary span { display:none; }
 body.game-thaichess.club-play .content-grid { grid-template-columns:minmax(0,1fr); gap:16px; }
 body.game-thaichess.club-play .board-card { min-width:0; margin:0; padding:0; }
 body.game-thaichess.club-play .inspection-panel { min-width:0; padding:14px; }
 body.game-thaichess.club-play .inspection-tabs { gap:3px; }
 body.game-thaichess.club-play .inspection-tab { padding-inline:3px; font-size:11px; }
 body.game-thaichess.club-play .game-start { padding:18px; }
 body.game-thaichess.club-play .game-start h2 { font-size:20px; }
 body.game-thaichess.club-play .game-start p { font-size:13px; }
 body.game-go.club-play .game-layout { grid-template-columns:1fr 1fr; gap:12px; }
 body.game-go.club-play .black-panel,body.game-go.club-play .white-panel { grid-row:1; }
 body.game-go.club-play .board-zone { grid-column:1/-1; grid-row:2; width:100%; }
 body.game-go.club-play .player-panel { padding:12px; margin:0; min-width:0; }
 body.game-go.club-play .player-panel h2 { font-size:17px; margin:7px 0; }
 body.game-go.club-play .player-note { display:none; }
 body.game-go.club-play .captured-stat { margin-top:6px; }
 body.game-go.club-play .captured-stat strong { font-size:27px; }
 body.game-go.club-play .player-heading { gap:5px; font-size:10px; }
 body.game-go.club-play .player-heading .turn-pill { font-size:9px; }
 body.game-go.club-play .board-caption { font-size:11px; }
 body.game-go.club-play .board-caption>span:first-child,body.game-go.club-play .board-caption>span:last-child { display:none; }
 body.game-go.club-play .control-strip { margin-top:12px; padding:12px; flex-wrap:wrap; gap:10px; }
 body.game-go.club-play .control-strip .actions { order:2; display:grid; grid-template-columns:repeat(3,1fr); width:100%; gap:8px; }
 body.game-go.club-play .control-button { padding:10px 7px; }
 body.game-go.club-play .match-info { display:none; }
 body.game-go.club-play .legend-row { flex-wrap:wrap; font-size:10px; }
}
@media(prefers-reduced-motion:reduce) {
 .portal-club .club-site-header *,.portal-club.club-pages * { animation:none!important; transition:none!important; }
}

/* Device comfort: board-first layout without scaling interface text. */

.device-board-viewport{width:100%;min-width:0;overflow:auto;overscroll-behavior-x:contain;scrollbar-width:thin;border-radius:12px}
.device-board-viewport:focus-visible{outline:2px solid var(--club-accent);outline-offset:3px}

body.game-go.club-play .device-board-viewport .board-frame{width:100%;min-width:100%;max-width:none;margin:0}
body.game-go.club-play .board-zone{min-width:0}
body.game-go.club-play .control-button{min-height:44px}
body.game-go.club-play .result-dialog{max-height:calc(100svh - 24px);overflow:auto}
@media(max-width:1100px){
 body.game-go.club-play .game-layout{display:grid;grid-template-columns:1fr 1fr;gap:10px}
 body.game-go.club-play :is(.black-panel,.white-panel){grid-row:1;margin:0;padding:10px 12px}
 body.game-go.club-play .board-zone{grid-column:1/-1;grid-row:2;width:min(720px,100%);justify-self:center}
 body.game-go.club-play .player-panel{display:grid;grid-template-columns:1fr auto;gap:2px 8px}
 body.game-go.club-play .player-heading{grid-column:1/-1;font-size:10px}
 body.game-go.club-play .player-panel h2{font-size:15px;margin:3px 0}
 body.game-go.club-play .captured-stat{display:flex;align-items:center;gap:5px;margin:0;font-size:10px}
 body.game-go.club-play .captured-stat strong{font-size:21px}
 body.game-go.club-play :is(.player-note,.player-panel:before,.player-panel:after){display:none}
 body.game-go.club-play .control-strip{flex-wrap:wrap}
}
@media(max-height:600px) and (orientation:landscape){
 body.game-go.club-play .club-header-inner{padding:6px 12px}
 body.game-go.club-play .game-layout{grid-template-columns:minmax(0,1fr) 160px;padding:0}
 body.game-go.club-play .board-zone{grid-column:1;grid-row:1/3;width:min(100%,calc(100svh - 112px))}
 body.game-go.club-play .device-board-viewport{max-height:calc(100svh - 170px)}
 body.game-go.club-play :is(.black-panel,.white-panel){grid-column:2;align-self:start}
 body.game-go.club-play .white-panel{grid-row:2}
 body.game-go.club-play :is(.board-caption,.board-match-badge,.legend-row){display:none}
 body.game-go.club-play .control-strip{margin-top:8px}
}


.device-board-viewport{max-height:var(--device-board-fit-height,none)}
@media(max-height:600px) and (orientation:landscape){body.club-play .device-board-viewport{max-height:min(var(--device-board-fit-height),calc(100svh - 190px))}}

@media(min-width:1101px){body.game-go.club-play .board-zone{width:min(740px,calc(100svh - 410px),100%)}}
@media(max-width:1100px){
 body.game-go.club-play .player-panel{min-height:0;height:auto}
 body.game-go.club-play .player-panel h2{font-size:14px}
 body.game-go.club-play .player-panel.is-bot h2:after{display:none}
 body.game-go.club-play .board-zone{width:min(720px,calc(100svh - 345px),100%)}
 body.game-go.club-play .club-header-inner{min-height:56px;flex-wrap:nowrap;gap:10px;padding-block:6px}
 body.game-go.club-play .club-console{flex-basis:auto;flex:1;justify-content:flex-end;gap:8px;margin-left:auto}
 body.game-go.club-play .club-settings{margin:6px 0}
 body.game-go.club-play .club-brand small{display:none}
 body.game-go.club-play .control-strip{padding:8px}
 body.game-go.club-play .last-move{font-size:11px}
}
@media(max-width:600px){
 body.game-go.club-play .board-zone{width:100%}
 body.game-go.club-play .club-brand .club-play-title{font-size:22px!important}
 body.game-go.club-play .club-console .quiet-button{font-size:11px;padding-inline:8px}
 body.game-go.club-play .control-strip{position:sticky;bottom:6px;z-index:12;background:#12251ff5}
}
@media(max-height:600px) and (orientation:landscape){
 body.game-go.club-play .board-zone{width:min(100%,calc(100svh - 128px))}
 body.game-go.club-play .player-panel{padding:8px}
 body.game-go.club-play .control-strip{margin-top:4px}
}
