:root{font-family:"Noto Serif SC",Songti SC,serif;color:#f4ead3;background:#071015;font-synthesis:none;--gold:#d8b86d;--gold2:#8f7137;--cyan:#62cad2;--ink:#071015;--panel:rgba(8,22,28,.9)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}button{font:inherit;color:inherit}button:not(:disabled){cursor:pointer}.app-shell{position:relative;min-width:320px;min-height:100%;background:#071015}.eyebrow{font:600 10px/1.3 ui-sans-serif,sans-serif;letter-spacing:.24em;color:#99b9b9;text-transform:uppercase}.loader{display:inline-block;width:24px;height:24px;border:1px solid #51767b;border-top-color:#e4ca83;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{rotate:360deg}}.boot-screen,.battle-loading{height:100%;display:grid;place-content:center;justify-items:center;gap:18px;background:radial-gradient(circle at 50% 35%,#16333a,#061014 55%);letter-spacing:.12em}.brand-mark{display:grid;place-items:center;width:74px;height:74px;border:1px solid var(--gold);border-radius:50%;font-size:38px;color:#ead190;box-shadow:0 0 40px #63dbe433,inset 0 0 20px #000}.boot-error p{max-width:520px;color:#c5bbaa}.boot-error button{padding:10px 22px;background:#1b4248;border:1px solid #6aa0a4;border-radius:3px}.home-screen{isolation:isolate;position:relative;height:100%;display:grid;grid-template-rows:1fr auto 1fr auto;place-items:center;padding:6vh 5vw 3vh;background:radial-gradient(ellipse at 50% 44%,transparent 0 17%,#08181dd9 48%,#03090c 90%),linear-gradient(115deg,#061014,#12343a 48%,#071015);overflow:hidden}.home-screen:before,.home-atmosphere{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;z-index:-1;background:repeating-conic-gradient(from 0deg at 50% 50%,transparent 0 14deg,#79e1e109 15deg 16deg,transparent 17deg 44deg);-webkit-mask-image:radial-gradient(circle,#000,transparent 68%);mask-image:radial-gradient(circle,#000,transparent 68%);animation:turn 80s linear infinite}@keyframes turn{to{transform:rotate(1turn)}}.home-screen:after{content:"";position:absolute;top:3%;right:3%;bottom:3%;left:3%;z-index:-1;border:1px solid #ceb76a25;clip-path:polygon(0 8%,8% 0,92% 0,100% 8%,100% 92%,92% 100%,8% 100%,0 92%)}.home-brand{text-align:center}.home-brand h1{font:900 clamp(52px,7vw,96px)/.9 "ZCOOL XiaoWei",serif;letter-spacing:.12em;margin:12px 0;color:#efe3c9;text-shadow:0 3px #2b271d,0 0 28px #66e5e633}.home-brand h1 i{font-style:normal;color:#e7c76f}.home-brand p{margin:18px 0;color:#9db3ae;letter-spacing:.45em}.home-sigil{width:min(62vw,650px);display:flex;justify-content:space-between;align-items:center;color:#6daab0}.home-sigil:before,.home-sigil:after{content:"";height:1px;flex:1;background:linear-gradient(90deg,transparent,#8a9d79)}.home-sigil span{margin:0 2vw}.home-sigil b{display:grid;place-items:center;width:98px;height:98px;border:1px solid #cfb76b;border-radius:50%;font-size:40px;color:#ead498;box-shadow:0 0 0 9px #0a171a,0 0 0 10px #72939966,0 0 60px #49bec42b}.home-actions{display:flex;gap:18px;width:min(760px,90vw)}.home-actions button{position:relative;flex:1;display:grid;text-align:left;padding:22px 28px;border:1px solid #a58d53;background:linear-gradient(135deg,#3d3828e6,#1a2628e6);box-shadow:0 16px 50px #0008;transition:.25s}.home-actions button:hover{translate:0 -3px;border-color:#f1d684;box-shadow:0 20px 60px #000b,0 0 24px #64c9ce22}.home-actions .secondary-action{border-color:#456d72;background:linear-gradient(135deg,#132b2fe6,#0b181ce6)}.home-actions small{font:600 9px ui-sans-serif;letter-spacing:.22em;color:#9eb2aa}.home-actions strong{font-size:24px;margin:5px 0}.home-actions span{font:12px ui-sans-serif;color:#a79f8c}.home-screen footer{font:10px ui-sans-serif;color:#62777a;letter-spacing:.14em}.home-notice{position:absolute;bottom:7vh;color:#e6bdb1}.top-bar{height:92px;display:flex;align-items:center;gap:18px;padding:18px 4vw;border-bottom:1px solid #bca45a35;background:#071115ee}.top-bar h1{margin:2px 0;font-size:26px}.icon-button,.plain-button{border:1px solid #8b9c873d;background:#0a1a1eaa;border-radius:3px;padding:9px 14px}.catalog-count{margin-left:auto;color:#bca75f}.catalog-screen{height:100%;overflow:auto;background:radial-gradient(circle at 50% 0,#17363b,#071015 55%)}.catalog-intro{padding:24px 5vw 12px;display:flex;align-items:baseline;gap:20px}.catalog-intro p{font-size:18px}.catalog-intro span{font:12px ui-sans-serif;color:#7f9a9d}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(166px,1fr));gap:24px 18px;padding:16px 5vw 60px;max-width:1500px;margin:auto}.game-card{position:relative;aspect-ratio:.69;border:0;padding:0;background:transparent;filter:drop-shadow(0 10px 12px #0009);transition:transform .22s,filter .22s;text-align:left}.game-card:not([aria-disabled=true]):hover{transform:translateY(-7px) scale(1.025);filter:drop-shadow(0 16px 18px #000c)}.card-frame{position:absolute;top:0;right:0;bottom:0;left:0;border:2px solid #735e36;border-radius:8px;background:linear-gradient(145deg,#2a2923,#0b1113 55%);overflow:hidden;box-shadow:inset 0 0 0 3px #c8ab5733,inset 0 0 25px #000}.rarity-1 .card-frame{border-color:#85969c}.rarity-2 .card-frame{border-color:#c4913e}.rarity-3 .card-frame{border-color:#96bfd0;box-shadow:inset 0 0 0 3px #ceb5e75c,0 0 16px #77dae838}.art{position:absolute;top:4%;right:5%;bottom:39%;left:5%;background-position:center;background-size:cover;border:1px solid #b39c605e;background-color:#152c31}.art:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 65%,#080d0f)}.cost,.sigil-mark{position:absolute;z-index:2;display:grid;place-items:center;border-radius:50%;background:#0d2529e8;border:1px solid #e2c66b;color:#fff}.cost{left:-3px;top:-4px;width:32px;height:32px;font-weight:900;font-size:17px}.sigil-mark{right:4px;top:4px;width:25px;height:25px;color:#9ee6e6}.card-name{position:absolute;top:61%;left:5%;right:5%;height:13%;display:flex;align-items:center;justify-content:space-between;border-block:1px solid #806e42;background:#101a1be8;padding:0 7px}.card-name strong{font-size:clamp(10px,1vw,14px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-name small{font:8px ui-sans-serif;color:#95a9a7}.game-card p{position:absolute;left:8%;right:8%;top:75%;bottom:4%;margin:0;font:clamp(7px,.7vw,10px)/1.55 ui-sans-serif;color:#bdc5bd;overflow:hidden}.combat{position:absolute;bottom:2px;z-index:3;display:grid;place-items:center;width:30px;height:30px;border-radius:50%;border:1px solid #e5d08d;font:700 15px ui-sans-serif;text-shadow:0 1px #000}.combat.attack{left:1px;background:#8e392b}.combat.defense{right:1px;background:#246271}.card-shine{position:absolute;top:-40%;right:-40%;bottom:-40%;left:-40%;background:linear-gradient(110deg,transparent 40%,#fff2 48%,transparent 56%);translate:-40% 0;pointer-events:none}.game-card:hover .card-shine{animation:shine .8s ease}@keyframes shine{to{translate:45% 0}}.game-card.selected{transform:translateY(-16px);filter:drop-shadow(0 0 12px #ffe096)}.game-card.selected .card-frame{outline:2px solid #efd075}.game-card.exhausted{filter:saturate(.4) brightness(.65);transform:rotate(3deg)}.battle-screen{position:relative;height:100%;min-height:540px;background:#071115;overflow:hidden;-webkit-user-select:none;user-select:none}.table-texture{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#06101499,#06101499),url(../assets/table.png) center/cover,radial-gradient(ellipse at center,#1e4b4c,#0a2025 60%,#051014);filter:saturate(.8)}.table-texture:after{content:"";position:absolute;top:8%;right:18%;bottom:8%;left:18%;border:1px solid #c8ad5a1f;border-radius:50%;box-shadow:0 0 0 30px #09161940,0 0 80px #000 inset}.battle-header{position:absolute;z-index:8;top:10px;left:18px;right:18px;height:42px;display:flex;align-items:center;justify-content:space-between}.turn-seal{position:absolute;left:50%;translate:-50%;display:flex;gap:10px;align-items:center;padding:6px 18px;border:1px solid #9f8b5355;background:#09191ddd;clip-path:polygon(7px 0,calc(100% - 7px) 0,100% 50%,calc(100% - 7px) 100%,7px 100%,0 50%)}.turn-seal span{font:10px ui-sans-serif;color:#91a6a5}.turn-seal strong{font-size:13px}.player-hud{position:absolute;z-index:4;left:22px;display:grid;grid-template-columns:52px 115px 54px 60px auto;grid-template-rows:30px 25px;align-items:center;padding:7px 12px;width:min(665px,64vw);height:70px;background:linear-gradient(90deg,#09171eee,#102a2bbb,transparent);border-left:2px solid #c4a752}.opponent-hud{top:58px}.own-hud{bottom:102px}.portrait{grid-row:1/3;width:48px;height:48px;display:grid;place-items:center;border:1px solid #c6ac61;border-radius:50%;background:radial-gradient(circle,#31545a,#091417);font-size:24px}.identity{grid-row:1/3;display:flex;flex-direction:column}.identity small,.stat small,.pile small{font:9px ui-sans-serif;color:#849b9b}.stat{grid-row:1/3;font-family:ui-sans-serif}.stat i{font-style:normal;margin-right:4px}.health i{color:#d6765f}.mana i{color:#66d6de}.life-shields{grid-row:1;display:flex;gap:2px;color:#d7c37e}.life-shields i{font-style:normal}.life-shields .broken{color:#394a4c}.life-shields em{font:8px ui-sans-serif;color:#e78a72}.pile{position:absolute;display:grid;grid-template-columns:28px 22px;align-items:center;background:transparent;border:0}.pile .card-back,.pile>span{grid-row:1/3;width:24px;height:34px}.pile b{font:14px ui-sans-serif}.deck{left:calc(100% + 8px)}.grave{left:calc(100% + 70px)}.sigil-track{position:absolute;left:calc(100% + 140px);display:flex;align-items:center;gap:3px;white-space:nowrap}.sigil-track small{font:9px ui-sans-serif;color:#82999a}.sigil-track em{font:9px ui-sans-serif;color:#667a7c}.sigil{font-style:normal}.s0{color:#e9dc9b}.s1{color:#79dce4}.s2{color:#8bcf9f}.s3{color:#e98b68}.opponent-hand{position:absolute;z-index:3;top:120px;right:22px;width:230px;text-align:center}.card-back{display:inline-grid;place-items:center;border:1px solid #b49b5a;border-radius:4px;background:repeating-linear-gradient(45deg,#0b252b 0,#0b252b 4px,#12373c 4px,#12373c 8px);box-shadow:inset 0 0 0 3px #071217,0 3px 8px #000}.card-back.mini{position:relative;width:38px;height:54px;margin-left:-20px;transform:translateY(calc(abs(var(--fan))*1px)) rotate(calc(var(--fan) * 3deg))}.board-grid{position:absolute;z-index:2;left:17%;right:17%;top:16%;bottom:25%;display:grid;grid-template-rows:15% 30% 10% 30% 15%;gap:3px}.zone-row,.lane-divider{display:grid;grid-template-columns:repeat(3,1fr);gap:4.5vw}.board-slot{position:relative;display:grid;place-items:center;border:1px solid #60888a33;background:#0a171955;border-radius:5px;min-width:0}.board-slot.empty:hover{border-color:#d8ba6a;background:#75652d22}.slot-rune{font-size:18px;color:#657a7044}.board-slot small{font:8px ui-sans-serif;color:#657a7a}.board-slot .game-card{height:100%;width:auto;max-width:100%}.support-slot .game-card{height:120%;z-index:2}.lane-divider{align-items:center;text-align:center;background:linear-gradient(90deg,transparent,#cbb66b19,transparent)}.lane-divider span{border-block:1px solid #d6bd6b22;font:9px ui-sans-serif;color:#728989}.lane-divider b{font-weight:400}.hand-zone{position:absolute;z-index:6;left:50%;translate:-50%;bottom:-4px;width:min(800px,62vw);height:142px}.hand-label{position:absolute;left:-62px;bottom:30px;display:grid;color:#91a4a1}.hand-label span{font-size:12px}.hand-label small{font:9px ui-sans-serif}.hand-fan{height:100%;display:flex;justify-content:center;align-items:flex-end}.hand-fan .game-card{width:102px;flex:0 0 102px;margin-left:-20px;transform-origin:50% 110%;transform:translateY(30px)}.hand-fan .game-card:first-child{margin-left:0}.hand-fan .game-card:hover,.hand-fan .game-card.selected{transform:translateY(-3px) scale(1.15);z-index:20}.action-rail{position:absolute;z-index:6;right:22px;bottom:28px;width:190px;display:grid;gap:12px}.notice-orb{min-height:52px;padding:10px 12px;border-left:1px solid #aa9658;background:#08171bdd;font:11px/1.5 ui-sans-serif;color:#b5c5c1}.notice-orb i{display:inline-block;width:6px;height:6px;border-radius:50%;background:#d0b55f;margin-right:7px;box-shadow:0 0 9px #ecd77d}.notice-orb.busy i{animation:pulse .8s infinite}@keyframes pulse{50%{opacity:.25}}.end-turn{padding:12px;border:1px solid #d0b35f;background:linear-gradient(#66572c,#292617);display:grid}.end-turn small{font:8px ui-sans-serif;letter-spacing:.18em}.end-turn strong{font-size:16px}.end-turn:disabled{opacity:.38}.dialog-mask,.response-mask,.outcome-mask{position:absolute;z-index:40;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#02070ac7;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.response-panel,.confirm-card,.outcome-card{width:min(460px,86vw);padding:28px;text-align:center;border:1px solid #d0b45e;background:linear-gradient(145deg,#152a2d,#091317);box-shadow:0 30px 100px #000}.response-panel h2,.confirm-card h2,.outcome-card h2{font-size:28px;margin:8px}.response-panel p,.confirm-card p,.outcome-card p{color:#b4c1ba;font:13px/1.7 ui-sans-serif}.response-panel>div,.confirm-card>div,.outcome-card>div{display:flex;justify-content:center;gap:10px;margin-top:20px}.response-panel button,.confirm-card button,.outcome-card button{padding:10px 22px;border:1px solid #7c8e86;background:#14262a}.response-panel button:first-child,.outcome-card .primary{border-color:#d0b45e;background:#5a4c27}.danger{border-color:#ad5d4d!important;background:#58271f!important}.outcome-sigil{margin:15px auto;width:70px;height:70px;display:grid;place-items:center;border:1px solid #e2c66f;border-radius:50%;font-size:32px;box-shadow:0 0 40px #64d9e43d}.card-detail{position:relative;display:grid;grid-template-columns:260px minmax(250px,410px);gap:34px;align-items:center;max-width:760px;width:90vw;padding:34px;border:1px solid #938052;background:radial-gradient(circle at 20%,#1a3b3d,#091316 60%);box-shadow:0 35px 100px #000}.card-detail>.game-card{width:240px}.card-detail article h2{font-size:34px;margin:8px 0 16px}.card-detail article p{white-space:pre-line;color:#c9cfca;line-height:1.9}.card-detail article>small{font:9px ui-monospace;color:#658084}.detail-stats{display:flex;gap:8px}.detail-stats b{padding:5px 9px;border:1px solid #7d7658;font:11px ui-sans-serif}.close{position:absolute;right:10px;top:8px;border:0;background:none;font-size:28px;color:#98aaa7}@media(max-width:900px){.player-hud{width:58vw;grid-template-columns:42px 95px 46px 50px auto}.portrait{width:38px;height:38px}.sigil-track{display:none}.board-grid{left:16%;right:18%;top:18%;bottom:27%}.hand-zone{width:58vw}.hand-fan .game-card{width:80px;flex-basis:80px}.action-rail{width:150px}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.game-card p{display:none}}@media(orientation:portrait)and (max-width:700px){.app-shell:after{content:"请旋转设备，以横屏展开牌桌";position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20vw;text-align:center;background:#071115;color:#dfc776;font-size:20px;letter-spacing:.12em}}@media(max-height:650px){.opponent-hud{top:50px}.own-hud{bottom:84px}.player-hud{height:58px}.board-grid{top:17%;bottom:23%}.hand-zone{height:112px}.hand-fan .game-card{width:78px;flex-basis:78px}.game-card p{display:none}.home-brand h1{font-size:54px}.home-sigil b{width:65px;height:65px}.home-actions button{padding:12px 20px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}.art{background-position:var(--art-x,50%) var(--art-y,46%);background-size:calc(100% * var(--art-zoom,1.035)) auto}.read-selected{padding:7px;border:1px solid #5e7d78;background:#0e2428;font:10px ui-sans-serif;color:#b8cfca;letter-spacing:.08em}.card-back{background:#0b252b url(../assets/card-back.png) center/cover no-repeat}.card-back{background-image:var(--card-back-image,url(../assets/card-back.png))}.table-texture{background:linear-gradient(#06101499,#06101499),var(--table-image,url(../assets/table.png)) center/cover,radial-gradient(ellipse at center,#1e4b4c,#0a2025 60%,#051014)}.hand-fan .game-card{transform:translateY(0)}.hand-zone{bottom:8px;pointer-events:none}.hand-fan{pointer-events:none}.hand-fan .game-card{pointer-events:auto}@media(max-height:650px)and (pointer:coarse){.hand-fan .game-card:hover,.hand-fan .game-card.selected{transform:none}}.board-grid{top:140px;bottom:240px;grid-template-rows:minmax(0,15fr) minmax(0,30fr) minmax(0,10fr) minmax(0,30fr) minmax(0,15fr)}.own-hud{bottom:158px}.player-hud{pointer-events:none}.player-hud .grave{pointer-events:auto}@media(max-height:650px){.battle-screen{min-height:0}.player-hud{top:44px;bottom:auto;width:47vw;height:70px;padding:3px 7px;grid-template-columns:34px 82px 42px 45px minmax(90px,1fr);grid-template-rows:36px 27px;column-gap:3px}.opponent-hud{left:8px}.own-hud{left:auto;right:8px}.portrait{grid-row:1;width:32px;height:32px;font-size:17px}.identity,.stat{grid-row:1}.identity span{font-size:11px}.identity small{font-size:7px}.life-shields{grid-row:1;gap:0;font-size:11px}.stat{font-size:12px}.stat small{font-size:7px}.pile{position:relative;left:auto!important;top:auto;grid-row:2;align-self:center;grid-template-columns:20px 16px;width:52px;padding:0}.pile .card-back,.pile>span{width:17px;height:23px}.pile b{font-size:10px}.pile small{font-size:7px}.deck{grid-column:1/2}.grave{grid-column:2/3}.sigil-track{display:flex;position:relative;left:auto;grid-row:2;grid-column:3/6;gap:2px;overflow:hidden;font-size:11px}.sigil-track small,.sigil-track em{font-size:7px}.board-grid{top:120px;bottom:122px;left:14%;right:24%}.opponent-hand{top:119px;right:3px;width:100px;transform:scale(.72);transform-origin:top right}}.battle-presentation{position:absolute;top:0;right:0;bottom:0;left:0;z-index:45;pointer-events:none;overflow:visible}.motion-card{pointer-events:none!important;z-index:2;filter:drop-shadow(0 0 16px #f4d070)!important;transition:none!important}.combat-caption{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);max-width:80%;padding:12px 24px;border:1px solid #d8b86d;background:#08191feb;color:#fff0c0;font:600 17px/1.5 ui-sans-serif;text-align:center;box-shadow:0 0 40px #000}.battle-impact{border-radius:50%;background:radial-gradient(circle,#fff9d6 0 8%,#ffc85cbb 20%,#f8773333 50%,transparent 70%);box-shadow:0 0 30px #fc5;pointer-events:none}.damage-float{position:fixed;z-index:5;white-space:nowrap;font:700 30px ui-sans-serif;color:#ffb39b;text-shadow:0 2px 2px #000,0 0 9px #a31313;-webkit-text-stroke:.5px #54221d}.card-explosion{background:radial-gradient(circle,#fff1b3,#ed9339aa 25%,transparent 70%);z-index:4}.card-explosion i{position:absolute;left:50%;top:50%;width:30%;height:30%;background:linear-gradient(135deg,#fff3b1,#ba782d,#193840);clip-path:polygon(0 0,100% 30%,48% 100%);box-shadow:0 0 12px #ffd568}.trap-slot-label{position:absolute;left:4px;bottom:2px;z-index:3;padding:2px 5px;background:#211c32dd;border:1px solid #ac83be;color:#dcc2ef;font:9px ui-sans-serif;pointer-events:none}.response-mask{z-index:55}.response-panel{max-height:94%;overflow:auto;box-shadow:0 0 50px #bc854833,0 30px 100px #000}.response-panel .response-trap{display:block;padding:12px;margin:12px 0;border:1px solid #9378a3;background:#3e29443d}.response-trap strong{color:#f0d1ff;font-size:21px}.response-trap p{margin-bottom:0}.card-detail{max-height:92vh;overflow:auto;grid-template-columns:minmax(140px,240px) minmax(0,1fr);gap:28px;padding:30px;max-width:840px}.card-detail article{min-width:0}.card-detail article p{font:17px/1.8 ui-sans-serif;white-space:pre-wrap;overflow-wrap:anywhere}.card-detail article h2{font-size:30px}.detail-stats{flex-wrap:wrap}.card-detail .detail-key-hint{font:12px ui-sans-serif;color:#9bb7b9}.card-detail>.game-card{width:100%}.read-selected kbd{padding:2px 6px;border:1px solid #9b9669;border-radius:3px;margin-left:5px}.card-detail .game-card p{display:block}@media(max-height:650px){.card-detail{grid-template-columns:140px minmax(0,1fr);padding:18px;gap:20px}.card-detail article h2{font-size:24px}.card-detail article p{font-size:15px;line-height:1.55;margin:10px 0}.response-panel{padding:16px}.response-panel h2{font-size:23px}.response-panel .response-trap{padding:8px;margin:8px 0}.response-panel>div{margin-top:12px}.response-trap strong{font-size:17px}.combat-caption{font-size:14px}.damage-float{font-size:24px}.trap-slot-label{font-size:7px;padding:1px;bottom:0}}
