:root{--focus-color: #99dfc3;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--radius-sm: 4px}:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#e7e4d4;background:#102321;font-synthesis:none;--gold: #cfb078;--muted: #8faaa2;--line: #b5b28a28;--serif: "Noto Serif SC", "Songti SC", STSong, serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{opacity:.38;cursor:not-allowed}button{transition:background .18s,border-color .18s,transform .18s}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #e7c680;outline-offset:4px}a{color:var(--gold)}button svg{flex-shrink:0}button{border:0;background:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif)}.app{min-height:100vh;position:relative;isolation:isolate;overflow:hidden}.landscape,.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;pointer-events:none}.landscape{background:linear-gradient(90deg,#0e2429ed,#16312ae8 58%,#0a2422f7),url(/assets/xiyou-battlefield.webp) center/cover}.grain{z-index:-1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.6' d='M0 0h200v200H0z'/%3E%3C/svg%3E")}.topbar{height:90px;max-width:1600px;padding:0 4%;margin:auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:22px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#e9dfc1;white-space:nowrap}.brand-seal{font-family:var(--serif);font-size:27px;border:1px solid #c99e69;padding:4px 7px;position:relative;background:#62453045;box-shadow:inset 0 0 0 3px #182d29,inset 0 0 0 4px #c99e694d}.brand>span:last-child{font-family:var(--serif);font-size:24px;font-weight:700;letter-spacing:4px}.brand small{display:block;font-family:sans-serif;font-size:9px;letter-spacing:5px;color:#a1a995;margin-top:4px}.topbar nav{display:flex;gap:36px;height:100%;align-items:center}.topbar nav button{height:100%;position:relative;color:#adbab0;font-size:13px;display:flex;align-items:center;gap:6px;padding:0 4px}.topbar nav button.active{color:#e5c794}.topbar nav button.active:after{content:"";position:absolute;bottom:0;left:12px;right:12px;height:2px;background:#ceae77}.top-right{display:flex;gap:14px;align-items:center}.connection{font-size:11px;color:#8ba99d;display:flex;gap:7px;align-items:center;white-space:nowrap}.connection i{width:5px;height:5px;border-radius:50%;background:#85b4a0;box-shadow:0 0 10px #85b4a033}.connection.disconnected{color:#e3a87c}.connection.disconnected i{background:#e3a87c}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--line);border-radius:4px;color:#b8c4b8}.eyebrow{font-size:9px;font-weight:500;color:#b69f74;letter-spacing:3px}.lobby{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:1.1fr 1fr;gap:7%;padding:48px 6% 35px}.lobby-intro{position:relative;min-height:670px;padding-top:20px}.edition{display:flex;gap:12px;align-items:center;color:#b9b797;letter-spacing:3px;font-size:11px;margin-bottom:25px}.edition span{width:18px;height:1px;background:#9c9771}.lobby-intro h1{font-size:clamp(38px,4.2vw,65px);line-height:1.5;letter-spacing:10px;font-weight:500;position:relative;z-index:2;pointer-events:none}.lobby-intro h1 em{font-style:normal;color:#d1b47f}.lobby-intro>p{position:relative;z-index:2;font-size:12px;color:#a4b4a9;line-height:2.15;margin-top:20px;letter-spacing:1px}.intro-features{display:flex;gap:23px;position:relative;z-index:2;margin-top:29px;color:#b3bdaa}.intro-features span{display:flex;align-items:center;gap:7px;font-size:11px}.intro-features svg{color:#b9aa7d}.hero-display{position:absolute;left:110px;right:-30px;bottom:10px;height:420px;pointer-events:none}.hero-display .portrait{position:absolute;width:310px;max-width:90%;height:auto;aspect-ratio:3/4;bottom:0;right:0;filter:saturate(.8);opacity:.95}.hero-halo{width:340px;height:340px;border:1px solid #aeae7728;border-radius:50%;position:absolute;top:30px;left:0;box-shadow:0 0 0 12px #c0a86105,0 0 0 13px #c0a86115;background:radial-gradient(#84976325,transparent 70%)}.hero-display-caption{position:absolute;z-index:2;left:-70px;bottom:90px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}.hero-display-caption>span{font-size:10px;color:#b4b3a0;letter-spacing:3px}.hero-display-caption strong{font-family:var(--serif);font-size:28px;letter-spacing:5px}.hero-display-caption small{font-size:10px;color:#b2af8c;border-top:1px solid #b6a36b55;padding-top:12px}.vertical-verse{position:absolute;right:-35px;top:110px;writing-mode:vertical-rl;font-size:10px;letter-spacing:6px;color:#899d8b}.intro-footer{position:absolute;bottom:-12px;left:0;display:flex;gap:16px;align-items:center;font-size:10px;color:#7f998c;letter-spacing:2px}.intro-footer span{font-size:8px;color:#a69d75}.intro-footer i{display:block;width:42px;height:1px;background:#88977750}.lobby-panel{background:linear-gradient(145deg,#24392de0,#102824e8);padding:30px 32px 24px;border:1px solid #b8b48c40;border-radius:3px;box-shadow:0 30px 65px #0002,inset 0 0 0 5px #1c332b,inset 0 0 0 6px #a7a37912;position:relative;align-self:start}.panel-heading h2{font-size:27px;font-weight:500;letter-spacing:5px;margin-top:10px}.panel-heading p{font-size:11px;color:#97aaa0;margin-top:10px}.mode-tabs{display:flex;margin:25px 0 23px;border-bottom:1px solid var(--line);gap:25px}.mode-tabs button{display:flex;align-items:center;gap:8px;padding:0 0 13px;color:#8fa398;font-size:13px;border-bottom:2px solid transparent}.mode-tabs button.active{color:#e0c387;border-color:#c5ac77}.mode-tabs small{font-size:8px;color:#7f9286;letter-spacing:1px}.field-row{display:grid;grid-template-columns:1.1fr 1fr;gap:16px}.field-row label{font-size:11px;color:#b9c4b7;display:flex;flex-direction:column;gap:9px}input,select{min-width:0;width:100%;background:#122821;color:#e1ddc9;border:1px solid #a0ae8c35;padding:11px 12px;border-radius:3px;font-size:12px}select{height:39px;color-scheme:dark}input::placeholder{color:#7a9183}.field-label{display:flex;justify-content:space-between;font-size:11px;margin:22px 0 12px;color:#bcc6b5}.field-label small{font-size:9px;color:#829789}.hero-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.hero-picker button{padding:0;position:relative;border:1px solid #738d7250;background:#10251f;border-radius:3px;overflow:hidden}.portrait{background-image:url(/assets/characters.webp);background-size:400% 200%;background-position:var(--art-x) var(--art-y);aspect-ratio:3/4;flex-shrink:0}.hero-picker .portrait{aspect-ratio:1/1.02;background-size:400% 260%;background-position:var(--art-x) calc(var(--art-y) * .8);filter:saturate(.75);transition:filter .2s}.hero-picker button.selected{border-color:#dfbd76;box-shadow:0 0 0 1px #dfbd7670}.hero-picker button:hover .portrait{filter:saturate(1.1)}.hero-picker button span{display:block;font-family:var(--serif);font-size:11px;padding:6px 0;color:#c6c7af}.hero-picker button.selected span{color:#ebcd8c;background:#77624024}.hero-picker button i{position:absolute;top:0;right:0;background:#dbc086;color:#263c2e;padding:1px 3px;border-radius:0 0 0 3px}.skill-preview{background:#baba7e07;border-left:2px solid #a58e59;padding:10px 12px;margin-top:16px;min-height:67px}.skill-preview>span{display:flex;align-items:center;gap:6px;color:#cfb478;font-size:11px}.skill-preview p{font-size:10px;color:#9fac99;line-height:1.9;margin-top:5px}.difficulty-row{margin:21px 0;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#b2bdac;gap:8px}.difficulty-row>div{display:flex;gap:6px}.difficulty-row button{border:1px solid #7a957446;border-radius:3px;padding:7px 10px;font-size:10px;color:#8fa08c}.difficulty-row button.active{color:#d5bf88;border-color:#bda77780;background:#ad965d12}.primary,.secondary,.danger-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:39px;padding:10px 18px;border-radius:3px;font-size:12px;white-space:nowrap}.primary{color:#26372a;background:linear-gradient(110deg,#ddc48b,#bda26c);border:1px solid #edd69d;box-shadow:inset 0 0 0 2px #3b3e281a;font-weight:700}.primary:not(:disabled):hover{background:#ead09a;transform:translateY(-1px)}.secondary{color:#c9c8ad;border:1px solid #8a9b7350;background:#122a2255}.secondary:not(:disabled):hover{background:#53614344;border-color:#bac19066}.danger-button{border:1px solid #b3745750;color:#d4a18a;background:#7f342421}.start-button{width:100%;min-height:48px;font-size:15px;letter-spacing:2px}.start-button svg:last-child{margin-left:auto}.start-button svg:first-child{margin-right:auto}.panel-note{font-size:9px;margin-top:16px;color:#819681;display:flex;align-items:center;gap:5px;flex-wrap:wrap}.panel-note>span{color:#bda16b}.panel-note button{color:#c2b487;font-size:9px;display:flex;align-items:center;gap:4px;margin-left:auto}.join-row{display:flex;gap:8px;margin-top:14px}.join-row input{flex:1}.site-footer{border-top:1px solid var(--line);margin:15px 4% 0;padding:22px 0;display:flex;justify-content:space-between;gap:15px;color:#6f897c;font-size:10px;letter-spacing:1px}.site-footer button{font-size:10px;color:#859781}.toast{position:fixed;z-index:70;left:50%;top:99px;transform:translate(-50%);background:#243e34f5;border:1px solid #b7ad7380;box-shadow:0 8px 35px #0005;border-radius:4px;display:flex;align-items:center;gap:18px;max-width:min(600px,94vw);padding:15px 19px;font-size:12px;color:#d9d8ba}.toast.error{border-color:#bd8460;background:#402d25f5}.toast button{display:flex;padding:0}.waiting{max-width:1280px;margin:auto;padding:60px 5%;min-height:calc(100vh - 177px)}.waiting-title h1{font-size:32px;letter-spacing:4px;margin:15px 0 20px;font-weight:500}.waiting-title p{font-size:13px;color:#91a99a}.waiting-title b{font-size:18px;letter-spacing:3px;color:var(--gold);margin:0 10px}.text-button{color:#c4b381;display:inline-flex;align-items:center;gap:6px;padding:4px;font-size:11px}.waiting-title .text-button{margin-left:15px}.waiting-seats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:40px}.waiting-seats article{border:1px solid #7d92744a;position:relative;border-radius:4px;overflow:hidden;background:#162d25;min-height:240px}.waiting-seats article.self{border-color:#bca477}.waiting-seats .portrait{width:100%;aspect-ratio:3/3.2}.waiting-seats article>div:not(.portrait){padding:15px;background:linear-gradient(transparent,#10281e);position:absolute;bottom:0;width:100%}.waiting-seats article small{font-size:10px;color:#c1b17c}.waiting-seats h3{font-size:22px;letter-spacing:2px;margin:8px 0}.waiting-seats p{font-size:11px;color:#b0bea9}.seat-index{position:absolute;top:10px;left:12px;font-size:10px;color:#d4cfa5}.remove-seat{position:absolute;top:5px;right:5px;background:#142a22c9;border-radius:4px;padding:5px}.empty-seat{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:14px;color:#587365}.empty-seat>span{position:absolute;top:12px;left:14px;font-size:10px}.empty-seat p{font-family:var(--serif);letter-spacing:4px}.waiting-bottom{display:flex;justify-content:space-between;gap:30px;margin-top:32px}.waiting-bottom h3{font-size:14px;margin-bottom:14px;color:#c6c6a6}.waiting-bottom p{font-size:11px;color:#7c9785;margin-top:15px}.waiting-actions{display:flex;align-items:center;gap:10px}.in-game .topbar{max-width:none;padding:0 25px}.in-game .brand>span:last-child{font-size:20px}.in-game .brand small{display:none}.in-game .brand-seal{font-size:22px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 240px;max-width:1800px;margin:0 auto;min-height:calc(100vh - 65px)}.arena-toolbar{display:flex;justify-content:space-between;align-items:center;padding:14px 25px;border-bottom:1px solid var(--line);min-height:69px}.arena-toolbar>div:first-child{display:flex;flex-direction:column;gap:6px}.arena-toolbar .eyebrow{font-size:9px;letter-spacing:2px}.arena-toolbar b{font-weight:500;font-size:14px}.arena-toolbar b>span{color:#869c89;font-size:11px}.arena-tools{display:flex;align-items:center;gap:12px}.small-button{border:1px solid #82927055;border-radius:3px;padding:8px 12px;font-size:11px;color:#a8b69d}.timer{color:#cfb685;font-family:var(--serif);font-size:23px;min-width:48px;display:flex;align-items:center;gap:5px}.timer small{font-family:sans-serif;font-size:9px;color:#899b83}.battlefield{position:relative;min-height:465px;padding:20px 28px 12px;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 50%,#4c655025,transparent 65%)}.opponents{display:flex;justify-content:space-evenly;align-items:flex-start;gap:14px;position:relative;z-index:2}.player-seat{position:relative;text-align:left;padding:0;flex:0 1 139px;max-width:150px;min-width:0;border:1px solid #b1ab784d;border-radius:5px;background:#11291f;box-shadow:0 8px 20px #0003;overflow:visible}.player-seat>.portrait{width:100%;aspect-ratio:3/3.3;border-radius:4px 4px 0 0;opacity:.9}.player-seat.active{border-color:#d9c183;box-shadow:0 0 0 2px #bfa46522,0 0 22px #bfa46530}.player-seat.targetable{border-color:#6bc7b0;box-shadow:0 0 0 2px #6bc7b020;cursor:crosshair}.player-seat.target-selected{border-color:#f2d78d;transform:translateY(-5px);box-shadow:0 0 20px #c2b16a45}.role-badge{position:absolute;top:8px;right:7px;border-radius:2px;font-size:9px;padding:4px 5px;background:#11231edb;border:1px solid #77906c6b;color:#b9b999}.role-badge.tang{background:#b59657;color:#fff1bd;border-color:#f3d18c}.role-badge.pilgrim{color:#a6dfc1;border-color:#a6dfc16b}.role-badge.demon{color:#eaa38a;border-color:#a564496b}.role-badge.immortal{color:#c0b5e7;border-color:#a491c46b}.seat-content{position:relative;padding:9px 10px 7px;background:linear-gradient(#122a22,#152d23);border-top:1px solid #a99e6b20}.seat-user{display:block;font-size:9px;color:#8da28b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:5px}.seat-content>strong{font-family:var(--serif);font-size:17px;letter-spacing:2px;color:#e5dabc}.hp-row{display:flex;align-items:center;gap:2px;margin-top:9px;color:#4c6553}.hp-row .filled{fill:#bc6d4f;color:#d8976b}.hp-row>span{font-size:8px;margin-left:auto;color:#91a185;white-space:nowrap}.seat-meta{display:flex;justify-content:space-between;font-size:8px;color:#7f967c;margin-top:6px}.equipment{display:flex;gap:3px;margin-top:5px}.equipment span{font-size:8px;color:#b2bd9a;padding:2px 3px;background:#56774e22;border:1px solid #75834d22;border-radius:2px}.equipment .delayed{color:#d9a488;background:#9f593322}.player-seat.dead{filter:grayscale(.7);opacity:.5}.dead-label{position:absolute;top:28%;left:0;right:0;text-align:center;letter-spacing:5px;font-family:var(--serif);font-size:20px;background:#15271dcc;padding:10px}.target-label{position:absolute;bottom:-20px;left:0;right:0;text-align:center;font-size:9px;color:#102820;background:#82c4a6;padding:4px;z-index:4}.target-selected .target-label{background:#e2c58b}.table-center{position:absolute;top:270px;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;width:330px;opacity:.85}.table-inscription{font-family:var(--serif);font-size:45px;color:#a7a07530;letter-spacing:19px;margin-left:19px}.table-center>span{color:#929b7244;font-size:8px;letter-spacing:3px}.played-cards{display:flex;justify-content:center;gap:8px;margin-top:12px;min-height:95px}.pile-count{font-size:9px;color:#8c9875;display:flex;align-items:center;justify-content:center;gap:13px;margin-top:10px}.pile-count i{height:3px;width:3px;background:#b1a068;border-radius:50%}.self-row{margin-top:28px;display:flex;align-items:center;gap:18px;z-index:3;max-width:360px}.player-seat.self{width:96px;flex:0 0 96px;display:flex;max-width:none;min-height:122px}.player-seat.self>.portrait{width:96px;aspect-ratio:3/4;border-radius:4px}.player-seat.self .seat-content{display:none}.self-identity{display:flex;flex-direction:column;gap:7px;max-width:230px}.self-identity>span{font-family:var(--serif);font-size:19px;letter-spacing:2px}.self-identity>span small{font-size:8px;letter-spacing:0;color:#839c86;border:1px solid #89977b33;border-radius:2px;padding:3px 5px;margin-left:10px;font-family:sans-serif}.self-identity p{font-size:10px;color:#a8b59b;line-height:1.7}.self-identity>small{font-size:9px;color:#7b927a}.skill-button{font-size:10px;align-self:flex-start;display:flex;align-items:center;gap:5px;background:#8179441a;border:1px solid #b0a15d4d;border-radius:3px;padding:5px 8px;color:#c5b778}.skill-button.active{border-color:#e0c374;background:#a18f5433}.action-banner{border-top:1px solid #8f966126;border-bottom:1px solid #8f966126;background:#152c2388;min-height:42px;padding:10px 23px;display:flex;align-items:center;justify-content:space-between;gap:10px;color:#9aad94;font-size:11px}.action-banner>div{display:flex;align-items:center;gap:9px}.action-banner.your-turn{color:#dfc58a;background:#7c744c12;border-color:#b3a77640}.turn-indicator{width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.chosen-target{font-size:10px;color:#dbbe83}.hand-area{padding:12px 22px 14px;background:#0c221ccc}.hand-heading{display:flex;gap:15px;align-items:center;margin-bottom:10px}.hand-heading>span{font-size:11px;color:#bcc3a8}.hand-heading b{font-size:10px;font-weight:400;border:1px solid #77826080;border-radius:3px;padding:1px 5px;margin-left:6px}.hand-heading>small{font-size:9px;color:#809078}.hand-scroll{display:flex;align-items:flex-end;gap:9px;overflow-x:auto;padding:12px 3px;min-height:169px;scrollbar-width:thin;scrollbar-color:#60785855 transparent}.playing-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;flex:0 0 101px;width:101px;height:144px;padding:7px 6px 5px;border:2px solid #95866a;border-radius:5px;color:#394942;background:linear-gradient(135deg,#e6ddc2,#cdc4a5);box-shadow:inset 0 0 0 2px #e7e0c080,0 4px 9px #0004;overflow:hidden}.playing-card:after{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:1px solid #6b6d4d35;pointer-events:none;border-radius:2px}.playing-card .pip{position:absolute;top:6px;left:7px;display:flex;flex-direction:column;gap:0;font-family:Georgia,serif;line-height:1.1;font-size:13px}.pip.red{color:#a44732}.pip b{font-size:14px}.playing-card .card-name{font-family:var(--serif);font-weight:700;margin:2px 0 0 13px;white-space:nowrap}.card-art{width:68px;height:68px;margin:4px 0 0}.card-type{font-size:7px;letter-spacing:2px;color:#756e50;background:#6e796617;border:1px solid #6e796630;padding:1px 5px}.playing-card small{font-size:7px;line-height:1.4;padding:3px 2px;color:#77715b;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.playing-card.magic{background:linear-gradient(135deg,#dfd7c0,#b9c6b3);border-color:#6d8c7a}.playing-card.relic{background:linear-gradient(135deg,#e4d6b7,#c6b385);border-color:#a68b52}.playing-card.selected{border-color:#f0d585;transform:translateY(-10px);box-shadow:0 0 0 1px #f0d585,0 0 18px #cbbc5144}.playing-card:not(:disabled):hover{transform:translateY(-6px)}.playing-card:disabled{opacity:.66}.playing-card.miniature{width:58px;height:82px;flex-basis:58px;border-width:1px;opacity:.85}.miniature .card-name{font-size:8px;margin-left:8px}.miniature .pip,.miniature .pip b{font-size:8px;left:4px;top:4px}.miniature .card-art{width:38px;height:38px;margin-top:3px}.miniature small{display:none}.miniature .card-type{font-size:5px;letter-spacing:1px}.command-bar{display:flex;gap:8px;align-items:center;border-top:1px solid #83977022;padding-top:12px;min-height:53px}.command-bar .primary,.command-bar .secondary,.command-bar .danger-button{font-size:11px;padding:8px 15px;min-height:35px}.card-explanation{display:flex;gap:9px;align-items:center;flex:1;min-width:0}.card-explanation b{color:#c5b983;font-size:11px;white-space:nowrap}.card-explanation span{color:#82967c;font-size:9px;line-height:1.65;max-width:270px}.transform{font-size:10px;color:#dbbc85;display:flex;align-items:center;gap:5px;white-space:nowrap}.transform input{width:auto;accent-color:#cbb782}.empty-hand{font-size:12px;color:#6d856e;width:100%;text-align:center;align-self:center}.battle-sidebar{border-left:1px solid #b9b48c28;background:#0d211de0;display:flex;flex-direction:column;max-height:calc(100vh - 65px);min-height:660px;position:sticky;top:0}.side-title{display:flex;gap:9px;align-items:center;padding:24px 20px;border-bottom:1px solid var(--line);color:#c4b68b}.side-title b{font-family:var(--serif);font-weight:400;font-size:14px;letter-spacing:2px}.side-title span{margin-left:auto;font-size:8px;color:#768c77;border:1px solid #7d927b40;border-radius:3px;padding:2px 4px}.battle-log{overflow-y:auto;flex:1;padding:0 16px;scrollbar-width:thin;scrollbar-color:#60785855 transparent}.battle-log p{font-size:10px;color:#829883;line-height:1.9;padding:14px 0;border-bottom:1px solid #778a641c;display:flex;align-items:baseline;gap:8px}.battle-log p>span{color:#677d64;font-size:8px;font-family:monospace}.battle-log .latest{color:#ccba83}.sidebar-help{margin:18px 15px;padding:13px;background:#6279450c;border:1px solid #7c966028;display:flex;gap:9px;color:#8c9e78;border-radius:4px}.sidebar-help b{font-size:11px;color:#b9b387}.sidebar-help p{font-size:9px;line-height:1.9;margin:6px 0}.sidebar-help .text-button{font-size:9px;padding:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:#061510cb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal{border:1px solid #b9aa736b;background:linear-gradient(130deg,#273d30,#122b23);border-radius:5px;box-shadow:0 30px 100px #0008}.codex{max-width:980px;width:100%;max-height:88vh;display:flex;flex-direction:column;overflow:hidden}.codex>header{display:flex;justify-content:space-between;align-items:center;padding:25px 30px}.codex h2{font-size:28px;letter-spacing:5px;font-weight:500;margin-top:7px}.tabs{display:flex;gap:25px;padding:0 30px;border-bottom:1px solid var(--line)}.tabs button{padding:12px 3px;font-size:12px;color:#8fa38e;border-bottom:2px solid transparent}.tabs button.active{color:#d2bb7f;border-color:#c3ac76}.codex-body{padding:25px 30px;overflow:auto}.rule-intro h3{font-size:23px;letter-spacing:3px;font-weight:400;margin-bottom:12px}.codex-body p{font-size:12px;color:#9eaf99;line-height:1.9}.role-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px 0}.role-grid article{border:1px solid #87976d40;padding:16px 12px;border-radius:4px;background:#12271d44}.role-grid span{font-size:19px;font-family:var(--serif);letter-spacing:2px}.role-grid p{font-size:11px;margin-top:8px}.rule-steps{padding-left:19px;display:flex;flex-direction:column;gap:20px;font-size:12px;color:#9cac95;line-height:1.9}.rule-steps b{display:block;color:#d0c195;font-weight:500;font-size:13px}.source-note{padding:17px 20px;margin-top:25px;border:1px solid #7e8e6040;border-radius:4px}.source-note>b{font-size:12px;color:#c2b47e}.source-note p{font-size:11px;margin-top:8px}.card-catalog{display:grid;grid-template-columns:repeat(5,1fr);gap:25px 15px}.card-catalog article{display:flex;align-items:center;flex-direction:column;gap:12px}.card-catalog p{font-size:10px}.hero-catalog{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.hero-catalog article{display:flex;gap:15px;border:1px solid #88926830;padding:12px;background:#10291f40}.hero-catalog .portrait{width:105px;align-self:flex-start;border-radius:3px}.hero-catalog small{font-size:9px;color:#a1ab8a}.hero-catalog h3{font-size:20px;margin:7px 0 10px}.hero-catalog b{font-size:11px;color:#b7a96f}.hero-catalog p{font-size:10px;margin-top:7px}.confirm-modal{padding:30px;max-width:430px}.confirm-modal h2{font-size:25px;font-weight:400;letter-spacing:3px}.confirm-modal p{font-size:12px;color:#aab39a;line-height:2;margin:20px 0}.confirm-modal>div{display:flex;gap:12px;justify-content:flex-end}.result-modal{width:min(940px,100%);max-height:90vh;overflow:auto;padding:32px;text-align:center}.result-seal{display:block;margin:0 auto 15px;border:1px solid #d6b270;font-family:var(--serif);font-size:27px;line-height:48px;width:48px;height:48px;color:#e3c185;background:#9d79311a;transform:rotate(-5deg)}.result-modal h1{font-size:43px;font-weight:500;color:#dbc493;letter-spacing:9px;margin:15px 0}.result-modal>p{font-size:12px;color:#a5b199;line-height:1.8}.result-roles{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;margin:28px 0}.result-roles>div{display:flex;flex-direction:column;gap:7px;align-items:center;width:82px}.result-roles .portrait{width:75px;border-radius:3px;border:1px solid #aa9c6355}.result-roles span{font-size:9px;color:#b2bda3;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.result-roles b{font-size:13px;font-family:var(--serif);font-weight:500}.result-roles small{font-size:8px;color:#8ca082}.result-actions{display:flex;align-items:center;gap:15px;justify-content:center}.result-actions>span{font-size:12px;color:#adb494}@media(min-width:1500px){.lobby{padding-top:65px}.hero-display{height:450px}.hero-display .portrait{width:335px}.lobby-intro{min-height:730px}.game-layout{grid-template-columns:minmax(0,1fr) 270px}.battlefield{min-height:calc(100vh - 385px)}.player-seat{flex-basis:155px;max-width:155px}.table-center{top:300px}.self-row{margin-top:48px}}@media(max-width:1200px){.lobby{gap:6%;padding:35px 4%}.lobby-panel{padding:25px 24px}.lobby-intro h1{font-size:47px}.intro-features{gap:12px}.hero-display{left:90px}.hero-display-caption{left:-70px}.game-layout{grid-template-columns:minmax(0,1fr) 205px}.battlefield{padding:20px 20px 12px}.opponents{gap:10px}.player-seat{flex-basis:122px}.table-center{top:255px;left:66%}.command-bar .secondary,.command-bar .primary,.command-bar .danger-button{padding:8px 11px}.card-explanation span{display:none}.count-7 .opponents,.count-8 .opponents{display:grid;grid-template-columns:repeat(4,minmax(0,120px));justify-content:center;row-gap:20px}.count-7 .table-center,.count-8 .table-center{top:auto;bottom:27px;left:70%}.count-7 .self-row,.count-8 .self-row{margin-top:25px}.count-7 .player-seat>.portrait,.count-8 .player-seat>.portrait{aspect-ratio:3/2.4;background-size:400% 330%;background-position:var(--art-x) calc(var(--art-y) * .72)}}@media(max-width:960px){.topbar{height:75px;padding:0 25px}.topbar nav{gap:20px}.topbar nav button{font-size:11px}.connection{font-size:9px}.lobby-intro{min-height:600px}.lobby-intro h1{font-size:37px;letter-spacing:5px}.lobby{grid-template-columns:.8fr 1fr;gap:35px;padding:30px}.lobby-panel{padding:24px 22px}.intro-features{flex-wrap:wrap;gap:10px}.hero-display{left:50px;right:-15px;height:330px}.hero-display .portrait{width:240px;max-width:100%}.hero-halo{width:240px;height:240px}.vertical-verse{display:none}.hero-display-caption{left:-40px;bottom:30px}.hero-display-caption strong{font-size:23px}.edition{letter-spacing:1px;font-size:9px}.hero-picker{gap:7px}.mode-tabs{gap:20px}.mode-tabs small{display:none}.game-layout{display:block}.battle-sidebar{display:none}.battlefield{min-height:460px}.table-center{left:65%;top:260px}.player-seat{flex-basis:140px}.waiting{padding-top:40px}.waiting-title h1{font-size:26px}.waiting-seats{gap:12px}.waiting-seats article{min-height:220px}.waiting-bottom{flex-direction:column}.waiting-actions{justify-content:flex-end}}@media(max-width:700px){.topbar{height:68px;padding:0 18px;gap:10px}.brand>span:last-child{font-size:20px}.brand-seal{font-size:23px}.brand small{font-size:8px;letter-spacing:3px}.topbar nav{margin-left:auto;gap:10px}.topbar nav button:not(:last-child){display:none}.topbar nav button{font-size:10px}.top-right{gap:8px}.connection{font-size:0}.connection i{width:6px;height:6px}.lobby{display:flex;flex-direction:column;padding:25px 18px;gap:20px}.lobby-intro{min-height:240px;padding-top:6px}.edition{font-size:8px;letter-spacing:1px;margin-bottom:12px}.lobby-intro h1{font-size:32px;line-height:1.55;letter-spacing:5px}.lobby-intro>p{font-size:10px;margin-top:12px;line-height:1.85}.intro-features{margin-top:17px;gap:15px}.intro-features span{font-size:9px}.intro-features svg{width:13px;height:13px}.hero-display{height:230px;width:190px;left:auto;right:0;bottom:5px;z-index:0;opacity:.8}.hero-display .portrait{width:180px}.hero-halo{width:180px;height:180px;top:20px;left:10px}.hero-display-caption,.intro-footer{display:none}.lobby-panel{width:100%;padding:25px}.panel-heading h2{font-size:24px}.hero-picker .portrait{aspect-ratio:1/1}.panel-note{font-size:9px}.site-footer{font-size:8px;padding:17px 0;gap:8px;margin-top:0}.site-footer>span:nth-child(2){display:none}.site-footer button{font-size:8px}.waiting{padding:30px 18px}.waiting-title h1{font-size:23px;letter-spacing:2px;line-height:1.6}.waiting-title p{font-size:10px;line-height:2}.waiting-title b{font-size:16px}.waiting-title .text-button{font-size:10px;margin-left:0}.waiting-seats{grid-template-columns:repeat(2,1fr);gap:12px;margin-top:25px}.waiting-seats article{min-height:200px}.waiting-seats .portrait{aspect-ratio:3/3}.waiting-seats h3{font-size:20px}.waiting-bottom{margin-top:25px}.waiting-actions>*{flex:1}.in-game .topbar{height:56px;padding:0 12px}.in-game .brand>span:last-child{font-size:17px;letter-spacing:2px}.in-game .brand-seal{font-size:18px}.in-game .topbar nav{margin-left:auto}.in-game .connection{display:none}.arena-toolbar{padding:11px 14px;min-height:65px}.arena-toolbar b{font-size:12px}.arena-tools{gap:8px}.timer{font-size:20px;min-width:40px}.arena-tools .icon-button{width:29px;height:29px}.small-button{padding:7px 9px;font-size:10px}.battlefield{padding:16px 12px 15px;min-height:408px}.opponents{gap:8px;justify-content:space-around;align-items:start}.player-seat{flex-basis:calc(33.33% - 8px);max-width:118px}.player-seat>.portrait{aspect-ratio:3/3.1}.seat-content{padding:7px}.seat-content>strong{font-size:14px;letter-spacing:1px}.seat-user{font-size:8px}.hp-row{gap:1px;margin-top:6px}.hp-row svg{width:9px;height:9px}.hp-row>span{font-size:7px}.seat-meta{font-size:7px}.role-badge{font-size:8px;right:4px;top:4px;padding:3px}.table-center{top:225px;left:72%;width:160px}.table-inscription{font-size:23px;letter-spacing:10px;margin-left:10px}.table-center>span{font-size:5px;letter-spacing:1px}.played-cards{gap:4px;margin-top:9px;min-height:65px}.played-cards .miniature{width:42px;height:64px;flex-basis:42px;padding:3px}.miniature .card-name{font-size:7px}.miniature .pip,.miniature .pip b{font-size:6px}.miniature .card-art{width:30px;height:30px;margin:0}.miniature .card-type{font-size:4px}.pile-count{font-size:8px;gap:7px;margin-top:7px}.self-row{gap:10px;max-width:58%;margin-top:30px;align-items:flex-start}.player-seat.self{flex-basis:65px;width:65px;min-height:0}.player-seat.self>.portrait{width:65px;aspect-ratio:3/4}.self-identity{gap:5px;min-width:0}.self-identity>span{font-size:15px;letter-spacing:1px}.self-identity>span small{display:none}.self-identity p{font-size:8px;line-height:1.7}.self-identity>small{display:none}.skill-button{font-size:8px;gap:3px;padding:4px;line-height:1.5}.skill-button svg{width:11px;height:11px}.count-5 .opponents,.count-6 .opponents,.count-7 .opponents,.count-8 .opponents{display:grid;grid-template-columns:repeat(3,minmax(0,105px));gap:16px 10px;justify-content:space-evenly}.count-5 .player-seat>.portrait,.count-6 .player-seat>.portrait,.count-7 .player-seat>.portrait,.count-8 .player-seat>.portrait{aspect-ratio:3/2.5;background-size:400% 320%;background-position:var(--art-x) calc(var(--art-y) * .73)}.count-5 .table-center,.count-6 .table-center,.count-7 .table-center,.count-8 .table-center{top:auto;bottom:20px;left:76%;width:145px}.count-5 .self-row,.count-6 .self-row,.count-7 .self-row,.count-8 .self-row{margin-top:25px}.action-banner{font-size:10px;padding:10px 13px;line-height:1.7;min-height:46px}.chosen-target{font-size:8px}.hand-area{padding:12px 10px}.hand-scroll{gap:7px;padding-top:12px;min-height:164px}.playing-card{width:93px;flex-basis:93px;height:135px}.playing-card .card-name{font-size:13px}.playing-card .card-art{width:64px;height:64px}.command-bar{flex-wrap:wrap;gap:7px;padding-top:9px}.card-explanation{flex-basis:100%;min-height:25px}.card-explanation span{display:block;font-size:9px;max-width:none}.command-bar .primary,.command-bar .secondary,.command-bar .danger-button{padding:8px 13px;flex:1;font-size:10px}.transform{font-size:9px;flex-shrink:0}.modal-backdrop{padding:12px}.codex{max-height:94vh}.codex>header{padding:20px}.codex h2{font-size:25px}.tabs{padding:0 20px;gap:25px}.codex-body{padding:20px}.role-grid{grid-template-columns:repeat(2,1fr)}.rule-intro h3{font-size:20px}.codex-body p,.rule-steps{font-size:11px}.card-catalog{grid-template-columns:repeat(3,1fr);gap:22px 12px}.card-catalog p{font-size:9px}.hero-catalog{grid-template-columns:1fr}.hero-catalog .portrait{width:95px}.result-modal{padding:24px 16px}.result-modal h1{font-size:32px;letter-spacing:6px}.result-roles{gap:15px 10px}.result-roles>div{width:67px}.result-roles .portrait{width:63px}.result-modal>p{font-size:11px}.toast{top:76px;font-size:11px}.confirm-modal{padding:24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}.hero-display .portrait{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 13%,#000 76%,transparent),linear-gradient(to right,transparent,#000 17%,#000 83%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 13%,#000 76%,transparent),linear-gradient(to right,transparent,#000 17%,#000 83%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}.self-vitals{display:flex;align-items:center;gap:12px;color:#d5ccb0;font-size:12px}.self-vitals b{font-family:var(--serif);font-weight:500;letter-spacing:2px}.self-vitals>span{display:flex;align-items:center;gap:4px;color:#c98c6d;font-size:10px}.self-vitals svg{fill:#bd7555}.self-equipment:empty{display:none}.self-equipment{margin:0}.inspect-modal{position:relative;display:flex;gap:24px;max-width:570px;padding:25px;align-items:flex-start}.inspect-modal>.portrait{width:170px;border-radius:4px}.inspect-modal h2{font-size:28px;margin:10px 0}.inspect-modal p{font-size:12px;line-height:1.9;color:#b2bfa5}.inspect-modal h3{font-size:13px;color:#cbb887;margin:18px 0 8px}.inspect-close{position:absolute;right:8px;top:8px}.inspect-modal .eyebrow{font-size:9px}.grain{opacity:.05}@media(max-width:700px){.self-vitals{gap:5px;font-size:10px}.self-vitals b{font-size:9px;letter-spacing:0}.self-vitals>span{font-size:9px}.self-vitals svg{width:9px}.inspect-modal{padding:22px 16px;gap:15px}.inspect-modal>.portrait{width:105px}.inspect-modal h2{font-size:23px}.inspect-modal p{font-size:11px}.self-identity>span{font-size:13px}.self-row{margin-top:25px}.self-equipment span{font-size:7px}}.battle-effects{position:fixed;top:0;right:0;bottom:0;left:0;z-index:45;pointer-events:none;overflow:hidden}.attack-trace{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 8px #ed9d42)}.attack-trace>path{fill:none;stroke-width:5;stroke-dasharray:1500}.attack-trace circle{fill:none;stroke:#ffe59b;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:impact-ring .8s ease-out both}.effect-callout{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:8px;animation:callout-in .25s ease-out both;text-shadow:0 2px 12px #000,0 0 24px #000}.effect-callout>strong{font:900 clamp(24px,4vw,54px) "Songti SC",serif;color:#ffe3a3;white-space:nowrap}.effect-callout>small{color:#fff0cf;background:#18100ddc;padding:6px 16px;border:1px solid #9b7438;border-radius:30px}.effect-card{position:relative;padding:20px;background:linear-gradient(135deg,#fff0ce,#d4b27b);border:4px double #77562b;border-radius:10px;color:#543520;box-shadow:0 0 70px #dfa34788,0 20px 60px #000b;text-shadow:none;animation:card-reveal .5s cubic-bezier(.16,1,.3,1);text-align:center}.effect-card>span{position:absolute;left:8px;top:8px;font-size:14px}.effect-card>b{display:block;font:900 35px Songti SC,serif;margin:22px 0}.effect-card>i{display:block;font-size:22px;letter-spacing:6px;color:#a64732;border-block:1px solid #976a3c;padding:10px 0}.floating-impact{position:absolute;transform:translate(-50%,-50%);font:700 84px Georgia;color:#ff6551;text-shadow:0 3px 0 #5a100e,0 0 22px #ff4f28;animation:damage-float .85s both}.fx-heal .floating-impact{color:#a2ffd1;text-shadow:0 0 25px #43d4a3}.fx-damage{box-shadow:inset 0 0 130px #ac271b77;animation:damage-screen .8s both}.fx-heal .effect-callout>strong{color:#9eebc2}[data-impact=damage]{animation:seat-hit .55s both!important;box-shadow:0 0 38px #ec573c!important}[data-impact=heal]{box-shadow:0 0 45px #76e9ba!important}[data-impact=respond]{box-shadow:0 0 35px #93c9ee!important}.seal-portrait{background:radial-gradient(ellipse at 40% 30%,#9e8151,#453629 55%,#1d2528)!important;display:grid;place-items:center}.seal-portrait>span{writing-mode:vertical-rl;color:#ffe2a8;font:700 clamp(18px,2vw,38px) "Songti SC",serif;letter-spacing:5px;border:1px solid #cdb07888;padding:12px 7px;text-shadow:2px 3px 2px #35200e}.hero-picker{max-height:252px;overflow:auto}.hero-picker .seal-portrait>span{font-size:17px;padding:4px;letter-spacing:2px}.hero-display .seal-portrait>span{font-size:60px}.response-choices{display:flex;flex-wrap:wrap;gap:8px;padding:10px}.weapon-choice{padding:0 12px;color:#cdb98e;font-size:12px}.weapon-choice select{padding:4px;max-width:170px}.skill-actions{display:flex;gap:5px;flex-wrap:wrap}.skill-actions .skill-button{font-size:11px;margin:3px 0}.discard-caption{opacity:.55;font-size:10px}.count-9 .opponents,.count-10 .opponents,.count-11 .opponents,.count-12 .opponents{grid-template-columns:repeat(6,minmax(0,1fr))}.count-9 .player-seat,.count-10 .player-seat,.count-11 .player-seat,.count-12 .player-seat{min-width:0}.self-identity>small{line-height:1.5}.equipment{flex-wrap:wrap}@keyframes trace-in{0%{stroke-dashoffset:1500;opacity:0}to{stroke-dashoffset:0;opacity:1}}@keyframes impact-ring{0%{transform:scale(.2);opacity:1}to{transform:scale(1.5);opacity:0}}@keyframes callout-in{0%{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes card-reveal{0%{opacity:0;transform:perspective(600px) rotateY(80deg) scale(.65)}to{opacity:1;transform:perspective(600px) rotateY(0) scale(1)}}@keyframes damage-float{0%{opacity:0;translate:0 20px;scale:1.5}25%{opacity:1;scale:1}to{opacity:0;translate:0 -70px}}@keyframes seat-hit{0%,to{translate:0}20%,60%{translate:-7px 0}40%,80%{translate:7px 0}}@keyframes damage-screen{0%,to{opacity:0}20%,60%{opacity:1}}@media(prefers-reduced-motion:reduce){.battle-effects *,[data-impact]{animation:none!important}.attack-trace{display:none}.effect-card{box-shadow:0 4px 15px #000}.fx-damage{animation:none;box-shadow:none}}@media(max-width:700px){.effect-card{width:135px;min-height:170px;padding:12px}.effect-card>b{font-size:26px}.effect-callout{top:38%}.floating-impact{font-size:55px}.hero-picker{max-height:210px}.count-9 .opponents,.count-10 .opponents,.count-11 .opponents,.count-12 .opponents{grid-template-columns:repeat(3,minmax(0,1fr))}}.playing-card .card-name{font-size:17px;letter-spacing:0;max-width:100%;margin-left:12px}.playing-card.miniature .card-name{font-size:7px;margin-left:6px;white-space:normal;line-height:1.1}.effect-card>b{overflow-wrap:anywhere}.effect-card>p{margin-bottom:0}.skill-actions:empty{display:none}.count-9 .opponents,.count-10 .opponents,.count-11 .opponents,.count-12 .opponents{display:grid;gap:18px 10px;justify-content:center}.count-9 .table-center,.count-10 .table-center,.count-11 .table-center,.count-12 .table-center{top:auto;bottom:28px;left:75%}.count-9 .self-row,.count-10 .self-row,.count-11 .self-row,.count-12 .self-row{margin-top:28px}.player-seat .seal-portrait>span{font-size:22px;padding:6px;letter-spacing:2px}@media(max-width:700px){.count-9 .opponents,.count-10 .opponents,.count-11 .opponents,.count-12 .opponents{grid-template-columns:repeat(3,minmax(0,105px))}.player-seat .seal-portrait>span{font-size:17px;letter-spacing:1px;padding:5px}.count-9 .table-center,.count-10 .table-center,.count-11 .table-center,.count-12 .table-center{left:78%}}.draft-intro{display:flex;gap:14px;padding:24px 18px;margin:22px 0;border:1px solid #c5ac6a55;background:#ab985713;color:#d7c18a}.draft-intro p{font-size:13px;line-height:1.8;color:#a2b4a7;margin:8px 0}.unknown-portrait{width:120px;min-height:150px;display:grid;place-items:center;background:linear-gradient(135deg,#35443b,#182e29);font:26px var(--serif);color:#bcab80}.draft-screen{max-width:1120px;margin:50px auto;padding:0 24px 50px;text-align:center}.draft-screen h1{font:40px var(--serif);color:#e6d4a6;margin:15px 0}.draft-screen header p,.draft-note{font-size:13px;color:#9aafa0}.draft-progress{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:24px 0 32px}.draft-progress span{padding:8px 12px;border:1px solid #5a7463;color:#9eaf9e;font-size:12px}.draft-progress .active{border-color:#d2b473;color:#e6cb8e}.draft-candidates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;text-align:left}.draft-candidate{padding:0;border:1px solid #65785d;background:#172d27;color:#d9d1b5;text-align:left;overflow:hidden;border-radius:6px;transition:transform .2s,border-color .2s}.draft-candidate.selected{border:2px solid #f1d68d;box-shadow:0 0 25px #d9b75c45;transform:translateY(-8px)}.draft-candidate .portrait{width:100%;aspect-ratio:1/1}.draft-candidate>div:last-child{padding:20px;min-height:180px}.draft-candidate h2{font:28px var(--serif);margin:10px 0}.draft-candidate small{color:#a4b4a3}.draft-candidate b{color:#cbb478;font-size:14px}.draft-candidate p{font-size:13px;line-height:1.8;color:#adbcae}.draft-confirm{margin:30px auto 15px;min-width:260px;justify-content:center}.draft-wait{padding:80px;color:#afbb9f}.draft-wait p{margin:20px}@media(max-width:700px){.draft-screen{margin:28px auto;padding:0 14px 30px}.draft-screen h1{font-size:27px}.draft-candidates{grid-template-columns:1fr;gap:16px}.draft-candidate{display:grid;grid-template-columns:115px 1fr}.draft-candidate .portrait{height:100%;aspect-ratio:auto;background-size:400% 200%}.draft-candidate>div:last-child{padding:12px;min-height:160px}.draft-candidate h2{font-size:23px;margin:6px 0}.draft-candidate p{font-size:12px;margin:6px 0}.draft-candidate small{font-size:10px}.draft-candidate.selected{transform:translate(2px)}.draft-progress{gap:5px;margin:18px 0}.draft-progress span{font-size:10px;padding:5px}}@media(max-width:700px){.draft-candidate .portrait{height:auto;aspect-ratio:1;align-self:start}.draft-candidate{align-items:start}.draft-candidate.selected{transform:none}}.in-game{height:100dvh;min-height:0;display:flex;flex-direction:column;overflow:hidden}.in-game .topbar{height:48px;flex:0 0 48px;width:100%;background:#201b16dc;border-color:#bc94564d}.in-game .landscape{background-image:radial-gradient(ellipse at center,#746044b8,#271f18ee)!important}.in-game .game-layout{flex:1;min-height:0;min-width:0;width:100%;max-width:none;display:grid;grid-template-columns:minmax(0,1fr) 210px;margin:0}.arena-shell{min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.arena-shell>.game-toolbar{flex-shrink:0}.in-game .battlefield{flex:1;min-height:0;padding:12px 18px;overflow:auto;isolation:isolate;background:radial-gradient(circle at 50% 55%,#bb985f24 0 20%,transparent 20.5% 28%,#c5a16b25 28.5% 29%,transparent 29.5% 40%,#c5a16b25 40.5% 41%,transparent 41.5%),repeating-conic-gradient(from 15deg at 50% 55%,#b1976820 0deg 1deg,transparent 1deg 30deg)}.in-game .opponents{display:grid;grid-template-columns:repeat(3,minmax(0,140px));justify-content:space-around;gap:12px}.in-game .player-seat{width:100%;max-width:140px;border:3px double #b79763;border-radius:5px;background:linear-gradient(#302838,#272017);box-shadow:0 5px 15px #0007}.in-game .player-seat>.portrait{height:clamp(65px,13vh,145px);aspect-ratio:auto}.in-game .seat-content{padding:6px 8px}.in-game .player-seat.active{border-color:#ffd57d;box-shadow:0 0 20px #f3b74977}.in-game .player-seat.targetable{border-color:#96dcc1}.in-game .player-seat.target-selected{border-color:#ffcf66;box-shadow:0 0 22px #ffc55799}.in-game .self-row{position:relative;margin:16px 0 0;max-width:34%;gap:10px;align-items:flex-end}.in-game .player-seat.self{width:70px;flex:0 0 70px;min-height:0}.in-game .player-seat.self>.portrait{width:100%;height:94px}.in-game .self-identity>small,.in-game .self-identity>p{display:none}.in-game .self-identity{gap:5px}.in-game .skill-actions{display:flex;flex-wrap:wrap;gap:5px}.in-game .table-center{top:auto!important;width:260px;opacity:1}.in-game .table-inscription{font-size:28px;color:#d6b57866}.in-game .table-center>span{display:none}.in-game .discard-caption{color:#e0c898}.in-game .played-cards .playing-card{width:70px;height:99px;flex-basis:70px;opacity:1}.in-game .battle-sidebar{position:static;min-height:0;max-height:none;background:#241d17e8;border-color:#b99b6655}.in-game .battle-log{min-height:0}.in-game .sidebar-help{display:none}.in-game .action-banner{flex-shrink:0;min-height:30px;padding:7px 16px;background:#352918;border-color:#d6ae5d77;color:#ead5a7}.in-game .hand-area{flex:0 0 auto;display:flex;flex-direction:column;position:relative;padding:0 14px 8px;background:linear-gradient(#40301f,#211c17);border-top:3px double #cca66a;box-shadow:0 -8px 25px #0005;overflow:hidden}.in-game .command-bar{order:-2;flex:0 0 auto;justify-content:center;min-height:48px;border:0;border-bottom:1px solid #bca16a55;padding:6px 0;flex-wrap:wrap}.in-game .command-bar .primary,.in-game .command-bar .secondary,.in-game .command-bar .danger-button{min-width:95px;min-height:35px;border:2px ridge #cfa969;border-radius:5px;background:linear-gradient(#c9a769,#72532d);color:#fff2cd;text-shadow:0 1px 2px #281807;font-size:12px}.in-game .command-bar .primary:not(:disabled){box-shadow:0 0 15px #e8b34344;background:linear-gradient(#efcd85,#a97933)}.in-game .card-explanation{max-width:330px}.in-game .card-explanation span{color:#c4b391}.in-game .hand-heading{margin:7px 0 0;flex-shrink:0}.in-game .hand-scroll{min-height:0;flex:0 1 auto;padding:10px 3px 4px;gap:8px;overflow:auto}.in-game .hand-scroll .playing-card{width:96px;flex-basis:96px;height:132px;border:3px double #bb995d;background:linear-gradient(140deg,#f2e9d1,#cbb990)}.in-game .response-choices{max-height:74px;overflow:auto;flex-shrink:0;padding:4px 0}.in-game .response-choices:empty,.in-game .weapon-choice:empty{display:none}.in-game .weapon-choice{flex-shrink:0;padding:3px 0}.in-game .weapon-choice select{height:27px}.effect-callout{top:42%;left:48%}.effect-callout>strong{font-size:clamp(22px,3vw,38px)}.effect-card{width:190px;min-height:230px}.effect-card>p{font-size:13px;line-height:1.7}.attack-trace>path{animation:trace-in .55s ease-out both;opacity:.8}.in-game .count-2 .opponents{grid-template-columns:140px}.in-game :is(.count-5,.count-6,.count-7,.count-8,.count-9,.count-10,.count-11,.count-12) .opponents{grid-template-columns:repeat(6,minmax(0,115px));gap:8px}.in-game :is(.count-9,.count-10,.count-11,.count-12) .player-seat>.portrait{height:65px}@media(max-width:1100px){.in-game .game-layout{grid-template-columns:minmax(0,1fr)}.in-game .battle-sidebar{display:none}}@media(max-height:760px){.in-game .hand-scroll .playing-card{height:112px;width:82px;flex-basis:82px}.in-game .hand-scroll .card-art{height:43px;width:43px}.in-game .hand-scroll .playing-card small{font-size:7px}.in-game .player-seat>.portrait{height:75px}.in-game .seat-content{padding:4px 6px}.in-game .self-row{margin-top:8px}.in-game .player-seat.self>.portrait{height:72px}.in-game .table-inscription{display:none}.in-game .hand-area{max-height:48dvh}.in-game .table-center .playing-card{height:78px;width:56px;flex-basis:56px}}@media(max-width:700px){.in-game .topbar{height:40px;flex-basis:40px}.in-game .opponents{grid-template-columns:repeat(3,minmax(0,100px));gap:7px}.in-game :is(.count-5,.count-6,.count-7,.count-8,.count-9,.count-10,.count-11,.count-12) .opponents{grid-template-columns:repeat(3,minmax(0,100px))}.in-game .self-row{max-width:46%}.in-game .table-center{left:74%!important;width:150px}.in-game .card-explanation{display:none}.in-game .command-bar{gap:6px;flex-wrap:wrap}.in-game .command-bar>button{flex:1;min-width:70px!important}.in-game .hand-area{padding-inline:8px}.in-game .hand-scroll .playing-card{height:117px;width:84px;flex-basis:84px}.in-game .hand-scroll .card-art{height:48px;width:48px}.in-game .battlefield{padding:8px}.effect-card{width:155px;min-height:185px;padding:12px}.effect-callout{top:38%;left:50%}.effect-card>p{font-size:11px}}@media(max-width:700px){.in-game .table-center .playing-card{width:44px;height:66px;flex:0 0 44px;padding:3px}.in-game .played-cards{gap:4px}.in-game .table-center .card-art{width:28px;height:28px}.in-game .battlefield{overflow-x:hidden}}.in-game .player-dock{display:grid;grid-template-columns:minmax(170px,23%) minmax(0,1fr) minmax(190px,23%);gap:12px;min-height:0;overflow:hidden}.in-game .hand-area{max-height:52dvh}.in-game .hand-dock{min-width:0;min-height:0;display:flex;flex-direction:column}.in-game .hand-dock .hand-scroll{flex:1;align-items:flex-end}.in-game .equipment-dock{min-width:0;min-height:0;display:flex;flex-direction:column;border:1px solid #b59556;background:linear-gradient(140deg,#604c2b88,#2f291c);margin-top:6px}.equipment-dock>header{text-align:center;background:linear-gradient(#e8b664,#a57129);color:#fff1d1;font-family:var(--serif);font-weight:700;letter-spacing:5px;padding:4px;border-bottom:2px solid #f0ce88;font-size:12px}.equipment-slots{display:grid;gap:3px;flex:1;min-height:0;overflow:auto;padding:4px}.equipment-slot{text-align:center;min-width:0;border-right:1px solid #b99c6033}.equipment-slot:last-child{border:0}.equipment-slot h3{font-size:12px;color:#d1b980;font-weight:500;margin:3px 0}.empty-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:80%;min-height:55px;color:#ac966877}.empty-slot small{font-size:9px;line-height:1.4;color:#b7a17d}.slot-mark{font-family:var(--serif);font-size:27px}.equipped-item{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;border:1px solid #bd9458;padding:3px;background:linear-gradient(#ecdcaf,#aa905c);color:#48341f;border-radius:3px;margin-bottom:4px}.equipped-item .card-art{width:38px;height:38px;margin:0}.equipped-item b{font-family:var(--serif);font-size:10px;overflow-wrap:anywhere}.equipped-item small{font-size:8px}.in-game .player-dock .self-row{margin:6px 0 0;max-width:none;min-width:0;display:grid;grid-template-columns:82px minmax(0,1fr);align-items:stretch;gap:8px;padding:4px;border:2px ridge #b49a60;background:radial-gradient(circle at 75% 50%,#453356,#282032 80%);overflow:auto}.in-game .player-dock .player-seat.self{width:82px;min-width:0;min-height:110px;align-self:stretch}.in-game .player-dock .player-seat.self>.portrait{height:100%;min-height:105px;aspect-ratio:auto}.in-game .player-dock .self-identity{justify-content:center;gap:5px;min-width:0}.in-game .player-dock .self-vitals{display:flex;flex-direction:column;align-items:flex-start;gap:3px;color:#efd49d;font-size:12px}.vital-count{font-size:11px;color:#cbb999}.self-hearts{display:flex;gap:3px;flex-wrap:wrap}.self-hearts .filled{fill:#c66754;stroke:#ffe0aa;filter:drop-shadow(0 0 3px #de8f51)}.self-hearts .empty{fill:#201a27;stroke:#8c7580;opacity:.65}.in-game .player-dock .skill-actions{gap:3px;max-height:58px;overflow:auto}.in-game .player-dock .skill-button{font-size:9px;padding:3px 5px;border-color:#ad8647;background:linear-gradient(#826032,#48321d);color:#f4d79d;white-space:normal;text-align:left}.in-game .player-dock .self-equipment{font-size:9px}.in-game .table-center{left:50%!important;bottom:20px!important}@media(min-width:1500px){.in-game .player-dock{grid-template-columns:260px minmax(0,1fr) 260px}.in-game .player-dock .self-row{grid-template-columns:96px minmax(0,1fr)}.in-game .player-dock .player-seat.self{width:96px}.equipment-slot h3{font-size:16px}}@media(max-width:700px){.in-game .player-dock{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:5px}.in-game .hand-dock{grid-column:1/-1;grid-row:2}.in-game .hand-area{max-height:58dvh}.in-game .equipment-dock{height:100px}.in-game .player-dock .self-row{height:100px;grid-column:2;grid-row:1;grid-template-columns:57px minmax(0,1fr);padding:2px;gap:5px}.in-game .player-dock .player-seat.self{width:57px;min-height:0}.in-game .player-dock .player-seat.self>.portrait{min-height:0;height:90px}.self-hearts{gap:2px}.self-hearts svg{width:15px;height:15px}.in-game .player-dock .self-vitals{flex-direction:row;flex-wrap:wrap;gap:4px;font-size:10px}.in-game .player-dock .self-identity{gap:3px}.in-game .player-dock .self-identity>span{font-size:10px}.in-game .player-dock .skill-actions{max-height:30px}.equipment-dock>header{font-size:10px;padding:2px}.equipment-slot h3{font-size:10px;margin:0}.empty-slot{gap:2px;min-height:35px}.slot-mark{font-size:18px}.empty-slot small{font-size:8px}.equipped-item .card-art{display:none}.in-game .table-center{width:150px}.in-game .hand-dock .hand-heading{margin-top:2px}}@media(max-height:540px)and (min-width:701px){.in-game .player-dock .self-row{max-height:132px}.in-game .hand-area{max-height:58dvh}.in-game .hand-heading{display:none}.in-game .player-dock .skill-actions{max-height:32px}}:root{--read-text: #e6d8b9;--read-muted: #c0b89f;--touch-size: 44px}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--focus-color);outline-offset:3px}.reading-modal{width:min(650px,100%);max-height:88dvh;overflow:auto;padding:24px;color:var(--read-text)}.reading-modal>header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.character-detail-body{display:grid;grid-template-columns:132px minmax(0,1fr);align-items:start;gap:24px}.character-detail-body>.portrait{width:100%;border-radius:4px}@media(max-width:600px){.character-detail-body{grid-template-columns:88px minmax(0,1fr);gap:16px}}.reading-modal h2{font-size:24px}.reading-modal h3{font-size:19px;margin:16px 0 8px}.reading-modal p{font-size:15px;line-height:1.9;color:var(--read-muted);margin:10px 0}.reading-modal .full-rule{font-size:18px;color:var(--read-text)}.reading-modal .primary{min-height:var(--touch-size);margin-top:16px}.reading-hint{border:1px solid #a59966;padding:12px;border-radius:4px}.card-reading{display:flex;gap:20px;align-items:center}.card-reading .card-art{width:100px;height:100px}.reading-log{max-height:42dvh;overflow:auto}.reading-log p{border-bottom:1px solid #a5996633;padding:8px 0}.hand-reading-tools{display:flex;gap:12px;align-items:center;min-height:30px;flex-shrink:0}.hand-reading-tools span{font-size:11px;color:var(--read-muted)}.hand-reading-tools .text-button{font-size:12px;color:#f3d493}.playing-card.unavailable{opacity:.65}.playing-card.response-eligible{border-color:#a3efc7!important;box-shadow:0 0 0 2px #a3efc733}.response-card-label{position:absolute;bottom:3px;right:3px;color:#103d2b;background:#aff2cb;padding:2px 5px;font-size:11px}.timer.urgent{color:#ffb3a0;font-weight:700;border-bottom:3px solid #fa886e}.response-context{color:#f8df9f;font-size:12px}.auto-pass{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--read-muted);max-width:150px}.auto-pass input{width:auto;accent-color:#d2b270}.equipment-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.in-game .arena-toolbar{flex-shrink:0}.in-game .action-banner{flex-wrap:wrap}.in-game .action-banner>div{min-width:0}.in-game .arena-tools{flex-wrap:wrap;justify-content:flex-end}.in-game .arena-tools .small-button{min-height:36px}.in-game .battle-effects{pointer-events:none}.draft-confirm{position:sticky;bottom:12px;z-index:5;box-shadow:0 0 0 10px #193026ed,0 8px 25px #0008}@media(max-width:700px){.lobby-intro{padding-top:20px}.lobby-intro h1{font-size:36px}.lobby{padding-top:16px}.intro-features,.intro-footer{display:none}.draft-intro{padding:12px}.draft-intro p{margin:6px 0}.start-button{position:sticky;bottom:10px;z-index:4}.draft-screen{padding-bottom:24px}.draft-confirm{width:calc(100% - 8px);bottom:10px;min-height:48px}.in-game .arena-toolbar{padding:8px;gap:6px;align-items:flex-start}.in-game .arena-tools{gap:5px;max-width:230px}.auto-pass{order:3;max-width:none;flex-basis:100%;justify-content:flex-end;font-size:11px}.in-game .hand-area{max-height:62dvh}.in-game .hand-scroll .playing-card{width:92px;flex-basis:92px;height:124px}.in-game .command-bar>button{min-height:44px}.in-game .action-banner{padding:8px;font-size:13px}.hand-reading-tools{gap:6px}.hand-reading-tools .text-button{min-height:36px}.hand-reading-tools span{font-size:10px}.reading-modal{padding:18px}.modal-backdrop{padding:12px}}@media(prefers-reduced-motion:reduce){.battle-effects{display:none!important}}.training-entry{width:100%;min-height:44px;margin:10px 0}.training-actions{display:flex;gap:10px;flex-wrap:wrap}.training-hand{display:flex;padding:12px 0}.mode-picker{display:flex;flex-direction:column;gap:8px;color:var(--read-text);font-size:13px;margin:12px 0}.mode-picker small,.mode-hint{font-size:12px;color:var(--read-muted);line-height:1.7}.reading-backdrop{z-index:90}.hero-tags{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0;font-size:13px;color:var(--read-text)}.hero-tags>span{padding:3px 8px;border:1px solid var(--line);border-radius:4px;background:#182a24}.keyword-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.keyword-list details{border:1px solid var(--line);border-radius:4px;padding:8px 12px}.keyword-list details[open]{flex-basis:100%}.keyword-list summary{cursor:pointer;min-height:24px;color:var(--read-text)}.keyword-list summary:focus-visible{outline:3px solid var(--focus-color);outline-offset:3px}.keyword-list p{max-width:65ch}.in-game .battlefield{display:flex;flex-direction:column;overflow:hidden}.in-game .battlefield .opponents{flex:1;min-height:0;overflow:auto;align-content:start;padding-bottom:10px}.table-stage{flex:0 0 204px;min-height:0;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;z-index:2}.table-announcement{min-height:24px;max-width:100%;padding:3px 22px;color:#e8d6a8;background:linear-gradient(90deg,transparent,#322615ad,transparent);font:15px var(--serif);text-align:center}.table-announcement b,.table-announcement strong{color:#ffda78}.table-history{display:flex;align-items:center;justify-content:center;gap:8px;min-height:142px;max-width:100%}.table-play{position:relative;flex:0 0 94px;width:94px;animation:table-card-arrive .28s ease-out both}.table-stage .table-play .playing-card{width:94px;height:136px;min-height:0;margin:0;padding:6px;opacity:1;filter:none;transform:none;box-shadow:0 3px 12px #0007}.table-stage .table-play .playing-card .card-art{width:65px;height:65px}.table-stage .table-play .playing-card small{display:none}.table-stage .table-play .playing-card .card-type{bottom:25px}.table-card-ribbon{position:absolute;bottom:4px;left:4px;right:4px;padding:5px 1px;background:#443219dc;color:#fff1c9;text-align:center;font:700 11px var(--serif);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-rest{display:flex;flex-direction:column;align-items:center;gap:12px;color:#c7b884}.table-rest>span{font:42px var(--serif);opacity:.28}.table-rest>small{font-size:11px;opacity:.65}.table-notices{position:absolute;right:0;bottom:2px;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:100%;pointer-events:none}.table-notice{display:flex;align-items:center;gap:7px;min-height:28px;padding:4px 10px;background:#241c12e6;border:1px solid #bfa06466;border-radius:3px;font-size:12px;color:#ead9b4;animation:table-notice-in .25s ease-out both}.notice-heal{color:#b0ebc7}.notice-damage{color:#ffc0a5}.card-back{display:flex;width:84px;height:118px;flex-direction:column;align-items:center;justify-content:center;gap:12px;background:#473724;border:3px double #bda169;border-radius:4px;color:#d7bd85;font:14px var(--serif)}.card-back.compact{width:24px;height:31px;border-width:1px;gap:0}.card-back.compact span{display:none}.acquisition-panel{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:15;width:min(760px,calc(100% - 24px));max-height:calc(100% - 20px);display:flex;flex-direction:column;color:#f6e5bc;border:1px solid #bba171;background:#3c2911ed;box-shadow:0 12px 55px #0008,inset 0 0 40px #bc882818}.acquisition-panel>header{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;padding:9px 14px;border-bottom:1px solid #cfa55855;background:#20150866}.acquisition-panel h2{margin:0;text-align:center;font:700 22px var(--serif);letter-spacing:4px}.acquisition-panel .icon-button{width:30px;height:30px}.acquisition-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));justify-items:center;gap:12px 16px;overflow:auto;min-height:0;padding:20px 26px 12px}.acquisition-option{width:100px;position:relative;text-align:center}.acquisition-panel .playing-card{width:100px;height:140px;min-height:0;margin:0;padding:5px;opacity:1;transform:none;filter:none}.acquisition-panel .playing-card .card-art{width:65px;height:65px}.acquisition-panel .playing-card small{display:none}.acquisition-panel .playing-card:not(:disabled):hover{box-shadow:0 0 0 2px #ffdf76,0 0 18px #ffd56b77;transform:translateY(-4px)}.acquisition-panel .playing-card:disabled{cursor:default}.acquisition-option.claimed .playing-card{opacity:.22;filter:grayscale(1)}.acquisition-recipient{display:block;min-height:24px;padding-top:7px;font:12px var(--serif);color:#deca9b}.acquisition-option.claimed .acquisition-recipient{color:#ffda7b}.acquisition-panel>footer{text-align:center;padding:6px 20px 12px}.acquisition-panel footer p{margin:0 0 7px;font-size:15px;color:#fff0b3}.acquisition-panel footer small{color:#c8b791;font-size:11px}.acquisition-panel progress{display:block;width:min(400px,90%);height:6px;margin:0 auto 7px;border:1px solid #aa8d4c;accent-color:#e2bd72}.acquisition-panel progress::-webkit-progress-bar{background:#322410}.acquisition-panel progress::-webkit-progress-value{background:#d9b77c}.unknown-card{background:none;border:0;padding:0;color:#ead8b2}.unknown-card .card-back{width:100px;height:140px}.unknown-card small{display:block;margin-top:7px;font-size:11px}.acquisition-reopen{position:absolute;z-index:16;left:50%;bottom:8px;transform:translate(-50%);display:flex;align-items:center;gap:5px}@keyframes table-card-arrive{0%{opacity:0;transform:translateY(18px) scale(.94)}to{opacity:1;transform:none}}@keyframes table-notice-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:700px){.table-stage{flex-basis:142px;gap:3px}.table-announcement{min-height:20px;font-size:11px;padding:2px 6px}.table-history{width:100%;min-height:96px;justify-content:safe center;gap:5px;overflow-x:auto;padding:2px}.table-play{flex-basis:65px;width:65px}.table-stage .table-play .playing-card{width:65px;height:94px;padding:3px}.table-stage .table-play .playing-card .card-art{width:42px;height:42px}.table-stage .table-play .playing-card .card-name{font-size:14px!important}.table-stage .table-play .playing-card .pip{font-size:11px}.table-stage .table-play .playing-card .card-type{display:none}.table-card-ribbon{font-size:9px;left:2px;right:2px;bottom:2px;padding:4px 0}.table-notices{position:static;min-height:22px;flex-wrap:nowrap;width:100%;overflow:hidden;justify-content:center}.table-notice{flex-shrink:0;padding:2px 5px;font-size:10px;min-height:20px;gap:4px}.table-notice .card-back{display:none}.acquisition-panel{width:calc(100% - 10px);max-height:calc(100% - 8px)}.acquisition-panel>header{padding:4px 8px}.acquisition-panel h2{font-size:17px;letter-spacing:2px}.acquisition-grid{grid-template-columns:repeat(auto-fit,minmax(65px,1fr));gap:8px;padding:10px}.acquisition-option{width:65px}.acquisition-panel .playing-card,.unknown-card .card-back{width:65px;height:94px;padding:3px}.acquisition-panel .playing-card .card-art{width:42px;height:42px}.acquisition-panel .playing-card .card-name{font-size:14px!important}.acquisition-panel .playing-card .pip{font-size:11px}.acquisition-recipient{font-size:9px;min-height:20px;padding-top:4px}.acquisition-panel>footer{padding:4px 10px 7px}.acquisition-panel footer p{font-size:12px;margin-bottom:4px}}@media(prefers-reduced-motion:reduce){.table-play,.table-notice{animation:none}.acquisition-panel .playing-card:not(:disabled):hover{transform:none}}@media(min-width:701px)and (max-height:1100px){.in-game .battlefield .opponents{grid-template-columns:repeat(3,minmax(0,230px))}.in-game .battlefield .player-seat{max-width:230px;display:flex;align-items:center;min-height:76px}.in-game .battlefield .player-seat>.portrait{width:56px;height:70px;flex-shrink:0}.in-game .battlefield .seat-content{flex:1;min-width:0}.table-stage{flex-basis:176px}}@media(min-width:701px)and (max-height:850px){.acquisition-grid{padding:8px 20px}.acquisition-panel .playing-card,.unknown-card .card-back{height:118px}.acquisition-panel .playing-card .card-art{width:52px;height:52px}.acquisition-panel>header{padding-block:5px}.in-game .battlefield .opponents{padding-bottom:0}}@media(max-width:700px){.table-stage{flex-basis:122px}.in-game .battlefield .player-seat>.portrait{width:28px;height:38px}.in-game .battlefield .seat-content{padding:3px 5px}.in-game .battlefield .seat-user{margin-bottom:1px}.in-game .battlefield .hp-row,.in-game .battlefield .seat-meta{margin-top:3px}.in-game .battlefield .opponents{padding-bottom:0}}@media(max-width:700px){.in-game .battlefield .player-seat{display:flex;align-items:center}.in-game .battlefield .seat-content{min-width:0;flex:1;padding-inline:3px}.in-game .battlefield .seat-content>strong{font-size:12px;letter-spacing:0}.in-game .battlefield .hp-row svg{width:6px;height:6px}}.battle-signals{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:14;overflow:hidden}.target-route{position:absolute;height:3px;background:linear-gradient(90deg,#b5802260,#ffe29b);transform-origin:left center;box-shadow:0 0 7px #e5bb5e80;animation:route-enter .35s ease-out}.target-route svg{position:absolute;right:-3px;top:-11px;color:#ffe29b}@keyframes route-enter{0%{opacity:0}to{opacity:1}}.seat-feedback{position:absolute;transform:translate(-50%,-50%);text-align:center;padding:12px 4px;border-radius:8px;background:#18362bea;color:#fff0bd;text-shadow:0 2px 4px #000;animation:feedback-enter 1s ease-out}.seat-feedback b{font-size:19px}.feedback-damage{color:#ffd1bd;box-shadow:0 0 22px #d74f3877;background:#57291ceb}.feedback-heal{color:#ceffb9;box-shadow:0 0 22px #8bc65c88}.feedback-skill,.feedback-change{border-block:1px solid #d5b56f}@keyframes feedback-enter{0%{opacity:0;margin-top:9px}35%{opacity:1;margin-top:0}}.seat-phase{display:flex;position:absolute;top:2px;right:3px;gap:4px;z-index:3;font-size:10px}.seat-phase b,.seat-phase em{background:#ead29b;color:#24392e;padding:2px 4px;border-radius:3px;font-style:normal}.seat-phase em{background:#c2dfd4}.target-reason{position:absolute;bottom:0;left:0;right:0;background:#162a25ed;color:#ead8b4;font-size:10px;padding:3px;z-index:3}.acquisition-recipient{display:flex;align-items:center;justify-content:center;gap:4px}.acquisition-recipient .portrait{width:28px;height:38px;flex:0 0 28px;border:1px solid #d8bd7e}.acquisition-option.claimed .acquisition-recipient{color:#ffe4a3;min-height:40px}.playing-card.newly-gained{box-shadow:0 0 0 2px #e9d095,0 0 16px #dbb96499}.new-card-label{position:absolute;bottom:20px;left:0;right:0;background:#365c3f;color:#fff4c7;font-size:10px;padding:2px;z-index:4}.event-detail{display:block;font-size:12px;color:#f0dfba;line-height:1.4}.event-history{position:relative;text-align:center;flex:0 0 auto;z-index:4}.event-history>button{font-size:11px;padding:4px 12px}.event-history ol{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin:0;padding:10px;width:min(540px,90vw);max-height:280px;overflow:auto;text-align:left;background:#142e28fa;border:1px solid #aa915b;box-shadow:0 6px 22px #0008;list-style:none}.event-history li{display:flex;flex-wrap:wrap;gap:5px 10px;padding:8px;border-bottom:1px solid #d9c28d28;font-size:12px}.event-history li span,.event-history li small{color:#d2c9ad}.event-history li small{flex-basis:100%}.event-history li button{margin-left:auto}.draft-partners{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:15px;margin:16px 0;font-size:13px}.draft-partners span{display:flex;align-items:center;gap:7px}.draft-partners .portrait{width:30px;height:40px}.draft-advice{display:block;color:#ddca99;line-height:1.5;margin-top:5px}.battle-summary{text-align:left;padding:12px;border-block:1px solid #d4b87555;margin-block:12px;max-height:220px;overflow:auto}.battle-summary h3{margin:0}.battle-summary p{font-size:12px;margin:6px 0}.battle-summary details button{display:block;text-align:left}@media(min-width:1100px)and (min-height:760px){.opponents.four-seats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:20px;padding-top:10px}.opponents.four-seats .player-seat{width:100%;max-width:230px;justify-self:center}.opponents.four-seats .player-seat:first-child,.opponents.four-seats .player-seat:last-child{margin-top:48px}}@media(max-width:700px){.seat-feedback b{font-size:13px}.seat-feedback{padding:7px 2px}.acquisition-recipient .portrait{width:18px;height:24px;flex-basis:18px}.acquisition-option.claimed .acquisition-recipient{min-height:26px;font-size:9px;gap:2px}.event-detail{font-size:10px}.seat-phase{font-size:8px}.seat-phase b,.seat-phase em{padding:1px 3px}}@media(prefers-reduced-motion:reduce){.target-route,.seat-feedback{animation:none}}.acquisition-option{position:relative}.acquisition-option.claimed .acquisition-recipient{display:block;white-space:nowrap;font-size:11px}.acquisition-option.claimed .acquisition-recipient .portrait{position:absolute;bottom:30px;left:50%;transform:translate(-50%);width:36px;height:48px}.seat-phase{flex-direction:column;align-items:flex-end;white-space:nowrap}.feedback-draw b,.feedback-gain b{font-size:14px;white-space:nowrap}@media(max-width:700px){.acquisition-option.claimed .acquisition-recipient{font-size:9px}.acquisition-option.claimed .acquisition-recipient .portrait{bottom:27px;width:24px;height:32px}.feedback-draw b,.feedback-gain b{font-size:11px}}@media(min-width:701px)and (max-height:760px){.in-game .battlefield .opponents{min-height:98px}.table-stage{flex-basis:140px;gap:3px}.table-stage .table-play .playing-card{height:105px;width:78px}.table-play{flex-basis:78px;width:78px}.table-stage .table-play .card-art{height:48px;width:48px}.table-stage .table-play .playing-card small{display:none}.table-announcement{min-height:18px;font-size:12px;padding-block:0}}.opponents,.table-history,.event-history ol,.battle-summary,.modal{scrollbar-width:thin;scrollbar-color:#99805a #20392e}@media(min-width:701px){.draft-screen{margin:24px auto}.draft-screen h1{font-size:32px}.draft-progress{margin:16px 0 22px}.draft-candidate{display:flex;flex-direction:column;align-items:center}.draft-candidate .portrait{width:105px;height:140px;aspect-ratio:3/4;flex-shrink:0;margin-top:12px;border:1px solid #8d7955}.draft-candidate>div:last-child{padding:12px 16px;min-height:180px;width:100%}.draft-candidate h2{font-size:24px;margin:6px 0}.draft-candidate p{font-size:12px;margin:6px 0;line-height:1.6}.draft-confirm{margin-top:20px}}.in-game .battlefield .opponents{grid-auto-rows:minmax(106px,max-content);row-gap:24px}@media(max-width:700px){.in-game .battlefield .opponents{grid-auto-rows:minmax(80px,max-content);row-gap:24px}}.acquisition-reopen{left:auto;right:8px;top:4px;bottom:auto;transform:none;font-size:11px}.player-seat>.seat-action{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:transparent;cursor:pointer}.equipment .seat-equipment{position:relative;z-index:4;font:inherit;font-size:10px;color:#e6d8b9;padding:4px;min-height:28px;background:#20392e;border:1px solid #75834d;border-radius:2px;cursor:pointer}@media(max-width:700px){.in-game .arena-shell{overflow-y:auto}.in-game .arena-toolbar,.in-game .hand-area{flex-shrink:0}.in-game .battlefield{flex:1 0 auto;min-height:250px;overflow:visible}.in-game .battlefield .opponents{flex:1 0 auto;min-height:104px;max-height:240px;grid-template-columns:repeat(3,minmax(0,1fr));padding-top:6px;padding-bottom:8px}.equipment .seat-equipment{min-height:32px;overflow-wrap:anywhere}}.draft-refresh{margin:0 auto 18px;justify-content:center}.hero-attribute{display:inline-block;color:#d4bc78;font:10px/1.4 sans-serif;white-space:nowrap}.role-badge.hidden{font-size:10px;min-width:64px;letter-spacing:0}.seat-equipment .card-art{position:static;width:22px;height:22px;flex:0 0 22px}.seat-equipment{display:inline-flex;align-items:center;gap:3px}.draft-candidate{position:relative;transition:transform .18s,box-shadow .18s,border-color .18s}.draft-candidate.selected{border:2px solid #f0d486;transform:translateY(-5px) scale(1.015);box-shadow:0 0 0 3px #d9b76730,0 10px 30px #0006}.draft-selected-label{position:absolute;top:10px;right:10px;z-index:2;padding:5px 9px;background:#ecd18b;color:#25372c;font-size:12px;border-radius:4px}.hand-scroll .playing-card.selected{transform:translateY(-18px);box-shadow:0 0 0 3px #efcc77,0 0 24px #efd18b66}.hand-scroll .playing-card.cost-eligible:not(.selected){box-shadow:inset 0 0 0 2px #b89143,0 0 10px #d7b55c40}.hand-skill-shortcuts{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.hand-skill-shortcuts:empty{display:none}.skill-button.ready{border-color:#b99654;background:#343f2a;color:#f3dba1;animation:skill-ready 2s ease-in-out 3}.skill-cost-hint{margin:4px 0;font-size:12px;color:#f3dba1}@keyframes skill-ready{50%{box-shadow:0 0 10px #d4ac5960}}.speed-control{display:inline-flex;gap:5px;align-items:center;font-size:12px;white-space:nowrap}.speed-control select{padding:6px;width:auto;min-height:32px}.battle-audio{position:relative;font-size:12px}.battle-audio summary{cursor:pointer;padding:8px}.battle-audio>div{position:absolute;top:100%;right:0;width:210px;padding:14px;display:grid;gap:12px;background:#172e27;border:1px solid #8e7953;border-radius:8px;box-shadow:0 8px 24px #0008;z-index:30}.battle-audio label{display:flex;gap:8px;align-items:center}.battle-audio input{width:auto}.battle-audio small{color:#b5b8a6;line-height:1.5}.modal.battle-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(480px,100vw);height:100dvh;max-height:100dvh;border-radius:0;overflow-y:auto;padding:24px}.battle-drawer .full-battle-log{display:block;max-height:none;padding:0}.battle-drawer li{padding:12px 0;border-bottom:1px solid #d5ba6a25;display:grid;gap:6px;text-align:left;line-height:1.7}.full-battle-log small{color:#bda776}.spectator-actions{display:flex;justify-content:center;align-items:center;gap:16px;padding:12px;flex-wrap:wrap}.feedback-damage{animation:damage-impact .7s ease-out both;color:#ffc2a2;text-shadow:0 0 18px #f94827}.feedback-respond{border:2px solid #9ce0d5;border-radius:50%;padding:15px;animation:guard-ripple .8s ease-out both}.feedback-judge{color:#fce7a4;filter:drop-shadow(0 0 12px #cfa445);animation:judgment-glow .9s ease-out both}.feedback-heal{color:#c8efd2;text-shadow:0 0 20px #63dfaa}.feedback-death{animation:soul-fade 2.5s ease-out both}.rescue-aura{position:fixed;transform:translate(-50%,-50%);padding:40px 20px;color:#ffe9b2;border:2px solid #e8c978;border-radius:50%;box-shadow:0 0 40px #eacb6680,inset 0 0 25px #eacb6640;animation:rescue-light 1.8s ease-in-out infinite}@keyframes damage-impact{0%{margin-left:-8px;scale:1.5}20%{margin-left:8px}40%{margin-left:-4px}to{margin-left:0;scale:1}}@keyframes guard-ripple{0%{scale:.7;opacity:.2}to{scale:1.12;opacity:1}}@keyframes judgment-glow{0%{rotate:x 70deg;opacity:.2}to{rotate:x 0deg;opacity:1}}@keyframes soul-fade{to{translate:0 -40px;opacity:0;filter:blur(4px)}}@keyframes rescue-light{50%{box-shadow:0 0 65px #eacb66b0,inset 0 0 35px #eacb6660}}@media(max-width:700px){.in-game .equipment-dock.is-empty{min-height:0;padding:5px 8px}.in-game .equipment-dock.is-empty .equipment-slots{display:flex;gap:12px}.in-game .equipment-dock.is-empty .equipment-slot{display:flex;align-items:center;gap:5px;min-height:0;padding:0}.in-game .equipment-dock.is-empty .empty-slot{display:inline;min-height:0;padding:0}.in-game .equipment-dock.is-empty .empty-slot .slot-mark{display:none}.in-game .equipment-dock.is-empty>header{display:none}.in-game .hand-scroll{padding-top:26px;padding-bottom:18px}.in-game .hand-skill-shortcuts .skill-button{min-height:36px;padding:6px 9px;font-size:12px}.in-game .self-identity .skill-actions .skill-button:not(.mount-skill){display:none}.in-game .hero-attribute{display:block;font-size:9px}.draft-candidate.selected{transform:translateY(-3px)}.battle-drawer{padding:16px!important}}@media(prefers-reduced-motion:reduce){.draft-candidate,.skill-button.ready,.seat-feedback,.rescue-aura{animation:none!important;transition:none!important}}.ink-art{display:block;aspect-ratio:1;border-radius:5px;background-repeat:no-repeat}.equipped-item .ink-art{width:56px;height:56px}.card-reading .ink-art{width:100px;height:100px;flex:0 0 100px}.battlefield .seat-content .role-badge{position:static;display:inline-block;padding:2px 5px;margin-top:3px;line-height:1.3}.battlefield .seat-content .role-badge.hidden{min-width:0}@media(max-width:700px){.in-game .player-dock:has(.equipment-dock.is-empty) .equipment-dock{height:72px;justify-content:center}.in-game .equipment-dock.is-empty .equipment-slots{flex-direction:column;gap:6px}.in-game .equipment-dock.is-empty .equipment-slot{flex-direction:row;justify-content:center}.in-game .player-dock:has(.equipment-dock.is-empty) .self-row{height:72px;grid-template-columns:42px minmax(0,1fr)}.in-game .player-dock:has(.equipment-dock.is-empty) .player-seat.self{width:42px}.in-game .player-dock:has(.equipment-dock.is-empty) .player-seat.self>.portrait{height:62px}.in-game .equipped-item .ink-art{display:block;width:24px;height:24px}.battlefield .seat-content .role-badge{font-size:9px}}
