*{box-sizing:border-box}*{-webkit-tap-highlight-color:transparent}:root{color-scheme:dark;--bg: #0c0e12;--bg-grad: radial-gradient(1100px 700px at 50% -10%, #151d28 0%, #0c0e12 60%);--card: #151a23;--card-elev: #10151d;--line: #2a3242;--line-gold: #5c4d2e;--text: #e9e4d8;--dim: #9a917f;--accent: #58c9a5;--accent-ink: #0b1611;--gold: #d8b25c;--gold-bright: #f2cf7e;--red: #c9574f;--accent-hi: #63d4b0;--accent-lo: #46b892;--accent-glow: #58c9a544;--seg-active-bg: #14302622;--chip-active-bg: #221c10;--press-veil: #ffffff0a;--scrim: #050810cc;--gold-hairline: #d8b25c2e;--font-display: "Noto Serif TC", "Songti TC", "SimSun", serif;--font-body: system-ui, "PingFang TC", "Microsoft JhengHei", sans-serif}body{background:var(--bg-grad) no-repeat fixed,var(--bg);color:var(--text);font-family:var(--font-body)}.theme-paper{color-scheme:light;--bg: #e7dcc3;--bg-grad: radial-gradient(1100px 700px at 50% -10%, #f5eeda 0%, #e7dcc3 60%);--card: #f2ead6;--card-elev: #e6d9bc;--line: #c3b394;--line-gold: #9c7c40;--text: #2a2118;--dim: #6e6046;--accent: #1f6e58;--accent-ink: #f6f0dd;--gold: #8a6a2f;--gold-bright: #a5813a;--red: #a83226;--accent-hi: #2f8a6e;--accent-lo: #1f6e58;--accent-glow: #1f6e5833;--seg-active-bg: #1f6e581a;--chip-active-bg: #ead9ae;--press-veil: #0000000d;--gold-hairline: #8a6a2f4d;background:url(/ui/bg/shanshui.png) center / cover no-repeat,var(--bg-grad),var(--bg);color:var(--text)}.screen{height:100%;animation:screenIn .28s ease both}@keyframes screenIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}:is(.primary-btn,.ghost-btn,.seg-btn,.danger-btn):focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.menu{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(10px,2.4vh,24px);padding:clamp(12px,3vh,40px) 24px;overflow:hidden}.menu-head{flex-shrink:0}.menu-cards{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;width:100%}.menu-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 26px;width:360px;max-width:100%;display:flex;flex-direction:column;gap:14px}.menu-card h2{margin:0;font-size:22px}.card-desc{color:var(--dim);margin:0;flex:1}.menu-row{display:flex;align-items:center;gap:12px;color:var(--dim)}.seg{display:flex;gap:6px;flex:1}.seg-btn{flex:1;padding:8px 6px;background:var(--card-elev);color:var(--dim);border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:14px;transition:border-color .15s,color .15s}.seg-btn:hover{border-color:var(--gold)}.seg-btn.active{color:var(--text);border-color:var(--accent);background:var(--seg-active-bg)}.primary-btn{padding:12px 18px;background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:var(--accent-ink);font-weight:800;font-size:16px;border:none;border-radius:10px;cursor:pointer;transition:filter .15s,transform .1s,box-shadow .15s}.primary-btn:hover{filter:brightness(1.08);box-shadow:0 0 14px var(--accent-glow)}.primary-btn:active{transform:translateY(1px);filter:brightness(.95)}.ghost-btn{padding:8px 12px;background:transparent;color:var(--dim);border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .15s,color .15s}.ghost-btn:hover{color:var(--text);border-color:var(--gold)}.ghost-btn:active{background:var(--press-veil)}.menu-links{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.menu-links .btn-wood{min-width:132px;text-align:center;font-size:15px}.rules-card{max-width:560px}.rules-head{margin:12px 0 4px;font-size:15px;color:var(--text);font-family:var(--font-display)}.rules-list{margin:0;padding-left:20px;color:var(--dim);font-size:14px}.rules-list li{margin:6px 0}@media(max-height:640px),(max-width:780px){.menu{overflow-y:auto;justify-content:flex-start}.menu-card{padding:16px 20px;gap:10px}}.game{height:100%;display:flex;flex-direction:column;align-items:center;padding:8px 12px;gap:6px;overflow-y:auto;overflow-x:hidden}.game-top{width:100%;max-width:560px;display:flex;justify-content:space-between;align-items:center}.turn-label{font-weight:700}.player-panel{width:100%;max-width:560px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:8px 14px;transition:border-color .2s}.player-panel.current{border-color:var(--accent)}.pp-head{display:flex;align-items:center;gap:10px;font-size:15px}.pp-name{font-weight:800}.pp-turn{color:var(--accent);font-size:13px}.pp-count{margin-left:auto;color:var(--dim);font-variant-numeric:tabular-nums;font-weight:700}.board-wrap{position:relative;z-index:2}.board-canvas{position:relative;width:min(92vw,560px);aspect-ratio:1;border-radius:12px;box-shadow:0 10px 30px #00000090;touch-action:manipulation;user-select:none;-webkit-user-select:none}.board-canvas:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid var(--line-gold);border-radius:12px;pointer-events:none;z-index:1}.board-canvas canvas{display:block}.error-toast{position:absolute;bottom:10px;left:50%;transform:translate(-50%);background:#2a0f16ee;border:1px solid var(--red);color:#ffb3ba;padding:6px 14px;border-radius:8px;font-size:14px;z-index:5;animation:fadein .15s ease,fadeout .3s ease 2.2s forwards}@keyframes fadein{0%{opacity:0}to{opacity:1}}@keyframes fadeout{to{opacity:0}}.bottom-bar{width:100%;max-width:560px;display:flex;flex-direction:column;gap:8px;padding-bottom:10px}.pass-btn{width:100%}.pass-notice{width:100%;text-align:center;padding:10px 18px;color:var(--gold-bright);background:var(--card-elev);border:1px solid var(--line-gold);border-radius:10px;font-weight:700;font-size:15px;animation:fadein .2s ease}.cosmetics{height:100%;display:flex;flex-direction:column;align-items:center;padding:8px 12px 24px;gap:8px;overflow-y:auto;overflow-x:hidden}.cos-preview{position:relative;width:min(80vw,300px);aspect-ratio:1}.cos-preview canvas{display:block}.cos-hint{color:var(--dim);font-size:13px;margin:0}.cos-section{width:100%;max-width:620px}.cos-section h3{margin:10px 0 8px;font-size:15px;color:var(--dim)}.cos-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}.cos-chip{display:flex;flex-direction:column;gap:3px;padding:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;color:var(--text);cursor:pointer;text-align:left}.cos-chip:hover{border-color:var(--accent)}.cos-chip.active{border-color:var(--gold);background:var(--chip-active-bg)}.cos-chip-name{font-weight:800;font-size:14px}.cos-chip-desc{color:var(--dim);font-size:11px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.gameover{position:absolute;top:0;right:0;bottom:0;left:0;background:#050810cc;display:flex;align-items:center;justify-content:center;border-radius:12px;z-index:10}.gameover-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px 36px;text-align:center;min-width:300px}.gameover-card h2{margin:0 0 6px;font-size:30px;font-family:var(--font-display)}.go-reason{color:var(--dim);margin:0 0 16px}.go-stats{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.go-stats>div{display:flex;justify-content:space-between;background:var(--card-elev);border-radius:8px;padding:8px 14px}.go-actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.game-actions{display:flex;gap:8px;width:100%;max-width:560px;justify-content:center}.game-actions .ghost-btn{flex:1;max-width:160px}.danger-ghost:hover{border-color:var(--red)!important;color:var(--red)!important}button:disabled{opacity:.35;cursor:not-allowed}.top-actions{display:flex;gap:6px}.spinner{display:inline-block;width:14px;height:14px;margin-right:8px;border:2px solid var(--dim);border-top-color:transparent;border-radius:50%;vertical-align:-2px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.thinking-dots i{display:inline-block;width:4px;height:4px;margin-left:3px;border-radius:50%;background:var(--accent);animation:dotpulse 1.2s ease-in-out infinite}.thinking-dots i:nth-child(2){animation-delay:.2s}.thinking-dots i:nth-child(3){animation-delay:.4s}@keyframes dotpulse{0%,60%,to{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadein .15s ease;overflow-y:auto;padding:16px 12px}.modal-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 26px;min-width:300px;max-width:90vw;margin:auto}.modal-title{margin:0 0 8px;font-size:20px;font-family:var(--font-display)}.modal-body{margin:0 0 16px;color:var(--dim);font-size:14px}.modal-actions{display:flex;gap:10px;justify-content:center;margin-top:14px;flex-wrap:wrap}.danger-btn{padding:12px 18px;background:var(--red);color:#fff;font-weight:800;border:none;border-radius:10px;cursor:pointer;font-size:15px}.danger-btn:hover{filter:brightness(1.1)}.settings-card{min-width:340px}.settings-row{display:flex;align-items:center;gap:12px;margin:14px 0}.settings-row>span:first-child{width:70px;color:var(--dim);font-size:14px}.settings-row .seg{flex:1;display:flex;gap:6px}.settings-row input[type=range]{flex:1;accent-color:var(--accent)}.settings-val{width:32px;text-align:right;font-variant-numeric:tabular-nums;color:var(--dim);font-size:13px}.demo-btn{margin-left:10px;font-size:12px;padding:4px 10px;color:var(--gold);border-color:var(--line-gold)}.cos-grade-row{display:flex;align-items:center;gap:6px;margin:2px 0 0}.cos-grade-label{color:var(--dim);font-size:12px;margin-right:2px}.grade-btn{font-size:12px;font-weight:700;padding:3px 10px;min-width:36px}.sect-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.sect-card{position:relative;display:flex;flex-direction:column;gap:3px;padding:12px 12px 10px;background:var(--card);border:1px solid var(--line);border-radius:12px;color:var(--text);cursor:pointer;text-align:left;overflow:hidden;transition:border-color .15s,box-shadow .15s}.sect-card:hover{border-color:var(--sect-color, var(--accent))}.sect-card.active{border-color:var(--sect-color, var(--gold));box-shadow:0 0 12px color-mix(in srgb,var(--sect-color, #ffc94d) 30%,transparent)}.sect-card-emblem{position:absolute;right:-6px;top:-14px;font-size:76px;font-weight:900;opacity:.1;color:var(--sect-color, var(--dim));pointer-events:none;font-family:var(--font-display)}.sect-card-name{font-weight:900;font-size:17px;color:var(--sect-color, var(--text));font-family:var(--font-display)}.sect-card-tagline{color:var(--text);font-size:12px;margin-bottom:4px}.sect-card-line{color:var(--dim);font-size:11px}.sect-intro{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none;z-index:5;background:#05081088;border-radius:12px;animation:sect-intro-fade 1.95s ease forwards}.sect-intro-side{display:flex;align-items:center;gap:10px;background:#0d1322ee;border:1px solid;border-radius:10px;padding:8px 18px;min-width:62%}.sect-intro-black{animation:sect-slide-l .35s ease both}.sect-intro-white{animation:sect-slide-r .35s ease both}.sect-intro-emblem{font-size:34px;font-weight:900;font-family:var(--font-display)}.sect-intro-name{font-size:19px;font-weight:900;font-family:var(--font-display)}.sect-intro-tagline{color:var(--dim);font-size:12px;margin-left:auto}.sect-intro-vs{font-size:22px;font-weight:900;color:var(--gold);letter-spacing:10px;text-indent:10px;font-family:var(--font-display)}@keyframes sect-slide-l{0%{opacity:0;transform:translate(-60px)}to{opacity:1;transform:none}}@keyframes sect-slide-r{0%{opacity:0;transform:translate(60px)}to{opacity:1;transform:none}}@keyframes sect-intro-fade{0%,78%{opacity:1}to{opacity:0}}.bb-root{width:100%;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none}.bb-scores{display:flex;align-items:center;gap:30px;background:#000c;padding:10px 24px;border-radius:10px;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 20px #00000080}.bb-side{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:64px}.bb-label{font-size:14px;color:#999;text-transform:uppercase;letter-spacing:1px}.bb-value{font-size:48px;line-height:1;font-weight:700;font-family:var(--font-display);font-variant-numeric:tabular-nums;color:#fff;text-shadow:0 0 10px rgba(255,255,255,.5);transition:all .3s ease}.bb-side-black .bb-value{color:#333;text-shadow:0 0 10px rgba(0,0,0,.5),0 0 2px rgba(255,255,255,.45)}.bb-vs{font-size:24px;color:gold;font-weight:700;font-family:var(--font-display);text-shadow:0 0 15px rgba(255,215,0,.8)}.bb-trend{font-size:12px;height:14px;font-weight:700;font-variant-numeric:tabular-nums}.bb-trend span{display:inline-block;animation:bb-trend-fade 2s ease both}.bb-trend-up{color:#4caf50}.bb-trend-down{color:#f44336}@keyframes bb-trend-fade{0%{opacity:0;transform:translateY(-3px)}12%{opacity:1;transform:none}75%{opacity:1}to{opacity:0}}.bb-bar{position:relative;width:420px;max-width:100%;height:26px;background:#0009;border:2px solid rgba(255,255,255,.3);border-radius:15px;overflow:hidden}.bb-fill{position:absolute;top:0;height:100%;transition:width .3s ease;z-index:2}.bb-fill-black{left:0;background:linear-gradient(90deg,#333,#666);border-radius:13px 0 0 13px}.bb-fill-white{right:0;background:linear-gradient(270deg,#fff,#e0e0e0);border-radius:0 13px 13px 0}.bb-chip{position:absolute;top:0;height:100%;z-index:3}.bb-chip-black{background:linear-gradient(90deg,#c62828e6,#f44336a6)}.bb-chip-white{background:linear-gradient(270deg,#c62828e6,#f44336a6)}.bb-glow{position:absolute;top:0;width:20px;height:100%;animation:bb-energy-glow 2s infinite}.bb-glow-black{right:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.8))}.bb-glow-white{left:0;background:linear-gradient(270deg,transparent,rgba(255,255,255,.8))}@keyframes bb-energy-glow{0%,to{opacity:0}50%{opacity:1}}@media(max-width:480px){.bb-value{font-size:30px}.bb-scores{gap:18px;padding:8px 16px}.bb-bar{width:100%;max-width:420px;height:22px}}.panel-ornate{position:relative;border:1px solid transparent;background:linear-gradient(var(--card),var(--card)) padding-box,linear-gradient(135deg,var(--gold) 0%,var(--line) 22%,var(--line) 78%,var(--gold) 100%) border-box}.panel-ornate:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid var(--gold-hairline);border-radius:8px;pointer-events:none}.theme-paper .panel-ornate{border:30px solid transparent;border-image:url(/ui/panel/frame-scroll.png) 240 fill / 30px / 6px stretch;border-radius:0}.theme-paper .panel-ornate:before{content:none}.panel-nightwood{border:24px solid transparent;border-image:url(/ui/panel/frame-nightwood.png) 240 fill / 24px / 4px stretch;border-radius:0;background:var(--card)}.theme-paper .primary-btn{border:14px solid transparent;border-image:url(/ui/panel/btn-gold.png) 260 fill / 14px stretch;border-radius:0;padding:4px 10px;color:#ffe9c4;text-shadow:0 1px 2px #00000088}.theme-paper .primary-btn:hover{filter:brightness(1.1) saturate(1.05);box-shadow:none}.theme-paper .primary-btn:active{filter:brightness(.88);transform:translateY(1px)}.theme-paper .btn-wood{border:13px solid transparent;border-image:url(/ui/panel/btn-wood.png) 160 fill / 13px stretch;border-radius:0;color:#f0e2c4;text-shadow:0 1px 0 #00000055;background:var(--card-elev)}.theme-paper .btn-wood:hover{filter:brightness(1.12);color:#fff6df}.panel-nightwood .primary-btn{border:14px solid transparent;border-image:url(/ui/panel/btn-gold.png) 260 fill / 14px stretch;border-radius:0;padding:4px 14px;color:#ffe9c4;text-shadow:0 1px 2px #00000088}.panel-nightwood .primary-btn:hover{filter:brightness(1.1) saturate(1.05);box-shadow:none}.panel-nightwood .primary-btn:active{filter:brightness(.88);transform:translateY(1px)}.panel-nightwood .btn-wood{border:13px solid transparent;border-image:url(/ui/panel/btn-wood.png) 160 fill / 13px stretch;border-radius:0;color:#f0e2c4;text-shadow:0 1px 0 #00000055;background:var(--card-elev)}.panel-nightwood .btn-wood:hover{filter:brightness(1.12);color:#fff6df}.menu-logo-plaque{display:block;margin:0 auto 2px;padding:6px 18px;width:fit-content;background:url(/ui/brand/paper-tex.png) center / cover,var(--card)}.menu-logo{display:block;width:min(76vw,440px);max-height:clamp(96px,20vh,170px);object-fit:contain;mix-blend-mode:multiply}.menu-title-en{text-align:center;color:var(--dim);font-family:var(--font-display);letter-spacing:6px;font-size:14px;margin:4px 0 0}.seal-char{display:inline-block;font-family:var(--font-display);color:var(--red);border:1.5px solid var(--red);border-radius:4px;padding:0 4px;font-size:.82em;line-height:1.35;margin-right:6px}.cos-stage{display:flex;flex-direction:column;align-items:center;gap:6px;background:radial-gradient(closest-side,#182030,#0e1118 72%,#0a0d13);border-radius:16px;padding:min(17.9vw,67px) min(17.9vw,67px) 12px;box-shadow:inset 0 0 28px #000a,0 8px 24px #00000040}.cos-stage .cos-hint{color:#9a917f}.cos-stage .demo-btn{color:#d8b25c;border-color:#5c4d2e}.cos-stage .ghost-btn{border-color:#2a3242}.cos-stage .ghost-btn:hover{color:#e9e4d8;border-color:#d8b25c}.cos-stage .cos-grade-label{color:#9a917f}.sect-card{padding-right:70px}.sect-medallion{position:absolute;right:10px;top:10px;width:52px;height:52px;border-radius:50%;background:var(--card-elev) center / 112% no-repeat;box-shadow:0 0 0 2px var(--sect-color, var(--gold)),0 0 0 4px color-mix(in srgb,var(--sect-color, var(--gold)) 35%,transparent),0 2px 6px #00000059;pointer-events:none}.theme-paper .sect-card-name{color:color-mix(in srgb,var(--sect-color, var(--text)) 65%,var(--text))}.theme-paper .sect-card-emblem{opacity:.16}.game{background:linear-gradient(180deg,#0c0e128c,#0c0e12db) fixed,var(--game-scene, url(/ui/bg/night.png)) center / cover no-repeat fixed}.board-canvas:before{content:"";position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;border:18px solid transparent;border-image:url(/ui/panel/frame-nightwood.png) 240 / 18px stretch;pointer-events:none;z-index:1}
