html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{--color-bg: #ffffff;--color-bg-soft: #f3fdfe;--color-bg-muted: #ecfbfc;--color-surface: #ffffff;--color-surface-strong: #f8feff;--color-border: #cdeef1;--color-border-strong: #8fdde3;--color-accent: #26d0ad;--color-accent-strong: #0ea5a8;--color-accent-soft: rgba(38, 208, 173, .14);--color-text: #000000;--color-text-muted: rgba(0, 0, 0, .68);--color-text-soft: rgba(0, 0, 0, .5);--color-danger: #ff6b6b;--color-danger-soft: rgba(255, 107, 107, .14)}html,body,#app{width:100%;height:100%;margin:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#b6e4e5;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#8dd9db}body{background:var(--color-bg);color:var(--color-text)}button,input,textarea,select{color:var(--color-text)}.app-layout,.app-layout.ant-layout{min-height:100vh;background:var(--color-bg)}.app-content,.app-layout .ant-layout-content{min-height:0;height:calc(100vh - 64px);background:var(--color-bg);overflow:hidden}.app-content-fullscreen,.app-content-fullscreen.ant-layout-content{min-height:0;height:100vh;background:var(--color-bg);overflow:hidden}.header,.header.ant-layout-header{display:flex;align-items:center;gap:24px;padding:0 20px;color:var(--color-text);background:#fff!important;border-bottom:1px solid var(--color-border);box-shadow:0 10px 28px #0ea5a814}.header-title{display:flex;flex:0 0 auto;flex-direction:column;line-height:1.3}.header-title strong{font-size:18px}.header-title span{color:var(--color-text-muted);font-size:12px}.header-title{position:relative}.header-title:after{content:"";position:absolute;top:-8px;right:-12px;bottom:-8px;left:-12px;z-index:-1;border-radius:14px;background:linear-gradient(135deg,#f3fdfef2,#ecfbfcb8)}.header-menu{flex:1;min-width:0;padding:4px;border:1px solid rgba(143,221,227,.55);border-radius:999px;background:#f3fdfee6}.header-menu.ant-menu,.header-menu.ant-menu-light{background:transparent;border-bottom:none}.header-menu.ant-menu-horizontal>.ant-menu-item,.header-menu.ant-menu-horizontal>.ant-menu-submenu{color:var(--color-text-muted);border-radius:999px;transition:background-color .2s ease,color .2s ease}.header-menu.ant-menu-horizontal>.ant-menu-item:hover,.header-menu.ant-menu-horizontal>.ant-menu-item-active,.header-menu.ant-menu-horizontal>.ant-menu-item-selected{color:var(--color-accent-strong)!important;background:#fffffff5}.header-menu.ant-menu-horizontal>.ant-menu-item:after,.header-menu.ant-menu-horizontal>.ant-menu-submenu:after{border-bottom-color:transparent!important}.header-menu.ant-menu-horizontal>.ant-menu-item:hover:after,.header-menu.ant-menu-horizontal>.ant-menu-item-active:after,.header-menu.ant-menu-horizontal>.ant-menu-item-selected:after{border-bottom-color:transparent!important}.editor-layout{display:grid;grid-template-rows:minmax(0,1fr) var(--timeline-height, 190px);gap:8px;height:100%;padding:12px;box-sizing:border-box;background:var(--color-bg);overflow:hidden}.editor-top{display:grid;grid-template-columns:320px minmax(400px,1fr) 540px;gap:12px;min-height:0}.inspector-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:12px;min-width:0;min-height:0;height:100%}.npc-list-panel{min-width:0}.npc-list{display:grid;gap:8px}.npc-list-empty{color:var(--color-text-soft);font-size:12px}.npc-list-item{display:grid;gap:6px;width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-strong);color:var(--color-text);text-align:left;cursor:pointer}.npc-list-item-selected{border-color:var(--color-accent-strong);background:var(--color-accent-soft);box-shadow:0 0 0 1px #0ea5a859}.npc-list-item-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.npc-list-item-meta{color:var(--color-text-muted);font-size:12px}.play-content{display:grid;grid-template-columns:320px minmax(560px,1fr);gap:12px;height:100%;min-height:0;padding:12px;box-sizing:border-box;background:var(--color-bg);overflow:hidden}.panel-card,.timeline-panel{min-width:0;min-height:0;height:100%;overflow:hidden}.panel-card .ant-card,.timeline-panel .ant-card,.canvas-card .ant-card{height:100%;border-color:var(--color-border);box-shadow:0 12px 32px #0ea5a814}.panel-card .ant-card-head,.timeline-panel .ant-card-head,.canvas-card .ant-card-head{background:var(--color-surface);border-bottom-color:var(--color-border)}.timeline-panel .ant-card-head{height:32px}.panel-card .ant-card-head-title,.timeline-panel .ant-card-head-title,.canvas-card .ant-card-head-title{color:var(--color-text)}.timeline-panel .ant-card-body{height:100%!important}.panel-card .ant-card-body,.timeline-panel .ant-card-body{height:calc(100% - 57px);overflow-y:auto;overflow-x:hidden;background:var(--color-surface);color:var(--color-text);padding-right:8px}.panel-card .ant-space,.panel-card .ant-space-item,.panel-card .ant-form{width:100%!important}.panel-card .ant-form-item{width:100%!important;margin-bottom:16px!important}.panel-card .ant-btn{width:100%!important}.panel-card .ant-card-body::-webkit-scrollbar,.timeline-panel .ant-card-body::-webkit-scrollbar{width:6px;height:6px}.panel-card .ant-card-body::-webkit-scrollbar-track,.timeline-panel .ant-card-body::-webkit-scrollbar-track{background:transparent}.panel-card .ant-card-body::-webkit-scrollbar-thumb,.timeline-panel .ant-card-body::-webkit-scrollbar-thumb{background:#b6e4e5;border-radius:3px}.panel-card .ant-card-body::-webkit-scrollbar-thumb:hover,.timeline-panel .ant-card-body::-webkit-scrollbar-thumb:hover{background:#8dd9db}.timeline-panel .ant-card-body{min-width:0;overflow:hidden}.canvas-card{height:100%;overflow:hidden}.canvas-card .ant-card-body{height:calc(100% - 57px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;overflow:hidden;background:radial-gradient(circle at center,#ffffff 0,var(--color-bg-muted) 76%)}.canvas{width:min(100%,1000px);height:auto;max-height:calc(100% - 32px);aspect-ratio:1000 / 650;border:1px solid var(--color-border-strong);border-radius:12px;background:var(--color-surface);box-shadow:0 20px 48px #0000001f}.play-area{position:relative;width:100%;height:100%;min-width:0;min-height:0;border-radius:12px}.play-area .play-canvas{width:100%;height:100%;max-height:none;display:block}.death-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#000;pointer-events:none;z-index:3}.play-hud-control{position:absolute;z-index:2;display:grid;gap:6px;padding:8px 10px;border:1px solid rgba(255,255,255,.58);border-radius:12px;background:#ffffffc7;box-shadow:0 10px 28px #0f172a24;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--color-text);cursor:grab;-webkit-user-select:none;user-select:none}.play-hud-control:active{cursor:grabbing}.play-area.rotating .play-hud-control,.play-area.rotating .play-hud-control *{pointer-events:none!important}.play-hud-row{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.play-hint{position:absolute;left:12px;right:12px;bottom:10px;z-index:1;min-height:0;margin-top:0;padding:6px 10px;border-radius:999px;background:#ffffffb8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center}.hint{min-height:22px;margin-top:10px;color:var(--color-text-muted)}.tool-grid{display:grid;gap:8px}.editor-actions{display:flex;flex-wrap:nowrap;gap:8px;width:100%}.editor-actions .ant-btn{width:36px;height:36px;padding:0;display:inline-flex;align-items:center;justify-content:center}.editor-actions .ant-upload-wrapper{display:inline-flex}.editor-actions .ant-upload-select{width:100%}.editor-form-row{display:grid;gap:12px}.editor-form-row-2col{grid-template-columns:repeat(2,minmax(0,1fr))}.editor-form-row .ant-form-item{margin-bottom:0}.npc-palette{display:grid;gap:8px}.npc-palette-item{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px dashed var(--color-border-strong);border-radius:10px;background:var(--color-accent-soft);color:var(--color-text);cursor:grab;-webkit-user-select:none;user-select:none}.npc-palette-item:active{cursor:grabbing}.npc-palette-item span{color:var(--color-text-soft);font-size:12px}.npc-property-actions{display:grid;gap:10px;margin-top:12px}.appearance-times-list{display:grid;gap:12px;margin-bottom:12px;padding:8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-soft)}.appearance-time-item{display:grid;gap:8px;padding:8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface)}.appearance-time-row{display:flex;align-items:center;justify-content:space-between}.appearance-time-label{font-size:12px;font-weight:600;color:var(--color-text-muted)}.appearance-time-inputs{display:grid;grid-template-columns:1fr 1fr;gap:8px}.appearance-time-inputs .ant-form-item{margin-bottom:0}.region-palette{display:grid;gap:8px}.region-palette-item{display:flex;flex-direction:column;gap:4px;padding:12px;border:1px dashed var(--color-accent);border-radius:10px;background:var(--color-accent-soft);color:var(--color-text);cursor:grab;-webkit-user-select:none;user-select:none}.region-palette-item:active{cursor:grabbing}.region-palette-item span{color:var(--color-text-soft);font-size:12px}.region-list{display:grid;gap:8px}.region-empty{color:var(--color-text-soft);font-size:12px}.region-item{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-strong);color:var(--color-text);text-align:left;cursor:pointer}.region-item-selected{border-color:var(--color-accent-strong);background:var(--color-accent-soft);box-shadow:0 0 0 1px #0ea5a859}.region-item-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.region-item-meta{color:var(--color-text-muted);font-size:12px}.status-tag.ant-tag{margin-inline-end:0;border-radius:999px;color:var(--color-text)!important}.status-tag-safe.ant-tag,.status-tag-info.ant-tag{border-color:var(--color-border-strong);background:var(--color-accent-soft)}.status-tag-danger.ant-tag{border-color:#ff6b6b66;background:var(--color-danger-soft)}.status-list{display:grid;gap:8px}.status-row{display:flex;justify-content:space-between}.resource-row{display:grid;gap:6px}.resource-bar{height:8px;overflow:hidden;border-radius:999px;background:#0f172a14}.resource-bar-fill{height:100%;border-radius:inherit;transition:width .12s ease}.resource-bar-stamina{background:linear-gradient(90deg,#22c55e,#84cc16)}.resource-bar-health{background:linear-gradient(90deg,#ef4444,#fb7185)}.timeline-area{min-width:0;min-height:0;display:flex;flex-direction:column;gap:2px}.timeline-height-resizer{display:flex;align-items:center;justify-content:center;height:6px;border-radius:999px;cursor:ns-resize}.timeline-height-resizer-grip{width:56px;height:3px;border-radius:999px;background:#0ea5a847}.timeline-panel .ant-card-body{display:flex;flex-direction:column;gap:4px;padding-top:8px!important;padding-bottom:8px!important}.timeline-shell{min-width:0;min-height:0;width:100%;max-width:100%;flex:1;overflow-x:auto;overflow-y:auto}.timeline-toolbar{display:flex;align-items:center;gap:6px;min-height:22px;color:var(--color-text)}.timeline-toolbar strong{font-size:13px;line-height:1;flex:0 0 auto}.timeline-toolbar-actions{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto}.timeline-toolbar-actions .ant-btn{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center}.timeline-toolbar-hint{color:var(--color-text-soft);font-size:10px;line-height:1.1}.timeline-toolbar-status{display:inline-flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:nowrap}.timeline-playback-status{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-height:22px}.timeline-editor{display:inline-grid;grid-template-columns:68px var(--timeline-main-width);min-width:calc(68px + var(--timeline-main-width));width:max-content;overflow:visible;border:1px solid var(--color-border);border-radius:10px;background:linear-gradient(180deg,#ffffff 0%,var(--color-bg-soft) 100%)}.timeline-sidebar{position:sticky;left:0;z-index:2;background:linear-gradient(180deg,#ffffff 0%,var(--color-bg-muted) 100%);border-right:1px solid var(--color-border)}.timeline-ruler-spacer,.timeline-track-label{display:flex;align-items:center;height:34px;padding:0 6px;color:var(--color-text);font-size:10px}.timeline-ruler-spacer{height:22px;color:var(--color-text-muted);border-bottom:1px solid var(--color-border)}.timeline-track-label{border-bottom:1px solid rgba(143,221,227,.7);border-left:4px solid;display:flex;align-items:center;justify-content:space-between;gap:4px}.track-index{color:var(--color-text-soft);font-size:9px}.timeline-main{position:relative;width:var(--timeline-main-width);min-width:var(--timeline-main-width)}.timeline-ruler{position:relative;height:22px;border-bottom:1px solid var(--color-border);cursor:pointer;background-image:repeating-linear-gradient(to right,rgba(14,165,168,.12) 0,rgba(14,165,168,.12) 1px,transparent 1px,transparent var(--timeline-step))}.timeline-playhead{position:absolute;top:0;bottom:0;z-index:3;width:0;border-left:2px solid #ff6b6b;pointer-events:none}.timeline-playhead-marker{position:absolute;top:-1px;left:-5px;width:10px;height:10px;border-radius:999px;background:#ff6b6b;box-shadow:0 0 0 2px #ffffffd9}.timeline-ruler-tick{position:absolute;top:4px;transform:translate(-50%);color:var(--color-text-muted);font-size:9px;white-space:nowrap}.timeline-ruler-tick:first-child{transform:translate(0)}.timeline-track-lane{position:relative;height:34px;border-bottom:1px solid rgba(143,221,227,.7);background-image:repeating-linear-gradient(to right,rgba(38,208,173,.12) 0,rgba(38,208,173,.12) 1px,transparent 1px,transparent var(--timeline-step))}.timeline-track-lane:nth-child(2n){background-color:#26d0ad0a}.timeline-clip{position:absolute;top:4px;height:24px;padding:2px 7px 2px 9px;border:1px solid var(--color-accent-strong);border-radius:7px;background:linear-gradient(180deg,#fffc,#fff9);box-shadow:0 6px 14px #0000001a;color:var(--color-text);cursor:grab;overflow:hidden;-webkit-user-select:none;user-select:none;opacity:.85}.timeline-appearance-time{position:absolute;top:0;height:34px;border:2px dashed rgba(14,165,168,.5);border-radius:4px;background:#26d0ad14;cursor:grab;-webkit-user-select:none;user-select:none}.timeline-clip:active{cursor:grabbing}.timeline-clip-selected{border-color:var(--color-accent-strong);box-shadow:0 0 0 2px #0ea5a83d,0 10px 18px #00000029}.timeline-clip-ghost{opacity:.35;border:2px dashed #0ea5a8;background:#0ea5a81a!important;pointer-events:none;z-index:1}.timeline-floating-clip{position:fixed!important;height:24px;border-radius:4px;border:2px solid rgba(255,255,255,.5);box-shadow:0 4px 16px #0000004d;display:flex;align-items:center;padding:0 6px;cursor:grabbing}.timeline-clip-title,.timeline-clip-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-clip-title{font-size:10px;line-height:1.1;font-weight:700}.timeline-clip-meta{display:none}.timeline-resize-handle{position:absolute;left:0;top:0;width:6px;height:100%;border-right:1px solid rgba(0,0,0,.12);background:#0000000d;cursor:ew-resize}.timeline-appearance-resize-handle-start,.timeline-appearance-resize-handle-end{position:absolute;top:0;width:6px;height:100%;cursor:ew-resize;background:#0ea5a84d}.timeline-appearance-resize-handle-start{left:0}.timeline-appearance-resize-handle-end{right:0}.mechanism-context-menu{position:fixed;z-index:1200;min-width:132px;padding:6px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);box-shadow:0 12px 32px #00000029}.mechanism-context-menu .ant-btn{color:var(--color-text);text-align:left}.npc-context-menu{position:fixed;z-index:1200;min-width:100px;padding:6px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);box-shadow:0 12px 32px #00000029}.npc-context-menu .ant-btn{color:var(--color-text);text-align:left}.mechanism-inspector{display:block}.play-buff-panel{border-color:#3b82f673;background:#eff6ffcc}.play-debuff-panel{border-color:#ef444473;background:#fef2f2cc}.play-buff-panel-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);margin-bottom:2px}.play-buff-empty{font-size:11px;color:var(--color-text-soft);text-align:center;padding:2px 0}.play-buff-list{display:flex;flex-wrap:wrap;gap:6px}.play-buff-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:48px;height:52px;padding:3px 2px;border:2px solid;border-radius:8px;background:#ffffff8c;box-shadow:0 2px 6px #0000000f;transition:opacity .3s ease,border-color .3s ease}.play-buff-chip-expiring{opacity:.55;animation:buff-pulse .6s ease-in-out infinite alternate}@keyframes buff-pulse{0%{opacity:.55}to{opacity:.2}}.play-buff-symbol{font-size:16px;line-height:1}.play-buff-icon{width:22px;height:22px;object-fit:contain}.play-buff-value{font-size:10px;font-weight:700;line-height:1;color:var(--color-text)}.play-buff-timer{font-size:9px;line-height:1;color:var(--color-text-muted)}.play-target-hp-panel{border-color:#ef444459;background:#fef2f2cc}.play-target-hp-name{font-size:12px;font-weight:700;color:var(--color-text)}.play-target-hp-row{display:flex;align-items:center;gap:8px}.play-target-hp-text{font-size:11px;font-weight:600;color:var(--color-text-muted);white-space:nowrap}.play-target-debuff-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.play-target-debuff-chip{display:flex;align-items:center;gap:3px;padding:2px 6px;border:1.5px solid;border-radius:6px;background:#ffffff8c;font-size:10px;line-height:1.3}.play-target-debuff-icon{width:16px;height:16px;object-fit:contain}.play-target-debuff-label{font-weight:600;color:var(--color-text)}.play-target-debuff-stacks{font-weight:700;color:#a855f7}.play-target-debuff-timer{color:var(--color-text-muted);font-size:9px}.npc-list-hp-bar{height:4px;overflow:hidden;border-radius:999px;background:#0f172a14;margin-top:2px}.npc-list-hp-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#22c55e,#ef4444);transition:width .2s ease}.npc-list-hp-text{font-size:10px;color:var(--color-text-muted);text-align:right}.play-hotbar-panel{border-color:#0ea5a866;background:#ffffffb8;width:fit-content!important;min-width:fit-content}.hotbar-grid{display:grid;grid-auto-rows:40px;gap:3px}.hotbar-size-row{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--color-text-muted)}.hotbar-slot{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:42px;height:40px;border:1px solid rgba(15,23,42,.12);border-radius:6px;background:#0f172a0a;position:relative;overflow:hidden}.hotbar-slot-filled{border-color:var(--color-accent-strong);background:#0ea5a81a}.hotbar-slot-ready{border-color:var(--color-accent-strong);background:#0ea5a82e}.hotbar-slot-wpn{border-color:#f59e0b73}.hotbar-slot-abl{border-color:#3b82f673}.hotbar-slot-out-of-range{filter:grayscale(.6) brightness(.6)}.hotbar-slot-icon-wrap{position:relative;width:28px;height:28px}.hotbar-slot-icon{width:28px;height:28px;object-fit:contain;pointer-events:auto;cursor:pointer}.hotbar-slot-icon-burst .hotbar-slot-icon{animation:icon-burst-in .3s ease-out}@keyframes icon-burst-in{0%{transform:scale(1.8);opacity:.6}to{transform:scale(1);opacity:1}}.hotbar-slot-ripple{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px solid rgba(255,255,255,.7);background:transparent;pointer-events:none;z-index:10;animation:skill-ripple-expand .4s ease-out forwards}@keyframes skill-ripple-expand{0%{transform:scale(.3);opacity:.8}to{transform:scale(2.5);opacity:0}}.hotbar-slot-charge-count{position:absolute;right:-2px;bottom:-2px;width:14px;height:14px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#22c55e;color:#fff;font-size:9px;font-weight:700;z-index:2;pointer-events:none}.hotbar-slot-name{font-size:9px;font-weight:700;line-height:1;color:var(--color-text)}.hotbar-slot-key{font-size:8px;line-height:1;color:var(--color-text-muted)}.hotbar-slot-gcd-circle{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px;background:conic-gradient(from 0deg,#000000a6,#000000a6 calc(var(--cd-pct) * 360deg),#0000 calc(var(--cd-pct) * 360deg));pointer-events:none}.hotbar-slot-cd-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;border-radius:6px;background:#66686880;pointer-events:none}.hotbar-slot-cd-text{font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);z-index:1}.play-threat-panel{border-color:#eab30873}.threat-entries{display:flex;flex-direction:column;gap:4px;margin-top:4px}.threat-entry-row{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px}.threat-target-name{color:var(--color-text-muted)}.threat-value{font-weight:700;color:var(--color-accent-strong);font-variant-numeric:tabular-nums}.play-party-panel{max-height:400px;overflow-y:auto;border-color:#64a0dc66;padding:6px 10px}.party-title{font-size:12px;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;text-align:center}.party-members{display:flex;flex-direction:column;gap:2px}.party-member{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;background:#00000026;transition:background .2s}.party-member-self{background:#64a0dc26}.party-member-dead{opacity:.45;background:#50505040}.party-member-dead .party-name,.party-member-dead .party-job-name,.party-member-dead .party-hp-text{color:#888}.party-member-dead .party-hp-bar-wrap{background:#3c3c3c66}.party-role-bar{width:4px;height:28px;border-radius:2px;flex-shrink:0}.party-info{flex:1;min-width:0}.party-name-row{display:flex;align-items:center;gap:3px}.party-name{font-size:12px;font-weight:600;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.party-captain{font-size:10px;color:#f59e0b;flex-shrink:0}.party-job-name{font-size:10px;color:var(--color-text-muted);line-height:1.2}.party-hp-section{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;min-width:72px}.party-hp-bar-wrap{width:100%;height:5px;border-radius:2px;background:#0000004d;overflow:hidden}.party-hp-bar{height:100%;border-radius:2px;transition:width .3s ease,background .3s ease}.party-hp-text{font-size:10px;color:var(--color-text);font-variant-numeric:tabular-nums}.play-combatstats-panel{max-height:300px;overflow-y:auto;border-color:#ef444466}.play-combatstats-header{display:flex;align-items:center;gap:6px;margin-bottom:6px}.play-combatstats-back{cursor:pointer;font-size:13px;color:#ef4444;-webkit-user-select:none;user-select:none;padding:0 2px;transition:color .15s}.play-combatstats-back:hover{color:#f87171}.play-combatstats-title{font-weight:700;font-size:13px;flex:1}.play-combatstats-total{font-weight:700;font-size:13px;color:#ef4444;font-variant-numeric:tabular-nums}.play-combatstats-empty{color:var(--color-text-muted);font-size:12px;padding:4px 0}.play-combatstats-menu{display:flex;flex-direction:column;gap:3px}.play-combatstats-menu-item{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border-radius:4px;font-size:12px;cursor:default;transition:background .15s}.play-combatstats-menu-item-active{cursor:pointer}.play-combatstats-menu-item-active:hover{background:#ef444414}.play-combatstats-menu-item-disabled{color:#aaa;cursor:default}.play-combatstats-menu-arrow{font-size:10px;color:#ef4444}.play-combatstats-menu-hint{font-size:10px;color:#bbb}.play-combatstats-list{display:flex;flex-direction:column;gap:3px}.play-combatstats-row{position:relative}.play-combatstats-bar-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#ef44440f;border-radius:4px;overflow:hidden}.play-combatstats-bar-fill{height:100%;background:#ef444426;border-radius:4px;transition:width .15s ease}.play-combatstats-info{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1;padding:2px 6px}.play-combatstats-name{font-size:12px;font-weight:600}.play-combatstats-value{font-size:11px;color:#666;white-space:nowrap;font-variant-numeric:tabular-nums}.play-combatstats-hits{font-size:10px;color:#999;padding:0 6px 1px;position:relative;z-index:1}.play-gauge-panel{border-color:#a855f773}.play-gauge-title{font-size:13px;font-weight:700;color:#a855f7;margin-bottom:8px}.play-gauge-section{margin-bottom:8px}.play-gauge-row{display:flex;justify-content:space-between;align-items:center;font-size:11px}.play-gauge-label{color:var(--color-text-muted)}.play-gauge-value{font-weight:700;font-variant-numeric:tabular-nums}.play-gauge-timer{font-size:10px;color:#a855f7;text-align:right}.play-gauge-feather{padding:4px 8px;border-radius:6px;background:#a855f71f}.play-gauge-feather-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.play-gauge-feather-name{font-size:12px;font-weight:700}.play-gauge-feather-chifeng .play-gauge-feather-name{color:#22c55e}.play-gauge-feather-moshi .play-gauge-feather-name{color:#ef4444}.play-gauge-feather-time{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}.play-gauge-feather-chifeng .play-gauge-feather-time{color:#22c55e}.play-gauge-feather-moshi .play-gauge-feather-time{color:#ef4444}.play-gauge-feather-chifeng{border-color:#22c55e66;background:#22c55e14}.play-gauge-feather-moshi{border-color:#ef444466;background:#ef444414}.play-gauge-feather-bar-chifeng{background:linear-gradient(90deg,#22c55e,#16a34a);animation:feather-pulse-green .5s ease-in-out infinite alternate}.play-gauge-feather-bar-moshi{background:linear-gradient(90deg,#ef4444,#dc2626);animation:feather-pulse-red .5s ease-in-out infinite alternate}@keyframes feather-pulse-green{0%{opacity:1}to{opacity:.2}}@keyframes feather-pulse-red{0%{opacity:1}to{opacity:.2}}.play-quiver-dots{display:flex;gap:6px;margin-top:4px}.play-quiver-dot{width:12px;height:12px;border-radius:50%;border:2px solid rgba(168,85,247,.3);transition:background .2s}.play-quiver-dot-empty{background:transparent}.play-quiver-dot-normal{background:#eab308;border-color:#eab308}.play-quiver-dot-golden{background:#ef4444;border-color:#ef4444}.play-castbar-panel{border-color:#eab30873;padding:6px 12px!important}.play-castbar-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.play-castbar-icon{width:20px;height:20px;object-fit:contain}.play-castbar-name{flex:1;font-size:12px;font-weight:700}.play-castbar-time{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-accent-strong)}.play-castbar-track{width:100%;height:10px;border-radius:5px;background:#0f172a14;overflow:hidden}.play-castbar-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#22c55e,#16a34a);transition:width .1s linear}.play-castbar-reverse{background:linear-gradient(270deg,#a855f7,#7c3aed)}.resource-bar-gauge{background:linear-gradient(90deg,#a855f7,#c084fc)}.skill-tooltip{position:fixed;z-index:100;width:240px;max-width:280px;padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:10px;background:#fffffff5;box-shadow:0 8px 24px #0f172a29;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}.skill-tooltip-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.skill-tooltip-icon{width:32px;height:32px;object-fit:contain}.skill-tooltip-category{display:block;font-size:11px;margin-top:2px}.skill-tooltip-desc{font-size:11px;line-height:1.5;color:var(--color-text-muted);margin-bottom:8px;white-space:pre-line;word-break:break-word}.skill-tooltip-details{display:flex;flex-direction:column;gap:4px}.skill-tooltip-row{display:flex;justify-content:space-between;align-items:center;font-size:12px}.skill-tooltip-row span{color:var(--color-text-muted)}
