.topbar-container{grid-area:topbar;background:linear-gradient(135deg,rgba(185,103,255,.08),var(--color-bg-elevated));display:flex;justify-content:space-between;align-items:center;padding:0 .75rem;border-bottom:2px solid var(--color-border);box-shadow:0 4px 12px #00000080;z-index:var(--z-topbar);color:var(--color-text-primary);font-family:var(--font-family-base);gap:.5rem}.topbar-section{display:flex;align-items:center;gap:.4rem;flex:1}.topbar-section.center{justify-content:center;flex:0 0 auto}.topbar-section.right{justify-content:flex-end}.player-hp-inline{position:relative;min-width:80px;max-width:120px;flex-shrink:0}.player-hp-bar-bg{height:20px;background:linear-gradient(90deg,#0d0d1a,#1a1a2e);border-radius:10px;overflow:hidden;border:1px solid #000;position:relative}.player-hp-bar-fill{height:100%;background:linear-gradient(90deg,#ff3860,#ff6ec7);transition:width .3s ease-out;box-shadow:inset 0 1px 2px #fff3}.player-hp-text{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700;text-shadow:1px 1px 0 #000,-1px -1px 0 #000;z-index:2}.player-block-badge{display:flex;align-items:center;gap:2px;background:linear-gradient(135deg,#00d4ff,#09c);border:1px solid #66e5ff;border-radius:10px;padding:2px 6px;font-size:.65rem;font-weight:700;color:#0d0d1a;box-shadow:0 0 6px #00d4ff4d;flex-shrink:0}.player-status-pip{display:flex;align-items:center;gap:1px;font-size:.6rem;padding:1px 5px;border-radius:8px;border:1px solid var(--color-border);background:#0006;white-space:nowrap;flex-shrink:0}.player-status-pip.debuff{color:var(--color-accent-red);border-color:#ff386080;background:#ff38601a}.player-status-pip.buff{color:var(--color-accent-green);border-color:#39ff1480;background:#39ff141a}.abandon-btn{background:none;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--color-text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;transition:color .2s,border-color .2s}.abandon-btn:hover{color:var(--color-accent-red);border-color:#ff386080}.abandon-confirm{display:flex;align-items:center;gap:6px}.abandon-confirm-text{font-size:.7rem;color:var(--color-accent-red);font-weight:700;white-space:nowrap}.abandon-yes,.abandon-no{font-size:.65rem;font-weight:700;border:1px solid;border-radius:4px;padding:2px 8px;cursor:pointer;font-family:var(--font-family-base)}.abandon-yes{background:#ff386033;border-color:var(--color-accent-red);color:var(--color-accent-red)}.abandon-no{background:#ffffff0d;border-color:var(--color-border);color:var(--color-text-secondary)}.stat{display:flex;align-items:center;gap:.3rem;font-weight:700;font-size:.85rem}.stat.gold{color:var(--color-accent-amber)}.stat.deck{color:var(--color-accent-violet);font-size:.75rem}.floor-text{font-family:var(--font-family-display);font-size:.9rem;letter-spacing:1px;color:var(--color-text-secondary);white-space:nowrap}.floor-total{opacity:.55;font-size:.8em}@media(min-width:769px){.topbar-container{padding:0 2rem;gap:.75rem}.topbar-section{gap:.75rem}.player-hp-inline{min-width:120px;max-width:180px}.player-hp-bar-bg{height:24px;border-radius:12px}.player-hp-text{font-size:.75rem}.player-block-badge{padding:3px 8px;font-size:.75rem}.player-status-pip{font-size:.7rem;padding:2px 6px}.stat{font-size:1.1rem}.stat.deck{font-size:.95rem}.floor-text{font-size:1.15rem}}.topbar-container .deck-browser-trigger{white-space:nowrap;padding:.35rem .5rem;font-size:.75rem}.topbar-container .stat.gold{white-space:nowrap}@media(max-width:360px){.topbar-container{padding:0 .4rem;gap:.25rem}.player-hp-inline{min-width:65px}}.topbar-section{min-width:0}@media(max-width:360px){.topbar-container .deck-browser-trigger{padding:.25rem;font-size:.65rem}.topbar-container .stat.gold{font-size:.65rem}.topbar-container .floor-text{font-size:.7rem}}.topbar-container{background:#0b1523f5;border-bottom:1px solid #66b8b54d;box-shadow:0 4px 20px #02091255}.topbar-container .deck-browser-trigger{background:#152737;border-color:#65aba866;color:#c2e6df}.inspection-dialog{color:var(--color-text-primary);background:#151525;border:2px solid var(--color-accent-blue);border-radius:16px;padding:1.25rem;width:min(440px,calc(100vw - 3rem));max-height:calc(100dvh - 3rem);overflow:auto;box-sizing:border-box;font:1rem/1.5 var(--font-family-base);box-shadow:0 20px 80px #000a}.inspection-dialog::backdrop{background:#050510dd}.inspection-dialog header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.inspection-dialog h2{margin:0 0 1rem;font-family:var(--font-family-display);font-size:2rem;overflow-wrap:anywhere}.inspection-dialog button,.deck-browser-trigger{font:inherit;color:inherit;background:var(--color-bg-elevated);border:1px solid var(--color-border);border-radius:6px;padding:.65rem .85rem;min-height:44px;cursor:pointer}.inspection-dialog button:disabled{opacity:.65;cursor:not-allowed}.inspection-art{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px}.inspection-description{font-size:1rem;white-space:pre-wrap;overflow-wrap:anywhere}.inspection-meta{color:var(--color-accent-blue)}.inspection-actions{display:flex;flex-direction:column;gap:.75rem}.deck-browser-list{display:grid;gap:.75rem}.deck-browser-list article{border-bottom:1px solid var(--color-border);padding-bottom:.75rem}.deck-browser-list h3,.deck-browser-list p{margin:.25rem 0}button.map-node{background:none;border:0;padding:0;color:inherit}.entity-panel{display:flex;flex-direction:column;align-items:center;position:relative}.entity-panel.player{gap:.15rem}.player-info-bar{display:flex;flex-direction:column;align-items:center;gap:.15rem;margin-bottom:.25rem}.player-info-bar .player-name{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-highlight)}.player-info-bar .hp-bar-container.player-hp{width:100px}.player-status-row{display:flex;gap:.25rem;align-items:center;flex-wrap:wrap;justify-content:center}.player-block-inline{display:flex;align-items:center;gap:2px;font-size:.6rem;font-weight:700;color:#00d4ff}.player-status-pip{font-size:.55rem;font-weight:700;padding:1px 4px;border-radius:4px}.player-status-pip.buff{color:#4ade80}.player-status-pip.debuff{color:#f87171}.entity-panel.player .entity-avatar{width:64px;height:64px;font-size:2.5rem}.entity-panel.player .entity-avatar:not(.has-sprite):not(.has-portrait){background:radial-gradient(circle at 35% 30%,#2c2b4a,var(--color-bg-surface) 75%);border:2px solid var(--color-accent-violet);border-radius:50%;box-shadow:0 0 14px #b967ff59,0 6px 14px #0009}.entity-panel.player .entity-avatar.has-portrait:not(.has-sprite){width:80px;height:80px;border-radius:50%;overflow:hidden;border:2px solid var(--color-text-highlight);box-shadow:0 0 12px #ff6ec766;background-color:var(--color-bg-base)}.player-portrait-img{width:100%;height:100%;object-fit:cover}.entity-panel.player .entity-avatar.has-sprite{width:80px;height:128px;background:var(--color-bg-surface);border:2px solid var(--color-accent-violet);border-radius:8px;overflow:hidden;animation:spriteIdle 3s ease-in-out infinite;box-shadow:0 4px 12px #000c,0 0 10px #b967ff40}.player-sprite-img{width:106%;height:106%;margin:-3% 0 0 -3%;object-fit:cover}@keyframes spriteIdle{0%,to{transform:translateY(0) scaleY(1)}50%{transform:translateY(-3px) scaleY(1.01)}}.entity-panel.player .entity-avatar.has-sprite.anim-lunge{animation:lungeDynamic .3s cubic-bezier(.2,.8,.2,1) forwards}.entity-panel.player .entity-avatar.has-sprite.anim-stagger{animation:spriteStagger .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes spriteStagger{0%{transform:translate(0);filter:brightness(1)}20%{transform:translate(-12px) skew(-5deg);filter:brightness(2) sepia(1) hue-rotate(-50deg) saturate(4)}40%{transform:translate(8px) skew(3deg)}60%{transform:translate(-5px)}80%{transform:translate(3px);filter:brightness(1)}to{transform:translate(0) skew(0)}}.player-info-bar .player-name{font-family:var(--font-family-display);text-shadow:0 2px 4px rgba(0,0,0,.8)}.entity-panel.enemy{width:96px;background:#1a1a2ee6;border:1px solid var(--color-border);border-radius:10px;padding:.25rem .2rem .4rem;gap:.15rem;transition:border-color .3s,box-shadow .3s,transform .2s}.entity-panel.threat-attack{border-color:#ff386080;box-shadow:0 0 12px #ff386026,0 4px 12px #00000080}.entity-panel.threat-defend{border-color:#00d4ff80;box-shadow:0 0 12px #00d4ff26,0 4px 12px #00000080}.entity-panel.threat-buff{border-color:#39ff1480;box-shadow:0 0 12px #39ff1426,0 4px 12px #00000080}.entity-panel.targeted-panel{border-color:var(--color-accent-red);box-shadow:0 0 20px #ff386066,0 0 40px #ff386026;transform:scale(1.05)}.entity-panel.enemy.is-dead{pointer-events:none;border-color:transparent;box-shadow:none;animation:enemyDeath .9s cubic-bezier(.4,0,.6,1) .3s forwards}@keyframes enemyDeath{0%{opacity:1;transform:none;filter:none}35%{opacity:.9;filter:grayscale(.6) brightness(1.8);transform:translateY(2px)}to{opacity:0;transform:translateY(16px) scale(.82) rotate(3deg);filter:grayscale(1) brightness(2.5) blur(4px)}}.intent-row{display:flex;gap:.25rem;align-items:center;justify-content:center;padding:.15rem 0;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:.1rem;width:100%}.intent-item{display:flex;align-items:center;gap:.15rem;font-weight:700;font-family:var(--font-family-display)}.intent-item.attack{color:var(--color-accent-red)}.intent-item.defend{color:var(--color-accent-blue)}.intent-item.buff{color:var(--color-accent-green)}.intent-value{font-size:.9rem;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000}.entity-avatar{width:56px;height:56px;background:transparent;display:flex;align-items:center;justify-content:center;font-size:2.8rem;filter:drop-shadow(0 4px 10px rgba(0,0,0,.8));transition:transform .2s,filter .2s}.enemy-portrait-img{width:100%;height:100%;object-fit:cover;object-position:center 20%;border-radius:6px}.entity-panel.enemy:hover .entity-avatar{transform:translateY(-3px)}.entity-avatar.targeted{filter:drop-shadow(0 0 20px var(--color-accent-red));transform:scale(1.1);z-index:10}.entity-avatar.anim-lunge{animation:lungeDynamic .3s cubic-bezier(.2,.8,.2,1) forwards;z-index:20}.entity-avatar.anim-stagger{animation:stagger .4s cubic-bezier(.36,.07,.19,.97) both}@keyframes lungeDynamic{0%{transform:translate(0)}50%{transform:translate(var(--lunge-x, 0px),var(--lunge-y, -40px)) scale(1.1)}to{transform:translate(0)}}@keyframes stagger{0%{transform:translate(0);filter:brightness(1) sepia(0) hue-rotate(0deg) saturate(1)}20%{transform:translate(-10px);filter:brightness(1.5) sepia(1) hue-rotate(-50deg) saturate(5)}40%{transform:translate(10px)}60%{transform:translate(-5px)}80%{transform:translate(5px);filter:brightness(1) sepia(0) hue-rotate(0deg) saturate(1)}to{transform:translate(0)}}.entity-avatar-container{position:relative;display:inline-block}.entity-avatar-container:before{content:"";position:absolute;bottom:-9px;left:50%;transform:translate(-50%);width:78%;height:12px;background:radial-gradient(ellipse,rgba(0,0,0,.5),transparent 70%);pointer-events:none}.floating-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.8rem;font-family:var(--font-family-display);font-weight:900;color:#fff;text-shadow:2px 2px 0 #000,-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000,0 4px 12px rgba(0,0,0,.8);pointer-events:none;z-index:var(--z-entity-float);animation:floatUpAndFade 1.2s cubic-bezier(.2,.8,.2,1) forwards}.floating-text.damage{color:var(--color-accent-red)}.floating-text.damage.big{font-size:2.4rem;color:#ff5c7a;text-shadow:2px 2px 0 #000,-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000,0 0 18px rgba(255,56,96,.9)}.floating-text.burn{color:#ff8c42;text-shadow:2px 2px 0 #000,-2px -2px 0 #000,2px -2px 0 #000,-2px 2px 0 #000,0 0 14px rgba(255,140,66,.8)}.floating-text.blocked{color:var(--color-accent-blue);font-size:1rem;letter-spacing:2px}.floating-text.block{color:var(--color-accent-blue)}.floating-text.heal{color:var(--color-accent-green)}.floating-text.status{color:#fff;font-size:.9rem}.hit-burst{position:absolute;top:50%;left:50%;width:70px;height:70px;margin:-35px 0 0 -35px;border-radius:50%;border:3px solid rgba(255,255,255,.9);box-shadow:0 0 18px #ff3860cc,inset 0 0 12px #ff386080;pointer-events:none;z-index:calc(var(--z-entity-float) - 1);animation:hitBurst .45s cubic-bezier(.2,.8,.2,1) forwards}.hit-burst:after{content:"";position:absolute;inset:25%;border-radius:50%;background:radial-gradient(circle,#fffffff2,#ff386000 70%)}@keyframes hitBurst{0%{transform:scale(.2);opacity:1;border-width:6px}70%{opacity:.85}to{transform:scale(1.6);opacity:0;border-width:1px}}.entity-avatar.anim-burn-tick,.entity-panel.player .entity-avatar.has-sprite.anim-burn-tick{animation:burnTick .5s ease-out}@keyframes burnTick{0%{filter:brightness(1)}30%{filter:brightness(1.7) sepia(1) hue-rotate(-25deg) saturate(6);transform:translateY(2px) scale(.98)}to{filter:brightness(1);transform:translateY(0) scale(1)}}@keyframes floatUpAndFade{0%{opacity:0;transform:translate(-50%) scale(.5)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.2)}to{opacity:0;transform:translate(-50%,-120%) scale(1)}}.entity-info{width:100%;text-align:center}.entity-name{font-size:.75rem;font-family:var(--font-family-display);font-weight:700;margin-bottom:.15rem;text-shadow:0 2px 4px rgba(0,0,0,.8)}.hp-bar-container{width:80%;position:relative;margin:0 auto .2rem}.hp-text{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.55rem;font-weight:700;z-index:2;text-shadow:1px 1px 0 #000,-1px -1px 0 #000,1px -1px 0 #000,-1px 1px 0 #000}.hp-bar-bg{width:100%;height:14px;background:#1a1a2e;border-radius:7px;overflow:hidden;border:1px solid #000;position:relative}.hp-bar-ghost{position:absolute;top:0;left:0;height:100%;background:#ffd6a5e6;transition:width .5s ease-out .35s;z-index:0}.hp-bar-fill{height:100%;background:linear-gradient(90deg,#ff3860,#ff6ec7);transition:width .15s ease-out;position:relative;z-index:1}.entity-block{position:absolute;top:-5px;right:0;background:#00d4ff;border:1px solid #fff;border-radius:50%;width:22px;height:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700;font-size:.6rem;color:#0d0d1a;box-shadow:0 4px 8px #00000080;z-index:10}.status-container{display:flex;justify-content:center;gap:.2rem;flex-wrap:wrap;margin-top:.1rem}.status-icon{background:#00000080;padding:1px 4px;border-radius:10px;font-size:.6rem;border:1px solid var(--color-border);cursor:help}.status-icon.debuff{color:var(--color-accent-red);border-color:#ff386080}.status-icon.buff{color:var(--color-accent-green);border-color:#39ff1480}@media(min-width:769px){.entity-panel.player .entity-avatar{width:104px;height:104px;font-size:4rem}.entity-panel.player .entity-avatar.has-sprite{width:150px;height:235px;border-width:3px;border-radius:10px}.entity-panel.player .entity-avatar.has-portrait:not(.has-sprite){width:110px;height:110px}.player-info-bar .player-name{font-size:.85rem}.player-info-bar .hp-bar-container.player-hp{width:150px}.player-block-inline{font-size:.7rem}.player-status-pip{font-size:.65rem}.entity-panel.enemy{width:164px;padding:.5rem .4rem .6rem;gap:.25rem;border-radius:12px}.intent-row{padding:.2rem 0}.intent-value{font-size:1.1rem}.entity-avatar{width:104px;height:104px;font-size:3.2rem}.entity-avatar-container:before{bottom:-12px;height:16px}.floating-text{font-size:2.5rem}.floating-text.damage.big{font-size:3.4rem}.floating-text.blocked{font-size:1.4rem}.floating-text.status{font-size:1.25rem}.hit-burst{width:100px;height:100px;margin:-50px 0 0 -50px}.entity-name{font-size:.9rem;margin-bottom:.2rem}.hp-bar-bg{height:16px;border-radius:8px}.hp-text{font-size:.65rem;line-height:10px}.entity-block{width:28px;height:28px;font-size:.7rem;top:-8px;right:5px;border-width:2px}.status-container{gap:.3rem}.status-icon{padding:2px 6px;font-size:.7rem}}.entity-panel.enemy{background:linear-gradient(160deg,#18283af5,#101527f5);box-shadow:0 12px 25px #03081285,inset 0 1px #ffffff18;border-radius:12px}.player-info-bar{background:#10182be8;padding:5px 9px;border-radius:6px;border:1px solid #86cfcf33}.entity-panel.player .entity-avatar.has-portrait:not(.has-sprite){border-color:#7bdfcf;border-radius:12px;box-shadow:0 0 0 4px #10182bb0,0 12px 24px #050a16b0}.player-portrait-img{object-position:50% 30%}.hand-container{position:relative;width:100%;height:var(--card-height);margin-bottom:20px;pointer-events:none;z-index:var(--z-hand);--hand-step: min(202px, calc((100vw - 240px - var(--card-width)) / var(--hand-gaps)))}.card-slot{position:absolute;left:calc(50% + var(--card-offset) * var(--hand-step) - var(--card-width) / 2);bottom:0;transition:left .28s cubic-bezier(.22,1,.36,1),bottom .28s cubic-bezier(.22,1,.36,1)}.card-slot:has(.card:focus-visible),.card-slot:has(.is-targeting),.card-slot:has(.is-drag-moving){z-index:300!important}.card-deal-motion{animation:cardDeal .36s cubic-bezier(.16,1,.3,1) backwards}@keyframes cardDeal{0%{opacity:0;transform:translate(-70px,24px) rotate(-9deg) scale(.88)}to{opacity:1;transform:translate(0) rotate(0) scale(1)}}.card{--card-ink: var(--color-border);box-sizing:border-box;width:var(--card-width);height:var(--card-height);border:2px solid var(--card-ink);border-radius:10px;padding:5px;display:flex;flex-direction:column;gap:3px;position:relative;color:var(--color-text-primary);background:linear-gradient(155deg,#30304a,#161625 65%);box-shadow:0 5px 12px #0008,inset 0 1px #ffffff26;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;cursor:pointer;transform-origin:50% 90%;transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .16s,box-shadow .18s}.card.type-attack{--card-ink: var(--color-accent-red)}.card.type-skill{--card-ink: var(--color-accent-blue)}.card.type-power{--card-ink: var(--color-accent-violet)}.card.hero-card{--card-ink: #ffd36a;background:linear-gradient(155deg,#49402c,#191727 70%)}.card.unplayable{filter:saturate(.55)}.card.unplayable .card-cost{background:#454252}.card-cost{position:absolute;z-index:2;top:-8px;left:-7px;width:24px;height:24px;display:grid;place-items:center;box-sizing:border-box;background:#33224c;color:#fff;border:2px solid var(--card-ink);border-radius:50%;font:bold 12px/1 var(--font-family-base);box-shadow:0 2px 4px #0009}.card-name{flex:0 0 auto;height:22px;padding-left:12px;padding-right:2px;display:flex;align-items:center;justify-content:center;font:14px/1.05 var(--font-family-display);text-align:center;overflow:hidden;overflow-wrap:anywhere}.card-artwork-wrap,.card-artwork-placeholder{position:relative;flex:0 0 auto;width:100%;aspect-ratio:4/3;border-radius:5px;overflow:hidden;background:#10101b}.card-artwork{display:block;width:100%;height:100%;object-fit:cover}.card-type-badge{position:absolute;bottom:3px;left:50%;transform:translate(-50%);color:#fff;background:#080810e8;border-radius:3px;padding:2px 5px;font-size:8px;line-height:1;text-transform:uppercase;letter-spacing:.4px}.card-desc{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:13px;line-height:1.3;overflow:hidden;overflow-wrap:anywhere;padding:2px}.card.hero-card .card-name{color:#ffe2a0}.card.is-targeting,.hand-container .card:focus-visible{transform:translateY(-22px) rotate(0) scale(1.06)!important;border-color:#fff;box-shadow:0 12px 24px #000b,0 0 0 2px var(--card-ink)}@media(hover:hover)and (pointer:fine){.card-slot:has(.card:hover){z-index:300!important}.card:hover{transform:translateY(-12px) rotate(0) scale(1.035)!important;box-shadow:0 12px 24px #000b}.hand-container .card:hover{transform:translateY(-28px) rotate(0) scale(1.06)!important}}.card.is-drag-moving,.hand-container .card.is-drag-moving:hover{transform:translate(var(--drag-dx),var(--drag-dy)) scale(1.04)!important;transition:none;pointer-events:none;cursor:grabbing;box-shadow:0 18px 30px #000b}.card-playing-wrapper{position:absolute;bottom:0;left:calc(50% - var(--card-width) / 2);z-index:400;pointer-events:none;animation:cardPlay .8s cubic-bezier(.22,1,.36,1) forwards}.card-playing-wrapper .card{pointer-events:none;border-color:#fff}@keyframes cardPlay{0%{opacity:0;transform:translateY(-12px) scale(.96)}18%{opacity:1;transform:translateY(-42px) scale(1.04)}48%{opacity:1;transform:translateY(-52px) scale(1.02)}to{opacity:0;transform:translate(calc(50vw - 70px),-90px) rotate(14deg) scale(.45)}}@media(min-width:769px){.hand-container{--card-width: 190px;--card-height: 270px}}@media(max-width:768px){.card{border-radius:9px;padding:5px;gap:3px}.card-name{height:24px;font-size:15px}.card-cost{width:26px;height:26px;font-size:13px;top:-7px;left:-6px}.card-desc{font-size:12px;line-height:1.3}.card-type-badge{font-size:8px;padding:2px 4px}}@media(max-width:768px),(max-height:500px){.hand-container,.hand-container.hand-overflow{--card-width: 152px;--card-height: 220px;height:100%;margin:0;display:flex;align-items:center;gap:16px;overflow-x:auto;overflow-y:hidden;padding:12px 16px;box-sizing:border-box;pointer-events:auto;scroll-snap-type:x proximity;scroll-padding-inline:16px;overscroll-behavior-x:contain}.hand-container .card-slot{position:relative;left:auto;bottom:auto;flex-shrink:0;scroll-snap-align:start}.hand-container .card,.hand-container .card:hover,.hand-container .card:focus-visible{transform:none!important;touch-action:pan-x}.hand-container .card:focus-visible{outline:2px solid white;outline-offset:3px}}@media(max-width:768px)and (max-height:650px),(max-height:500px){.hand-container,.hand-container.hand-overflow{--card-width: 144px;--card-height: 180px}.hand-container .card-artwork-wrap,.hand-container .card-artwork-placeholder{height:56px;aspect-ratio:auto}.hand-container .card-name{height:24px;font-size:15px}.hand-container .card-desc{font-size:12px;line-height:1.3}}@media(prefers-reduced-motion:reduce){.card-deal-motion{animation:none}.card-slot,.card{transition:none}.card-playing-wrapper{animation:none;opacity:0}}.targeting-arrow-svg{position:fixed;top:0;left:0;width:100vw;height:100dvh;pointer-events:none;z-index:var(--z-targeting);overflow:visible}.targeting-path{stroke-dasharray:10,10;animation:dash .5s linear infinite}@keyframes dash{to{stroke-dashoffset:-20}}.combat-result-backdrop{position:fixed;inset:0;z-index:300;display:flex;justify-content:center;align-items:safe center;box-sizing:border-box;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;background:#030813dc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:resultFade .18s ease-out}.combat-result-card{box-sizing:border-box;width:min(100%,680px);min-width:0;flex-shrink:0;padding:clamp(16px,4vw,32px);border:1px solid #73cdbb80;border-radius:18px;background:linear-gradient(150deg,#142c33,#101523 70%);color:#f1eee9;box-shadow:0 24px 80px #0008;text-align:center;display:flex;flex-direction:column;gap:24px;animation:resultFade .24s ease-out}.combat-result-card.defeat{border-color:var(--color-accent-red)}.combat-result-header{display:grid;grid-template-columns:36px 1fr;gap:4px 12px;text-align:left;align-items:center}.combat-result-icon{width:32px;height:32px;grid-row:span 2}.combat-result-icon.victory,.combat-result-title.victory{color:#8ee4c7}.combat-result-icon.defeat,.combat-result-title.defeat{color:var(--color-accent-red)}.combat-result-title{font:32px/1.1 var(--font-family-display);letter-spacing:2px;margin:0}.combat-result-stats{margin:0;color:#c3c9d1;font-size:13px}.combat-result-gold{color:#ffd18c}.reward-section{min-width:0}.reward-heading{font:24px/1.2 var(--font-family-display);color:#ffd18c;margin:0 0 8px;letter-spacing:1px}.reward-heading.prime{color:#d6afff}.reward-hint{margin:0 auto 20px;max-width:42ch;font-size:12px;line-height:1.6;color:#c3c9d1}.reward-card-row{display:flex;justify-content:center;flex-wrap:wrap;gap:20px 16px;padding:8px 4px;--card-width: 164px;--card-height: 230px}.reward-card-slot{flex:0 0 var(--card-width)}.reward-card-slot .card{touch-action:pan-y}.combat-result-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;border-top:1px solid #ffffff1f;padding-top:20px}.combat-result-btn{min-height:44px;padding:12px 18px;border-radius:8px;font:16px/1.2 var(--font-family-display);cursor:pointer}.combat-result-btn.primary{border:0;background:#8ee4c7;color:#101523}.combat-result-btn.primary.defeat{background:var(--color-accent-red);color:#fff}.combat-result-btn.secondary{background:#ffffff08;color:#e0e5ec;border:1px solid #a3b1c080}.combat-result-btn:hover{filter:brightness(1.15)}.combat-result-btn:focus-visible{outline:2px solid white;outline-offset:4px}@media(max-width:600px){.reward-card-row{--card-width: 144px;--card-height: 216px;gap:20px 14px}.reward-card-row .card-name{font-size:15px}.reward-card-row .card-desc{font-size:12px}.combat-result-card{gap:20px}}@media(max-width:360px){.combat-result-backdrop{padding-left:10px;padding-right:10px}.combat-result-card{padding:16px 12px}.reward-card-row{--card-width: 144px;--card-height: 216px;gap:18px 14px;padding-inline:0}}@media(max-height:500px)and (min-width:601px){.combat-result-card{padding:16px 24px;gap:16px}.reward-card-row{--card-width: 144px;--card-height: 216px}}@keyframes resultFade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.combat-result-backdrop,.combat-result-card{animation:none}}.combat-stage{display:grid;grid-template-rows:var(--topbar-height) 1fr var(--hand-height);grid-template-areas:"topbar" "battlefield" "hand";width:100vw;height:100vh;background:radial-gradient(circle at center 60%,#1a1a2e,#0d0d1a 70%);overflow:hidden;position:relative}.combat-stage.shake-light{animation:stageShakeLight .4s cubic-bezier(.36,.07,.19,.97)}.combat-stage.shake-heavy{animation:stageShakeHeavy .5s cubic-bezier(.36,.07,.19,.97)}@keyframes stageShakeLight{0%,to{transform:translate(0)}20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,-1px)}80%{transform:translate(2px,1px)}}@keyframes stageShakeHeavy{0%,to{transform:translate(0)}15%{transform:translate(-10px,4px) rotate(-.4deg)}30%{transform:translate(9px,-3px) rotate(.3deg)}45%{transform:translate(-7px,3px)}60%{transform:translate(6px,-2px)}75%{transform:translate(-4px,2px)}90%{transform:translate(2px,-1px)}}@media(prefers-reduced-motion:reduce){.combat-stage.shake-light,.combat-stage.shake-heavy{animation:none}}.combat-particles{position:absolute;inset:0;background-image:radial-gradient(1px 1px at 10% 20%,rgba(0,212,255,.06),transparent),radial-gradient(1px 1px at 30% 60%,rgba(255,110,199,.04),transparent),radial-gradient(1px 1px at 50% 40%,rgba(0,212,255,.06),transparent),radial-gradient(1px 1px at 70% 80%,rgba(255,110,199,.04),transparent),radial-gradient(1px 1px at 90% 10%,rgba(185,103,255,.05),transparent);background-size:200% 200%;animation:particleFloat 25s linear infinite;pointer-events:none;z-index:0}@keyframes particleFloat{0%{background-position:0% 0%}to{background-position:200% 200%}}.entities-container{grid-area:battlefield;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;padding:.5rem 4vw;overflow:hidden;z-index:1}.player-presence{display:flex;justify-content:center;flex-shrink:0}.enemy-zone{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:center;align-items:flex-start;padding:.5rem;border-radius:12px;background:#ff386008}.turn-phase-banner{position:absolute;top:calc(var(--topbar-height) + 4px);left:50%;transform:translate(-50%);padding:.25rem 1.5rem;border-radius:20px;font-family:var(--font-family-display);font-weight:700;font-size:.75rem;letter-spacing:2px;text-transform:uppercase;z-index:var(--z-controls);animation:phaseBannerIn .3s ease-out}.turn-phase-banner.enemy-turn{background:#ff386033;border:1px solid rgba(255,56,96,.4);color:var(--color-accent-red);box-shadow:0 0 12px #ff386033}.turn-phase-banner.player-turn{background:#39ff141f;border:1px solid rgba(57,255,20,.4);color:var(--color-accent-green);box-shadow:0 0 12px #39ff1433;animation:phaseBannerIn .25s ease-out,phaseBannerOut .3s ease-in .75s forwards}@keyframes phaseBannerIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes phaseBannerOut{to{opacity:0;transform:translate(-50%) translateY(-10px)}}.table-controls{position:absolute;bottom:calc(var(--hand-height) - 30px);left:0;right:0;display:flex;justify-content:space-between;align-items:flex-end;padding:0 1rem;pointer-events:none;z-index:var(--z-controls)}.controls-left,.controls-right{display:flex;align-items:center;gap:.5rem;pointer-events:auto}.energy-orb{width:44px;height:44px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff6ec7,#b967ff 50%,#7c3aed);border:2px solid #ffb3e6;display:flex;align-items:baseline;justify-content:center;font-size:1.1rem;font-weight:900;font-family:var(--font-family-display);color:#fff;box-shadow:0 0 16px #b967ff66,0 4px 12px #0009,inset 0 -4px 8px #0000004d;text-shadow:0 0 8px rgba(255,255,255,.6),1px 1px 2px rgba(0,0,0,.8);position:relative;overflow:hidden;padding-top:10px;box-sizing:border-box;transition:filter .3s ease}.energy-orb .energy-max{font-size:.55rem;opacity:.8}.energy-orb.full{animation:orbPulse 2s ease-in-out infinite}@keyframes orbPulse{0%,to{box-shadow:0 0 16px #b967ff66,0 4px 12px #0009,inset 0 -4px 8px #0000004d;transform:scale(1)}50%{box-shadow:0 0 28px #b967ffcc,0 4px 12px #0009,inset 0 -4px 8px #0000004d;transform:scale(1.06)}}.energy-orb.empty{filter:grayscale(.7) brightness(.6)}.energy-orb:before{content:"";position:absolute;top:4px;left:8px;width:14px;height:8px;background:radial-gradient(ellipse,rgba(255,255,255,.5),transparent);border-radius:50%;pointer-events:none}.end-turn-button{pointer-events:auto;background:var(--color-bg-elevated);border:2px solid var(--color-border);color:var(--color-text-primary);padding:.5rem 1rem;font-size:.9rem;font-family:var(--font-family-display);font-weight:700;cursor:pointer;box-shadow:0 4px 12px #00000080;transition:all .2s;text-transform:uppercase;letter-spacing:2px}.end-turn-button:hover{background:#3d3d5c;border-color:#fff;transform:translateY(-2px);box-shadow:0 6px 16px #000000b3}.end-turn-button:active{transform:translateY(1px);box-shadow:0 2px 8px #00000080}.end-turn-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.deck-table{grid-area:hand;background:linear-gradient(to bottom,#1a1a2ef2,#0d0d1afa);border-top:3px solid #3d3d5c;box-shadow:0 -10px 30px #000c;display:flex;justify-content:center;align-items:flex-end;padding:0 1rem;pointer-events:none;z-index:var(--z-deck-table);transition:opacity .3s ease;box-sizing:border-box;overflow:visible}.deck-table.disabled{opacity:.5}.enemy-info-tooltip{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);background:#0a0a14f7;border:1px solid rgba(185,103,255,.5);border-radius:10px;padding:12px 16px;z-index:200;min-width:200px;max-width:280px;pointer-events:none;animation:tooltipFadeIn .2s ease-out;box-shadow:0 0 20px #b967ff4d,0 8px 32px #0009}@keyframes tooltipFadeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.enemy-info-name{margin:0 0 4px;font-size:.9rem;font-weight:700;font-family:var(--font-family-display);color:var(--color-text-highlight);text-align:center}.enemy-info-intent{margin:0 0 4px;font-size:.8rem;font-weight:700;color:var(--color-text-primary, #fff)}.enemy-info-line{margin:2px 0;font-size:.7rem;color:var(--color-text-secondary, rgba(255,255,255,.7))}@media(min-width:769px){.entities-container{flex-direction:row;padding:0 2rem;gap:5rem;overflow:hidden}.enemy-zone{gap:1rem 1.75rem;padding:1.25rem 1.75rem;border-radius:16px}.turn-phase-banner{font-size:.9rem;padding:.3rem 2rem}.table-controls{bottom:calc(var(--hand-height) + 8px);padding:0 4rem}.energy-orb{width:60px;height:60px;font-size:1.6rem;border-width:3px;padding-top:12px}.energy-orb .energy-max{font-size:.75rem}.end-turn-button{padding:1rem 2rem;font-size:1.25rem}.deck-table{padding:0 4rem 1rem}}@media(max-width:768px){.combat-stage{--hand-height: 248px;height:100dvh}}@media(max-width:768px){.table-controls{bottom:calc(var(--hand-height) + 8px)}}@media(max-width:768px)and (max-height:650px){.combat-stage{--hand-height: 208px}}.combat-stage{grid-template-columns:minmax(0,1fr)}.deck-table,.entities-container{min-width:0}.arena-location{position:absolute;top:calc(var(--topbar-height) + 22px);left:32px;z-index:1;pointer-events:none;display:flex;flex-direction:column;gap:4px}.arena-location span{color:#83d9d0;font:10px/1.4 var(--font-family-base);letter-spacing:3px}.arena-location strong{font:42px/1 var(--font-family-display);letter-spacing:2px;color:#ffe4c6;text-shadow:0 3px 14px #07101c}.entities-container{padding-top:42px}.enemy-zone{background:transparent}.deck-table{background:linear-gradient(180deg,#0c1825e8,#080d1bf7);border-top:1px solid #71d6cf60;box-shadow:0 -1px #ff9e7040,0 -18px 50px #05081470}.deck-table:before{content:"";position:absolute;bottom:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,#f6a17b,#ed6797 30%,#71d6cf 75%,#315d72);pointer-events:none}.hand-caption{position:absolute;bottom:calc(var(--hand-height) + 12px);left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:3px;z-index:2;pointer-events:none;white-space:nowrap}.hand-caption span:first-child{font:16px var(--font-family-display);letter-spacing:4px;color:#ffdbbd}.hand-caption span:last-child{font-size:10px;color:#a6b9c4}.energy-caption{color:#b3ded9;font:12px var(--font-family-display);letter-spacing:2px}.energy-orb{background:radial-gradient(circle at 35% 30%,#99ebdf,#217e88 55%,#13364a);border-color:#a8f5e4;box-shadow:0 0 18px #42b9a73d,inset 0 -4px 8px #07152190}.energy-orb.full{animation:none}.end-turn-button{color:#191b2c;background:#f9b997;border:1px solid #ffe0b8;border-radius:5px;box-shadow:0 4px #b96060,0 6px 16px #0008}.end-turn-button:hover{background:#ffdbc0;color:#191b2c;border-color:#fff1dc}.end-turn-button:disabled{background:#3a4554;border-color:#61707c;color:#d7dfdf;box-shadow:none}.turn-phase-banner{border-radius:4px}@media(max-width:768px){.arena-location{top:calc(var(--topbar-height) + 12px);left:16px}.arena-location span{font-size:8px;letter-spacing:2px}.arena-location strong{font-size:25px}.entities-container{padding-top:45px}.hand-caption{bottom:calc(var(--hand-height) + 13px)}.hand-caption span:first-child{font-size:12px;letter-spacing:2px}.hand-caption span:last-child,.energy-caption{display:none}}@media(max-width:768px)and (max-height:650px){.arena-location{display:none}.entities-container{padding-top:6px}}@media(min-width:769px){.hand-caption{bottom:calc(var(--hand-height) + 34px)}.hand-caption span:last-child{display:none}}@media(max-width:600px){.turn-phase-banner{left:auto;right:12px;transform:none;padding:.25rem .5rem;letter-spacing:1px}}.hand-scroll-hint{display:none;font:inherit}@media(max-width:768px){.hand-scroll-hint{display:inline}}.city-backdrop{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0;background:#10152c}.city-backdrop-art{position:absolute;inset:0;background:url(/assets/environments/ocean-drive.webp) center 40% / cover no-repeat}.city-backdrop-shade{position:absolute;inset:0;background:linear-gradient(180deg,#07111b30,#10102a18 30%,#080e2066 65%,#080d1bec),radial-gradient(ellipse at center,#0a10203d 15%,transparent 65%)}.city-backdrop-light{position:absolute;inset:0;background:radial-gradient(ellipse at 8% 60%,#ff755630,transparent 45%),radial-gradient(ellipse at 90% 25%,#31dbc028,transparent 45%);animation:coastalLight 12s ease-in-out infinite alternate}@keyframes coastalLight{0%{opacity:.4}to{opacity:.9}}@media(prefers-reduced-motion:reduce){.city-backdrop-light{animation:none;opacity:.65}}@media(max-width:768px){.city-backdrop-art{background-position:22% center}}@keyframes mapDrift1{0%{transform:translate(0) rotate(0) scale(.8);opacity:.25}25%{transform:translate(12px,-18px) rotate(90deg) scale(1.1);opacity:.6}50%{transform:translate(-8px,-30px) rotate(180deg) scale(.85);opacity:.35}75%{transform:translate(-14px,-10px) rotate(270deg) scale(1.15);opacity:.7}to{transform:translate(0) rotate(360deg) scale(.8);opacity:.25}}@keyframes mapDrift2{0%{transform:translate(0) rotate(0) scale(1);opacity:.3}25%{transform:translate(-16px,-8px) rotate(-90deg) scale(.75);opacity:.65}50%{transform:translate(8px,-25px) rotate(-180deg) scale(1.1);opacity:.3}75%{transform:translate(15px,-5px) rotate(-270deg) scale(.9);opacity:.6}to{transform:translate(0) rotate(-360deg) scale(1);opacity:.3}}@keyframes mapDrift3{0%{transform:translate(0) rotate(0) scale(.9);opacity:.4}33%{transform:translate(10px,-22px) rotate(120deg) scale(1.15);opacity:.25}66%{transform:translate(-12px,-8px) rotate(240deg) scale(.7);opacity:.7}to{transform:translate(0) rotate(360deg) scale(.9);opacity:.4}}@keyframes mapParticleDrift{0%{background-position:0% 0%}to{background-position:200% 200%}}@keyframes hintPulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes nodePulse{0%{box-shadow:0 0 #ff6ec766}70%{box-shadow:0 0 0 10px #ff6ec700}to{box-shadow:0 0 #ff6ec700}}.map-view-container{position:absolute;inset:0;background:radial-gradient(ellipse at 30% 20%,rgba(185,103,255,.05) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(255,56,96,.04) 0%,transparent 50%),#0d0d1a;overflow:hidden;display:flex;flex-direction:column;align-items:center;padding:calc(var(--topbar-height) + .75rem) 1rem 1rem}.map-view-container>.topbar-container{position:absolute;top:0;left:0;right:0;height:var(--topbar-height)}.map-view-container:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 2px,rgba(0,0,0,.06) 2px,rgba(0,0,0,.06) 4px);pointer-events:none;opacity:.4;z-index:0}.map-view-container:after{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 20% 30%,rgba(185,103,255,.3),transparent),radial-gradient(1px 1px at 50% 70%,rgba(255,110,199,.25),transparent),radial-gradient(1px 1px at 80% 20%,rgba(0,212,255,.25),transparent);background-size:200% 200%;animation:mapParticleDrift 25s linear infinite;pointer-events:none;z-index:0}.map-sparkle{position:absolute;z-index:2;pointer-events:none}.map-sparkle img{width:26px;height:26px;object-fit:contain}.map-sparkle-1{top:12%;left:8%;animation:mapDrift1 9s ease-in-out infinite}.map-sparkle-1 img{filter:drop-shadow(0 0 8px rgba(255,110,199,.5))}.map-sparkle-2{top:40%;right:6%;animation:mapDrift2 11s ease-in-out infinite}.map-sparkle-2 img{filter:drop-shadow(0 0 8px rgba(0,212,255,.5))}.map-sparkle-3{bottom:15%;left:12%;animation:mapDrift3 8s ease-in-out infinite}.map-sparkle-3 img{filter:drop-shadow(0 0 8px rgba(185,103,255,.5))}.map-hint-icon{width:16px;height:16px;object-fit:contain}.map-hint{display:flex;align-items:center;gap:.4rem;padding:.35rem 1rem;background:#b967ff1f;border:1px solid rgba(185,103,255,.3);border-radius:20px;color:#b967ffe6;font-family:var(--font-family-display);font-size:.7rem;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:.75rem;animation:hintPulse 2s ease-in-out infinite;z-index:2;flex-shrink:0}.map-scroll-area{position:relative;width:100%;max-width:600px;flex:1;min-height:0;background:#0000004d;border-radius:8px;border:1px solid rgba(185,103,255,.15);box-shadow:0 0 20px #b967ff0f,inset 0 0 30px #0000004d;overflow:hidden;z-index:1}.map-connections{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.map-edge{stroke:#ffffff2e;stroke-width:2;stroke-dasharray:4 4}.map-edge.walkable{stroke:var(--color-text-highlight);stroke-width:3;stroke-dasharray:6 5;opacity:.9;filter:drop-shadow(0 0 4px rgba(255,110,199,.6));animation:edgeMarch .8s linear infinite}@keyframes edgeMarch{to{stroke-dashoffset:-11}}.map-floor{position:absolute;width:100%;height:0}.map-node{position:absolute;top:0;transform:translate(-50%,-50%);z-index:5;cursor:pointer;transition:transform .2s,filter .2s}.map-node:not(.available):not(.completed):not(.current){filter:brightness(.5);cursor:not-allowed}.map-node.completed{filter:grayscale(1);opacity:.5}.map-node.current{cursor:default}.map-node.current .node-circle{border-color:var(--color-text-highlight);box-shadow:0 0 14px #ff6ec78c,0 4px 6px #0009}.node-you-marker{position:absolute;bottom:-16px;left:50%;transform:translate(-50%);font-family:var(--font-family-display);font-size:.55rem;letter-spacing:1.5px;color:var(--color-text-highlight);background:#0d0d1ae6;border:1px solid rgba(255,110,199,.5);border-radius:8px;padding:1px 6px;white-space:nowrap;animation:hintPulse 2s ease-in-out infinite}.map-node.available .node-circle{animation:nodePulse 2s infinite;border-color:#ff6ec799}.map-node.available:hover{transform:translate(-50%,-50%) scale(1.2)}.node-circle{width:36px;height:36px;background:var(--color-bg-surface);border:2px solid var(--color-border);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 6px #0009}.map-node.type-boss .node-circle{width:52px;height:52px;border-color:#ff386099;box-shadow:0 0 18px #ff386059,0 4px 8px #0009}.map-node.type-boss:not(.available):not(.completed):not(.current){filter:brightness(.75)}.node-icon.combat{color:var(--color-text-secondary)}.node-icon.elite{color:#ff3860}.node-icon.rest{color:#39ff14}.node-icon.shop{color:#ffb347}.node-icon.boss{color:#ff3860}.node-icon.unknown{color:#b967ff;font-weight:700;font-size:1.2rem;font-family:var(--font-family-display)}.map-legend{display:flex;gap:1rem;justify-content:center;padding:.5rem 0;margin-top:.5rem;z-index:2;flex-shrink:0}.map-legend-item{display:flex;align-items:center;gap:.25rem;font-size:.6rem;color:var(--color-text-secondary);font-family:var(--font-family-display);text-transform:uppercase;letter-spacing:1px}.map-loading{display:flex;align-items:center;justify-content:center;height:100%;font-family:var(--font-family-display);font-size:1.2rem;color:var(--color-text-secondary)}@media(min-width:769px){.map-view-container{padding:calc(var(--topbar-height) + 1rem) 2rem 2rem}.node-circle{width:44px;height:44px}.map-node.type-boss .node-circle{width:64px;height:64px}.node-you-marker{font-size:.65rem;bottom:-20px}.node-icon.unknown{font-size:1.5rem}.map-hint{font-size:.8rem;padding:.4rem 1.25rem;margin-bottom:1rem}.map-legend{gap:1.5rem;padding:.75rem 0;margin-top:.75rem}.map-legend-item{font-size:.7rem}}.city-route-heading{position:relative;z-index:1;text-align:center;margin:4px 0 14px;flex-shrink:0}.city-route-heading>span{font-size:9px;letter-spacing:3px;color:#9ee6db}.city-route-heading h1{font:44px/1.1 var(--font-family-display);color:#ffe3bf;margin:5px 0;letter-spacing:2px}.city-route-heading p{color:#c0d1da;font-size:11px;margin:0}.map-scroll-area{background:#091421e8;border:1px solid #7ed8cc55;box-shadow:0 18px 65px #030a1c90;border-radius:14px}.map-view-container:before,.map-view-container:after{display:none}.map-edge{stroke:#b5d7dd66}.map-node:not(.available):not(.completed):not(.current){filter:brightness(.8)}.node-circle{background:#15283a}.map-legend{background:#091421e8;padding:8px 16px;border-radius:8px}.map-hint{background:#102636;color:#b0e9dd;border-color:#65aba866;animation:none}@media(max-width:768px){.city-route-heading h1{font-size:30px}.city-route-heading{margin-bottom:10px}}@media(max-height:650px){.city-route-heading p{display:none}.city-route-heading h1{font-size:24px;margin:2px 0}.city-route-heading{margin:0 0 5px}}@keyframes restFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes restFlicker{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}@keyframes restGlowPulse{0%,to{box-shadow:0 0 60px #ffa03c40,0 0 120px #ff641e1a}50%{box-shadow:0 0 80px #ffa03c66,0 0 160px #ff641e33}}@keyframes restResultPop{0%{opacity:0;transform:scale(.8)}60%{transform:scale(1.05)}to{opacity:1;transform:scale(1)}}.rest-container{height:100%;width:100%;display:flex;flex-direction:column;background:radial-gradient(ellipse at 50% 30%,rgba(255,140,50,.08) 0%,transparent 60%),var(--color-bg-base);overflow-y:auto;overflow-x:hidden}.rest-content{flex:1;display:flex;flex-direction:column;align-items:center;padding:1rem 1rem 2rem;animation:restFadeIn .6s ease both}.rest-campfire{position:relative;width:100px;height:100px;display:flex;align-items:center;justify-content:center;margin-bottom:.75rem;margin-top:.5rem}.rest-campfire-glow{position:absolute;inset:-20px;border-radius:50%;background:radial-gradient(circle,rgba(255,160,60,.3) 0%,rgba(255,100,30,.1) 50%,transparent 70%);animation:restGlowPulse 3s ease-in-out infinite}.rest-flame-icon{color:var(--color-accent-amber);filter:drop-shadow(0 0 12px rgba(255,160,60,.6));animation:restFlicker 2s ease-in-out infinite;z-index:1}.rest-deco-icon{position:absolute;width:20px;height:20px;opacity:.3;filter:grayscale(.5)}.rest-deco-left{bottom:0;left:0;transform:rotate(-12deg)}.rest-deco-right{bottom:0;right:0;transform:rotate(12deg)}.rest-title{font-family:var(--font-family-display);font-size:1.8rem;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:3px;margin:0 0 .25rem;text-shadow:0 0 20px rgba(255,160,60,.3);text-align:center}.rest-subtitle{font-size:.8rem;color:var(--color-text-secondary);margin:0 0 1rem;font-style:italic;text-align:center}.rest-hp-display{display:flex;align-items:center;gap:.4rem;font-family:var(--font-family-display);font-size:1rem;color:var(--color-accent-red);margin-bottom:1.25rem;letter-spacing:1px}.rest-hp-icon{color:var(--color-accent-red);fill:var(--color-accent-red)}.rest-choices{display:flex;flex-direction:column;gap:.75rem;width:100%;max-width:320px;animation:restFadeIn .6s ease .2s both}.rest-choice{display:flex;align-items:center;gap:.75rem;padding:1rem;background:var(--color-bg-surface);border:2px solid var(--color-border);border-radius:10px;cursor:pointer;transition:all .25s ease;text-align:left;color:var(--color-text-primary);font-family:var(--font-family-base)}.rest-choice:active{transform:scale(.97)}.rest-choice-heal{border-color:#ff386066}.rest-choice-heal:hover{border-color:var(--color-accent-red);background:#ff386014;box-shadow:0 0 20px #ff386026}.rest-choice-smith{border-color:#ffb34766}.rest-choice-smith:hover{border-color:var(--color-accent-amber);background:#ffb34714;box-shadow:0 0 20px #ffb34726}.rest-choice-icon-wrap{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.rest-choice-heal .rest-choice-icon-wrap{background:#ff386026;color:var(--color-accent-red)}.rest-choice-smith .rest-choice-icon-wrap{background:#ffb34726;color:var(--color-accent-amber)}.rest-choice-text{display:flex;flex-direction:column;gap:.15rem}.rest-choice-label{font-family:var(--font-family-display);font-size:1.1rem;text-transform:uppercase;letter-spacing:1px}.rest-choice-desc{font-size:.75rem;color:var(--color-text-secondary);line-height:1.3}.rest-smith-panel{width:100%;max-width:360px;animation:restFadeIn .4s ease both}.rest-smith-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.rest-back-btn{display:flex;align-items:center;gap:.25rem;background:none;border:1px solid var(--color-border);color:var(--color-text-secondary);font-family:var(--font-family-base);font-size:.75rem;padding:.3rem .6rem;border-radius:6px;cursor:pointer;transition:all .2s;flex-shrink:0}.rest-back-btn:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.rest-smith-title{font-family:var(--font-family-display);font-size:.9rem;color:var(--color-accent-amber);text-transform:uppercase;letter-spacing:1px}.rest-no-cards{font-size:.85rem;color:var(--color-text-secondary);text-align:center;margin:2rem 0;font-style:italic}.rest-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-height:50vh;overflow-y:auto;padding:2px;scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}.rest-card-grid::-webkit-scrollbar{width:4px}.rest-card-grid::-webkit-scrollbar-track{background:transparent}.rest-card-grid::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}.rest-card-option{display:flex;flex-direction:column;padding:.25rem;background:var(--color-bg-surface);border:2px solid var(--color-border);border-radius:6px;cursor:pointer;transition:all .2s;color:var(--color-text-primary);font-family:var(--font-family-base);position:relative;text-align:center}.rest-card-option:active{transform:scale(.95)}.rest-card-option:hover{border-color:var(--color-accent-amber);box-shadow:0 0 16px #ffb34733;transform:translateY(-2px)}.rest-card-option.type-attack{border-color:#ff386080}.rest-card-option.type-attack:hover{border-color:var(--color-accent-red);box-shadow:0 0 16px #ff38604d}.rest-card-option.type-skill{border-color:#00d4ff80}.rest-card-option.type-skill:hover{border-color:var(--color-accent-blue);box-shadow:0 0 16px #00d4ff4d}.rest-card-option.type-power{border-color:#b967ff80}.rest-card-option.type-power:hover{border-color:var(--color-accent-violet);box-shadow:0 0 16px #b967ff4d}.rest-card-option.hero{border-color:#ffd70080;background:linear-gradient(180deg,var(--color-bg-surface) 0%,rgba(255,215,0,.06) 100%)}.rest-card-option.hero:hover{border-color:gold;box-shadow:0 0 16px #ffd7004d}.rest-card-cost{position:absolute;top:-4px;left:-4px;width:16px;height:16px;background:var(--color-accent-violet);border:1px solid #ffb3e6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.55rem;box-shadow:0 2px 4px #00000080;z-index:1}.rest-card-option.hero .rest-card-cost{background:linear-gradient(135deg,gold,#fa0);border-color:#fff8dc;color:#1a1a2e}.rest-card-name{font-family:var(--font-family-display);font-size:.55rem;text-transform:uppercase;margin-bottom:.1rem}.rest-card-option.hero .rest-card-name{color:gold}.rest-card-art-wrap{width:calc(100% + .5rem);margin-left:-.25rem;margin-right:-.25rem;aspect-ratio:4/3;border-radius:3px;overflow:hidden;background:var(--color-bg-base)}.rest-card-art{width:106%;height:106%;margin:-3% 0 0 -3%;object-fit:cover}.rest-card-desc{font-size:.45rem;line-height:1.15;color:var(--color-text-secondary);margin-top:.1rem;flex-grow:1}.rest-card-upgrade-hint{display:flex;align-items:center;justify-content:center;gap:.2rem;font-size:.45rem;color:var(--color-accent-amber);margin-top:.2rem;opacity:0;transition:opacity .2s}.rest-card-option:hover .rest-card-upgrade-hint{opacity:1}.rest-result{display:flex;flex-direction:column;align-items:center;gap:1rem;animation:restResultPop .5s ease both;margin-top:1rem}.rest-result-icon{width:56px;height:56px;border-radius:50%;background:#39ff141f;border:2px solid var(--color-accent-green);display:flex;align-items:center;justify-content:center;color:var(--color-accent-green)}.rest-result-text{font-family:var(--font-family-display);font-size:1.1rem;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:1px;text-align:center;margin:0;max-width:280px}.rest-continue-btn{padding:.75rem 2rem;font-family:var(--font-family-display);font-size:1rem;text-transform:uppercase;letter-spacing:2px;background:var(--color-bg-elevated);border:2px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;cursor:pointer;transition:all .25s ease}.rest-continue-btn:hover{border-color:var(--color-accent-amber);box-shadow:0 0 16px #ffb34733;transform:translateY(-2px)}.rest-continue-btn:active{transform:scale(.97)}@media(min-width:769px){.rest-content{padding:2rem 2rem 3rem}.rest-campfire{width:140px;height:140px;margin-bottom:1rem}.rest-flame-icon{width:64px;height:64px}.rest-deco-icon{width:28px;height:28px}.rest-title{font-size:2.5rem;letter-spacing:5px}.rest-subtitle{font-size:1rem;margin-bottom:1.5rem}.rest-hp-display{font-size:1.2rem;margin-bottom:1.5rem}.rest-choices{flex-direction:row;max-width:560px}.rest-choice{flex:1;flex-direction:column;text-align:center;padding:1.5rem 1rem}.rest-choice-icon-wrap{width:56px;height:56px}.rest-choice-text{align-items:center}.rest-choice-label{font-size:1.3rem}.rest-choice-desc{font-size:.85rem;text-align:center}.rest-smith-panel{max-width:600px}.rest-card-grid{grid-template-columns:repeat(4,1fr);gap:12px;max-height:55vh}.rest-card-name{font-size:.7rem}.rest-card-desc{font-size:.55rem}.rest-card-cost{width:20px;height:20px;font-size:.65rem}.rest-card-upgrade-hint{font-size:.55rem}.rest-result-text{font-size:1.4rem;max-width:400px}.rest-continue-btn{padding:1rem 3rem;font-size:1.2rem}}.shop-container{position:fixed;inset:0;background:var(--color-bg-base);display:flex;flex-direction:column;overflow-y:auto;overflow-x:hidden;z-index:100;font-family:var(--font-family-base)}.shop-header{position:relative;text-align:center;padding:1.5rem 1rem 1rem;background:radial-gradient(ellipse at 50% 120%,rgba(255,56,96,.15) 0%,transparent 60%),var(--color-bg-base);border-bottom:2px solid rgba(255,56,96,.3)}.shop-neon-sign{font-family:var(--font-family-display);font-size:1.8rem;text-transform:uppercase;letter-spacing:4px;color:#ff6ec7;text-shadow:0 0 10px rgba(255,110,199,.6),0 0 30px rgba(255,110,199,.3),0 0 60px rgba(255,110,199,.15);margin:0 0 .25rem;animation:shopNeonFlicker 4s ease-in-out infinite}@keyframes shopNeonFlicker{0%,to{text-shadow:0 0 10px rgba(255,110,199,.6),0 0 30px rgba(255,110,199,.3),0 0 60px rgba(255,110,199,.15)}50%{text-shadow:0 0 15px rgba(255,110,199,.8),0 0 40px rgba(255,110,199,.5),0 0 80px rgba(255,110,199,.25)}93%{text-shadow:0 0 10px rgba(255,110,199,.6),0 0 30px rgba(255,110,199,.3)}94%{text-shadow:0 0 2px rgba(255,110,199,.2)}95%{text-shadow:0 0 10px rgba(255,110,199,.6),0 0 30px rgba(255,110,199,.3)}}.shop-tagline{font-size:.75rem;color:var(--color-text-secondary);font-style:italic;letter-spacing:1px;margin:0}.shop-gold-display{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:.75rem;font-family:var(--font-family-display);font-size:1.1rem;color:#ffb347;text-shadow:0 0 8px rgba(255,179,71,.4)}.shop-gold-icon{color:#ffb347}.shop-section{padding:1rem 1rem .5rem}.shop-section-title{font-family:var(--font-family-display);font-size:.85rem;text-transform:uppercase;letter-spacing:2px;color:var(--color-text-secondary);margin:0 0 .75rem;display:flex;align-items:center;gap:.5rem}.shop-section-title:after{content:"";flex:1;height:1px;background:linear-gradient(to right,var(--color-border),transparent)}.shop-cards-row{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}.shop-card-slot{display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;transition:transform .2s ease}.shop-card-slot:hover:not(.shop-card-slot--sold):not(.shop-card-slot--broke){transform:translateY(-4px)}.shop-card-slot--broke{cursor:not-allowed}.shop-card-slot--sold{cursor:default;opacity:0;pointer-events:none;transition:opacity .3s ease}.shop-card-preview{width:var(--card-width);height:var(--card-height);background:var(--color-bg-surface);border:2px solid var(--color-border);border-radius:6px;padding:.25rem;display:flex;flex-direction:column;box-shadow:0 4px 12px #000c;position:relative;transition:box-shadow .2s ease,border-color .2s ease}.shop-card-preview.type-attack{border-color:var(--color-accent-red);box-shadow:0 4px 12px #000c,0 0 8px #ff386033}.shop-card-preview.type-skill{border-color:var(--color-accent-blue);box-shadow:0 4px 12px #000c,0 0 8px #00d4ff33}.shop-card-preview.type-power{border-color:var(--color-accent-violet);box-shadow:0 4px 12px #000c,0 0 8px #b967ff33}.shop-card-slot:hover:not(.shop-card-slot--broke) .shop-card-preview{box-shadow:0 8px 24px #000000e6,0 0 20px #ff6ec74d;border-color:#ff6ec7}.shop-card-preview--broke{filter:grayscale(80%) brightness(.5);opacity:.6}.shop-card-cost{position:absolute;top:-3px;left:-3px;width:15px;height:15px;background:var(--color-accent-violet);border:1px solid #ffb3e6;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.55rem;box-shadow:0 2px 4px #00000080}.shop-card-name{font-family:var(--font-family-display);font-weight:700;font-size:.6rem;text-align:center;margin-bottom:.1rem;text-transform:uppercase}.shop-card-artwork-wrap{position:relative;width:calc(100% + .5rem);margin-left:-.25rem;margin-right:-.25rem;aspect-ratio:4/3;border-radius:3px;overflow:hidden;background-color:var(--color-bg-base)}.shop-card-artwork{width:106%;height:106%;margin:-3% 0 0 -3%;object-fit:cover}.shop-card-type-badge{position:absolute;bottom:3px;left:50%;transform:translate(-50%);font-size:.35rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.05rem .3rem;background:#000000b3;color:var(--color-text-secondary);border-radius:6px;border:1px solid rgba(255,255,255,.15);white-space:nowrap}.shop-card-desc{font-size:.5rem;line-height:1.15;text-align:center;flex-grow:1;display:flex;align-items:center;justify-content:center}.shop-price-tag{display:flex;align-items:center;gap:.25rem;font-family:var(--font-family-display);font-size:.85rem;font-weight:700;color:#ffb347;text-shadow:0 0 6px rgba(255,179,71,.3);padding:.15rem .5rem;background:#ffb34714;border:1px solid rgba(255,179,71,.25);border-radius:20px}.shop-price-tag--broke{color:#666;text-shadow:none;border-color:#ffffff1a;background:#ffffff08}.shop-price-icon{width:14px;height:14px}.shop-removal{padding:1rem}.shop-removal-offer{display:flex;align-items:center;justify-content:space-between;background:#ff38600f;border:1px solid rgba(255,56,96,.2);border-radius:8px;padding:.75rem 1rem;cursor:pointer;transition:all .2s ease}.shop-removal-offer:hover:not(.shop-removal-offer--broke){background:#ff38601f;border-color:#ff386066;transform:translateY(-2px);box-shadow:0 4px 16px #ff386026}.shop-removal-offer--broke{cursor:not-allowed;opacity:.5}.shop-removal-info{display:flex;flex-direction:column;gap:.15rem}.shop-removal-title{font-family:var(--font-family-display);font-size:.9rem;text-transform:uppercase;letter-spacing:1px;color:#ff3860;display:flex;align-items:center;gap:.4rem}.shop-removal-desc{font-size:.7rem;color:var(--color-text-secondary);font-style:italic}.shop-removal-overlay{position:fixed;inset:0;background:#000000d9;z-index:200;display:flex;flex-direction:column;padding:1rem;overflow-y:auto}.shop-removal-overlay-header{text-align:center;margin-bottom:1rem;flex-shrink:0}.shop-removal-overlay-title{font-family:var(--font-family-display);font-size:1.2rem;text-transform:uppercase;letter-spacing:2px;color:#ff3860;margin:0 0 .25rem}.shop-removal-overlay-sub{font-size:.75rem;color:var(--color-text-secondary);margin:0}.shop-removal-grid{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;padding-bottom:4rem}.shop-removal-card-slot{display:flex;flex-direction:column;align-items:center;gap:.3rem;cursor:pointer;transition:transform .2s ease}.shop-removal-card-slot:hover{transform:translateY(-4px)}.shop-removal-card-slot:hover .shop-card-preview{border-color:#ff3860;box-shadow:0 8px 24px #000000e6,0 0 20px #ff386066}.shop-removal-cancel{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);font-family:var(--font-family-display);font-size:.9rem;text-transform:uppercase;letter-spacing:1px;padding:.6rem 1.5rem;background:var(--color-bg-elevated);border:2px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;cursor:pointer;transition:all .2s ease;z-index:201}.shop-removal-cancel:hover{border-color:var(--color-text-secondary);transform:translate(-50%) translateY(-2px)}.shop-confirm-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:300}.shop-confirm-dialog{background:var(--color-bg-surface);border:2px solid var(--color-border);border-radius:12px;padding:1.5rem;text-align:center;max-width:280px;width:90%;box-shadow:0 8px 32px #000c}.shop-confirm-title{font-family:var(--font-family-display);font-size:1rem;text-transform:uppercase;letter-spacing:1px;margin:0 0 .5rem;color:var(--color-text-primary)}.shop-confirm-price{font-family:var(--font-family-display);font-size:1.2rem;color:#ffb347;margin:0 0 1rem;display:flex;align-items:center;justify-content:center;gap:.3rem}.shop-confirm-buttons{display:flex;gap:.75rem;justify-content:center}.shop-confirm-btn{font-family:var(--font-family-display);font-size:.85rem;text-transform:uppercase;letter-spacing:1px;padding:.5rem 1.25rem;border-radius:6px;cursor:pointer;transition:all .2s ease;border:2px solid}.shop-confirm-btn--buy{background:linear-gradient(135deg,#ff3860,#b967ff);border-color:#ff6ec7;color:#fff}.shop-confirm-btn--buy:hover{background:linear-gradient(135deg,#ff6ec7,#b967ff);transform:translateY(-2px);box-shadow:0 4px 16px #ff6ec766}.shop-confirm-btn--cancel{background:transparent;border-color:var(--color-border);color:var(--color-text-secondary)}.shop-confirm-btn--cancel:hover{border-color:var(--color-text-secondary);color:var(--color-text-primary)}.shop-toast{position:fixed;bottom:5rem;left:50%;transform:translate(-50%);font-family:var(--font-family-display);font-size:.8rem;text-transform:uppercase;letter-spacing:1px;padding:.5rem 1.25rem;background:#39ff1426;border:1px solid rgba(57,255,20,.4);color:#39ff14;border-radius:8px;animation:shopToastIn .3s ease,shopToastOut .3s ease 1.5s forwards;z-index:400;pointer-events:none}@keyframes shopToastIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes shopToastOut{0%{opacity:1}to{opacity:0}}.shop-footer{padding:.75rem 1rem 1.5rem;display:flex;justify-content:center;flex-shrink:0}.shop-leave-btn{font-family:var(--font-family-display);font-size:1rem;text-transform:uppercase;letter-spacing:2px;padding:.65rem 2rem;background:var(--color-bg-elevated);border:2px solid var(--color-border);color:var(--color-text-primary);border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.shop-leave-btn:hover{border-color:#00d4ff;color:#00d4ff;transform:translateY(-2px);box-shadow:0 4px 16px #00d4ff33}.shop-broke-hint{text-align:center;font-size:.7rem;color:#666;font-style:italic;padding:.25rem 0}.shop-scanlines{position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px);pointer-events:none;opacity:.3;z-index:101}@media(min-width:769px){.shop-header{padding:2rem 2rem 1.25rem}.shop-neon-sign{font-size:2.5rem;letter-spacing:6px}.shop-tagline{font-size:.9rem}.shop-gold-display{font-size:1.3rem}.shop-section{padding:1.5rem 2rem .75rem;max-width:700px;margin:0 auto}.shop-section-title{font-size:1rem}.shop-card-preview{padding:.5rem;border-width:3px;border-radius:10px}.shop-card-cost{width:22px;height:22px;font-size:.75rem;top:-6px;left:-6px;border-width:2px}.shop-card-name{font-size:.85rem;margin-bottom:.15rem}.shop-card-artwork-wrap{width:calc(100% + 1rem);margin-left:-.5rem;margin-right:-.5rem;border-radius:5px}.shop-card-type-badge{font-size:.5rem;padding:.1rem .4rem;bottom:5px;border-radius:8px}.shop-card-desc{font-size:.7rem;line-height:1.2}.shop-price-tag{font-size:1rem}.shop-removal{padding:1rem 2rem;max-width:700px;margin:0 auto}.shop-footer{padding:1rem 2rem 2rem}.shop-leave-btn{font-size:1.1rem;padding:.75rem 2.5rem}}.shop-card-slot--broke{cursor:pointer}.shop-card-slot:focus-visible,.shop-removal-offer:focus-visible,.shop-removal-card-slot:focus-visible{outline:3px solid #72dccc;outline-offset:5px}.shop-card-name{font-size:15px;min-height:24px;padding-inline:12px}.shop-card-desc{font-size:12px;line-height:1.3}.shop-card-cost{width:26px;height:26px;font-size:13px;top:-7px;left:-6px}.shop-card-type-badge{font-size:8px}@media(min-width:769px){.shop-card-desc{font-size:13px}}@keyframes mysteryFadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes mysteryGlow{0%,to{box-shadow:0 0 12px #b967ff40,inset 0 0 12px #b967ff0d;border-color:#b967ff59}50%{box-shadow:0 0 24px #b967ff73,inset 0 0 20px #b967ff14;border-color:#b967ff8c}}@keyframes mysteryPulse{0%,to{opacity:.06}50%{opacity:.12}}@keyframes mysteryTitleFlicker{0%,90%,to{opacity:1}92%{opacity:.7}94%{opacity:1}96%{opacity:.85}}.mystery-container{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,rgba(185,103,255,.08) 0%,transparent 60%),radial-gradient(ellipse at 20% 80%,rgba(255,56,96,.04) 0%,transparent 50%),var(--color-bg-base);padding:1rem;box-sizing:border-box;overflow-y:auto;z-index:100}.mystery-container:before{content:"";position:fixed;inset:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 3px,rgba(0,0,0,.08) 3px,rgba(0,0,0,.08) 6px);pointer-events:none;opacity:.5;z-index:1}.mystery-container:after{content:"";position:fixed;top:10%;left:50%;transform:translate(-50%);width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(185,103,255,.12) 0%,transparent 70%);pointer-events:none;animation:mysteryPulse 4s ease-in-out infinite}.mystery-content{position:relative;z-index:2;max-width:420px;width:100%;display:flex;flex-direction:column;align-items:center;gap:1.25rem;animation:mysteryFadeIn .6s ease both}.mystery-title{font-family:var(--font-family-display);font-size:2rem;color:var(--color-accent-violet);text-transform:uppercase;letter-spacing:3px;text-align:center;margin:0;text-shadow:0 0 20px rgba(185,103,255,.5),0 0 40px rgba(185,103,255,.2);animation:mysteryTitleFlicker 4s ease-in-out infinite}.mystery-description{font-family:var(--font-family-base);font-size:.85rem;line-height:1.6;color:var(--color-text-secondary);text-align:center;margin:0;padding:1rem 1.25rem;background:#1a1a2eb3;border:1px solid rgba(185,103,255,.15);border-radius:8px;animation:mysteryGlow 5s ease-in-out infinite}.mystery-choices{display:flex;flex-direction:column;gap:.75rem;width:100%}.mystery-choice{display:flex;flex-direction:column;gap:.25rem;padding:.85rem 1rem;background:var(--color-bg-surface);border:2px solid var(--color-border);border-radius:8px;cursor:pointer;transition:all .25s ease;text-align:left;animation:mysteryFadeIn .5s ease both}.mystery-choice:nth-child(1){animation-delay:.15s}.mystery-choice:nth-child(2){animation-delay:.3s}.mystery-choice:nth-child(3){animation-delay:.45s}.mystery-choice:hover{border-color:var(--color-accent-violet);background:var(--color-bg-elevated);box-shadow:0 0 16px #b967ff40,inset 0 0 8px #b967ff0d;transform:translate(4px)}.mystery-choice:active{transform:translate(2px) scale(.98)}.mystery-choice-label{font-family:var(--font-family-display);font-size:1.15rem;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:1px;display:flex;align-items:center;gap:.5rem}.mystery-choice-label svg{color:var(--color-accent-violet);flex-shrink:0}.mystery-choice-desc{font-family:var(--font-family-base);font-size:.75rem;color:var(--color-text-secondary);padding-left:1.5rem}.mystery-outcome{display:flex;flex-direction:column;align-items:center;gap:1.25rem;width:100%;animation:mysteryFadeIn .5s ease both}.mystery-outcome-text{font-family:var(--font-family-base);font-size:.9rem;line-height:1.6;color:var(--color-text-primary);text-align:center;padding:1rem 1.25rem;background:#1a1a2eb3;border:1px solid rgba(57,255,20,.2);border-radius:8px;box-shadow:0 0 12px #39ff141a;width:100%;box-sizing:border-box}.mystery-continue-btn{font-family:var(--font-family-display);font-size:1.1rem;text-transform:uppercase;letter-spacing:2px;padding:.75rem 2rem;background:var(--color-bg-elevated);border:2px solid var(--color-accent-violet);border-radius:8px;color:var(--color-text-primary);cursor:pointer;transition:all .25s ease}.mystery-continue-btn:hover{background:#b967ff26;box-shadow:0 0 20px #b967ff4d;transform:translateY(-2px)}.mystery-continue-btn:active{transform:translateY(0) scale(.97)}.mystery-icon-decor{width:48px;height:48px;opacity:.5;filter:drop-shadow(0 0 8px rgba(185,103,255,.4));animation:mysteryFadeIn .4s ease both}@media(min-width:769px){.mystery-content{max-width:520px;gap:1.5rem}.mystery-title{font-size:2.8rem;letter-spacing:5px}.mystery-description{font-size:.95rem;padding:1.25rem 1.5rem}.mystery-choice{padding:1rem 1.25rem}.mystery-choice-label{font-size:1.25rem}.mystery-choice-desc{font-size:.8rem}.mystery-icon-decor{width:56px;height:56px}.mystery-container:after{width:500px;height:500px}}.mystery-container{justify-content:safe center}.mystery-container>*{flex-shrink:0}.game-over-container{display:flex;justify-content:center;align-items:center;height:100vh;width:100vw;background-color:var(--color-bg-base);background-image:radial-gradient(circle at center,rgba(255,56,96,.1) 0%,transparent 60%);color:var(--color-text-primary);padding:1rem}.game-over-content{display:flex;flex-direction:column;align-items:center;text-align:center;background:#1a0d14e6;padding:1.5rem;border-radius:8px;border:2px solid var(--color-accent-red);box-shadow:0 10px 30px #00000080,inset 0 0 20px #ff386026;animation:fade-in-up .5s ease-out forwards;max-width:100%}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.game-over-icon{color:var(--color-accent-red);margin-bottom:.75rem;filter:drop-shadow(0 0 10px rgba(255,56,96,.5))}.game-over-title{font-family:var(--font-family-display);font-size:2.5rem;color:var(--color-accent-red);margin:0;text-transform:uppercase;letter-spacing:2px;text-shadow:2px 2px 0px rgba(0,0,0,.8)}.game-over-stats{font-size:1.1rem;color:var(--color-text-secondary);margin:1rem 0 1.5rem}.game-over-stats strong{color:#fff}.game-over-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.restart-button,.retry-seed-button{font-family:var(--font-family-display);padding:.6rem 1rem;font-size:.9rem;cursor:pointer;border-radius:8px;transition:all .2s ease;text-transform:uppercase;font-weight:700}.restart-button{background-color:var(--color-accent-red);color:#fff;border:none}.restart-button:hover{filter:brightness(1.2);transform:scale(1.05)}.retry-seed-button{background-color:transparent;color:var(--color-text-secondary);border:1px solid var(--color-text-secondary)}.retry-seed-button:hover{color:#fff;border-color:#fff;background-color:#ffffff1a}@media(min-width:769px){.game-over-container{padding:2rem}.game-over-content{padding:3rem}.game-over-icon{margin-bottom:1rem}.game-over-title{font-size:4rem;letter-spacing:4px}.game-over-stats{font-size:1.5rem;margin:1.5rem 0 2.5rem}.game-over-actions{gap:1rem}.restart-button,.retry-seed-button{padding:.8rem 1.5rem;font-size:1.2rem}}.game-over-container{box-sizing:border-box;overflow-y:auto;justify-content:safe center;width:100%;height:100dvh}.game-over-container{align-items:safe center}.run-victory-container{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(57,255,20,.08) 0%,transparent 55%),radial-gradient(ellipse at 20% 80%,rgba(185,103,255,.06) 0%,transparent 50%),radial-gradient(ellipse at 80% 75%,rgba(255,179,71,.05) 0%,transparent 50%),#0d0d1a;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:50}.run-victory-scanlines{position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px);pointer-events:none;opacity:.5}.run-victory-glow{position:absolute;top:18%;left:50%;transform:translate(-50%);width:420px;height:420px;background:radial-gradient(circle,rgba(57,255,20,.12),transparent 65%);animation:rvGlowPulse 3s ease-in-out infinite;pointer-events:none}@keyframes rvGlowPulse{0%,to{opacity:.7;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.12)}}.rv-confetti{position:absolute;inset:0;pointer-events:none}.rv-shard{position:absolute;top:-30px;left:calc(4% + var(--i) * 6.8%);width:8px;height:16px;border-radius:2px;opacity:0;animation:rvShardFall 3.4s linear infinite;animation-delay:calc(var(--i) * .37s)}.rv-shard-0{background:#39ff14}.rv-shard-1{background:#ff6ec7;width:10px;height:10px;border-radius:50%}.rv-shard-2{background:#00d4ff}.rv-shard-3{background:#ffb347;width:12px;height:12px}.rv-shard-4{background:#b967ff}@keyframes rvShardFall{0%{transform:translateY(0) rotate(0);opacity:0}8%{opacity:.9}to{transform:translateY(110vh) rotate(560deg);opacity:.75}}.run-victory-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 1.25rem;z-index:1;animation:rvContentIn .6s cubic-bezier(.2,.8,.2,1) both}@keyframes rvContentIn{0%{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}.run-victory-crown{color:var(--color-accent-amber);filter:drop-shadow(0 0 14px rgba(255,179,71,.6));animation:rvCrownBob 2.4s ease-in-out infinite;margin-bottom:.5rem}@keyframes rvCrownBob{0%,to{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}.run-victory-portrait{width:96px;height:96px;border-radius:50%;overflow:hidden;border:3px solid var(--color-accent-green);box-shadow:0 0 24px #39ff1466,0 8px 24px #0009;margin-bottom:.75rem}.run-victory-portrait img{width:100%;height:100%;object-fit:cover}.run-victory-title{font-family:var(--font-family-display);font-size:3rem;line-height:1;margin:0 0 .5rem;text-transform:uppercase;letter-spacing:4px;color:var(--color-text-primary);text-shadow:0 4px 16px rgba(0,0,0,.8)}.run-victory-title .rv-cleared{color:var(--color-accent-green);text-shadow:0 0 20px rgba(57,255,20,.5),0 4px 16px rgba(0,0,0,.8)}.run-victory-sub{font-size:.85rem;color:var(--color-text-secondary);margin:0 0 1.75rem;max-width:340px}.run-victory-stats{display:flex;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap;justify-content:center}.rv-stat{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:#1a1a2ecc;border:1px solid var(--color-border);border-radius:10px;padding:.6rem 1rem;min-width:72px}.rv-stat-value{font-family:var(--font-family-display);font-size:1.5rem;color:var(--color-accent-green)}.rv-stat-value.amber{color:var(--color-accent-amber)}.rv-stat-value.violet{color:var(--color-accent-violet)}.rv-stat-value.red{color:var(--color-text-highlight)}.rv-stat-label{font-size:.6rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--color-text-secondary)}.run-victory-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.rv-btn{display:flex;align-items:center;gap:.5rem;font-family:var(--font-family-display);font-size:1rem;letter-spacing:1.5px;text-transform:uppercase;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;transition:transform .2s,filter .2s,box-shadow .2s}.rv-btn.primary{background:var(--color-accent-green);color:#0d0d1a;border:none;box-shadow:0 0 20px #39ff1459,0 6px 16px #00000080}.rv-btn.primary:hover{filter:brightness(1.15);transform:translateY(-2px)}.rv-btn.secondary{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.rv-btn.secondary:hover{color:var(--color-text-primary);border-color:var(--color-text-secondary);transform:translateY(-2px)}@media(min-width:769px){.run-victory-title{font-size:4.5rem;letter-spacing:6px}.run-victory-sub{font-size:1rem;max-width:460px}.run-victory-portrait{width:120px;height:120px}.rv-stat{padding:.75rem 1.4rem;min-width:92px}.rv-stat-value{font-size:2rem}.rv-stat-label{font-size:.7rem}}.run-victory-container{overflow-y:auto;align-items:safe center}@keyframes sparkleDrift1{0%{transform:translate(0) rotate(0) scale(.8);opacity:.3}25%{transform:translate(15px,-20px) rotate(90deg) scale(1.1);opacity:.7}50%{transform:translate(-5px,-35px) rotate(180deg) scale(.9);opacity:.5}75%{transform:translate(-18px,-15px) rotate(270deg) scale(1.2);opacity:.8}to{transform:translate(0) rotate(360deg) scale(.8);opacity:.3}}@keyframes sparkleDrift2{0%{transform:translate(0) rotate(0) scale(1);opacity:.4}25%{transform:translate(-20px,-10px) rotate(-90deg) scale(.7);opacity:.8}50%{transform:translate(10px,-30px) rotate(-180deg) scale(1.15);opacity:.35}75%{transform:translate(20px,-5px) rotate(-270deg) scale(.85);opacity:.7}to{transform:translate(0) rotate(-360deg) scale(1);opacity:.4}}@keyframes sparkleDrift3{0%{transform:translate(0) rotate(0) scale(.9);opacity:.5}33%{transform:translate(12px,-25px) rotate(120deg) scale(1.2);opacity:.3}66%{transform:translate(-15px,-10px) rotate(240deg) scale(.75);opacity:.8}to{transform:translate(0) rotate(360deg) scale(.9);opacity:.5}}@keyframes sparkleDrift4{0%{transform:translate(0) rotate(0) scale(1.1);opacity:.35}20%{transform:translate(-10px,-30px) rotate(72deg) scale(.8);opacity:.75}40%{transform:translate(18px,-20px) rotate(144deg) scale(1.15);opacity:.4}60%{transform:translate(5px,-40px) rotate(216deg) scale(.7);opacity:.85}80%{transform:translate(-15px,-12px) rotate(288deg) scale(1.05);opacity:.45}to{transform:translate(0) rotate(360deg) scale(1.1);opacity:.35}}@keyframes orbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes portalPulse{0%,to{box-shadow:0 0 20px #b967ff4d,0 0 40px #ff6ec726,inset 0 0 30px #00000080;border-color:#b967ff80}50%{box-shadow:0 0 30px #ff386066,0 0 60px #b967ff40,inset 0 0 30px #00000080;border-color:#ff386099}}@keyframes bgDrift{0%{background-position:0% 0%}to{background-position:200% 200%}}.selfie-screen{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%;background:radial-gradient(ellipse at 30% 20%,rgba(185,103,255,.06) 0%,transparent 50%),radial-gradient(ellipse at 70% 80%,rgba(255,56,96,.06) 0%,transparent 50%),var(--color-bg-base);padding:1rem;box-sizing:border-box;overflow:hidden}.selfie-screen:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0px,transparent 2px,rgba(0,0,0,.08) 2px,rgba(0,0,0,.08) 4px);pointer-events:none;opacity:.5;z-index:0}.selfie-screen:after{content:"";position:absolute;inset:0;background-image:radial-gradient(1px 1px at 15% 25%,rgba(185,103,255,.4),transparent),radial-gradient(1px 1px at 35% 65%,rgba(255,110,199,.3),transparent),radial-gradient(1px 1px at 55% 15%,rgba(0,212,255,.3),transparent),radial-gradient(1px 1px at 75% 45%,rgba(185,103,255,.3),transparent),radial-gradient(1px 1px at 85% 85%,rgba(255,56,96,.3),transparent);background-size:200% 200%;animation:bgDrift 20s linear infinite;pointer-events:none;z-index:0}.selfie-sparkle{position:absolute;z-index:1;pointer-events:none}.selfie-sparkle img{width:32px;height:32px;object-fit:contain}.selfie-sparkle-1{top:15%;left:10%;animation:sparkleDrift1 8s ease-in-out infinite}.selfie-sparkle-1 img{filter:drop-shadow(0 0 8px rgba(255,110,199,.6))}.selfie-sparkle-2{top:20%;right:12%;animation:sparkleDrift2 10s ease-in-out infinite}.selfie-sparkle-2 img{filter:drop-shadow(0 0 8px rgba(0,212,255,.6))}.selfie-sparkle-3{bottom:25%;left:15%;animation:sparkleDrift3 7s ease-in-out infinite}.selfie-sparkle-3 img{filter:drop-shadow(0 0 8px rgba(185,103,255,.6))}.selfie-sparkle-4{bottom:18%;right:10%;animation:sparkleDrift4 12s ease-in-out infinite}.selfie-sparkle-4 img{filter:drop-shadow(0 0 8px rgba(255,56,96,.6))}.selfie-back-btn{position:absolute;top:1rem;left:1rem;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;z-index:10}.selfie-back-btn:hover{border-color:#fff;color:#fff;background:#ffffff1a}.selfie-title{font-family:var(--font-family-display);font-size:1.5rem;color:var(--color-text-highlight);text-shadow:0 0 20px rgba(255,110,199,.4),0 0 40px rgba(185,103,255,.2);margin:0 0 .25rem;text-transform:uppercase;letter-spacing:2px;z-index:1}.selfie-subtitle{font-size:.85rem;color:var(--color-text-secondary);margin:0 0 1rem;font-style:italic;z-index:1}.selfie-viewport{position:relative;width:250px;height:250px;border-radius:50%;overflow:visible;flex-shrink:0;z-index:1}.selfie-orbit-ring{position:absolute;inset:-12px;border-radius:50%;border:2px dashed rgba(185,103,255,.3);animation:orbitSpin 8s linear infinite;pointer-events:none}.selfie-orbit-ring:before{content:"";position:absolute;top:-4px;left:50%;width:8px;height:8px;border-radius:50%;background:#b967ff;box-shadow:0 0 10px #b967ffcc}.selfie-orbit-ring:after{content:"";position:absolute;bottom:-4px;left:50%;width:6px;height:6px;border-radius:50%;background:#ff6ec7;box-shadow:0 0 10px #ff6ec7cc}.selfie-video{width:250px;height:250px;object-fit:cover;transform:scaleX(-1);opacity:0;transition:opacity .3s ease;border-radius:50%}.selfie-video.ready{opacity:1}.selfie-frame{position:absolute;inset:0;border-radius:50%;border:3px solid rgba(185,103,255,.4);pointer-events:none;animation:portalPulse 3s ease-in-out infinite}.selfie-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;width:250px;height:250px;border-radius:50%;background:var(--color-bg-surface);color:var(--color-text-secondary);gap:.5rem}.selfie-placeholder p{margin:0;font-size:.8rem}.selfie-error{color:var(--color-accent-red);font-size:.85rem;margin:1.25rem 0 0;text-align:center;max-width:280px;z-index:1}.selfie-actions{display:flex;flex-direction:column;align-items:center;gap:1.25rem;margin-top:2.5rem;z-index:1}.selfie-capture-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-family-display);font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;background:linear-gradient(135deg,#ff3860,#b967ff);border:2px solid #ff6ec7;color:#fff;border-radius:8px;cursor:pointer;transition:all .2s;box-shadow:0 0 15px #ff6ec74d}.selfie-capture-btn .btn-icon{width:24px;height:24px;object-fit:contain}.selfie-capture-btn:hover{background:linear-gradient(135deg,#ff6ec7,#b967ff);border-color:#ffb3e6;transform:translateY(-2px);box-shadow:0 4px 20px #ff6ec780,0 0 30px #b967ff4d}.selfie-upload-btn{display:flex;align-items:center;gap:.4rem;padding:.5rem 1rem;font-family:var(--font-family-display);font-size:.85rem;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:8px;cursor:pointer;transition:all .2s}.selfie-upload-btn:hover{border-color:#fff;color:#fff;background:#ffffff1a}@keyframes genOrbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes genOrbitSpinReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes burstPulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.generating-overlay{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;animation:backdrop-fade .3s ease-out forwards;z-index:1}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}.generating-portal{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center}.generating-orbit{position:absolute;border-radius:50%;border:2px dashed;pointer-events:none}.generating-orbit-1{inset:-16px;border-color:#b967ff59;animation:genOrbitSpin 6s linear infinite}.generating-orbit-1:before{content:"";position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:#b967ff;box-shadow:0 0 14px #b967ffe6}.generating-orbit-1:after{content:"";position:absolute;bottom:-4px;right:20%;width:6px;height:6px;border-radius:50%;background:#00d4ff;box-shadow:0 0 10px #00d4ffcc}.generating-orbit-2{inset:-32px;border-color:#ff386033;animation:genOrbitSpinReverse 10s linear infinite}.generating-orbit-2:before{content:"";position:absolute;top:10%;right:-5px;width:8px;height:8px;border-radius:50%;background:#ff3860;box-shadow:0 0 12px #ff3860cc}.generating-orbit-2:after{content:"";position:absolute;bottom:15%;left:-4px;width:6px;height:6px;border-radius:50%;background:#ff6ec7;box-shadow:0 0 10px #ff6ec7cc}.generating-selfie{width:180px;height:180px;border-radius:50%;object-fit:cover;border:3px solid var(--color-border);animation:selfie-pulse 2s ease-in-out infinite}@keyframes selfie-pulse{0%,to{border-color:#b967ff80;box-shadow:0 0 25px #b967ff4d,0 0 50px #ff6ec726}50%{border-color:var(--color-text-highlight);box-shadow:0 0 35px #ff6ec780,0 0 70px #b967ff40}}.generating-content{display:flex;flex-direction:column;align-items:center;gap:.75rem}.generating-magic-burst{display:flex;align-items:center;gap:.75rem}.generating-burst-icon{color:#b967ff99;animation:burstPulse 2s ease-in-out infinite}.generating-burst-icon.burst-left{animation-delay:0s;color:#ff6ec799}.generating-burst-icon.burst-right{animation-delay:1s;color:#00d4ff99}.generating-spinner{color:var(--color-text-highlight);animation:spin 1.5s linear infinite;filter:drop-shadow(0 0 10px rgba(255,110,199,.6))}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.generating-label{font-family:var(--font-family-display);font-size:.7rem;color:#b967ffb3;text-transform:uppercase;letter-spacing:3px;margin:0}.generating-text{font-family:var(--font-family-display);font-size:1.25rem;color:var(--color-text-highlight);margin:0;letter-spacing:1px;text-shadow:0 0 12px rgba(255,110,199,.4);animation:status-fade 3s ease infinite}@keyframes status-fade{0%{opacity:0;transform:translateY(6px)}15%{opacity:1;transform:translateY(0)}85%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}@media(min-width:769px){.selfie-title{font-size:2rem}.selfie-subtitle{font-size:1rem;margin-bottom:1.5rem}.selfie-viewport,.selfie-video,.selfie-placeholder{width:320px;height:320px}.selfie-capture-btn{padding:.85rem 2rem;font-size:1.1rem}.selfie-upload-btn{font-size:.95rem;padding:.6rem 1.25rem}.generating-portal{width:260px;height:260px}.generating-selfie{width:240px;height:240px}.generating-text{font-size:1.5rem}}.selfie-screen{overflow-y:auto;justify-content:safe center}.selfie-screen>*{flex-shrink:0}.capture-prompt{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:1.5rem;text-align:center;color:#c8d2e9}.photo-handling{width:min(100%,34rem);color:#c8d2e9;font-size:.75rem;line-height:1.6;padding-bottom:1rem}.photo-handling summary{cursor:pointer;text-align:center}.reveal-screen{display:flex;flex-direction:column;align-items:center;height:100%;width:100%;background:var(--color-bg-base);padding:1.5rem 1rem;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;gap:.75rem}.reveal-header{text-align:center;opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.reveal-header.visible{opacity:1;transform:translateY(0)}.reveal-archetype{font-family:var(--font-family-display);font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:3px;margin:0 0 .25rem}.reveal-name{font-family:var(--font-family-display);font-size:1.75rem;color:var(--color-text-highlight);text-shadow:0 0 20px rgba(255,110,199,.4);margin:0;text-transform:uppercase;letter-spacing:2px}.reveal-title{font-size:.85rem;color:var(--color-text-secondary);margin:.25rem 0 0;font-style:italic}.reveal-portrait{position:relative;width:140px;height:220px;border-radius:8px;overflow:hidden;border:2px solid var(--color-accent-violet);box-shadow:0 4px 12px #000c,0 0 10px #b967ff40;flex-shrink:0;opacity:0;filter:blur(10px);transform:scale(.9);transition:opacity 1s ease,filter 1.2s ease,transform 1s ease;background-color:var(--color-bg-surface)}.reveal-portrait.visible{opacity:1;filter:blur(0);transform:scale(1)}.reveal-portrait-img{width:106%;height:106%;margin:-3% 0 0 -3%;object-fit:cover}.reveal-traits{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem;opacity:0;transition:opacity .6s ease .3s}.reveal-traits.visible{opacity:1}.reveal-trait{font-size:.7rem;padding:.2rem .5rem;background:#ffffff14;border:1px solid var(--color-border);border-radius:12px;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:1px}.reveal-hero-section{display:flex;flex-direction:column;align-items:center;gap:.4rem;opacity:0;transition:opacity .4s ease}.reveal-hero-section.visible{opacity:1}.reveal-hero-label{font-family:var(--font-family-display);font-size:.65rem;color:gold;text-transform:uppercase;letter-spacing:3px;margin:0;text-shadow:0 0 12px rgba(255,215,0,.4)}.reveal-hero-slot{opacity:0;transform:translateY(20px) scale(.9);animation:hero-reveal .6s ease forwards;animation-play-state:paused;animation-delay:.3s;cursor:pointer}.reveal-hero-section.visible .reveal-hero-slot{animation-play-state:running}.reveal-hero-slot .card{cursor:pointer;touch-action:manipulation}@media(hover:hover){.reveal-hero-slot .card:hover{transform:translateY(-4px) scale(1.05)!important;box-shadow:0 8px 24px #ffd7004d,0 4px 12px #000c}}@keyframes hero-reveal{0%{opacity:0;transform:translateY(20px) scale(.9);filter:blur(4px)}50%{filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1)}}.reveal-cards{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;width:100%;max-width:600px;opacity:0;transition:opacity .4s ease}.reveal-cards.visible{opacity:1}.reveal-card-slot{opacity:0;transform:translateY(20px) scale(.9);animation:card-reveal .4s ease forwards;animation-play-state:paused;cursor:pointer}.reveal-card-slot .card{cursor:pointer;touch-action:manipulation}@media(hover:hover){.reveal-card-slot .card:hover{transform:translateY(-4px) scale(1.05)!important;box-shadow:0 8px 24px #ff6ec74d,0 4px 12px #000c}}.reveal-cards.visible .reveal-card-slot{animation-play-state:running}@keyframes card-reveal{to{opacity:1;transform:translateY(0) scale(1)}}.reveal-cta{font-family:var(--font-family-display);font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:.75rem 2rem;background:linear-gradient(135deg,#ff3860,#b967ff);border:2px solid #ff6ec7;color:#fff;border-radius:8px;cursor:pointer;margin-top:.5rem;margin-bottom:1rem;flex-shrink:0;opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease,box-shadow .2s,background .2s}.reveal-cta.visible{opacity:1;transform:translateY(0);animation:cta-pulse 2s ease-in-out infinite}@keyframes cta-pulse{0%,to{box-shadow:0 0 10px #ff6ec74d}50%{box-shadow:0 0 25px #ff6ec799}}.reveal-cta:hover{background:linear-gradient(135deg,#ff6ec7,#b967ff);border-color:#ffb3e6;transform:translateY(-2px)}.card-lightbox-overlay{position:fixed;inset:0;background:#000000d9;z-index:1000;display:flex;align-items:center;justify-content:center;animation:lightbox-fade-in .2s ease}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.card-lightbox{position:relative;display:flex;align-items:center;justify-content:center;gap:1rem;max-width:90vw;max-height:90vh}.lightbox-close{position:absolute;top:-40px;right:-8px;background:none;border:none;color:#fff9;cursor:pointer;padding:4px;z-index:1001;transition:color .2s}.lightbox-close:hover{color:#fff}.lightbox-card{--card-width: 240px;--card-height: 340px;pointer-events:none;animation:lightbox-card-pop .25s cubic-bezier(.2,.8,.2,1)}.lightbox-card .card{cursor:default;padding:.6rem;border-width:3px;border-radius:10px}.lightbox-card .card-cost{width:24px;height:24px;font-size:.85rem;top:-6px;left:-6px;border-width:2px}.lightbox-card .card-type-badge{font-size:.6rem;padding:.1rem .5rem;bottom:6px;border-radius:8px}.lightbox-card .card-name{font-size:1rem;margin-bottom:.2rem}.lightbox-card .card-artwork-wrap{width:calc(100% + 1.2rem);margin-left:-.6rem;margin-right:-.6rem}.lightbox-card .card-desc{font-size:.85rem;line-height:1.3}@keyframes lightbox-card-pop{0%{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.lightbox-nav{background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;flex-shrink:0;transition:background .2s,opacity .2s;z-index:1001}.lightbox-nav:hover:not(:disabled){background:#fff3}.lightbox-nav:disabled{opacity:.2;cursor:default}.lightbox-dots{position:absolute;bottom:-44px;left:50%;transform:translate(-50%);display:flex;gap:8px}.lightbox-dot{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:#ffffff26;cursor:pointer;padding:0;transition:background .2s,border-color .2s,transform .2s}.lightbox-dot:hover{background:#ffffff4d}.lightbox-dot.active{background:var(--color-text-highlight);border-color:var(--color-text-highlight);transform:scale(1.3)}@media(min-width:769px){.reveal-screen{padding:2rem;gap:1rem}.reveal-archetype{font-size:.9rem}.reveal-name{font-size:2.5rem}.reveal-title{font-size:1rem}.reveal-portrait{width:180px;height:280px;border-width:3px;border-radius:10px}.reveal-trait{font-size:.75rem;padding:.25rem .6rem}.reveal-hero-label{font-size:.8rem;letter-spacing:4px}.reveal-cards{max-width:800px;gap:.75rem}.reveal-cta{font-size:1.2rem;padding:.85rem 2.5rem;margin-top:1rem}.lightbox-card{--card-width: 300px;--card-height: 420px}.lightbox-card .card-cost{width:28px;height:28px;font-size:.95rem}.lightbox-card .card-type-badge{font-size:.7rem;padding:.15rem .6rem;bottom:8px}.lightbox-card .card-name{font-size:1.15rem}.lightbox-card .card-desc{font-size:.95rem}.lightbox-nav{width:48px;height:48px}}.main-menu{position:relative;isolation:isolate;height:100%;overflow:auto;background:#080e1b;color:#f6e7d0}.main-menu *,.main-menu *:before,.main-menu *:after{box-sizing:border-box}.main-menu .city-backdrop{position:fixed;z-index:-2}.main-menu .city-backdrop-art{background-position:center}.menu-scrim{position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,#07101bf0,#07101bc9 45%,#07101b55),linear-gradient(0deg,#07101be8,transparent 80%)}.menu-shell{max-width:1280px;margin:auto;padding:28px 48px 20px;min-height:100%;display:flex;flex-direction:column}.menu-masthead,.menu-footer{display:flex;justify-content:space-between;gap:16px;font-size:10px;letter-spacing:2px;color:#9bc7c5}.menu-masthead{padding-bottom:20px;border-bottom:1px solid #9bc7c530}.menu-masthead span span{color:#ee9479;margin:0 8px}.menu-stage{flex:1;display:grid;grid-template-columns:1fr 440px;align-items:center;gap:72px;padding:42px 0}.menu-eyebrow{font-size:10px;letter-spacing:2px;color:#eeaa8f;margin:0 0 18px}.menu-intro h1{font:112px/.85 var(--font-family-display);letter-spacing:2px;margin:0;color:#f6e7d0}.menu-title-line{display:flex;align-items:center;color:#80d7cd;margin-top:8px}.menu-title-line small{font-size:24px;writing-mode:vertical-rl;transform:rotate(180deg);margin-right:12px;color:#f6e7d0;letter-spacing:4px}.menu-title-dot{color:#f5a78b}.menu-tagline{font-size:14px;margin:25px 0 12px}.menu-description{max-width:425px;font-size:12px;line-height:1.9;color:#b8c4cf;margin:0 0 28px}.menu-actions{display:flex;flex-direction:column;gap:12px;max-width:440px}.menu-actions button{display:flex;align-items:center;gap:16px;cursor:pointer;text-align:left;font:inherit;border-radius:5px;padding:17px 18px;transition:transform .18s ease,background .18s ease}.menu-actions button>span{flex:1;display:flex;flex-direction:column;gap:5px}.menu-actions strong{font:25px/1 var(--font-family-display);letter-spacing:1px}.menu-actions small{font:10px/1.5 var(--font-family-base)}.menu-play{background:#f3aa8c;border:1px solid #ffd1a8;color:#15202c;box-shadow:0 4px #8f5251}.menu-play:hover{background:#ffd0ad;transform:translateY(-2px)}.menu-create{background:#101e2dec;border:1px solid #80d7cd88;color:#e9efe9}.menu-create small{color:#b2cacd}.menu-create:hover{background:#1c3543;transform:translateY(-2px)}.menu-actions .menu-help{padding:12px 0;align-self:flex-start;border:0;background:transparent;color:#b8deda;font-size:12px}.menu-help:hover{color:#fff}.menu-footnote{color:#a5b4c3;font-size:10px;margin:6px 0 0}.menu-showcase{min-width:0;background:#0d1929e8;border:1px solid #8ab8b641;border-radius:8px;padding:18px;box-shadow:0 22px 70px #0005;transform:rotate(1deg)}.menu-hero-top{display:flex;justify-content:space-between;gap:10px;color:#aec7d1;font-size:9px;letter-spacing:1.4px;margin-bottom:14px}.menu-hero-top span:first-child{color:#eeaa8f}.menu-portrait{height:264px;overflow:hidden;position:relative;border-radius:3px;background:#172538}.menu-portrait img{height:100%;width:100%;object-fit:cover;object-position:center 32%}.menu-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#07101b,#07101b00 65%)}.menu-portrait-caption{position:absolute;bottom:18px;left:18px;z-index:1;display:flex;flex-direction:column;gap:5px}.menu-portrait-caption span{font-size:9px;letter-spacing:3px;color:#83d9d0}.menu-portrait-caption strong{font:32px/1 var(--font-family-display);letter-spacing:1px}.menu-sample-heading{display:flex;justify-content:space-between;gap:12px;font-size:8px;letter-spacing:1px;padding:18px 0 14px;color:#b1c3cf}.menu-sample-heading span:last-child{display:flex;align-items:center;gap:3px;color:#83d9d0}.menu-sample-cards{display:flex;justify-content:center;gap:12px;padding:2px 0 8px}.menu-sample-cards .card{--card-width: 120px;--card-height: 170px;width:120px;height:170px;flex:0 0 120px;transform:none;cursor:pointer;transition:transform .18s ease}.menu-sample-cards .card:hover{transform:translateY(-6px)}.menu-sample-cards .card-name{font-size:13px}.menu-sample-cards .card-desc{font-size:9px}.menu-sample-cards .card-cost{font-size:12px}.menu-footer{border-top:1px solid #9bc7c530;padding-top:18px;line-height:1.6;font-size:9px;letter-spacing:1px}.menu-footer i{color:#eeaa8f;padding:0 8px}.menu-rules{padding-left:1.25rem}.menu-rules li{margin-bottom:1rem}@media(max-width:1050px){.menu-shell{padding:24px 28px}.menu-stage{gap:32px;grid-template-columns:1fr 380px}.menu-intro h1{font-size:96px}.menu-sample-cards{gap:8px}.menu-sample-cards .card{width:104px;height:150px;flex-basis:104px}}@media(max-width:760px){.menu-shell{padding:20px}.menu-edition{display:none}.menu-stage{display:flex;flex-direction:column;align-items:stretch;padding:30px 0;gap:36px}.menu-intro h1{font-size:clamp(78px,19vw,112px)}.menu-description{max-width:500px}.menu-actions{max-width:none}.menu-showcase{transform:none;max-width:440px;width:100%;align-self:center}.menu-portrait{height:220px}.menu-sample-cards .card{width:clamp(78px,24vw,120px);height:clamp(120px,35vw,170px);flex-basis:clamp(78px,24vw,120px)}.menu-sample-heading{letter-spacing:0}.menu-footer{flex-direction:column;gap:6px}.menu-actions small{font-size:9px}}@media(prefers-reduced-motion:reduce){.menu-actions button,.menu-sample-cards .card{transition:none}}.app-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:0 1rem}.reveal-screen>*{flex-shrink:0}.reveal-cards{gap:16px 12px;padding:8px 0 20px}.reveal-card-slot .card{--card-width: 144px;--card-height: 216px;width:144px;height:216px}@media(max-width:768px),(max-height:500px){button,[role=button],summary{-webkit-tap-highlight-color:#83d9d033}.selfie-capture-btn,.selfie-upload-btn,.combat-result-btn,.restart-button,.retry-seed-button,.shop-leave-btn,.rest-back-btn,.inspection-dialog button,.menu-help,.photo-handling summary{min-height:44px}.selfie-upload-btn{margin:4px 0}.photo-handling summary{display:flex;align-items:center;justify-content:center}.topbar-container{min-height:50px;box-sizing:border-box;gap:4px;padding:0 6px;flex-shrink:0}.topbar-section{gap:3px;min-width:0}.abandon-btn{min-width:44px;min-height:44px}.abandon-yes,.abandon-no,.combat-stage .end-turn-button{min-height:44px}.selfie-screen{padding-top:64px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.selfie-screen .generating-overlay{padding:24px 0;gap:24px}.combat-stage{height:100dvh}.entity-panel.enemy{box-sizing:border-box}.inspection-dialog{max-height:calc(100dvh - 24px)}}@media(max-width:360px){.player-hp-inline{min-width:52px}.topbar-container .floor-text,.topbar-container .stat.gold{font-size:11px}.deck-browser-trigger{padding:8px;font-size:10px}.combat-stage .enemy-zone{flex-wrap:nowrap;padding:0;gap:6px;width:100%}.combat-stage .entity-panel.enemy{width:calc((100% - 12px) / 3);min-width:0;flex-shrink:0}.combat-stage .entities-container{padding-left:10px;padding-right:10px;padding-bottom:58px}.combat-stage .entity-panel.player .entity-avatar{width:60px;height:60px}}@media(max-height:500px)and (min-width:501px){.combat-stage{--topbar-height: 50px;--hand-height: 204px}.combat-stage .arena-location,.combat-stage .hand-caption{display:none}.combat-stage .entities-container{flex-direction:row;gap:30px;padding:4px 12px 6px;min-height:0}.combat-stage .enemy-zone{flex-wrap:nowrap;gap:10px;padding:0}.combat-stage .entity-panel.enemy{width:90px;padding:3px;gap:2px}.combat-stage .entity-avatar{width:46px;height:46px}.combat-stage .entity-panel.player .entity-avatar{width:54px;height:54px}.combat-stage .player-info-bar .hp-bar-container.player-hp{width:100px}.combat-stage .entity-name{font-size:12px}.combat-stage .intent-value{font-size:13px}.combat-stage .table-controls{bottom:calc(var(--hand-height) + 6px);padding:0 16px}.combat-stage .end-turn-button{padding:8px 18px;font-size:16px}.combat-stage .energy-orb{width:40px;height:40px;font-size:18px;padding-top:4px}.combat-stage .turn-phase-banner{left:auto;right:10px;top:52px;transform:none;font-size:10px}.combat-stage .deck-table{padding:0 12px}.selfie-screen .generating-overlay{flex-direction:row;gap:36px;max-width:700px}.selfie-screen .generating-portal{width:150px;height:150px;flex-shrink:0}.selfie-screen .generating-content{max-width:340px}}@media(max-width:360px){.combat-stage .entity-panel.player .entity-avatar.has-portrait:not(.has-sprite){width:60px;height:60px}}@media(max-height:500px)and (min-width:501px){.combat-stage .entity-panel.player .entity-avatar.has-portrait:not(.has-sprite){width:54px;height:54px}.selfie-screen .generating-selfie{width:140px;height:140px}}.map-scroll-area{overflow-y:auto;overscroll-behavior:contain}.map-paths{position:relative;height:100%;min-height:560px}.inspection-dialog .shop-removal-cancel{position:static;transform:none;width:100%}.inspection-dialog .shop-removal-grid{padding-bottom:12px}@media(max-height:500px){.map-view-container{padding-top:calc(var(--topbar-height) + 8px);padding-bottom:8px}.city-route-heading,.map-start-hint{display:none}.map-legend{flex-shrink:0}}@media(max-width:768px)and (max-height:650px),(max-height:500px)and (min-width:501px){.hand-container .card:hover,.hand-container .card:focus-visible{transform:none!important}}:root{--color-bg-base: #0d0d1a;--color-bg-surface: #1a1a2e;--color-bg-elevated: #252540;--color-text-primary: #f0e6d3;--color-text-secondary: #a89b8c;--color-text-highlight: #ff6ec7;--color-accent-red: #ff3860;--color-accent-blue: #00d4ff;--color-accent-green: #39ff14;--color-accent-amber: #ffb347;--color-accent-violet: #b967ff;--color-border: #3d3d5c;--font-family-base: "Space Mono", "Courier New", monospace;--font-family-display: "Bebas Neue", "Impact", sans-serif;--topbar-height: 50px;--hand-height: 280px;--card-width: 144px;--card-height: 216px;--card-spacing: 70px;--card-half-width: 35px;--card-hover-lift: -20px;--card-hover-scale: 1.3;--z-hand: 10;--z-entity-float: 50;--z-topbar: 100;--z-deck-table: 100;--z-card-hover: 100;--z-controls: 150;--z-card-playing: 200;--z-targeting: 1000}@media(min-width:769px){:root{--topbar-height: 60px;--hand-height: 310px;--card-width: 174px;--card-height: 250px;--card-spacing: 100px;--card-half-width: 75px;--card-hover-lift: -50px;--card-hover-scale: 1.08}}body{margin:0;padding:0;background-color:var(--color-bg-base);color:var(--color-text-primary);font-family:var(--font-family-base);height:100vh;width:100vw;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100%;width:100%}:focus-visible{outline:3px solid var(--color-accent-blue);outline-offset:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
