@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Noto+Sans+KR:wght@300;400;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}body{background-color:#030303;width:100vw;min-height:100vh;margin:0;padding:0;overflow-x:hidden}#root{justify-content:center;align-items:center;width:100%;min-height:100vh;display:flex}:root{--bg-color:#050508;--bg-dots:radial-gradient(#ffffff1a 1px, transparent 0);--glass-bg:#16141ebf;--glass-border:#ffffff0f;--glass-shadow:0 12px 40px 0 #00000080;--color-primary:#00f3ff;--color-secondary:#d946ef;--color-accent:#f59e0b;--font-title:"Outfit", "Noto Sans KR", sans-serif;--font-body:"Noto Sans KR", sans-serif}@keyframes float-up{0%{opacity:1;transform:translateY(0)scale(1)}70%{opacity:1;transform:translateY(-40px)scale(1.2)}to{opacity:0;transform:translateY(-70px)scale(.8)}}@keyframes vignette-pulse{0%{box-shadow:inset 0 0 #ef444400}30%{box-shadow:inset 0 0 80px 30px #ef444499}to{box-shadow:inset 0 0 #ef444400}}@keyframes event-glow-rotate{0%{border-color:#d946efcc;box-shadow:0 0 15px 3px #d946ef99,inset 0 0 15px #d946ef1a}50%{border-color:#8b5cf6;box-shadow:0 0 30px 8px #8b5cf6cc,inset 0 0 20px #8b5cf633}to{border-color:#d946efcc;box-shadow:0 0 15px 3px #d946ef99,inset 0 0 15px #d946ef1a}}@keyframes ripple{0%{box-shadow:0 0 #10b98166,0 0 8px #10b9814d}70%{box-shadow:0 0 0 12px #10b98100,0 0 15px #10b98180}to{box-shadow:0 0 #10b98100,0 0 8px #10b9814d}}@keyframes card-pulse{0%{border-color:#00f3ff66;box-shadow:0 0 8px #00f3ff4d}50%{border-color:#00f3ffe6;box-shadow:0 0 20px #00f3ffb3}to{border-color:#00f3ff66;box-shadow:0 0 8px #00f3ff4d}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes boss-border-pulse{0%{box-shadow:0 0 15px #ef4444cc,inset 0 0 10px #ef444433}50%{box-shadow:0 0 35px #f59e0b,inset 0 0 20px #f59e0b4d}to{box-shadow:0 0 15px #ef4444cc,inset 0 0 10px #ef444433}}@keyframes gold-sparkle{0%,to{filter:brightness()saturate()}50%{filter:brightness(1.4)saturate(1.5)}}@keyframes depth-flash{0%{opacity:0;transform:scale(.8)}20%{opacity:1;transform:scale(1.05)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.1)}}*{box-sizing:border-box;font-family:var(--font-body);margin:0;padding:0}body{background-color:var(--bg-color);background-image:var(--bg-dots);color:#f8fafc;background-size:24px 24px;min-height:100vh;overflow-x:hidden}.app-container{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;position:relative}.status-header.shaking{animation:.35s ease-out shake}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);text-align:center;border-radius:24px;width:100%;max-width:480px;padding:30px}.event-modal-panel{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1.5px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px}.neon-text-cyan{text-shadow:0 0 10px #00f3ff80,0 0 20px #00f3ff33;color:var(--color-primary);font-family:var(--font-title);font-weight:800}.neon-text-pink{text-shadow:0 0 10px #d946ef80,0 0 20px #d946ef33;color:var(--color-secondary);font-family:var(--font-title);font-weight:800}.floating-number{pointer-events:none;font-family:var(--font-title);z-index:999;text-shadow:0 2px 8px #000c;white-space:nowrap;font-size:1.3rem;font-weight:800;animation:.9s ease-out forwards float-up;position:absolute;top:30%;left:50%;transform:translate(-50%)}.floating-number.damage{color:#f87171}.floating-number.heal{color:#34d399}.floating-number.gold{color:#fbbf24}.floating-number.shield{color:#60a5fa}.floating-number.miss{color:#94a3b8;font-size:1rem}.lobby-container{flex-direction:column;gap:24px;display:flex}.logo-section h1{letter-spacing:2px;margin-bottom:5px;font-size:3rem}.logo-section p{color:#94a3b8;font-size:.95rem}.stats-summary{background:#ffffff08;border:1px solid #ffffff0d;border-radius:16px;justify-content:space-around;padding:15px;display:flex}.stat-item{flex-direction:column;align-items:center;display:flex}.stat-value{font-size:1.25rem;font-family:var(--font-title);color:var(--color-accent);font-weight:700}.stat-label{color:#64748b;font-size:.8rem}.shop-section{text-align:left}.shop-title{color:#94a3b8;align-items:center;gap:6px;margin-bottom:12px;font-size:1rem;font-weight:600;display:flex}.upgrade-list{flex-direction:column;gap:10px;display:flex}.upgrade-card{background:#ffffff05;border:1px solid #ffffff0d;border-radius:16px;justify-content:space-between;align-items:center;padding:12px 15px;transition:all .2s;display:flex}.upgrade-card:hover{background:#ffffff0a;border-color:#ffffff1a}.upgrade-info{flex-direction:column;display:flex}.upgrade-name{font-size:.9rem;font-weight:700}.upgrade-desc{color:#64748b;font-size:.75rem}.upgrade-btn{color:#000;cursor:pointer;background:linear-gradient(135deg,#fbbf24,#f59e0b);border:none;border-radius:100px;align-items:center;gap:4px;padding:8px 16px;font-size:.8rem;font-weight:700;transition:transform .1s;display:flex}.upgrade-btn:hover:not(:disabled){transform:scale(1.05)}.upgrade-btn:disabled{color:#64748b;cursor:not-allowed;background:#ffffff14}.play-btn{background:linear-gradient(135deg, var(--color-primary), var(--color-secondary));color:#fff;cursor:pointer;font-size:1.2rem;font-weight:800;font-family:var(--font-title);letter-spacing:1px;border:none;border-radius:100px;padding:15px 30px;transition:all .3s;box-shadow:0 0 15px #00f3ff4d}.play-btn:hover{transform:translateY(-2px);box-shadow:0 0 25px #d946ef80}.char-select{justify-content:center;gap:12px;display:flex}.char-option{cursor:pointer;color:#fff;background:#ffffff05;border:1px solid #ffffff14;border-radius:16px;flex:1;padding:12px;transition:all .2s}.char-option.active{border-color:var(--color-primary);background:#00f3ff0d;box-shadow:0 0 10px #00f3ff1a}.char-option h3{margin-bottom:4px;font-size:.95rem}.char-option p{color:#64748b;font-size:.75rem}.game-container{flex-direction:column;gap:12px;width:100%;max-width:440px;display:flex}.game-container.shaking{animation:.4s ease-out shake}.status-header{background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;display:flex}.status-avatar{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:50%;flex-shrink:0}.status-stats{flex:1;gap:12px;display:flex}.bar-container{flex-direction:column;flex:1;gap:4px;min-width:80px;display:flex}.bar-label{color:#94a3b8;font-size:.7rem;font-weight:700;font-family:var(--font-title);justify-content:space-between;display:flex}.bar-outer{background:#ffffff1a;border-radius:100px;height:12px;position:relative;overflow:hidden}.bar-inner{border-radius:100px;height:100%;transition:width .4s cubic-bezier(.4,0,.2,1)}.bar-hp{background:linear-gradient(90deg,#f87171,#ef4444)}.bar-shield{background:linear-gradient(90deg,#60a5fa,#3b82f6)}.gold-display{font-family:var(--font-title);color:var(--color-accent);flex-shrink:0;align-items:center;gap:4px;font-size:.9rem;font-weight:700;display:flex}.depth-banner{font-family:var(--font-title);background:linear-gradient(135deg,#d946ef33,#8b5cf633);border:1px solid #d946ef66;border-radius:16px;justify-content:space-between;align-items:center;padding:8px 14px;font-size:.8rem;display:flex}.depth-badge{color:var(--color-secondary);font-size:.9rem;font-weight:800}.kill-count{color:#ef4444;align-items:center;gap:4px;font-size:.8rem;display:flex}.atk-display{color:var(--color-accent);align-items:center;gap:4px;font-size:.8rem;display:flex}.low-hp-warning{color:#f87171;text-align:center;background:#ef444426;border:1px solid #ef444466;border-radius:8px;padding:6px 12px;font-size:.8rem;font-weight:700;animation:1.5s ease-in-out infinite vignette-pulse}.grid-wrapper{background:var(--glass-bg);border:1px solid var(--glass-border);aspect-ratio:1;box-shadow:var(--glass-shadow);border-radius:24px;justify-content:center;align-items:center;padding:10px;display:flex;position:relative}.grid-board{grid-template-rows:repeat(3,1fr);grid-template-columns:repeat(3,1fr);gap:8px;width:100%;height:100%;display:grid}.dungeon-card{cursor:default;-webkit-user-select:none;user-select:none;background:#0c0c14f7;border:1.5px solid #ffffff14;border-radius:20px;flex-direction:column;justify-content:space-between;height:100%;min-height:88px;padding:7px;transition:border-color .2s,box-shadow .2s,transform .15s;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000004d}.card-type-monster{background:linear-gradient(145deg,#1e0808fa,#140505fa);border-color:#ef44444d}.card-type-weapon{background:linear-gradient(145deg,#1e1405fa,#140c02fa);border-color:#f59e0b4d}.card-type-shield{background:linear-gradient(145deg,#050f23fa,#030a19fa);border-color:#60a5fa4d}.card-type-potion{background:linear-gradient(145deg,#05190ffa,#03120afa);border-color:#34d39966;animation:2s ease-in-out infinite ripple}.card-type-gold{background:linear-gradient(145deg,#1e1602fa,#140f02fa);border-color:#fbbf2466;animation:1.5s ease-in-out infinite gold-sparkle}.card-type-event{background:linear-gradient(145deg,#19051efa,#120316fa);animation:2s ease-in-out infinite event-glow-rotate}.dungeon-card.adjacent{cursor:pointer;transform-origin:50%;animation:1.8s ease-in-out infinite card-pulse}.dungeon-card.adjacent:hover{border-color:var(--color-primary);animation:none;transform:scale(1.06);box-shadow:0 0 25px #00f3ff80}.dungeon-card.adjacent:active{transform:scale(.96)}.dungeon-card.player-card{border-color:var(--color-primary);cursor:default;background:linear-gradient(145deg,#001e28fa,#00141efa);animation:none;box-shadow:0 0 15px #00f3ff40}.dungeon-card.boss-card{background:linear-gradient(145deg,#280505fc,#190303fc);border-color:#ef4444e6;animation:1s ease-in-out infinite boss-border-pulse}.card-graphic{opacity:.9;filter:drop-shadow(0 0 10px #ffffff40);z-index:1;font-size:2.4rem;transition:font-size .2s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.dungeon-card.adjacent:hover .card-graphic{filter:drop-shadow(0 0 16px #00f3ff80)}.card-glowing-effect{filter:blur(28px);opacity:.3;z-index:0;border-radius:50%;width:70px;height:70px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-header-info{z-index:2;justify-content:space-between;align-items:flex-start;width:100%;display:flex}.card-name{color:#cbd5e1;text-overflow:ellipsis;white-space:nowrap;max-width:75%;font-size:.68rem;font-weight:700;line-height:1.2;overflow:hidden}.card-badge{font-size:.58rem;font-weight:700;font-family:var(--font-title);white-space:nowrap;background:#ffffff14;border-radius:4px;flex-shrink:0;padding:1px 4px}.monster-hp-bar{z-index:2;background:#ffffff1a;border-radius:2px;height:4px;position:absolute;bottom:28px;left:7px;right:7px;overflow:hidden}.monster-hp-bar-fill{background:linear-gradient(90deg,#22c55e,#ef4444);border-radius:2px;height:100%;transition:width .3s ease-out}.card-stats{z-index:2;width:100%;font-family:var(--font-title);justify-content:space-between;align-items:center;font-size:.78rem;font-weight:700;display:flex}.stat-group{align-items:center;gap:2px;display:flex}.card-stat-hp{color:#f87171}.card-stat-atk{color:#f59e0b}.card-stat-value{color:#60a5fa}.card-stat-durability{color:#94a3b8;font-size:.65rem}.equipped-gear{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:14px;grid-template-columns:1fr 1fr;gap:8px;padding:10px;display:grid}.gear-slot{background:#ffffff05;border:1px solid #ffffff0a;border-radius:10px;align-items:center;gap:8px;padding:8px;display:flex}.gear-icon{font-size:1.2rem}.gear-details{flex-direction:column;min-width:0;display:flex}.gear-name{color:#64748b;font-size:.7rem}.gear-stat{color:#fff;font-size:.75rem;font-weight:700;font-family:var(--font-title);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.game-footer{justify-content:space-between;align-items:center;padding:0 4px;display:flex}.depth-counter{font-family:var(--font-title);color:#64748b;font-size:.8rem;font-weight:700}.reset-btn{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #ffffff26;border-radius:100px;padding:6px 14px;font-size:.75rem;transition:all .2s}.reset-btn:hover{color:#ef4444;border-color:#f87171}.modal-overlay{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:100;background:#030305d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.reigns-card-container{flex-direction:column;align-items:center;gap:20px;width:100%;max-width:340px;display:flex;position:relative}.reigns-card{aspect-ratio:.72;cursor:grab;touch-action:none;background:#0d0d15;border:2px solid #ffffff1a;border-radius:24px;flex-direction:column;justify-content:space-between;width:100%;padding:22px;display:flex;position:relative;box-shadow:0 20px 40px #0009}.reigns-card:active{cursor:grabbing}.choice-indicator{text-transform:uppercase;z-index:50;pointer-events:none;font-size:.85rem;font-weight:800;font-family:var(--font-title);letter-spacing:1px;border-radius:8px;padding:5px 10px;position:absolute;top:25px}.choice-indicator.left{color:#ef4444;background:#ef44441a;border:2px solid #ef4444;left:16px;transform:rotate(-12deg)}.choice-indicator.right{color:#10b981;background:#10b9811a;border:2px solid #10b981;right:16px;transform:rotate(12deg)}.reigns-header{text-align:center}.reigns-title{color:#fff;letter-spacing:1px;font-size:1.15rem;font-weight:700}.reigns-image-area{background:#ffffff05;border:1px solid #ffffff0d;border-radius:16px;flex:1;justify-content:center;align-items:center;margin:12px 0;display:flex;position:relative;overflow:hidden}.reigns-art-fallback{z-index:2;filter:drop-shadow(0 0 15px #ffffff4d);font-size:4rem}.reigns-question{text-align:center;color:#cbd5e1;justify-content:center;align-items:center;min-height:55px;font-size:.88rem;line-height:1.55;display:flex}.swipe-hint{color:#64748b;justify-content:center;align-items:center;gap:6px;min-height:28px;font-size:.73rem;display:flex}.gameover-title{margin-bottom:15px;font-size:2.2rem}.gameover-summary{text-align:left;flex-direction:column;gap:12px;margin:20px 0;display:flex}.summary-row{border-bottom:1px solid #ffffff0d;justify-content:space-between;padding-bottom:8px;display:flex}.summary-row span:last-child{font-weight:700;font-family:var(--font-title)}.g-gain{color:var(--color-accent)}.boss-announcement{z-index:200;text-align:center;font-family:var(--font-title);color:#fff;pointer-events:none;background:linear-gradient(135deg,#ef4444e6,#f59e0be6);border:2px solid #ef4444;border-radius:16px;padding:20px 40px;font-size:1.5rem;font-weight:800;animation:2s ease-out forwards depth-flash;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 50px #ef444480}.game-layout-wrapper{flex-direction:column;gap:16px;width:100%;max-width:480px;margin:0 auto;display:flex}.game-sidebar-right{flex-direction:column;gap:16px;width:100%;display:flex}.sidebar-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);border-radius:24px;flex-direction:column;gap:10px;padding:16px;display:flex}.sidebar-title{font-family:var(--font-title);letter-spacing:.5px;margin-bottom:4px;font-size:.95rem;font-weight:800}.equip-slots-container{flex-direction:column;gap:10px;display:flex}.equip-slot-item{background:#ffffff05;border:1px solid #ffffff0d;border-radius:16px;align-items:center;gap:12px;padding:10px 14px;transition:all .2s;display:flex}.equip-slot-item:hover{background:#ffffff0a;border-color:#ffffff1a}.slot-icon{font-size:1.4rem}.slot-info{flex-direction:column;min-width:0;display:flex}.slot-label{color:#64748b;text-transform:uppercase;font-size:.65rem;font-weight:600}.slot-name{font-size:.82rem;font-weight:700;font-family:var(--font-title);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.warehouse-item-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000080}@keyframes dot-pulse{0%{transform:scale(.9);box-shadow:0 0 #00f3ffb3}70%{transform:scale(1.05);box-shadow:0 0 0 6px #00f3ff00}to{transform:scale(.9);box-shadow:0 0 #00f3ff00}}.minimap-player-dot{animation:1.6s ease-in-out infinite dot-pulse}.dungeon-card.card-type-visited{box-shadow:none!important;background:linear-gradient(145deg,#0f172acc,#080c18cc)!important;border-color:#ffffff08!important}.dungeon-card.card-type-exit{background:linear-gradient(145deg,#064e3bb3,#022c22b3)!important;border-color:#10b98166!important}.dungeon-card.card-type-ring{background:linear-gradient(145deg,#280a2dfa,#19051efa);border-color:#d946ef4d}.dungeon-card.card-type-boots{background:linear-gradient(145deg,#0a2319fa,#05160ffa);border-color:#10b9814d}.dungeon-card.card-type-armor{background:linear-gradient(145deg,#0f1928fa,#080f1cfa);border-color:#3b82f64d}.dungeon-card.card-type-fog{opacity:.45;box-shadow:none!important;background:#090b11!important;border-color:#ffffff03!important}.dungeon-card.card-type-fog .card-graphic{opacity:.1!important}.dungeon-card.card-type-fog .card-header-info,.dungeon-card.card-type-fog .card-stats{pointer-events:none;opacity:0!important}@media (width>=900px){.game-layout-wrapper{flex-direction:row;justify-content:center;align-items:stretch;max-width:860px}.game-sidebar-right{min-width:280px;max-width:320px}.game-container.center-board{flex-grow:1;max-width:480px}}.event-choice-btn-active:hover{transform:translate(4px);box-shadow:0 0 12px #d946ef40;background:#d946ef14!important;border-color:#d946ef99!important}.event-choice-btn-active:active{transform:translate(2px)}.bar-sanity{background:linear-gradient(90deg,#3b82f6,#60a5fa)}@keyframes dice-shake{0%{transform:rotate(0)}25%{transform:rotate(-15deg)scale(1.15)}50%{transform:rotate(15deg)scale(1.15)}75%{transform:rotate(-10deg)scale(1.15)}to{transform:rotate(0)}}.dice-shake-anim{animation:.2s infinite dice-shake;display:inline-block}.dice-roller-panel{border:1px solid var(--color-primary);text-align:left;background:#00f3ff0a;border-radius:16px;margin-top:15px;padding:20px;box-shadow:0 0 20px #00f3ff26}.dice-stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin:15px 0;display:grid}.dice-stat-row{background:#0000004d;border:1px solid #ffffff0d;border-radius:12px;justify-content:space-between;align-items:center;padding:8px 12px;font-size:.85rem;display:flex}.dice-bonus-tag{color:var(--color-secondary);text-shadow:0 0 8px #d946ef99;font-weight:700}
