@import"https://cdn.jsdelivr.net/gh/orioncactus/pretendard/dist/web/static/pretendard.css";@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;600;700&display=swap";:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a24;--bg-card: #16161f;--text-primary: #f0f0f5;--text-secondary: #a0a0b0;--text-muted: #606070;--accent-primary: #6366f1;--accent-secondary: #8b5cf6;--accent-success: #22c55e;--accent-danger: #ef4444;--accent-warning: #f59e0b;--accent-info: #3b82f6;--rarity-common: #9ca3af;--rarity-rare: #3b82f6;--rarity-epic: #a855f7;--rarity-legendary: #f59e0b;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 2px 4px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--shadow-lg: 0 8px 24px rgba(0,0,0,.5)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Pretendard,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.5}#root{max-width:480px;margin:0 auto;min-height:100vh;background:var(--bg-primary)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3}.font-number{font-family:Outfit,sans-serif}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 16px #6366f166}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--bg-card)}.btn-danger{background:var(--accent-danger);color:#fff}.btn-success{background:var(--accent-success);color:#fff}.btn-block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.input{width:100%;padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border:1px solid var(--bg-card);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-family:inherit;transition:border-color .2s}.input:focus{outline:none;border-color:var(--accent-primary)}.input-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.input-group label{font-size:12px;color:var(--text-secondary);font-weight:500}.card{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--spacing-md);box-shadow:var(--shadow-sm)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.card-title{font-size:16px;font-weight:600}.game-card{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-sm);width:80px;cursor:pointer;transition:all .2s;border:2px solid transparent}.game-card:hover{transform:translateY(-4px);border-color:var(--accent-primary)}.game-card.selected{border-color:var(--accent-success);box-shadow:0 0 12px #22c55e4d}.game-card.rarity-common{border-left:3px solid var(--rarity-common)}.game-card.rarity-rare{border-left:3px solid var(--rarity-rare)}.game-card.rarity-epic{border-left:3px solid var(--rarity-epic)}.game-card-name{font-size:11px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-card-cost{font-size:10px;color:var(--accent-info);font-family:Outfit,sans-serif}.hp-bar{height:8px;background:var(--bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.hp-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent-danger),#f87171);border-radius:var(--radius-full);transition:width .3s ease}.hp-bar-fill.low{background:var(--accent-danger);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.monster{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:all .2s;border:2px solid transparent;min-width:80px}.monster:hover{border-color:var(--accent-danger)}.monster.selected{border-color:var(--accent-danger);box-shadow:0 0 12px #ef44444d}.monster-emoji{font-size:32px}.monster-name{font-size:11px;color:var(--text-secondary)}.monster-hp{font-size:10px;font-family:Outfit,sans-serif;color:var(--accent-danger)}.party-member{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md)}.party-member-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--bg-card);display:flex;align-items:center;justify-content:center;font-size:18px}.party-member-info{flex:1;min-width:0}.party-member-name{font-size:12px;font-weight:600}.party-member-hp{font-size:10px;color:var(--text-muted);font-family:Outfit,sans-serif}.intent{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;background:var(--bg-card);border-radius:var(--radius-sm);font-size:10px}.intent.attack{color:var(--accent-danger)}.intent.defend{color:var(--accent-info)}.intent.buff{color:var(--accent-success)}.page{min-height:100vh;display:flex;flex-direction:column;padding:var(--spacing-md)}.page-header{padding:var(--spacing-md) 0;text-align:center}.page-title{font-size:24px;font-weight:700;margin-bottom:var(--spacing-xs)}.page-subtitle{font-size:14px;color:var(--text-secondary)}.loading{display:flex;align-items:center;justify-content:center;padding:var(--spacing-xl)}.spinner{width:24px;height:24px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;bottom:var(--spacing-lg);left:50%;transform:translate(-50%);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-size:14px;z-index:1000;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}}@keyframes fadeIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes cardPlay{0%{transform:scale(1)}50%{transform:scale(1.2) rotate(5deg)}to{transform:scale(0) translateY(-100px);opacity:0}}@keyframes cardDraw{0%{opacity:0;transform:translateY(50px) scale(.5)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes damageShake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-8px)}80%{transform:translate(8px)}}@keyframes damageFlash{0%,to{filter:brightness(1)}50%{filter:brightness(2) saturate(0)}}@keyframes healPulse{0%,to{box-shadow:0 0 #22c55e00}50%{box-shadow:0 0 20px 10px #22c55e80}}@keyframes buffGlow{0%,to{box-shadow:0 0 #6366f100}50%{box-shadow:0 0 15px 5px #6366f199}}@keyframes criticalHit{0%{transform:scale(1)}25%{transform:scale(1.3);filter:brightness(2)}50%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes floatUp{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-50px)}}.anim-card-play{animation:cardPlay .4s ease-out forwards}.anim-card-draw{animation:cardDraw .3s ease-out}.anim-damage{animation:damageShake .3s ease-out,damageFlash .3s ease-out}.anim-heal{animation:healPulse .5s ease-out}.anim-buff{animation:buffGlow .5s ease-out}.anim-critical{animation:criticalHit .4s ease-out}.damage-number{position:absolute;font-size:24px;font-weight:700;animation:floatUp 1s ease-out forwards;pointer-events:none;text-shadow:2px 2px 4px rgba(0,0,0,.8)}.damage-number.buff{color:#6366f1}.damage-number.debuff{color:#f59e0b}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.flex-1{flex:1}.w-full{width:100%}.text-center{text-align:center}.text-sm{font-size:12px}.text-muted{color:var(--text-secondary)}.mt-auto{margin-top:auto}.mb-md{margin-bottom:var(--spacing-md)}.no-scrollbar::-webkit-scrollbar{display:none}.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}@media(max-width:480px){#root{width:100%;max-width:100%}.page,.card{padding:var(--spacing-sm)}.btn{min-height:44px;padding:var(--spacing-sm) var(--spacing-md)}body{font-size:16px}.input{font-size:16px;min-height:44px}:root{--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px}.battle-ui-top{padding:4px 8px}.battle-content{gap:4px;padding:0 4px}.monsters-area{gap:4px}.monster-container{width:auto!important;margin:0!important;flex:0 0 auto}.monster-avatar{width:56px!important;height:72px!important;border-radius:6px!important}.monster-shadow{display:none}.hp-bar-container{height:4px;width:56px}.player-area{padding:4px}.player-panel{padding:6px 10px;border-radius:8px;gap:8px}.battle-ui-bottom{padding-bottom:env(safe-area-inset-bottom,0)}.hand-area{gap:2px;padding:3px 4px 0;min-height:auto}.hand-card{width:52px!important;height:76px!important;min-width:38px!important}.hand-card-inner{padding:2px}.hand-card-name{font-size:7px;height:14px}.controls-area{padding:3px 8px 4px}.controls-area .btn{font-size:12px;padding:8px 10px;border-radius:6px}.battle-log-panel{display:none}.tooltip{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);bottom:auto;width:80vw;max-width:280px;z-index:9999;pointer-events:none;box-shadow:0 4px 30px #000c;border:1px solid var(--accent-primary);background:#0a0a14f2}}@keyframes screenShake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@keyframes cardUse{0%{transform:scale(1) translateY(0);opacity:1}50%{transform:scale(1.2) translateY(-20px);opacity:.8}to{transform:scale(0) translateY(-50px);opacity:0}}@keyframes monsterHit{0%{transform:translate(0) scale(1);filter:brightness(1)}25%{transform:translate(-10px) scale(.95);filter:brightness(2)}50%{transform:translate(10px) scale(.95);filter:brightness(1.5)}75%{transform:translate(-5px) scale(1);filter:brightness(1.2)}to{transform:translate(0) scale(1);filter:brightness(1)}}@keyframes criticalHitFlash{0%{box-shadow:0 0 #ffd70000}50%{box-shadow:0 0 30px #ffd700cc}to{box-shadow:0 0 #ffd70000}}.monster-hit{animation:monsterHit .4s ease-out!important}.card-using{animation:cardUse .4s ease-out forwards!important}.damage-number{position:fixed;font-family:Outfit,sans-serif;font-weight:700;font-size:24px;pointer-events:none;animation:floatUp 1s ease-out forwards;text-shadow:2px 2px 4px rgba(0,0,0,.8);z-index:9999}.damage-number.damage{color:#ef4444}.damage-number.critical{color:gold;font-size:32px;animation:floatUp 1s ease-out forwards,criticalHitFlash .5s ease}.damage-number.heal{color:#22c55e}@keyframes slashAnim{0%{stroke-dasharray:0 200;opacity:1}to{stroke-dasharray:200 0;opacity:0}}@keyframes explosionFlash{0%{transform:scale(0);opacity:1}50%{transform:scale(1.5);opacity:.8}to{transform:scale(2);opacity:0}}@keyframes particleFly{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(calc(cos(var(--angle)) * var(--distance)),calc(sin(var(--angle)) * var(--distance))) scale(0);opacity:0}}@keyframes buffPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.3);opacity:1}to{transform:scale(1);opacity:0}}@keyframes buffRing{0%{transform:scale(.5);opacity:1}to{transform:scale(2);opacity:0}}.battle-card:hover{transform:translateY(-8px) scale(1.05);box-shadow:0 8px 25px #6366f166}.battle-card.disabled{filter:grayscale(.5)}@keyframes monsterDeath{0%{transform:scale(1);opacity:1;filter:brightness(1)}30%{transform:scale(1.1);filter:brightness(2)}to{transform:scale(0) rotate(15deg);opacity:0}}.monster-dying{animation:monsterDeath .6s ease-out forwards!important}@keyframes turnPulse{0%,to{box-shadow:0 0 #8b5cf600}50%{box-shadow:0 0 20px #8b5cf699}}.turn-indicator{animation:turnPulse 2s ease-in-out infinite}@keyframes screenShakeAnim{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.screen-shake{animation:screenShakeAnim .2s ease-out}@keyframes flash-fade{0%{opacity:1}to{opacity:0}}@keyframes victory-pulse{0%{transform:scale(.5);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}@keyframes card-preview-in{0%{transform:translate(-50%) translateY(20px) scale(.9);opacity:0}to{transform:translate(-50%) translateY(0) scale(1);opacity:1}}@keyframes turn-pulse{0%{transform:scale(1.3);opacity:0}50%{transform:scale(1.1)}to{transform:scale(1);opacity:1}}.ap-gauge-container{width:140px;height:20px;background:#00000080;border:1px solid rgba(255,255,255,.1);border-radius:4px;position:relative;overflow:hidden;box-shadow:inset 0 2px 4px #00000080}.ap-gauge-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#60a5fa,#93c5fd);border-radius:2px;box-shadow:0 0 10px #60a5fa99;transition:width .3s cubic-bezier(.4,0,.2,1);position:relative}.ap-gauge-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.ap-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:11px;font-weight:800;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8);z-index:2;letter-spacing:1px}.btn-end-turn{background:#ffffff0d;border:1px solid rgba(255,255,255,.2);color:#aaa;transition:all .3s ease;position:relative;overflow:hidden}.btn-end-turn:hover{background:#ffffff1a;color:#fff}.btn-end-turn.warning{border-color:#f59e0b80;color:#fca5a5;box-shadow:0 0 10px #f59e0b1a}.btn-end-turn.safe{border-color:#22c55e80;color:#86efac;box-shadow:0 0 15px #22c55e33;background:#22c55e1a}.btn-end-turn.safe:hover{background:#22c55e33;box-shadow:0 0 20px #22c55e66}.battle-log-panel{width:100%;max-height:60px;background:#0009;padding:6px 10px;overflow-y:auto;font-size:10px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column-reverse}.battle-log-item{margin-bottom:4px;text-shadow:0 1px 2px rgba(0,0,0,1);animation:fadeIn .3s ease-out}.hand-card{transition:all .25s cubic-bezier(.175,.885,.32,1.275);width:90px;height:130px;cursor:pointer;flex-shrink:1;min-width:60px}.hand-card:hover{z-index:1000!important}.hand-card-inner{position:relative;overflow:hidden;border-radius:6px;box-shadow:0 4px 10px #00000080;height:100%;background:var(--bg-card);padding:6px;display:flex;flex-direction:column}.hand-card-name{font-size:10px;font-weight:700;line-height:1.1;text-align:center;word-break:keep-all;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;height:22px}.battle-screen{position:fixed;top:0;left:0;width:100%;height:100%;overflow:hidden;background:#0a0a1a;display:block;z-index:100}.battle-ui-top{padding:12px;display:flex;justify-content:space-between;align-items:flex-start;z-index:10}.battle-content{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 10px;overflow:hidden;min-height:0}.monsters-area{display:flex;justify-content:center;align-items:flex-start;gap:8px;flex-wrap:wrap;width:100%}.player-area{display:flex;justify-content:center;align-items:center;padding:6px 8px}.player-panel{background:#1e293b99;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:8px 16px;width:100%;max-width:400px;display:flex;align-items:center;gap:12px}.player-header{display:flex;justify-content:space-between;align-items:center}.class-icon{font-size:28px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#0000004d;border-radius:8px}.block-badge{background:linear-gradient(135deg,#1e40af,#1d4ed8);border:1px solid #3b82f6;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap}.battle-ui-bottom{z-index:20;display:flex;flex-direction:column;background:linear-gradient(to top,rgba(10,10,20,.98) 0%,rgba(10,10,20,.85) 70%,transparent 100%);border-top:1px solid rgba(255,255,255,.06)}.hand-area{display:flex;justify-content:center;align-items:flex-end;gap:6px;padding:8px 12px 4px;min-height:110px;overflow:visible}.controls-area{padding:8px 16px 12px;display:flex;justify-content:center;gap:10px}.controls-area .btn{max-width:500px;width:100%;font-size:16px;font-weight:700;letter-spacing:1px;padding:14px 20px;border-radius:10px}.btn-end-turn{background:linear-gradient(135deg,#334155,#1e293b)!important;border:2px solid #475569!important;color:#94a3b8!important}.btn-end-turn.warning{background:linear-gradient(135deg,#92400e,#78350f)!important;border-color:#f59e0b!important;color:#fbbf24!important}.btn-end-turn.safe{background:linear-gradient(135deg,#065f46,#064e3b)!important;border-color:#10b981!important;color:#34d399!important}.btn-play{background:linear-gradient(135deg,#7c3aed,#6d28d9)!important;border:2px solid #a78bfa!important;color:#fff!important;animation:btn-glow 2s ease-in-out infinite}@keyframes btn-glow{0%,to{box-shadow:0 0 8px #8b5cf64d}50%{box-shadow:0 0 20px #8b5cf699}}.hand-card.disabled{filter:grayscale(.8) brightness(.7);cursor:not-allowed}.hand-card.disabled .hand-card-inner:after{content:"🔒";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:24px;opacity:.7}.card-border-common{border:2px solid #9ca3af;box-shadow:0 0 5px #9ca3af33}.card-border-rare{border:2px solid #3b82f6;box-shadow:0 0 10px #3b82f64d}.card-border-epic{border:2px solid #a855f7;box-shadow:0 0 15px #a855f766}.card-border-legendary{border:2px solid #f59e0b;box-shadow:0 0 20px #f59e0b80}.tooltip-container{position:relative}.tooltip{position:absolute;bottom:110%;left:50%;transform:translate(-50%);background:#14141ef2;border:1px solid rgba(255,255,255,.1);padding:8px 12px;border-radius:8px;width:180px;font-size:11px;color:#ddd;z-index:1000;pointer-events:none;opacity:0;transition:opacity .2s;box-shadow:0 4px 20px #00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tooltip-container:hover .tooltip{opacity:1}.monster-container{transition:transform .2s ease;width:140px;text-align:center}.monster-container:hover{transform:scale(1.05);z-index:10}.monster-avatar{width:100px;height:140px;margin:0 auto;border-radius:10px;overflow:hidden;background:#222;border:2px solid rgba(255,255,255,.1);box-shadow:0 4px 16px #0009}.monster-container.selected .monster-avatar{border-color:#ef4444;box-shadow:0 0 20px #ef444480}.monster-info{text-align:center;margin-top:4px}.monster-name{font-weight:700;font-size:12px;margin-bottom:2px;text-shadow:0 1px 3px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.monster-shadow{width:70px;height:8px;margin:6px auto;background:radial-gradient(ellipse,rgba(0,0,0,.5) 0%,transparent 70%)}.hp-bar-container{width:90%;height:7px;background:#333;border-radius:4px;margin:4px auto;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.hp-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.hp-bar-fill.hp-high{background:linear-gradient(90deg,#10b981,#34d399)}.hp-bar-fill.hp-mid{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.hp-bar-fill.hp-low{background:linear-gradient(90deg,#ef4444,#f87171)}@keyframes pulse-border{0%,to{border-color:#ef44444d;box-shadow:0 0 5px #ef44441a}50%{border-color:#ef4444b3;box-shadow:0 0 15px #ef44444d}}.buff-row{display:flex;gap:2px;justify-content:center;margin-top:4px;height:16px}.buff-icon-small{width:16px;height:16px;border-radius:50%;background:#00000080;display:flex;align-items:center;justify-content:center;font-size:10px;border:1px solid rgba(255,255,255,.1)}.block-overlay{position:absolute;top:0;left:0;height:100%;background:#60a5fa99;z-index:2;border-radius:inherit;box-shadow:0 0 5px #60a5fa;border-right:1px solid #93c5fd}.battle-bg{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 50% 30%,#1a1a2e,#0f0f1a);z-index:-1}.particle{position:absolute;background:#ffffff1a;border-radius:50%;animation:float-particle linear infinite}@keyframes float-particle{0%{transform:translateY(100vh) translate(0);opacity:0}50%{opacity:.5}to{transform:translateY(-100px) translate(20px);opacity:0}}.battle-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;z-index:10}.battle-ui-top,.battle-ui-bottom{pointer-events:auto;width:100%}.battle-ui-top{padding:16px;background:linear-gradient(to bottom,rgba(0,0,0,.8),transparent)}.battle-ui-bottom{background:linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,.7) 80%,transparent 100%);padding-bottom:env(safe-area-inset-bottom,20px)}.codex-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}@media(max-width:480px){.codex-grid{grid-template-columns:repeat(3,1fr)}}
