@font-face{font-family:CinzelLocal;src:url(/assets/fonts/Cinzel-Variable.ttf) format("truetype");font-display:swap}@font-face{font-family:InterLocal;src:url(/assets/fonts/Inter-Variable.ttf) format("truetype");font-display:swap}:root{--brand-blue: #2500ff;--brand-orange: #ffa500;--brand-blue-soft: #6552ff;--brand-orange-soft: #ffc24d;--brand-orange-deep: #d48100;--color-bg-0: #070d13;--color-bg-1: #0f1722;--color-bg-2: #18283a;--color-panel: rgba(11, 18, 28, .86);--color-panel-strong: rgba(8, 14, 22, .93);--color-border: #39516a;--color-border-soft: #2c4155;--color-text: #e9eef7;--color-muted: #9db1c8;--color-accent: #cfaa6f;--color-danger: #d36b55;--color-success: #74ca86;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-lg: 0 14px 34px rgba(0, 0, 0, .4);--shadow-md: 0 8px 24px rgba(0, 0, 0, .3);--motion-panel: .18s;--motion-pulse: .9s;--icon-xs: 14px;--icon-sm: 16px;--icon-md: 18px;--icon-lg: 22px;--icon-xl: 26px;--ime-offset: 0px;--mobile-chat-height: min(30dvh, 230px);--mobile-panel-top: 122px;--mobile-stick-zone-size: 140px;--mobile-stick-base-size: 132px;--mobile-stick-knob-size: 58px;--mobile-stick-max-radius: 46px;--z-world: 1;--z-hud: 40;--z-mobile-controls: 56;--z-mobile-joystick: 57;--z-mobile-tip: 58;--z-toast: 60;--z-tooltip: 66;--z-dialog: 72;color-scheme:dark}body.theme-hero{--color-accent: var(--brand-orange);--color-border: color-mix(in srgb, var(--brand-blue-soft) 36%, #39516a 64%);--color-border-soft: color-mix(in srgb, var(--brand-blue-soft) 28%, #2c4155 72%);background:radial-gradient(circle at 7% 12%,color-mix(in srgb,var(--brand-blue-soft) 48%,transparent 52%),transparent 42%),radial-gradient(circle at 86% 86%,color-mix(in srgb,var(--brand-orange-soft) 42%,transparent 58%),transparent 34%),linear-gradient(180deg,var(--color-bg-2) 0%,var(--color-bg-1) 48%,var(--color-bg-0) 100%)}*{box-sizing:border-box}body{margin:0;overflow:hidden;font-family:InterLocal,Segoe UI,sans-serif;color:var(--color-text);background:radial-gradient(circle at 8% 14%,rgba(96,136,176,.22),transparent 42%),radial-gradient(circle at 84% 88%,rgba(164,109,72,.2),transparent 36%),linear-gradient(180deg,var(--color-bg-2) 0%,var(--color-bg-1) 48%,var(--color-bg-0) 100%)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#game{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:var(--z-world)}#game canvas{touch-action:none}#hero-toast-layer{position:fixed;top:max(14px,env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:var(--z-toast);display:grid;gap:8px;pointer-events:none}#duel-result-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-dialog);display:grid;place-items:center;pointer-events:none}.duel-result-banner{font-family:CinzelLocal,InterLocal,serif;font-size:clamp(56px,12vw,176px);font-weight:900;letter-spacing:.08em;text-transform:uppercase;text-align:center;opacity:0;transform:scale(.9) translateY(10px);animation:duel-result-in .18s ease-out forwards}.duel-result-banner.victory{color:#ffe7a5;text-shadow:0 0 12px rgba(255,188,72,.72),0 0 34px rgba(37,0,255,.42),0 6px 22px rgba(0,0,0,.7)}.duel-result-banner.defeat{color:#ffb7a7;text-shadow:0 0 12px rgba(255,88,73,.74),0 0 28px rgba(80,18,18,.5),0 6px 22px rgba(0,0,0,.7)}.duel-result-banner.fade-out{animation:duel-result-out .26s ease-in forwards}@keyframes duel-result-in{0%{opacity:0;transform:scale(.88) translateY(14px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes duel-result-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(1.03) translateY(-6px)}}.hero-toast{min-width:220px;max-width:min(80vw,460px);border-radius:999px;border:1px solid #4a6380;background:#080e16e6;color:#eaf1fb;padding:10px 14px;font-size:13px;line-height:1.2;box-shadow:0 10px 24px #00000059;animation:toast-enter .18s ease-out}.hero-toast.minor{border-color:var(--brand-blue-soft)}.hero-toast.major{border-color:var(--brand-orange-soft)}.hero-toast.epic{border-color:var(--brand-orange);box-shadow:0 0 0 1px #ffa5004d,0 12px 30px #00000073}.hero-toast.item-toast{border-radius:12px;min-width:min(86vw,360px);max-width:min(92vw,560px);padding:10px 12px}.item-toast-title{font-weight:600;color:#f1f6ff}.item-toast-detail{margin-top:6px;font-size:12px;line-height:1.3;color:#c6d5e8}.pickup-toast-title{color:#f8fbff}.pickup-toast-effect{color:#d6e5f8}.pickup-toast-reward{margin-top:7px;font-size:11.5px;color:#ffdb9c}@keyframes toast-enter{0%{opacity:0;transform:translateY(-8px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}#hud{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-hud);pointer-events:none;padding:max(var(--space-2),env(safe-area-inset-top)) var(--space-2) max(var(--space-2),env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(250px,330px) minmax(0,1fr) minmax(300px,390px);grid-template-rows:auto auto auto minmax(0,1fr) auto;grid-template-areas:"top top top" "player status action" "player insight action" ". . action" "chat abilities action";gap:var(--space-2)}.panel{pointer-events:auto;border-radius:var(--radius-md);border:1px solid color-mix(in srgb,var(--color-border) 88%,#122233 12%);background:linear-gradient(180deg,color-mix(in srgb,var(--color-panel) 78%,#1e2c3c 22%) 0%,var(--color-panel-strong) 100%);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.panel-enter{animation:panel-enter var(--motion-panel) ease-out}@keyframes panel-enter{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}.pulse-accent{animation:pulse-accent var(--motion-pulse) ease-in-out infinite}@keyframes pulse-accent{0%{box-shadow:0 0 #ffa50059}65%{box-shadow:0 0 0 11px #ffa50000}to{box-shadow:0 0 #ffa50000}}#top-strip{grid-area:top;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3)}#brand{display:flex;align-items:center;gap:var(--space-2);min-width:0}#brand-logo{display:block;width:clamp(150px,18vw,280px);max-width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 0 10px rgba(55,210,255,.16)) drop-shadow(0 6px 20px rgba(0,0,0,.38))}body.theme-hero #brand-logo{filter:drop-shadow(0 0 14px rgba(37,0,255,.2)) drop-shadow(0 0 18px rgba(255,165,0,.22)) drop-shadow(0 8px 22px rgba(0,0,0,.42))}#brand .subtitle{font-size:12px;letter-spacing:.09em;color:var(--color-muted)}#runtime-badges{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end}#mobile-panels-btn,#mobile-input-mode-btn{display:none}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border-radius:999px;border:1px solid var(--color-border-soft);color:#dce8f5;font-size:12px;background:#090e15a8}#server-state-badge.offline{border-color:#704343;color:#efc2c2}#server-state-badge.online{border-color:#3f6f52;color:#bde7c5}button,input,select{font-family:inherit;font-size:14px;border-radius:var(--radius-sm);border:1px solid #334b63;color:var(--color-text);background:linear-gradient(180deg,#0f1721f2,#0a1018f2);transition:border-color .12s ease,filter .12s ease,transform 90ms ease,box-shadow .12s ease;touch-action:manipulation}select{color:#e9eef7;background-color:#0d1723}select option{color:#e9eef7;background:#0c1724}select option:checked{color:#081320;background:color-mix(in srgb,var(--brand-orange-soft) 72%,#ffffff 28%);font-weight:600}select option:disabled{color:#9fb3c8;background:#101a26}select:disabled,button:disabled,input:disabled{opacity:1;color:#c2d1e2;border-color:#3a4f67;background:linear-gradient(180deg,#161f2cfa,#101721fa)}button{cursor:pointer;padding:8px 10px;min-height:40px}button.with-icon{display:inline-flex;align-items:center;justify-content:center;gap:8px}button.with-icon .ui-icon{transition:transform .11s ease,filter .13s ease}button.with-icon:hover .ui-icon,button.with-icon:focus-visible .ui-icon{transform:translateY(-1px) scale(1.03);filter:drop-shadow(0 0 6px rgba(37,0,255,.33))}button:hover{border-color:#6a88a8;filter:brightness(1.08)}button:active{transform:translateY(1px)}button:focus-visible,input:focus-visible,select:focus-visible{outline:none;border-color:color-mix(in srgb,var(--brand-orange-soft) 65%,#5c86ad 35%);box-shadow:0 0 0 2px #2500ff59}input,select{padding:8px 10px}.with-icon{display:inline-flex;align-items:center;gap:6px;min-width:0}.with-icon .label-text{min-width:0}.ui-icon{width:var(--icon-sm);height:var(--icon-sm);object-fit:contain;flex:0 0 auto;-webkit-user-select:none;user-select:none}.ui-icon--xs{width:var(--icon-xs);height:var(--icon-xs)}.ui-icon--sm{width:var(--icon-sm);height:var(--icon-sm)}.ui-icon--md{width:var(--icon-md);height:var(--icon-md)}.ui-icon--lg{width:var(--icon-lg);height:var(--icon-lg)}.ui-icon--xl{width:var(--icon-xl);height:var(--icon-xl)}.icon-muted{filter:saturate(.85) brightness(1)}.icon-accent{filter:drop-shadow(0 0 4px rgba(255,165,0,.26))}.icon-success{filter:hue-rotate(-48deg) saturate(1.22)}.icon-danger{filter:hue-rotate(145deg) saturate(1.1)}.icon-hover-lift{transition:transform .11s ease,filter .13s ease}.icon-hover-lift:hover,.icon-hover-lift:focus-visible{transform:translateY(-1px) scale(1.03);filter:drop-shadow(0 0 6px rgba(37,0,255,.35))}.icon-ready-pulse{animation:icon-ready-pulse 1.1s ease-in-out infinite}@keyframes icon-ready-pulse{0%{transform:scale(1);filter:drop-shadow(0 0 0 rgba(255,165,0,0))}50%{transform:scale(1.05);filter:drop-shadow(0 0 5px rgba(255,165,0,.42))}to{transform:scale(1);filter:drop-shadow(0 0 0 rgba(255,165,0,0))}}#learn-toggle-btn{border-color:color-mix(in srgb,var(--brand-blue-soft) 70%,#3b5168 30%);color:#dfe7ff}body.theme-hero #learn-toggle-btn{border-color:color-mix(in srgb,var(--brand-orange) 50%,var(--brand-blue-soft) 50%);color:#ffe8bc}#player-card{grid-area:player;padding:var(--space-3);display:grid;gap:var(--space-2);align-content:start}#player-head{display:grid;gap:4px}#player-name{font-family:CinzelLocal,serif;font-size:18px;letter-spacing:.03em}#player-class{font-size:13px;color:var(--color-muted)}#player-level-zone{display:flex;gap:6px;flex-wrap:wrap}#hp-track{position:relative;width:100%;height:11px;border-radius:999px;border:1px solid #2e4757;overflow:hidden;background:#070b11cc}#hp-fill{height:100%;width:100%;background:linear-gradient(90deg,#4dbd6f,#87dc82);transition:width .14s ease}#hp-text{font-size:12px;color:#cfe1d4}#xp-track{position:relative;width:100%;height:9px;border-radius:999px;border:1px solid #2c3d75;overflow:hidden;background:#070b11bf}#xp-fill{height:100%;width:0%;background:linear-gradient(90deg,#2500ff,#4e7dff 70%,#9ec6ff);transition:width .14s ease}#xp-text{font-size:12px;color:#cdd9ff}#hero-presence{border-top:1px solid rgba(83,108,132,.38);padding-top:8px;display:grid;gap:8px}.hero-presence-grid{display:grid;gap:6px}.hero-presence-row{display:grid;gap:2px}.hero-label{font-size:11px;color:var(--color-muted);letter-spacing:.04em;text-transform:uppercase}#hero-rank,#hero-streak,#hero-last-moment{font-size:13px;color:#ebf0f8}#hero-rank{color:#f6ddb0}#hero-last-moment{color:#d1dff0}#action-tray{grid-area:action;padding:var(--space-3);display:grid;gap:var(--space-2);align-content:start;min-height:0;overflow-y:auto;overscroll-behavior:contain}#status{grid-area:status;padding:var(--space-2) var(--space-3);display:grid;gap:5px;align-content:center}#status-connection{font-size:13px}#status-metrics{font-size:12px;color:var(--color-muted)}#enemy-insight{grid-area:insight;padding:var(--space-2) var(--space-3);display:grid;gap:6px}#enemy-insight-title{font-size:13px;color:#f4dfbc}#enemy-insight-detail{font-size:12px;color:#b9cde1;line-height:1.28;display:grid;gap:4px}.enemy-insight-line{line-height:1.26}#login-panel,#controls,#controls .row.action-buttons{display:grid;gap:var(--space-2)}#body-type-panel,#ai-panel,#talent-panel,#inventory-panel{border-top:1px solid rgba(83,108,132,.35);padding-top:8px;display:grid;gap:8px}.section-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.section-content{display:grid;gap:8px}.section-toggle{min-height:30px;padding:4px 8px;font-size:12px;border-color:#415a73}.collapsible-section.collapsed .section-content{display:none}#ai-panel{gap:7px}#ai-panel .row{display:grid;gap:8px}#ai-panel .ai-talk-row{grid-template-columns:repeat(3,minmax(0,1fr))}#ai-panel button{min-height:38px}#ai-status,#ai-npc-output{font-size:12px;color:#c7d9ec;line-height:1.28;border:1px solid rgba(64,89,114,.6);border-radius:var(--radius-sm);background:#060c12ad;padding:7px 8px}#ai-status.warn{color:#f3cb8c;border-color:#ad733aa6}#ai-status.error{color:#efb3b3;border-color:#954949b3}.panel-title{font-family:CinzelLocal,serif;font-size:14px;letter-spacing:.04em;color:#f1dab0}body.theme-hero .panel-title{color:color-mix(in srgb,var(--brand-orange-soft) 80%,#f3e3c8 20%)}.body-row{display:grid;grid-template-columns:1fr auto;gap:8px}.control-with-icon{display:inline-grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-width:0}.control-with-icon>span{display:inline-flex;align-items:center;justify-content:center}.control-with-icon>select{min-width:0}#talent-points{font-size:12px;color:#c6d7e9}#talent-tree{display:grid;gap:6px}.talent-node{border:1px solid #35506b;border-radius:var(--radius-sm);background:#060b12c2;padding:8px;display:grid;gap:5px}.talent-node .talent-name{font-size:13px;color:#e9dbc2;display:inline-flex;align-items:center;gap:6px}.talent-node .talent-desc{font-size:12px;color:var(--color-muted);line-height:1.2}.talent-node .talent-rank{font-size:11px;color:#8eb2d7}.talent-node .talent-actions{display:flex;justify-content:flex-end}.talent-node.allocated{border-color:#5d7f47;background:#141f12a6}.talent-node.maxed .talent-rank{color:#9fd089}#inventory-panel{max-height:min(66dvh,560px);min-height:0}#inventory-panel .section-content{min-height:0;gap:10px}#inventory-panel .inventory-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;min-width:0}#inventory-panel .inventory-controls .control-with-icon{min-width:0}#inventory-panel .inventory-controls select{width:100%;min-width:0}#equipment-summary{display:grid;gap:6px;border:1px solid rgba(54,77,100,.72);border-radius:var(--radius-sm);background:#070c12eb;padding:8px;font-size:12px;color:#d2e1ef}#equipment-summary .equip-row{display:grid;grid-template-columns:minmax(0,1fr);min-width:0}#equipment-summary .equip-header{color:#b9cee4;font-size:11px;letter-spacing:.05em;text-transform:uppercase;padding-bottom:3px;border-bottom:1px solid rgba(64,88,111,.55)}#equipment-summary .equip-gold{color:#f5d9a4;font-size:12px}#equipment-summary .equip-row.empty{display:inline-flex;align-items:center;gap:6px;color:#9eb2c8}#equipment-summary .equip-row-button{width:100%;justify-content:flex-start;text-align:left;min-height:36px;padding:6px 8px}#equipment-summary .equip-row-button .label-text{min-width:0;white-space:normal;overflow-wrap:anywhere;word-break:break-word;line-height:1.25}#inventory-list{max-height:min(42dvh,360px);min-height:160px;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:9px;padding:8px;border:1px solid rgba(50,73,95,.72);border-radius:var(--radius-sm);background:#050a10fa;align-content:flex-start;position:relative;z-index:1}.inventory-empty{color:#9eb2c8;font-size:12px;line-height:1.3}.inventory-item{border:1px solid #35506a;border-radius:var(--radius-sm);background:#080e16fc;padding:9px;display:flex;flex-direction:column;gap:7px;overflow:visible;position:relative;isolation:isolate;min-width:0;flex:0 0 auto}.inventory-item.can-compare{cursor:help}.inventory-item>*{position:static;min-width:0}.inventory-item .item-top{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:start;gap:8px;min-width:0}.inventory-item .item-main{display:flex;flex-direction:column;gap:4px;min-width:0}.inventory-item .item-visual{width:32px;height:32px;border-radius:8px;border:1px solid #35526d;background:linear-gradient(180deg,#162230f5,#080e16f5);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #8cabd324}.inventory-item .item-art{width:22px;height:22px;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 1px 2px rgba(0,0,0,.42))}.inventory-item .item-visual.rarity-common{border-color:color-mix(in srgb,#9fb0c2 68%,#2f4159 32%)}.inventory-item .item-visual.rarity-rare{border-color:color-mix(in srgb,#56a5ff 78%,#2f4159 22%);box-shadow:inset 0 0 0 1px #6aadff47}.inventory-item .item-visual.rarity-epic{border-color:color-mix(in srgb,#ffb74b 78%,#2f4159 22%);box-shadow:inset 0 0 0 1px #ffb74b57,0 0 12px #ffa50029}.inventory-item .item-name{font-size:13px;font-weight:600;color:#e6d9c2;line-height:1.25;min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.inventory-item .item-meta{font-size:11.5px;color:var(--color-muted);line-height:1.24;min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.inventory-item .item-stats{font-size:11.5px;color:#cbdeef;line-height:1.28;min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.inventory-item .item-compare{font-size:11px;color:#aac6e1;line-height:1.24;min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.inventory-item .item-edu{font-size:11.5px;color:#e5cb95;line-height:1.24;min-width:0;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.inventory-item .item-name.with-icon,.inventory-item .item-meta.with-icon,.inventory-item .item-stats.with-icon,.inventory-item .item-compare.with-icon,.inventory-item .item-edu.with-icon{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;column-gap:6px;row-gap:2px;min-width:0}.inventory-item .item-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:stretch}.inventory-item .item-actions>button{flex:1 1 120px;min-width:0}.inventory-item .item-name,.inventory-item .item-meta,.inventory-item .item-stats,.inventory-item .item-compare,.inventory-item .item-edu{text-shadow:0 1px 0 rgba(0,0,0,.28)}.inventory-item .item-actions button{width:100%;min-width:0;min-height:36px;padding:6px 8px;justify-content:flex-start;text-align:left}.inventory-item .item-actions button .label-text{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#inventory-compare-tooltip{position:fixed;left:-9999px;top:-9999px;z-index:var(--z-tooltip);width:min(340px,calc(100vw - 24px));max-height:min(60dvh,420px);overflow:auto;border:1px solid color-mix(in srgb,var(--brand-blue-soft) 42%,#3a526f 58%);border-radius:var(--radius-sm);background:radial-gradient(circle at 88% 12%,rgba(255,165,0,.16),transparent 48%),linear-gradient(180deg,#080e16fa,#050a10fa);box-shadow:0 14px 32px #00000080;color:#e3edf9;padding:10px 11px;display:grid;gap:7px;opacity:0;transform:translateY(4px);transition:opacity .11s ease,transform .11s ease;pointer-events:none}#inventory-compare-tooltip.visible{opacity:1;transform:translateY(0)}.inv-compare-title{font-size:12px;font-weight:700;color:#f2e4c7;line-height:1.25}.inv-compare-meta{font-size:11px;color:#9fb3ca;line-height:1.25}.inv-compare-rows{display:grid;gap:4px;border-top:1px solid rgba(66,90,114,.65);padding-top:7px}.inv-compare-row{display:grid;grid-template-columns:minmax(0,104px) minmax(0,1fr);gap:8px;align-items:start}.inv-compare-label{font-size:11px;color:#c2d4e8}.inv-compare-values{font-size:11px;line-height:1.25;color:#d9e7f5;overflow-wrap:anywhere}.inv-compare-values.up{color:#8de0a0}.inv-compare-values.down{color:#f0a59a}.inv-compare-values.equal{color:#c3d0de}.inventory-item.equipped{border-color:color-mix(in srgb,var(--brand-blue-soft) 38%,#5d7f47 62%);background:#131e12ad}.inventory-item.rarity-rare{border-color:color-mix(in srgb,#4f9eff 64%,#324a62 36%)}.inventory-item.rarity-epic{border-color:color-mix(in srgb,#ffae3d 64%,#324a62 36%)}.inventory-item.equipped,.inventory-item.equipped.rarity-rare,.inventory-item.equipped.rarity-epic{border-color:color-mix(in srgb,var(--brand-blue-soft) 38%,#5d7f47 62%)}#vendor-rules{font-size:11px;color:var(--color-muted);line-height:1.25;border-top:1px solid rgba(58,79,100,.55);padding-top:8px}#controls button{display:flex;align-items:center;gap:8px}#controls button img{width:18px;height:18px}#login-btn{border-color:color-mix(in srgb,var(--brand-blue-soft) 56%,#47628a 44%);color:#e4ebff}body.theme-hero #login-btn{border-color:color-mix(in srgb,var(--brand-orange) 52%,var(--brand-blue-soft) 48%);color:#ffe8bc}#duel-btn{border-color:color-mix(in srgb,var(--brand-orange) 62%,#6f5b3a 38%);color:#ffe1ab}#duel-cancel-btn{border-color:#874545;color:#f2c4c4}#duel-state{font-size:12px;color:var(--color-muted);border-top:1px solid rgba(83,108,132,.35);background:#070c12eb;border-radius:var(--radius-sm);padding:7px 8px}#signature-content{display:grid;gap:var(--space-2)}#signature-status,#signature-meta{font-size:12px;color:var(--color-muted);line-height:1.25}#signature-name{font-family:CinzelLocal,serif;color:#f0e3c8;letter-spacing:.03em;font-size:14px}#signature-desc{font-size:12px;color:#c8d7e8;line-height:1.3}#chat-dock{grid-area:chat;padding:var(--space-2);display:grid;grid-template-rows:auto minmax(0,1fr);gap:var(--space-2);align-content:start;max-height:min(24dvh,210px);min-height:0}.chat-row{display:grid;grid-template-columns:1fr auto;gap:var(--space-2)}#chat-input{min-width:170px}#log-wrapper{border:1px solid rgba(69,92,113,.65);border-radius:var(--radius-sm);background:#050a109e;overflow:hidden;min-height:0}#log{max-height:min(16dvh,130px);overflow:auto;padding:var(--space-2);font-size:12px}.log-line{display:flex;align-items:flex-start;gap:6px;margin-bottom:6px;line-height:1.22}.log-line .ui-icon{margin-top:1px}.log-line.info{color:#c6d7e9}.log-line.warn{color:#f3c982}.log-line.error{color:#f0a3a3}body.log-collapsed #log-wrapper{display:none}#ability-bar{grid-area:abilities;min-width:0;padding:var(--space-2);display:grid;grid-template-columns:repeat(4,minmax(98px,1fr));align-items:stretch;gap:var(--space-2)}.ability-slot{position:relative;width:auto;min-height:124px;display:grid;gap:5px;justify-items:center;align-content:start;padding:8px 8px 10px;border-radius:var(--radius-md);border:1px solid #4a6076;background:linear-gradient(180deg,#101823fa,#0a1018fa);overflow:hidden}.ability-slot img{width:52px;height:52px;border-radius:12px}.ability-key{font-size:11px;color:var(--color-muted);letter-spacing:.08em}.ability-name{font-family:CinzelLocal,serif;font-size:12px;color:#efe5d0;text-align:center}.ability-desc{font-size:11px;color:#a8bbce;text-align:center;min-height:28px;line-height:1.2}.ability-slot .cooldown-fill{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;background:radial-gradient(circle at center,#0000000d 0,#0000000d 38%,#080b11bf 74%),conic-gradient(#070a0eb3 calc(var(--cooldown, 0) * 1%),#070a0e00 0);opacity:var(--cooldown-opacity, 0)}.ability-slot.ready{border-color:color-mix(in srgb,var(--brand-blue-soft) 42%,#6d8b47 58%)}.ability-slot.ready img{animation:icon-ready-pulse 1.1s ease-in-out infinite}.ability-slot.pending{border-color:color-mix(in srgb,var(--brand-orange-soft) 70%,#caa86c 30%)}.ability-slot:disabled{opacity:.8;cursor:not-allowed}.ability-slot-passive{border-color:color-mix(in srgb,var(--brand-blue-soft) 58%,#4a6076 42%);background:radial-gradient(circle at 50% 18%,rgba(37,0,255,.18),transparent 56%),linear-gradient(180deg,#101823fa,#0a1018fa)}.ability-slot.passive{cursor:default}.ability-slot.passive .cooldown-fill{opacity:0}#ability-tooltip{grid-column:1 / -1;width:100%;min-height:70px;border:1px solid #415a73;border-radius:var(--radius-md);background:#080d14e0;color:#dce7f2;padding:10px;font-size:12px;line-height:1.35;display:grid;gap:5px}#mobile-controls{position:fixed;left:10px;right:10px;bottom:max(calc(10px + env(safe-area-inset-bottom) + var(--ime-offset)),10px);z-index:var(--z-mobile-controls);display:none;gap:8px;padding:10px;pointer-events:auto}#mobile-controls .mobile-controls-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}#mobile-controls button{min-height:44px;font-size:12px;padding:8px 6px;display:inline-flex;justify-content:center;align-items:center}#mobile-controls button .label-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#mobile-stick-zone{position:fixed;left:10px;bottom:max(calc(10px + env(safe-area-inset-bottom) + var(--ime-offset)),10px);z-index:var(--z-mobile-joystick);width:var(--mobile-stick-zone-size);height:var(--mobile-stick-zone-size);display:none;place-items:center;pointer-events:auto;-webkit-user-select:none;user-select:none;touch-action:none}#mobile-stick-base{width:var(--mobile-stick-base-size);height:var(--mobile-stick-base-size);border-radius:999px;border:1px solid rgba(92,122,154,.78);background:radial-gradient(circle at 32% 26%,rgba(37,0,255,.2),transparent 60%),radial-gradient(circle at 68% 72%,rgba(255,165,0,.16),transparent 64%),linear-gradient(180deg,#080e16d1,#050a10e6);box-shadow:inset 0 0 0 1px #283e539e,0 8px 24px #00000059;display:grid;place-items:center}#mobile-stick-knob{width:var(--mobile-stick-knob-size);height:var(--mobile-stick-knob-size);border-radius:999px;border:1px solid rgba(120,156,191,.92);background:radial-gradient(circle at 34% 28%,rgba(255,165,0,.4),transparent 56%),linear-gradient(180deg,#14202ff5,#0a121cf5);box-shadow:inset 0 0 0 1px #2e4a64b3,0 6px 16px #0006;transform:translateZ(0)}#mobile-tip{position:fixed;right:10px;bottom:max(calc(120px + env(safe-area-inset-bottom) + var(--ime-offset)),120px);z-index:var(--z-mobile-tip);width:min(340px,calc(100vw - 20px));padding:10px 12px;display:grid;gap:8px;pointer-events:auto}.mobile-tip-title{font-family:CinzelLocal,serif;font-size:14px;color:#f4dfbc;letter-spacing:.03em}.mobile-tip-body{font-size:12px;line-height:1.35;color:#c7d9ec}.tooltip-line{display:inline-flex;align-items:flex-start;gap:6px}.hidden{display:none!important}body.ui-v1-lite #player-card,body.ui-v1-lite #ability-bar,body.ui-v1-lite #enemy-insight,body.ui-v1-lite #hero-toast-layer{display:none}body.ui-v1-lite #hud{grid-template-columns:1fr;grid-template-rows:auto auto auto 1fr auto;grid-template-areas:"top" "action" "status" "chat" "chat"}body.learn-mode-disabled #enemy-insight,body.learn-mode-disabled .item-edu{display:none}body.learn-mode-disabled #learn-toggle-btn{opacity:.84}body.hero-mode-disabled #hero-presence{display:none}@media(max-width:1100px){#hud{grid-template-columns:minmax(220px,300px) 1fr;grid-template-rows:auto auto auto auto auto auto;grid-template-areas:"top top" "player status" "action action" "insight insight" "chat chat" "abilities abilities"}#action-tray{min-width:0;max-height:min(40dvh,380px)}#inventory-panel{max-height:none}#chat-dock{max-height:min(28dvh,220px)}}@media(max-width:720px){#hud{padding:max(var(--space-2),env(safe-area-inset-top)) var(--space-2) max(12px,env(safe-area-inset-bottom));grid-template-columns:1fr;grid-template-rows:auto auto auto auto auto 1fr auto;grid-template-areas:"top" "player" "action" "status" "insight" "chat" "abilities"}#runtime-badges{justify-content:flex-start}#runtime-badges button,#runtime-badges .badge{font-size:12px}#ability-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.ability-slot{width:auto;min-height:112px;padding:7px 6px 8px}.ability-slot img{width:44px;height:44px}.chat-row{grid-template-columns:1fr}#ability-tooltip{width:100%;min-height:54px}.body-row,#ai-panel .ai-talk-row,#inventory-panel .inventory-controls{grid-template-columns:1fr}#inventory-list{max-height:min(36dvh,320px)}.inventory-item .item-actions{flex-direction:column}.item-edu,#enemy-insight-detail{display:none}}body.mobile-ui #mobile-panels-btn{display:inline-flex}body.mobile-ui #ability-bar{display:none}body.mobile-ui #mobile-controls{display:grid}body.mobile-ui #hud{grid-template-columns:1fr;grid-template-rows:auto auto;grid-template-areas:"top" "status";gap:6px;padding:max(var(--space-2),env(safe-area-inset-top)) var(--space-2) max(calc(112px + env(safe-area-inset-bottom)),var(--space-2))}body.mobile-ui #player-card,body.mobile-ui #action-tray,body.mobile-ui #chat-dock,body.mobile-ui #enemy-insight{display:none}body.mobile-ui #top-strip{padding:8px;gap:8px}body.mobile-ui #runtime-badges{justify-content:flex-start;gap:6px}body.mobile-ui #runtime-badges button,body.mobile-ui #runtime-badges .badge{min-height:34px;font-size:12px}body.mobile-ui #status{width:min(96vw,620px);padding:8px 10px}body.mobile-ui #status-connection,body.mobile-ui #status-metrics{font-size:11px}body.mobile-ui.mobile-panels-open #hud{grid-template-rows:auto auto minmax(130px,auto) minmax(190px,1fr) minmax(130px,auto);grid-template-areas:"top" "status" "player" "action" "chat"}body.mobile-ui.mobile-panels-open #player-card,body.mobile-ui.mobile-panels-open #action-tray,body.mobile-ui.mobile-panels-open #chat-dock{display:grid}body.mobile-ui.mobile-panels-open #player-card{max-height:min(24dvh,220px);overflow-y:auto}body.mobile-ui.mobile-panels-open #hero-presence{display:none}body.mobile-ui.mobile-panels-open #action-tray{max-height:min(32dvh,340px)}body.mobile-ui.mobile-panels-open #chat-dock{max-height:min(22dvh,200px)}body.mobile-ui.mobile-panels-open #log{max-height:min(14dvh,110px)}body.mobile-v2.mobile-ui #mobile-input-mode-btn{display:inline-flex}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #top-strip{padding:6px 8px;gap:6px;align-items:center}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #brand{min-width:0;gap:4px}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #brand-logo{width:clamp(112px,34vw,170px)}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #brand .subtitle{display:none}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #runtime-badges{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-ms-overflow-style:none}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #runtime-badges::-webkit-scrollbar{display:none}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #runtime-badges>:not(#server-state-badge):not(#mobile-panels-btn):not(#mobile-input-mode-btn){display:none!important}body.mobile-v2.mobile-ui #runtime-badges button,body.mobile-v2.mobile-ui #runtime-badges .badge{min-height:44px}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #runtime-badges button,body.mobile-v2.mobile-ui:not(.mobile-panels-open) #runtime-badges .badge{min-height:36px;padding:5px 10px;font-size:12px}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #status{width:calc(100vw - 16px);min-height:0;padding:6px 8px}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #status-metrics{display:none}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #hud{padding-bottom:max(calc(82px + env(safe-area-inset-bottom)),10px)}body.mobile-v2.mobile-ui #chat-channel,body.mobile-v2.mobile-ui #inventory-filter,body.mobile-v2.mobile-ui #inventory-sort{min-height:44px;font-size:16px}body.mobile-v2.mobile-ui #chat-input{min-height:44px;width:100%;font-size:16px}body.mobile-v2.mobile-ui #mobile-controls button{min-height:44px}body.mobile-v2.mobile-ui #mobile-controls{left:8px;right:8px;padding:8px}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #mobile-controls{gap:6px;padding:6px}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #mobile-controls .mobile-controls-row{gap:6px}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #mobile-controls .mobile-controls-row--utility{display:none}body.mobile-v2.mobile-ui:not(.mobile-panels-open) #mobile-controls button{min-height:40px;font-size:11px}body.mobile-v2.mobile-ui.mobile-stick-mode #mobile-controls{left:calc(var(--mobile-stick-zone-size) + 14px)}body.mobile-v2.mobile-ui.mobile-panels-open #mobile-controls{display:none}body.mobile-v2.mobile-ui.mobile-panels-open #runtime-badges{flex-wrap:wrap;overflow:visible}body.mobile-v2.mobile-ui.mobile-panels-open #runtime-badges>*{display:inline-flex!important}body.mobile-v2.mobile-ui.mobile-stick-mode:not(.mobile-panels-open) #mobile-stick-zone{display:grid}body.mobile-v2.mobile-ui:not(.mobile-stick-mode) #mobile-stick-zone,body.mobile-v2.mobile-ui.mobile-panels-open #mobile-stick-zone{display:none}body.mobile-v2.mobile-ui #mobile-tip{display:grid}body.mobile-v2.mobile-ui.mobile-panels-open #hud{grid-template-columns:1fr;grid-template-rows:auto auto;grid-template-areas:"top" "status";padding-bottom:max(calc(12px + env(safe-area-inset-bottom) + var(--ime-offset)),12px)}body.mobile-v2.mobile-ui.mobile-panels-open #action-tray{display:grid;position:fixed;left:8px;right:8px;top:max(var(--mobile-panel-top),calc(96px + env(safe-area-inset-top)));bottom:calc(var(--mobile-chat-height) + 20px + env(safe-area-inset-bottom) + var(--ime-offset));max-height:none;overflow-y:auto;overscroll-behavior:contain;z-index:calc(var(--z-mobile-controls) - 1)}body.mobile-v2.mobile-ui.mobile-panels-open #chat-dock{display:grid;position:fixed;left:8px;right:8px;bottom:max(calc(10px + env(safe-area-inset-bottom) + var(--ime-offset)),10px);height:var(--mobile-chat-height);max-height:none;z-index:calc(var(--z-mobile-controls) - 1)}body.mobile-v2.mobile-ui.mobile-panels-open #log{max-height:none;height:100%}body.mobile-v2.mobile-ui.mobile-panels-open #player-card,body.mobile-v2.mobile-ui.mobile-panels-open #enemy-insight,body.mobile-v2.mobile-ui.mobile-panels-open #ability-bar,body.mobile-v2.mobile-ui.mobile-panels-open #mobile-tip{display:none}body.mobile-v2.mobile-ui.mobile-portrait #top-strip{align-items:flex-start}body.mobile-v2.mobile-ui.mobile-portrait #brand-logo{width:clamp(116px,44vw,184px)}body.mobile-v2.mobile-ui.mobile-portrait #runtime-badges{justify-content:flex-start}body.mobile-v2.mobile-ui.mobile-portrait #mobile-controls{grid-template-columns:1fr}body.mobile-v2.mobile-ui.mobile-device-compact #runtime-badges{gap:4px}body.mobile-v2.mobile-ui.mobile-device-compact #runtime-badges button,body.mobile-v2.mobile-ui.mobile-device-compact #runtime-badges .badge{min-height:40px;font-size:11px;padding-inline:8px}body.mobile-v2.mobile-ui.mobile-device-compact #mobile-controls .mobile-controls-row{gap:6px}body.mobile-v2.mobile-ui.mobile-device-compact #mobile-tip{width:min(300px,calc(100vw - 20px))}body.mobile-v2.mobile-ui.mobile-device-large #mobile-controls{max-width:min(680px,calc(100vw - 16px));margin-inline:auto}body.mobile-v2.mobile-ui.mobile-stick-mode.mobile-device-large #mobile-controls{margin-inline:0 8px}body.mobile-v2.mobile-ui.mobile-density-compact #status{width:calc(100vw - 16px)}body.mobile-v2.mobile-ui.mobile-density-compact #status-connection,body.mobile-v2.mobile-ui.mobile-density-compact #status-metrics{font-size:10.5px}
