@font-face{font-family:Field;src:url('assets/fonts/NanumGothic-Bold.ttf') format('truetype');font-display:swap}
:root{--ink:#101e2b;--panel:#172c3bed;--line:#94b2ac66;--gold:#e9cb87;--text:#f5eddb;--muted:#b0c4bc;--green:#95cf8a;--danger:#ec9b92}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#0c1e25;color:var(--text);font-family:Field,'Malgun Gothic',sans-serif;font-size:13px}button,input,select{font:inherit}button{cursor:pointer;color:var(--text);background:linear-gradient(#344e59,#203543);border:1px solid #9eb5a66b;border-radius:8px;padding:10px 13px;box-shadow:inset 0 1px #e6efd315,0 3px 0 #08161d77;touch-action:manipulation}button:hover{border-color:#e6ce92;background:linear-gradient(#456370,#2d4654)}button:disabled{opacity:.43;cursor:default;filter:saturate(.4)}button:active{transform:translateY(1px)}button svg{width:22px;height:22px;vertical-align:middle}button:focus-visible,.key-current{outline:2px solid var(--gold);outline-offset:3px}input,select{color:var(--text);background:#112533;border:1px solid #789389;border-radius:6px;padding:10px}kbd{font-family:Field,monospace;font-size:10px}.hidden{display:none!important}.primary{background:linear-gradient(#be9956,#8e6b38)!important;border-color:#f6d798!important;color:#fff7dd}.muted{color:var(--muted);font-size:11px;line-height:1.8}.eyebrow{font-size:10px;letter-spacing:3px;color:#d8c18d}.panel-lead{color:var(--muted);line-height:1.9;margin:0 0 18px}
#game-shell{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;overflow:hidden;background:#12372e}#game{display:block;width:100%;height:100%;outline:0;touch-action:none}#game-shell:after{content:'';position:absolute;top:0;right:0;bottom:0;left:0;inset:0;box-shadow:inset 0 0 90px #031a2266;pointer-events:none;z-index:1}#room-banner,#center-tip,.legacy-controls{display:none!important}.hud-layer{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;pointer-events:none;z-index:3}.hud-layer button,.hud-layer input,.hud-layer select,.hud-layer .mobile-joystick,.hud-layer #minimap-shell{pointer-events:auto}.hud-panel{background:linear-gradient(135deg,#183342f0,#102332e8);border:1px solid #c5cfab77;box-shadow:0 6px 20px #081a2960,inset 0 1px #ecf4db18;border-radius:13px}
#partner{position:absolute;top:18px;left:18px;width:238px;height:104px;padding:12px 12px 10px 87px;border-top:2px solid var(--gold)}#partner-art{position:absolute;left:8px;top:7px;width:72px;height:78px;image-rendering:pixelated;border-radius:50%;background:radial-gradient(ellipse,#9cc0a63d 0%,#223d4c 65%);border:1px solid #bfcda16e}#partner-name{margin:0 0 3px;font-size:17px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}#partner-info{color:#d9d9bd;font-size:10px;line-height:1.5;max-height:30px;overflow:hidden}#health-label{display:block;font-size:9px;color:#ecf0da;margin:3px 0}.track{height:7px;overflow:hidden;border-radius:5px;background:#071b24;border:1px solid #849e7c5c}.track i{height:100%;display:block;background:linear-gradient(90deg,#6baf89,#b8e2a0);box-shadow:inset 0 1px #eefdc459;transition:width .12s}#partner .xp-track{height:3px;margin-top:5px;border:0}#xp-bar{background:linear-gradient(90deg,#6ebad0,#b2ddf0)}#resources{position:absolute;right:17px;top:17px;display:flex;gap:10px;font-size:11px;color:#f1ddaa}#resources>div{padding:7px 11px;border-radius:14px;background:#142c3dd6;border:1px solid #aebfa245}#resources b{color:#fff2cd;margin-left:4px}#resources>div:not(:first-child){display:none}.location{position:absolute;top:18px;left:50%;transform:translateX(-50%);text-align:center;padding:8px 22px;min-width:190px;background:linear-gradient(90deg,transparent,#142b39d9 15%,#142b39e6 85%,transparent);text-shadow:0 2px #102d2f}.location b{font-size:17px;letter-spacing:1px}#room-detail{display:block;margin-top:4px;color:#cbd4b5;font-size:9px}.live{display:inline-block;width:6px;height:6px;border-radius:50%;background:#b4d99b;margin-right:7px}
#minimap-shell{position:absolute;top:56px;right:18px;width:174px;padding:5px;border:1px solid #d0d7ae77;border-radius:12px;background:#102b37e8;box-shadow:0 5px 15px #0017245e;overflow:hidden}#minimap{width:162px;height:122px;display:block;border-radius:7px;image-rendering:auto}#minimap-shell small{display:block;font-size:8px;color:#ccd6b7;text-align:center;padding-top:5px}.map-controls{display:flex;justify-content:center;gap:4px;margin-top:5px}.map-controls button{padding:2px 8px;font-size:9px;min-width:25px;background:#193a45;box-shadow:none}#route-guide{position:absolute;left:19px;top:140px;width:230px;padding:12px 13px;border-left:2px solid #dabe7b;border-radius:0 8px 8px 0;background:linear-gradient(90deg,#183440d6,#16303f70);text-shadow:0 1px #132a31}#route-guide:before{content:'다음 여정';display:block;color:#eed697;font-size:10px;margin-bottom:7px}#route-message{display:block;font-size:11px;line-height:1.7}#route-destination{display:block;color:#cfdda7;font-size:10px;margin-top:7px}#route-choice{padding:5px;font-size:10px;width:100%;margin-top:9px;background:#142e3dd6;border-color:#6a8b7959}#objective{position:absolute;right:22px;top:240px;color:#efdfac;max-width:180px;text-align:right;font-size:11px;text-shadow:0 2px #153340}#target{position:absolute;top:85px;left:50%;transform:translateX(-50%);width:250px;background:#153344a1;border:1px solid #bed2b34a;border-radius:10px;padding:9px 11px;text-align:center;font-size:10px;line-height:1.5;text-shadow:0 1px #0e2630}#target:empty{display:none}.tinybar{height:6px;background:#0c2530;margin-top:6px;border-radius:3px;overflow:hidden}.tinybar i{display:block;height:100%;background:linear-gradient(90deg,#83bd8f,#c9dfa8)}
#menu-toggle{position:absolute;right:19px;top:275px;width:48px;height:48px;padding:10px;border-radius:14px;background:#183442e8;color:#e6d5aa}#menus{position:absolute;right:19px;top:332px;display:grid;grid-template-columns:repeat(2,58px);gap:8px;padding:9px;background:#122a3ae8;border:1px solid #9cb5a15c;border-radius:14px}#menus.collapsed{display:none}#menus button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:56px;padding:6px;border:0;background:#284855ad;box-shadow:none}#menus button svg{width:23px;height:23px;color:#e3d6ad}#menus button span{font-size:9px}.game-status{position:absolute;left:19px;bottom:22px;color:#dbe8d1;display:flex;align-items:center;gap:8px;font-size:9px}#connection{font-size:9px;max-width:85px;overflow:hidden;white-space:nowrap}#username{font-size:10px;color:#f5dd9d}.game-status button{padding:4px 7px;font-size:11px;background:#16323daf;box-shadow:none}.game-status #logout{font-size:9px}.brand{position:absolute;left:19px;bottom:52px;color:#d3d8b09e;letter-spacing:3px;font-size:9px;text-decoration:none}.brand small{display:none}
#combat-bar{position:absolute;right:26px;bottom:26px;width:344px;height:204px;pointer-events:none}#combat-bar button{pointer-events:auto}#skills{position:absolute;left:0;top:0;width:280px;height:180px}.ability{position:absolute;width:65px;height:65px;border-radius:17px;padding:0;background:#122b38;box-shadow:0 6px 10px #07192588,0 0 0 3px #163546cc,inset 0 0 0 1px #ffecad66;border:2px solid #bfa66f;overflow:visible}.ability-0{left:0;top:107px}.ability-1{left:36px;top:31px}.ability-2{left:113px;top:0}.ability-3{left:194px;top:26px}.skill-art{display:block;width:100%;height:100%;background-image:url('assets/ui/skills-atlas-v1.png');background-size:400% 400%;background-repeat:no-repeat;border-radius:inherit}.ability.empty .skill-art{filter:grayscale(1);opacity:.2}.ability kbd{position:absolute;left:-5px;top:-7px;width:22px;height:22px;background:#152d3f;border:1px solid #d3c491;border-radius:6px;display:grid;place-items:center;box-shadow:0 2px 3px #001b22;color:#fff3c9;font-size:10px;z-index:3}.ability-name{position:absolute;left:50%;transform:translateX(-50%);top:calc(100% + 7px);white-space:nowrap;font-size:10px;font-weight:bold;color:#fff2cc;text-shadow:0 2px 3px #051d28}.cool-label{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;display:grid;place-items:center;font-size:20px;color:#fff7dc;text-shadow:0 2px 3px #001e2c;z-index:2}.cooldown-veil{position:absolute;top:0;right:0;bottom:0;left:0;inset:0;border-radius:inherit;background:conic-gradient(#071a2bdf var(--cooldown,0deg),transparent 0);pointer-events:none}.ability:disabled{opacity:.73}.ability.empty:after{content:'+';position:absolute;top:0;right:0;bottom:0;left:0;inset:0;display:grid;place-items:center;font-size:26px;color:#b7c2b6}.ability.empty .ability-name{font-size:8px;color:#b4c5ba}#attack{position:absolute;right:0;bottom:0;width:90px;height:90px;border-radius:50%;padding:7px;background:linear-gradient(135deg,#d6b16f,#63543a);border:2px solid #f4d29a;box-shadow:0 5px 0 #173341,0 0 0 4px #193744b0,0 8px 25px #0721337a}#attack .skill-art{border-radius:50%;border:1px solid #d5ba82}#attack kbd{position:absolute;top:-8px;right:0;width:25px;height:25px;border-radius:50%;border:1px solid #e6d09a;background:#20394a;display:grid;place-items:center;z-index:2}#attack>span:last-child{position:absolute;bottom:8px;left:0;right:0;font-size:10px;text-shadow:0 2px #102838}#jump,#dash{position:absolute;width:48px;height:48px;border-radius:50%;padding:9px;border-color:#a3c6bf;background:linear-gradient(#446d76,#1e4056)}#jump{left:151px;bottom:1px}#dash{right:3px;top:23px}#jump svg,#dash svg{width:25px;height:25px}#jump kbd,#dash kbd{position:absolute;bottom:-12px;left:50%;transform:translateX(-50%);font-size:8px;white-space:nowrap;color:#e0e9d7;text-shadow:0 2px #092534}
#roster{position:absolute;bottom:75px;left:185px;display:flex;gap:8px}#roster button{position:relative;width:58px;height:68px;padding:3px 3px 4px;border-radius:12px;font-size:8px;background:#1b3947d9;color:#d0ddc2;border-color:#93afa46b}#roster button.active{border-color:#f2d99b;box-shadow:0 0 0 2px #1e4359,0 0 15px #e2c37149;background:#365748}#roster canvas{display:block;width:42px;height:37px;margin:auto;image-rendering:pixelated}#roster small{display:block;font-size:7px;color:#f0e3b1}#items{position:absolute;bottom:25px;left:185px;display:flex;gap:6px}#items button{position:relative;width:43px;height:43px;padding:4px;border-radius:10px;font-size:10px;background:#173543dc;border-color:#8ea9a66e}#items b{position:absolute;top:-4px;left:-3px;width:16px;height:16px;border-radius:4px;background:#294759;color:#f3e3b5;font-size:8px;display:grid;place-items:center}#items small{display:block;font-size:7px;line-height:1.5}.item-symbol{display:block;height:23px;font-size:18px;line-height:23px}#interact,#mobile-capture{position:absolute;right:26px;bottom:253px;max-width:150px;border:1px solid #d3d6b1;border-radius:20px;background:#1d4355e8;padding:10px 16px;font-size:11px;box-shadow:0 3px 10px #0c253678}#interact svg{width:18px;height:18px;margin-right:6px}#mobile-capture{right:194px;bottom:257px;width:47px;height:47px;padding:10px;border-radius:50%}#mobile-capture svg{width:24px;height:24px}#exit-run{position:absolute;right:26px;bottom:310px;border-color:#d2bc85;font-size:11px;background:#5b5735e6}#interact-hint{position:absolute;bottom:285px;left:50%;transform:translateX(-50%);padding:6px 13px;border-radius:14px;font-size:10px;background:#183a42a1;color:#f3e5b3;white-space:nowrap;text-shadow:0 2px #123341}#interact-hint:empty{display:none}#pending{position:absolute;left:20px;top:305px;width:220px;font-size:10px;line-height:1.7;color:#e4d9b8;text-shadow:0 2px #102e33}#notices{position:absolute;left:50%;top:150px;transform:translateX(-50%);max-width:360px;display:grid;gap:5px;pointer-events:none}.notice{padding:9px 15px;border-radius:7px;background:#173747e8;border:1px solid #d7cf9f77;color:#f1e4b9;font-size:11px;text-align:center;box-shadow:0 3px 15px #17303c44;animation:toast .18s ease-out}@keyframes toast{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.mobile-joystick{position:absolute;left:30px;bottom:89px;width:124px;height:124px;border:2px solid #dbe8cd55;border-radius:50%;background:radial-gradient(ellipse,#8bb6a52b,#163b4699);box-shadow:inset 0 0 0 15px #ecf7dc0a,0 5px 20px #05212f2e;touch-action:none;display:none}.mobile-joystick:before{content:'';position:absolute;top:18px;right:18px;bottom:18px;left:18px;inset:18px;border:1px solid #d6eac069;border-radius:50%}.mobile-joystick i{position:absolute;left:43px;top:43px;width:34px;height:34px;border:1px solid #dfedc2aa;border-radius:50%;background:radial-gradient(circle at 35% 30%,#d4e5afab,#7eab9599);box-shadow:0 4px 8px #07324466}#chat-toggle{position:absolute;left:19px;top:360px;width:38px;height:38px;border-radius:50%;padding:8px;background:#183a45c9}#chat-toggle svg{width:21px;height:21px}.chat{position:absolute;left:70px;top:360px;display:none;width:350px;gap:5px}.chat.open{display:flex}.chat input{min-width:0;flex:1;font-size:11px;padding:8px}.chat button{padding:7px 10px}#chat-log{position:absolute;left:19px;top:405px;max-width:300px;font-size:10px;line-height:1.7;color:#e6e9d3;pointer-events:none;text-shadow:0 2px #112e38}#chat-log div{background:#102b3e9e;border-radius:5px;padding:4px 8px;margin-bottom:4px}#party-list{position:absolute;left:19px;top:280px;font-size:9px;color:#d4dfc3;text-shadow:0 2px #133445}#party-list div{display:inline-block;margin-right:8px}#quest-list{display:none}#settings-row{position:absolute;left:19px;bottom:20px;display:flex;align-items:center;gap:5px}
.overlay{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:#061a29cf;backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(1060px,96vw);max-height:92vh;overflow:auto;padding:26px;border:1px solid #c9cba774;border-top:3px solid var(--gold);border-radius:16px;background:linear-gradient(135deg,#233b4c,#142a3d 60%,#1a3543);box-shadow:0 25px 100px #00111b9e,inset 0 1px #d8e4bd22}#modal-close{position:absolute;right:15px;top:15px;width:31px;height:31px;padding:0;font-size:24px;background:#304b58;border-color:#9cb1a56e;border-radius:50%;z-index:5}#modal-title{font-size:23px;color:#f3dfad;margin:0 45px 22px 0;letter-spacing:.5px}#modal-body{min-height:100px}#modal-body h3{font-size:16px}#modal-body p{line-height:1.9}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px}.card{padding:17px;background:linear-gradient(#355263a6,#203e50b5);border:1px solid #9db5a15c;border-radius:12px;text-align:center}.card h3{margin:12px 0 8px}.card p{font-size:11px;color:#b9cabe}.card canvas{display:block;image-rendering:pixelated;margin:auto;width:120px;height:115px}.card button{font-size:11px;margin-top:8px}.card:focus-within{border-color:var(--gold);background:linear-gradient(#496658,#2c4d51)}.row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0}.list-row{padding:13px 0;border-bottom:1px solid #8fa8a233}.list-row h3{margin:0 0 7px}.list-row p{font-size:12px;color:#c0cfc2}.list-row button{font-size:11px;margin:5px 5px 0 0}.badge{display:inline-block;margin:3px;padding:4px 8px;background:#4b655766;border:1px solid #b7c0a12b;border-radius:10px;font-size:9px;color:#dfdfbb}.auth-card{width:min(480px,95vw);padding:39px;border:1px solid #d7c692;border-radius:18px;background:linear-gradient(145deg,#2d4958,#142d40);box-shadow:0 20px 80px #000d1bb3}.auth-card h2{font-size:40px;line-height:1.4;margin:16px 0;color:#f5e4b9;letter-spacing:-1px}.auth-card p{font-size:12px;line-height:1.9;color:#c1d3c6}.auth-card label{display:block;margin-top:13px;font-size:11px;color:#d0d9be}.auth-card input{display:block;width:100%;margin-top:6px;padding:12px;background:#102a3b}.auth-card small{display:block;text-align:center;color:#9fb8ac;font-size:9px;margin-top:17px}.tabs{display:flex;margin:20px 0;gap:8px}.tabs button{flex:1}.tabs .selected{border-color:var(--gold);background:#74613b}#auth-submit{width:100%;margin-top:20px;padding:14px}#auth-error{color:#f0b1a1;min-height:17px;font-size:11px}#reconnect{position:fixed;top:0;right:0;bottom:0;left:0;inset:0;display:grid;place-items:center;z-index:25;background:#102939b3;color:#f5e8b5;font-size:17px;backdrop-filter:blur(3px)}#vote-box,#contest-box{position:absolute;left:50%;top:28%;transform:translateX(-50%);min-width:300px;max-width:90vw;padding:22px;border:2px solid #d4b981;border-radius:14px;background:linear-gradient(#294756ee,#173042f5);text-align:center;pointer-events:auto;z-index:15;box-shadow:0 10px 30px #09263888}#vote-box b,#contest-box b{font-size:16px;color:#f2d99c}#vote-box p,#contest-box p{font-size:12px;line-height:1.9;color:#c5d7c6}#contest-box button{margin:5px}.go{background:#a17d42!important;font-size:22px}
.collection-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px;gap:10px}.collection-header strong{font-size:25px;color:var(--gold);margin-right:5px}.collection-header .muted{display:block;font-size:10px;margin-top:3px}.collection-header button{font-size:11px}.collection-header svg{width:16px;height:16px;margin-right:5px}.collection-layout{display:grid;grid-template-columns:minmax(210px,.85fr) minmax(380px,1.4fr);gap:22px;align-items:start}.collection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:65vh;overflow:auto;padding:3px}.collection-card{position:relative;min-height:151px;border-radius:13px;padding:8px 5px 12px;background:linear-gradient(#344f62b5,#1c3549);border-color:#8ea99c66;text-align:center}.collection-card .monster-art{display:block;margin:auto;width:83px;height:75px;image-rendering:pixelated}.collection-card b{display:block;font-size:13px;margin:4px 0}.collection-card small{display:block;font-size:8px;color:#cad6bb}.collection-level{position:absolute;left:8px;top:7px;color:#e5d4a8;font-size:9px}.collection-health{display:block;height:4px;margin:9px 14px 0;background:#0b2335;border-radius:3px;overflow:hidden}.collection-health em{display:block;height:100%;background:#b0cf94}.collection-card.selected{border-color:#edcf88;background:linear-gradient(#56684c,#244b4c);box-shadow:inset 0 0 0 1px #e7d8a45c,0 0 12px #c2d57e18}.rarity-rare{--rarity:#8ed9ef}.rarity-ultra{--rarity:#edce85}.rarity-normal{--rarity:#becda0}.monster-detail{border:1px solid #a8bc9d66;border-radius:15px;padding:17px;background:linear-gradient(#304d5b7a,#1e384ae6)}.monster-hero{height:214px;position:relative;display:grid;place-items:center;overflow:hidden;border-radius:10px;background:radial-gradient(ellipse at 50% 76%,#6b987467,#1d3e541a 65%)}.monster-hero .monster-art{width:220px;height:210px;z-index:2;image-rendering:pixelated;filter:drop-shadow(0 9px 6px #071d2c55)}.hero-orbit{position:absolute;width:225px;height:73px;bottom:15px;border:1px solid #d3dfae7a;border-radius:50%;box-shadow:0 0 25px #99be7f2b,inset 0 0 25px #cadfa121}.hero-orbit:after{content:'';position:absolute;top:12px;right:12px;bottom:12px;left:12px;inset:12px;border:1px dashed #d4e9b16e;border-radius:50%}.rarity-ribbon{position:absolute;top:8px;left:8px;border:1px solid var(--rarity);color:var(--rarity);padding:4px 9px;border-radius:10px;font-size:9px}.dex-number{position:absolute;right:8px;top:12px;color:#bdc9b3;font-size:10px}.monster-identity h3{margin:14px 0 10px;font-size:25px!important;letter-spacing:-.6px}.monster-identity h3 small{font-size:14px;color:var(--gold);margin-left:9px}.type-badge{display:inline-flex;align-items:center;gap:5px;border:1px solid color-mix(in srgb,var(--type-color),transparent 40%);border:1px solid #aab8a65c;background:#112a3c91;color:var(--type-color);border-radius:9px;padding:4px 8px;font-size:9px;margin-right:6px;white-space:nowrap}.type-badge i{width:6px;height:6px;display:block;background:var(--type-color);border-radius:50%;box-shadow:0 0 5px var(--type-color)}.detail-hp,.detail-xp{margin-top:11px}.detail-hp span,.detail-xp span{display:block;font-size:10px;color:#d7dfc1;margin-bottom:4px}.detail-hp>i,.detail-xp>i{display:block;height:7px;background:#0b2436;border-radius:5px;overflow:hidden}.detail-hp em,.detail-xp em{display:block;height:100%;background:linear-gradient(90deg,#6fa786,#bedb95)}.detail-xp>i{height:4px}.detail-xp em{background:linear-gradient(90deg,#589eae,#b0d9e6)}.detail-actions{display:flex;gap:7px;flex-wrap:wrap;margin:14px 0}.detail-actions button{font-size:10px;padding:8px 10px}.detail-tabs{display:flex;border-bottom:1px solid #aebd9d3d;margin:18px 0 15px;gap:5px}.detail-tabs button{flex:1;background:transparent;border:0;box-shadow:none;border-bottom:2px solid transparent;border-radius:0;padding:9px 5px;font-size:11px;color:#b1c9bd}.detail-tabs .selected{border-bottom-color:var(--gold);color:#f1d69c}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.stat-grid>div{padding:10px;border-radius:8px;background:#102c3c85;border:1px solid #91aaa02e}.stat-grid span{display:block;font-size:9px;color:#bacdbc}.stat-grid b{display:block;font-size:22px;color:#f0e9ca;margin:6px 0}.stat-grid i{display:block;height:3px;background:#193b48}.stat-grid em{display:block;height:100%;background:var(--stat-color)}.registered-moves{display:grid;gap:10px}.registered-move{display:flex;align-items:center;gap:12px;padding:10px;border-radius:10px;background:#183445;border:1px solid #8eab9950}.registered-move>.skill-art{width:61px;height:61px;flex-shrink:0;border-radius:12px;border:1px solid #baac7d}.registered-move>div{min-width:0}.registered-move b{font-size:13px;margin-right:7px}.registered-move .type-badge{font-size:8px;padding:2px 5px}.move-slot{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:5px;background:#365563;border:1px solid #d1c9956b;margin-right:7px;color:#f3ddb0;font-size:10px}.registered-move p{font-size:10px!important;color:#c6d7c1;margin:5px 0 2px!important}.registered-move small{font-size:9px;color:#9fbeb1}.registered-move.empty{opacity:.55}.evolution-chain{display:flex;align-items:center;justify-content:center;gap:20px;padding:20px}.evolution-chain span{text-align:center;font-size:11px}.evolution-chain canvas{display:block;image-rendering:pixelated}.evolution-chain>b{font-size:25px;color:var(--gold)}.avatar-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.avatar-card{padding:20px 10px;display:flex;align-items:center;flex-direction:column;gap:13px;background:radial-gradient(ellipse at 50% 60%,#5c84714d,#153346);border-radius:12px}.avatar-card.selected{border-color:var(--gold);box-shadow:inset 0 0 20px #d6ce7626}.trainer-preview{display:block;width:64px;height:96px;background-size:256px 384px;background-position:0 0;background-repeat:no-repeat;image-rendering:pixelated}.avatar-card small{font-size:9px;color:#bdd4bb}.empty-state{text-align:center;padding:45px}.empty-state>svg{width:50px;height:50px;color:#c2c995}.empty-state p{color:#bbd2bc;font-size:12px}
#modal.npc-dialogue{background:transparent;backdrop-filter:none;align-items:flex-end;padding-bottom:130px;pointer-events:none}#modal.npc-dialogue .modal-card{pointer-events:auto;width:min(760px,92vw);padding:23px 25px 23px 112px;min-height:155px;background:linear-gradient(135deg,#244351f5,#112d40f7);border:2px solid #d8c796}#modal.npc-dialogue .modal-card:before{content:'';position:absolute;left:22px;top:20px;width:64px;height:96px;background:url(assets/trainers/nurse.png) 0 0/256px 384px no-repeat;image-rendering:pixelated}#modal.npc-dialogue[data-speaker="professor"] .modal-card:before{background-image:url(assets/trainers/professor.png)}#modal.npc-dialogue h2{font-size:17px;margin-bottom:10px}#modal.npc-dialogue p{font-size:12px;margin:6px 0 12px;color:#d7dfc1}#modal.npc-dialogue button{font-size:11px}#modal.npc-dialogue .muted{font-size:10px}#modal.npc-dialogue #modal-close{right:10px;top:10px}
@media(max-width:900px),(pointer:coarse){#partner{top:12px;left:10px;width:188px;height:87px;padding:10px 8px 8px 65px}#partner-art{left:5px;top:8px;width:55px;height:59px}#partner-name{font-size:13px}#partner-info{font-size:8px;max-height:24px}#health-label{font-size:8px;margin:2px 0}.track{height:5px}#resources{top:10px;right:10px;font-size:9px}#resources>div{padding:5px 8px}.location{top:104px;left:12px;transform:none;padding:4px 9px;min-width:0;text-align:left;border-radius:12px;background:#193a46a3}.location b{font-size:12px}.location #room-detail{display:none}.live{width:5px;height:5px}#minimap-shell{right:10px;top:42px;width:113px;padding:3px;border-radius:9px}#minimap{width:105px;height:79px}#minimap-shell small{font-size:6px;padding-top:3px}.map-controls{gap:2px;margin-top:3px}.map-controls button{font-size:7px;padding:1px 6px;min-width:19px}#route-guide{left:10px;top:137px;width:171px;padding:8px 9px}#route-guide:before{font-size:8px;margin-bottom:4px}#route-message{font-size:9px;line-height:1.65}#route-destination{font-size:8px;margin-top:5px}#route-choice{padding:3px;font-size:8px;margin-top:6px}#target{top:280px;width:196px;font-size:9px;padding:7px 9px}#objective{top:181px;right:12px;max-width:110px;font-size:8px}#menu-toggle{right:11px;top:211px;width:38px;height:38px;padding:8px;border-radius:11px}#menus{right:10px;top:257px;grid-template-columns:repeat(2,48px);gap:5px;padding:6px}#menus button{min-height:46px;padding:4px}#menus button svg{width:20px;height:20px}#menus button span{font-size:8px}#combat-bar{right:12px;bottom:20px;transform:scale(.78);transform-origin:right bottom}#roster{left:12px;bottom:159px;gap:6px}#roster button{width:43px;height:53px;padding:2px;font-size:7px;border-radius:10px}#roster canvas{width:34px;height:29px}#roster small{font-size:6px}#items{left:12px;bottom:228px;gap:5px}#items button{width:33px;height:35px;font-size:8px;padding:3px}.item-symbol{font-size:15px;height:19px;line-height:19px}#items small{font-size:6px}#items b{width:13px;height:13px;font-size:6px}.mobile-joystick{display:block;left:14px;bottom:35px;width:104px;height:104px}.mobile-joystick i{left:35px;top:35px;width:30px;height:30px}#interact{right:12px;bottom:207px;padding:8px 11px;font-size:10px;max-width:130px}#mobile-capture{right:157px;bottom:199px;width:39px;height:39px;padding:8px}#mobile-capture svg{width:20px;height:20px}#interact-hint{bottom:281px;max-width:92vw;font-size:8px;padding:5px 9px;white-space:normal;text-align:center}#exit-run{bottom:254px;right:12px;padding:7px 10px;font-size:9px}#pending{top:auto;bottom:274px;left:12px;width:165px;font-size:8px;max-height:42px;overflow:hidden}#notices{top:330px;max-width:80vw}.notice{font-size:10px;padding:8px 12px}#party-list{top:258px;left:12px;font-size:7px;max-width:160px}#chat-toggle{top:325px;left:12px;width:31px;height:31px;padding:6px}.chat{position:fixed;left:12px;right:12px;top:auto;bottom:285px;width:auto;z-index:6}#chat-log{top:362px;left:12px;max-width:200px;font-size:8px;max-height:100px;overflow:hidden}.brand{display:none}.game-status{left:12px;bottom:9px;gap:4px}#username{font-size:7px}.game-status button{font-size:9px;padding:2px 5px}#connection{display:none}.game-status #logout{font-size:7px}.overlay{padding:12px}.modal-card{padding:20px 14px;border-radius:13px;max-height:94vh}#modal-title{font-size:20px;margin-bottom:18px}#modal-close{top:12px;right:12px;width:28px;height:28px}.collection-layout{grid-template-columns:1fr;gap:15px}.collection-list{display:flex;max-height:none;overflow:auto;padding:4px;gap:9px}.collection-card{flex:0 0 114px;min-height:131px}.collection-card .monster-art{width:70px;height:60px}.collection-card b{font-size:11px}.collection-header{font-size:11px;margin-bottom:12px}.collection-header strong{font-size:21px}.collection-header button{font-size:9px;padding:7px}.collection-header .muted{font-size:8px}.monster-detail{padding:12px}.monster-hero{height:178px}.monster-hero .monster-art{width:185px;height:178px}.monster-identity h3{font-size:22px!important}.stat-grid{gap:8px}.stat-grid>div{padding:9px}.stat-grid b{font-size:19px}.stat-grid span{font-size:8px}.registered-move{gap:9px;padding:8px}.registered-move>.skill-art{width:53px;height:53px}.registered-move b{font-size:11px}.registered-move p{font-size:9px!important}.registered-move small{font-size:8px}.registered-move .type-badge{display:none}.detail-tabs button{font-size:10px}.avatar-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.avatar-card{padding:15px 8px}.cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.card{padding:12px 8px}.card canvas{width:95px;height:90px}.card h3{font-size:13px!important}.card p{font-size:10px}.card button{padding:8px;font-size:9px}.auth-card{padding:29px}.auth-card h2{font-size:34px}#modal.npc-dialogue{padding:12px 10px 215px}#modal.npc-dialogue .modal-card{padding:17px 15px 17px 89px;min-height:140px}#modal.npc-dialogue .modal-card:before{left:12px;top:18px}#modal.npc-dialogue p{font-size:10px}#vote-box,#contest-box{top:34%;padding:17px;min-width:270px}}
@media(max-height:540px) and (pointer:coarse){#partner{top:9px;left:10px;width:182px;height:80px}.location{top:10px;left:50%;transform:translateX(-50%)}#route-guide{top:96px;max-height:110px;width:180px;overflow:hidden}#route-choice{display:none}#minimap-shell{top:10px;right:55px;width:110px}#resources{top:auto;bottom:9px;right:auto;left:160px}#menu-toggle{top:13px;right:9px}#menus{top:60px;right:8px}#objective{top:146px;right:14px}#target{top:49px;max-width:205px;font-size:8px}#combat-bar{transform:scale(.68);bottom:12px;right:12px}.mobile-joystick{width:88px;height:88px;bottom:23px;left:17px}.mobile-joystick i{left:29px;top:29px;width:26px;height:26px}#roster{bottom:19px;left:126px}#items{left:126px;bottom:83px}#interact{bottom:178px;right:14px}#mobile-capture{bottom:167px;right:146px}#interact-hint{bottom:139px;font-size:8px}#pending{bottom:133px;left:130px;max-width:200px}#party-list{display:none}#chat-toggle{top:219px}#chat-log{top:252px;max-height:50px}.game-status #logout{display:none}.collection-layout{grid-template-columns:200px 1fr}.collection-list{display:grid;grid-template-columns:repeat(2,1fr);max-height:60vh}.collection-card{min-height:120px}.collection-card .monster-art{width:65px;height:55px}.monster-hero{height:130px}.monster-hero .monster-art{height:130px;width:145px}.hero-orbit{height:45px;width:150px}.monster-identity h3{font-size:18px!important}.modal-card{max-height:94vh}.avatar-grid{grid-template-columns:repeat(4,1fr)}#modal.npc-dialogue{padding:8px 20% 20px}#modal.npc-dialogue .modal-card{min-height:128px}}

/* Keep close/back reachable while long collection content scrolls. */
.modal-card{display:flex;flex-direction:column;overflow:hidden}#modal-title{flex-shrink:0}#modal-body{overflow:auto;overscroll-behavior:contain;min-height:0;max-height:calc(92vh - 95px);padding:3px 5px 5px 0}#modal.npc-dialogue #modal-body{max-height:30vh}
@media(max-height:540px) and (pointer:coarse){#resources{left:205px;top:10px;bottom:auto;font-size:8px}#jump kbd,#dash kbd{display:none}}

.ability.empty .cooldown-veil{display:none}.ability.empty .cool-label{display:none}

*{-webkit-tap-highlight-color:transparent}body,canvas,button{user-select:none;-webkit-user-select:none}input,textarea{user-select:text;-webkit-user-select:text}.safe-action{display:none}.safe-scene #skills,.safe-scene #jump,.safe-scene #dash{display:none}.safe-scene #attack>.skill-art{display:none}.safe-scene #attack .safe-action{display:grid;place-items:center;position:absolute;top:4px;right:4px;bottom:4px;left:4px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#466a77,#1a3a50)}.safe-action svg{width:40px;height:40px;color:#f4e0ae}.safe-scene #attack>span:last-child{bottom:12px}
