*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-dark: #0a0a1a;--bg-panel: #141428;--bg-card: #1e1e3a;--bg-hover: #2a2a4a;--text-primary: #e8e8f0;--text-secondary: #8888aa;--text-dim: #555566;--accent-blue: #4488ff;--accent-red: #ff4444;--accent-green: #44cc44;--accent-gold: #ffcc44;--accent-purple: #aa44ff;--border: #333355;--radius: 8px;--radius-lg: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--glass-bg: rgba(22, 24, 52, .45);--glass-bg-light: rgba(30, 32, 64, .35);--glass-border: rgba(120, 130, 180, .18);--glass-border-hover: rgba(160, 170, 220, .28);--glass-sheen: linear-gradient(135deg, rgba(255,255,255,.08) 0%, transparent 50%);--glass-sheen-subtle: linear-gradient(135deg, rgba(255,255,255,.05) 0%, transparent 50%);--glass-shadow: 0 2px 8px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .2);--glass-shadow-active: 0 0 12px rgba(255, 204, 68, .3), 0 1px 4px rgba(0, 0, 0, .3);--glass-inset-highlight: inset 0 1px 0 rgba(255, 255, 255, .06)}html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-dark);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.4;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation}#app{width:100%;height:100%;margin:0 auto;position:relative;overflow:hidden}.screen{width:100%;height:100%;overflow-y:auto;padding-top:var(--safe-top);padding-bottom:var(--safe-bottom)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;border:2px solid var(--border);border-radius:var(--radius);background:var(--bg-card);color:var(--text-primary);font-size:16px;font-weight:600;cursor:pointer;min-height:48px;min-width:48px;transition:background .15s,border-color .15s,transform .1s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff}.btn-primary:active{background:#36c}.btn-secondary{background:var(--bg-panel);border-color:var(--text-dim)}.btn-lg{padding:16px 32px;font-size:18px;width:100%;max-width:320px}.btn-back{padding:8px 16px;font-size:14px;border:none;background:none;color:var(--text-secondary)}.title-screen{position:relative;width:100%;height:100%;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#0f1030,#060612 60%,#020208)}.title-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.title-vignette{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 50% 45%,transparent 40%,rgba(0,0,0,.7) 100%)}.title-content{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:12%}.title-logo{width:100%;padding:0 10px;margin-bottom:30px;overflow:visible}.title-crystal{width:98px;margin:0 auto -20px;animation:crystal-float 3s ease-in-out infinite,crystal-glow-pulse 4s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(68,136,255,.5)) drop-shadow(0 0 40px rgba(170,68,255,.3))}.crystal-img{width:100%;height:auto;mix-blend-mode:screen}@keyframes crystal-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes crystal-glow-pulse{0%,to{filter:drop-shadow(0 0 20px rgba(68,136,255,.5)) drop-shadow(0 0 40px rgba(170,68,255,.3))}50%{filter:drop-shadow(0 0 30px rgba(68,136,255,.8)) drop-shadow(0 0 60px rgba(170,68,255,.5))}}.title-logo-img{display:block;width:min(79vw,806px);max-width:100%;height:auto;margin:0 auto;mix-blend-mode:screen;filter:drop-shadow(0 0 30px rgba(68,136,255,.4)) drop-shadow(0 0 60px rgba(170,68,255,.2))}.title-logo{position:relative}.title-subtitle{color:var(--text-secondary);font-size:15px;margin-top:10px;letter-spacing:6px;text-transform:uppercase;opacity:.7}.title-menu{display:flex;flex-direction:column;gap:60px;align-items:center;width:80%;max-width:320px}.btn-title-primary,.btn-title-secondary{position:relative;z-index:0;border:none;background:transparent;color:var(--text-secondary);text-shadow:0 1px 3px rgba(0,0,0,.5);padding:14px 36px;min-width:220px;margin:6px 0}.btn-title-primary:before,.btn-title-secondary:before{content:"";position:absolute;inset:-16px;background:linear-gradient(135deg,#0f1432d9,#192346d9);z-index:-1}.btn-title-primary:after,.btn-title-secondary:after{content:"";position:absolute;inset:-24px;border:24px solid transparent;border-image-source:url(/UI/decorative_UI_frame.png);border-image-slice:100;border-image-width:24px;border-image-repeat:round;pointer-events:none;z-index:1}.btn-title-primary.selected,.btn-title-secondary.selected{color:#fff;box-shadow:0 0 20px #4488ff4d}.btn-title-primary.selected:before,.btn-title-secondary.selected:before{background:linear-gradient(135deg,#1e3278e6,#3250b4e6)}.btn-title-primary.selected:after,.btn-title-secondary.selected:after{border-image-source:url(/UI/decorative_UI_frame_selected.png)}.btn-title-primary:active,.btn-title-secondary:active{filter:brightness(.85)}.title-footer{position:absolute;bottom:30px;left:50%;transform:translate(-50%);color:var(--text-dim);font-size:11px;letter-spacing:1px;opacity:.5;z-index:2}.title-crystal{animation:crystal-float 3s ease-in-out infinite,crystal-glow-pulse 4s ease-in-out infinite,crystal-enter 1.2s cubic-bezier(.16,1,.3,1) both}@keyframes crystal-enter{0%{opacity:0;transform:translateY(-40px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}.anim-title{animation:fade-up .8s .4s cubic-bezier(.16,1,.3,1) both}.anim-subtitle{animation:fade-up .8s .7s cubic-bezier(.16,1,.3,1) both}.anim-menu{animation:fade-up .8s 1s cubic-bezier(.16,1,.3,1) both}.anim-footer{animation:fade-in 1s 1.4s both}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:.5}}.cs-screen{position:relative;width:100%;height:100%;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,#0f1030,#060612 60%,#020208)}.cs-particles{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}.cs-vignette{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse at 50% 45%,transparent 40%,rgba(0,0,0,.7) 100%);pointer-events:none}.cs-caller{position:absolute;top:-2%;left:50%;transform:translate(-50%);width:55%;max-width:300px;z-index:2;opacity:0;transition:opacity 1s ease-in;pointer-events:none}.cs-caller.visible{opacity:1}.cs-caller img{width:100%;height:auto;filter:drop-shadow(0 0 25px rgba(68,136,255,.25))}.cs-dialogue{position:absolute;top:25%;left:50%;transform:translate(-50%);width:88%;max-width:460px;z-index:3;background:#080818e0;border:1px solid rgba(100,140,255,.25);border-radius:8px;padding:10px 14px;opacity:0;transition:opacity .6s ease-in}.cs-dialogue.visible{opacity:1}.cs-dialogue-text{color:#d8d8e8;font-size:14px;line-height:1.5;min-height:1.5em}.cs-bottom{position:absolute;bottom:14%;left:0;right:0;z-index:3;display:flex;flex-direction:column;align-items:center;gap:8px;padding:0 12px}.cs-pick-label{color:#ffcc44e6;font-size:12px;font-weight:600;letter-spacing:2px;text-transform:uppercase;text-shadow:0 0 10px rgba(255,204,68,.3);opacity:0;transition:opacity .5s}.cs-pick-label.visible{opacity:1}.cs-close-btn{position:absolute;top:12px;left:12px;z-index:10;background:#0a0a1eb3;border:1px solid rgba(100,140,255,.3);color:#abd;font-size:20px;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}.cs-close-btn:active{background:#323278cc}.cs-carousel{position:relative;width:100%;display:flex;align-items:center;justify-content:center;cursor:grab;user-select:none}.cs-carousel:active{cursor:grabbing}.cs-carousel-track{position:relative;width:220px;aspect-ratio:872 / 1336;display:flex;align-items:center;justify-content:center}.cs-carousel-arrow{display:none;position:absolute;top:50%;transform:translateY(-50%);background:#0a0a1e99;border:1px solid rgba(100,140,255,.3);color:#abd;font-size:28px;width:40px;height:40px;border-radius:50%;cursor:pointer;z-index:5;align-items:center;justify-content:center;transition:background .15s}.cs-arrow-left{left:calc(50% - 300px)}.cs-arrow-right{right:calc(50% - 300px)}.cs-carousel-arrow:active{background:#323278cc}.cs-confirm-btn{min-width:220px;font-size:16px;font-weight:600}.cs-card{position:absolute;width:100%;height:100%;cursor:pointer;opacity:0;transform:scale(.7) translate(0);transition:transform .4s cubic-bezier(.23,1,.32,1),opacity .4s ease-out,filter .4s ease-out;pointer-events:none}.cs-card.dealt{opacity:1}.cs-card-active{transform:scale(1) translate(0);opacity:1;z-index:3;pointer-events:auto;filter:drop-shadow(0 0 12px rgba(100,160,255,.4))}.cs-card-left{transform:scale(.72) translate(-78%);opacity:.5;z-index:2;filter:brightness(.5)}.cs-card-right{transform:scale(.72) translate(78%);opacity:.5;z-index:2;filter:brightness(.5)}.cs-card-far-left{transform:scale(.55) translate(-140%);opacity:.2;z-index:1;filter:brightness(.3)}.cs-card-far-right{transform:scale(.55) translate(140%);opacity:.2;z-index:1;filter:brightness(.3)}.cs-card-hidden{transform:scale(.4) translate(0);opacity:0;z-index:0}.cs-card-active:active{transform:scale(.95)}.cs-card-inner{position:relative;width:100%;height:100%}.cs-card-front{position:absolute;inset:0;border-radius:6px;background:transparent;overflow:visible;z-index:0}.cs-card-front:before{content:"";position:absolute;inset:-6px -10px;background:linear-gradient(160deg,#0e0e28,#181840);z-index:-1}.cs-card-front:after{content:"";position:absolute;inset:-16px;border:16px solid transparent;border-image-source:var(--card-frame, url(/UI/frame_fighter.png));border-image-slice:100;border-image-repeat:stretch;pointer-events:none;z-index:1}.cs-card-content{position:relative;z-index:1;padding:4px 2px;display:flex;flex-direction:column;align-items:center;height:100%;text-align:center;gap:2px}.cs-card-portrait{width:162px;height:162px;overflow:hidden;margin-bottom:4px;flex-shrink:0}.cs-card-portrait img{width:162px!important;height:162px!important;object-fit:cover;image-rendering:auto}.cs-card-icon{font-size:40px;line-height:72px}.cs-card-name{font-size:14px;font-weight:700;line-height:1.2}.cs-card-role{font-size:10px;color:var(--text-secondary);line-height:1.2}.cs-card-feat{font-size:10px;color:var(--accent-gold);margin-top:4px;line-height:1.3;text-align:center}.cs-card-feat-label{font-size:8px;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:1px}.cs-card-feat-desc{font-size:9px;color:var(--text-secondary);margin-top:2px;line-height:1.3;font-weight:400}.cs-card-stats{display:flex;gap:0 10px;justify-content:center;font-size:12px;color:var(--text-dim);margin-top:auto;padding-top:4px;border-top:1px solid rgba(255,255,255,.08)}.cs-stat-col{display:flex;flex-direction:column;align-items:center;gap:1px}.cs-card-flavor{font-size:9px;font-style:italic;color:var(--text-secondary);line-height:1.3;text-align:center;margin-top:4px}.cs-controls{display:flex;gap:16px;margin-top:5vh;opacity:0;pointer-events:none;transition:opacity .5s}.cs-controls.visible{opacity:1;pointer-events:auto}.cs-btn{background:#0a0a1ecc;border:1px solid rgba(100,140,255,.3);color:#abc;padding:8px 20px;border-radius:6px;font-size:13px;cursor:pointer;transition:background .15s}.cs-btn:active{background:#323264cc}.screen-header{text-align:center;margin-bottom:16px}.screen-header h2{font-size:22px;margin:8px 0 4px}.select-hint{color:var(--text-secondary);font-size:13px}.class-grid{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding-bottom:80px}.class-card{display:flex;flex-wrap:wrap;gap:8px;padding:12px;background:var(--bg-card);border:2px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s,background .15s}.class-card:active,.class-card.selected{background:var(--bg-hover)}.char-portrait{display:block;object-fit:cover;object-position:top center;image-rendering:auto}.class-sprite{width:96px;min-width:96px;display:flex;align-items:center;justify-content:center}.class-sprite svg{width:56px;height:auto}.class-info{flex:1;min-width:0}.class-name{font-size:16px;font-weight:700}.class-role{font-size:12px;color:var(--text-secondary)}.class-desc{font-size:12px;font-style:italic;color:var(--text-secondary);margin-top:4px}.class-passive{font-size:11px;color:var(--accent-gold);margin-top:4px}.class-feat{font-size:11px;margin-top:4px}.class-feat-desc{color:var(--accent-gold);margin-top:2px}.class-stats{width:100%;display:flex;gap:12px;font-size:11px;color:var(--text-dim);padding-top:4px;border-top:1px solid var(--border)}.screen-footer{position:fixed;bottom:0;left:0;right:0;padding:16px;background:linear-gradient(transparent,var(--bg-dark) 30%);display:flex;justify-content:center;padding-bottom:calc(16px + var(--safe-bottom))}.map-screen{display:flex;flex-direction:column;height:100%;position:relative}.map-top-bar{display:flex;align-items:center;gap:12px;padding:6px 12px;background:#0a0a14d9;border-bottom:1px solid var(--border);z-index:3;flex-shrink:0}.act-label{font-size:14px;font-weight:700;color:var(--accent-gold)}.gold-label{font-size:13px;color:var(--accent-gold)}.map-blessings{flex:1;display:flex;gap:6px;align-items:center;overflow-x:auto}.map-menu-btn{margin-left:auto;flex-shrink:0}.map-party-cards{z-index:3;pointer-events:none}.map-party-cards .party-card{pointer-events:auto}.dungeon-party-cards{z-index:10}.map-message{padding:8px 16px;background:var(--accent-gold);color:var(--bg-dark);text-align:center;font-weight:600;font-size:14px}.map-container{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;cursor:grab;position:relative}.map-svg{width:100%;height:auto;image-rendering:pixelated}.map-clouds{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.map-node-available{animation:node-pulse 2s ease-in-out infinite}@keyframes node-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.07)}}.map-node-current,.dungeon-node-inner.dungeon-node-current{animation:node-current-throb 2.5s ease-in-out infinite}@keyframes node-current-throb{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}.dungeon-node-inner.dungeon-node-avail{animation:node-pulse 2s ease-in-out infinite}.map-node-tap{animation:node-tap .15s ease-out forwards!important}@keyframes node-tap{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1.1)}}.path-available{animation:path-glow 2s ease-in-out infinite}@keyframes path-glow{0%,to{opacity:.7}50%{opacity:1}}.combat-screen{height:100%;background:linear-gradient(180deg,#0a0a2a,#141428,#0a0a1a)}.combat-header{padding:8px 12px;background:var(--bg-panel);border-bottom:1px solid var(--border)}.battlefield{width:100%;height:100%;position:relative;overflow:hidden}.battlefield:before{content:"";position:absolute;inset:0;background:#00000040;pointer-events:none;z-index:0}.battlefield:after{content:"";position:absolute;bottom:0;left:0;right:0;height:40%;pointer-events:none;z-index:0}.bf-grassland{background:url(/backgrounds/grasslands.png) center 70%/cover no-repeat;image-rendering:pixelated}.bf-grassland:after{display:none}.bf-forest{background:url(/backgrounds/forest.png) center 70%/cover no-repeat,#1a2a18;image-rendering:pixelated}.bf-forest:after{display:none}.bf-cave{background:url(/backgrounds/cave.png) center 70%/cover no-repeat,linear-gradient(180deg,#1a1520,#2a2030,#3a2838 60%,#2a1a22);image-rendering:pixelated}.bf-cave:after{display:none}.bf-throne{background:url(/backgrounds/throne.png) center 70%/cover no-repeat,linear-gradient(180deg,#1a1030,#2a1840,#221438 60%,#18102a);image-rendering:pixelated}.bf-throne:after{display:none}.bf-desert{background:url(/backgrounds/desert.png) center 70%/cover no-repeat,linear-gradient(180deg,#6090d0,#c0a860 45%,#d8c080 55%,#b09048);image-rendering:pixelated}.bf-desert:after{display:none}.bf-swamp{background:url(/backgrounds/swamp.png) center 70%/cover no-repeat,linear-gradient(180deg,#283828,#2a4028,#223a20 60%,#1a3018);image-rendering:pixelated}.bf-swamp:after{display:none}.bf-water{background:url(/backgrounds/water.png) center 70%/cover no-repeat,linear-gradient(180deg,#1a2040,#203060 30%,#284880 55%,#203858);image-rendering:pixelated}.bf-water:after{display:none}.bf-snow{background:linear-gradient(180deg,#80a0c8,#b0c8e0 30%,#d8e0e8 55%,#c8d4e0)}.bf-snow:after{display:none}.bf-lava{background:linear-gradient(180deg,#1a0808,#4a1008 30%,#802010 55%,#c04018)}.bf-lava:after{display:none}.enemy-area-fp{position:absolute;left:0;top:10%;width:100%;height:100%;z-index:1}@media(orientation:portrait){.enemy-area-fp{top:20%}}.enemy-unit{position:absolute;display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px 4px;border-radius:var(--radius);transform:translate(-50%,-50%);transition:transform .15s;overflow:visible}.enemy-unit:after{content:"";position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:70px;height:14px;background:radial-gradient(ellipse,rgba(0,0,0,.45) 0%,transparent 70%);pointer-events:none;z-index:-1}.enemy-unit.targetable{cursor:pointer}.enemy-unit.targetable:active{transform:translate(-50%,-50%) scale(.95)}.party-cards{display:flex;justify-content:center;gap:4px;padding:4px 6px 6px;background:transparent;z-index:2;position:absolute;bottom:0;left:0;right:0}.party-card{flex:0 1 calc(25% - 3px);max-width:calc(25% - 3px);aspect-ratio:5 / 7;padding:6px 5px;background:#101020e6;border-radius:6px;border:2px solid #4488cc;transition:transform .2s ease-out,border-color .2s,box-shadow .2s;position:relative;overflow:visible;display:flex;flex-direction:column}.party-card.ko{opacity:.35}.party-card.active-turn{transform:translateY(-12px);border-color:#f0c840!important;box-shadow:0 0 10px #f0c84066,0 0 20px #f0c84026,0 8px 24px #0000004d}.party-card.targetable{cursor:pointer}.party-card.targetable:active{transform:scale(.95)}.card-upper{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden}.card-header{display:flex;align-items:center;justify-content:center;gap:4px;margin-bottom:2px}.card-name{font-size:16px;font-weight:700;color:#e0e0e8}.card-level{font-size:9px;color:var(--accent-blue)}.card-sprite{display:flex;justify-content:center;align-items:center;flex:1;line-height:0;overflow:hidden}.card-sprite .char-portrait{width:85%!important;height:auto!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.7)) drop-shadow(0 0 2px rgba(0,0,0,.5))}.card-sprite svg{width:120px;height:auto}.card-statuses{display:flex;flex-wrap:wrap;justify-content:center;gap:1px;min-height:12px}.party-card .stat-row{margin-bottom:2px}.party-card .stat-row .hp-bar{display:none}.enemy-intent{display:flex;align-items:center;gap:2px;font-size:10px;background:#00000080;padding:1px 5px;border-radius:8px;min-height:16px}.intent-icon{font-size:10px}.intent-text{font-size:9px;color:var(--text-secondary)}.enemy-sprite{line-height:0;image-rendering:auto;filter:drop-shadow(0 2px 3px rgba(0,0,0,.7)) drop-shadow(0 0 2px rgba(0,0,0,.5))}.enemy-sprite svg{width:80px;height:auto;image-rendering:pixelated}.enemy-sprite-emoji{font-size:56px;line-height:1}.enemy-name-label{font-size:10px;font-weight:600;text-align:center;color:#ddd;text-shadow:0 1px 3px rgba(0,0,0,.9);margin-top:2px;white-space:nowrap}.enemy-name{font-size:9px;font-weight:600;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.8)}.enemy-unit .hp-bar{width:70px;height:6px}.enemy-unit .hp-text{font-size:8px}.enemy-hp-reveal{font-size:9px;color:#cfc;text-align:center;margin-top:1px}.hp-bar-enemy{width:60px;height:4px;background:#333;border-radius:2px;margin:1px auto;overflow:hidden}.enemy-statuses{display:flex;gap:2px}.hp-bar{width:100%;height:14px;background:#1a1a2a;border-radius:7px;overflow:hidden;position:relative;border:1px solid var(--border)}.hp-bar-fill{height:100%;background:linear-gradient(90deg,#c44,#f44);border-radius:7px;transition:width .3s ease}.hp-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8)}.hp-bar-compact{height:10px}.hp-bar-compact .hp-text{font-size:8px}.combat-log{position:absolute;top:0;left:0;right:0;padding:10px 12px;font-size:19px;font-weight:600;color:#e8e8f0;text-align:center;background:#000000b3;border-bottom:1px solid rgba(100,130,200,.4);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3;text-shadow:0 1px 3px rgba(0,0,0,.8);z-index:6;cursor:pointer;transition:all .2s ease}.combat-log.combat-log-expanded{bottom:25%;white-space:normal;overflow-y:auto;text-align:left;padding:12px 16px;font-size:14px;font-weight:400;z-index:20}.combat-log-close{position:absolute;top:6px;right:10px;background:none;border:none;color:#aaa;font-size:18px;cursor:pointer;line-height:1;padding:2px 6px;z-index:21}.combat-log-close:active{color:#fff}.combat-log-entry{padding:3px 0;font-size:14px;color:#c8c8d8}.combat-log-entry:last-child{border-bottom:none;color:#e8e8f0;font-weight:600}.status-icon{font-size:11px}.party-cards .status-icon{font-size:20px}.stat-row{display:flex;align-items:center;gap:3px;margin-bottom:1px}.stat-label{font-size:11px;font-weight:700;color:#f0c040;min-width:16px;text-align:right}.stat-label.stat-mp{color:#60c0f0}.stat-value{font-size:11px;color:#e0e0f0;min-width:36px;text-align:right;font-family:monospace;font-weight:600}.mp-bar{background:#0a1a2a}.mp-fill{background:linear-gradient(90deg,#2060a0,#4090d0)!important}.turn-order-bar{position:absolute;top:52px;right:4px;display:flex;flex-direction:column;z-index:5;background:linear-gradient(180deg,#101430f2,#080a1ef2);border:1px solid rgba(100,130,200,.5);border-radius:3px;overflow:hidden;width:141px}.turn-entry{display:flex;align-items:center;justify-content:center;border-bottom:1px solid rgba(80,110,180,.35);font-size:18px;color:#89b;line-height:1}.turn-entry:last-child{border-bottom:none}.turn-entry.turn-ally-entry{padding:0}.turn-entry.turn-enemy-entry{padding:0 12px;height:47px}.turn-entry.turn-active{background:#f0c84033;box-shadow:inset 2px 0 #f0c840}.turn-entry.turn-enemy-entry.turn-active{color:#f0c840}.turn-entry.turn-next:not(.turn-active){background:#5078c81a}.turn-portrait{width:100%;height:47px;overflow:hidden;image-rendering:auto}.turn-portrait .ctb-portrait{width:100%;height:100%;object-fit:cover;image-rendering:auto;display:block}.turn-portrait .ctb-fallback{object-position:center 15%}.turn-name{white-space:nowrap;text-align:center}@media(orientation:portrait){.turn-entry{font-size:13px}.turn-entry.turn-enemy-entry{padding:0 8px;height:33px}.turn-portrait{height:33px}.enemy-unit{transform:translate(-50%,-50%) scale(.6)}.enemy-unit.targetable:active{transform:translate(-50%,-50%) scale(.57)}}.menu-area.card-menu{position:absolute;inset:0;overflow-y:auto;background:#0e10268c;-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3);border-radius:4px;padding-bottom:0;z-index:20;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:var(--glass-inset-highlight),0 4px 20px #0006}.cmd-menu{display:flex;flex-direction:column;gap:3px;padding:6px 8px}.cmd-btn{display:flex;align-items:center;gap:6px;padding:8px 10px;min-height:36px;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s;box-shadow:var(--glass-shadow);position:relative;overflow:hidden}.cmd-btn:before{content:"";position:absolute;inset:0;background:var(--glass-sheen);pointer-events:none;border-radius:inherit}.cmd-btn:active{transform:scale(.96);border-color:#fc46;background:#1e1c348c;box-shadow:var(--glass-shadow-active)}.cmd-btn.cmd-expanded{border-color:#ffcc4459;background:#1a18308c;box-shadow:inset 0 2px 4px #0000004d,0 0 8px #ffcc4426}.cmd-btn.cmd-expanded:before{background:linear-gradient(135deg,rgba(255,210,80,.06) 0%,transparent 50%)}.cmd-subitems{display:flex;flex-direction:column;gap:3px;padding:5px 0 5px 14px;border-left:1px solid rgba(120,130,180,.12);margin-left:12px}.cmd-icon{font-size:20px;width:24px;text-align:center;filter:drop-shadow(0 0 3px rgba(200,210,255,.25))}.cmd-btn:active .cmd-icon{filter:drop-shadow(0 0 5px rgba(255,210,100,.4))}.cmd-label{font-size:14px;font-weight:600;text-shadow:0 1px 3px rgba(0,0,0,.5)}.cmd-count{margin-left:auto;font-size:11px;color:var(--text-dim);background:var(--bg-dark);padding:2px 6px;border-radius:8px}.submenu-list{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto}.submenu-item{display:flex;align-items:center;gap:6px;padding:7px 10px;min-height:34px;background:var(--glass-bg-light);border:1px solid rgba(120,130,180,.12);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:background .12s,transform .1s,box-shadow .12s;width:100%;text-align:left;box-shadow:0 1px 4px #0003;position:relative;overflow:hidden}.submenu-item:before{content:"";position:absolute;inset:0;background:var(--glass-sheen-subtle);pointer-events:none;border-radius:inherit}.submenu-item:active{transform:scale(.97);background:#1e1c3480;box-shadow:inset 0 1px 3px #0000004d,0 0 6px #ffcc4426}.submenu-item.disabled{opacity:.3;cursor:not-allowed;box-shadow:none}.submenu-item.disabled:before{display:none}.submenu-item-icon{font-size:18px;width:24px;text-align:center}.submenu-item-name{font-size:13px;font-weight:600;flex:1;text-shadow:0 1px 2px rgba(0,0,0,.4)}.submenu-item-cost{font-size:11px;color:var(--accent-blue);text-shadow:0 0 6px rgba(68,136,255,.3)}.submenu-item-qty{font-size:12px;color:var(--text-dim)}.submenu-item.has-desc{flex-direction:column;align-items:stretch;gap:2px}.submenu-item-top{display:flex;align-items:center;gap:8px}.submenu-item-top .submenu-item-name{flex:1}.submenu-item-desc{font-size:11px;color:var(--text-secondary);line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.4)}.submenu-empty{padding:16px;text-align:center;color:var(--text-dim);font-size:13px}.throw-header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px}.throw-title{font-size:13px;font-weight:600;color:var(--text-secondary)}.throw-mult{font-size:11px;font-weight:700;color:var(--accent-blue);margin-left:auto}.throw-elem{font-size:14px;margin-left:4px}.throw-equipped{font-size:10px;color:var(--text-dim);background:var(--bg-dark);padding:1px 6px;border-radius:6px;margin-left:6px}.targeting-hint{display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px;animation:targeting-pulse 2s ease-in-out infinite}.targeting-text{font-size:14px;color:var(--accent-gold);font-weight:600;text-shadow:0 0 8px rgba(255,204,68,.4),0 1px 2px rgba(0,0,0,.5)}@keyframes targeting-pulse{0%,to{opacity:.85}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.targeting-hint{animation:none}}.menu-area.card-menu .btn-back,.menu-area.card-menu .btn-cancel{background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius);color:var(--text-secondary);text-shadow:0 1px 2px rgba(0,0,0,.4);box-shadow:0 1px 4px #0003}.levelup-screen{display:flex;flex-direction:column;align-items:center;padding:20px 16px;gap:16px}.levelup-header{display:flex;align-items:center;gap:16px;width:100%;padding:16px;background:var(--bg-card);border-radius:var(--radius-lg);border:2px solid var(--accent-gold);box-shadow:0 0 20px #ffcc4426}.levelup-sprite{width:70px;min-width:70px;display:flex;align-items:center;justify-content:center}.levelup-sprite svg{width:70px;height:auto}.levelup-info{flex:1}.levelup-title{font-size:24px;color:var(--accent-gold);margin-bottom:2px}.levelup-name{font-size:18px;font-weight:700}.levelup-level{font-size:14px;color:var(--text-secondary);margin-top:2px}.levelup-stats{font-size:11px;color:var(--accent-green);margin-top:4px}.levelup-xp-bar{width:100%}.xp-bar-label{font-size:11px;color:var(--text-dim);margin-bottom:4px;text-align:center}.xp-bar-track{width:100%;height:8px;background:#1a1a2a;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.xp-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));border-radius:4px;transition:width .3s ease}.levelup-subtitle{color:var(--text-secondary);font-size:15px}.levelup-cards{display:flex;flex-direction:column;gap:12px;width:100%}.levelup-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:border-color .15s,transform .15s}.levelup-card:active{transform:scale(.98);border-color:var(--accent-gold)}.levelup-card.feat-tier-1{border-color:#b0b8c8}.levelup-card.feat-tier-2{border-color:#4a9eff}.levelup-card.feat-tier-3{border-color:#4adb6a}.levelup-card.feat-tier-4{border-color:#ffc940}.levelup-card.feat-tier-5{border-color:#ff8c28}.levelup-card.feat-tier-1 .levelup-card-header{border-bottom-color:#b0b8c8}.levelup-card.feat-tier-2 .levelup-card-header{border-bottom-color:#4a9eff}.levelup-card.feat-tier-3 .levelup-card-header{border-bottom-color:#4adb6a}.levelup-card.feat-tier-4 .levelup-card-header{border-bottom-color:#ffc940}.levelup-card.feat-tier-5 .levelup-card-header{border-bottom-color:#ff8c28}.levelup-card.feat-tier-1 .levelup-ability-name{color:#b0b8c8}.levelup-card.feat-tier-2 .levelup-ability-name{color:#4a9eff}.levelup-card.feat-tier-3 .levelup-ability-name{color:#4adb6a}.levelup-card.feat-tier-4 .levelup-ability-name{color:#ffc940}.levelup-card.feat-tier-5 .levelup-ability-name{color:#ff8c28}.levelup-card-header{display:flex;justify-content:space-between;padding:10px 14px;background:var(--bg-panel);border-bottom:2px solid var(--border)}.levelup-ability-name{font-weight:700;font-size:16px}.levelup-ability-cost{color:var(--accent-blue);font-weight:600}.levelup-card-body{padding:10px 14px}.levelup-elem{font-size:12px;margin-bottom:4px}.levelup-desc{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.levelup-stats-row{display:flex;gap:16px;font-size:11px;color:var(--text-dim)}.feat-tier-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;color:#fff}.feat-effect-summary{margin-top:6px;font-size:11px;color:var(--accent-gold);font-weight:600}.pm-feat-list{display:flex;flex-direction:column;gap:6px}.pm-feat-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#ffffff0a;border-radius:6px}.pm-feat-icon{font-size:18px;flex-shrink:0;line-height:0;display:flex;align-items:center}.pm-feat-info{flex:1;min-width:0}.pm-feat-name{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--text-main)}.pm-feat-desc{font-size:11px;color:var(--text-dim);margin-top:2px}.lib-card-prereq{font-size:11px;color:var(--text-dim)}.levelup-remaining{font-size:12px;color:var(--text-dim);min-height:16px}.loot-overlay{position:relative;width:100%;height:100%;overflow:hidden}.loot-bg{position:absolute;inset:0;filter:brightness(.4) blur(2px);z-index:0}.loot-panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:20px 16px;gap:12px}.loot-title{font-size:28px;font-weight:800;color:var(--accent-gold);text-shadow:0 2px 8px rgba(0,0,0,.7),0 0 20px rgba(255,204,68,.3);margin-bottom:4px}.loot-rewards{display:flex;flex-direction:column;gap:18px;width:100%;max-width:360px}.loot-row{display:flex;align-items:center;gap:12px;padding:10px 16px;margin:0 -10px;background:#141428d9;border-radius:var(--radius-md);border:1px solid rgba(255,255,255,.1);opacity:0;transform:translateY(10px)}.loot-row-enter{animation:lootRowIn .35s ease-out forwards}@keyframes lootRowIn{to{opacity:1;transform:translateY(0)}}.loot-icon{font-size:20px;flex-shrink:0;min-width:24px;text-align:center}.loot-icon .equip-icon{width:22px;height:22px}.loot-xp-icon{filter:hue-rotate(200deg)}.loot-label{font-size:15px;font-weight:600;color:var(--text-primary);flex:1}.loot-row-gold .loot-label{color:var(--accent-gold)}.loot-row-xp .loot-label{color:#b8b0ff}.loot-rarity{font-size:11px;text-transform:capitalize;padding:2px 8px;border-radius:10px;background:#ffffff14;color:var(--text-dim)}.loot-row-equip.rarity-common .loot-label{color:#c8c8c8}.loot-row-equip.rarity-uncommon .loot-label,.loot-row-equip.rarity-uncommon .loot-rarity{color:#4c4}.loot-row-equip.rarity-rare .loot-label,.loot-row-equip.rarity-rare .loot-rarity{color:#48f}.loot-row-equip.rarity-epic .loot-label,.loot-row-equip.rarity-epic .loot-rarity{color:#a4f}.loot-row-equip.rarity-legendary .loot-label,.loot-row-equip.rarity-legendary .loot-rarity{color:#f80}.loot-row{position:relative}.loot-row:after{content:"";position:absolute;inset:-10px;border:10px solid transparent;border-image-source:var(--loot-frame, url(/UI/common_frame.png));border-image-slice:100;border-image-repeat:stretch;pointer-events:none;z-index:1}.loot-row-equip.rarity-common{--loot-frame: url(/UI/common_frame.png)}.loot-row-equip.rarity-uncommon{--loot-frame: url(/UI/uncommon_frame.png)}.loot-row-equip.rarity-rare{--loot-frame: url(/UI/rare_frame.png)}.loot-row-equip.rarity-legendary{--loot-frame: url(/UI/legendary_frame.png)}.loot-row-item,.loot-row-equip{cursor:pointer}.loot-row-item:hover,.loot-row-equip:hover{background:#282850f2;border-color:#fff3}.loot-continue{margin-top:8px;min-width:180px}.levelup-panel{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;height:100%;padding:16px;gap:10px;overflow-y:auto}.levelup-feat-cards{display:flex;gap:28px;width:100%;max-width:800px;justify-content:center;flex-wrap:wrap}.feat-card{position:relative;width:180px;aspect-ratio:872 / 1336;cursor:pointer;opacity:0;transform:translateY(16px);animation:lootRowIn .4s ease-out forwards;transition:transform .15s ease,filter .15s ease}.feat-card:hover{transform:translateY(-2px);filter:drop-shadow(0 0 12px rgba(255,204,68,.35))}.feat-card:active{transform:scale(.97)}.feat-card-inner{position:relative;border-radius:6px;overflow:visible;background:transparent;width:100%;height:100%;display:flex;flex-direction:column;align-items:center}.feat-card-inner:before{content:"";position:absolute;inset:-4px -6px;background:linear-gradient(160deg,#0e0e28,#181840);border-radius:6px;z-index:-1}.feat-card-inner:after{content:"";position:absolute;inset:-14px;border:14px solid transparent;border-image-source:var(--card-frame, url(/UI/frame_fighter.png));border-image-slice:100;border-image-repeat:stretch;pointer-events:none;z-index:1}.feat-card-name{font-weight:700;font-size:14px;color:var(--accent-gold);text-align:center;padding:12px 10px 4px}.feat-card-icon{font-size:36px;text-align:center;padding:8px 0;line-height:1;display:flex;align-items:center;justify-content:center}.feat-card-body{padding:6px 12px;flex:1}.feat-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.4;text-align:center}.levelup-skip-btn{margin-top:4px}.rest-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:20px;gap:16px;text-align:center}.rest-campfire{font-size:72px;animation:flicker 2s ease-in-out infinite}@keyframes flicker{0%,to{transform:scale(1);opacity:1}25%{transform:scale(1.02);opacity:.9}50%{transform:scale(.98);opacity:1}75%{transform:scale(1.01);opacity:.95}}.rest-party{width:100%;max-width:320px;display:flex;flex-direction:column;gap:8px}.rest-member{display:flex;flex-direction:column;gap:4px;padding:8px 12px;background:var(--bg-card);border-radius:var(--radius)}.rest-actions{margin-top:16px;display:flex;justify-content:center}.gameover-screen,.victory-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:20px;gap:16px;text-align:center}.gameover-icon,.victory-icon{font-size:72px}.gameover-title{font-size:36px;color:var(--accent-red)}.victory-title{font-size:36px;color:var(--accent-gold)}.gameover-subtitle,.victory-subtitle{color:var(--text-secondary);font-size:16px}.gameover-stats,.victory-stats{color:var(--text-secondary);line-height:2}.treasure-screen{display:flex;flex-direction:column;align-items:center;padding:20px 16px;gap:12px;height:100%;overflow-y:auto}.treasure-icon{font-size:64px;animation:pulse 2s ease-in-out infinite}.treasure-title{font-size:24px;color:var(--accent-gold)}.treasure-gold{font-size:16px;color:var(--accent-gold);font-weight:600}.treasure-hint{font-size:14px;color:var(--text-secondary)}.treasure-stats{font-size:13px;color:var(--accent-green)}.treasure-cards{display:flex;flex-direction:column;gap:10px;width:100%}.treasure-card{background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;cursor:pointer;transition:border-color .15s,transform .15s}.treasure-card:active{transform:scale(.98)}.treasure-card.rarity-common{border-color:#556}.treasure-card.rarity-uncommon{border-color:#4c4;box-shadow:0 0 8px #44cc4426}.treasure-card.rarity-rare{border-color:#48f;box-shadow:0 0 8px #48f3}.treasure-card.rarity-legendary{border-color:#fc4;box-shadow:0 0 12px #ffcc444d}.treasure-card-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-panel);border-bottom:2px solid var(--border)}.treasure-card-icon{font-size:24px}.treasure-card-title{display:flex;flex-direction:column}.treasure-card-name{font-size:16px;font-weight:700}.treasure-card-meta{font-size:11px;color:var(--text-dim)}.treasure-card-body{padding:10px 14px}.treasure-card-stats{font-size:13px;color:var(--accent-green);font-weight:600;margin-bottom:4px}.treasure-card-desc{font-size:12px;color:var(--text-secondary);margin-bottom:4px}.treasure-card-special{font-size:11px;color:var(--accent-gold);font-style:italic}.equip-select{display:flex;flex-direction:column;gap:8px;width:100%}.equip-member-card{padding:12px 14px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s,transform .15s}.equip-member-card:active{transform:scale(.98);border-color:var(--accent-gold)}.equip-member-name{font-size:16px;font-weight:700;margin-bottom:4px}.equip-member-current{font-size:13px;margin-bottom:4px}.equip-empty{color:var(--text-dim);font-style:italic}.equip-member-stats{font-size:11px;color:var(--text-dim)}.event-screen{display:flex;flex-direction:column;align-items:center;padding:20px 16px;gap:16px;height:100%;overflow-y:auto}.event-icon{font-size:64px}.event-title{font-size:22px;color:var(--accent-gold)}.event-description{font-size:14px;color:var(--text-secondary);text-align:center;line-height:1.6;max-width:360px}.event-choices{display:flex;flex-direction:column;gap:8px;width:100%}.event-choice{display:flex;flex-direction:column;gap:4px;padding:14px 16px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color .15s,transform .15s,background .15s;text-align:left;width:100%;color:var(--text-primary);font-family:inherit;font-size:inherit}.event-choice:active{transform:scale(.98);border-color:var(--accent-gold);background:var(--bg-hover)}.event-choice-label{font-size:15px;font-weight:700}.event-choice-desc{font-size:12px}.event-outcome{background:var(--bg-card);border:2px solid var(--accent-gold);border-radius:var(--radius-lg);padding:16px 20px;text-align:center;width:100%;box-shadow:0 0 16px #ffcc441a}.event-outcome-text{font-size:15px;color:var(--text-primary);line-height:1.6;margin-bottom:12px}.event-outcome-effects{font-size:13px;color:var(--accent-green);font-weight:600;line-height:1.8}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.hp-bar-fill{transition:width .4s ease-out}.float-num{position:absolute;top:0;transform:translate(-50%);font-weight:800;pointer-events:none;z-index:100;text-shadow:0 1px 3px rgba(0,0,0,.9),0 0 6px rgba(0,0,0,.5);animation:floatUp 1s ease-out forwards}.fn-damage{color:#fff;font-size:20px}.fn-crit{color:var(--accent-gold);font-size:26px;text-shadow:0 0 8px rgba(255,204,68,.6),0 1px 3px rgba(0,0,0,.9)}.fn-heal{color:var(--accent-green);font-size:20px;text-shadow:0 0 8px rgba(68,204,68,.4),0 1px 3px rgba(0,0,0,.9)}.fn-el-fire{color:#f63;text-shadow:0 0 8px rgba(255,102,51,.6),0 1px 3px rgba(0,0,0,.9)}.fn-el-ice{color:#6df;text-shadow:0 0 8px rgba(102,221,255,.6),0 1px 3px rgba(0,0,0,.9)}.fn-el-lightning{color:#fd4;text-shadow:0 0 8px rgba(255,221,68,.6),0 1px 3px rgba(0,0,0,.9)}.fn-el-water{color:#49f;text-shadow:0 0 8px rgba(68,153,255,.6),0 1px 3px rgba(0,0,0,.9)}.fn-el-earth{color:#da5;text-shadow:0 0 8px rgba(221,170,85,.5),0 1px 3px rgba(0,0,0,.9)}.fn-el-wind{color:#5d7;text-shadow:0 0 8px rgba(85,221,119,.5),0 1px 3px rgba(0,0,0,.9)}.fn-el-holy{color:#fea;text-shadow:0 0 10px rgba(255,238,170,.7),0 1px 3px rgba(0,0,0,.9)}.fn-el-dark{color:#c6f;text-shadow:0 0 8px rgba(204,102,255,.6),0 1px 3px rgba(0,0,0,.9)}.crit-flash{position:fixed;inset:0;background:#fff9;pointer-events:none;z-index:300;animation:critFlashAnim .25s ease-out forwards}@keyframes critFlashAnim{0%{opacity:1}40%{opacity:.7}to{opacity:0}}@keyframes floatUp{0%{top:0;opacity:1;transform:translate(-50%) scale(1.2)}30%{opacity:1;transform:translate(-50%) scale(1)}to{top:-50px;opacity:0;transform:translate(-50%) scale(.8)}}.float-text{position:absolute;top:-10px;left:50%;transform:translate(-50%);font-weight:800;font-size:13px;pointer-events:none;z-index:101;white-space:nowrap;animation:floatTextUp 1.2s ease-out forwards}.ft-weak{color:#6bf;text-shadow:0 0 6px rgba(102,187,255,.6),0 1px 2px rgba(0,0,0,.8)}.ft-resist{color:#888;text-shadow:0 1px 2px rgba(0,0,0,.8)}.ft-buff{color:var(--accent-green);text-shadow:0 0 6px rgba(68,204,68,.4),0 1px 2px rgba(0,0,0,.8)}@keyframes floatTextUp{0%{top:-10px;opacity:0;transform:translate(-50%) scale(.5)}20%{opacity:1;transform:translate(-50%) scale(1.1)}40%{transform:translate(-50%) scale(1)}to{top:-55px;opacity:0}}.ability-banner{position:absolute;top:35%;left:0;right:0;text-align:center;font-size:18px;font-weight:700;color:#fff;text-shadow:0 2px 8px rgba(0,0,0,.9),0 0 20px rgba(0,0,0,.5);pointer-events:none;z-index:200;animation:bannerPop 1s ease-out forwards;padding:8px 20px;letter-spacing:1px}@keyframes bannerPop{0%{opacity:0;transform:scale(.6)}15%{opacity:1;transform:scale(1.1)}30%{transform:scale(1)}70%{opacity:1}to{opacity:0;transform:scale(1)}}.anim-blink{animation:enemyBlink .4s steps(1)}@keyframes enemyBlink{0%{opacity:1}10%{opacity:0}30%{opacity:1}45%{opacity:0}65%{opacity:1}}.anim-hit{animation:hitFlash .3s ease-out}@keyframes hitFlash{0%{box-shadow:inset 0 0 #ff323200;filter:brightness(1)}30%{box-shadow:inset 0 0 30px #ff505099;filter:brightness(1.8)}to{box-shadow:inset 0 0 #ff323200;filter:brightness(1)}}.anim-heal{animation:healFlash .4s ease-out}@keyframes healFlash{0%{box-shadow:inset 0 0 #4c40}40%{box-shadow:inset 0 0 25px #44cc4480}to{box-shadow:inset 0 0 #4c40}}.anim-ko{animation:koFade .5s ease-out forwards}@keyframes koFade{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.95);filter:saturate(0)}to{opacity:.2;transform:scale(.9);filter:saturate(0) brightness(.5)}}.anim-enemy-shatter{animation:enemyShatter .6s ease-in forwards}@keyframes enemyShatter{0%{opacity:1;transform:translate(-50%,-50%) scale(1);filter:brightness(1)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.08);filter:brightness(2.5) saturate(0)}30%{opacity:.9;transform:translate(-50%,-50%) scale(1.04);filter:brightness(1.5) saturate(0)}60%{opacity:.5;transform:translate(-50%,-50%) scale(.92);filter:brightness(.8) saturate(0) blur(1px)}to{opacity:0;transform:translate(-50%,-50%) scale(.6);filter:brightness(0) saturate(0) blur(3px)}}.shatter-particle{position:absolute;width:4px;height:4px;pointer-events:none;z-index:85;border-radius:1px;animation:shatterBurst .7s ease-out forwards}@keyframes shatterBurst{0%{opacity:1;transform:translate(var(--sx),var(--sy)) scale(1)}to{opacity:0;transform:translate(calc(var(--sx) + var(--dx)),calc(var(--sy) + var(--dy))) scale(.2) rotate(var(--rot))}}.anim-attack{animation:attackLunge .3s ease-in-out}@keyframes attackLunge{0%{transform:translate(-50%,-50%)}40%{transform:translate(-50%,-45%)}to{transform:translate(-50%,-50%)}}.anim-flinch{animation:flinch .5s ease-out}@keyframes flinch{0%{transform:translate(-50%,-50%) scale(1)}25%{transform:translate(-46%,-47%) scale(.95);filter:brightness(1.6)}50%{transform:translate(-52%,-49%) scale(.97)}to{transform:translate(-50%,-50%) scale(1);filter:brightness(1)}}.combat-screen.anim-shake{animation:screenShake .35s ease-in-out}@keyframes screenShake{0%,to{transform:translate(0)}15%{transform:translate(-5px) translateY(2px)}30%{transform:translate(4px) translateY(-2px)}45%{transform:translate(-4px) translateY(1px)}60%{transform:translate(3px) translateY(-1px)}75%{transform:translate(-2px)}90%{transform:translate(1px)}}.combat-screen{position:relative}.spell-vfx{position:absolute;top:50%;left:50%;pointer-events:none;z-index:80;opacity:0;border-radius:50%;animation-delay:calc(var(--i) * 30ms)}.vfx-fire{width:8px;height:8px;background:#f44;box-shadow:0 0 6px #f62,0 0 12px #f426;animation:vfxFire .5s ease-out forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxFire{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}15%{opacity:1}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*28px),calc(-50% + sin(calc(var(--i) * 60deg))*20px - 18px)) scale(.4)}}.vfx-ice{width:8px;height:8px;background:#6cf;box-shadow:0 0 6px #aef,0 0 12px #6cf6;border-radius:1px;transform:rotate(45deg);animation:vfxIce .5s ease-out forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxIce{0%{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(.3)}15%{opacity:1}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*30px),calc(-50% + sin(calc(var(--i) * 60deg))*22px + 6px)) rotate(45deg) scale(.5)}}.vfx-lightning{width:2px;height:12px;background:#fd4;box-shadow:0 0 6px #fe8,0 0 12px #ffdd4480;border-radius:1px;animation:vfxLightning .4s ease-out forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxLightning{0%{opacity:0;transform:translate(-50%,-50%) rotate(calc(var(--i) * 45deg)) scale(.5)}10%{opacity:1}50%{opacity:1}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 72deg))*24px),calc(-50% + sin(calc(var(--i) * 72deg))*24px)) rotate(calc(var(--i) * 90deg)) scale(.3)}}.vfx-water{width:6px;height:6px;background:#48f;box-shadow:0 0 6px #6af,0 0 10px #48f6;animation:vfxWater .5s ease-in forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxWater{0%{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*16px),calc(-50% - 20px)) scale(.5)}20%{opacity:1}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*10px),calc(-50% + 24px)) scale(.3)}}.vfx-earth{width:7px;height:7px;background:#c84;box-shadow:0 0 5px #a62,0 0 10px #cc88444d;border-radius:2px;animation:vfxEarth .6s ease-out forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxEarth{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}15%{opacity:1}40%{transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*18px),calc(-50% - 22px)) scale(1)}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*22px),calc(-50% + 16px)) scale(.5)}}.vfx-wind{width:10px;height:5px;background:#4c6;box-shadow:0 0 6px #8eb,0 0 10px #44cc664d;border-radius:50%;animation:vfxWind .55s ease-out forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxWind{0%{opacity:0;transform:translate(-50%,-50%) rotate(0) scale(.3)}15%{opacity:1}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg + 180deg))*30px),calc(-50% + sin(calc(var(--i) * 60deg + 180deg))*22px)) rotate(calc(var(--i) * 120deg)) scale(.4)}}.vfx-holy{width:6px;height:6px;background:#fd8;box-shadow:0 0 8px #fff8cc,0 0 16px #fff8cc99;animation:vfxHoly .5s ease-out forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxHoly{0%{opacity:0;transform:translate(-50%,-50%) scale(.5)}10%{opacity:1}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*32px),calc(-50% + sin(calc(var(--i) * 60deg))*32px)) scale(.2)}}.vfx-dark{width:8px;height:8px;background:#a4d;box-shadow:0 0 6px #82a,0 0 12px #a4d6;animation:vfxDark .5s ease-in forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxDark{0%{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*32px),calc(-50% + sin(calc(var(--i) * 60deg))*32px)) scale(.8)}20%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(.1)}}.vfx-heal{width:5px;height:5px;background:#4c4;box-shadow:0 0 6px #8e8,0 0 12px #44cc4480;animation:vfxHeal .6s ease-out forwards;animation-delay:calc(var(--i) * 30ms)}@keyframes vfxHeal{0%{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*10px),-50%) scale(.4)}20%{opacity:1}to{opacity:0;transform:translate(calc(-50% + cos(calc(var(--i) * 60deg))*14px),calc(-50% - 30px)) scale(.3)}}.spell-tint{position:absolute;inset:0;pointer-events:none;z-index:50;animation:tintFlash .3s ease-out forwards}.tint-fire{background:#ff44441f}.tint-ice{background:#66ccff1f}.tint-lightning{background:#ffdd441f}.tint-water{background:#4488ff1f}.tint-earth{background:#cc88441a}.tint-wind{background:#44cc661a}.tint-holy{background:#fff8cc26}.tint-dark{background:#aa44dd1f}.tint-heal{background:#44cc441a}@keyframes tintFlash{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.screen{animation:fadeIn .2s ease-out}.map-menu-btn{padding:6px 14px;font-size:13px;font-weight:700;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;min-height:36px;transition:background .15s,border-color .15s}.map-menu-btn:active{background:var(--bg-hover);border-color:var(--accent-gold)}.party-menu-screen{display:flex;flex-direction:column;height:100%;background:var(--bg-dark);position:relative}.party-menu-screen:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%,rgba(40,40,100,.15) 0%,transparent 70%);pointer-events:none;z-index:0}.party-menu-screen>*{position:relative;z-index:1}.pm-header{display:flex;align-items:center;gap:12px;padding:10px 16px;background:linear-gradient(180deg,#141432f2,#0e0e1ef2);border-bottom:1px solid var(--border);box-shadow:0 2px 8px #0000004d}.pm-back-btn{display:flex;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:600;background:#ffffff0d;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;min-height:36px;transition:all .15s}.pm-back-icon{width:14px;height:14px}.pm-back-btn:active{background:var(--bg-hover);color:var(--text-primary);border-color:var(--accent-blue)}.pm-title{font-size:17px;font-weight:700;color:var(--accent-gold);flex:1;text-shadow:0 1px 4px rgba(255,204,68,.2)}.pm-gold{display:flex;align-items:center;gap:4px;font-size:14px;font-weight:700;color:var(--accent-gold)}.pm-gold-icon{width:18px;height:18px}.pm-char-selector{display:flex;gap:6px;padding:8px 12px;background:#141428e6;border-bottom:1px solid var(--border);overflow-x:auto}.pm-char-card{display:flex;align-items:center;gap:8px;flex:1;min-width:0;padding:8px 10px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;color:var(--text-primary);text-align:left}.pm-char-card:active{background:var(--bg-hover)}.pm-char-card.selected{border-color:var(--accent-gold);background:#ffcc4414;box-shadow:0 0 12px #ffcc4426}.pm-char-card.ko{opacity:.5}.pm-char-sprite{width:48px;min-width:48px;height:48px;display:flex;align-items:center;justify-content:center;overflow:hidden}.pm-char-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.pm-char-name{font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pm-char-level{font-size:10px;color:var(--accent-blue);font-weight:600}.pm-char-bars{display:flex;flex-direction:column;gap:2px}.pm-bar{height:12px;background:#1a1a2a;border-radius:6px;overflow:hidden;position:relative;border:1px solid #2a2a4a}.pm-bar-fill{height:100%;border-radius:6px;transition:width .3s ease}.pm-bar-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:8px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.9)}.pm-mp-bar .pm-bar-fill,.pm-mp-fill{background:linear-gradient(90deg,#2060a0,#4090d0)}.pm-tabs{display:flex;gap:3px;padding:6px 12px;background:#141428e6;border-bottom:1px solid var(--border)}.pm-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;background:#ffffff08;border:2px solid transparent;border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;font-size:11px;font-weight:600;transition:all .2s;min-height:48px}.pm-tab:active{background:var(--bg-hover)}.pm-tab.active{border-color:var(--accent-gold);color:var(--accent-gold);background:#ffcc4414;box-shadow:0 0 8px #ffcc441a}.pm-tab-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center}.pm-tab-icon svg{width:20px;height:20px}.pm-tab-label{font-size:10px}.pm-message{padding:8px 16px;background:linear-gradient(90deg,#ffcc44e6,#ffb428e6);color:var(--bg-dark);text-align:center;font-weight:600;font-size:13px;animation:pm-slideDown .25s ease-out}@keyframes pm-slideDown{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.pm-content{flex:1;overflow-y:auto;padding:10px 12px;padding-bottom:calc(20px + var(--safe-bottom));animation:pm-fadeIn .2s ease-out}@keyframes pm-fadeIn{0%{opacity:0}to{opacity:1}}.pm-section{margin-bottom:14px}.pm-section-title{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:8px;padding-bottom:5px;border-bottom:1px solid rgba(255,204,68,.15);text-shadow:0 1px 3px rgba(255,204,68,.15)}.pm-section-icon{width:14px;height:14px;flex-shrink:0;opacity:.8}.pm-vitals{margin-bottom:14px}.pm-vital-bar{display:flex;align-items:center;gap:8px;margin-bottom:6px}.pm-vital-label{font-size:11px;font-weight:700;color:var(--text-secondary);min-width:24px;text-align:right}.pm-vital-track{flex:1;height:16px;background:#1a1a2a;border-radius:8px;overflow:hidden;border:1px solid #2a2a4a;position:relative}.pm-vital-fill{height:100%;border-radius:8px;transition:width .4s ease}.pm-vital-text{font-size:11px;font-weight:700;color:var(--text-primary);font-family:monospace;min-width:80px;text-align:right}.pm-stats-bars{display:flex;flex-direction:column;gap:5px}.pm-stat-bar-row{display:flex;align-items:center;gap:8px}.pm-stat-bar-label{font-size:10px;font-weight:700;color:var(--text-secondary);min-width:36px;text-align:right;letter-spacing:.5px}.pm-stat-bar-track{flex:1;height:10px;background:#ffffff0a;border-radius:5px;overflow:hidden;border:1px solid rgba(255,255,255,.06)}.pm-stat-bar-fill{height:100%;border-radius:5px;transition:width .4s ease}.pm-stat-bar-value{font-size:13px;font-weight:700;color:var(--text-primary);font-family:monospace;min-width:48px;text-align:right}.pm-stat-bonus{font-size:10px;color:var(--accent-green);font-weight:600;margin-left:2px}.pm-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.pm-stat{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.pm-stat-label{font-size:10px;font-weight:700;color:var(--text-secondary)}.pm-stat-value{font-size:14px;font-weight:700;color:var(--text-primary);font-family:monospace}.pm-xp-row{display:flex;align-items:center;gap:8px}.pm-xp-label{font-size:10px;font-weight:700;color:var(--accent-purple);min-width:28px}.pm-xp-bar{flex:1;height:8px;background:#1a1a2a;border-radius:4px;overflow:hidden;border:1px solid var(--border)}.pm-xp-fill{height:100%;background:linear-gradient(90deg,var(--accent-blue),var(--accent-purple));border-radius:4px;transition:width .3s ease}.pm-xp-text{font-size:10px;color:var(--text-dim);font-family:monospace;min-width:60px;text-align:right}.pm-status-list{display:flex;flex-wrap:wrap;gap:6px}.pm-status-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--bg-card);border:1px solid;border-radius:12px;font-size:11px}.pm-status-dur{font-size:9px;color:var(--text-dim)}.pm-passive{padding:8px 12px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.pm-passive-name{display:block;font-size:13px;font-weight:700;color:var(--accent-gold);margin-bottom:2px}.pm-passive-desc{display:block;font-size:11px;color:var(--text-secondary)}.pm-equip-row{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);margin-bottom:4px}.pm-equip-row-btn{width:100%;cursor:pointer;color:var(--text-primary);transition:background .15s,border-color .15s;text-align:left}.pm-equip-row-btn:active{background:var(--bg-hover);border-color:var(--accent-blue)}.pm-equip-slot{font-size:10px;font-weight:700;color:var(--text-secondary);min-width:56px;text-transform:uppercase}.pm-equip-name{font-size:12px;font-weight:600;flex:1}.pm-equip-bonus{font-size:10px;color:var(--accent-green)}.pm-equip-empty{font-size:12px;color:var(--text-dim);font-style:italic}.pm-ability-list{display:flex;flex-direction:column;gap:4px}.pm-ability-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius)}.pm-ability-icon{font-size:18px;width:24px;text-align:center}.pm-ability-info{flex:1;min-width:0}.pm-ability-name{display:block;font-size:13px;font-weight:600}.pm-ability-desc{display:block;font-size:10px;color:var(--text-secondary)}.pm-ability-meta{text-align:right;min-width:50px}.pm-ability-cost{display:block;font-size:11px;color:var(--accent-blue);font-weight:600}.pm-ability-details{display:block;font-size:9px;color:var(--text-dim)}.pm-empty{padding:12px;text-align:center;color:var(--text-dim);font-size:13px}.pm-empty-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:8px}.pm-empty-icon{font-size:48px;opacity:.4}.pm-empty-text{font-size:14px;color:var(--text-dim)}.pm-items-list{display:flex;flex-direction:column;gap:6px}.pm-item-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s;text-align:left;min-height:56px}.pm-item-btn:active{background:var(--bg-hover);border-color:var(--accent-gold)}.pm-item-icon{font-size:24px;width:32px;text-align:center}.pm-item-info{flex:1;min-width:0}.pm-item-name{display:block;font-size:14px;font-weight:600}.pm-item-desc{display:block;font-size:11px;color:var(--text-secondary)}.pm-item-qty{font-size:14px;font-weight:700;color:var(--text-dim);background:var(--bg-dark);padding:2px 8px;border-radius:8px}.pm-target-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.pm-target-back{padding:6px 12px;font-size:13px;font-weight:600;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer;min-height:36px}.pm-target-back:active{background:var(--bg-hover)}.pm-target-title{font-size:14px;font-weight:600;color:var(--accent-gold)}.pm-target-list{display:flex;flex-direction:column;gap:8px}.pm-target-btn{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s;text-align:left;min-height:64px}.pm-target-btn:active:not(.disabled){background:var(--bg-hover);border-color:var(--accent-gold)}.pm-target-btn.disabled{opacity:.4;cursor:not-allowed}.pm-target-sprite{width:56px;min-width:56px;height:56px;display:flex;align-items:center;justify-content:center;image-rendering:pixelated;overflow:hidden}.pm-target-info{flex:1;display:flex;flex-direction:column;gap:4px}.pm-target-name{font-size:14px;font-weight:600}.pm-ko-label{font-size:11px;font-weight:700;color:var(--accent-red)}.pm-full-label{font-size:11px;color:var(--text-dim)}.pm-equip-content,.pm-equip-slots{display:flex;flex-direction:column;gap:8px}.pm-equip-slot-btn{width:100%;padding:12px 14px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s;text-align:left}.pm-equip-slot-btn:active{background:var(--bg-hover);border-color:var(--accent-blue)}.pm-equip-slot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.pm-equip-slot-label{font-size:10px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:1px}.pm-unequip-btn{padding:3px 8px;font-size:10px;font-weight:600;background:#ff444426;border:1px solid var(--accent-red);border-radius:4px;color:var(--accent-red);cursor:pointer}.pm-unequip-btn:active{background:#ff44444d}.pm-equip-slot-item{display:flex;align-items:center;gap:8px;margin-bottom:2px}.pm-equip-item-icon{font-size:20px}.equip-icon{width:1.2em;height:1.2em;vertical-align:middle;object-fit:contain}.pm-equip-item-name{font-size:14px;font-weight:600}.pm-equip-empty-slot{font-size:13px;color:var(--text-dim);font-style:italic}.pm-equip-bonuses{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.pm-equip-stat-bonus{font-size:11px;color:var(--accent-green);font-weight:600}.pm-equip-item-desc{font-size:10px;color:var(--text-secondary);margin-top:2px}.pm-equip-special{font-size:10px;color:#fc4;margin-top:2px;font-style:italic}.pm-equip-hint{text-align:center;font-size:12px;color:var(--text-dim);padding:8px}.pm-equip-list{display:flex;flex-direction:column;gap:6px}.pm-equip-option{width:100%;padding:10px 14px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s;text-align:left}.pm-equip-option:active{background:var(--bg-hover);border-color:var(--accent-gold)}.pm-equip-option-header{display:flex;align-items:center;gap:8px;margin-bottom:3px}.pm-equip-option-icon{font-size:20px}.pm-equip-option-name{font-size:14px;font-weight:600}.pm-equip-option-desc{font-size:11px;color:var(--text-secondary);margin-bottom:4px}.pm-equip-comparison{display:flex;flex-wrap:wrap;gap:8px;font-size:12px;font-weight:600}.pm-stat-up{color:var(--accent-green)}.pm-stat-down{color:var(--accent-red)}.pm-stat-neutral{color:var(--text-dim)}.pm-magic-content{display:flex;flex-direction:column;gap:12px}.pm-magic-caster{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.pm-magic-caster-header{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--bg-panel);border-bottom:1px solid var(--border)}.pm-magic-caster-name{font-size:14px;font-weight:700}.pm-magic-caster-mp{font-size:12px;color:#4090d0;font-weight:600}.pm-spell-btn{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid var(--border);color:var(--text-primary);cursor:pointer;transition:background .12s;text-align:left;min-height:48px}.pm-spell-btn:last-child{border-bottom:none}.pm-spell-btn:active:not(.disabled){background:var(--bg-hover)}.pm-spell-btn.disabled{opacity:.4;cursor:not-allowed}.pm-spell-icon{font-size:18px;width:24px;text-align:center}.pm-spell-info{flex:1;min-width:0}.pm-spell-name{display:block;font-size:13px;font-weight:600}.pm-spell-desc{display:block;font-size:10px;color:var(--text-secondary)}.pm-spell-cost{font-size:11px;color:var(--accent-blue);font-weight:600;white-space:nowrap}.shop-screen-container{display:flex;flex-direction:column;height:100%;background:var(--bg-dark)}.shop-header{padding:14px 16px 10px;background:var(--bg-panel);border-bottom:2px solid var(--border)}.shop-header-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.shop-title{font-size:20px;font-weight:800;color:var(--text-primary)}.shop-gold{font-size:16px;font-weight:700;color:var(--accent-gold)}.shop-subtitle{font-size:12px;color:var(--text-secondary)}.shop-message{padding:8px 16px;background:var(--accent-green);color:var(--bg-dark);text-align:center;font-weight:600;font-size:13px;animation:fadeIn .15s ease-out}.shop-items-list{flex:1;overflow-y:auto;padding:10px 12px 80px}.shop-section{margin-bottom:14px}.shop-section-title{font-size:11px;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid var(--border)}.shop-item-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;margin-bottom:6px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s;text-align:left;min-height:56px}.shop-item-row:active:not(.disabled):not(.sold){background:var(--bg-hover);border-color:var(--accent-gold)}.shop-item-row.disabled{opacity:.5;cursor:not-allowed}.shop-item-row.sold{opacity:.35;cursor:default}.shop-item-icon{font-size:24px;width:32px;text-align:center;flex-shrink:0}.shop-item-info{flex:1;min-width:0}.shop-item-name{display:block;font-size:14px;font-weight:600}.shop-item-desc{display:block;font-size:11px;color:var(--text-secondary);margin-top:2px}.shop-item-bonuses{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.shop-stat-bonus{font-size:11px;color:var(--accent-green);font-weight:600}.shop-item-restrict{font-size:10px;color:var(--accent-purple);margin-top:2px}.shop-item-price-area{flex-shrink:0;text-align:right}.shop-item-price{font-size:14px;font-weight:700;color:var(--accent-gold)}.shop-item-price.too-expensive{color:var(--accent-red)}.shop-sold-label{font-size:12px;font-weight:700;color:var(--text-dim);text-transform:uppercase}.shop-empty{padding:24px;text-align:center;color:var(--text-dim);font-size:14px}.shop-footer{padding:12px 16px;padding-bottom:calc(12px + var(--safe-bottom));background:linear-gradient(transparent,var(--bg-dark) 30%);display:flex;justify-content:center;position:fixed;bottom:0;left:0;right:0}.event-screen-container{display:flex;flex-direction:column;align-items:center;height:100%;padding:20px 16px;gap:16px;background:var(--bg-dark)}.event-header{text-align:center}.event-type-label{font-size:14px;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:2px}.event-body{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;width:100%;max-width:360px}.event-icon{font-size:56px;line-height:1}.event-title{font-size:22px;font-weight:800;color:var(--text-primary)}.event-narrative{font-size:14px;color:var(--text-secondary);line-height:1.6;max-width:320px}.event-choices{display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px;margin-top:8px}.event-choice-btn{display:flex;flex-direction:column;gap:4px;width:100%;padding:14px 16px;background:var(--bg-card);border:2px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);cursor:pointer;transition:background .15s,border-color .15s,transform .1s;text-align:left;min-height:56px}.event-choice-btn:active:not(.disabled){background:var(--bg-hover);border-color:var(--accent-gold);transform:scale(.98)}.event-choice-btn.disabled{opacity:.4;cursor:not-allowed}.event-choice-label{font-size:15px;font-weight:700;color:var(--text-primary)}.event-choice-desc{font-size:12px;color:var(--text-secondary)}.event-outcome-text{font-size:15px;color:var(--text-primary);line-height:1.6;max-width:320px;font-style:italic}.event-rewards{width:100%;max-width:360px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:12px 16px}.event-rewards-title{font-size:12px;font-weight:700;color:var(--accent-gold);text-transform:uppercase;letter-spacing:1px;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}.event-reward-item{padding:4px 0;font-size:14px;font-weight:600;color:var(--accent-green)}.event-reward-item.negative{color:var(--accent-red)}.event-footer{margin-top:auto;padding:16px 0;padding-bottom:calc(16px + var(--safe-bottom));width:100%;max-width:360px;display:flex;justify-content:center}.lib-content{display:flex;flex-direction:column;gap:8px}.lib-subnav{display:flex;gap:4px;padding:0 4px 8px;border-bottom:1px solid rgba(255,255,255,.1)}.lib-subnav-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border:none;border-radius:6px;background:#ffffff0d;color:#aaa;font-size:11px;cursor:pointer;transition:background .15s,color .15s}.lib-subnav-btn.active{background:#6496ff33;color:#fff;box-shadow:inset 0 -2px #48f}.lib-section-content{display:flex;flex-direction:column;gap:8px}.lib-filters{display:flex;flex-wrap:wrap;gap:4px;padding:2px 0;align-items:center}.lib-filter-label{font-size:11px;color:#888;margin-right:2px;white-space:nowrap}.lib-chip{padding:3px 8px;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:transparent;color:#aaa;font-size:11px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.lib-chip:hover{background:#ffffff14}.lib-chip.active{background:#6496ff40;color:#fff;border-color:#48f}.lib-list{display:flex;flex-direction:column;gap:6px}.lib-card{background:#ffffff0d;border-radius:8px;padding:8px 10px;border:1px solid rgba(255,255,255,.08);position:relative}.lib-card:after{content:"";position:absolute;inset:-10px;border:10px solid transparent;border-image-source:var(--card-frame, url(/UI/common_frame.png));border-image-slice:100;border-image-repeat:stretch;pointer-events:none;z-index:1}.lib-card-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}.lib-card-icon{font-size:18px;flex-shrink:0;line-height:0;display:flex;align-items:center}.lib-card-name{font-weight:600;font-size:13px;color:#eee;flex:1}.lib-badge{padding:1px 6px;border-radius:8px;font-size:10px;color:#fff;font-weight:500;white-space:nowrap;flex-shrink:0}.lib-badge-outline{background:transparent!important;border:1px solid rgba(255,255,255,.2);color:#bbb}.lib-card-meta{display:flex;align-items:center;gap:6px;margin-bottom:4px}.lib-card-classes{font-size:11px;color:#999}.lib-card-cost{font-size:11px;color:#8af;font-weight:500}.lib-card-stats{display:flex;gap:8px;font-size:11px;color:#bbb;margin-bottom:4px;flex-wrap:wrap}.lib-card-elem-row{display:flex;gap:12px;margin-bottom:2px;font-size:11px;color:#ccc;min-height:0}.lib-elem-group{display:flex;align-items:center;gap:2px}.lib-elem-label{color:#999;margin-right:2px}.lib-card-rewards{display:flex;gap:12px;font-size:11px;color:#aaa;margin-top:4px}.lib-card-bonuses{font-size:12px;color:#8f8;margin-bottom:2px}.lib-card-desc{font-size:11px;color:#999;line-height:1.3}.lib-card-special{font-size:11px;color:#fc4;font-style:italic;margin-top:2px;line-height:1.3}.lib-card-effect{font-size:11px;color:#8af;margin-top:2px}.lib-card-details{font-size:11px;color:#bbb;margin-top:2px}.lib-empty{text-align:center;color:#888;padding:24px;font-size:13px}.tome-screen{display:flex;flex-direction:column;height:100%;background:linear-gradient(180deg,#080818,#0c0c24 40%,#101030);color:var(--text-primary);overflow:hidden}.tome-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 8px;flex-shrink:0}.tome-back-btn{background:none;border:1px solid rgba(255,255,255,.12);color:#aaa;padding:6px 14px;border-radius:8px;font-size:13px;cursor:pointer;transition:background .15s,color .15s;min-width:72px}.tome-back-btn:hover{background:#ffffff14;color:#fff}.tome-title-area{display:flex;align-items:center;gap:8px}.tome-title-icon{font-size:24px;filter:drop-shadow(0 0 8px rgba(255,204,68,.4))}.tome-title{font-size:18px;font-weight:700;color:#e8e0d0;margin:0;letter-spacing:.5px;text-shadow:0 0 12px rgba(255,204,68,.2)}.tome-title-spacer{min-width:72px}.tome-tabs{display:flex;gap:2px;padding:0 8px 8px;overflow-x:auto;scrollbar-width:none;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.06)}.tome-tabs::-webkit-scrollbar{display:none}.tome-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 10px;border:none;border-radius:8px 8px 0 0;background:transparent;color:#777;font-size:10px;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;min-width:52px;position:relative}.tome-tab:hover{background:#ffffff0d;color:#bbb}.tome-tab.active{background:#6496ff1f;color:#fff}.tome-tab.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:2px;background:#48f;border-radius:2px 2px 0 0}.tome-tab-icon{font-size:16px}.tome-tab-label{font-weight:500}.tome-content{flex:1;overflow-y:auto;padding:12px 12px 24px;display:flex;flex-direction:column;gap:8px}.tome-count{font-size:11px;color:#666;text-align:right;padding:0 4px}.tome-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;padding:4px}.tome-card{position:relative;padding:16px;display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}.tome-card:hover{transform:translateY(-2px)}.tome-card:active{transform:scale(.97)}.tome-card-inner{position:relative;z-index:1;display:flex;flex-direction:column;gap:4px;flex:1;min-height:100px;padding:10px;background:linear-gradient(160deg,#0e0e28,#181840);border-radius:4px}.tome-card-inner:after{content:"";position:absolute;inset:-14px;border:14px solid transparent;border-image-source:var(--card-frame, url(/UI/frame_cleric.png));border-image-slice:100;border-image-repeat:stretch;pointer-events:none;z-index:2}.tc-name-top{text-align:center;font-weight:700;font-size:13px;color:#eee;margin-bottom:4px}.tc-icon-center{text-align:center;font-size:28px;margin-bottom:6px;line-height:1;display:flex;align-items:center;justify-content:center}.tc-art{text-align:center;margin-bottom:6px}.tc-art img{image-rendering:auto;max-height:96px;margin:0 auto}.tc-art-lg{margin:4px 0 8px}.tc-art-lg img{max-height:120px;margin:0 auto}.tome-card-lg .tome-card-inner{min-height:140px}.tc-header{display:flex;align-items:center;gap:6px;margin-bottom:2px}.tc-icon{font-size:18px;flex-shrink:0}.tc-name{font-weight:600;font-size:13px;color:#eee;flex:1}.tc-role{font-size:11px;font-weight:500}.tc-desc{font-size:11px;color:#999;line-height:1.3}.feat-tree-branch{margin-bottom:20px}.feat-tree-branch-header{font-size:14px;font-weight:700;color:var(--accent-gold);padding:6px 4px 4px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px}.feat-tree-wrap{position:relative;overflow:visible;padding:8px 4px 12px}.feat-tree-grid{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));grid-template-rows:repeat(var(--tree-rows, 4),auto);gap:10px 24px;min-width:600px;position:relative;z-index:1}.feat-tree-tier-header{grid-column:var(--node-col);grid-row:var(--node-row);font-size:11px;font-weight:700;text-align:center;padding:2px 0}.feat-tree-node{grid-column:var(--node-col);grid-row:var(--node-row);display:flex;flex-direction:column;align-items:center;padding:6px 4px;background:#101020e6;border:2px solid #444;border-radius:6px;cursor:pointer;transition:transform .15s ease,border-color .15s ease;position:relative;min-height:60px;justify-content:center}.feat-tree-node:after{content:"";position:absolute;inset:-8px;border:8px solid transparent;border-image-source:var(--card-frame, url(/UI/common_frame.png));border-image-slice:100;border-image-repeat:stretch;pointer-events:none;z-index:1}.feat-tree-node:hover{transform:translateY(-2px);border-color:var(--accent-gold);z-index:2}.feat-tree-icon{font-size:22px;line-height:1}.feat-tree-name{font-size:10px;font-weight:600;color:#ddd;text-align:center;margin-top:2px;line-height:1.2}.feat-tree-tier{font-size:9px;font-weight:700;margin-top:1px}.feat-tree-lines{position:absolute;top:0;left:0;pointer-events:none;z-index:0}.feat-tree-line{fill:none;stroke:#ffffff26;stroke-width:2}.feat-tree-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:6px;width:220px;background:#0a0a1ef2;border:1px solid rgba(255,255,255,.2);border-radius:6px;padding:8px 10px;z-index:10;text-align:left}.ftt-name{font-size:13px;font-weight:700;color:var(--accent-gold)}.ftt-tier{font-size:10px;font-weight:600;margin-bottom:4px}.ftt-prereq{font-size:10px;color:#888;margin-bottom:3px}.ftt-desc{font-size:11px;color:#bbb;line-height:1.3}.ftt-excl{font-size:10px;color:#c66;margin-top:3px}.tc-passive{font-size:11px;color:#aaa}.tc-passive-label{font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.5px}.tc-footer{display:flex;gap:12px;padding-top:4px;border-top:1px solid rgba(255,255,255,.06);font-size:10px;color:#666}.tc-meta{display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin-bottom:2px}.tc-badge{padding:1px 6px;border-radius:8px;font-size:10px;color:#fff;font-weight:500;white-space:nowrap}.tc-badge-outline{background:transparent!important;border:1px solid rgba(255,255,255,.2);color:#bbb}.tc-cost{font-size:11px;color:#8af;font-weight:500}.tc-stats{display:flex;gap:6px;font-size:10px;color:#bbb;flex-wrap:wrap}.tc-tags{display:flex;gap:4px;flex-wrap:wrap}.tc-tag{font-size:9px;font-weight:600;padding:1px 5px;border:1px solid currentColor;border-radius:6px;opacity:.85}.tc-details{font-size:10px;color:#bbb}.tc-level{font-size:11px;color:#888;font-weight:500}.tc-classes{font-size:10px;color:#999}.tc-bonuses{font-size:11px;color:#8f8}.tc-special{font-size:10px;color:#fc4;font-style:italic;line-height:1.3}.tc-downside{font-size:10px;color:#f64;font-style:italic}.tc-effect{font-size:11px;color:#8af}.tc-prereq{font-size:10px;color:#888}.tc-elem-row{display:flex;gap:8px;font-size:10px;flex-wrap:wrap}.tc-elem-weak{color:#f64}.tc-elem-resist{color:#48f}.tc-elem-absorb{color:#4c4}.tc-rewards{display:flex;gap:10px;font-size:10px;color:#aaa}.tome-stat-row{display:flex;align-items:center;gap:6px}.tome-stat-label{font-size:10px;color:#888;width:32px;text-align:right;font-weight:500}.tome-stat-bar-bg{flex:1;height:4px;background:#ffffff0f;border-radius:2px;overflow:hidden}.tome-stat-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}.tome-stat-value{font-size:11px;color:#bbb;width:28px;text-align:left;font-weight:500}.tome-section-back{background:none;border:none;color:#48f;font-size:13px;cursor:pointer;padding:4px 0;margin-bottom:8px;text-align:left}.tome-section-back:hover{color:#6af}.tome-detail-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.tome-detail-icon{font-size:32px;width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:14px;border:2px solid;flex-shrink:0}.tome-detail-name{font-size:20px;font-weight:700;color:#eee;margin:0}.tome-detail-role{font-size:12px;font-weight:600}.tome-detail-desc{font-size:13px;color:#aaa;line-height:1.4;margin-bottom:12px}.tome-detail-passive{background:#ffcc4414;border:1px solid rgba(255,204,68,.15);border-radius:8px;padding:10px;margin-bottom:14px}.tome-detail-passive-title{font-size:13px;font-weight:600;color:#fc4;margin-bottom:4px}.tome-detail-passive-desc{font-size:12px;color:#ccc;line-height:1.35}.tome-detail-stats,.tome-detail-section{margin-bottom:16px}.tome-detail-section-title{font-size:14px;font-weight:600;color:#ddd;margin:0 0 8px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.08)}.tome-move-card{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:6px}.tome-move-icon{font-size:18px;flex-shrink:0}.tome-move-name{font-weight:600;color:#eee;min-width:100px}.tome-move-type{font-size:12px;min-width:80px}.tome-move-details{font-size:12px;display:flex;gap:8px;flex-wrap:wrap}.debug-section{margin-top:12px;border:2px solid #ff8800;border-radius:var(--radius-lg);overflow:hidden}.debug-section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:#ff88001f;cursor:pointer;border:none;width:100%;color:#f80;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.debug-section-header:active{background:#f803}.debug-section-toggle{font-size:10px;color:#f80}.debug-section-body{padding:8px;background:#ff88000a;display:flex;flex-direction:column;gap:4px;max-height:300px;overflow-y:auto}.debug-feat-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.debug-feat-info{flex:1;min-width:0}.debug-feat-name{font-size:12px;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:4px}.debug-feat-desc{font-size:10px;color:var(--text-secondary);margin-top:1px}.debug-grant-btn{padding:4px 10px;font-size:11px;font-weight:700;background:#f803;border:1px solid #ff8800;border-radius:4px;color:#f80;cursor:pointer;white-space:nowrap;min-height:28px}.debug-grant-btn:active{background:#f806}.debug-learned-badge{padding:4px 8px;font-size:10px;font-weight:700;color:var(--accent-green);border:1px solid var(--accent-green);border-radius:4px;white-space:nowrap}.debug-slot-filters{display:flex;flex-wrap:wrap;gap:4px;padding:4px 0}.debug-slot-chip{padding:3px 8px;border:1px solid rgba(255,136,0,.3);border-radius:12px;background:transparent;color:#c80;font-size:11px;cursor:pointer}.debug-slot-chip.active{background:#ff880040;color:#f80;border-color:#f80}.debug-equip-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border)}.debug-equip-info{flex:1;min-width:0}.debug-equip-name{font-size:12px;font-weight:600;color:var(--text-primary)}.debug-equip-meta{font-size:10px;color:var(--text-secondary)}.debug-equip-special{font-size:10px;color:var(--accent-gold);font-style:italic}.debug-win-btn{position:absolute;top:8px;right:8px;z-index:300;padding:6px 12px;font-size:11px;font-weight:700;background:#f803;border:2px solid #ff8800;border-radius:var(--radius);color:#f80;cursor:pointer}.debug-win-btn:active{background:#ff880080}.debug-terrain-label{position:absolute;top:4px;left:8px;z-index:300;font-size:12px;font-family:monospace;color:#f80;background:#0009;padding:2px 8px;border-radius:4px}.debug-free-move-btn{padding:4px 10px;font-size:11px;font-weight:700;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-secondary);cursor:pointer}.debug-free-move-btn.active{background:#f803;border-color:#f80;color:#f80}.debug-terrain-swatches{display:flex;flex-wrap:wrap;gap:8px;padding:8px;background:var(--bg-secondary);border-top:1px solid var(--border)}.debug-swatch-item{display:flex;align-items:center;gap:4px}.debug-swatch-item canvas{width:32px;height:32px;border:1px solid var(--border)}.debug-swatch-item span{font-size:11px;color:var(--text-secondary)}.boss-relic-screen{display:flex;flex-direction:column;align-items:center;padding:1.5rem 1rem;min-height:100vh;gap:1.5rem}.boss-relic-header{text-align:center}.boss-relic-title{font-size:1.5rem;color:var(--accent-gold, #ffcc44);margin-bottom:.25rem}.boss-relic-subtitle{font-size:.85rem;color:var(--text-secondary)}.boss-relic-cards{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:340px}.boss-relic-card{background:var(--bg-card);border:2px solid #ffcc44;border-radius:12px;padding:1rem;text-align:center;cursor:pointer;transition:transform .15s,border-color .15s}.boss-relic-card:active{transform:scale(.97);border-color:#fff}.boss-relic-icon{font-size:2rem;margin-bottom:.25rem}.boss-relic-name{font-size:1.1rem;font-weight:700;color:#fc4;margin-bottom:.25rem}.boss-relic-stats{font-size:.8rem;color:var(--accent-blue);margin-bottom:.25rem}.boss-relic-effect{font-size:.85rem;color:var(--accent-green);margin-bottom:.25rem}.boss-relic-downside{font-size:.8rem;color:var(--accent-red);font-style:italic}.boss-relic-skip{padding:.75rem 2rem;font-size:1rem;background:transparent;border:1px solid var(--text-dim);border-radius:8px;color:var(--text-secondary);cursor:pointer;margin-top:.5rem}.boss-relic-skip:active{background:var(--bg-hover)}.tt-backdrop{position:fixed;inset:0;z-index:9998;background:#0006}.tt-tooltip{position:fixed;z-index:9999;max-width:280px;background:var(--bg-panel, #141428);border:1px solid var(--border, #333355);border-radius:10px;padding:.75rem;box-shadow:0 4px 20px #0009;color:var(--text-primary, #e8e8f0);font-size:.8rem;line-height:1.4}.tt-header{font-size:.95rem;font-weight:700;margin-bottom:.25rem}.tt-tags{display:flex;gap:.35rem;margin-bottom:.35rem;flex-wrap:wrap}.tt-tag{font-size:.65rem;padding:1px 6px;border-radius:4px;background:#48f3;color:var(--accent-blue, #4488ff);font-weight:600}.tt-stats{font-size:.75rem;color:var(--text-secondary, #8888aa);margin-bottom:.25rem}.tt-desc{font-size:.8rem;color:var(--text-primary, #e8e8f0);margin-bottom:.25rem}.tt-extra{font-size:.75rem;color:var(--accent-gold, #ffcc44)}.tt-weak{font-size:.75rem;color:var(--accent-red, #ff4444);margin-bottom:.15rem}.tt-resist{font-size:.75rem;color:var(--accent-blue, #4488ff);margin-bottom:.15rem}.tt-downside{font-size:.75rem;color:var(--accent-red, #ff4444);font-style:italic}.tt-rarity{font-size:.65rem;padding:1px 5px;border-radius:3px;font-weight:600;text-transform:capitalize}.tt-rarity-common{background:#8883;color:#aaa}.tt-rarity-uncommon{background:#4c43;color:#4c4}.tt-rarity-rare{background:#48f3;color:#48f}.tt-rarity-legendary{background:#fc43;color:#fc4}.dungeon-map-scroll{-webkit-overflow-scrolling:touch}.dungeon-svg{width:200%;min-width:1000px;height:auto;image-rendering:pixelated;display:block}@media(min-width:768px)and (min-aspect-ratio:1/1){#app{max-width:1200px}.screen-footer,.shop-footer{position:sticky;left:auto;right:auto}.title-content{padding-top:5%}.title-crystal{width:140px}.title-logo-img{width:min(66vw,672px)}.cs-caller{width:30%;max-width:320px;top:-4%}.cs-dialogue{top:30%;max-width:500px}.cs-bottom{bottom:7%}.cs-carousel-arrow{display:flex}.cs-carousel-track{width:240px}.cs-card-left{transform:scale(.75) translate(-85%);opacity:.6}.cs-card-right{transform:scale(.75) translate(85%);opacity:.6}.cs-card-portrait{width:203px;height:203px}.cs-card-portrait img{width:203px!important;height:203px!important}.cs-card-name{font-size:16px}.cs-card-role,.cs-card-feat{font-size:12px}.cs-card-feat-desc{font-size:10px}.cs-card-stats{font-size:13px}.cs-dialogue-text{font-size:16px}.cs-pick-label{font-size:14px}.class-grid{display:grid;grid-template-columns:1fr 1fr;overflow-y:auto}.party-card{aspect-ratio:5 / 5.95;flex:0 1 calc(20% - 4px)!important;max-width:calc(20% - 4px)!important}.party-card .stat-row .hp-bar{display:block}.stat-label{font-size:8px}.stat-value{font-size:8px;color:#c0c0d0;font-weight:600}.submenu-list{max-height:260px}.map-screen{display:flex;flex-direction:column;height:100%}.map-container{overflow-x:auto;overflow-y:hidden}.map-container .map-svg{width:auto;height:100%;min-height:100%}.map-party-cards .party-card:hover{box-shadow:0 0 8px #ffcc444d}.dungeon-svg{height:auto;width:200%;min-width:1200px;min-height:auto}.rest-screen,.gameover-screen,.victory-screen{max-width:640px;margin:0 auto}.levelup-screen{max-width:720px;margin:0 auto}.levelup-cards{flex-direction:row;flex-wrap:nowrap;gap:8px}.levelup-card{flex:1;min-width:0}.treasure-screen{max-width:720px;margin:0 auto}.treasure-cards{flex-direction:row;flex-wrap:wrap}.treasure-card{flex:1;min-width:250px}.event-screen,.event-screen-container{max-width:640px;margin:0 auto}.event-body{max-width:480px}.event-narrative{max-width:460px}.event-choices{max-width:480px}.boss-relic-screen{max-width:720px;margin:0 auto}.boss-relic-cards{flex-direction:row;flex-wrap:wrap;max-width:none}.boss-relic-card{flex:1;min-width:200px}.shop-screen-container{max-width:780px;margin:0 auto}.shop-section{display:grid;grid-template-columns:1fr 1fr;gap:6px}.shop-section-title{grid-column:1 / -1}.party-menu-screen{display:grid;grid-template-columns:240px 1fr;grid-template-rows:auto auto 1fr;max-width:1000px;margin:0 auto}.pm-header{grid-column:1 / -1;grid-row:1}.pm-char-selector{grid-column:1;grid-row:2 / -1;flex-direction:column;border-bottom:none;border-right:1px solid var(--border);overflow-x:hidden;overflow-y:auto;padding:8px}.pm-char-card{flex:none;width:100%}.pm-tabs{grid-column:2;grid-row:2}.pm-message{grid-column:2}.pm-content{grid-column:2;grid-row:3;padding:14px 20px}.pm-stats-bars{max-width:500px}.pm-ability-list{display:grid;grid-template-columns:1fr 1fr;gap:4px}.tt-tooltip{max-width:360px}}
