:root{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#25332e;background:#f3f0e7;--green:#244e48;--line:#d8d6c6;--muted:#7d8375;--gold:#b79759}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{border:1px solid var(--line);border-radius:5px;padding:10px 15px;background:#fffdf4;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.45}button:hover:enabled{border-color:var(--green);background:#e7e9df}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.primary{background:var(--green);color:#fffbed;border-color:var(--green);font-weight:650}.primary:hover:enabled{background:#193f39;color:#fff}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}header{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:19px 35px;border-bottom:1px solid var(--line);gap:18px}.brand{display:flex;align-items:center;gap:10px;font-weight:700;letter-spacing:1px}.brand img{width:40px;height:40px}.brand small{display:block;font-size:9px;letter-spacing:2px;font-weight:400;margin-top:4px}nav{display:flex;gap:18px;align-items:center;font-size:12px}nav button{background:transparent;padding:8px 11px}h1,h2,p{margin-top:0}h1{font:700 clamp(37px,4.5vw,65px)/1.25 Georgia,"Songti SC",serif;letter-spacing:-1px;margin-bottom:24px}h1 em{color:var(--green);font-style:normal}h2{font-size:20px}p{line-height:1.8}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.5px;color:#84907a}.intro,.muted{color:var(--muted);font-size:14px}.entry{max-width:1300px;margin:60px auto;display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:65px;padding:0 35px}.facts{display:flex;gap:9px;flex-wrap:wrap;margin:30px 0;font-size:11px}.facts span{padding:7px 10px;border:1px solid var(--line);border-radius:3px}.tabs{display:flex;gap:7px;margin:24px 0 18px;border-bottom:1px solid var(--line)}.tabs button{background:transparent;border:0;border-radius:0}.tabs button[aria-pressed=true]{border-bottom:3px solid var(--green);font-weight:700;color:var(--green)}form,label{display:grid;gap:9px}form{gap:17px}label{font-size:12px}input:not([type=checkbox]),select{border:1px solid var(--line);border-radius:4px;padding:12px;background:#fffdf4;width:100%;min-width:0;color:inherit}form>.primary{justify-self:start}footer{text-align:center;padding:30px;border-top:1px solid var(--line);font-size:11px;letter-spacing:1px;color:var(--muted)}.hero{height:560px;background:var(--green);border-radius:10px;position:relative;overflow:hidden;box-shadow:0 18px 35px #1d30231f}.hero-caption{position:absolute;left:35px;top:33px;font-size:9px;letter-spacing:2px;color:#d4d6b6}.orbit{position:absolute;border:1px solid #e5dcab24;width:500px;height:500px;border-radius:50%;left:8%;top:9%}.orbit.two{width:330px;height:330px;top:24%;left:23%}.hero-rack{position:absolute;display:flex;gap:13px;transform:rotate(-9deg);left:11%}.hero-rack.back{top:24%;opacity:.65;transform:rotate(9deg)}.hero-rack.front{top:45%;left:9%}.hero .tile{width:83px;height:116px;box-shadow:4px 9px 1px #112e2b,10px 19px 20px #0f2d2870;border-radius:7px;cursor:default;pointer-events:none}.hero .tile b{font-size:45px}.hero .tile span{display:none}.hero-note{position:absolute;bottom:34px;left:35px;right:35px;display:flex;justify-content:space-between;align-items:end;color:#e1d2a8}.hero-note>span{font:italic 18px Georgia,serif;letter-spacing:4px}.hero-note>b{font-size:12px;line-height:1.8;letter-spacing:2px;font-weight:400}.panel{background:#fcfaf3;border:1px solid var(--line);border-radius:8px;padding:24px;min-width:0}.panel h1{font-size:39px}.panel>button{margin:6px 6px 6px 0}.seats{padding:0;margin:25px 0;list-style:none}.seats li{padding:12px 0;border-bottom:1px dashed var(--line);display:flex;gap:12px;align-items:center;font-size:14px}.seats i{width:9px;height:9px;background:var(--green);border-radius:50%}.seats small{margin-left:auto;color:var(--muted);font-size:11px}.check{display:flex;gap:10px;align-items:center;margin-bottom:16px;line-height:1.7}.check input{width:17px;height:17px;accent-color:var(--green)}.table{max-width:1440px;margin:0 auto;padding:32px 35px 45px}.table-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.table-heading h1{font-size:33px;margin-bottom:4px}.table-heading>span{font-size:11px;color:var(--muted)}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:23px;align-items:start}.play-layout>div{min-width:0;width:100%;max-width:100%}.racks{display:grid;gap:18px}.rack-panel{background:#ebece3;border:1px solid var(--line);border-radius:9px;padding:19px 22px;min-width:0}.rack-panel.mine{background:#fcfaf3;border-color:#9aab98}.rack-panel.active{box-shadow:inset 4px 0 var(--green)}.rack-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:10px}.rack-heading>div{display:flex;gap:10px;align-items:center;min-width:0}.rack-heading h2{font-size:15px;margin:0;overflow-wrap:anywhere}.rack-heading h2 small{font-size:10px;color:var(--muted);font-weight:400;margin-left:9px}.rack-heading>span{font-size:10px;color:var(--muted);white-space:nowrap}.seat-number{font:italic 18px Georgia,serif;color:#83967e}.rack-scroll{overflow-x:auto;padding:3px 3px 9px}.rack{display:flex;gap:11px;align-items:flex-start;width:max-content;min-width:100%}.tile-wrap{text-align:center}.tile-wrap>small{display:block;color:#99a08e;font:9px ui-monospace,monospace;margin-top:10px}.tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;width:70px;height:100px;border-radius:6px;border:1px solid #24352d;background:linear-gradient(125deg,#374039,#161f1b);color:#f4f1dc;box-shadow:0 5px 0 #111d18,0 7px 9px #24362b1e;padding:8px;flex-shrink:0;position:relative}.tile b{font:600 35px/1 Georgia,serif;font-variant-numeric:lining-nums}.tile span{font-size:8px;letter-spacing:2px;opacity:.7}.tile.white{background:linear-gradient(125deg,#fffdf2,#e9e7d7);border-color:#c1c5b0;color:#263f32;box-shadow:0 5px 0 #c3c4b3,0 7px 9px #24362b1e}.tile.hidden b{font:30px Georgia,serif;opacity:.45}.tile[data-action]:hover:enabled{transform:translateY(-3px);background:linear-gradient(125deg,#536c5c,#234938);color:#fff}.tile.white[data-action]:hover:enabled{background:#fffbea;color:#263f32}.tile.selected{outline:3px solid var(--gold);outline-offset:3px;transform:translateY(-3px)}.tile.revealed{box-shadow:0 2px 0 #7a8878;border-bottom:4px solid #9cae8e}.tile.revealed:after{content:'◉';position:absolute;right:5px;top:4px;font-size:8px;color:#a4b895}.tile.mini{width:49px;height:69px;gap:5px}.tile.mini b{font-size:25px}.tile.mini span{font-size:7px;letter-spacing:0}.order-guide{font-size:10px;color:#83917a;margin:9px 0 0}.order-guide>span{margin-left:15px;color:#989d8e}.side{display:grid;gap:18px;position:sticky;top:18px}.action-panel h2{font-size:19px;line-height:1.5}.action-panel p{font-size:12px}.your-turn{border-top:4px solid var(--green)}.numbers{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:20px 0}.number{padding:12px 5px;font:22px Georgia,serif}.guess-target{display:flex;align-items:center;gap:17px;margin:22px 0}.guess-target>span{font-size:12px}.guess-target b{display:block;font-size:11px;margin-top:8px;color:var(--muted)}.hint{padding:16px;background:#e9ede2;border-radius:5px;color:var(--green)}.clue{border-top:1px solid var(--line);margin-top:22px;padding-top:18px;display:flex;align-items:center;gap:13px;flex-wrap:wrap}.clue>span{font-size:11px;color:var(--muted)}.clue>p{font-size:10px;width:100%;margin:0;color:var(--muted)}.pool{padding:21px;background:#e4e8dc;border:1px solid #ced6c2;border-radius:8px}.pool h2{font-size:16px;margin:0}.pool-tiles{display:flex;gap:30px;margin:20px 0}.pool-tiles>div{display:flex;gap:12px;align-items:center}.pool-tiles span{font-size:11px;color:var(--muted)}.pool-tiles span b{display:block;font:23px Georgia,serif;color:var(--green);margin-top:7px}.pool p:last-child{font-size:11px;margin-bottom:0;color:var(--muted)}.last-guess{display:flex;align-items:center;gap:14px;padding:12px 17px;background:#e6e8d9;border-radius:5px;font-size:12px;margin-bottom:20px;border:1px solid #d7dcc8}.last-guess.wrong{background:#f0e5d9;border-color:#e3d2bd}.last-guess>b{white-space:nowrap}.last-guess>small{margin-left:auto;font-size:10px;color:var(--muted);white-space:nowrap}.insertion-list{display:grid;gap:8px;margin-top:18px}.position-button{font-size:12px}.result{margin-bottom:22px}.logs{font-size:11px;color:var(--muted);margin-top:25px}.logs summary{cursor:pointer}.logs li{line-height:2}.insert-preview{padding:5px 0}.table .tile[tabindex="-1"]{cursor:default}dialog{width:calc(100% - 32px);max-width:680px;max-height:85vh;overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fcfaf3;padding:30px;color:#25332e}dialog::backdrop{background:#142c25cc}dialog>button:first-child{float:right;margin:0 0 15px 20px}dialog h3{font-size:16px;margin-top:25px}dialog p{font-size:13px}dialog a{text-decoration:underline}#notice{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#253d31;color:#fff8e7;border-radius:5px;padding:13px 22px;z-index:1000;max-width:90vw;font-size:13px;box-shadow:0 7px 20px #0003}
@media(max-width:1050px){.entry{gap:30px;margin:40px auto;padding:0 25px}.hero{height:510px}.hero .tile{width:65px;height:100px}.hero-rack{gap:10px}.hero .tile b{font-size:36px}header{padding:16px 24px}.table{padding:25px}.play-layout{grid-template-columns:minmax(0,1fr) 270px}.panel{padding:19px}.rack-panel{padding:17px}.rack-heading h2 small{display:block;margin:5px 0 0}.pool-tiles{gap:22px}}
@media(max-width:780px){header{padding:12px 14px;gap:12px;flex-wrap:wrap}nav{gap:9px;font-size:11px}nav button{padding:7px 9px}.brand img{width:32px;height:32px}.brand{font-size:14px}.brand small{font-size:8px}.entry{display:flex;flex-direction:column;align-items:stretch;padding:0 22px;margin:35px auto;gap:35px}.entry h1{font-size:49px}.hero{height:425px}.hero .tile{width:64px;height:100px}.hero-rack.front{top:44%}.hero-rack.back{top:22%}.hero-note{bottom:27px;left:25px;right:25px}.hero-caption{left:25px;top:25px;font-size:8px}.table{padding:21px 13px 40px}.table-heading{display:block;margin-bottom:20px}.table-heading h1{font-size:29px}.table-heading>span{display:block;margin-top:12px;font-size:10px}.play-layout{display:flex;flex-direction:column}.side{position:static;order:-1;display:grid;grid-template-columns:1fr;gap:13px}.action-panel{scroll-margin-top:15px}.pool{padding:16px;display:flex;align-items:center;gap:15px;flex-wrap:wrap}.pool h2{font-size:14px}.pool .eyebrow{font-size:8px;margin-bottom:7px;letter-spacing:1px}.pool-tiles{margin:0 0 0 auto;gap:18px}.pool p:last-child{width:100%;font-size:10px;margin:0}.pool .tile.mini{width:36px;height:51px}.pool .tile.mini b{font-size:20px}.pool .tile.mini span{display:none}.pool-tiles>div{gap:8px}.pool-tiles span b{font-size:18px}.racks{gap:14px}.rack-panel{padding:16px}.rack{gap:9px}.tile{width:55px;height:80px}.tile b{font-size:30px}.tile span{font-size:7px}.rack-heading{margin-bottom:14px}.rack-heading h2{font-size:14px}.numbers{grid-template-columns:repeat(6,1fr);gap:6px}.number{font-size:22px;padding:12px 3px}.guess-target{margin:15px 0}.last-guess{gap:9px;font-size:11px;flex-wrap:wrap}.last-guess>small{display:none}.clue{margin-top:15px;padding-top:15px}.panel{padding:18px}.panel h1{font-size:34px}.hero .tile span{display:none}.facts{margin:24px 0}dialog{padding:22px}.tile-wrap>small{margin-top:9px}.hint{margin-bottom:0}}

.arrange-preview{display:flex;gap:9px;overflow:auto;padding:12px 2px}.arrange-field{margin-bottom:14px}

/* Keep every black face readable, including private, revealed and dragged cards. */
.tile.black:hover:enabled,.tile.black[data-action]:hover:enabled{background:linear-gradient(125deg,#354b40,#152c22);color:#fffdf0;border-color:#799483}
.tile.black span{opacity:1;color:#dedfcd}.tile.black.hidden b{opacity:.85}
.tile[data-drag-tile]{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.tile[data-drag-tile]:active{cursor:grabbing}
.deal-options{display:flex;flex-wrap:wrap;gap:7px}.deal-options button{font-size:12px;padding:9px}.deal-options [aria-pressed=true]{background:var(--green);color:#fff}
.placement-help{font-size:12px;color:var(--green);margin-bottom:10px}.placement-help small{display:block;font-size:10px;color:#687465}
.rack-scroll{padding:22px 12px 18px;scrollbar-width:thin}.rack{align-items:center}.tile-wrap{position:relative;flex-shrink:0;border-radius:7px;outline:2px solid transparent;outline-offset:5px;perspective:600px}
.rack.placing{gap:7px}.drop-slot{width:25px;min-width:25px;height:102px;padding:0;border:2px dashed #679b82;background:#d9ecdb;color:#285d43;font-size:22px;box-shadow:0 0 10px #458e5333;transition:background .15s,transform .15s;align-self:flex-start;margin-top:0}
.drop-slot.illegal{width:8px;min-width:8px;border:0;background:transparent;box-shadow:none;color:#98a28c;font-size:14px;opacity:.4}
.drop-slot.legal:hover,.drop-slot.drop-hover{background:#badcba;border-color:#285d43;box-shadow:0 0 18px #54966588;transform:scaleX(1.25)}
.pending-tile{display:flex;align-items:center;gap:18px;padding:16px;margin-top:9px;background:#e9eee0;border:1px dashed #9cad91;border-radius:8px}
.pending-tile>span{font-size:13px;color:var(--green)}.pending-tile small{display:block;margin-top:8px;font-size:10px;color:#687465}
.drag-ghost{position:fixed!important;z-index:2000;pointer-events:none;transform:translate(-50%,-65%) rotate(-5deg);opacity:.94;box-shadow:0 14px 28px #152c2266!important}
.dragging-tile,.dragging-tile *{cursor:grabbing!important;user-select:none}
.feedback-red{--feedback:#e35b55}.feedback-green{--feedback:#58ad73}.feedback-gold{--feedback:#cda04c}
.insert-badge{position:absolute;top:-20px;left:50%;transform:translateX(-50%);font-size:10px;white-space:nowrap;border-radius:3px;padding:2px 6px;color:#fff;background:#876720;pointer-events:none;opacity:0}
.flip-cover{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:inherit;border-radius:inherit}.flip-cover b{opacity:.85}
@media(max-width:780px){.drop-slot{height:82px;width:24px;min-width:24px}.rack.placing{gap:5px}.pending-tile{padding:12px}.placement-help small{line-height:1.6}.rack-scroll{padding-left:8px;padding-right:8px}}
@media(prefers-reduced-motion:reduce){.drop-slot{transition:none}.tile[data-action]:hover:enabled{transform:none}}
