:root{--tile-size: 64px;--dpad-size: 150px;--dpad-button-size: 50px;--drag-threshold: 5px;--hotbar-size: 10}:root{--color-bg-primary: #1a1a1a;--color-bg-secondary: #333;--color-bg-tertiary: #444;--color-bg-overlay: rgba(20, 20, 20, .95);--color-bg-panel: rgba(30, 30, 40, .95);--color-border-dark: #444;--color-border-mid: #555;--color-border-light: #666;--color-border-accent: #888;--color-text-primary: #f0f0f0;--color-text-secondary: #aaa;--color-text-muted: #888;--color-text-disabled: #666;--color-accent-blue: #3498db;--color-accent-green: #2ecc71;--color-accent-red: #e74c3c;--color-accent-yellow: #f1c40f;--color-accent-purple: #9b59b6;--color-accent-orange: #e67e22;--color-health: #e74c3c;--color-mana: #3498db;--color-success: #2ecc71;--color-warning: #f1c40f;--color-error: #e74c3c;--color-info: #3498db;--spacing-2xs: 2px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;--font-size-xs: .75em;--font-size-sm: .85em;--font-size-md: 1em;--font-size-lg: 1.15em;--font-size-xl: 1.3em;--font-size-2xl: 1.5em;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-bold: 700;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 50%;--border-width: 1px;--border-width-thick: 2px;--shadow-sm: 0 2px 4px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .6);--shadow-glow-yellow: 0 0 10px 3px rgba(255, 255, 0, .8);--shadow-glow-blue: 0 0 10px 3px rgba(52, 152, 219, .8);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .05);--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--z-base: 1;--z-dropdown: 10;--z-sticky: 20;--z-overlay: 30;--z-modal: 40;--z-popover: 50;--z-tooltip: 100;--panel-width: 350px;--panel-max-height: 80vh;--slot-size: 40px;--slot-size-lg: 50px;--button-size-sm: 24px;--button-size-md: 36px;--button-size-lg: 60px;--hotbar-slot-size: 50px;--top-info-height: clamp(60px, 10vh, 100px);--bottom-ui-padding: 20px;--action-bar-gap: 2px;--action-bar-height: calc(var(--button-size-lg) + var(--action-bar-gap));--bottom-clearance: calc(var(--bottom-ui-padding) + var(--action-bar-height) + var(--spacing-sm));--info-panels-max-height: calc(100vh - var(--top-info-height) - var(--bottom-clearance))}body{font-family:var(--font-family);margin:0;background-color:var(--color-bg-primary);color:var(--color-text-primary);overflow:hidden;display:flex;justify-content:center;align-items:center;height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--color-border-light);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-accent)}::selection{background:var(--color-accent-blue);color:var(--color-text-primary)}:focus-visible{outline:2px solid var(--color-accent-blue);outline-offset:2px}.game-container{width:100%;height:100%;display:flex;flex-direction:column;position:relative;background-color:var(--color-bg-secondary);align-items:center}#game-world{flex-grow:1;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative}.right-hud-container{position:relative;display:flex;align-items:flex-end;flex-direction:column;gap:var(--spacing-sm);pointer-events:none;z-index:10}.info-panels{position:relative;top:-70px;height:var(--info-panels-max-height);max-height:var(--info-panels-max-height);overflow:visible;width:max-content;pointer-events:none}.info-panels>*{position:absolute;right:0;pointer-events:auto}.action-bar{flex-shrink:0;display:flex;gap:var(--action-bar-gap);align-items:flex-end;pointer-events:auto;padding:6px 10px;background:linear-gradient(to bottom,#1e1e1ee6,#141414f2);border-radius:var(--radius-md);border:var(--border-width) solid rgba(80,80,80,.6);box-shadow:var(--shadow-md),inset 0 1px #ffffff0d}.action-bar .btn{background:linear-gradient(145deg,#323232cc,#232323e6);border:var(--border-width) solid rgba(90,90,90,.5);border-radius:var(--radius-sm);box-shadow:inset 0 1px 2px #0000004d;transition:all var(--transition-fast)}.action-bar .btn:hover{background:linear-gradient(145deg,#414141e6,#323232f2);border-color:#787878b3;transform:translateY(-1px)}.action-bar .btn:active{transform:scale(.92);background:linear-gradient(145deg,#1e2832f2,#141e28f2);box-shadow:inset 0 2px 4px #00000080}.action-bar .btn.is-selected{border-color:#64646499;border-width:var(--border-width-thick);background:linear-gradient(145deg,#282d37e6,#1e232df2)}.centered-panels{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--z-modal)}@media (max-width: 1900px){.action-bar{flex-direction:column-reverse;padding:10px 6px}.action-bar .btn.btn--lg{width:48px;height:48px}.right-hud-container{flex-direction:column;align-items:flex-end}}@media (max-width: 800px){.action-bar .btn.btn--lg{width:42px;height:42px;font-size:1.1em}}.panel{background-color:var(--color-bg-overlay);border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border-dark);padding:var(--spacing-md);display:flex;flex-direction:column;overflow:hidden;user-select:none;-webkit-user-select:none}.info-panel{width:clamp(320px,25vw,340px)!important;min-height:15vh;max-height:var(--panel-max-height);overflow-y:auto;background-color:#0009;border-radius:var(--radius-md);border:var(--border-width) solid var(--color-border-dark);padding:var(--spacing-md);display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--color-border-accent) var(--color-bg-secondary);user-select:none;-webkit-user-select:none}.info-panel::-webkit-scrollbar{width:8px}.info-panel::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:var(--radius-sm)}.info-panel::-webkit-scrollbar-thumb{background-color:var(--color-border-accent);border-radius:var(--radius-sm);border:2px solid var(--color-bg-secondary)}.panel-header{width:100%;display:flex;justify-content:space-between;align-items:center;margin-bottom:0;padding-bottom:var(--spacing-xs)}.panel-header h2{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);border-bottom:none}.panel-header-actions{display:flex;align-items:center;gap:var(--spacing-xs);padding-left:8px}.panel-header .btn-sort{font-size:var(--font-size-sm);cursor:pointer;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-text-secondary);border-radius:var(--radius-sm);padding:2px 8px;transition:color var(--transition-normal),border-color var(--transition-normal)}.panel-header .btn-sort:hover{color:var(--color-text-primary);border-color:var(--color-text-primary)}.panel-header .close-button{font-size:24px;cursor:pointer;color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs);padding-right:0;min-width:22px;min-height:22px;background:transparent;border:none;transition:color var(--transition-normal)}.panel-header .close-button:hover{color:var(--color-text-primary)}.panel-content{flex:1;overflow-y:auto;padding-top:var(--spacing-sm)}.info-panel h2{width:100%;margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-xs);font-size:var(--font-size-xl);color:var(--color-text-primary);border-bottom:var(--border-width) solid var(--color-border-mid)}.info-panel h3{font-size:var(--font-size-lg);color:var(--color-text-primary);margin:var(--spacing-sm) 0}.info-panel h4{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:var(--spacing-xs) 0}.centered-panel{position:absolute;z-index:var(--z-sticky)}.info-panels>.centered-panel{right:auto}.panel-grid{display:grid;gap:var(--spacing-xs);width:100%}.inventory-grid{grid-template-columns:repeat(8,1fr)}.grid-5{grid-template-columns:repeat(5,1fr)}.panel-section{width:100%;margin-bottom:var(--spacing-md)}.panel-section:last-child{margin-bottom:0}.panel-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-sm);padding-bottom:var(--spacing-xs);border-bottom:var(--border-width) solid var(--color-border-dark)}.panel-footer{width:100%;padding-top:var(--spacing-sm);border-top:var(--border-width) solid var(--color-border-dark);margin-top:auto}.btn{display:inline-flex;align-items:center;justify-content:center;border:var(--border-width) solid var(--color-border-accent);background:var(--color-bg-tertiary);color:var(--color-text-primary);cursor:pointer;transition:all var(--transition-normal);font-family:inherit;text-decoration:none}.btn:hover{background:var(--color-bg-secondary);border-color:var(--color-text-primary)}.btn:active{transform:scale(.95)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{background:var(--color-bg-tertiary);border-color:var(--color-border-accent);transform:none}.btn--sm{width:var(--button-size-sm);height:var(--button-size-sm);font-size:var(--font-size-sm)}.btn--md{width:var(--button-size-md);height:var(--button-size-md);font-size:var(--font-size-md)}.btn--lg{width:var(--button-size-lg);height:var(--button-size-lg);font-size:var(--font-size-lg)}.btn--auto{width:auto;height:auto;padding:var(--spacing-sm) var(--spacing-lg)}.btn--round{border-radius:var(--radius-sm)}.btn--pill{border-radius:999px}.btn--square{border-radius:var(--radius-sm)}.btn--primary{background:var(--color-accent-blue);border-color:var(--color-accent-blue)}.btn--primary:hover{background:#2980b9;border-color:#2980b9}.btn--danger{background:var(--color-accent-red);border-color:var(--color-accent-red)}.btn--danger:hover{background:#c0392b;border-color:#c0392b}.btn--success{background:var(--color-accent-green);border-color:var(--color-accent-green)}.btn--success:hover{background:#27ae60;border-color:#27ae60}.btn--ghost{background:transparent;border-color:transparent}.btn--ghost:hover{background:#ffffff1a;border-color:transparent}.btn--overlay{background:#0009;border-color:var(--color-border-accent)}.btn--overlay:hover{background:#000c;border-color:var(--color-border-light)}.btn.is-selected{border-width:var(--border-width-thick);border-color:var(--color-text-primary);background:#282828cc}.btn.is-active{background:var(--color-accent-blue);border-color:var(--color-accent-blue)}.btn.is-glowing{box-shadow:var(--shadow-glow-yellow);animation:btn-glow-pulse 2s ease-in-out infinite}@keyframes btn-glow-pulse{0%,to{box-shadow:var(--shadow-glow-yellow)}50%{box-shadow:0 0 15px 5px #ff0}}.btn-close{font-size:24px;cursor:pointer;color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-xs);min-width:22px;min-height:22px;background:transparent;border:none;transition:color var(--transition-normal)}.btn-close:hover{color:var(--color-text-primary)}.btn-icon{padding:0}.btn-icon img{width:100%;height:100%;object-fit:contain}.btn-icon--inset img{width:80%;height:80%}.tooltip{position:absolute;background-color:var(--color-bg-overlay);border:var(--border-width) solid var(--color-border-mid);border-radius:var(--radius-sm);padding:var(--spacing-md);z-index:var(--z-tooltip);color:var(--color-text-primary);font-size:var(--font-size-sm);pointer-events:none;box-shadow:var(--shadow-md);min-width:150px;max-width:300px}.tooltip-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.tooltip-description{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);line-height:1.4}.tooltip hr{border:none;border-top:var(--border-width) solid var(--color-border-dark);margin:var(--spacing-sm) 0}.tooltip-flavor-text{color:#fff8dc;margin:var(--spacing-xs) 0;font-size:var(--font-size-sm);font-style:italic}.tooltip-stats{display:flex;flex-direction:column;gap:var(--spacing-xs)}.tooltip-stat{display:flex;justify-content:space-between;font-size:var(--font-size-sm);margin:var(--spacing-2xs) 0;color:var(--color-accent-green)}.tooltip-stat--negative{color:var(--color-accent-red)}.tooltip-stat.insufficient{color:#f66}.stat-label{color:var(--color-text-secondary)}.stat-value{color:var(--color-text-primary)}.tooltip-action{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--spacing-sm)}.tooltip-action kbd{background:var(--color-bg-tertiary);border:var(--border-width) solid var(--color-border-mid);border-radius:var(--radius-sm);padding:2px 6px;font-family:inherit;font-size:inherit}.tooltip-warning,.tooltip .warning{color:#f66;font-size:var(--font-size-xs)}.tooltip-expiration{color:var(--color-accent-orange);font-size:var(--font-size-xs);margin-top:var(--spacing-xs)}.tooltip--sm{width:150px;min-width:auto}.tooltip--md{width:200px}.tooltip--lg{width:250px}.tooltip--auto{width:auto;min-width:120px}.tooltip--spell{width:200px}.tooltip--item{width:180px}.tooltip--crafting{width:220px}.tooltip--shop{width:200px}.tooltip-requirements{margin-top:var(--spacing-sm)}.tooltip-requirements h4{font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);margin:var(--spacing-sm) 0 var(--spacing-xs) 0;color:var(--color-text-secondary)}.tooltip-requirements ul{list-style:none;padding:0;margin:0}.tooltip-requirements li{font-size:var(--font-size-sm);padding:var(--spacing-2xs) 0}.tooltip-requirements li.has-item{color:var(--color-accent-green)}.tooltip-requirements li.missing-item{color:var(--color-accent-red)}.tooltip-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;font-size:var(--font-size-md)}.tooltip-item .item-icon,.tooltip .item-icon{width:36px;height:36px;min-width:20px;font-size:2em}.tooltip-item .item-icon img,.tooltip .item-icon img{width:100%;height:100%;object-fit:contain}.bar-container{width:100%;height:20px;background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);border:var(--border-width) solid var(--color-border-mid);position:relative;overflow:hidden}.bar-fill{height:100%;border-radius:var(--radius-lg);transition:width var(--transition-slow)}.bar-fill--health{background:linear-gradient(to bottom,#4caf50,#388e3c)}.bar-fill--health.low{background:linear-gradient(to bottom,#ff9800,#f57c00)}.bar-fill--health.critical{background:linear-gradient(to bottom,#e74c3c,#c0392b)}.bar-fill--mana,.bar-fill--resonance{background:linear-gradient(to bottom,#3498db,#2980b9)}.bar-fill--rage{background:linear-gradient(to bottom,#e74c3c,#c0392b)}.bar-fill--experience{background:linear-gradient(to bottom,#f1c40f,#f39c12)}.bar-fill--channeling{background:linear-gradient(to bottom,#9b59b6,#8e44ad)}.bar-fill--skill{background:linear-gradient(to bottom,#2ecc71,#27ae60)}.bar-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-text-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-shadow:1px 1px 2px rgba(0,0,0,.8);white-space:nowrap;pointer-events:none}.bar-container--sm{height:12px}.bar-container--sm .bar-fill{border-radius:var(--radius-sm)}.bar-container--sm .bar-text{font-size:10px}.bar-container--lg{height:28px}.bar-container--lg .bar-text{font-size:var(--font-size-sm)}.quest-progress{width:100%;height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-sm);overflow:hidden;margin-top:var(--spacing-xs)}.quest-progress-fill{height:100%;background:var(--color-accent-green);border-radius:var(--radius-sm);transition:width var(--transition-normal)}.quest-progress-fill.complete{background:var(--color-accent-blue)}.channeling-container{display:none;position:absolute;bottom:250px;left:50%;transform:translate(-50%);width:200px;height:15px;background-color:#000000b3;border:var(--border-width) solid var(--color-border-light);border-radius:var(--radius-sm);z-index:var(--z-overlay);overflow:hidden}.channeling-bar{width:0%;height:100%;background-color:var(--color-accent-blue);border-radius:calc(var(--radius-sm) - 1px)}.swing-container{display:none;position:absolute;bottom:230px;left:50%;transform:translate(-50%);width:200px;height:15px;background-color:#000000b3;border:var(--border-width) solid var(--color-border-light);border-radius:var(--radius-sm);z-index:var(--z-overlay);overflow:hidden}.swing-bar{width:0%;height:100%;background:linear-gradient(to bottom,#e74c3c,#c0392b);border-radius:calc(var(--radius-sm) - 1px)}.bow-charge-container{display:none;position:absolute;bottom:210px;left:50%;transform:translate(-50%);z-index:var(--z-overlay)}.bow-charge-segments{display:flex;gap:3px}.bow-charge-segment{width:45px;height:12px;background-color:#000000b3;border:var(--border-width) solid var(--color-border-light);border-radius:var(--radius-sm);overflow:hidden;position:relative;transition:border-color .15s ease,box-shadow .15s ease}.bow-charge-fill{height:100%;width:0%;border-radius:calc(var(--radius-sm) - 1px);transition:width .05s linear}.bow-charge-segment.segment-1{border-color:#555}.bow-charge-segment.segment-1 .bow-charge-fill{background:linear-gradient(to bottom,#666,#444);transition:background .15s ease,width .05s linear}.bow-charge-segment.segment-1.complete{border-color:#388e3c}.bow-charge-segment.segment-1.complete .bow-charge-fill{background:linear-gradient(to bottom,#4caf50,#388e3c)}.bow-charge-segment.segment-2 .bow-charge-fill{background:linear-gradient(to bottom,#66bb6a,#43a047)}.bow-charge-segment.segment-3 .bow-charge-fill{background:linear-gradient(to bottom,#81c784,#4caf50)}.bow-charge-segment.segment-4 .bow-charge-fill{background:linear-gradient(to bottom,#a5d6a7,#66bb6a)}.bow-charge-container.overcharged .bow-charge-segment{border-color:#2e7d32;box-shadow:0 0 8px 2px #4caf50b3}.bow-charge-container.overcharged .bow-charge-fill{background:linear-gradient(to bottom,#81c784,#4caf50)!important}.queued-bow-spell-indicator{position:absolute;bottom:210px;right:calc(50% + 105px);display:flex;flex-direction:column;align-items:center;z-index:var(--z-overlay);opacity:1;transition:opacity .2s ease-out}.queued-bow-spell-indicator.fading{opacity:0}.queued-bow-spell-text{font-size:11px;color:#90ee90;text-shadow:1px 1px 2px black,-1px -1px 2px black;white-space:nowrap;margin-bottom:3px;font-weight:700}.queued-bow-spell-icon{width:32px;height:32px;border:2px solid rgba(100,200,100,.8);border-radius:4px;background:#000000b3;display:flex;align-items:center;justify-content:center;box-shadow:0 0 6px 1px #64c86466}.queued-bow-spell-icon img{width:100%;height:100%;object-fit:contain;border-radius:2px}.fishing-charge-container{display:none;position:absolute;bottom:210px;left:50%;transform:translate(-50%);z-index:var(--z-overlay)}.fishing-charge-segments{display:flex;gap:3px}.fishing-charge-segment{width:50px;height:12px;background-color:#000000b3;border:var(--border-width) solid var(--color-border-light);border-radius:var(--radius-sm);overflow:hidden;position:relative;transition:border-color .15s ease,box-shadow .15s ease}.fishing-charge-fill{height:100%;width:0%;border-radius:calc(var(--radius-sm) - 1px);transition:width .05s linear}.fishing-charge-segment.segment-1 .fishing-charge-fill{background:linear-gradient(to bottom,#64b5f6,#42a5f5)}.fishing-charge-segment.segment-2 .fishing-charge-fill{background:linear-gradient(to bottom,#42a5f5,#2196f3)}.fishing-charge-segment.segment-3 .fishing-charge-fill{background:linear-gradient(to bottom,#2196f3,#1976d2)}.fishing-charge-container.max-charge .fishing-charge-segment{border-color:#1565c0;box-shadow:0 0 8px 2px #2196f3b3}.fishing-charge-container.max-charge .fishing-charge-fill{background:linear-gradient(to bottom,#42a5f5,#1e88e5)!important}.gathering-container{display:none;position:absolute;bottom:190px;left:50%;transform:translate(-50%);z-index:var(--z-overlay)}.gathering-segments{display:flex;gap:2px}.gathering-segment{width:10px;min-width:8px;height:12px;background-color:#3c3c3ccc;border:1px solid var(--color-border-light);border-radius:2px;transition:background-color .1s ease,border-color .1s ease}.gathering-segment.filled{background:linear-gradient(to bottom,#42a5f5,#1e88e5);border-color:#1565c0}.modal{display:none;position:fixed;z-index:100;left:0;top:0;width:100%;height:100%;background-color:#000000b3;justify-content:center;align-items:center}.modal.active{display:flex}.modal-content{background-color:#2a2a2a;padding:20px;border:1px solid #888;width:80%;max-width:400px;border-radius:var(--radius-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #555;padding-bottom:10px;padding-left:20px;padding-right:20px;margin-bottom:15px}.context-menu{position:absolute;max-width:fit-content;background-color:#2a2a2a;border:1px solid #888;border-radius:var(--radius-sm);padding:5px;z-index:101}.context-menu-mobile{max-width:130px;width:200px}.context-menu button{display:block;width:100%;padding:8px 12px;border:none;background:none;color:#f0f0f0;text-align:left;cursor:pointer}.context-menu button:hover{background-color:#4a627a}@media (max-width: 1200px){.context-menu button{padding:4px 8px;font-size:.75em!important}}.context-menu-tooltip{padding:6px 8px;border-bottom:1px solid #555;margin-bottom:3px;color:#f0f0f0;font-size:.8em}.context-menu-tooltip .tooltip-title{font-size:.95em;font-weight:700;margin-bottom:4px;color:#fff}.context-menu-tooltip .tooltip-stat{color:#2ecc71;margin:2px 0 0;padding:0;font-size:.8em}.context-menu-tooltip .tooltip-action{color:#3498db;margin:2px 0 0;padding:0;font-size:.8em}.context-menu-tooltip .tooltip-flavor-text{color:#fff8dc;margin:2px 0 0;padding:0;font-size:.75em;font-style:italic}.context-menu-tooltip hr{border:none;border-top:1px solid #444;margin:4px 0}.context-menu-tooltip .tooltip-expiration{color:#e74c3c;font-weight:700;font-size:.8em}.hotbar-container{display:flex;flex-direction:column;align-items:center;pointer-events:none;margin:4px 0}.hotbar{display:flex;gap:4px;padding:6px 10px;background:linear-gradient(to bottom,#1e1e1ee6,#141414f2);border-radius:var(--radius-md);border:var(--border-width) solid rgba(80,80,80,.6);box-shadow:var(--shadow-md),inset 0 1px #ffffff0d;pointer-events:auto}.hotbar-slot{position:relative;width:var(--hotbar-slot-size);height:var(--hotbar-slot-size);background:linear-gradient(145deg,#323232cc,#232323e6);border:var(--border-width) solid rgba(90,90,90,.5);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);box-shadow:inset 0 1px 2px #0000004d}.hotbar-slot:hover{background:linear-gradient(145deg,#414141e6,#323232f2);border-color:#787878b3;transform:translateY(-1px)}.hotbar-slot.empty{cursor:default}.hotbar-slot.empty:hover{transform:none}.hotbar-slot.has-item{border-color:#64646499}.hotbar-slot.unavailable{opacity:.5}.hotbar-slot.drag-target{border-color:#64b4ffcc;background:linear-gradient(145deg,#3c5064cc,#2d4155e6);box-shadow:inset 0 1px 2px #0000004d,0 0 8px #64b4ff66}.hotbar-slot.glow{box-shadow:var(--shadow-glow-yellow);animation:glow-pulse-hotbar 2s ease-in-out}@keyframes glow-pulse-hotbar{0%,to{box-shadow:0 0 10px 3px #ff0c}50%{box-shadow:0 0 15px 5px #ff0}}.hotbar-slot.pressed{transform:scale(.92);background:linear-gradient(145deg,#1e2832f2,#141e28f2);box-shadow:inset 0 2px 4px #00000080}.hotbar-slot.spell-armed{border-color:#64c8ffe6;box-shadow:0 0 12px 3px #64c8ff99,inset 0 0 8px #64c8ff4d;animation:spell-armed-pulse 1.5s ease-in-out infinite}@keyframes spell-armed-pulse{0%,to{box-shadow:0 0 12px 3px #64c8ff99,inset 0 0 8px #64c8ff4d}50%{box-shadow:0 0 18px 5px #64c8ffcc,inset 0 0 12px #64c8ff80}}.hotbar-flying-icon{width:52px;height:52px;animation:fly-to-hotbar 1.2s ease-out forwards}.hotbar-flying-icon .hotbar-icon{width:52px;height:52px;background:none;border:none;box-shadow:none}.hotbar-flying-icon .hotbar-icon img{width:52px;height:52px;object-fit:contain}@keyframes fly-to-hotbar{0%{transform:translate(-50%,-50%) scale(1.1);opacity:1}to{transform:translate(calc(-50% + var(--fly-x)),calc(-50% + var(--fly-y))) scale(1);opacity:1}}.hotbar-keybind{position:absolute;top:2px;left:4px;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:#c8c8c8cc;text-shadow:0 1px 2px rgba(0,0,0,.8);z-index:2;pointer-events:none;font-family:var(--font-family)}.hotbar-icon{width:46px;height:46px;display:flex;align-items:center;justify-content:center}.hotbar-icon.grayed-out{filter:grayscale(100%) brightness(.6)}.hotbar-icon .item-icon{width:100%;height:100%}.hotbar-icon .item-icon img{width:100%;height:100%;object-fit:contain}.hotbar-icon .spell-icon-hotbar{font-size:26px;line-height:1;display:flex;align-items:center;justify-content:center;width:100%;height:100%}.hotbar-icon .spell-icon-hotbar img{width:46px;height:46px;object-fit:contain}.hotbar-quantity{position:absolute;bottom:2px;right:4px;font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);color:var(--color-text-primary);text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 3px rgba(0,0,0,.8);z-index:2;pointer-events:none;font-family:var(--font-family)}.hotbar-empty-icon{width:46px;height:46px;border-radius:var(--radius-sm);background:#0003}.hotbar-action-type{position:absolute;bottom:2px;left:4px;font-size:var(--font-size-xs);line-height:1;z-index:1;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(0,0,0,.8))}.mobile-device .hotbar{padding:4px 6px;gap:3px}.mobile-device .hotbar-slot{width:32px;height:32px}.mobile-device .hotbar-keybind{display:none}.mobile-device .hotbar-icon,.mobile-device .hotbar-empty-icon{width:24px;height:24px}.mobile-device .hotbar-quantity{font-size:9px}.mobile-device .hotbar-action-type{font-size:8px}#chat-container{position:fixed;background:#0009;padding:var(--spacing-sm);padding-top:0;border-radius:var(--radius-md);display:flex;flex-direction:column;z-index:var(--z-tooltip)}#chat-container.dragging{-webkit-user-select:none;user-select:none}.chat-title-bar{display:flex;justify-content:space-between;align-items:center;height:24px;padding:0 var(--spacing-xs);margin:0 calc(-1 * var(--spacing-sm));margin-bottom:var(--spacing-xs);background:#0000004d;border-radius:var(--radius-md) var(--radius-md) 0 0;cursor:grab;-webkit-user-select:none;user-select:none;flex-shrink:0}#chat-container.dragging .chat-title-bar{cursor:grabbing}.chat-title{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-bold)}.chat-title-controls{display:flex;align-items:center;gap:var(--spacing-xs)}.chat-minimize-btn{background:none;border:none;color:var(--color-text-secondary);font-size:14px;padding:2px 4px;cursor:pointer;border-radius:var(--radius-sm);line-height:1}.chat-minimize-btn:hover{background:#ffffff1a;color:var(--color-text-primary)}.chat-drag-handle{color:var(--color-text-secondary);font-size:12px;padding:2px 4px;cursor:grab;-webkit-user-select:none;user-select:none;letter-spacing:-2px}.chat-drag-handle:hover{color:var(--color-text-primary)}#chat-container.dragging .chat-drag-handle{cursor:grabbing}#chat-messages{flex:1;min-height:0;overflow-y:auto;margin-bottom:var(--spacing-xs);font-size:var(--font-size-sm);display:flex;flex-direction:column-reverse}#chat-input{width:calc(100% - 10px);background:var(--color-bg-primary);border:var(--border-width) solid var(--color-border-dark);color:var(--color-text-primary);padding:var(--spacing-xs);border-radius:var(--radius-sm);flex-shrink:0}.chat-resize-handle{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.3) 30%,rgba(255,255,255,.3) 40%,transparent 40%,transparent 50%,rgba(255,255,255,.3) 50%,rgba(255,255,255,.3) 60%,transparent 60%,transparent 70%,rgba(255,255,255,.3) 70%,rgba(255,255,255,.3) 80%,transparent 80%);border-radius:0 0 var(--radius-md) 0}.chat-resize-handle:hover{background:linear-gradient(135deg,transparent 30%,rgba(255,255,255,.5) 30%,rgba(255,255,255,.5) 40%,transparent 40%,transparent 50%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.5) 60%,transparent 60%,transparent 70%,rgba(255,255,255,.5) 70%,rgba(255,255,255,.5) 80%,transparent 80%)}.mobile-device #chat-container{position:fixed;top:60px!important;left:0!important;width:250px;background:#000c;z-index:var(--z-tooltip);border:var(--border-width) solid var(--color-border-mid)}.mobile-device .chat-resize-handle,.mobile-device .chat-drag-handle{display:none}.mobile-device .chat-title-bar{cursor:default}.mini-map-container{position:relative;background:#000000b3;border:var(--border-width-thick) solid rgba(100,100,100,.8);border-radius:var(--radius-sm);overflow:hidden;box-shadow:var(--shadow-md)}.mini-map-canvas{display:block}.mini-map-zoom-controls{position:absolute;bottom:6px;right:6px;display:flex;flex-direction:column;gap:2px}.mini-map-coords{position:absolute;bottom:4px;left:50%;transform:translate(-50%);background:#000000bf;color:#e8e8e8;font-size:11px;font-family:Consolas,Monaco,monospace;padding:3px 10px;border-radius:10px;border:var(--border-width) solid rgba(100,100,100,.5);white-space:nowrap;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.8)}.mini-map-coords-debug{display:flex;flex-direction:column;align-items:center;gap:1px;font-size:9px;line-height:1.3}.mobile-device .mini-map-container{transform:scale(.6);transform-origin:top left}.mobile-device .mini-map-zoom-controls .btn--sm{width:24px;height:24px;font-size:16px}.mobile-device .mini-map-coords{font-size:14px;padding:4px 12px}.player-hud-container{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);flex:0 0 auto}#player-hud-bottom{display:flex;align-items:center;gap:var(--spacing-xl);background:#000000b3;padding:var(--spacing-sm) var(--spacing-xl);border-radius:20px;border:var(--border-width) solid var(--color-border-mid)}.hp-display,.resonance-display,.rage-display{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-lg);width:200px}.hud-icon{height:1.8em;vertical-align:middle;margin-right:var(--spacing-xs)}#player-name-display,#player-coords{font-weight:var(--font-weight-bold)}.mobile-device #player-hud-bottom{padding:4px 10px;gap:10px;font-size:.8em}.mobile-device .hp-display,.mobile-device .resonance-display,.mobile-device .rage-display{width:120px;font-size:1em}.mobile-device .hp-display .bar-container,.mobile-device .resonance-display .bar-container,.mobile-device .rage-display .bar-container{height:14px}.mobile-device .buff-icon{width:30px;height:30px;font-size:16px}.mobile-device #player-coords{white-space:nowrap}.crafting-recipe-wrapper{position:relative}.crafting-recipe{width:100%;aspect-ratio:1;background-color:#444;border:1px solid #666;border-radius:var(--radius-sm);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.2em;padding:5px;box-sizing:border-box;text-align:center;word-break:break-word;color:#fff;cursor:pointer;gap:5px}.crafting-recipe .item-name{font-size:.6em}.crafting-recipe .item-icon{width:40px;height:40px;flex-shrink:0}.crafting-recipe .item-icon img{width:100%;height:100%;object-fit:contain}.crafting-recipe.disabled,.crafting-recipe:disabled{background-color:#333;cursor:not-allowed;color:#888}.crafting-recipe.new-recipe{box-shadow:0 0 10px 3px #ff0c;animation:glow-pulse-recipe 2s ease-in-out infinite}@keyframes glow-pulse-recipe{0%,to{box-shadow:0 0 10px 3px #ff0c}50%{box-shadow:0 0 15px 5px #ff0}}.mobile-device .crafting-recipe{font-size:1em}.mobile-device #crafting-view{font-size:.85em}.mobile-device #crafting-view h2{font-size:.8em}.mobile-device .crafting-recipe .item-name{font-size:.5em}.crafting-panel{max-height:80vh;overflow-y:auto}.crafting-categories{display:flex;flex-direction:column;gap:8px;width:100%}.crafting-recipes-container{display:grid!important;grid-template-columns:repeat(5,1fr);gap:6px;padding:2px 0}.crafting-category{background:#0003;border-radius:var(--radius-sm);overflow:hidden}.crafting-category.promoted{border-left:3px solid var(--color-gold);background:#ffd70014}.crafting-category.promoted .category-header{background:#ffd70026}.crafting-category.promoted .category-label{color:var(--color-gold);font-weight:600}.category-header{width:100%;display:flex;align-items:center;gap:8px;padding:6px 10px;background:#ffffff0d;border:none;border-bottom:1px solid rgba(255,255,255,.1);color:#ccc;font-size:.85em;cursor:pointer;text-align:left}.category-header:hover{background:#ffffff1a}.category-arrow{font-size:.7em;color:#888;width:12px}.category-label{flex:1;font-weight:500}.category-count{color:#888;font-size:.85em}.crafting-recipe.recipe-locked{background-color:#222;cursor:default}.crafting-recipe.recipe-locked .item-icon{filter:grayscale(100%) brightness(.3);opacity:.5}.crafting-recipe.recipe-locked .lock-icon{position:absolute;bottom:4px;right:4px;font-size:14px;transform:rotate(-15deg);filter:drop-shadow(0 1px 2px rgba(0,0,0,.8))}.crafting-recipe.recipe-mystery{background-color:#1a1a1a;cursor:default}.crafting-recipe.recipe-mystery .mystery-icon{font-size:28px;color:#444;font-weight:700;text-shadow:0 1px 3px rgba(0,0,0,.5)}.tooltip-locked-hint{color:#888;font-style:italic;font-size:.9em;margin-top:4px}.mobile-device .category-header{padding:5px 8px;font-size:.75em}.mobile-device .crafting-recipe.recipe-locked .lock-icon{font-size:10px;bottom:2px;right:2px}.mobile-device .crafting-recipe.recipe-mystery .mystery-icon{font-size:20px}#shop-view{width:auto!important;min-width:400px;max-width:90vw}#shop-view .inventory-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:10px}.shop-price-badge{position:absolute;bottom:2px;left:2px;font-size:.75em;background:#ffd700e6;color:#000;padding:2px 5px;border-radius:var(--radius-xs);font-weight:700}.shop-exchange-badge{position:absolute;bottom:2px;left:2px;font-size:.85em;background:#64c896e6;color:#000;padding:2px 6px;border-radius:var(--radius-xs);font-weight:700}.shop-quantity-badge{position:absolute;top:2px;right:2px;font-size:.7em;background:#6496ffe6;color:#fff;padding:2px 5px;border-radius:var(--radius-xs);font-weight:700}.shop-stock-badge{position:absolute;top:2px;right:2px;font-size:.6em;background:#50b450e6;color:#fff;padding:2px 4px;border-radius:var(--radius-xs);font-weight:700}.shop-stock-badge.public{background:#50b450e6}.shop-stock-badge.private{background:#508cc8e6}.shop-stock-badge.out-of-stock{background:#b45050e6}.mobile-device #shop-view{min-width:300px;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;min-height:230px;box-sizing:border-box;padding:5px}.mobile-device #shop-view .panel-header{flex-shrink:0;width:100%;box-sizing:border-box}.mobile-device #shop-view .inventory-grid{display:grid!important;grid-template-columns:repeat(6,1fr);gap:3px;box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0;padding:1px;flex:1 1 0;overflow-y:auto;overflow-x:hidden;min-height:0}.mobile-device #shop-view .inventory-grid .inventory-slot{box-sizing:border-box;width:100%;max-width:100%;min-width:0}.controls-panel{position:absolute;top:clamp(70px,11vh,110px);right:20px;width:clamp(600px,25vw,700px);z-index:20}.controls-modal-content{background-color:#2a2a2a;border:1px solid #888;border-radius:var(--radius-lg);padding:15px;box-shadow:var(--shadow-lg)}.controls-modal-body{margin-top:15px}.controls-modal-body table{width:100%;border-collapse:collapse}.controls-modal-body td{padding:8px 5px;border-bottom:1px solid #444}.controls-modal-body tr:last-child td{border-bottom:none}.controls-modal-body td:first-child{font-weight:700;color:#fff;width:35%}.controls-modal-body .tips{margin-top:20px;padding-top:15px;border-top:1px solid #555}.controls-modal-body .tips h3{margin:0 0 10px;color:#fff}.controls-modal-body .tips ul{list-style-type:none;padding-left:0;margin:0}.controls-modal-body .tips li{margin-bottom:5px;color:#ccc}.controls-modal-mobile .controls-modal-content{padding:10px}.controls-modal-mobile .modal-header h2{font-size:18px;margin:0}.controls-modal-mobile .controls-modal-body{margin-top:10px}.controls-modal-mobile .controls-modal-body table{font-size:12px}.controls-modal-mobile .controls-modal-body td{padding:4px 3px;font-size:12px;line-height:1.3}.controls-modal-mobile .controls-modal-body td:first-child{font-size:11px;width:30%}.controls-modal-mobile .controls-modal-body .tips{margin-top:12px;padding-top:10px}.controls-modal-mobile .controls-modal-body .tips h3{font-size:14px;margin:0 0 6px}.controls-modal-mobile .controls-modal-body .tips ul{font-size:11px}.controls-modal-mobile .controls-modal-body .tips li{margin-bottom:3px;line-height:1.4}.settings-modal{max-width:800px!important;width:90%!important}.settings-modal-content{background-color:#2a2a2a;border:1px solid #888;border-radius:var(--radius-lg);padding:0;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;height:100%;max-height:80vh}.settings-modal-body{display:flex;flex:1;overflow:hidden}.settings-tabs{display:flex;flex-direction:column;width:180px;background-color:#1e1e1e;border-right:1px solid #444;padding:10px 0;overflow-y:auto}.settings-tab{padding:12px 20px;background:none;border:none;color:#ccc;text-align:left;cursor:pointer;transition:background-color .2s,color .2s;font-size:var(--font-size-md);border-left:3px solid transparent}.settings-tab:hover{background-color:#2a2a2a;color:#fff}.settings-tab.active{background-color:#2a2a2a;color:#fff;border-left-color:#3498db;font-weight:700}.settings-content{flex:1;padding:20px;overflow-y:auto}.graphics-settings h3{margin:0 0 20px;color:#fff;font-size:var(--font-size-lg);border-bottom:1px solid #444;padding-bottom:10px}.setting-item{margin-bottom:25px}.setting-item label{display:block;color:#fff;margin-bottom:8px;font-size:var(--font-size-md);font-weight:500}.setting-item.checkbox-item{margin-top:20px;padding-top:15px;border-top:1px solid #444}.checkbox-item label{display:flex;align-items:center;cursor:pointer;margin-bottom:0}.checkbox-item input[type=checkbox]{width:20px;height:20px;margin-right:10px;cursor:pointer;accent-color:#3498db}.checkbox-item span{color:#fff;font-size:var(--font-size-md);-webkit-user-select:none;user-select:none}#dialog-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:transparent;z-index:99}#dialog-overlay.active{display:block}.dialog-popup{display:none;position:fixed;background-color:#2a2a2a;padding:20px;border:1px solid #888;width:90%;max-width:600px;min-width:280px;max-height:90vh;border-radius:var(--radius-lg);z-index:100;box-shadow:var(--shadow-lg);overflow-y:auto;overflow-x:hidden}@media (min-width: 1200px){.dialog-popup{max-width:800px}}.dialog-popup.active{display:block}#dialog-text{margin-bottom:20px;line-height:1.6}#dialog-options{display:flex;flex-direction:column;gap:10px}#dialog-options button{padding:10px 15px;border:1px solid #7f8c8d;background-color:#34495e;color:#ecf0f1;border-radius:var(--radius-xs);cursor:pointer;text-align:left;transition:background-color .2s}#dialog-options button:hover{background-color:#4a627a}.buff-icon{transition:transform .2s ease;width:44px;height:44px;border-radius:var(--radius-sm);font-size:24px}.buff-icon.is-debuff{border:2px solid #f87171}.buff-icon.is-buff{border:2px solid #4ade80}.buff-bounce{animation:buffBounce .5s ease infinite}.zone-indicator{display:flex;align-items:center;gap:8px}#spells-view>*:not(.panel-header){margin-top:5px}.spell-icon-large{font-size:2em;line-height:1;display:flex;align-items:center;justify-content:center}.spell-icon-large img{width:55px;height:55px;object-fit:contain}.empty-panel-message{color:#888;font-style:italic;text-align:center;padding:20px}.top-info{height:clamp(60px,10vh,100px);padding:0 20px;background:#00000080;position:absolute;top:0;left:0;right:0;z-index:10;display:flex;justify-content:flex-start;align-items:center;font-size:.9em;color:#ccc}.top-info-right{display:flex;gap:10px;align-items:center;margin-left:auto}#game-title-container{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:clamp(50px,8vh,80px);display:flex;align-items:center;justify-content:center}#game-title-logo{height:100%;width:auto;object-fit:contain}.version-tag{position:absolute;bottom:-5px;right:-10px;background:linear-gradient(to right,#f39c12,#d35400);color:#fff;font-size:10px;font-weight:800;padding:2px 6px;border-radius:var(--radius-sm);box-shadow:0 2px 5px #00000080;border:1px solid #a04000;text-shadow:1px 1px 0 rgba(0,0,0,.5);letter-spacing:.5px;white-space:nowrap;font-family:Inter,sans-serif;z-index:5;transform-origin:center center}.version-tag.hidden{opacity:0;transform:scale(2.2) skew(-15deg) rotate(-15deg) translate(15px)}.version-tag.stamp-in{animation:stamp-effect .3s ease-in forwards}@keyframes stamp-effect{0%{opacity:.8;transform:scale(2.2) skew(-15deg) rotate(-15deg) translate(15px)}to{opacity:1;transform:scale(1) skew(0) rotate(-5deg) translate(0)}}.help-button{background:#0009;border:1px solid #888;color:#fff;padding:0 12px;height:30px;border-radius:15px;cursor:pointer;display:grid;place-items:center;font-size:.9em;font-weight:700;text-decoration:none;transition:background .2s,border-color .2s}.help-button:hover{background:#000c;border-color:#aaa}#registration-container{display:flex;gap:5px}#registration-container input{border:1px solid #7f8c8d;background-color:#1a1a1a;color:#f0f0f0;border-radius:var(--radius-xs);padding:4px 8px}#registration-container button{padding:4px 12px;border:none;background-color:#3498db;color:#fff;border-radius:var(--radius-xs);cursor:pointer}.inventory-grid{display:flex;flex-wrap:wrap;gap:10px;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;margin-top:5px}#inventory-view,#crafting-view,#spells-view{display:flex;flex-direction:column;gap:0;width:100%;align-items:flex-start}#crafting-view>*:not(.panel-header),#spells-view>*:not(.panel-header){margin-top:5px}.panel-grid{display:flex;flex-direction:row;gap:10px;flex-wrap:wrap;width:100%;align-items:flex-start}.inventory-slot{width:60px;height:60px;background-color:#444;border:1px solid #666;border-radius:var(--radius-sm);position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.2em;padding:5px;box-sizing:border-box;text-align:center;word-break:break-word;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.inventory-slot.equippable,.inventory-slot.edible,.inventory-slot.unequippable,.inventory-slot.buildable{cursor:pointer}.inventory-slot.equippable:hover,.inventory-slot.edible:hover,.inventory-slot.unequippable:hover,.inventory-slot.buildable:hover{background-color:#555;border-color:#888}.inventory-slot button{font-size:.7em;padding:3px 6px;margin-top:5px;background-color:#555;border:1px solid #777;border-radius:var(--radius-sm);color:#fff;cursor:pointer;transition:background-color .2s;max-width:90%;align-self:center}.inventory-slot button:hover{background-color:#666}.item-icon{font-size:1.8em;line-height:1;width:100%;height:100%;display:flex;justify-content:center;align-items:center}.item-icon img{max-width:100%;max-height:100%;object-fit:contain}.item-name{font-size:.7em;margin-bottom:4px}.item-quantity{position:absolute;bottom:2px;right:4px;font-size:.8em;background:#000000b3;padding:1px 3px;border-radius:var(--radius-xs)}#bank-view{width:570px!important}#bank-view .inventory-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px;width:100%;margin-top:5px}#echo-well-view{width:350px!important}.echo-well-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;width:100%;margin-top:5px}.echo-well-send-all-button{margin-top:10px;padding:8px 16px;width:100%;background-color:#4a5568;color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-md);transition:background-color .2s}.echo-well-send-all-button:hover{background-color:#5a6578}#chest-view{width:290px!important}.chest-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;width:100%;margin-top:5px}#runes-view{display:flex;flex-direction:column;gap:0;width:100%;align-items:flex-start}#runes-view .runes-container{display:flex;flex-direction:row;gap:10px;flex-wrap:wrap;width:100%;margin-top:5px}.rune-button{display:flex;align-items:center;justify-content:center;width:60px;height:60px;padding:8px;background-color:#444;border:1px solid #666;border-radius:50%;cursor:pointer;transition:all .2s ease-out;color:#f0f0f0;font-size:1em}.rune-button:hover{background-color:#555;border-color:#888}.rune-button.selected{background-color:#3498db;border-color:#fff;color:#fff}.rune-button img{width:100%;height:100%;object-fit:contain}#gear-view{display:flex;flex-direction:column;gap:10px;width:100%}#gear-view.info-panel{transition:width .15s ease}#gear-view.info-panel.gear-extended{width:clamp(360px,28vw,400px)!important}.gear-panel-content{display:flex;flex-direction:row;gap:12px;align-items:flex-start;width:100%}.gear-slots-container{display:flex;flex-direction:column;gap:10px;align-items:center;flex-shrink:0}.gear-row{display:flex;flex-direction:row;gap:10px;align-items:center;justify-content:center}.gear-slot-placeholder{width:60px;height:60px}.gear-slot-placeholder-img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain}.player-stats-container{display:flex;flex-direction:column;flex:1;min-width:0;border-left:1px solid rgba(255,255,255,.08);padding-left:12px}.player-stats-header{display:flex;align-items:baseline;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.player-stats-title{margin:0;font-size:.8em;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.stats-toggle-btn{background:none;border:none;color:var(--color-text-disabled);font-size:.7em;cursor:pointer;padding:0;text-decoration:none;transition:color .15s}.stats-toggle-btn:hover{color:var(--color-accent-blue)}.player-stat-empty{font-size:.8em;color:#666;font-style:italic;padding-top:4px}.player-stats-table{border-collapse:collapse;font-size:.85em;color:#d0d0d0;width:100%}.player-stats-table td{padding:3px 0;vertical-align:baseline}.player-stats-table .stat-label{padding-right:10px;white-space:nowrap;color:#999}.player-stats-table .stat-value{text-align:right;font-weight:700;color:#f0f0f0;white-space:nowrap;padding-right:4px}.player-stats-table .stat-modifier{text-align:left;white-space:nowrap;padding-left:2px}.stat-detail-row .stat-detail-label{padding-left:8px;font-size:.9em;color:#777}.stat-detail-row .stat-detail-value{font-weight:400;color:#aaa;font-size:.9em}.talent-bonus{color:#7dd87d;font-size:.9em;font-weight:400}.defense-reduction{color:#888;font-size:.85em;font-weight:400}#quest-view{display:flex;flex-direction:column;gap:10px;width:100%}.quest{margin-bottom:10px}.quest h3{margin:0 0 5px;font-size:1.1em;color:#fff}.quest-complete{color:#2ecc71;font-style:italic}.quest-summary-link{color:#888;font-size:.8em;font-weight:400;margin-left:8px;cursor:pointer;transition:color .15s ease}.quest-summary-link:hover{color:#aaa;text-decoration:underline}.quest-timer{color:#f39c12;font-weight:700}.quest-timer-urgent{color:#e74c3c;animation:timer-pulse 1s ease-in-out infinite}@keyframes timer-pulse{0%,to{opacity:1}50%{opacity:.6}}.quest-objectives{list-style:none;padding-left:15px;margin:0}.quest-objectives li{color:#ccc;margin-bottom:3px;text-decoration:none}.quest-objectives li.completed{color:#2ecc71;text-decoration:line-through}.quest-progress{color:#f1c40f;font-weight:700;margin-left:4px}.quest-objectives li.completed .quest-progress{color:#2ecc71}.quest-tips{margin-top:10px;padding:8px;background-color:#ffff001a;border-left:3px solid #ffd700;border-radius:var(--radius-sm)}.quest-tips h4{margin:0 0 5px;font-size:.9em;color:gold}.quest-tips ul{margin:0;padding-left:20px;list-style-type:disc}.quest-tips li{font-size:.85em;color:#ddd;font-style:italic}#experience-view{display:flex;flex-direction:column;width:100%}.skill-list{display:flex;flex-direction:column;gap:6px;width:100%}.skill-row{display:flex;align-items:center;gap:6px;padding:3px 0;width:100%}.skill-icon{width:24px;height:24px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.skill-icon img{max-width:100%;max-height:100%;object-fit:contain}.skill-name{width:70px;flex-shrink:0;font-weight:600;font-size:.75em;color:#eee;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.skill-level{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;box-sizing:border-box;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;font-size:.8em;font-weight:600;color:#fff}.skill-bar-container{position:relative;height:24px;flex:1 1 auto;min-width:60px;box-sizing:border-box;background-color:#1a1a1a;border-radius:4px;border:1px solid #555;overflow:hidden}.skill-bar-fill{position:absolute;top:0;left:0;height:100%;background:linear-gradient(to bottom,#4a9eff,#2d7dd2);border-radius:3px;transition:width .3s ease-out;z-index:1}.skill-bar-text{position:absolute;top:0;left:0;right:0;bottom:0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 10px;font-size:12px;font-weight:600;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 2px rgba(0,0,0,.9);z-index:2}.xp-current{text-align:right;padding-right:4px}.xp-divider{width:1px;height:12px;background:#ffffff4d}.xp-target{text-align:left;padding-left:4px;opacity:.8}.skill-talents-btn{position:relative;width:24px;height:24px;flex-shrink:0;box-sizing:border-box;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease,border-color .15s ease}.skill-talents-btn:hover{background:#fff3;border-color:#ffffff4d}.talents-icon{font-size:.85em;font-weight:600;color:#ccc}.skill-talents-btn:hover .talents-icon{color:#fff}.unspent-badge{position:absolute;top:-6px;right:-6px;height:16px;background:#e74c3c;border-radius:8px;font-size:.7em;font-weight:600;color:#fff;display:flex;align-items:center;justify-content:center;padding:0 4px}.skill-row.has-unspent-talents .skill-talents-btn{background:#e74c3c33;border-color:#e74c3c66}.skill-row.has-unspent-talents .skill-talents-btn:hover{background:#e74c3c4d;border-color:#e74c3c80}@keyframes skill-levelup-glow{0%,to{box-shadow:0 0 8px 2px #ffd70066}50%{box-shadow:0 0 14px 4px #ffd700cc}}.skill-row.skill-leveled-up{animation:skill-levelup-glow 2s ease-in-out infinite;border-radius:4px}.skill-row.skill-leveled-up .skill-level{background:#ffd70040;border-color:#ffd70080;color:gold}.talent-tree-panel{min-width:440px;max-width:450px}.talent-tree-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);min-height:32px;box-sizing:border-box}.talent-points-available{color:#fc3;font-weight:700}.talent-header-right{display:flex;align-items:center;gap:var(--spacing-sm, 8px)}.talent-level-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;font-size:.9em;font-weight:600;color:#fff}.talent-reset-btn{padding:4px 12px;background:#533;border:1px solid #744;border-radius:var(--radius-sm, 4px);color:#faa;font-size:.85em;cursor:pointer;transition:all .2s ease}.talent-reset-btn:hover{background:#644;border-color:#955;color:#fcc}.talent-reset-btn:active{background:#422}.talent-tree-empty{text-align:center;color:var(--color-text-secondary, #888);padding:var(--spacing-lg) 0}.talent-tree-content{position:relative;padding:var(--spacing-sm);display:flex;flex-direction:column;align-items:center;width:100%}.talent-tree-grid{display:grid;justify-content:center;gap:0}.talent-grid-cell{display:flex;align-items:center;justify-content:center;padding:4px}.talent-connector{display:flex;justify-content:center;align-items:stretch;min-height:20px}.connector-line{width:2px;height:100%;background:#555}.talent-connector.active .connector-line{background:#4a9}.talent-node{width:64px;height:64px;background:linear-gradient(135deg,#2a2a2a,#1a1a1a);border:2px solid #555;border-radius:var(--radius-sm, 4px);position:relative;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.talent-node:hover{transform:scale(1.05)}.talent-node.locked{opacity:.5;cursor:not-allowed}.talent-node.locked:hover{transform:none}.talent-node.has-points{border-color:#3a7;background:linear-gradient(135deg,#1a3a2a,#0a2a1a)}.talent-node.maxed{border-color:gold;box-shadow:0 0 8px #ffd70066}.talent-node.available{border-color:#4a9;box-shadow:0 0 8px #44aa8880;animation:talent-glow 2s ease-in-out infinite}.talent-node.coming-soon{opacity:.6;cursor:not-allowed;border-color:#666}.talent-node.coming-soon:hover{transform:none}@keyframes talent-glow{0%,to{box-shadow:0 0 8px #44aa8880}50%{box-shadow:0 0 14px #4a8c}}.talent-node .talent-icon{width:100%;height:100%;object-fit:contain}.talent-node .talent-rank{position:absolute;bottom:2px;right:4px;font-size:11px;color:#fff;text-shadow:1px 1px 2px #000;font-weight:700}.talent-node .lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0009;border-radius:var(--radius-sm, 4px)}.talent-node .lock-icon{font-size:20px}.talent-node .talent-lock-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080;border-radius:var(--radius-sm, 4px);font-size:24px}.talent-tooltip{max-width:250px}.talent-tooltip-name{font-weight:700;font-size:1.1em;color:#fff;margin-bottom:4px}.talent-tooltip-rank{color:#aaa;font-size:.9em;margin-bottom:8px}.talent-tooltip hr{border:none;border-top:1px solid #555;margin:8px 0}.talent-tooltip-description{color:#ccc;line-height:1.4;margin-bottom:8px}.talent-tooltip-effect{color:#4a9;font-size:.9em}.talent-tooltip-requirement{color:#c44;font-style:italic;margin-top:8px}.talent-tooltip-requirement.met{color:#6a6}.talent-tooltip-locked{color:#c44;font-style:italic;margin-top:8px}.talent-tooltip-coming-soon{color:#aaa;font-style:italic;margin-top:8px;display:flex;align-items:center;gap:6px}.talent-tooltip-coming-soon .coming-soon-icon{font-size:14px}.talent-tooltip-hint{color:#888;font-size:.85em;margin-top:8px}.skill-display.has-unspent-talents{position:relative}.skill-display.has-unspent-talents:before{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:var(--radius-md, 8px);animation:talent-unspent-glow 2s ease-in-out infinite;pointer-events:none;z-index:-1}@keyframes talent-unspent-glow{0%,to{box-shadow:0 0 8px 2px #4a86}50%{box-shadow:0 0 12px 4px #44aa88b3}}.skill-talents-btn{background:#333;border:1px solid #555;border-radius:var(--radius-sm, 4px);cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s ease}.skill-talents-btn:hover{background:#444;border-color:#4a9}.skill-talents-btn .talents-icon{font-weight:700;color:#aaa;font-size:14px}.skill-talents-btn:hover .talents-icon{color:#4a9}.skill-talents-btn .unspent-badge{position:absolute;top:-6px;right:-11px;background:#c44;color:#fff;border-radius:50%;font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:700;box-shadow:0 1px 3px #00000080}@media (max-width: 600px){.talent-tree-panel{min-width:100%;max-width:100%}.talent-node{width:52px;height:52px}.talent-node .talent-icon{width:32px;height:32px}}#music-view{display:flex;flex-direction:column;width:100%}.music-container{display:flex;flex-direction:column;gap:var(--spacing-md);width:100%}.music-controls{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:#0000004d;border-radius:var(--radius-sm)}.mute-button{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-sm);cursor:pointer;transition:background .15s ease,border-color .15s ease;font-size:16px}.mute-button:hover{background:#fff3;border-color:#ffffff4d}.mute-button.muted{background:#e74c3c33;border-color:#e74c3c66}.volume-slider{flex:1;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff3;border-radius:3px;cursor:pointer}.volume-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;background:#fff;border-radius:50%;cursor:pointer;transition:transform .1s ease}.volume-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.volume-slider::-moz-range-thumb{width:14px;height:14px;background:#fff;border:none;border-radius:50%;cursor:pointer}.volume-label{min-width:40px;text-align:right;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.music-tracks{display:flex;flex-direction:column;gap:var(--spacing-xs)}.music-track{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);transition:background .15s ease,border-color .15s ease}.music-track.unlocked{cursor:pointer}.music-track.unlocked:hover{background:#ffffff1a;border-color:#fff3}.music-track.locked{opacity:.5;cursor:not-allowed}.music-track.playing{background:#4a9eff33;border-color:#4a9eff66}.music-track.playing:hover{background:#4a9eff4d;border-color:#4a9eff80}.track-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--color-text-secondary)}.music-track.playing .track-icon{color:#4a9eff}.music-track.locked .track-icon{color:#888}.track-name{flex:1;font-size:var(--font-size-md);font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-track.locked .track-name{color:var(--color-text-secondary);font-style:italic}.unlock-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);opacity:.7}.no-tracks{text-align:center;padding:var(--spacing-lg);color:var(--color-text-secondary);font-style:italic}.social-panel{min-width:280px}.social-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid var(--color-border, #444);padding-bottom:8px}.social-tab{flex:1;padding:6px 12px;background:var(--color-bg-secondary, #2a2a2a);border:1px solid var(--color-border, #444);border-radius:4px 4px 0 0;color:var(--color-text-secondary, #999);cursor:pointer;font-size:12px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px}.social-tab:hover{background:var(--color-bg-hover, #333);color:var(--color-text, #fff)}.social-tab.active{background:var(--color-bg-active, #3a3a3a);color:var(--color-text, #fff);border-bottom-color:var(--color-bg-active, #3a3a3a)}.social-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:var(--color-bg-tertiary, #444);border-radius:9px;font-size:11px}.social-tab-count-new{background:#d8b4f8;color:#1a1a1a}.social-content{max-height:300px;overflow-y:auto}.social-empty{color:var(--color-text-secondary, #888);font-size:12px;text-align:center;padding:20px 10px}.social-section{margin-bottom:12px}.social-section-header{font-size:11px;color:var(--color-text-secondary, #888);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--color-border-light, #333)}.social-friend-row,.social-request-row,.social-blocked-row{display:flex;align-items:center;padding:6px 8px;border-radius:4px;margin-bottom:4px;background:var(--color-bg-secondary, #2a2a2a)}.social-friend-row:hover,.social-request-row:hover,.social-blocked-row:hover{background:var(--color-bg-hover, #333)}.social-friend-row.offline{opacity:.7}.social-status-dot{width:8px;height:8px;border-radius:50%;margin-right:8px;flex-shrink:0}.social-status-dot.online{background:#4ade80;box-shadow:0 0 6px #4ade80}.social-status-dot.offline{background:#666}.social-friend-name,.social-request-name,.social-blocked-name{flex:1;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.social-btn{padding:4px 8px;border:none;border-radius:3px;cursor:pointer;font-size:12px;transition:all .2s ease}.social-btn-danger{background:transparent;color:#888;font-size:16px;padding:0 6px}.social-btn-danger:hover{color:#f87171}.social-btn-accept{background:#4ade80;color:#1a1a1a;font-weight:700}.social-btn-accept:hover{background:#22c55e}.social-btn-decline{background:#f87171;color:#1a1a1a;font-weight:700}.social-btn-decline:hover{background:#ef4444}.social-btn-unblock{background:var(--color-bg-tertiary, #444);color:var(--color-text, #fff)}.social-btn-unblock:hover{background:#555}.social-request-actions{display:flex;gap:6px}.social-content::-webkit-scrollbar{width:6px}.social-content::-webkit-scrollbar-track{background:var(--color-bg-secondary, #2a2a2a);border-radius:3px}.social-content::-webkit-scrollbar-thumb{background:var(--color-border, #444);border-radius:3px}.social-content::-webkit-scrollbar-thumb:hover{background:#555}@keyframes glow-pulse{0%,to{box-shadow:var(--shadow-glow-yellow)}50%{box-shadow:0 0 15px 5px #ff0}}@keyframes glow-pulse-blue{0%,to{box-shadow:var(--shadow-glow-blue)}50%{box-shadow:0 0 15px 5px #3498db}}@keyframes glow-pulse-green{0%,to{box-shadow:0 0 10px 3px #2ecc71cc}50%{box-shadow:0 0 15px 5px #2ecc71}}@keyframes spell-armed-pulse{0%,to{box-shadow:0 0 8px 2px #9b59b6b3}50%{box-shadow:0 0 15px 4px #9b59b6}}@keyframes fly-to-hotbar{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(var(--fly-x, 0),var(--fly-y, 0)) scale(.5)}}@keyframes buffBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes slide-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes phone-rotate{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}@keyframes timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.animate-glow{animation:glow-pulse 2s ease-in-out infinite}.animate-glow-blue{animation:glow-pulse-blue 2s ease-in-out infinite}.animate-glow-green{animation:glow-pulse-green 2s ease-in-out infinite}.animate-fade-in{animation:fade-in var(--transition-normal)}.animate-slide-up{animation:slide-up var(--transition-normal)}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-bounce{animation:buffBounce .5s ease-in-out}.landscape-prompt{position:fixed;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#111,#2a2a2a);color:#fff;z-index:9999;display:none;align-items:center;justify-content:center;text-align:center;padding:20px;box-sizing:border-box}.landscape-content{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:400px;width:100%}.landscape-logo{max-width:80%;height:auto;margin-bottom:30px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.5))}.landscape-icon-container{margin:20px 0;height:80px;display:flex;align-items:center;justify-content:center}.phone-icon{width:40px;height:70px;border:3px solid #fff;border-radius:var(--radius-sm);position:relative;animation:phone-rotate 2s ease-in-out infinite alternate}.phone-icon:after{content:"";position:absolute;bottom:5px;left:50%;transform:translate(-50%);width:4px;height:4px;background:#fff;border-radius:50%}@keyframes phone-rotate{0%{transform:rotate(0)}30%{transform:rotate(0)}70%{transform:rotate(-90deg)}to{transform:rotate(-90deg)}}.landscape-prompt h2{margin:20px 0 10px;font-family:Inter,sans-serif;font-weight:600;letter-spacing:1px;color:#3498db;text-transform:uppercase;font-size:1.4rem}.landscape-prompt p{color:#ccc;line-height:1.5;margin-bottom:30px;font-size:.95rem}.landscape-fullscreen-btn{background:linear-gradient(to bottom,#3498db,#2980b9);color:#fff;border:1px solid #3498db;padding:12px 30px;font-size:1rem;font-weight:600;border-radius:25px;cursor:pointer;box-shadow:0 4px 15px #3498db66;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px}.landscape-fullscreen-btn:hover{background:linear-gradient(to bottom,#4aa3df,#3498db);transform:translateY(-2px);box-shadow:0 6px 20px #3498db99}.landscape-fullscreen-btn:active{transform:translateY(0);box-shadow:0 2px 10px #3498db66}@media (orientation: portrait){.landscape-prompt{display:flex}.mobile-device.game-container{display:none}}.mobile-device .top-info{height:50px;padding:0 10px}.mobile-device #game-title-container{height:40px}.mobile-device .help-button{height:24px;padding:0 8px;font-size:.8em}.mobile-device .action-bar{flex-direction:column-reverse;gap:var(--action-bar-gap);position:fixed;right:10px;top:50%;transform:translateY(-50%);pointer-events:auto;padding:10px 6px}.mobile-device .btn--lg.btn--round{width:42px;height:42px;font-size:1.1em}.mobile-device .top-ui{top:50px;padding:10px;gap:8px}.mobile-device .bottom-ui{padding:10px 60px 10px 10px}.mobile-device .right-hud-container{position:absolute;right:0;bottom:0;width:auto;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;padding-right:10px;pointer-events:none}.mobile-device .info-panels{position:fixed;top:60px;bottom:auto;right:60px}.mobile-device .info-panel{width:240px!important;padding:5px}.mobile-device .info-panel h2{font-size:.9em;margin-bottom:2px;padding-bottom:0}.mobile-device .panel-header{padding-bottom:0}.mobile-device .panel-header h2{font-size:.8em}.mobile-device .panel-header .btn-close{font-size:18px}.mobile-device .info-panel,.mobile-device .info-panel h2,.mobile-device .info-panel h3,.mobile-device .info-panel h4,.mobile-device .player-stats-title{font-size:.85em}.mobile-device .player-stat-empty{font-size:.75em}.mobile-device .quest h3{font-size:.9em}.mobile-device .quest-objectives li,.mobile-device .quest-tips h4{font-size:.8em}.mobile-device .quest-tips li{font-size:.75em}.mobile-device .skill-name{font-size:.8em}.mobile-device .skill-xp-text{font-size:.7em}.mobile-device .item-name{font-size:.6em}.mobile-device .item-quantity{font-size:.7em}.mobile-device .inventory-grid,.mobile-device #inventory-view .inventory-grid{gap:4px}.mobile-device .inventory-slot{width:42px;height:42px;font-size:.9em;padding:2px}.mobile-device .item-icon{font-size:1.3em}.mobile-device .inventory-slot button{font-size:.6em;padding:1px 3px}.mobile-device .rune-button{width:45px;height:45px;padding:5px}.mobile-device .centered-panel{position:static!important;transform:none!important;top:auto!important;left:auto!important}.mobile-device .gear-panel-content{flex-direction:column;align-items:center;gap:10px}.mobile-device .gear-slots-container{width:100%}.mobile-device .player-stats-container{width:100%;min-width:unset;border-top:1px solid #555;border-left:none;padding-top:10px;padding-left:0}.mobile-device .player-stats-list{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:10px}.mobile-device .player-stat{font-size:.8em;background:#0000004d;padding:2px 5px;border-radius:var(--radius-xs)}.mobile-device .gear-slot-placeholder{width:45px;height:45px}.mobile-device #bank-view.info-panel{width:280px!important;position:absolute;box-sizing:border-box;padding:5px;max-height:80vh;min-height:280px;overflow:hidden;min-width:0;display:flex;flex-direction:column;align-items:stretch}.mobile-device #bank-view .inventory-slot{box-sizing:border-box;max-width:100%}.mobile-device #bank-view .panel-header{flex-shrink:0;width:100%;box-sizing:border-box}.mobile-device #bank-view .inventory-grid{display:grid!important;grid-template-columns:repeat(6,1fr);gap:3px;box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0;padding:1px;flex:1 1 0;overflow-y:auto;overflow-x:hidden;min-height:0}.mobile-device #bank-view .inventory-grid .inventory-slot{box-sizing:border-box;width:100%;max-width:100%;min-width:0}.mobile-device #echo-well-view{width:280px!important;overflow:hidden;display:flex;flex-direction:column;align-items:stretch;min-height:280px;box-sizing:border-box;padding:5px}.mobile-device #echo-well-view .panel-header{flex-shrink:0;width:100%;box-sizing:border-box}.mobile-device #echo-well-view .echo-well-grid{display:grid!important;grid-template-columns:repeat(5,1fr);gap:3px;box-sizing:border-box;width:100%;max-width:100%;min-width:0;margin:0;padding:1px;flex:1 1 0;overflow-y:auto;overflow-x:hidden;min-height:0}.mobile-device #echo-well-view .echo-well-grid .inventory-slot{box-sizing:border-box;width:100%;max-width:100%;min-width:0}.mobile-device .modal-content{font-size:.9em;width:90%}.mobile-device .modal-header{margin-bottom:10px;padding-bottom:5px}@media (display-mode: fullscreen){body{overflow:hidden;position:fixed;width:100%;height:100%}}.mobile-device,.mobile-device body{min-height:-webkit-fill-available}@supports (-webkit-touch-callout: none){.mobile-device{-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}}.ios-fullscreen-attempt{position:fixed;width:100%;height:100%;overflow:hidden}@supports (-webkit-touch-callout: none){.mobile-device.game-container{min-height:100vh;min-height:-webkit-fill-available}}.touch-drag-ghost{pointer-events:none;opacity:.7;z-index:10000;transform:scale(1.1);transition:none;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}.inventory-slot.touch-dragging{opacity:.5;transform:scale(.95);transition:opacity .1s,transform .1s}.inventory-slot.touch-drag-target{outline:2px solid #4a9eff;outline-offset:-2px;background-color:#4a9eff33;transition:background-color .1s,outline .1s}body{font-family:Inter,sans-serif;margin:0;background-color:#1a1a1a;color:#f0f0f0;overflow:hidden;display:flex;justify-content:center;align-items:center;height:100vh}#root{width:100%;height:100%;display:flex;justify-content:center;align-items:center}.game-container{width:100%;height:100%;display:flex;flex-direction:column;position:relative;background-color:#333;align-items:center}.main-content{flex-grow:1;display:flex;justify-content:center;align-items:center;overflow:hidden;width:100%;margin-top:clamp(50px,10vh,100px);position:relative}#effect-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:5}.floating-icon{position:absolute;width:40px;height:40px;transform:translate(-50%);animation:floatUp 1.5s ease-out forwards}@keyframes floatUp{0%{transform:translate(-50%);opacity:1}to{transform:translate(-50%,-80px);opacity:0}}#game-canvas{border:2px solid #222;background-color:#5a8a5a;width:100%;height:100%}#game-canvas.teleport-mode{cursor:crosshair;border:2px solid #9b59b6}.top-ui{pointer-events:none;position:absolute;top:clamp(60px,10vh,100px);left:0;right:0;padding:20px;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:10px;z-index:5;width:fit-content}.top-ui>*{pointer-events:auto}.bottom-ui{pointer-events:none;position:absolute;bottom:0;left:0;right:0;padding:var(--bottom-ui-padding);display:flex;justify-content:space-between;align-items:flex-end}.bottom-ui>*{pointer-events:auto}.top-ui.ui-hidden,.bottom-ui.ui-hidden{opacity:0;pointer-events:none}.top-ui.ui-visible,.bottom-ui.ui-visible{opacity:1;transition:opacity .4s ease-in-out}.bottom-ui>.left-hud-container{flex:1 1 0;min-width:0}.bottom-ui>.right-hud-container{pointer-events:none;flex:1 1 0;min-width:0}#teleport-button img{height:80%;width:80%}.levelup-celebration-container{position:fixed;top:80px;left:0;width:100%;pointer-events:none;z-index:1000;display:flex;justify-content:center}.levelup-scroll{position:relative;background:linear-gradient(to bottom,#f4e4bc,#e8d5a3);border:3px solid #8b6914;border-radius:8px;box-shadow:0 4px 20px #0006,inset 0 0 30px #8b691433;padding:20px 40px;min-height:100px;overflow:hidden;animation:scroll-unfurl .6s ease-out forwards}@keyframes scroll-unfurl{0%{width:0;padding-left:0;padding-right:0;opacity:.5}50%{opacity:1}to{width:480px;padding-left:40px;padding-right:40px}}.levelup-scroll--complete{animation:scroll-unfurl .6s ease-out forwards,scroll-fadeout .5s ease-out 2s forwards}@keyframes scroll-fadeout{to{opacity:0;transform:scale(.95)}}.levelup-scroll-content{display:flex;align-items:center;gap:20px;white-space:nowrap}.levelup-icon-container{flex-shrink:0;display:flex;flex-direction:column;align-items:center;gap:4px}.levelup-skill-icon{width:48px;height:48px;border-radius:8px;box-shadow:0 2px 8px #0000004d;animation:icon-glow 1.5s ease-in-out infinite}@keyframes icon-glow{0%,to{box-shadow:0 0 10px 3px #ffd70099}50%{box-shadow:0 0 20px 8px gold}}.levelup-skill-name{font-size:12px;font-weight:600;color:#5a3d00;text-transform:capitalize}.levelup-text-container{flex:1;text-align:center}.levelup-title{font-size:24px;font-weight:700;color:#5a3d00;text-shadow:1px 1px 2px rgba(255,255,255,.5);overflow:hidden;width:0;opacity:0}.levelup-title--visible{animation:typewriter .5s steps(14) forwards}@keyframes typewriter{0%{width:0;opacity:1}to{width:100%;opacity:1}}.levelup-subtitle{font-size:16px;color:#7a5d20;opacity:0;margin-top:4px}.levelup-subtitle--visible{animation:fadeIn .3s ease-out .5s forwards}@keyframes fadeIn{to{opacity:1}}.levelup-level-container{flex-shrink:0}.levelup-ticker{display:flex;flex-direction:column;align-items:center;background:#0000001a;padding:8px 16px;border-radius:8px;border:2px solid #8b6914}.levelup-ticker-label{font-size:12px;color:#5a3d00;text-transform:uppercase;letter-spacing:1px}.levelup-ticker-number{position:relative;overflow:hidden;height:40px;min-width:40px}.levelup-ticker-digit{font-size:32px;font-weight:700;color:#2e7d32;text-shadow:0 2px 4px rgba(0,0,0,.3),0 0 10px rgba(46,125,50,.5);text-align:center;line-height:40px}.levelup-ticker-digit--rolling{animation:ticker-roll .2s ease-out}@keyframes ticker-roll{0%{transform:translateY(100%)}to{transform:translateY(0)}}.levelup-firework{position:absolute;width:10px;height:10px;border-radius:50%;pointer-events:none}.levelup-firework--left{left:-30px;top:50%;transform:translateY(-50%);animation:firework-burst-left 1s ease-out .6s}.levelup-firework--right{right:-30px;top:50%;transform:translateY(-50%);animation:firework-burst-right 1s ease-out .8s}@keyframes firework-burst-left{0%{box-shadow:none}20%{box-shadow:-10px -20px gold,-20px -10px #ff6b6b,-25px 5px #4ecdc4,-15px 15px #ff9f43,-5px 20px #a55eea}to{box-shadow:-30px -60px 0 -3px transparent,-60px -30px 0 -3px transparent,-75px 15px 0 -3px transparent,-45px 45px 0 -3px transparent,-15px 60px 0 -3px transparent}}@keyframes firework-burst-right{0%{box-shadow:none}20%{box-shadow:10px -20px #ff6b6b,20px -10px gold,25px 5px #a55eea,15px 15px #4ecdc4,5px 20px #ff9f43}to{box-shadow:30px -60px 0 -3px transparent,60px -30px 0 -3px transparent,75px 15px 0 -3px transparent,45px 45px 0 -3px transparent,15px 60px 0 -3px transparent}}.levelup-scroll--with-improvements .levelup-scroll-content{flex-wrap:wrap;justify-content:center}.levelup-improvements{width:100%;display:flex;flex-direction:column;gap:4px;margin-top:12px;padding-top:12px;border-top:1px solid rgba(139,105,20,.3);opacity:0;transform:translateY(-10px)}.levelup-improvements--visible{animation:improvements-appear .4s ease-out .8s forwards}@keyframes improvements-appear{to{opacity:1;transform:translateY(0)}}.levelup-improvement{display:flex;align-items:center;justify-content:center;font-size:13px;color:#5a3d00;padding:4px 8px;background:#ffffff4d;border-radius:4px}.levelup-improvement--unlock{background:#2e7d3226;border:1px solid rgba(46,125,50,.3)}.levelup-improvement-text{white-space:nowrap}.levelup-improvement-new{color:#2e7d32;font-weight:700;margin-right:4px}@media (max-width: 600px){.levelup-scroll{max-width:90vw;padding:15px 20px}@keyframes scroll-unfurl{to{width:90vw;max-width:350px}}.levelup-skill-icon{width:36px;height:36px}.levelup-title{font-size:18px}.levelup-ticker-digit{font-size:24px}.levelup-improvement{font-size:11px;padding:3px 6px}}.notification-container{position:fixed;top:120px;left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:10px;pointer-events:none;align-items:center}.notification{min-width:300px;max-width:400px;background-color:#1e1e1ef2;border:1px solid #555;border-radius:6px;padding:12px 16px;box-shadow:0 4px 12px #0000004d;pointer-events:auto;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.notification-content{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.notification-message{flex:1;color:#f0f0f0;font-size:.9em;line-height:1.4}.notification-controls{display:flex;align-items:center;gap:8px;flex-shrink:0}.notification-visibility-toggle{display:flex;align-items:center;gap:4px;cursor:pointer;-webkit-user-select:none;user-select:none}.notification-visibility-toggle input[type=checkbox]{display:none}.notification-visibility-toggle .visibility-icon{color:#aaa;transition:color .2s}.notification-visibility-toggle:hover .visibility-icon{color:#f0f0f0}.notification-visibility-toggle input[type=checkbox]:not(:checked)+.visibility-icon{color:#e74c3c}.notification-close{background:none;border:none;color:#aaa;font-size:24px;line-height:1;cursor:pointer;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .2s}.notification-close:hover{color:#f0f0f0}.notification-footer{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:flex-end}.notification-checkbox{display:flex;align-items:center;gap:6px;font-size:.8em;color:#aaa;cursor:pointer;-webkit-user-select:none;user-select:none}.notification-checkbox input{cursor:pointer}.notification-echo_well_items{border-left:3px solid #3498db}.notification-echo_drop{border-left:3px solid #9b59b6}.notification-info{border-left:3px solid #3498db}.notification-warning{border-left:3px solid #f39c12}.notification-error{border-left:3px solid #e74c3c}.server-restart-banner{position:fixed;top:125px;left:50%;transform:translate(-50%);z-index:1500;min-width:320px;max-width:450px;padding:10px 18px;border-radius:8px;background-color:#1e1e28f2;color:var(--color-text-primary, #f0f0f0);font-size:var(--font-size-sm, .85em);pointer-events:auto;animation:server-restart-slide-down .3s ease-out}.server-restart-banner--warning{border:2px solid var(--color-warning, #f1c40f)}.server-restart-banner--urgent{border:2px solid var(--color-error, #e74c3c);animation:server-restart-slide-down .3s ease-out,server-restart-pulse-border 1s ease-in-out infinite}.server-restart-banner--reconnecting{border:2px solid var(--color-text-muted, #888)}.server-restart-banner--reconnected{border:2px solid var(--color-success, #2ecc71);animation:server-restart-slide-down .3s ease-out,server-restart-fade-out .5s ease-out 2.5s forwards}.server-restart-banner__text{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:var(--font-weight-medium, 500);text-align:center}.server-restart-banner__progress-track{margin-top:8px;width:100%;height:4px;background-color:#ffffff26;border-radius:2px;overflow:hidden}.server-restart-banner__progress-fill{height:100%;background-color:var(--color-warning, #f1c40f);border-radius:2px;transition:width .1s linear}.server-restart-banner--urgent .server-restart-banner__progress-fill{background-color:var(--color-error, #e74c3c)}.server-restart-banner__spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:var(--color-text-primary, #f0f0f0);border-radius:50%;animation:server-restart-spin .8s linear infinite;flex-shrink:0}.server-restart-banner__retry{background:none;border:none;color:var(--color-info, #3498db);text-decoration:underline;cursor:pointer;font-size:inherit;padding:0;font-weight:var(--font-weight-medium, 500)}.server-restart-banner__retry:hover{color:var(--color-text-primary, #f0f0f0)}@keyframes server-restart-slide-down{0%{opacity:0;transform:translate(-50%) translateY(-20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes server-restart-pulse-border{0%,to{border-color:var(--color-error, #e74c3c)}50%{border-color:#e74c3c66}}@keyframes server-restart-fade-out{0%{opacity:1}to{opacity:0}}@keyframes server-restart-spin{to{transform:rotate(360deg)}}.auth-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;z-index:3100}.auth-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#2a2a2a;padding:20px;border:1px solid #888;width:90%;max-width:400px;border-radius:var(--radius-lg);z-index:3101;box-shadow:var(--shadow-lg)}.auth-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #555;padding-bottom:12px;margin-bottom:16px}.auth-header h2{margin:0;font-size:1.25rem;color:#f0f0f0}.auth-form{display:flex;flex-direction:column;gap:16px}.auth-description{color:#bdc3c7;font-size:.9rem;line-height:1.5;margin:0}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{color:#f0f0f0;font-size:.9rem;font-weight:500}.auth-field input{padding:10px 12px;border:1px solid #7f8c8d;background-color:#1a1a1a;color:#f0f0f0;border-radius:var(--radius-xs);font-size:1rem;transition:border-color .2s}.auth-field input:focus{outline:none;border-color:#3498db}.auth-field input:disabled{opacity:.6;cursor:not-allowed}.auth-field input::placeholder{color:#7f8c8d}.auth-field-error{color:#e74c3c;font-size:.8rem}.auth-field-preview{color:#7f8c8d;font-size:.8rem}.auth-field-preview strong{color:#2ecc71}.auth-error{color:#e74c3c;font-size:.85rem;padding:8px 12px;background-color:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:var(--radius-xs)}.auth-buttons{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.auth-btn{padding:10px 20px;border:none;border-radius:var(--radius-xs);font-size:.95rem;cursor:pointer;transition:background-color .2s,opacity .2s}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn-primary{background-color:#3498db;color:#fff}.auth-btn-primary:hover:not(:disabled){background-color:#2980b9}.auth-btn-secondary{background-color:#34495e;color:#ecf0f1;border:1px solid #7f8c8d}.auth-btn-secondary:hover:not(:disabled){background-color:#4a627a}.secure-account-btn{padding:4px 10px;border:1px solid #27ae60;background-color:#27ae6033;color:#2ecc71;border-radius:var(--radius-xs);font-size:.8rem;cursor:pointer;transition:background-color .2s}.secure-account-btn:hover{background-color:#27ae6066}.login-link-btn{padding:4px 10px;border:1px solid #7f8c8d;background-color:transparent;color:#bdc3c7;border-radius:var(--radius-xs);font-size:.8rem;cursor:pointer;transition:background-color .2s,color .2s}.login-link-btn:hover{background-color:#7f8c8d33;color:#f0f0f0}.sign-out-btn{padding:4px 10px;border:1px solid #e74c3c;background-color:#e74c3c33;color:#e74c3c;border-radius:var(--radius-xs);font-size:.8rem;cursor:pointer;transition:background-color .2s}.sign-out-btn:hover{background-color:#e74c3c66}.player-info-container{display:flex;align-items:center;gap:10px}.player-info-container .player-name{color:#f0f0f0;font-size:.9rem}.sign-out-modal{max-width:450px}.sign-out-options{display:flex;flex-direction:column;gap:16px}.sign-out-option{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid #555;background-color:#1a1a1a;border-radius:var(--radius-xs);cursor:pointer;transition:border-color .2s,background-color .2s;text-align:left}.sign-out-option:hover:not(:disabled){background-color:#252525}.sign-out-option:disabled{opacity:.6;cursor:not-allowed}.sign-out-option-echo{border-color:#27ae60}.sign-out-option-echo:hover:not(:disabled){border-color:#2ecc71;background-color:#27ae601a}.sign-out-option-full{border-color:#7f8c8d}.sign-out-option-full:hover:not(:disabled){border-color:#95a5a6}.sign-out-option-title{font-size:1rem;font-weight:600;color:#f0f0f0}.sign-out-option-echo .sign-out-option-title{color:#2ecc71}.sign-out-option-desc{font-size:.85rem;color:#bdc3c7;line-height:1.4}.world-map-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:transparent;display:flex;align-items:center;justify-content:center;z-index:2000;pointer-events:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.world-map-modal{background:linear-gradient(145deg,#1a1a24,#12121a);border:2px solid #3a3a4a;border-radius:8px;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;max-width:calc(100vw - 40px);max-height:calc(100vh - 40px);animation:slideIn .2s ease-out;pointer-events:auto}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.world-map-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid #3a3a4a;background:#0003}.world-map-header h2{margin:0;font-size:18px;color:#e8e8e8;font-weight:600;letter-spacing:.5px}.world-map-zoom-controls{display:flex;align-items:center;gap:8px}.zoom-btn{background:#3c3c46cc;border:1px solid #4a4a5a;color:#ccc;width:28px;height:28px;font-size:18px;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.zoom-btn:hover:not(:disabled){background:#50505ae6;color:#fff}.zoom-btn:disabled{opacity:.4;cursor:not-allowed}.zoom-level{font-size:12px;color:#888;min-width:45px;text-align:center}.world-map-close{background:none;border:none;color:#888;font-size:24px;cursor:pointer;padding:0;line-height:1;transition:color .2s ease}.world-map-close:hover{color:#fff}.world-map-content{padding:16px;display:flex;justify-content:center;align-items:center}.world-map-canvas{display:block;border-radius:4px}.world-map-footer{padding:12px 16px;border-top:1px solid #3a3a4a;background:#0003}.world-map-legend{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;margin-bottom:8px}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:#ccc}.legend-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.legend-icon{width:24px;height:24px;flex-shrink:0}.world-map-coords{font-size:12px;color:#888;text-align:center}.world-map-hover-tooltip{position:fixed;background:#000000d9;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px;font-family:JetBrains Mono,Fira Code,monospace;pointer-events:none;z-index:2100;white-space:nowrap;border:1px solid #4a4a5a;box-shadow:0 2px 8px #0006}.settings-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#14141ef2;border:1px solid #444;border-radius:8px;padding:0;width:90%;max-width:700px;z-index:2000;box-shadow:0 0 20px #000c;display:flex;flex-direction:column;height:65vh;max-height:80vh}.settings-header{display:flex;justify-content:space-between;align-items:center;padding:15px 20px;border-bottom:1px solid #444}.settings-header h2{margin:0;color:#eee;font-size:1.2rem}.close-button{background:none;border:none;color:#aaa;font-size:24px;cursor:pointer;line-height:1;padding:0 5px}.close-button:hover{color:#fff}.settings-body{display:flex;flex:1;overflow:hidden}.settings-tabs{display:flex;flex-direction:column;width:180px;border-right:1px solid #444;background:#0003;flex-shrink:0}.tab-button{background:none;border:none;padding:15px 20px;color:#aaa;cursor:pointer;font-size:1rem;transition:all .2s;border-left:3px solid transparent;text-align:left;white-space:nowrap}.tab-button:hover{background:#ffffff0d;color:#eee}.tab-button.active{color:#fff;border-left:3px solid #3498db;background:#3498db1a}.settings-content{padding:20px;overflow-y:auto;flex:1}.graphics-settings h3,.notification-settings h3,.interface-settings h3{margin-top:0;color:#ddd;font-size:1.1rem;margin-bottom:10px}.setting-description{color:#888;font-size:.9rem;margin-bottom:20px;line-height:1.4}.settings-categories{display:flex;flex-direction:column;gap:15px}.settings-category{background:#0003;border:1px solid #333;border-radius:4px;padding:15px}.category-title{color:#3498db;font-size:.95rem;font-weight:600;margin:0 0 12px;text-transform:capitalize;border-bottom:1px solid #444;padding-bottom:8px}.settings-checkbox-item{margin-bottom:10px}.settings-checkbox-item:last-child{margin-bottom:0}.settings-checkbox-label{display:flex;align-items:center;cursor:pointer;color:#ccc;font-size:.9rem;transition:color .2s}.settings-checkbox-label:hover{color:#fff}.settings-checkbox-label input[type=checkbox]{margin-right:10px;cursor:pointer}.checkbox-label-text{flex:1}.checkbox-hint{color:#666;font-size:.8rem;margin:5px 0 0 24px;line-height:1.3}.settings-radio-group{margin-bottom:10px}.settings-radio-label,.radio-group-label{display:block;color:#ccc;font-size:.9rem;margin-bottom:8px}.radio-label-text{display:block}.radio-options{display:flex;gap:20px;margin-left:4px}.radio-option{display:flex;align-items:center;cursor:pointer;color:#aaa;font-size:.9rem;transition:color .2s}.radio-option:hover{color:#fff}.radio-option input[type=radio]{margin-right:6px;cursor:pointer}.radio-option span{-webkit-user-select:none;user-select:none}.settings-slider-item{margin-bottom:12px}.settings-slider-item:last-child{margin-bottom:0}.settings-slider-label{display:flex;justify-content:space-between;align-items:center;color:#ccc;font-size:.9rem;margin-bottom:6px}.slider-value{color:#3498db;font-weight:500}.settings-slider-item input[type=range]{width:100%;cursor:pointer}.optimize-banner{display:flex;align-items:center;gap:12px;background:#0003;border:1px solid #333;border-radius:4px;padding:15px}.optimize-button{padding:8px 16px;background-color:#3498db;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:14px;font-weight:600;white-space:nowrap;transition:background-color .2s}.optimize-button:hover{background-color:#2980b9}.optimize-description{color:#888;font-size:.85rem;line-height:1.4;flex:1}.suppressed-list{background:#0003;border-radius:4px;border:1px solid #333;max-height:300px;overflow-y:auto}.suppressed-item{display:flex;justify-content:space-between;align-items:center;padding:10px 15px;border-bottom:1px solid #333}.suppressed-item:last-child{border-bottom:none}.suppressed-item span{color:#ccc;font-size:.95rem}.enable-button{background:#34495e;color:#eee;border:1px solid #555;padding:4px 10px;border-radius:4px;font-size:.8rem;cursor:pointer;transition:all .2s}.enable-button:hover{background:#3498db;border-color:#2980b9;color:#fff}.empty-list{padding:20px;text-align:center;color:#666;font-style:italic}.keybinds-settings h3{margin-top:0;color:#ddd;font-size:1.1rem;margin-bottom:10px}.keybind-list{display:flex;flex-direction:column;gap:8px}.keybind-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0}.keybind-label{color:#ccc;font-size:.9rem;flex:1}.keybind-controls{display:flex;align-items:center;gap:8px}.keybind-button{min-width:80px;padding:8px 16px;background:#0000004d;border:1px solid #555;border-radius:4px;color:#fff;font-size:.9rem;font-family:inherit;cursor:pointer;transition:all .2s;text-align:center}.keybind-button:hover{background:#3498db33;border-color:#3498db}.keybind-button.listening{background:#3498db4d;border-color:#3498db;color:#3498db;animation:keybind-pulse 1s ease-in-out infinite}@keyframes keybind-pulse{0%,to{box-shadow:0 0 #3498db66}50%{box-shadow:0 0 0 4px #3498db00}}.keybind-button.duplicate{border-color:#e74c3c;color:#e74c3c}.keybind-clear{width:28px;height:28px;padding:0;background:#0000004d;border:1px solid #555;border-radius:4px;color:#888;font-size:1rem;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.keybind-clear:hover:not(:disabled){background:#e74c3c33;border-color:#e74c3c;color:#e74c3c}.keybind-clear:disabled{opacity:.3;cursor:not-allowed}.reset-keybinds-button{margin-top:16px;padding:8px 16px;background:#0000004d;border:1px solid #555;border-radius:4px;color:#aaa;font-size:.85rem;cursor:pointer;transition:all .2s}.reset-keybinds-button:hover{background:#34495e80;border-color:#666;color:#fff}.dpad-container{position:fixed;bottom:20px;left:20px;width:var(--dpad-size);height:var(--dpad-size);z-index:90;touch-action:none;user-select:none;-webkit-user-select:none}.dpad-button{position:absolute;background-color:#0000;border:2px solid rgba(243,236,213,.6);border-radius:8px;box-sizing:border-box;pointer-events:none;transition:background-color .1s}.dpad-button.active{background-color:#ffffff4d;box-shadow:0 0 10px #ffffff4d}.dpad-up{top:0;left:var(--dpad-button-size);width:var(--dpad-button-size);height:calc(var(--dpad-button-size) + 1px);border-bottom:none;border-bottom-left-radius:0;border-bottom-right-radius:0}.dpad-down{bottom:0;left:var(--dpad-button-size);width:var(--dpad-button-size);height:calc(var(--dpad-button-size) + 1px);border-top:none;border-top-left-radius:0;border-top-right-radius:0}.dpad-left{top:var(--dpad-button-size);left:0;width:calc(var(--dpad-button-size) + 1px);height:var(--dpad-button-size);border-right:none;border-top-right-radius:0;border-bottom-right-radius:0}.dpad-right{top:var(--dpad-button-size);right:0;width:calc(var(--dpad-button-size) + 1px);height:var(--dpad-button-size);border-left:none;border-top-left-radius:0;border-bottom-left-radius:0}.dpad-center{position:absolute;top:var(--dpad-button-size);left:var(--dpad-button-size);width:var(--dpad-button-size);height:var(--dpad-button-size);background-color:#0000}.dpad-button.dpad-tutorial-glow{animation:dpad-glow-pulse 3s ease-in-out infinite}@keyframes dpad-glow-pulse{0%,to{background-color:#ffffff26}50%{background-color:#ffffff59}}.title-screen-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:transparent;z-index:3000;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.title-banner{position:relative;width:85%;max-width:900px;padding:40px 80px;text-align:center;transform:scaleX(1);opacity:1}.title-banner.unfurling{clip-path:inset(0 50% 0 50%)}.title-banner.unfurling .scroll-content{opacity:0}.title-banner.unfurling.animate{animation:scroll-unfurl 1s cubic-bezier(.25,.1,.25,1) forwards}.title-banner.unfurling.animate .scroll-content{animation:content-fade-in 1s ease-out forwards;animation-delay:.3s}@keyframes scroll-unfurl{0%{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}@keyframes content-fade-in{0%{opacity:0}to{opacity:1}}.title-banner:before{content:"";position:absolute;top:0;left:40px;right:40px;bottom:0;background:url(/assets/textures/ui/title_banner.png),linear-gradient(135deg,#f4e4bc,#e8d5a3 15%,#dcc68f 35%,#d4bc7f,#dcc68f 65%,#e8d5a3 85%,#f4e4bc);background-size:cover,cover;background-blend-mode:overlay;border-top:3px solid #8b7355;border-bottom:3px solid #8b7355;box-shadow:0 8px 32px #0006,inset 0 0 30px #8b735533;z-index:-1}.scroll-roll-left{position:absolute;left:0;top:-8px;bottom:-8px;width:50px;background:linear-gradient(90deg,#c9a863,#e8d5a3,#f4e4bc,#d4bc7f,#b89d5a,#8b7355);border-radius:50% 0 0 50%/5% 0 0 5%;box-shadow:-4px 0 8px #0000004d,inset 4px 0 12px #ffffff4d,inset -2px 0 8px #0003;z-index:1}.scroll-roll-left:after{content:"";position:absolute;top:0;right:0;bottom:0;width:20px;background:linear-gradient(90deg,transparent 0%,rgba(139,115,85,.4) 100%);border-radius:0 8px 8px 0}.scroll-roll-right{position:absolute;right:0;top:-8px;bottom:-8px;width:50px;background:linear-gradient(270deg,#c9a863,#e8d5a3,#f4e4bc,#d4bc7f,#b89d5a,#8b7355);border-radius:0 50% 50% 0/0 5% 5% 0;box-shadow:4px 0 8px #0000004d,inset -4px 0 12px #ffffff4d,inset 2px 0 8px #0003;z-index:1}.scroll-roll-right:after{content:"";position:absolute;top:0;left:0;bottom:0;width:20px;background:linear-gradient(270deg,transparent 0%,rgba(139,115,85,.4) 100%);border-radius:8px 0 0 8px}.scroll-content{position:relative;z-index:2}.title-reveal-container{position:relative;margin-bottom:20px;width:100%;display:flex;justify-content:center;align-items:center}.title-reveal-canvas{display:block;max-width:100%;width:100%;height:200px}.title-banner.instant{animation:none;clip-path:none}.title-banner.instant .scroll-content,.title-banner.instant .play-now-btn{animation:none;opacity:1}.title-particles{pointer-events:none}.play-now-btn{background:linear-gradient(180deg,#5a8fc9,#4a7bb5,#2d5a8a 50%,#1a3d5c);border:3px solid #c9a227;border-radius:8px;color:#fff8e7;font-family:Cinzel Decorative,Georgia,serif;font-size:22px;font-weight:700;padding:16px 56px;cursor:pointer;text-shadow:0 1px 2px rgba(0,0,0,.5),0 0 20px rgba(201,162,39,.3);box-shadow:0 4px 12px #0006,0 0 20px #4a7bb54d,inset 0 1px #ffffff40,inset 0 -2px 8px #0003;transition:all .25s ease;margin-top:20px;letter-spacing:1px;position:relative;overflow:hidden;opacity:1}.play-now-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.15) 50%,transparent 100%);animation:button-shimmer 4s ease-in-out infinite}@keyframes button-shimmer{0%,to{left:-100%}50%{left:100%}}.play-now-btn:hover{background:linear-gradient(180deg,#6ba0d9,#5a8cc5,#3d6a9a 50%,#2a4d6c);transform:translateY(-2px);box-shadow:0 6px 16px #00000080,0 0 30px #4a7bb580,0 0 15px #c9a2274d,inset 0 1px #ffffff4d,inset 0 -2px 8px #0003;border-color:#dab82f}.play-now-btn:active{transform:translateY(1px);box-shadow:0 2px 6px #0006,0 0 15px #4a7bb54d,inset 0 2px 4px #0003}.title-buttons{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:24px;margin-top:16px}.title-buttons .play-now-btn{margin-top:0}.login-btn{background:transparent;border:2px solid #c9a227;border-radius:8px;color:#c9a227;font-family:Cinzel Decorative,Georgia,serif;font-size:18px;font-weight:600;padding:12px 40px;cursor:pointer;transition:all .25s ease;letter-spacing:1px}.login-btn:hover{background:#c9a22726;color:#dab82f;border-color:#dab82f}.login-btn:active{transform:translateY(1px)}.falling-icons-container{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2999;overflow:hidden}@media (max-width: 768px){.title-banner{width:92%;padding:30px 50px}.title-banner:before{left:30px;right:30px}.scroll-roll-left,.scroll-roll-right{width:35px}.title-reveal-canvas{max-width:100%;height:160px}.play-now-btn{font-size:18px;padding:12px 32px}.login-btn{font-size:16px;padding:10px 32px}}@media (max-width: 480px){.title-banner{width:96%;padding:24px 35px}.title-banner:before{left:22px;right:22px}.scroll-roll-left,.scroll-roll-right{width:25px}.title-reveal-canvas{max-width:100%;height:120px}.title-buttons{gap:16px}.play-now-btn{font-size:14px;padding:10px 20px}.login-btn{font-size:13px;padding:8px 16px}}.inspector-panel{pointer-events:auto;position:absolute;bottom:80px;right:0;padding:6px 12px;background:linear-gradient(to bottom,#1e1e1ee6,#141414f2);border:var(--border-width) solid rgba(80,80,80,.6);border-radius:var(--radius-md);box-shadow:var(--shadow-md),inset 0 1px #ffffff0d}.inspector-panel__name{color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);text-shadow:1px 1px 2px rgba(0,0,0,.8);white-space:nowrap}.inspector-panel__requirement{font-size:var(--font-size-xs);font-style:italic;text-shadow:1px 1px 2px rgba(0,0,0,.8);white-space:nowrap;margin-top:2px}.inspector-panel__requirement.met{color:#6a6}.inspector-panel__requirement.unmet{color:#c44}.inspector-panel__hint{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:#d4a944;text-shadow:1px 1px 2px rgba(0,0,0,.8);white-space:nowrap;margin-top:2px}.inspector-panel__hint-icon{width:14px;height:14px;image-rendering:pixelated}.highscores-container{height:100vh;background-color:#1a1a1a;color:#f0f0f0;display:flex;flex-direction:column;align-items:center;padding:40px 20px;font-family:Inter,sans-serif;overflow:hidden}.highscores-header{margin-bottom:40px;text-align:center;flex-shrink:0}.highscores-logo{height:80px;max-width:100%;object-fit:contain}.highscores-content{width:100%;max-width:1200px;min-height:0;overflow-y:auto}.highscores-loading,.highscores-error{text-align:center;padding:40px;font-size:1.2em;color:#ccc}.highscores-error{color:#ff6b6b}.highscores-table{width:100%;border-collapse:collapse;background-color:#2a2a2a;border-radius:8px;overflow:hidden;box-shadow:0 4px 6px #0000004d}.highscores-table thead{background-color:#333}.highscores-table th{padding:16px;text-align:left;font-weight:600;color:#f0f0f0;border-bottom:2px solid #444;text-transform:uppercase;font-size:.9em;letter-spacing:.5px;position:sticky;top:0;background-color:#333;z-index:1}.highscores-table th:first-child{text-align:center;width:80px}.highscores-table th:nth-child(2){min-width:150px}.highscores-table th:nth-child(n+3){text-align:right}.highscores-table tbody tr{border-bottom:1px solid #3a3a3a;transition:background-color .2s}.highscores-table tbody tr:hover{background-color:#333}.highscores-table tbody tr:last-child{border-bottom:none}.highscores-table tbody tr:nth-child(2n){background-color:#252525}.highscores-table tbody tr:nth-child(2n):hover{background-color:#333}.highscores-table td{padding:14px 16px;color:#e0e0e0}.highscores-table .rank-cell{text-align:center;font-weight:600;color:#3498db;font-size:1.1em}.highscores-table .player-cell{font-weight:500;color:#f0f0f0}.highscores-table td:nth-child(n+3){text-align:right;font-family:Courier New,monospace;color:#ccc}.highscores-empty{text-align:center;padding:40px;color:#888;font-style:italic}@media (max-width: 768px){.highscores-container{padding:20px 10px}.highscores-logo{height:60px}.highscores-table{font-size:.9em}.highscores-table th,.highscores-table td{padding:10px 8px}.highscores-table th:first-child{width:60px}}.admin-panel{min-height:100vh;background-color:#1a1a1a;color:#f0f0f0;padding:20px;font-family:Inter,sans-serif}.admin-login{max-width:400px;margin:100px auto;padding:40px;background:#ffffff0d;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.admin-login h1{margin-top:0;margin-bottom:30px;text-align:center;color:#fff}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.1)}.admin-header h1{margin:0;color:#fff}.logout-button{padding:8px 16px;background-color:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.logout-button:hover{background-color:#c0392b}.admin-content{max-width:900px;margin:0 auto}.admin-main{display:grid;grid-template-columns:280px 1fr;gap:20px;margin-bottom:20px}@media (max-width: 700px){.admin-main{grid-template-columns:1fr}}.status-section,.commands-section,.migration-section{background:#ffffff0d;border-radius:8px;padding:20px;border:1px solid rgba(255,255,255,.1)}.migration-section{margin-bottom:20px}.status-section h2,.commands-section h2,.migration-section h2{margin-top:0;margin-bottom:20px;color:#fff;font-size:1.5em}.status-loading{font-size:.6em;font-weight:400;color:#888}.status-info{display:flex;flex-direction:column;gap:15px}.status-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#0003;border-radius:4px}.status-label{font-weight:600;color:#ccc}.status-value{font-weight:700;color:#fff}.status-value.downtime-enabled{color:#e74c3c}.status-value.downtime-disabled{color:#27ae60}.command-buttons{display:flex;flex-direction:column;gap:15px}.command-button{padding:15px 20px;border:none;border-radius:6px;cursor:pointer;font-size:16px;font-weight:600;transition:all .2s}.command-button:disabled{opacity:.5;cursor:not-allowed}.command-button-danger{background-color:#e74c3c;color:#fff}.command-button-danger:hover:not(:disabled){background-color:#c0392b}.command-button-warning{background-color:#f39c12;color:#fff}.command-button-warning:hover:not(:disabled){background-color:#d68910}.command-button-success{background-color:#27ae60;color:#fff}.command-button-success:hover:not(:disabled){background-color:#229954}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#ccc;font-weight:500}.form-group input{width:100%;padding:10px;border:1px solid rgba(255,255,255,.2);background-color:#0000004d;color:#f0f0f0;border-radius:4px;font-size:14px;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#3498db}form button[type=submit]{width:100%;padding:12px;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:16px;font-weight:600}form button[type=submit]:hover:not(:disabled){background-color:#2980b9}form button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.message{padding:12px 16px;border-radius:4px;margin-bottom:20px;font-weight:500}.message-success{background-color:#27ae6033;border:1px solid #27ae60;color:#27ae60}.message-error{background-color:#e74c3c33;border:1px solid #e74c3c;color:#e74c3c}.loading,.error{padding:20px;text-align:center;color:#ccc}.error{color:#e74c3c}.migration-description{color:#888;font-size:14px;margin-bottom:15px}.migration-form{display:flex;flex-direction:column;gap:15px}.checkbox-group{margin-bottom:0}.checkbox-group label{display:flex;align-items:center;gap:10px;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;cursor:pointer}.migration-result{margin-top:20px;padding:15px;background:#0003;border-radius:6px}.migration-result h3{margin-top:0;margin-bottom:15px;color:#fff}.result-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-item{display:flex;justify-content:space-between;padding:10px;background:#0000004d;border-radius:4px}.stat-label{color:#ccc}.stat-value{font-weight:700;color:#fff}.stat-success{color:#27ae60}.stat-error{color:#e74c3c}.migration-errors{margin-top:15px;padding:10px;background:#e74c3c1a;border:1px solid rgba(231,76,60,.3);border-radius:4px}.migration-errors h4{margin-top:0;margin-bottom:10px;color:#e74c3c}.migration-errors ul{margin:0;padding-left:20px;color:#ccc;font-size:14px;max-height:200px;overflow-y:auto}.migration-errors li{margin-bottom:5px}.header-actions{display:flex;gap:10px}.refresh-button{padding:8px 16px;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.refresh-button:hover:not(:disabled){background-color:#2980b9}.refresh-button:disabled{opacity:.5;cursor:not-allowed}.feedback-list{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:15px}.no-feedback{text-align:center;padding:40px;color:#888;background:#ffffff0d;border-radius:8px}.feedback-item{background:#ffffff0d;border-radius:8px;padding:16px;border:1px solid rgba(255,255,255,.1)}.feedback-item.feedback-voice{border-left:3px solid #9b59b6}.feedback-item.feedback-text{border-left:3px solid #3498db}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.feedback-meta{display:flex;align-items:center;gap:10px}.player-name{font-weight:600;color:#fff}.feedback-type-badge{padding:2px 8px;border-radius:4px;font-size:12px;text-transform:uppercase;font-weight:600}.feedback-voice .feedback-type-badge{background:#9b59b64d;color:#9b59b6}.feedback-text .feedback-type-badge{background:#3498db4d;color:#3498db}.feedback-status{padding:2px 8px;border-radius:4px;font-size:12px;background:#ffffff1a;color:#888}.feedback-date{color:#888;font-size:14px}.feedback-content{margin-bottom:12px}.feedback-text{color:#f0f0f0;line-height:1.5;white-space:pre-wrap}.audio-player{display:flex;align-items:center;gap:10px;margin-bottom:10px}.audio-player audio{flex:1;max-width:400px}.audio-duration{color:#888;font-size:14px}.feedback-transcript{color:#f0f0f0;line-height:1.5;padding:10px;background:#0003;border-radius:4px}.transcript-label{color:#888;font-size:12px;display:block;margin-bottom:5px}.pending-transcript{color:#888;font-style:italic}.feedback-context{font-size:13px;color:#888;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}
