/* Client finish: engraved brass, deep enamel, illustrated skill tiles. */
.pc-client{border-color:#b5a171;box-shadow:inset 0 0 0 1px #e6d7a6,0 10px 60px #0008}.pc-titlebar{height:28px;min-height:28px;background:linear-gradient(#8b9db5,#496483 13%,#244465 50%,#1b3554 90%,#a7afac);color:#fff0bf}.pc-titlebar strong{font-weight:700}.pc-titlebar button{border-radius:2px}.pc-titlebar button[data-action=fullscreen]{min-width:47px;color:#ffedb5}.pc-titlebar button:hover{box-shadow:inset 0 0 8px #f2dfaf33}
.pc-location,.pc-status{border-color:#d3bd83;box-shadow:inset 0 0 0 2px #6f8196,inset 0 0 12px #e6cf9c22,0 3px 10px #112a3b66;border-radius:3px}.pc-location{width:205px}.pc-status{border-radius:4px 4px 12px 4px}.pc-head{border-color:#dfc38d;box-shadow:0 0 0 1px #1b3453,inset 0 0 12px #dce9c05c}.pc-head.hero-head:after{content:'';position:absolute;inset:0;border:1px solid #fff4ba66;pointer-events:none}.pc-role-name{color:#fff0c0;font-size:11px}.pc-meter{height:12px;border-color:#a6aba7}.pc-meter span{font-size:9px;line-height:10px}.pc-meter.xp{height:7px}.pc-pet-vitals{margin-top:0}
.pc-tracker{border:0;box-shadow:none;background:linear-gradient(90deg,#163f3a96,#1b423d20);border-radius:3px;right:12px;width:194px}.pc-window-cap{border:1px solid #bfae7a;border-radius:3px 3px 0 0;background:linear-gradient(#7c91a3,#365574 27%,#24435d 83%,#9aab9e);height:25px}.pc-track-body{padding:9px 10px 12px;background:linear-gradient(90deg,#20483955,transparent);line-height:1.8}.pc-track-body b{color:#acff7c}.pc-track-link{text-decoration:none;color:#fff494;padding-left:10px;position:relative}.pc-track-link:before{content:'›';position:absolute;left:0;color:#fce0a0}.pc-track-link:hover{text-decoration:underline}.pc-track-tab{background:#234f4b77}.pc-party-face{border-color:#c0bd91;border-radius:3px}
.pc-chat{width:410px}.pc-chat-tabs{border-color:#a5ae9a;border-radius:3px 3px 0 0;background:linear-gradient(#8998a6,#3e5b75 20%,#1e3b55 80%,#667f8a)}.pc-chat-lines{background:linear-gradient(90deg,#0d2636db,#132f3ab9);height:105px;line-height:18px;border-color:#7e9488}.pc-chat-lines p{font-size:12px}.pc-chat-input{border-color:#a9b49c}.pc-hotbar{height:57px;background:linear-gradient(#90a1af,#3c5a7c 8%,#203e60 25%,#193452 78%,#536e89 96%);border-top:2px solid #dbca94;box-shadow:inset 0 2px 0 #c5d3d4,inset 0 -3px 0 #102b48}.pc-client .scene{inset:0 0 57px;height:calc(100% - 57px)}.pc-chat{bottom:60px}.pc-shortcuts{gap:5px}.pc-shortcut{width:40px;height:40px;padding:2px;border-color:#e8ce93;border-radius:3px;box-shadow:0 0 0 1px #112d48,inset 0 0 0 1px #c9ae7a,0 2px 4px #0b233a}.pc-shortcut>span{width:34px;height:34px;padding:0;border:0;background:transparent!important}.skill-emblem{display:block;width:100%;height:100%;filter:drop-shadow(0 1px 1px #162a3670);pointer-events:none}.pc-shortcut .skill-emblem{width:34px;height:34px}.pc-shortcut small{font-weight:bold;bottom:1px;right:2px;font-size:10px;color:#ffedb3}.pc-shortcut.selected{outline:1px solid #fff3b9;box-shadow:0 0 9px #fbe3a0,inset 0 0 0 1px #fff4b8}.pc-shortcut.insufficient{filter:saturate(.3)}.pc-shortcut.unlearned:before{content:'锁';position:absolute;right:2px;top:1px;color:#eee0ac;font-size:8px;z-index:2}.pc-shortcut.unlearned span{opacity:.4}.pc-shortcut:hover{filter:brightness(1.22);translate:0 -1px}.pc-shortcut:active{translate:0 1px;filter:brightness(.9)}.pc-tool{width:38px;height:41px;border-radius:3px;border-color:#c0c7ab;box-shadow:inset 0 0 0 1px #213d59,0 2px 3px #102a42}.pc-tool:hover{box-shadow:inset 0 0 0 1px #d4c68f,0 0 8px #c4d7c833}.pc-tool svg.icon{stroke-width:1.8;color:#f5dfa7}
[data-tooltip]{position:relative}[data-tooltip]:hover:after,[data-tooltip]:focus-visible:after{content:attr(data-tooltip);position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);background:linear-gradient(#263f59f5,#142d43f5);border:1px solid #e1c18b;box-shadow:inset 0 0 0 1px #637789,0 3px 10px #0005;padding:9px 13px;white-space:pre-line;min-width:140px;width:max-content;max-width:240px;text-align:left;color:#ffedb8;font:12px/1.6 var(--pc-font);z-index:90;pointer-events:none;letter-spacing:0;text-shadow:1px 1px #132a3e}.pc-shortcut:first-child[data-tooltip]:after{left:0;transform:none}
.pc-round{top:10px;width:118px;letter-spacing:3px;color:#fff1b8}.pc-round:before{content:'';position:absolute;width:110px;height:49px;left:50%;top:-2px;translate:-50% 0;background:radial-gradient(ellipse,#16394c99,transparent 70%);z-index:-1}.pc-round b{font-size:35px;text-shadow:1px 2px #3f5638,0 0 12px #fff0b04d}.pc-round small{background:linear-gradient(#f3e4b8,#b89b64 35%,#736346);border-color:#ffe8ac;box-shadow:0 0 0 1px #6b6347,inset 0 0 6px #ffecc055;height:25px;line-height:22px;font-size:17px}.pc-battle-controls button{border-radius:3px;border-color:#d0bd85;color:#fff1b7;padding:5px 8px}.pc-command-panel{right:17px;bottom:48px;width:105px;padding:6px 7px 8px;border:2px solid #d2b47c;border-radius:9px 9px 4px 4px;outline:1px solid #223a50;background:linear-gradient(90deg,#182f4ce8,#365677ec 50%,#19334fe8);box-shadow:inset 0 0 0 1px #8a9ba9,0 3px 10px #122b3b66}.pc-command-panel:before{content:'◆';position:absolute;top:-12px;left:50%;translate:-50% 0;color:#e2c187;font-size:14px;text-shadow:0 1px #384a54}.pc-command-title{font-size:13px;letter-spacing:2px;padding:2px 0 6px;border-color:#c2ba8d}.pc-command-panel>small{font-size:10px;padding:5px 0}.pc-command{height:31px;margin-top:4px;border-radius:3px;background:linear-gradient(#ffedbc,#cfb27c 9%,#9c7c4c 53%,#6e5537 92%,#c5a16a);border-color:#f4d7a1;box-shadow:inset 0 0 0 1px #6e5a3d,0 1px 2px #11283e;color:#fff5d6;gap:7px;font-size:14px}.pc-command:enabled:hover{filter:brightness(1.2);box-shadow:inset 0 0 0 1px #fff4c0,0 0 8px #f9dfac66}.pc-command:enabled:active{filter:brightness(.9);box-shadow:inset 0 2px 4px #543c2a}.pc-command.chosen{color:#fffbd9;box-shadow:inset 0 0 0 1px #fff4c0,0 0 9px #f6d68e88}.pc-command:disabled{opacity:.38;filter:saturate(.2)}.pc-orders{right:134px;bottom:68px;border-radius:3px;background:#1b3e52cc;border-color:#abc4b577;box-shadow:inset 0 0 0 1px #213e4b;padding:7px 8px}.pc-orders button{border-radius:2px;background:linear-gradient(#6f8995,#334d65)}
.pc-client .battle-unit .sprite{width:76px;height:102px}.pc-client .battle-unit .monster{width:82px!important;height:98px!important}.battle-unit .unit-art:before{content:'';position:absolute;bottom:0;width:54px;height:13px;border-radius:50%;background:radial-gradient(ellipse,#162a3366,transparent 70%);z-index:-1}.pc-client .battle-unit .bar{width:57px;height:4px;border:1px solid #36503b77;opacity:.9}.pc-client .unit-name{font-size:13px;letter-spacing:.5px;text-shadow:1px 1px #183630,-1px -1px #183630,0 0 3px #183630}.pc-client .battle-unit.targeted:before,.pc-client .battle-unit.active-turn:after{width:57px;height:18px;border:1px solid #fff2ac;box-shadow:0 0 12px #fff4aa88,inset 0 0 8px #fff4a444}.unit-target-caret{display:none;position:absolute;top:-15px;width:15px;height:13px;background:#ffe18b;clip-path:polygon(0 0,50% 35%,100% 0,100% 58%,50% 100%,0 58%);filter:drop-shadow(0 1px 1px #754c2e)}.battle-unit.targeted .unit-target-caret,.battle-unit:not(.fallen):hover .unit-target-caret{display:block;animation:target-bob .7s ease-in-out infinite alternate}.battle-unit:not(.fallen):hover .unit-art{filter:drop-shadow(0 0 6px #fff1a2)}.pc-client .battle .target-hint{bottom:12px;max-width:50%;background:#173e4bb5;border:1px solid #b5cfaf77;border-radius:3px;box-shadow:inset 0 0 0 1px #173f48;color:#ffffc7;font-size:13px;padding:5px 16px}.scene[data-playing-actor] .target-hint{opacity:0}.pc-client .action-banner,.effects-stage .action-banner{top:101px;min-width:205px;display:flex;align-items:center;justify-content:center;gap:11px;padding:7px 24px 7px 15px;background:linear-gradient(90deg,#163a4a00,#163a4ae8 12%,#244755ed 85%,#163a4a00);border:0;border-top:1px solid #edcf8b99;border-bottom:1px solid #edcf8b66;box-shadow:none;border-radius:0;color:#ffedb8;text-align:left;letter-spacing:3px;z-index:35}.action-banner>span:first-child{display:block;width:37px;height:37px;border:1px solid #e2c388;box-shadow:0 0 8px #f7dd8d33;border-radius:3px}.action-banner strong{font:700 19px/1.3 'KaiTi','STKaiti',var(--pc-font);display:block;white-space:nowrap}.action-banner small{display:block;font:11px/1.5 var(--pc-font);letter-spacing:1px;color:#bfdace}.combat-canvas{position:absolute;left:0;top:0;pointer-events:none;z-index:2}.pc-client .battle-fx{z-index:28}.pc-client .battle .damage-pop,.effects-stage .damage-pop{top:15%;font:italic 700 35px/1 Arial,sans-serif;color:#fff0ba;text-shadow:2px 2px #713b25,-1px -1px #713b25,1px -1px #713b25,-1px 1px #713b25,0 3px 3px #412f2755;z-index:40;animation:polished-number 1s ease-out both}.damage-pop b{font:inherit}.damage-pop small{display:block;font:bold 15px 'KaiTi','SimSun',serif;color:#ffdd82;margin-bottom:2px;letter-spacing:2px}.pc-client .battle .damage-pop.critical,.effects-stage .damage-pop.critical{color:#ffd273;font-size:43px}.pc-client .battle .damage-pop.heal,.effects-stage .damage-pop.heal{color:#aeffad;text-shadow:2px 2px #305b3e,-1px -1px #305b3e,1px -1px #305b3e,-1px 1px #305b3e}.damage-pop.mana{color:#a6dfff!important}.damage-pop.status b{font-size:16px}.combat-combo{position:absolute;left:10%;top:25%;z-index:34;display:flex;gap:8px;align-items:center;color:#ffdc94;text-shadow:2px 2px #71523d;opacity:0}.combat-combo.visible{opacity:1}.combat-combo>b{font:italic bold 55px/.9 Georgia,serif}.combat-combo>span{font:20px 'KaiTi','SimSun',serif;letter-spacing:2px}.combat-combo small{display:block;font:11px/2 var(--pc-font);letter-spacing:0;color:#fff2c8}.combat-combo em{font-style:normal;color:#ffc77e}
.modal{border:2px solid #adb296;border-radius:4px;box-shadow:inset 0 0 0 2px #e5d9ab,0 0 0 1px #1f3c52,4px 7px 22px #071d335e;background:#e5dcba}.modal-head{border-radius:2px 2px 0 0;height:35px;background:linear-gradient(#8b9eb0,#4d6c8c 15%,#244665 70%,#6f8795);border-bottom-color:#c1bb90}.modal-head h2{font-weight:bold;font-size:15px;color:#fff0b5}.modal-head h2:before{content:'◆';font-size:8px;color:#e5c98c;margin-right:8px;vertical-align:2px}.modal-body{background:radial-gradient(ellipse at 20% 0,#f7f0d1aa,transparent 65%),repeating-linear-gradient(0deg,#fff1 0 1px,transparent 1px 3px);padding:16px}.modal .card{border:1px solid #a9b392;background:linear-gradient(135deg,#f2eacb,#d5d7b5);box-shadow:inset 0 0 0 1px #fff5d855;border-radius:3px}.modal .notice{border-color:#a2b499;background:#cbd3b2a8;border-radius:3px}.modal .btn{border-radius:3px}.modal .tab{border-radius:3px 3px 0 0}.modal .skill-card{padding:16px 15px 13px 80px;min-height:195px}.modal .skill-card>.skill-art{position:absolute;left:14px;top:18px;width:52px;height:52px;border:2px solid #c6b07d;border-radius:4px;box-shadow:0 0 0 1px #758678,0 3px 8px #5a6e4b33}.modal .skill-card h3{font-size:18px;color:#394e45;padding-right:38px;margin-bottom:8px;font-family:'KaiTi','SimSun',serif}.modal .skill-card p{line-height:1.7;min-height:57px;font-size:12px}.modal .skill-card>.tag{font-size:10px;top:15px;right:12px}.skill-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.skill-actions .btn{min-height:27px;font-size:11px;padding:5px 9px}.skill-actions .preview-link{color:#295b6a;background:linear-gradient(#f6ebc7,#d5c89c);text-shadow:none;border-color:#9a9f80}.modal .skill-card.locked{opacity:1}.modal .skill-card.locked>.skill-art{filter:saturate(.35)}.pc-item-slot{background:radial-gradient(ellipse at 30% 20%,#d6e3bf,#acc1a5);border-color:#e8e8c2;border-radius:2px}.pc-item-slot.selected{box-shadow:inset 0 0 8px #ffeca288,0 0 4px #f8ecae}.pc-inventory-paper{background:radial-gradient(ellipse,#e3e4c3,#b2c6aa);border-color:#93a78c;box-shadow:inset 0 0 15px #658e7133}.pc-item-detail{border-radius:3px;background:#f0e8c8}.pc-statusbar{height:18px;min-height:18px;font-size:10px;color:#d4d9d2}
.effects-window{width:820px;max-width:calc(100vw - 24px)}.effects-window .modal-body{padding:10px;background:#d9d9b9}.effects-tabs{display:flex;gap:5px;margin-bottom:9px;flex-wrap:wrap}.effects-tabs button{display:flex;align-items:center;gap:5px;border:1px solid #a4b49c;border-radius:3px;background:#e8e2bd;padding:4px 8px;color:#405c57;font-size:11px}.effects-tabs button.selected{background:#355b6c;color:#fff0b9;border-color:#769c9c}.effects-tabs .skill-emblem{width:24px;height:24px}.effects-stage{position:relative!important;width:100%!important;height:360px!important;min-height:0!important;max-height:none!important;border:1px solid #8a9b83!important;border-radius:3px!important;overflow:hidden;isolation:isolate;background:#183c42}.effects-stage .scene-bg{background-image:linear-gradient(#16354644,#16354622),url('./assets/grove.webp');z-index:-3}.effects-stage .battle-unit .sprite{width:74px;height:99px}.effects-stage .battle-unit .monster{width:74px!important;height:89px!important}.effects-stage .battle-unit .bar{height:4px;width:55px}.effects-stage .unit-name{color:#fff2ad;background:none;font-size:12px;text-shadow:1px 1px #21453b}.effects-stage .action-banner{top:13px!important}.effects-stage .combat-combo{top:30%;left:6%}.effects-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 4px 2px;color:#466859;font-size:12px}.effects-caption b{font-weight:400;color:#805d35}.effects-caption .btn{min-width:90px}.effects-stage .demo-status{position:absolute;bottom:8px;left:50%;translate:-50% 0;color:#e8f2cf;background:#204b47b8;padding:4px 12px;border:1px solid #b8cca577;font-size:11px;white-space:nowrap}
.pc-client.compact .pc-server-name{display:none}.pc-client.compact .pc-location{width:184px}.pc-client.compact .pc-status{width:265px;grid-template-columns:46px 140px 40px;gap:5px}.pc-client.compact .pc-hotbar{gap:9px;padding-left:6px;padding-right:6px}.pc-client.compact .pc-tools{gap:4px}.pc-client.compact .pc-tool{width:34px}.pc-client.compact .pc-shortcut{width:36px;height:38px}.pc-client.compact .pc-shortcut>span,.pc-client.compact .pc-shortcut .skill-emblem{width:30px;height:32px}.pc-client.compact .pc-shortcuts{gap:3px}.pc-client.compact .pc-money{min-width:65px;font-size:10px}.pc-client.compact .pc-tracker{width:177px;top:140px}.pc-client.compact .pc-chat{width:334px}.pc-client.compact .pc-chat-lines{height:96px}.pc-client.compact .pc-orders{width:174px;right:131px}.pc-client.compact .battle .target-hint{max-width:45%}
@keyframes target-bob{to{translate:0 -5px}}@keyframes polished-number{0%{opacity:0;transform:translate(-50%,8px) scale(.55)}12%{opacity:1;transform:translate(-50%,-14px) scale(1.2)}28%{opacity:1;transform:translate(-50%,-20px) scale(1)}65%{opacity:1}100%{opacity:0;transform:translate(-50%,-68px) scale(.9)}}
@media(max-width:600px){.modal .skill-card{padding:12px 10px 10px;min-height:0}.modal .skill-card>.skill-art{position:relative;left:auto;top:auto;display:block;width:43px;height:43px;margin-bottom:9px}.modal .skill-card h3{font-size:16px;padding-right:0}.modal .skill-card p{font-size:11px;min-height:75px}.modal .skill-card>.tag{top:14px;right:8px;font-size:9px}.effects-stage{height:330px!important}.effects-tabs button{padding:3px 5px;font-size:10px}.effects-caption{font-size:11px}.effects-stage .action-banner{min-width:170px;padding:5px 12px}.effects-stage .action-banner strong{font-size:17px}.effects-stage .action-banner>span:first-child{width:31px;height:31px}.effects-stage .battle-unit .sprite{width:61px;height:82px}.effects-stage .unit-name{font-size:10px}}
@media(prefers-reduced-motion:reduce){.unit-target-caret{animation:none!important}.pc-shortcut:hover{translate:none}.battle .damage-pop,.effects-stage .damage-pop{animation:fadein .12s!important}.pc-meter i{transition:none}}
[data-motion=reduced] .damage-pop{animation:fadein .12s!important}

.scene[data-playing-action=heal] .scene-bg,.scene[data-playing-action=spell] .scene-bg,.scene[data-playing-action=seal] .scene-bg{filter:brightness(.78) saturate(.86);transition:filter .2s}.scene[data-playing-action=sweep] .scene-bg{filter:brightness(.9);transition:filter .15s}

.spell-list{display:grid;gap:9px}.modal .spell-choice{display:flex;align-items:center;gap:14px;padding:12px 14px;min-height:108px}.spell-art{display:block;width:56px;height:56px;flex-shrink:0;border:2px solid #c5b282;border-radius:4px;box-shadow:0 1px 6px #67806955}.spell-choice>div{flex:1}.modal .spell-choice h3{font-family:'KaiTi','SimSun',serif;font-size:18px;color:#3b574c}.spell-choice h3 small{float:right;font:11px var(--pc-font);color:#4e8293}.modal .spell-choice p{font-size:11px;line-height:1.7;margin:5px 0 7px}.spell-choice .btn{font-size:11px;padding:4px 11px;min-height:24px}
