@font-face{font-family:Brand;src:url(/assets/brand.ttf)format("truetype");font-display:swap}@font-face{font-family:Marcellus;src:url(/assets/marcellus.ttf)format("truetype");font-display:swap}@font-face{font-family:Archivo;src:url(/assets/archivo.ttf)format("truetype");font-display:swap}:root{--paper:#f6f1e6;--ink:#302b23;--muted:#847969;--gold:#a17b3b;--line:#dcd3c1;--red:#9c3f2e;--serif:"Songti SC", "Noto Serif CJK SC", "SimSun", serif;color:var(--ink);background:var(--paper);font-synthesis:none;color-scheme:light;font-family:Archivo,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(ellipse at 75% 33%, #fffaf080, transparent 55%), var(--paper);margin:0}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}button{color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button,a{-webkit-touch-callout:none}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:5px;outline:3px solid #9c3f2e}button{touch-action:manipulation}[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}::selection{background:#e2be7980}.site-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1220px;height:106px;margin:auto;padding:0 36px;display:flex}.brand{font-family:var(--serif);letter-spacing:3px;align-items:center;gap:12px;font-size:23px;font-weight:600;text-decoration:none;display:flex}.brand-mark{background:#9d7737;grid-template-columns:repeat(3,7px);gap:1px;padding:2px;display:grid}.brand-mark i{background:#dbba75;width:7px;height:7px}.brand-mark i:nth-child(5){background:#d6dce0}nav{align-items:center;gap:34px;display:flex}nav a{color:#807566;padding:14px 0;font-size:13px;text-decoration:none;position:relative}nav a.active{color:var(--ink)}nav a.active:after{content:"";background:var(--red);border-radius:50%;width:4px;height:4px;position:absolute;bottom:3px;left:calc(50% - 2px)}.eyebrow{letter-spacing:2px;color:var(--gold);align-items:center;gap:10px;font-size:11px;font-weight:500;display:flex}.word-gold{color:#a87f39;text-shadow:0 1px #fffae9}.word-clad{color:var(--red)}.word-silver{color:#7f8a91}.text-link{border-bottom:1px solid #b3a28b;gap:24px;padding:0 0 7px;font-size:12px;text-decoration:none;display:inline-flex}.game-shell{isolation:isolate;background:#faf6ee;border:1px solid #e4dbca;border-radius:5px;max-width:100%;padding:23px 24px 18px;position:relative;box-shadow:0 14px 40px #7965420a,0 2px 3px #79654208}.game-tools{gap:6px;display:flex}.icon-button{color:#80715c;background:0 0;border:0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:8px;font-size:20px;display:inline-flex}.icon-button:hover{background:#eae2d4}.icon-button svg{width:22px;height:22px}.game-tools #help-button{font-family:Marcellus,serif;font-size:18px}.score-row{justify-content:space-between;align-items:center;min-height:73px;margin:19px 4px 0;display:flex}.small-label{color:#978875;letter-spacing:1.5px;font-size:10px}.score{color:#765e42;letter-spacing:-2px;font-variant-numeric:tabular-nums;text-overflow:ellipsis;max-width:280px;font-family:Archivo,sans-serif;font-size:51px;line-height:1.2;overflow:hidden}.best-score{text-align:right;padding-top:10px}.best-score .small-label{color:#a38855}.best-score strong{color:var(--gold);margin-top:5px;font-family:Marcellus,serif;font-size:24px;font-weight:400;display:block}.combo{text-align:center;letter-spacing:1px;min-height:35px;color:var(--muted);padding:10px 0 12px;font-size:10px}.combo.live{color:var(--red)}.board-frame{background:#cec2ab;border-radius:4px;padding:5px;position:relative;box-shadow:inset 0 2px 3px #88765660,0 1px #fff}.board{aspect-ratio:1;touch-action:none;position:relative}.board canvas{border-radius:1px;width:100%;height:100%;display:block}.board-grid{grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);display:grid;position:absolute;inset:0}.board-cell{touch-action:none;background:0 0;border:0;border-radius:2px;min-width:0;padding:0;outline-offset:-3px!important}.board-cell:focus-visible{z-index:1;outline:2px solid #9c3f2e}.button{letter-spacing:1px;background:#fffaf1;border:1px solid #c7b99f;border-radius:3px;justify-content:center;align-items:center;gap:18px;min-height:46px;padding:12px 20px;font-size:13px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 3px #ded2be}.button:hover{filter:brightness(1.04)}.button:active{transform:translateY(2px);box-shadow:0 1px #b6a78f}.button.primary{color:#fff9ed;background:#393226;border-color:#393226;box-shadow:0 4px #201c16}.button.primary:active{box-shadow:0 1px #201c16}.hand{grid-template-columns:repeat(3,1fr);align-items:center;gap:6px;height:135px;padding-top:9px;display:grid}.hand-slot{touch-action:none;background:0 0;border:1px solid #0000;border-radius:5px;justify-content:center;align-items:center;min-width:0;height:120px;padding:6px;display:flex;position:relative}.hand-slot[aria-pressed=true]{background:#f0e6d469;border-color:#c9b48e70}.hand-slot.used .piece{opacity:0}.slot-number{color:#b4a48d;border-bottom:1px solid #d8cdb9;width:18px;height:16px;font:10px Archivo;position:absolute;bottom:0}.piece{grid-template-columns:repeat(var(--cols), var(--tile-size,23px));grid-template-rows:repeat(var(--rows), var(--tile-size,23px));transition:transform .15s;display:grid;transform:rotate(0)}.tile{--face:#e2be79;background:var(--face);color:#f6f1e6;aspect-ratio:1;border:3px solid #ffffff50;border-color:#ffffff50 #00000029 #0000004d #ffffff20;place-items:center;font-family:Marcellus,serif;font-size:13px;font-style:normal;font-weight:400;line-height:1;display:grid;box-shadow:0 1px 1px #59422615}.tile-S,.tile-Z{--face:#d2dbe4;color:#302b23}.tile-G,.tile-D{--face:#e2be79;color:#302b23}.tile-K{--face:#3e362a}.tile-Q{--face:#6d4a91}.tile-M{--face:#315343}.tile-C{--face:#9c3f2e}.tile-empty{visibility:hidden}.hand-slot.unavailable .piece{opacity:.35}.hand-slot.dragging .piece{opacity:0}.game-bottom{letter-spacing:.4px;color:#a2947e;justify-content:space-between;align-items:center;gap:12px;min-height:30px;font-size:9px;display:flex}.text-button{color:#89734e;white-space:nowrap;background:0 0;border:0;min-height:30px;padding:7px 0;font-size:10px}.tutorial-banner{text-align:center;padding:7px 0 12px}#tutorial-dots{justify-content:center;gap:7px;display:flex}#tutorial-dots i{background:#d7cbb7;border-radius:50%;width:5px;height:5px}#tutorial-dots i.done{background:var(--gold)}#tutorial-dots i.current{background:var(--red);border-radius:3px;width:16px}.game-shell.practicing .score-row{min-height:55px;margin-top:3px}.game-shell.practicing .combo{display:none}.site-footer{border-top:1px solid var(--line);color:#948570;letter-spacing:.5px;justify-content:space-between;gap:24px;max-width:1220px;margin:auto;padding:28px 36px 36px;font-size:10px;line-height:1.8;display:flex}.site-footer>div{gap:22px;display:flex}.site-footer a{text-decoration:none}.sr-only,.skip-link:not(:focus){clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link:focus{background:#fff;padding:10px;display:block}.article{max-width:780px;margin:60px auto 90px;padding:0 25px}.article>.eyebrow{margin-top:50px}.article h1{font-family:var(--serif);letter-spacing:3px;margin:22px 0;font-size:48px;font-weight:500;line-height:1.5}.article .lead{color:var(--muted);font-size:16px;line-height:2}.article section{border-top:1px solid var(--line);margin-top:38px;padding-top:28px}.article h2{font-family:var(--serif);font-size:24px;font-weight:500}.article p{color:#746854;font-size:14px;line-height:2.15}.article summary{cursor:pointer;padding:10px 0;font-size:14px}.article details[open]>summary{margin-bottom:10px}.diagram-pair{justify-content:center;gap:35px;margin:25px 0;display:flex}.diagram-pair figure{text-align:center;margin:0}.rule-grid{grid-template-columns:repeat(3,1fr);gap:1px;width:96px;margin:0 auto 12px;display:grid}.rule-grid i{height:32px}.diagram-pair figcaption{color:var(--muted);font-size:11px}dialog{width:min(410px,100% - 32px);max-height:calc(100dvh - 40px);color:var(--ink);overscroll-behavior:contain;background:#faf6ed;border:1px solid #bba580;border-radius:5px;padding:22px 25px 28px;overflow:auto;box-shadow:0 20px 90px #2a201f35,0 0 0 5px #f6f1e670}dialog::backdrop{backdrop-filter:blur(4px);background:#332c235c}dialog[open]{animation:.25s ease-out modal-in}.modal-header{justify-content:flex-end;align-items:center;margin-top:-6px;display:flex}.modal-header .icon-button{margin-right:-10px;font-size:28px}dialog h2{font-family:var(--serif);letter-spacing:2px;margin:10px 0 22px;font-size:27px;font-weight:500}dialog p{color:var(--muted);font-size:12px;line-height:1.9}.modal-actions{flex-direction:column;gap:13px;margin-top:25px;display:flex}.modal-actions .button{width:100%}.mode-choices{gap:14px;display:grid}.mode-choice{text-align:left;background:#fffaf3;border:1px solid #d3c5ac;border-radius:4px;align-items:center;gap:18px;min-height:93px;padding:18px;display:flex;box-shadow:0 3px #e1d6c3}.mode-choice:hover{border-color:var(--gold);background:#f0e8d9}.mode-choice .rule-grid{flex-shrink:0;width:58px;margin:0;transform:rotate(-5deg)}.mode-choice .rule-grid i{border-width:2px;height:19px;font-size:10px}.mode-choice strong{font-family:var(--serif);letter-spacing:2px;margin-bottom:7px;font-size:20px;font-weight:500;display:block}.mode-choice small{color:var(--muted);font-size:10px}.faction-list{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.faction-button{background:0 0;border:1px solid #0000;border-radius:4px;justify-items:center;gap:9px;padding:6px 2px;display:grid}.faction-button[aria-pressed=true]{border-color:var(--gold);background:#ede2d0}.faction-button .tile{border-width:5px;width:46px;height:46px;font-size:25px}.faction-button small{color:var(--muted);font-size:10px}.team-choice{background:#fffaf1;border:1px solid #cdbfa7;border-radius:3px;justify-content:center;align-items:center;gap:16px;width:100%;margin-top:18px;padding:14px;font-size:13px;display:flex}.team-choice[aria-pressed=true]{border-color:var(--gold);background:#e9ddc6}.team-tiles{display:flex}.team-tiles .tile{border-width:2px;width:22px;height:22px;font-size:11px}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:17px 0;font-size:14px;display:flex}.switch{appearance:none;cursor:pointer;background:#d9cfbd;border:0;border-radius:20px;width:44px;height:26px;margin:0;position:relative}.switch:after{content:"";background:#fffcf7;border-radius:50%;width:20px;height:20px;transition:left .14s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #52412e30}.switch:checked{background:#8a713f}.switch:checked:after{left:21px}.record-list{margin:0;padding:0;list-style:none}.record-list li{border-bottom:1px solid var(--line);justify-content:space-between;gap:10px;padding:14px 0;font-size:12px;display:flex}.record-list strong{color:var(--gold);font:18px Marcellus}.record-total{text-align:center;padding:12px 0 26px}.record-total span{color:#765e42;margin-top:10px;font:45px Archivo;display:block}.result-score{text-align:center;color:#765e42;letter-spacing:-2px;margin:8px 0;font:59px Archivo}.result-label{text-align:center;font-size:12px!important}.result-stats{text-align:center;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px 0;display:grid}.result-stats strong{color:var(--gold);font:24px Marcellus;display:block}.result-stats span{color:var(--muted);margin-top:7px;font-size:10px;display:block}.card-preview{border:1px solid var(--line);border-radius:3px;width:100%;display:block}.help-points{color:var(--muted);padding-left:19px;font-size:12px;line-height:1.9}.help-points li{margin-bottom:13px}.help-points strong{color:var(--ink);font-weight:500}.error-note{color:var(--red)!important}.modal-status{text-align:center;min-height:20px;margin:10px 0 0}#ghost{pointer-events:none;z-index:5;filter:drop-shadow(0 12px 8px #41332135);will-change:transform;display:grid;position:fixed}#ghost .tile{border-width:5px;font-size:24px}.noscript{text-align:center;z-index:2;background:#fcf8efed;place-content:center;padding:35px;font-size:14px;line-height:2;display:grid;position:absolute;inset:0}@keyframes modal-in{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}@media (width>=1400px){.game-shell{padding:25px 27px 20px}}@media (width<=1050px){.game-shell{padding:19px}}@media (width<=780px){.site-header{height:74px;padding:0 22px}.brand{letter-spacing:2px;gap:9px;font-size:20px}nav{gap:22px}nav a{font-size:12px}.game-shell{width:100%;padding:19px 20px 15px}.site-footer{flex-direction:column;gap:14px;padding:24px 25px 35px}.site-footer>div{gap:24px}.article{margin-top:35px}.article h1{font-size:36px}.article>.eyebrow{margin-top:35px}.article p{font-size:13px}.article h2{font-size:21px}}@media (width<=480px){.site-header{height:62px;padding:0 18px}.brand{font-size:18px}.brand-mark{grid-template-columns:repeat(3,6px)}.brand-mark i{width:6px;height:6px}nav{gap:20px}.about-link{display:none}.game-shell{padding:12px 13px 10px;box-shadow:0 4px 20px #79654208}.icon-button{width:35px;height:35px}.score-row{min-height:65px;margin:12px 2px 0}.score{font-size:45px}.small-label{font-size:9px}.best-score strong{font-size:22px}.combo{min-height:32px;padding:9px 0;font-size:9px}.hand{gap:0;height:122px;padding-top:8px}.hand-slot{height:108px}.piece{--tile-size:20px}.tile{border-width:2px;font-size:11px}.board-frame{padding:4px}.game-bottom{gap:5px;font-size:8px}.text-button{font-size:9px}.tutorial-banner{padding:5px 0 10px}.game-shell.practicing .score-row{min-height:47px;margin-top:0}.game-shell.practicing .score{font-size:30px}.game-shell.practicing .best-score{padding-top:0}dialog{padding:20px 21px 25px}.faction-button .tile{width:41px;height:41px;font-size:23px}.faction-list{gap:5px}.result-score{font-size:49px}}@media (height<=700px) and (width<=780px){.site-header{height:52px}.game-shell{max-width:390px;margin:auto}.score-row{min-height:54px;margin-top:3px}.score{font-size:38px}.combo{min-height:26px;padding:6px 0}.hand{height:105px}.hand-slot{height:98px}.piece{--tile-size:17px}.game-tools .icon-button{height:30px}.game-bottom{min-height:23px}.game-shell.practicing .score-row{min-height:40px}.game-shell.practicing .score{font-size:25px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.score-row>div:first-child{flex:1;min-width:0}.best-score{flex-shrink:0;max-width:45%}.score{font-size:calc(var(--score-base,51px) * var(--score-scale,1))}.best-score strong{font-size:calc(var(--best-base,24px) * var(--best-scale,1))}.game-shell.practicing .score{font-size:calc(34px * var(--score-scale,1))}@media (width<=480px){.score{--score-base:45px}.best-score strong{--best-base:22px}.game-shell.practicing .score{font-size:30px}}@media (height<=700px) and (width<=780px){.score{--score-base:38px}.game-shell.practicing .score{font-size:25px}}@media (height<=650px) and (width<=780px){.game-shell{padding-top:7px;padding-bottom:6px}.score-row{min-height:45px}.score{--score-base:32px}.hand{height:86px;padding-top:4px}.hand-slot{height:82px;padding-bottom:18px}.piece{--tile-size:14px}.game-bottom{min-height:21px;font-size:8px}.combo{min-height:24px;padding:5px 0}.game-shell.practicing .score-row{min-height:29px}.game-shell.practicing .score{font-size:23px}.game-shell.practicing .tutorial-banner{padding-bottom:8px}}
