:root{color-scheme:dark;font-family:"PingFang SC","Microsoft YaHei",sans-serif;color:#f9e7bc;background:#100d0b}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{height:100dvh}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.42}button:focus-visible,a:focus-visible{outline:3px solid #bdf8ed;outline-offset:4px}button{color:inherit}a{color:#f0ce83}button[hidden],[hidden]{display:none!important}
#board-host{position:absolute;inset:0;overflow:hidden;touch-action:none}#board-host canvas{display:block}.board-hit-layer{position:absolute;inset:0;pointer-events:none}.board-hit{position:absolute;background:transparent;border:0;padding:0;pointer-events:auto;color:transparent;touch-action:none}.board-hit:focus-visible{outline:3px solid #c7fff6;outline-offset:4px;border-radius:9px;background:#f4e3ab18}.board-hit:hover{background:#fff4bd08}
#hud{position:absolute;left:50%;top:50%;width:1600px;height:900px;transform:translate(-50%,-50%) scale(var(--board-scale,1));transform-origin:center;pointer-events:none}#hud button,#hud a,#hud aside{pointer-events:auto}.game-title{position:absolute;left:75px;top:58px;margin:0;font:700 29px "Songti SC","STSong",serif;letter-spacing:4px;color:#422a19;text-shadow:0 1px #ffe5ba}.game-title small{display:block;margin-top:5px;color:#b99e6c;font:10px Arial;letter-spacing:5px}
.settings{position:absolute;top:22px;right:30px;display:flex;gap:8px;align-items:center}.settings button,.subtle-button{border:1px solid #9974427d;border-radius:5px;background:#221810d9;box-shadow:inset 0 1px #edcf8b24;padding:9px 12px;font-size:15px;color:#e4d1a5}.settings button:hover,.subtle-button:hover{background:#513a20}.settings button[aria-pressed=true]{border-color:#e0b866;color:#ffe6a8;background:#674722}.settings .count-toggle{display:flex;gap:0}.count-toggle button{border-radius:0}.count-toggle button:first-child{border-radius:5px 0 0 5px}.count-toggle button:last-child{border-radius:0 5px 5px 0}
.turn-controls{position:absolute;left:1300px;top:380px;width:250px;text-align:center}.turn-caption{margin:0 0 10px;font:700 24px "Songti SC","STSong",serif;color:#432b17;text-shadow:0 1px #f8e4bf}.action-button{display:block;width:100%;min-height:46px;margin:8px 0;border:2px solid #b08a4f;border-radius:11px;background:linear-gradient(#74552d,#382417);box-shadow:0 5px 0 #160f0a,inset 0 1px #ffedba66,0 7px 15px #0006;color:#ffeac0;font-weight:700;font-size:20px;letter-spacing:1px}.action-button.primary{min-height:54px;border-color:#f5d280;background:linear-gradient(#d2aa53,#806126);color:#261b0f;text-shadow:0 1px #fff7c080}.action-button:enabled:hover{filter:brightness(1.14)}.action-button:active{transform:translateY(2px)}.turn-controls .skip{margin-top:8px;border-color:#745432;background:linear-gradient(#3c2b20,#231910);font-size:17px;min-height:42px}.action-hint{font-size:18px;color:#654c2e;line-height:1.5;margin:8px 0 0;text-wrap:pretty}
.table-message{position:absolute;left:65px;top:213px;width:235px;max-height:55px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;text-align:left;pointer-events:none;font-size:14px;color:#4c3822;text-shadow:0 1px #f5e4bd8c;line-height:1.5;margin:0}.table-message.warning{color:#8e2e23}.bottom-tools{position:absolute;left:65px;top:414px;display:flex;gap:12px}.bottom-tools button{font-size:14px;padding:8px 12px}.hand-help{position:absolute;left:520px;bottom:8px;width:560px;margin:0;text-align:center;color:#cdbb91;font-size:13px;letter-spacing:1px;pointer-events:none}.rotate-hint{display:none;position:fixed;left:0;right:0;bottom:14px;text-align:center;color:#d4c2a1;font-size:14px;pointer-events:none}
.loading{position:fixed;inset:0;display:grid;place-content:center;text-align:center;gap:20px;background:radial-gradient(ellipse,#3d3020,#110d09);z-index:50;padding:30px}.loading h1{font:700 32px "Songti SC",serif;color:#e2c587;margin:0}.loading p{max-width:520px;line-height:1.8;color:#c5b492}.loading button{justify-self:center}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
dialog{color:#392c1e;background:linear-gradient(120deg,#f2e4c5,#dfcba5);border:2px solid #997c4b;border-radius:16px;box-shadow:0 22px 90px #0009;padding:32px;width:min(780px,calc(100vw - 32px));max-height:calc(100dvh - 40px);overflow:auto;font-size:18px;line-height:1.65}dialog::backdrop{background:#0d0b08bf;backdrop-filter:blur(4px)}dialog h2{font:700 29px "Songti SC",serif;margin:0 38px 20px 0}dialog h3{font-size:18px;margin:20px 0 5px}dialog p{margin:8px 0}dialog .close-dialog{position:absolute;right:15px;top:12px;background:none;border:0;color:#584326;font-size:28px}dialog .note{font-size:13px;color:#776344}.detail-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:30px}.detail-face{position:relative;width:240px;align-self:start}.detail-face img{display:block;width:100%;height:auto}.detail-face .face-value{position:absolute;left:25.6%;top:62.04%;transform:translate(-50%,-50%);font:900 43px Arial;color:#f6e7b2;-webkit-text-stroke:1px #4b4128;text-shadow:1px 3px #25231c}.detail-face.land .face-value{top:11.62%}.detail-face .boosted{color:#b8ef94}.detail-face .reduced{color:#ffb5a6}.choice-options{display:grid;gap:10px;margin-top:20px}.choice-options button{background:#785a2e;border:1px solid #a98951;border-radius:7px;padding:14px 18px;text-align:left;color:#fff3d6;font-size:17px;line-height:1.5}.choice-options button:hover{background:#97723b}.holdings-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:16px}.holdings-list button{border:0;background:transparent;color:#503b21}.holdings-list img{width:100%;display:block}.result-score{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #8a6e4940}.result-score strong{font-size:26px;color:#7e4c20}.result-actions{display:flex;gap:10px;margin-top:25px}.result-actions button{flex:1;background:#75552d;border:1px solid #a98951;border-radius:7px;padding:13px;color:#fff0d0}.journal-list{padding-left:22px}.journal-list li{margin-bottom:10px}
@media(max-aspect-ratio:1/1){.rotate-hint{display:block}}
@media(max-width:600px){dialog{padding:24px}.detail-layout{grid-template-columns:1fr}.detail-face{width:180px;justify-self:center}.detail-face .face-value{font-size:32px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

.action-secondary{display:flex;gap:8px}.action-secondary .action-button{flex:1;width:auto;min-height:46px;font-size:17px}.action-button.detail{background:linear-gradient(#856337,#46301c)}
