:root{color-scheme:dark;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}html{overflow-y:auto;-webkit-text-size-adjust:100%}body{min-height:100vh;background:radial-gradient(circle at 50% 20%,#0e7a4e,#0b5d3b 55%,#073a25);color:#f4f4f0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}#root{min-height:100vh}.app-shell{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem 1rem;text-align:center}.app-title{margin:0;font-size:clamp(2rem,6vw,3.5rem);letter-spacing:.1em}.app-subtitle{margin:0;opacity:.8}.app-facts{display:flex;flex-wrap:wrap;gap:1rem;margin:1.5rem 0 0;padding:0}.app-facts>div{min-width:6rem;padding:.75rem 1rem;background:#00000040;border:1px solid rgba(255,255,255,.12);border-radius:.75rem}.app-facts dt{font-size:.8rem;opacity:.7}.app-facts dd{margin:.25rem 0 0;font-size:1.4rem;font-weight:600}.app-stage{margin-top:1.5rem;font-size:.9rem;opacity:.85}.btn{font:inherit;color:#f4f4f0;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);border-radius:.6rem;padding:.5rem 1rem;cursor:pointer;transition:background .15s,transform .05s}.btn:hover:not(:disabled){background:#fff3}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:#d9a441;border-color:#b9842a;color:#2a1c00;font-weight:600}.btn-primary:hover:not(:disabled){background:#e6b455}.btn-hu{background:#d6453f;border-color:#a72d28;color:#fff;font-weight:700}.btn-ghost{background:transparent;border-color:transparent}.btn-lg{padding:.8rem 1.6rem;font-size:1.1rem}.home{min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem 1rem;text-align:center}.home-title{font-size:clamp(2rem,7vw,3.5rem);letter-spacing:.12em;margin:0}.home-sub{opacity:.8;margin:0 0 1rem}.home-actions{display:flex;flex-direction:column;gap:.75rem;width:min(20rem,90vw)}.home-rules{text-align:left;max-width:min(30rem,92vw);background:#00000040;border:1px solid rgba(255,255,255,.12);border-radius:.75rem;padding:1rem 1.25rem;line-height:1.7}.home-foot{margin-top:1.5rem;opacity:.6;font-size:.85rem}.table{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;gap:.5rem;padding:.6rem clamp(.5rem,3vw,2rem) 1rem;max-width:60rem;margin:0 auto}.table-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.table-title{font-weight:600;letter-spacing:.08em}.deck-count{font-variant-numeric:tabular-nums;opacity:.85}.top-right{display:inline-flex;align-items:center;justify-content:flex-end;gap:.5rem}.drawn-indicator{display:inline-flex;align-items:center;gap:.25rem;padding:.14rem .28rem;border-radius:.45rem;background:#d9a44124;box-shadow:inset 0 0 0 1px #d9a44152}.drawn-label{color:#f0d58b;font-size:.78rem;font-weight:700}.drawn-indicator-self{position:absolute;right:.75rem;top:.55rem;z-index:2}.hu-counter{position:absolute;left:.75rem;bottom:.55rem;z-index:2;display:inline-flex;align-items:baseline;gap:.25rem;padding:.22rem .5rem;border-radius:.45rem;background:#0000003d;box-shadow:inset 0 0 0 1px #ffffff24;color:#f4d57a;font-size:.88rem;font-variant-numeric:tabular-nums}.hu-counter strong{font-size:1.05rem}.draw-animation{position:fixed;left:50%;top:47%;z-index:8;pointer-events:none;transform:translate(-50%,-50%);--draw-x: 0px;--draw-y: 34vh;animation:drawCardToHand 1.25s cubic-bezier(.2,.78,.24,1) forwards}.draw-animation .tile{--ts: 1.7;filter:drop-shadow(0 1rem 1.1rem rgba(0,0,0,.35))}.discard-animation{position:fixed;z-index:8;pointer-events:none;transform:translate(-50%,-50%);--discard-x: 0px;--discard-y: 0px;animation:discardCardToCenter 1.2s cubic-bezier(.18,.72,.22,1) forwards}.discard-animation .tile{--ts: 1.35;filter:drop-shadow(0 .75rem .9rem rgba(0,0,0,.34))}@keyframes drawCardToHand{0%{opacity:0;transform:translate(-50%,-50%) scale(.82)}14%{opacity:1;transform:translate(-50%,-50%) scale(1)}48%{opacity:1;transform:translate(-50%,-50%) scale(1)}88%{opacity:1;transform:translate(calc(-50% + var(--draw-x)),calc(-50% + var(--draw-y))) scale(.56)}to{opacity:0;transform:translate(calc(-50% + var(--draw-x)),calc(-50% + var(--draw-y))) scale(.5)}}@keyframes discardCardToCenter{0%{opacity:1;transform:translate(-50%,-50%) scale(.86)}62%{opacity:1;transform:translate(calc(-50% + var(--discard-x)),calc(-50% + var(--discard-y))) scale(.78)}88%{opacity:1;transform:translate(calc(-50% + var(--discard-x)),calc(-50% + var(--discard-y))) scale(.78)}to{opacity:0;transform:translate(calc(-50% + var(--discard-x)),calc(-50% + var(--discard-y))) scale(.72)}}.forced-overlay{position:fixed;left:50%;top:44%;z-index:14;pointer-events:none;transform:translate(-50%,-50%);animation:forcedOverlayFade 1.4s ease-out forwards}.forced-overlay-text{display:block;font-family:Songti SC,STSong,SimSun,serif;font-weight:900;font-size:clamp(4.5rem,22vw,9rem);line-height:1;color:#ffe7a3;letter-spacing:.1em;padding-left:.1em;text-shadow:0 0 .2em rgba(255,196,84,.95),0 0 .6em rgba(220,120,30,.85),0 .1em .25em rgba(0,0,0,.55);-webkit-text-stroke:2px rgba(150,60,12,.8)}@keyframes forcedOverlayFade{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-8deg)}22%{opacity:1;transform:translate(-50%,-50%) scale(1.18) rotate(2deg)}36%{transform:translate(-50%,-50%) scale(1) rotate(0)}78%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) scale(1.1) rotate(0)}}.meld-forced-appear{animation:meldForcedDrop .75s cubic-bezier(.2,.85,.3,1.1) .95s both;transform-origin:center top}@keyframes meldForcedDrop{0%{opacity:0;transform:translateY(-2.4rem) scale(.6)}55%{opacity:1;transform:translateY(.2rem) scale(1.08)}78%{transform:translateY(0) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.seat{background:#0000002e;border:1px solid rgba(255,255,255,.1);border-radius:.75rem;padding:.6rem .75rem}.seat-self{position:relative}.seat-info{display:flex;align-items:center;gap:.6rem;margin-bottom:.4rem}.seat-info .score{opacity:.8;font-variant-numeric:tabular-nums}.badge{background:#d9a441;color:#2a1c00;border-radius:.4rem;padding:0 .4rem;font-size:.75rem;font-weight:700}.center{display:flex;flex-direction:column;gap:.4rem;align-items:center;padding:.5rem 0}.status-hint{font-size:.95rem;opacity:.95;text-align:center;min-height:1.4em}.discard-pile{position:relative;display:grid;grid-template-columns:minmax(7rem,1fr) minmax(7rem,1fr);gap:.45rem;align-items:start;width:100%;min-height:3.2rem}.pending-discard{min-height:4.8rem;display:flex;align-items:center;justify-content:center}.discard-column{display:flex;flex-wrap:wrap;gap:.25rem;min-height:3.2rem}.discard-column-ai{justify-content:flex-start}.discard-column-human{justify-content:flex-end}.discard-slot{display:inline-flex}.discard-pile>.muted{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none}.hand{display:flex;flex-wrap:wrap;gap:.15rem;margin-top:.4rem;align-items:flex-end;justify-content:center}.hand-back{gap:.1rem;justify-content:center}.hand-cols{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;gap:.5rem;margin-top:.5rem}.hand-cols-sm{gap:.32rem}.tile-col{display:flex;flex-direction:column;align-items:center;position:relative}.tile-col .tile+.tile{margin-top:calc(-2.7rem * var(--ts, 1))}.hand-cols-sm .tile-col .tile+.tile{margin-top:calc(-1.7rem * var(--ts, 1))}.seat-tools{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;position:absolute;right:.75rem;bottom:.55rem;z-index:2;margin:0}.tool-btn{min-width:3.4rem;padding:.3rem .62rem;font-size:.82rem;opacity:.94;background:#092f1fc7;border:1px solid rgba(244,244,240,.42);border-radius:.55rem;color:#f4f4f0;box-shadow:0 2px 7px #00000038}.tool-btn-on{background:#d9a441f2;border-color:#d9a441;color:#241900;font-weight:700;opacity:1}.action-bar{display:flex;gap:.5rem;margin-top:.6rem;flex-wrap:wrap;justify-content:center;align-items:center;width:100%}.assist-reason{max-width:min(34rem,100%);margin:.5rem auto 0;padding:.4rem .65rem;border-radius:.5rem;background:#00000038;color:#f4d57a;font-size:.86rem;line-height:1.45;text-align:center}.training-panel{max-width:min(34rem,100%);margin:.45rem auto 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:stretch}.training-input{min-height:4.2rem;resize:vertical;border-radius:.5rem;border:1px solid rgba(255,255,255,.18);background:#00000038;color:#f4f4f0;padding:.5rem .65rem;font:inherit;line-height:1.45}.training-input::placeholder{color:#f4f4f085}.training-save{align-self:stretch;white-space:nowrap}.meld-row{display:flex;flex-wrap:wrap;gap:.5rem}.meld{display:inline-flex;align-items:center;gap:.15rem;background:#ffffff14;border-radius:.4rem;padding:.15rem .3rem}.group-hu{display:inline-flex;align-items:center;justify-content:center;min-width:1.9rem;height:1.1rem;margin-bottom:.16rem;border-radius:.35rem;background:#d6453feb;color:#fff;font-size:.7rem;font-weight:700;line-height:1;box-shadow:0 1px 4px #00000047}.meld-hu{margin:0 0 0 .18rem}.meld-label{font-size:.7rem;opacity:.8;margin-right:.15rem}.muted{opacity:.5;font-size:.85rem}.log{background:#00000038;border-radius:.6rem;padding:.5rem .75rem;font-size:.82rem;line-height:1.5;max-height:9rem;overflow-y:auto}.log-line{opacity:.9}.size-small{--ts: .82}.size-medium{--ts: 1}.size-large{--ts: 1.2}.tile{width:calc(2.05rem * var(--ts, 1));height:calc(4.7rem * var(--ts, 1));border-radius:.28rem;background:linear-gradient(180deg,#fcf9f0,#f1ead6);border:1px solid #c7ba90;box-shadow:inset 0 0 0 2px #c7ba9073,0 2px 3px #00000059;display:flex;align-items:center;justify-content:center;position:relative;padding:0;font-family:Songti SC,STSong,SimSun,PingFang SC,serif}.tile-sm{width:calc(1.35rem * var(--ts, 1));height:calc(3.1rem * var(--ts, 1));border-radius:.2rem;box-shadow:inset 0 0 0 1.5px #c7ba9073,0 1px 2px #0000004d}.tile-glyph{font-size:calc(1.7rem * var(--ts, 1));font-weight:800;line-height:1}.tile-sm .tile-glyph{font-size:calc(1.05rem * var(--ts, 1))}.tile-stack{align-items:flex-start;padding-top:calc(.42rem * var(--ts, 1))}.tile-sm.tile-stack{padding-top:calc(.24rem * var(--ts, 1))}.tile-stack.tile-selected{z-index:5}.tile-black{color:#1d1d1d}.tile-red{color:#c62828}.tile-feifei{background:linear-gradient(160deg,#f4d57a,#d9a441);border-color:#b9842a;color:#5a3c00}.tile-back{background:repeating-linear-gradient(45deg,#1f6b48,#1f6b48 4px,#1a5c3d 4px,#1a5c3d 8px);border-color:#134a31}.tile-click{cursor:pointer}.tile-click:hover{transform:translateY(-4px);transition:transform .1s}.tile-selected{transform:translateY(-8px);outline:2px solid #d9a441}.tile-emphasis{border-color:#e1b654;box-shadow:inset 0 0 0 2px #d9a44194,0 0 0 2px #d9a44147,0 4px 12px #d9a44147}.tile-emphasis.tile-click:hover{transform:translateY(-4px)}.tile-emphasis.tile-selected{transform:translateY(-8px)}.tile-hidden{visibility:hidden}.tile-as{position:absolute;right:1px;bottom:0;font-size:.6rem;color:#5a3c00;background:#ffffffb3;border-radius:.2rem;padding:0 1px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;padding:1rem;z-index:10}.modal{background:#0f3d2a;border:1px solid rgba(255,255,255,.18);border-radius:1rem;padding:1.25rem 1.5rem;max-width:min(32rem,94vw);max-height:calc(100vh - 2rem);width:100%;box-shadow:0 10px 40px #00000080}.modal h2{margin:0 0 .5rem;text-align:center}.settle-tags{display:flex;gap:.4rem;justify-content:center;margin-bottom:.75rem}.tag{background:#ffffff26;border-radius:.4rem;padding:.1rem .5rem;font-size:.85rem}.tag-special{background:#d6453f}.settle-melds{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center;margin-bottom:.75rem}.settle-rows{margin:0 0 .75rem}.settle-rows>div{display:flex;justify-content:space-between;padding:.2rem 0;border-bottom:1px dashed rgba(255,255,255,.12)}.settle-rows dt{opacity:.85}.settle-rows dd{margin:0;font-variant-numeric:tabular-nums}.settle-final{font-size:1.15rem;font-weight:700;color:#f4d57a}.settle-deltas{display:flex;gap:1rem;justify-content:center;margin-bottom:1rem;font-variant-numeric:tabular-nums}.delta-pos{color:#6fdf9f}.delta-neg{color:#ff9b9b}.modal-actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap}.choice-list{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0;max-height:min(28rem,calc(100vh - 12rem));overflow-y:auto;padding-right:.2rem}.choice-row{display:flex;align-items:center;gap:.25rem;background:#ffffff14;border:1px solid rgba(255,255,255,.18);border-radius:.5rem;padding:.4rem .6rem;cursor:pointer;color:inherit;font:inherit}.choice-row:hover{background:#ffffff29}.replay-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center;margin-top:.5rem}.replay-controls input[type=range]{flex:1 1 8rem}.top-right{display:flex;align-items:center;gap:.5rem}.icon-btn{font-size:1.2rem;padding:.25rem .5rem;line-height:1}.status-hint.hint-active{color:#f4d57a;font-weight:600;animation:hintPulse 1.4s ease-in-out infinite}@keyframes hintPulse{0%,to{opacity:.7}50%{opacity:1}}.modal.settings h3{margin:0 0 .75rem;text-align:center}.set-row{display:flex;align-items:center;justify-content:space-between;padding:.5rem 0;border-bottom:1px dashed rgba(255,255,255,.12)}.toggle{min-width:3rem;font:inherit;color:#f4f4f0;background:#ffffff1a;border:1px solid rgba(255,255,255,.25);border-radius:1rem;padding:.3rem .9rem;cursor:pointer}.toggle-on{background:#2e9e6b;border-color:#2e9e6b;color:#07271a;font-weight:600}.seg{display:inline-flex;border:1px solid rgba(255,255,255,.25);border-radius:.6rem;overflow:hidden}.seg-btn{font:inherit;color:#f4f4f0;background:transparent;border:none;padding:.35rem .9rem;cursor:pointer}.seg-btn+.seg-btn{border-left:1px solid rgba(255,255,255,.2)}.seg-on{background:#d9a441;color:#2a1c00;font-weight:600}.help-view{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh}.help-top{padding:.6rem 1rem}.help-frame{flex:1;min-height:0;width:100%;border:none;background:#f4f1e8}@media(orientation:portrait)and (max-width:720px){.table{--ts: .72;width:100%;max-width:none;min-height:100vh;min-height:100dvh;overflow:visible;padding:.35rem .4rem .55rem;gap:.32rem}.table-top{gap:.35rem}.table-title{font-size:.95rem;letter-spacing:.03em}.top-right{gap:.25rem}.btn{padding:.38rem .72rem;border-radius:.5rem}.icon-btn{min-width:2rem;padding-left:.42rem;padding-right:.42rem}.seat{padding:.42rem .48rem;border-radius:.55rem}.seat-info{margin-bottom:.22rem}.seat-opponent .hand-back,.replay .seat-opponent .hand-cols-sm{display:none}.seat-opponent>.muted{display:none}.center{padding:.25rem 0;gap:.25rem}.status-hint{font-size:.84rem;min-height:1.2em}.pending-discard{min-height:3.6rem}.discard-pile{min-height:2.5rem;gap:.3rem}.discard-column{min-height:2.5rem}.hand-cols{gap:.32rem;margin-top:.32rem}.tile-col .tile+.tile{margin-top:calc(-2.9rem * var(--ts, 1))}.action-bar{gap:.35rem;margin-top:.38rem}.seat-tools{position:static;flex-direction:row;justify-content:center;align-items:center;gap:.38rem;margin-top:2rem}.tool-btn{min-width:3.2rem;padding:.22rem .46rem;font-size:.76rem}.drawn-indicator-self{right:.45rem;top:.4rem}.hu-counter{left:.45rem;bottom:.45rem;font-size:.78rem;padding:.16rem .4rem}.log{max-height:4.5rem;padding:.38rem .55rem;font-size:.76rem}.draw-animation .tile{--ts: 1.35}.training-panel{grid-template-columns:1fr}}@media(orientation:landscape)and (max-height:480px){.table{--ts: .58;width:100%;max-width:none;padding:.2rem .35rem .18rem;gap:.18rem}.table-top{min-height:1.65rem}.table-title{font-size:.92rem}.top-right{gap:.25rem}.btn{padding:.26rem .56rem;border-radius:.45rem}.seat{padding:.28rem .35rem;border-radius:.45rem}.seat-info{margin-bottom:.22rem}.seat-opponent .hand-back,.replay .seat-opponent .hand-cols-sm{display:none}.seat-opponent>.muted{display:none}.seat-opponent{padding-top:.14rem;padding-bottom:.14rem}.seat-opponent .seat-info{margin-bottom:0;font-size:.84rem}.seat-opponent .meld-row{justify-content:flex-start}.seat-self .meld-row,.seat-self .hand-cols{justify-content:center;padding-left:4.6rem;padding-right:4.6rem}.center{padding:.1rem 0;gap:.18rem}.status-hint{font-size:.82rem;min-height:1.15em}.pending-discard{min-height:2.8rem}.discard-pile{min-height:2.2rem;gap:.3rem}.discard-column{min-height:2.2rem}.hand-cols{margin-top:.25rem;gap:.34rem}.tile-col .tile+.tile{margin-top:calc(-3rem * var(--ts, 1))}.action-bar{position:absolute;left:.35rem;top:2rem;width:3.9rem;margin:0;gap:.24rem;flex-direction:column;align-items:stretch;justify-content:flex-start;z-index:3}.action-bar .btn{width:100%;padding-left:.28rem;padding-right:.28rem}.seat-tools{right:.35rem;bottom:.35rem}.tool-btn{min-width:3.1rem;padding:.2rem .46rem;font-size:.76rem}.drawn-indicator-self{right:.35rem;top:.32rem}.hu-counter{left:.35rem;bottom:.35rem;font-size:.78rem;padding:.16rem .4rem}.hu-counter strong{font-size:.92rem}.assist-reason{margin-top:.28rem;padding:.3rem .5rem;font-size:.78rem}.training-panel{margin-top:.3rem}.training-input{min-height:2.6rem}.log{display:none}}
