*{box-sizing:border-box}:root{font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1a1a1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden}body{display:flex}button{font-family:inherit}.tile{display:flex;align-items:center;justify-content:center;cursor:default;-webkit-user-select:none;user-select:none;position:relative;flex-shrink:0;box-sizing:border-box;background:#f5f0e1;border-radius:4px;box-shadow:1px 1px 2px #0000004d,inset 0 0 1px #ffffff80;overflow:hidden;--tile-face-w: 32px;--tile-face-h: 42px;--tile-pad: 2px}.tile-normal{width:32px;height:42px;padding:var(--tile-pad);--tile-face-w: 32px;--tile-face-h: 42px}.tile-hint{width:28px;height:36px;padding:var(--tile-pad);--tile-face-w: 28px;--tile-face-h: 36px}.tile-rotated-90,.tile-rotated-270{width:42px;height:32px}.tile-rotated-180{width:32px;height:42px}.tile-image{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;pointer-events:none}.tile-rotated-90 .tile-image,.tile-rotated-270 .tile-image{position:absolute;top:50%;left:50%;width:calc(var(--tile-face-w) - var(--tile-pad) - var(--tile-pad));height:calc(var(--tile-face-h) - var(--tile-pad) - var(--tile-pad));max-width:none;max-height:none;transform-origin:center}.tile-rotated-90 .tile-image{transform:translate(-50%,-50%) rotate(90deg)}.tile-rotated-270 .tile-image{transform:translate(-50%,-50%) rotate(270deg)}.tile-rotated-180 .tile-image,.tile-rotated-180 .tile-back{transform:rotate(180deg)}.tile-back{width:100%;height:100%;background:linear-gradient(135deg,#1a5c1a,#0d3d0d);border-radius:2px}.tile.clickable{cursor:pointer}.tile.selected{box-shadow:0 0 0 2px #ffd70061,0 0 12px #ffd700cc,1px 6px 8px #0006;outline:2px solid #ffd700;outline-offset:-2px}.tile.recommended{outline:2px solid #69dc77;outline-offset:-2px;animation:pulse-green 1.5s ease-in-out infinite}.tile.recommended:after{content:"TIP";position:absolute;top:1px;right:1px;z-index:2;padding:1px 2px;border-radius:2px;background:#176b2b;color:#fff;font-size:6px;font-weight:900;line-height:1;letter-spacing:.2px;pointer-events:none}.tile.selected.recommended{outline-color:gold;box-shadow:0 0 0 2px #69dc7759,0 0 14px #ffd700e6,1px 6px 8px #0006}@keyframes pulse-green{0%,to{box-shadow:0 0 6px #4caf5080}50%{box-shadow:0 0 13px #69dc77f2}}.tile.concealed{background:transparent;box-shadow:1px 1px 3px #0006}@media(prefers-reduced-motion:reduce){.tile.recommended{animation:none}}.player-hand{position:relative;display:flex;align-items:center;justify-content:center;z-index:20}.player-hand.current-turn{background:#ffd70026;box-shadow:0 0 10px #ffd7004d}.player-hand{position:relative;display:flex;align-items:center;justify-content:center;z-index:20;gap:8px;margin:0;padding:0}.player-hand.bottom{flex-direction:column}.player-hand.top{flex-direction:column-reverse}.player-hand.left{flex-direction:row-reverse;height:100%;min-height:0;justify-content:flex-end}.player-hand.right{flex-direction:row;height:100%;min-height:0;justify-content:flex-end}.discard-pile{display:flex;flex-wrap:wrap;gap:2px;padding:4px;border-radius:4px;min-height:40px;max-width:320px}.discard-pile-vertical{flex-direction:column;max-width:none;height:100%;max-height:100%;justify-content:center}.player-hand.bottom .discard-pile{width:100%;justify-content:center;flex-direction:row;flex-wrap:wrap-reverse}.player-hand.top .discard-pile{width:100%;justify-content:center;flex-direction:row;flex-wrap:wrap}.player-hand.left .discard-pile{align-items:center;height:100%;max-height:100%;min-width:auto;flex-wrap:wrap}.player-hand.right .discard-pile{align-items:center;height:100%;max-height:100%;min-width:auto;flex-wrap:wrap-reverse}.player-hand.bottom .discard-zone,.player-hand.top .discard-zone{width:288px;flex-direction:row;flex-wrap:wrap-reverse;justify-content:flex-start}.player-hand.top .discard-zone{flex-wrap:wrap;flex-direction:row-reverse}.player-hand.left .discard-zone,.player-hand.right .discard-zone{height:288px;display:flex}.player-hand.left .discard-zone{flex-direction:column-reverse;flex-wrap:wrap}.player-hand.right .discard-zone{flex-direction:column;flex-wrap:wrap-reverse;align-content:flex-end}.exposed-zone{display:flex;gap:8px;align-items:center;justify-content:center}.player-hand.left .exposed-zone,.player-hand.right .exposed-zone{flex-direction:column;flex-wrap:wrap;justify-content:center}.player-hand.bottom .exposed-zone,.player-hand.top .exposed-zone{flex-direction:row;flex-wrap:nowrap;max-width:90vw}.player-info{display:flex;align-items:center;gap:4px;margin-bottom:4px;font-weight:700;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.seat-label{font-size:11px;text-transform:uppercase;letter-spacing:1px}.turn-indicator{color:gold;font-size:10px;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hand-tiles{display:flex;align-items:flex-end;gap:0;transition:all .3s ease;flex-wrap:wrap;justify-content:center;max-width:100vw}.hand-tiles-vertical{flex-direction:column;flex-wrap:wrap;align-items:center}.hand-composite{display:flex;align-items:center;gap:0;flex-wrap:wrap;justify-content:center;width:100%}.hand-composite.bottom{flex-direction:row;align-items:flex-end}.player-hand.bottom .flower-tile,.player-hand.bottom .melds{margin-bottom:0}.hand-composite.top{flex-direction:row-reverse;align-items:flex-start}.hand-composite.left{flex-direction:column-reverse;align-items:flex-start;height:100%;width:auto;align-content:center}.hand-composite.right{flex-direction:column;align-items:flex-end;height:100%;width:auto;align-content:center}.player-hand.bottom .meld .tile,.flower-tile,.player-hand.bottom .discard-pile .tile,.hand-tile,.player-hand.top .meld .tile,.player-hand.top .discard-pile .tile{width:32px!important;height:42px!important;padding:2px}.player-hand.left .meld .tile,.player-hand.left .flower-tile,.player-hand.left .discard-pile .tile,.player-hand.left .hand-tile,.player-hand.right .meld .tile,.player-hand.right .flower-tile,.player-hand.right .discard-pile .tile,.player-hand.right .hand-tile{width:42px!important;height:32px!important;padding:2px}.melds{display:flex;flex-wrap:wrap;flex-direction:row;gap:4px}.melds-vertical{flex-direction:column}.meld{display:flex;flex-direction:row;gap:1px;background:#0000001a;border-radius:3px}.meld-vertical{flex-direction:column}.flowers{display:flex;flex-direction:row;gap:2px;padding:2px;background:#ffc0cb33;border-radius:3px}.flowers-vertical{flex-direction:column}.player-hand.top .hand-tile{width:28px!important;height:36px!important;padding:1px}.player-hand.left .hand-tile,.player-hand.left .flower-tile,.player-hand.right .hand-tile,.player-hand.right .flower-tile{width:42px!important;height:32px!important;padding:1px}.player-hand.top .hand-tile .tile-back,.player-hand.left .hand-tile .tile-back,.player-hand.right .hand-tile .tile-back{background-size:cover}.player-hand.top .melds,.player-hand.top .meld{flex-direction:row-reverse}.human-action-row{display:flex;align-items:center;justify-content:center;gap:8px;min-height:30px;margin:0 0 4px;padding:0 6px;box-sizing:border-box;color:#fff}.hand-instruction{display:inline-flex;align-items:center;min-height:24px;padding:3px 9px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:#080f0ac7;color:#ffffffdb;font-size:11px;font-weight:650;line-height:1.15;white-space:nowrap}.hand-instruction.confirm{border-color:#ffd700a6;color:#fff5b8;background:#271f00c7}.sort-button-integrated{min-height:26px;padding:3px 9px;border:1px solid rgba(255,255,255,.22);border-radius:5px;background:#00000073;color:#fff;font-size:11px;font-weight:750;cursor:pointer}.sort-button-integrated:hover{background:#ffffff1a}@media(max-width:700px){.human-action-row{gap:5px;min-height:28px;margin-bottom:2px;padding:0 4px}.hand-instruction{min-height:22px;padding:2px 7px;font-size:10px}.sort-button-integrated{min-height:24px;padding:2px 7px;font-size:10px}}.discard-pile{display:flex;flex-direction:column;align-items:center;padding:4px;min-width:40px;min-height:40px}.discard-label{font-size:9px;text-transform:uppercase;color:#ffffff80;margin-bottom:2px;letter-spacing:1px}.discards-container{display:flex;gap:2px}.discard-row{display:flex;gap:1px}.discard-pile.south .discards-container{flex-direction:column-reverse;align-items:center}.discard-pile.south .discard-row{flex-direction:row}.discard-pile.north .discards-container{flex-direction:column;align-items:center}.discard-pile.north .discard-row{flex-direction:row}.discard-pile.east .discards-container{flex-direction:row-reverse;align-items:center}.discard-pile.east .discard-row{flex-direction:column}.discard-pile.west .discards-container{flex-direction:row;align-items:center}.discard-pile.west .discard-row{flex-direction:column-reverse}.teacher-panel{position:fixed;right:0;top:44px;width:320px;height:calc(100dvh - 44px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;box-sizing:border-box;background:#151f27fa;border-left:1px solid rgba(255,255,255,.14);padding:14px;box-shadow:-10px 0 30px #00000047;z-index:95;font-size:13px;line-height:1.4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.teacher-copy-mobile{display:none}.teacher-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.1)}.teacher-header h3{margin:0;color:#ffe06b;font-size:15px}.teacher-subtitle{margin-top:2px;max-width:220px;color:#96a3ad;font-size:10px;line-height:1.3}.toggle-btn{flex:0 0 auto;background:#ffffff1a;border:1px solid rgba(255,255,255,.08);color:#fff;width:28px;height:28px;border-radius:6px;cursor:pointer;font-size:20px;line-height:1}.toggle-btn:hover{background:#ffffff2e}.teacher-content{color:#edf1f3}.recommendation{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;padding:10px;background:#4caf5024;border-radius:8px;border:1px solid rgba(105,220,119,.35)}.rec-label,.reasoning-label,.alt-label{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.7px}.rec-label{color:#8ee595}.rec-help{margin-top:3px;color:#a8b5bd;font-size:10px;line-height:1.3}.rec-tile{flex:0 0 auto}.rec-tile .tile.clickable{cursor:help}.reasoning{margin-bottom:12px}.reasoning-label,.alt-label{color:#a7b2ba;margin-bottom:4px}.reasoning-text{color:#f1f4f5;font-size:13px;line-height:1.45}.inline-rule-link,.stat-link{padding:0;border:0;border-bottom:1px dashed rgba(255,224,107,.62);background:transparent;color:#ffe06b;font:inherit;font-weight:800;cursor:help}.inline-rule-link:hover,.stat-link:hover{color:#fff2a5;border-bottom-style:solid}.stats{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;padding:9px 10px;border-radius:8px;background:#ffffff0b}.stat{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:12px}.stat-label{color:#a7b2ba}.stat-value,.stat-link{color:#f4f6f7;font-weight:750;text-align:right}.stat-link.fan{color:#ffe06b}.alternatives{padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}.alt-list{display:flex;gap:14px}.alt-item{display:flex;flex-direction:column;align-items:center;gap:4px}.alt-item-button{padding:0;border:0;background:transparent;color:inherit;cursor:help}.alt-item-button:hover .tile{outline:1px solid rgba(255,224,107,.6)}.alt-reason{font-size:10px;color:#a7b2ba}.no-suggestion{text-align:center;color:#a7b2ba;padding:14px 8px;line-height:1.4}@media(max-width:900px){.teacher-panel{top:50%;left:50%;right:auto;width:min(294px,calc(100vw - 96px));height:auto;max-height:38dvh;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:9px;box-shadow:0 14px 36px #0000007a}.teacher-copy-desktop{display:none}.teacher-copy-mobile{display:inline}.teacher-header{margin-bottom:8px;padding-bottom:7px}.teacher-header h3{font-size:14px}.recommendation{gap:8px;margin-bottom:8px;padding:8px}.rec-help{max-width:150px;margin-top:2px;line-height:1.2}.reasoning{margin-bottom:8px}.reasoning-text{font-size:12px;line-height:1.35}.stats{gap:4px;margin-bottom:8px;padding:7px 8px}.stat{font-size:11px}.alternatives{padding-top:7px}.alt-list{gap:10px}}.game-info{position:fixed;left:10px;top:50%;transform:translateY(-50%);background:linear-gradient(145deg,#2c3e50,#1a252f);border:1px solid #4a6785;border-radius:8px;padding:10px;min-width:120px;box-shadow:0 4px 16px #0006;z-index:100;color:#e0e0e0;font-size:11px}.round-info{text-align:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.round-wind{font-size:14px;font-weight:700;color:gold}.hand-number{font-size:10px;color:#888;margin-top:2px}.wall-count{display:flex;align-items:center;justify-content:center;gap:6px;margin-bottom:10px;padding:8px;background:#0003;border-radius:6px}.wall-icon{font-size:16px}.wall-number{font-size:18px;font-weight:700;color:#fff}.wall-label{font-size:9px;color:#888}.turn-info{text-align:center;margin-bottom:10px}.turn-label{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#888;margin-bottom:2px}.turn-player{font-size:11px;font-weight:700;padding:4px 8px;background:#ffd70026;border-radius:3px;color:gold}.turn-player.south{background:#4caf5033;color:#4caf50}.scores{border-top:1px solid rgba(255,255,255,.1);padding-top:8px}.scores-label{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:#888;margin-bottom:4px;text-align:center}.score-item{display:flex;justify-content:space-between;padding:2px 0;font-size:11px}.score-item.human{color:#4caf50;font-weight:700}.score-wind{color:#888}.score-value{font-weight:700}.game-over{margin-top:10px;padding:8px;background:#f4433633;border-radius:6px;text-align:center}.game-over-text{font-size:14px;font-weight:700;color:#f44336}.game-state-bar{position:fixed;top:0;left:0;width:100%;height:44px;background:#000000e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:space-between;align-items:center;padding:0 12px;box-sizing:border-box;z-index:100;border-bottom:1px solid rgba(255,215,0,.2);box-shadow:0 2px 8px #00000080;transition:width .2s ease}.global-state{display:flex;align-items:center;gap:8px}.round-indicator{width:32px;height:32px;background:radial-gradient(circle,#333,#111);border:1px solid #ffd700;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:gold;box-shadow:0 0 8px #ffd70033}.deck-count{display:flex;align-items:center;gap:4px;background:#ffffff1a;padding:2px 6px;border-radius:8px;font-family:monospace;font-size:12px;color:#ddd}.deck-icon{width:10px;height:14px;background:#ccc;border-radius:2px}.player-strip{display:flex;align-items:center;gap:4px}.status-player{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:36px;height:38px;background:#ffffff0d;border-radius:4px;border:1px solid transparent;transition:all .3s ease}.status-player.is-dealer{border-color:#ff4d4d;background:#ff4d4d1a}.dealer-icon{position:absolute;top:-4px;right:-4px;background:#ff4d4d;color:#fff;font-size:8px;transform:scale(.8);padding:1px 3px;border-radius:3px;font-weight:700}.status-player.active{box-shadow:0 0 15px #ffd70066;border-color:gold;background:#ffd70026;transform:scale(1.05);z-index:10}.status-wind{font-size:18px;font-weight:700;color:#aaa}.status-player.active .status-wind{color:gold}.status-score{font-size:10px;color:#888;font-family:monospace}.center-controls{display:flex;align-items:center;gap:6px}.auto-play-btn,.teacher-toggle-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#ffffffad;min-height:28px;padding:4px 10px;border-radius:4px;cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.5px;transition:all .2s ease}.auto-play-btn.active{background:#4caf5033;border-color:#4caf50;color:#4caf50;box-shadow:0 0 8px #4caf504d}.teacher-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px}.teacher-toggle-btn.active{color:#ffe06b;border-color:#ffe06bb3;background:#ffe06b1a}.auto-play-btn:hover,.teacher-toggle-btn:hover{border-color:#ffffff73;color:#fff}.auto-play-btn.active:hover{background:#4caf504d;border-color:#4caf50}.teacher-toggle-icon{line-height:1}@media(max-width:700px){.game-state-bar{padding:0 6px}.global-state{gap:4px}.round-indicator{width:30px;height:30px;font-size:17px}.deck-count{padding:2px 4px;font-size:11px}.center-controls{gap:3px}.auto-play-btn{padding:3px 6px;font-size:9px;min-height:26px}.teacher-toggle-btn{width:28px;min-height:26px;padding:0}.teacher-toggle-label{display:none}.player-strip{gap:2px}.status-player{width:32px;height:36px}.status-wind{font-size:16px}}@media(prefers-reduced-motion:reduce){.game-state-bar,.status-player,.auto-play-btn,.teacher-toggle-btn{transition:none}}.knowledge-overlay{position:fixed;inset:0;z-index:1500;display:grid;place-items:center;padding:clamp(10px,2.2vmin,24px);box-sizing:border-box;background:#030705c2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.knowledge-card{width:min(760px,100%);max-height:min(86dvh,820px);overflow-y:auto;overscroll-behavior:contain;border:1px solid rgba(255,255,255,.16);border-radius:clamp(12px,1.8vmin,20px);background:linear-gradient(160deg,#1b2722fc,#0e1814fc);box-shadow:0 28px 90px #0000009e;color:#edf4ef;padding:clamp(14px,2.2vmin,24px);box-sizing:border-box;scrollbar-gutter:stable}.knowledge-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:34px;margin-bottom:clamp(6px,1vmin,12px)}.knowledge-back,.knowledge-close{border:1px solid rgba(255,255,255,.14);background:#ffffff12;color:#f4f7f5;border-radius:8px;cursor:pointer}.knowledge-back{padding:7px 10px;font-size:clamp(12px,1.3vmin,14px);font-weight:700}.knowledge-close{width:34px;height:34px;padding:0;font-size:24px;line-height:1}.knowledge-back:hover,.knowledge-close:hover{background:#ffffff21}.knowledge-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}.knowledge-title-row h2,.tile-detail-hero h2{margin:2px 0 0;font-size:clamp(22px,3vmin,34px);line-height:1.05}.knowledge-eyebrow{color:#91a69a;font-size:clamp(10px,1.05vmin,12px);font-weight:850;letter-spacing:.9px;text-transform:uppercase}.fan-badge{flex:0 0 auto;display:inline-flex;align-items:center;min-height:26px;padding:4px 9px;border-radius:999px;background:#ffe06b1f;border:1px solid rgba(255,224,107,.35);color:#ffe06b;font-size:clamp(10px,1.15vmin,12px);font-weight:850;white-space:nowrap}.fan-badge.limit{color:#ffb4ab;border-color:#ff7b6e66;background:#ff5c4a1f}.knowledge-definition{margin:0 0 clamp(16px,2vmin,24px);color:#dfe9e3;font-size:clamp(14px,1.6vmin,17px);line-height:1.55}.knowledge-detail section{margin-top:clamp(16px,2vmin,24px)}.knowledge-detail h3{margin:0 0 9px;color:#aabbb1;font-size:clamp(11px,1.25vmin,13px);letter-spacing:.7px;text-transform:uppercase}.knowledge-requirements{margin:0;padding-left:20px;color:#e8efeb;font-size:clamp(13px,1.45vmin,15px);line-height:1.55}.knowledge-note,.knowledge-tap-hint{color:#95a89d;font-size:clamp(11px,1.2vmin,13px);line-height:1.45}.rulebook-search{width:100%;box-sizing:border-box;margin:4px 0 14px;padding:11px 12px;border-radius:9px;border:1px solid rgba(255,255,255,.15);background:#0003;color:#fff;outline:none;font-size:14px}.rulebook-search:focus{border-color:#ffe06bb3;box-shadow:0 0 0 2px #ffe06b1a}.terminology-section{margin:0 0 clamp(16px,2.2vmin,24px);padding:clamp(10px,1.5vmin,14px);border:1px solid rgba(255,255,255,.1);border-radius:12px;background:#00000024}.terminology-heading{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:9px}.terminology-heading>span{color:#f1f6f3;font-size:clamp(12px,1.4vmin,15px);font-weight:850}.terminology-heading small{color:#8fa298;font-size:clamp(9px,1.05vmin,11px);text-align:right}.terminology-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.terminology-card{min-width:0;padding:10px 11px;border:1px solid rgba(255,255,255,.1);border-radius:9px;background:#ffffff0b}.terminology-card>strong{display:block;margin-bottom:5px;color:#f3f7f5;font-size:clamp(12px,1.35vmin,14px)}.terminology-languages{display:flex;flex-wrap:wrap;gap:4px 10px;color:#cfe0d6;font-size:clamp(11px,1.2vmin,13px);line-height:1.3}.terminology-languages span{white-space:nowrap}.terminology-languages b{color:#8ea69a;font-size:9px;letter-spacing:.4px}.terminology-languages i{color:#9eb2a7;font-style:normal;font-weight:500}.terminology-card p{margin:7px 0 0;color:#9eb0a6;font-size:clamp(10px,1.08vmin,12px);line-height:1.4}.rulebook-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:8px}.rulebook-entry,.related-rules button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:#ffffff0b;color:#edf4ef;cursor:pointer;padding:10px 11px}.rulebook-entry:hover,.related-rules button:hover{background:#ffffff17;border-color:#ffe06b57}.rulebook-entry>span:first-child{display:flex;min-width:0;flex-direction:column;gap:2px}.rulebook-entry strong{font-size:clamp(12px,1.35vmin,14px)}.rulebook-entry small{color:#8fa298;font-size:10px}.rule-examples{display:flex;flex-direction:column;gap:9px}.rule-example{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(4px,.7vmin,8px);padding:clamp(7px,1vmin,10px);border-radius:9px;background:#ffffff0a;overflow-x:auto}.rule-example-group{display:inline-flex;gap:1px;flex:0 0 auto}.rule-example .tile.rule-example-tile{width:clamp(24px,min(3vw,4dvh),38px)!important;height:calc(clamp(24px,min(3vw,4dvh),38px)*1.3125)!important;padding:1px}.rule-example .tile.rule-example-tile:hover{transform:translateY(-2px)}.tile-detail-hero{display:flex;align-items:center;gap:clamp(14px,2vmin,22px);margin-bottom:16px}.tile.knowledge-tile-large{width:clamp(58px,min(9vw,13dvh),92px)!important;height:calc(clamp(58px,min(9vw,13dvh),92px)*1.3125)!important;padding:4px;border-radius:8px}.related-rules{display:grid;gap:7px}.related-rules button span:last-child{color:#ffe06b;font-weight:800;white-space:nowrap}@media(max-width:560px){.terminology-heading{align-items:flex-start;flex-direction:column;gap:2px}.terminology-heading small{text-align:left}.terminology-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.knowledge-card,.rulebook-entry,.related-rules button{scroll-behavior:auto;transition:none}}.game-table{display:grid;width:100vw;height:100dvh;background-color:#153a26;background-image:radial-gradient(circle at 50% 43%,#45845b85,#215b3a61 34%,#11392394 69%,#05180ee6),linear-gradient(145deg,#286747,#17452e 52%,#0d2c1b);box-shadow:inset 0 0 130px #00000047;overflow:hidden;position:relative;grid-template-areas:"top top top" "left center right" "bottom bottom bottom";grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:auto minmax(0,1fr) auto;padding-top:48px;box-sizing:border-box;transition:width .2s ease}.game-table:before{content:"";position:absolute;inset:0;background-image:url(data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27180%27%20height%3D%27180%27%20viewBox%3D%270%200%20180%20180%27%3E%3Cfilter%20id%3D%27fine%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.46%27%20numOctaves%3D%274%27%20seed%3D%2711%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27saturate%27%20values%3D%270%27%2F%3E%3C%2Ffilter%3E%3Cfilter%20id%3D%27fiber%27%3E%3CfeTurbulence%20type%3D%27fractalNoise%27%20baseFrequency%3D%27.018%20.58%27%20numOctaves%3D%273%27%20seed%3D%2729%27%20stitchTiles%3D%27stitch%27%2F%3E%3CfeColorMatrix%20type%3D%27saturate%27%20values%3D%270%27%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%27180%27%20height%3D%27180%27%20filter%3D%27url%28%23fine%29%27%20opacity%3D%27.22%27%2F%3E%3Crect%20width%3D%27180%27%20height%3D%27180%27%20filter%3D%27url%28%23fiber%29%27%20opacity%3D%27.18%27%2F%3E%3C%2Fsvg%3E);background-size:180px 180px;background-repeat:repeat;mix-blend-mode:soft-light;filter:contrast(1.25);opacity:.62;pointer-events:none}.table-center{grid-area:center;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.player-hand.bottom{grid-area:bottom}.player-hand.top{grid-area:top}.player-hand.left{grid-area:left}.player-hand.right{grid-area:right}@media(min-width:901px){.game-table.teacher-open,.game-table.teacher-open .game-state-bar{width:calc(100vw - 320px)}}.game-over-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000}.game-over-content{background:linear-gradient(145deg,#2c3e50,#1a252f);border:2px solid #4a6785;border-radius:16px;padding:40px;text-align:center;color:#fff}.game-over-content h2{font-size:32px;margin:0 0 16px;color:gold}.game-over-content p{margin:0 0 24px;color:#aaa}.game-over-content button{padding:12px 32px;font-size:16px;font-weight:700;background:linear-gradient(145deg,#4caf50,#388e3c);border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .2s ease}.game-over-content button:hover{transform:scale(1.05);box-shadow:0 4px 16px #4caf5066}.action-panel-overlay{position:fixed;inset:0;background:#0000009e;display:flex;align-items:center;justify-content:center;z-index:200;pointer-events:auto;padding:16px;box-sizing:border-box;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.action-panel{width:min(620px,100%);background:linear-gradient(135deg,#2c3e50,#1a252f);padding:20px;border-radius:14px;border:2px solid rgba(255,215,0,.75);box-shadow:0 18px 50px #0000008c;color:#fff}.claim-context{display:flex;align-items:center;justify-content:center;gap:14px;margin-bottom:18px}.action-panel h3{margin:0 0 4px;color:#fff2a8;font-size:20px;letter-spacing:.2px}.action-panel p{margin:0;color:#aeb8c2;font-size:12px}.action-buttons{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap;justify-content:center}.action-btn{min-width:150px;min-height:66px;padding:10px 14px;font-size:14px;font-weight:800;border:none;border-radius:8px;cursor:pointer;transition:transform .15s ease,filter .15s ease;text-transform:none}.call-term{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;line-height:1.12}.call-term-primary{font-size:14px;font-weight:900}.call-term-languages{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px 9px;font-size:10px;font-weight:650;opacity:.9}.call-term-languages b{font-size:9px;opacity:.68}.call-term-languages i{font-style:normal;font-weight:500;opacity:.76}.action-btn:hover{transform:translateY(-1px);filter:brightness(1.12)}.action-btn:active{transform:translateY(1px)}.action-btn.win{background:linear-gradient(to bottom,#ff6464,#c92727);color:#fff}.action-btn.pong{background:linear-gradient(to bottom,#5aa2ff,#216fc8);color:#fff}.action-btn.kong{background:linear-gradient(to bottom,#a761ed,#7140b4);color:#fff}.action-btn.chow{background:linear-gradient(to bottom,#55c96a,#2f9142);color:#fff}.action-btn.pass{min-height:44px;background:#46505a;color:#f1f4f6}.chow-options{width:100%;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}@media(max-width:700px){.action-panel{padding:16px}.claim-context{margin-bottom:14px}.action-panel h3{font-size:18px}.action-btn{flex:1 1 138px;min-width:0;min-height:64px;padding-inline:8px}.call-term-languages{flex-direction:column;gap:2px}.action-btn.pass{min-height:42px}}@media(prefers-reduced-motion:reduce){.game-table{transition:none}}.game-table{container-type:inline-size;--tile-w: clamp(32px, min(5.5cqw, 7.2dvh), 72px);--tile-h: calc(var(--tile-w) * 1.3125);--ai-tile-w: max(28px, calc(var(--tile-w) * .84));--ai-tile-h: calc(var(--ai-tile-w) * 1.2857);--tile-pad: clamp(1px, .2vmin, 4px);--board-gap: clamp(2px, .6vmin, 9px);--tile-gap: clamp(1px, .2vmin, 3px);--topbar-h: clamp(44px, min(6.5vw, 7dvh), 60px);--coach-rail-w: clamp(320px, 24vw, 400px);padding-top:var(--topbar-h)}.tile-normal{--tile-face-w: var(--tile-w);--tile-face-h: var(--tile-h)}.tile-hint{--tile-face-w: calc(var(--tile-w) * .8);--tile-face-h: calc(var(--tile-h) * .8)}.tile-normal,.player-hand.bottom .meld .tile,.flower-tile,.player-hand.bottom .discard-pile .tile,.hand-tile,.player-hand.top .meld .tile,.player-hand.top .discard-pile .tile{width:var(--tile-w)!important;height:var(--tile-h)!important;padding:var(--tile-pad)}.tile-normal.tile-rotated-90,.tile-normal.tile-rotated-270,.player-hand.left .meld .tile,.player-hand.left .flower-tile,.player-hand.left .discard-pile .tile,.player-hand.right .meld .tile,.player-hand.right .flower-tile,.player-hand.right .discard-pile .tile{width:var(--tile-h)!important;height:var(--tile-w)!important;padding:var(--tile-pad)}.tile-normal.tile-rotated-180{width:var(--tile-w)!important;height:var(--tile-h)!important}.tile-hint{width:calc(var(--tile-w) * .8)!important;height:calc(var(--tile-h) * .8)!important;padding:var(--tile-pad)}.tile-hint.tile-rotated-90,.tile-hint.tile-rotated-270{width:calc(var(--tile-h) * .8)!important;height:calc(var(--tile-w) * .8)!important}.player-hand.top .hand-tile{width:var(--ai-tile-w)!important;height:var(--ai-tile-h)!important;padding:max(1px,.12vmin)}.player-hand.left .hand-tile,.player-hand.right .hand-tile{width:var(--ai-tile-h)!important;height:var(--ai-tile-w)!important;padding:max(1px,.12vmin)}.player-hand{gap:var(--board-gap)}.discard-pile{gap:var(--tile-gap);padding:var(--board-gap);min-height:var(--tile-h);max-width:calc(var(--tile-w) * 10 + var(--tile-gap) * 10 + var(--board-gap) * 2)}.meld{gap:var(--tile-gap)}.melds{gap:var(--board-gap)}.flowers{gap:var(--tile-gap);padding:calc(var(--board-gap) * .5)}.game-state-bar{height:var(--topbar-h);padding-inline:clamp(6px,1.2vmin,16px)}.round-indicator{width:clamp(30px,min(4.4vw,5.2dvh),44px);height:clamp(30px,min(4.4vw,5.2dvh),44px);font-size:clamp(17px,2.5vmin,25px)}.deck-count{font-size:clamp(11px,min(1.15vw,1.65dvh),15px);padding:clamp(2px,.4vmin,5px) clamp(4px,.8vmin,9px)}.status-player{width:clamp(32px,min(4.4vw,5.2dvh),46px);height:clamp(36px,min(4.8vw,5.8dvh),50px)}.status-wind{font-size:clamp(16px,min(1.8vw,2.6dvh),24px)}.status-score{font-size:clamp(9px,min(.95vw,1.35dvh),13px)}.auto-play-btn,.teacher-toggle-btn,.rulebook-toggle-btn{min-height:clamp(26px,min(3.7vw,4.2dvh),34px);padding:clamp(3px,.5vmin,6px) clamp(6px,.9vmin,12px);font-size:clamp(9px,min(.95vw,1.35dvh),12px)}.rulebook-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:transparent;border:1px solid rgba(255,255,255,.2);color:#ffffffb8;border-radius:4px;cursor:pointer;font-weight:800;letter-spacing:.5px}.rulebook-toggle-btn:hover{border-color:#ffffff73;color:#fff}.human-action-row{min-height:clamp(28px,4dvh,38px);gap:clamp(5px,.7vmin,10px)}.hand-instruction,.sort-button-integrated{font-size:clamp(10px,min(1vw,1.65dvh),14px)}.tile.recommended:after{font-size:clamp(6px,min(.65vw,.95dvh),10px);padding:1px clamp(2px,.3vmin,4px)}.teacher-panel{font-size:clamp(13px,min(1.15vw,1.75dvh),17px)}.teacher-header h3{font-size:clamp(15px,min(1.35vw,2.1dvh),20px)}.teacher-subtitle,.rec-help,.rec-label,.reasoning-label,.alt-label,.alt-reason{font-size:clamp(10px,min(.9vw,1.3dvh),13px)}.reasoning-text{font-size:clamp(12px,min(1.1vw,1.8dvh),17px)}.stat{font-size:clamp(12px,min(1vw,1.55dvh),15px)}@media(min-width:901px){.game-table.teacher-open,.game-table.teacher-open .game-state-bar{width:calc(100vw - var(--coach-rail-w))}.teacher-panel{top:var(--topbar-h);width:var(--coach-rail-w);height:calc(100dvh - var(--topbar-h))}}@media(max-width:900px){.teacher-panel{position:absolute;inset:clamp(4px,.8vmin,8px);top:clamp(4px,.8vmin,8px);left:clamp(4px,.8vmin,8px);right:clamp(4px,.8vmin,8px);width:auto;height:auto;max-height:calc(100% - clamp(8px,1.6vmin,16px));transform:none;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;padding:clamp(9px,1.4vmin,12px)}.teacher-subtitle,.rec-help,.alternatives{display:block}.stats,.alt-list{display:flex}.teacher-panel .stats{margin-bottom:10px}.teacher-panel .alternatives{padding-top:9px}}@media(max-width:700px){.rulebook-toggle-btn,.teacher-toggle-btn{width:28px;padding:0}.rulebook-toggle-label,.teacher-toggle-label{display:none}}#root{width:100%;height:100%;margin:0;padding:0}
