:root{--bg:#120f1a;--bg-panel:#1c1827;--bg-panel-2:#241f33;--bg-hover:#2d2740;--border:#3a3350;--text:#ece8f5;--muted:#a39cb8;--accent:#f5c24a;--accent-2:#8f6cff;--constellation:#3fd1c1;--good:#6fdc8c;--bad:#ff7a7a;--warn:#ffb35a;--hp:#e0506a;--enemy-hp:#d0463c;--xp:#8f6cff;--task:#4fb3ff;--focus:#ffe27a;--radius:8px;--header-h:80px;--nav-w:236px;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.4}*{box-sizing:border-box}body{min-width:320px;margin:0}h1,h2,h3,h4{margin:0 0 .4em;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.15rem}h3{font-size:1rem}h4{margin-top:.6em;font-size:.9rem}p{margin:.3em 0}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.muted{color:var(--muted)}.small{font-size:.82rem}.good{color:var(--good)}.bad,.error-text{color:var(--bad)}.warning-text{color:var(--warn)}.success-text{color:var(--good)}.sprite{image-rendering:crisp-edges;vertical-align:middle;object-fit:contain;flex:none;display:inline-block}.sprite-missing{background:repeating-conic-gradient(#3a3350 0 25%, #2a2438 0 50%) 0 0 / 8px 8px;color:var(--muted);border-radius:4px;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.silhouette{filter:brightness(0)opacity(.55)}.inline-sprite{align-items:center;gap:6px;display:inline-flex}.app-shell{grid-template-columns:var(--nav-w) 1fr;grid-template-rows:var(--header-h) 1fr;height:100vh;display:grid}.app-header{border-bottom:1px solid var(--border);background:linear-gradient(#221c33,#1a1526);grid-column:1/-1;align-items:center;gap:24px;padding:0 20px;display:flex}.logo{cursor:default;align-items:center;height:64px;display:flex}.header-stats{flex-wrap:wrap;flex:1;gap:10px;display:flex}.header-chip{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.88rem;display:inline-flex}.chip-active{border-color:var(--good);color:#c8f5d4;background:color-mix(in srgb, var(--good) 12%, var(--bg-panel-2))}.header-chip-button{font:inherit;color:inherit;cursor:pointer;font-size:.88rem}.header-chip-button.chip-active{color:#c8f5d4}.header-chip-button.chip-battle{border-color:var(--warn);color:#ffe0b8;background:color-mix(in srgb, var(--warn) 16%, var(--bg-panel-2));font-weight:700;animation:1.6s ease-in-out infinite chip-battle-pulse}@keyframes chip-battle-pulse{50%{box-shadow:0 0 0 3px color-mix(in srgb, var(--warn) 30%, transparent)}}@media (prefers-reduced-motion:reduce){.header-chip-button.chip-battle{animation:none}}.header-chip-button:hover{border-color:var(--accent)}.header-chip-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.header-chest-full{border-radius:var(--radius);cursor:pointer;background:0 0;border:1px solid #0000;padding:2px;display:inline-flex}.header-chest-full:hover{border-color:var(--accent)}.header-chest-full:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.header-save{text-align:right}.header-activity{border-radius:var(--radius);background:var(--bg-panel-2);border:1px solid var(--border);flex-direction:column;flex:none;justify-content:center;gap:4px;width:280px;min-width:0;padding:6px 10px;font-size:.88rem;display:flex}.header-activity.chip-active{border-color:var(--good);background:color-mix(in srgb, var(--good) 12%, var(--bg-panel-2))}.header-activity-button{color:inherit;font:inherit;text-align:left;cursor:pointer;font-size:.88rem}.header-activity-button:hover{background:color-mix(in srgb, var(--good) 22%, var(--bg-panel-2))}.header-activity-button:focus-visible{outline:2px solid var(--good);outline-offset:2px}.header-activity-name{align-items:center;gap:6px;min-width:0;display:flex}.header-activity-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.side-nav{background:var(--bg-panel);border-right:1px solid var(--border);padding:8px;overflow-y:auto}.nav-section{margin-bottom:8px}.nav-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:8px 8px 4px;font-size:.72rem}.side-nav ul{margin:0;padding:0;list-style:none}.nav-item{border-radius:var(--radius);width:100%;color:var(--text);font:inherit;cursor:pointer;text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:4px 8px;display:flex}.nav-item:hover{background:var(--bg-hover)}.nav-item.active{background:var(--bg-panel-2);border-color:var(--accent-2)}.nav-item-adventure{border-color:color-mix(in srgb, var(--good) 35%, transparent);background:linear-gradient(135deg,#1a3d2e 0%,#234f38 45%,#1e4632 100%)}.nav-item-adventure:hover{background:linear-gradient(135deg,#21503a 0%,#2a6345 45%,#256344 100%)}.nav-item-adventure.active{border-color:var(--good);background:linear-gradient(135deg,#256344 0%,#338055 45%,#2a704c 100%)}.nav-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.nav-item>:not(.nav-label){flex-shrink:0}.nav-badge{background:var(--bg-hover);color:var(--muted);border-radius:999px;padding:1px 7px;font-size:.75rem}.nav-badge-new{background:var(--accent);color:#1a1426;font-weight:700}.nav-dot{background:var(--good);width:8px;height:8px;box-shadow:0 0 6px var(--good);border-radius:50%}.main-panel{padding:20px 24px 60px;overflow-y:auto}.main-panel:focus{outline:none}.view-header{align-items:flex-start;gap:14px;margin-bottom:18px;display:flex}.view-header-main{flex:1}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;padding:14px}.split{grid-template-columns:minmax(260px,1fr) minmax(300px,1.3fr);align-items:start;gap:16px;display:grid}.group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 8px;font-size:.9rem}.section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-right:6px;font-size:.72rem;display:inline-block}.plain-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.button-row{flex-wrap:wrap;gap:8px;margin:8px 0;display:flex}.button{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel-2);color:var(--text);font:inherit;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-weight:600;display:inline-flex}.button:hover:not(:disabled){background:var(--bg-hover)}.button:disabled{opacity:.45;cursor:not-allowed}.button-primary{background:#5b43c9;border-color:#7c63f0}.button-primary:hover:not(:disabled){background:#6a51dd}.button-danger{background:#7a2a36;border-color:#a8404f}.button-danger:hover:not(:disabled){background:#8e3442}.button-small{padding:3px 9px;font-size:.82rem}.button-large{flex-direction:column;padding:10px 20px;font-size:1.02rem}.button-sub{align-items:center;gap:4px;font-size:.82rem;font-weight:500;display:inline-flex}.icon-button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:2px 8px;font-size:1.4rem;line-height:1}.icon-button:hover{color:var(--text);background:var(--bg-hover)}.tag-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.tag{background:var(--bg-hover);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.74rem;display:inline-block}.tag-starving{color:#ffc0c8;background:#5a1f2a;border-color:#a8404f}.tag-new{background:var(--accent);border-color:var(--accent);color:#1a1426;font-weight:700}.tag-rare{border-color:var(--accent-2);background:#3a2a5a}.tag-target{border-color:var(--warn);background:#5a3a1a}.status-working{border-color:var(--task)}.status-combat{border-color:var(--hp)}.element-neutral{border-color:#b0a8c0}.element-water{border-color:#4fa0ff}.element-earth{border-color:#b08a50}.element-fire{border-color:#ff6a3a}.element-wind{border-color:#8ae0b0}.element-ice{border-color:#9ee8f8}.element-electric{border-color:#ffe04a}.stars{color:var(--accent);letter-spacing:-1px;font-size:.85em}.progress{border:1px solid var(--border);background:#0d0b13;border-radius:5px;min-width:80px;height:18px;margin:3px 0;position:relative;overflow:hidden}.progress-small{height:12px}.progress-fill{background:var(--task);height:100%}.progress-fill-cycle{transform-origin:0;will-change:transform;width:100%;transform:scaleX(0)}@media (prefers-reduced-motion:reduce){.progress-fill{transition:none!important}}.progress-text{text-shadow:0 1px 2px #000;white-space:nowrap;justify-content:center;align-items:center;font-size:.72rem;font-weight:600;display:flex;position:absolute;inset:0}.progress-small .progress-text{font-size:.64rem}.progress-xp .progress-fill{background:var(--xp)}.progress-hp .progress-fill{background:var(--hp)}.dialog{border:1px solid var(--border);background:var(--bg-panel);color:var(--text);border-radius:12px;width:min(520px,100vw - 32px);max-height:calc(100vh - 48px);padding:0}.dialog-wide{width:min(780px,100vw - 32px)}.dialog::backdrop{background:#05030ab8}.dialog-body{flex-direction:column;max-height:calc(100vh - 50px);display:flex}.dialog-header{justify-content:space-between;align-items:center;padding:14px 16px 6px;display:flex}.dialog-header h2{margin:0}.dialog-content{padding:6px 16px 14px;overflow-y:auto}.dialog-actions{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.delete-account-form{flex-direction:column;gap:8px;display:flex}.delete-account-form input{font:inherit;color:var(--text);background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.delete-account-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.picker-list,.food-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.picker-row,.food-row,.roster-row,.shop-row{text-align:left;border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel-2);width:100%;color:var(--text);font:inherit;cursor:pointer;align-items:center;gap:12px;padding:8px 10px;display:flex}.picker-row:hover:not(:disabled),.food-row:hover:not(:disabled),.roster-row:hover,.shop-row:hover{background:var(--bg-hover)}.picker-row:disabled{cursor:not-allowed;opacity:.5;filter:grayscale(.6)}.picker-main,.roster-main{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.picker-name{font-weight:700}.picker-note{color:var(--muted);font-size:.8rem}.picker-stats{font-size:.85rem;font-weight:600}.picker-side{width:150px}.worker-ability-list{gap:4px;margin:4px 0 0;padding:0;font-size:.85rem;list-style:none;display:grid}.worker-ability{align-items:flex-start;gap:6px;display:flex}.worker-ability-stacked{flex-direction:column;gap:1px}.worker-ability-heading{align-items:center;gap:6px;display:flex}.worker-ability-heading .worker-ability-skills{padding-top:0}.worker-ability-effect{display:block}.worker-ability-skills{flex:none;gap:2px;padding-top:2px;display:inline-flex}.food-row span:nth-child(2){flex:1}.skill-level-box{min-width:240px}.skill-level{font-size:1.25rem;font-weight:700}.task-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px;display:grid}.task-card{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);gap:12px;padding:12px;display:flex;position:relative}.task-card.task-active{border-color:var(--task);box-shadow:0 0 0 1px #4fb3ff40}.worker-boosted{color:var(--good)}.task-active-icon{position:absolute;top:8px;right:8px}.task-card.task-active h3{padding-right:20px}.task-card.task-locked .task-art .sprite{filter:grayscale(.8)brightness(.5)}.task-art{flex:none;width:128px;height:128px;position:relative}.lock-badge{background:#000a;border-radius:6px;padding:2px 8px;font-size:.8rem;font-weight:700;position:absolute;inset:auto 6px 6px auto}.lock-text{color:var(--warn);font-weight:600}.task-body{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.task-section{flex-direction:column;align-items:flex-start;gap:4px;font-size:.85rem;display:flex}.task-section .section-label{margin-right:0}.task-section .item-list{display:flex}.item-list{flex-wrap:wrap;gap:4px 10px;display:inline-flex}.item-chip{align-items:center;gap:4px;font-size:.85rem;display:inline-flex}.item-chip-short{color:var(--bad)}.task-actions{margin-top:4px}.worker-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:minmax(0,1fr) auto;column-gap:14px;margin-bottom:14px;padding:12px;display:grid}.worker-panel>*{grid-column:1/-1}.worker-panel>.worker-panel-title,.worker-panel>.worker-slots{grid-column:1}.worker-panel-title{margin:0 0 8px;font-size:1rem}.worker-panel-aside{grid-area:1/2/3/3}@media (width<=760px){.worker-panel{grid-template-columns:minmax(0,1fr)}.worker-panel-aside{order:-1;grid-area:auto/1;margin-bottom:10px}}.worker-slots{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.6rem;display:grid}.worker-slot{text-align:center;border-radius:var(--radius);background:var(--bg-panel-2,var(--bg-hover));border:1px solid var(--border);flex-direction:column;align-items:center;gap:.4rem;min-width:0;padding:.5rem;display:flex}.worker-slot.empty,.worker-slot.locked{background:0 0;border-style:dashed}.worker-slot.locked{opacity:.7}.slot-face-lock{font-size:.8rem;font-weight:700}.worker-slot .worker-ability-list{text-align:center;margin:0}.worker-slot .worker-ability-stacked{align-items:center}.worker-slot-name{align-items:center;gap:6px;font-weight:700;display:flex}.worker-slots-footnote{margin:6px 0 0}.worker-bonuses{margin-top:10px}.roster-sections{align-content:start;gap:16px;display:grid}.roster-section-title{margin:0 0 8px;font-size:1rem}.roster-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.roster-list .roster-row{height:100%}.roster-row.selected{border-color:var(--accent-2);background:var(--bg-hover)}.detail-back{margin-bottom:12px}.moji-detail-header{align-items:center;gap:16px;margin-bottom:12px;display:flex}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;display:grid}.detail-grid section{background:var(--bg-panel-2);border-radius:var(--radius);padding:10px 12px}.stat-list{grid-template-columns:auto 1fr;gap:2px 12px;margin:6px 0 0;font-size:.9rem;display:grid}.stat-list dt{color:var(--muted)}.stat-list dd{text-align:right;margin:0}.level-up-row{align-items:center;gap:10px;display:flex}.level-up-cost{flex:1;justify-content:flex-end;align-items:center;gap:4px;display:inline-flex}.level-up-button{min-width:36px;padding:4px 10px;font-size:1rem;line-height:1}.level-up .error-text{margin:4px 0 0}.constellation{align-items:center;gap:5px;display:flex}.pip{border:1px solid var(--constellation);background:0 0;width:12px;height:12px;transform:rotate(45deg)}.pip-on{background:var(--constellation);box-shadow:0 0 6px var(--constellation)}.collection-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;display:grid}.collection-card{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.collection-card.not-owned h3{color:var(--muted)}.item-grid{grid-template-columns:repeat(auto-fill,68px);gap:8px;margin:0;padding:0;list-style:none;display:grid}.item-tile{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;width:68px;height:68px;color:var(--text);justify-content:center;align-items:center;padding:0;display:flex;position:relative}.item-tile:hover{background:var(--bg-hover)}.item-tile.selected{border-color:var(--accent-2)}.item-tile.rarity-rare,.item-tile.rarity-very-rare{box-shadow:inset 0 0 0 1px var(--accent)}.item-qty{text-shadow:0 1px 2px #000;font-size:.75rem;font-weight:700;position:absolute;bottom:2px;right:4px}.item-detail{position:sticky;top:0}.mode-toggle{gap:4px;margin-bottom:16px;display:inline-flex}.mode-toggle .button.active{background:var(--accent-2);border-color:var(--accent-2);color:#fff}.shop-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.shop-row.selected{border-color:var(--accent-2);background:var(--bg-hover)}.shop-row-name{flex:1;font-weight:700}.coin-amount{align-items:center;gap:4px;font-weight:700;display:inline-flex}.quantity-row{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0;display:flex}.quantity-row label{margin-right:4px}.quantity-input{width:80px;font:inherit;color:var(--text);background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:4px 6px}.shop-total{font-size:1.05rem}.home-panel{text-align:center}.adventure-scene{flex-direction:column;gap:1.1rem;display:flex}.adventure-scene-heading{text-align:center}.adventure-scene-heading h2{color:var(--accent);margin:0;font-size:1.35rem}.adventure-scene-heading p{margin:.15rem 0 0;font-weight:600}.adventure-controls{flex-direction:column;align-items:center;gap:.75rem;display:flex}.adventure-chest{justify-content:center;display:flex;position:relative}.adventure-chest-button{border-radius:var(--radius);color:inherit;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;align-items:center;gap:.25rem;padding:.4rem .8rem .5rem;transition:border-color .15s,background .15s;display:flex}.adventure-chest-button:hover:not(.is-empty),.adventure-chest-button:focus-visible{border-color:var(--accent);background:var(--bg-hover)}.adventure-chest-button.is-empty{cursor:default}.adventure-chest-art{transform-origin:50% 100%;display:inline-flex}.adventure-chest-art.chest-bump{animation:.35s ease-out chest-bump}.adventure-chest-art.chest-opening{animation:.7s ease-out chest-open}@keyframes chest-bump{0%,to{transform:scale(1)}40%{transform:scale(1.06,.94)}70%{transform:scale(.98,1.03)}}@keyframes chest-open{0%{filter:brightness();transform:translateY(0)scale(1)}30%{filter:brightness(1.6);transform:translateY(-10px)scale(1.08)}to{filter:brightness();transform:translateY(0)scale(1)}}.adventure-chest-caption{font-variant-numeric:tabular-nums;font-weight:700}.adventure-chest-popover{z-index:5;border-radius:var(--radius);background:var(--bg-panel-2);border:1px solid var(--border);white-space:nowrap;font-variant-numeric:tabular-nums;gap:.75rem;padding:.4rem .7rem;display:none;position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);box-shadow:0 6px 18px #00000059}.adventure-chest:hover .adventure-chest-popover,.adventure-chest:focus-within .adventure-chest-popover{display:flex}.adventure-chest-popover span{align-items:center;gap:.3rem;display:inline-flex}.adventure-boss{text-align:center;flex-direction:column;align-items:center;gap:.35rem;display:flex}.adventure-boss-button{border-color:var(--bad);background:color-mix(in srgb, var(--bad) 22%, var(--bg-panel-2));letter-spacing:.02em;padding:.65rem 1.6rem;font-weight:700}.adventure-boss-button:hover:not(:disabled){background:color-mix(in srgb, var(--bad) 35%, var(--bg-panel-2))}.adventure-boss-note{max-width:28ch;margin:0}.adventure-diorama{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(to bottom, color-mix(in srgb, var(--accent) 8%, var(--bg-panel-2)) 0 70%, var(--bg-hover) 70% 100%);grid-template-columns:1fr auto 1fr;align-items:end;gap:1rem;min-height:190px;padding:1.25rem 1.25rem 1rem;display:grid;position:relative;overflow:hidden}.diorama-mojis{align-items:flex-end;gap:.5rem;display:flex}.diorama-moji{transition:transform .2s ease-out;display:inline-flex}.diorama-moji.is-lunging{transform:translate(28px)}.diorama-output{border-radius:var(--radius);border:2px solid var(--border);background:var(--bg-panel);font-variant-numeric:tabular-nums;flex-direction:column;align-self:center;align-items:center;gap:.2rem;padding:.45rem .8rem;font-weight:700;display:flex}.diorama-output span{align-items:center;gap:.3rem;display:inline-flex}.diorama-output-title{letter-spacing:.12em;opacity:.75;font-size:.75rem}.diorama-output-per{opacity:.75;font-size:.8rem;font-weight:600}.diorama-enemy-spot{justify-content:flex-end;display:flex}.diorama-enemy{transition:opacity .4s,transform .4s,filter .1s;display:inline-flex}.diorama-enemy.enemy-entering{animation:.6s ease-out diorama-enemy-enter}.diorama-enemy.is-hit{filter:brightness(2.2);transform:translate(6px)}.diorama-enemy.enemy-defeated{opacity:0;transform:translateY(8px)scale(.85)}.diorama-enemy.enemy-gone{opacity:0;transition:none}@keyframes diorama-enemy-enter{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){.adventure-chest-art.chest-bump,.adventure-chest-art.chest-opening,.diorama-enemy.enemy-entering{animation:none}.diorama-moji.is-lunging,.diorama-enemy.is-hit{transform:none}}.slot-face{border-radius:var(--radius);background:var(--bg-hover);border:1px solid var(--border);width:64px;height:64px;color:inherit;cursor:pointer;flex:none;justify-content:center;align-items:center;padding:0;transition:border-color .15s,transform .15s;display:inline-flex;overflow:hidden}.slot-face:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.slot-face:disabled{cursor:not-allowed;opacity:.55}.slot-face.empty,.worker-slot.empty .slot-face,.worker-slot.locked .slot-face{background:0 0;border-style:dashed}.slot-face-plus{opacity:.7;font-size:2rem;font-weight:600;line-height:1}@media (width<=760px){.adventure-controls{flex-direction:row;justify-content:center;gap:1rem}.adventure-diorama{grid-template-columns:1fr 1fr;min-height:0;padding:.9rem .75rem 3rem}.diorama-mojis{gap:.2rem}.diorama-output{border-width:1px 0 0;border-radius:0;flex-direction:row;justify-content:center;gap:.9rem;padding:.3rem .6rem;position:absolute;bottom:0;left:0;right:0}}.battle-result-body{flex-direction:column;gap:.5rem;display:flex}.battle-result-body>:first-child{margin-top:0}.battle-result-body>:last-child{margin-bottom:0}.area-main{flex-direction:column;gap:2px;display:flex}.sprite-mirrored{transform:scaleX(-1)}.prep-formations{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem 1.5rem;display:flex}.prep-side{min-width:0}.prep-enemy-title{margin:0 0 .4rem}.prep-formation-large{--card:88px}.prep-formation-small{--card:52px}.prep-formation{flex-direction:column;gap:.85rem;display:flex}.prep-row{align-items:center;gap:.6rem;display:flex}.prep-row-label{width:2.6rem;color:var(--muted);flex-shrink:0;font-size:.8rem;font-weight:600}.prep-formation-small .prep-row-label{width:2.2rem;font-size:.72rem}.prep-row-slots{gap:.5rem;display:flex}.prep-slot{width:var(--card);aspect-ratio:1;color:inherit;font:inherit;background:0 0;border:0;padding:0;display:block}.prep-slot.empty{border-radius:var(--radius);border:2px dashed var(--border);background:color-mix(in srgb, var(--bg-hover) 45%, transparent)}button.prep-slot,.prep-roster-card{cursor:pointer}.prep-rewards{flex-wrap:wrap;align-items:center;gap:.3rem;margin:.9rem 0 0;display:flex}.prep-roster{--card:80px;border-top:1px solid var(--border);flex-wrap:wrap;gap:.85rem .6rem;margin-top:.9rem;padding:.75rem .6rem 1rem;display:flex}.prep-roster-card{width:var(--card);aspect-ratio:1;color:inherit;font:inherit;background:0 0;border:0;padding:0}.prep-roster-card:disabled{cursor:not-allowed;opacity:.45}.moji-square-card{box-sizing:border-box;border-radius:var(--radius);border:2px solid var(--border);outline:1px solid color-mix(in srgb, var(--border) 60%, transparent);outline-offset:-5px;background:var(--bg-panel-2);justify-content:center;align-items:center;width:100%;height:100%;padding-top:12px;transition:border-color .15s,transform .1s;display:flex;position:relative}.moji-square-small{padding-top:8px}.moji-square-card.rarity-3{border-color:#4f8fd8}.moji-square-card.rarity-4{border-color:var(--accent-2)}.moji-square-card.rarity-5{border-color:var(--accent)}button:hover>.moji-square-card,button:focus-visible>.moji-square-card{border-color:var(--text);transform:translateY(-1px)}button:disabled:hover>.moji-square-card{transform:none}.moji-square-element{border-radius:var(--radius) 2px var(--radius) 2px;background:var(--bg);border-right:2px solid var(--border);border-bottom:2px solid var(--border);justify-content:center;align-items:center;padding:3px;line-height:0;display:flex;position:absolute;top:-2px;left:-2px}.moji-square-small .moji-square-element{padding:1px}.moji-square-level{text-shadow:0 1px 2px #000;font-size:.8rem;font-weight:700;line-height:1;position:absolute;top:2px;right:5px}.moji-square-small .moji-square-level{font-size:.62rem;right:3px}.moji-square-stars{white-space:nowrap;text-shadow:0 0 2px #000,0 1px 2px #000;line-height:1;position:absolute;bottom:-.55em;left:50%;transform:translate(-50%)}.moji-square-small .moji-square-stars{font-size:.7rem}.moji-square-check{border-radius:calc(var(--radius) - 2px);background:color-mix(in srgb, var(--bg) 45%, transparent);color:var(--good);text-shadow:0 1px 3px #000;justify-content:center;align-items:center;font-size:2rem;font-weight:700;display:flex;position:absolute;inset:0}@media (width<=520px){.prep-formation-large{--card:80px}.prep-roster{--card:76px}}.formation-grid{grid-template-rows:auto repeat(6,minmax(2.6rem,auto));grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem .5rem;display:grid}.formation-line-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:center;font-size:.7rem}.formation-cell{min-width:0;display:flex}.battle-view{--energy:#f2c94c}.battle-view-header{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-bottom:.75rem;display:flex}.battle-view-header h2{margin:0;font-size:1.1rem}.battle-round{color:var(--muted);font-variant-numeric:tabular-nums}.battle-controls{gap:.5rem;margin-left:auto;display:flex}.battle-speed{gap:.25rem;display:flex}.battlefield{border-radius:var(--radius);background:radial-gradient(ellipse at 50% 60%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%), var(--bg-hover);grid-template-columns:minmax(0,1fr) minmax(1rem,.35fr) minmax(0,1fr);align-items:center;min-height:22rem;padding:.75rem;display:grid;position:relative;overflow:hidden}.battle-cell{border-radius:var(--radius);flex-direction:column;flex:1;align-items:center;gap:2px;min-width:0;padding:.25rem;transition:box-shadow .15s,opacity .3s,filter .3s;display:flex;position:relative}.battle-cell.battle-acting{box-shadow:0 0 0 2px color-mix(in srgb, var(--accent) 70%, transparent)}.battle-cell.battle-dead{opacity:.35;filter:grayscale()}.battle-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.battle-motion{display:inline-block}.battle-acting-basic.battle-lunge-player{animation:battle-lunge-right calc(var(--step-ms) * 1ms) ease-in-out}.battle-acting-basic.battle-lunge-enemy{animation:battle-lunge-left calc(var(--step-ms) * 1ms) ease-in-out}.battle-acting-active{animation:battle-cast calc(var(--step-ms) * 1ms) ease-in-out}.battle-hit-damage{animation:battle-hit calc(var(--step-ms) * .35ms) ease-out}.battle-hit-heal{animation:battle-healed calc(var(--step-ms) * .4ms) ease-out}@keyframes battle-lunge-right{0%,to{transform:translate(0)}40%,55%{transform:translate(22px)}}@keyframes battle-lunge-left{0%,to{transform:translate(0)}40%,55%{transform:translate(-22px)}}@keyframes battle-cast{0%,to{filter:none;transform:scale(1)}30%,70%{filter:drop-shadow(0 0 8px var(--energy));transform:scale(1.18)}}@keyframes battle-hit{0%,to{filter:none;transform:translate(0)}20%{filter:brightness(2.2);transform:translate(-5px)}45%{transform:translate(4px)}70%{transform:translate(-2px)}}@keyframes battle-healed{0%,to{filter:none}40%{filter:drop-shadow(0 0 8px #6fe08a)brightness(1.3)}}.battle-bar{background:#00000073;border-radius:999px;align-self:stretch;height:10px;position:relative;overflow:hidden}.battle-bar-fill{border-radius:inherit;height:100%;transition:width calc(var(--step-ms,600) * .3ms) ease-out}.battle-bar-hp .battle-bar-fill{background:var(--hp)}.battle-bar-enemy-hp .battle-bar-fill{background:var(--enemy-hp)}.battle-bar-energy,.battle-bar-energy-full{height:6px}.battle-bar-energy .battle-bar-fill,.battle-bar-energy-full .battle-bar-fill{background:var(--energy)}.battle-bar-energy-full{height:10px;box-shadow:0 0 6px var(--energy);animation:1s ease-in-out infinite battle-energy-ready}.battle-bar-text{text-align:center;color:#fff;text-shadow:0 1px 1px #000;white-space:nowrap;font-size:.6rem;line-height:10px;position:absolute;inset:0}.battle-bar-energy-full .battle-bar-text{color:#2a2000;text-shadow:none;font-weight:700}@keyframes battle-energy-ready{50%{box-shadow:0 0 12px var(--energy)}}.battle-popup{pointer-events:none;text-shadow:0 2px #000,0 0 6px #000;font-size:1.1rem;font-weight:800;animation:.9s ease-out forwards battle-popup;position:absolute;top:.5rem;left:50%}.battle-popup-damage{color:#fff}.battle-popup-heal{color:#6fe08a}@keyframes battle-popup{0%{opacity:0;transform:translate(-50%,6px)scale(.8)}15%{opacity:1;transform:translate(-50%)scale(1.15)}to{opacity:0;transform:translate(-50%,-30px)scale(1)}}.battle-banner{border:1px solid var(--border);white-space:nowrap;pointer-events:none;z-index:3;background:#0a0614d9;border-radius:999px;padding:.35rem .9rem;font-weight:700;position:absolute;left:50%;transform:translate(-50%)}.battle-banner-round{animation:battle-banner-flash calc(var(--step-ms) * 1ms) ease-in-out forwards;font-size:1.3rem;top:50%;transform:translate(-50%,-50%)}.battle-banner-skill{border-color:var(--energy);color:var(--energy);animation:battle-banner-flash calc(var(--step-ms) * 1ms) ease-in-out forwards;top:.5rem}.battle-banner-end{border-radius:var(--radius);flex-direction:column;align-items:center;gap:.15rem;padding:.75rem 1.5rem;font-weight:400;display:flex;top:50%;transform:translate(-50%,-50%)}.battle-banner-end strong{font-size:1.6rem}.battle-victory strong{color:#6fe08a}.battle-defeat strong{color:var(--enemy-hp)}@keyframes battle-banner-flash{0%{opacity:0}15%,80%{opacity:1}to{opacity:0}}.fx-layer{pointer-events:none;z-index:2;position:absolute;inset:0}.fx{pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.fx-aura{border:2px solid var(--energy);width:72px;height:72px;box-shadow:0 0 18px var(--energy), inset 0 0 12px var(--energy);animation:fx-aura calc(var(--step-ms) * 1ms) ease-out forwards}.fx-aura-heal{border-color:#6fe08a;box-shadow:0 0 18px #6fe08a,inset 0 0 12px #6fe08a}.fx-aura-lightning{border-color:#ffe66d;box-shadow:0 0 18px #ffe66d,inset 0 0 12px #ffe66d}.fx-aura-beam{border-color:#8fd8ff;box-shadow:0 0 18px #8fd8ff,inset 0 0 12px #8fd8ff}@keyframes fx-aura{0%{opacity:0;transform:translate(-50%,-50%)scale(.5)}30%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}.fx-orb{width:18px;height:18px;animation:fx-travel calc(var(--impact-ms) * 1ms) ease-in forwards;background:radial-gradient(circle,#fff,#8fd8ff 45%,#0000 70%)}.fx-orb-burst{background:radial-gradient(circle,#fff3c0,#ff8a3d 45%,#0000 70%);width:22px;height:22px}@keyframes fx-travel{0%{transform:translate(-50%,-50%)}to{transform:translate(calc(-50% + var(--dx)), calc(-50% + var(--dy)))}}.fx-ring{border:3px solid #fff;width:28px;height:28px;animation:.45s ease-out forwards fx-ring}.fx-ring-burst{border-color:#ff8a3d}.fx-ring-beam{border-color:#8fd8ff}.fx-ring-strike{border-color:#ffd36d;width:36px;height:36px}@keyframes fx-ring{0%{opacity:1;transform:translate(-50%,-50%)scale(.3)}to{opacity:0;transform:translate(-50%,-50%)scale(2.4)}}.fx-spark{background:radial-gradient(circle,#fff,#ffd36d 40%,#0000 70%);width:22px;height:22px;animation:.3s ease-out forwards fx-ring}.fx-beam{transform-origin:0;pointer-events:none;height:6px;margin-top:-3px;position:absolute}.fx-beam:before{content:"";transform-origin:0;animation:fx-beam calc(var(--step-ms) * 1ms) ease-out forwards;background:linear-gradient(90deg,#fffc,#8fd8ff);border-radius:999px;position:absolute;inset:0;box-shadow:0 0 10px #8fd8ff}@keyframes fx-beam{0%,25%{opacity:1;transform:scaleX(0)}55%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}.fx-lightning{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.fx-lightning polyline{fill:none;stroke:#ffe66d;stroke-width:3px;stroke-linejoin:bevel;filter:drop-shadow(0 0 4px #ffe66d);animation:.42s steps(2,end) forwards fx-flicker}@keyframes fx-flicker{0%,40%{opacity:1}20%,60%{opacity:.3}to{opacity:0}}.fx-sparkles{background:radial-gradient(circle,#6fe08a99,#0000 65%);width:48px;height:48px;animation:.6s ease-out forwards fx-sparkles}@keyframes fx-sparkles{0%{opacity:1;transform:translate(-50%,-30%)scale(.6)}to{opacity:0;transform:translate(-50%,-90%)scale(1.3)}}@media (prefers-reduced-motion:reduce){.battle-motion,.fx-orb,.fx-beam:before{animation:none!important}}@media (width<=760px){.battlefield{grid-template-columns:minmax(0,1fr) .5rem minmax(0,1fr);padding:.5rem .25rem}.battle-controls{margin-left:0}}.currency-box{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.currency{align-items:center;gap:6px;font-weight:700;display:inline-flex}.egg-card{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.egg-card-art{border-radius:var(--radius);background:radial-gradient(circle at 50% 60%,#2d2640,#0000 70%);padding:8px 16px;animation:2.4s steps(4,end) infinite egg-card-bob;display:inline-flex}@keyframes egg-card-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.egg-card-main{flex:1;min-width:240px}.hatch-buttons{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.hatch-dialog:focus,.hatch-dialog:focus-visible{outline:none}.hatch-actions{gap:8px;display:flex}.hatch-actions.is-pending{visibility:hidden}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.hatch-stage-single{flex-direction:column;align-items:center;gap:8px;padding:8px 0;display:flex}.hatch-clutch{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:0;padding:4px 0;list-style:none;display:grid}.hatch-cell{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel-2);flex-direction:column;align-items:center;min-width:0;padding:6px 2px;display:flex}.hatch-cell.is-revealed{border-color:var(--rarity-tint)}.hatch-egg-slot{place-items:center;width:200px;height:160px;display:grid;position:relative}.hatch-egg-slot.hatch-small{width:100%;max-width:104px;height:92px}.hatch-egg-slot>*{grid-area:1/1}.hatch-egg{animation:.3s ease-out backwards hatch-egg-drop;display:inline-flex}@keyframes hatch-egg-drop{0%{opacity:0;transform:translateY(-28px)}70%{opacity:1;transform:translateY(3px)}to{transform:translateY(0)}}.hatch-egg-motion{transform-origin:50% 90%;display:inline-flex;position:relative}.hatch-crack{position:absolute;inset:0}.hatch-phase-appear .hatch-egg-motion{animation:1.6s steps(4,end) .3s infinite hatch-egg-idle}@keyframes hatch-egg-idle{0%,to{transform:rotate(0)}25%{transform:rotate(-2deg)}75%{transform:rotate(2deg)}}.hatch-phase-wobble .hatch-egg-motion{animation:.9s linear hatch-wobble,.24s linear .9s infinite hatch-shiver}@keyframes hatch-wobble{0%,30%,62%,to{transform:rotate(0)}10%{transform:rotate(-4deg)}20%{transform:rotate(4deg)}42%{transform:rotate(-7deg)}52%{transform:rotate(7deg)}74%{transform:rotate(-11deg)}84%{transform:rotate(11deg)}92%{transform:rotate(-5deg)}}@keyframes hatch-shiver{0%,to{transform:rotate(0)}25%{transform:rotate(-3deg)}75%{transform:rotate(3deg)}}.hatch-egg-motion.is-cracking{animation:hatch-jolt var(--phase-ms) steps(3)}@keyframes hatch-jolt{0%{transform:translate(0)}33%{transform:translate(-3px,1px)}66%{transform:translate(3px,-1px)}to{transform:translate(0)}}.hatch-flash{width:120px;height:120px;animation:hatch-flash var(--phase-ms) steps(5) forwards;background:radial-gradient(circle,#fff 45%,#fff8 70%,#0000 72%);border-radius:12px}.hatch-small .hatch-flash{width:72px;height:72px}@keyframes hatch-flash{0%{opacity:.4;transform:scale(.5)}30%{opacity:1;transform:scale(1.15)}to{opacity:.25;transform:scale(1.4)}}.hatch-shell{width:8px;height:8px;animation:hatch-shell var(--phase-ms) ease-out forwards;background:#f4ead2;box-shadow:0 0 0 2px #16121f}.hatch-small .hatch-shell{width:5px;height:5px}@keyframes hatch-shell{0%{opacity:1;transform:translate(0)}to{transform:translate(var(--dx), var(--dy));opacity:0}}.hatch-glow{background:radial-gradient(circle, color-mix(in srgb, var(--rarity-tint) 45%, transparent), transparent 68%);border-radius:50%;width:150px;height:150px;animation:.3s ease-out backwards hatch-fade-in}.hatch-small .hatch-glow{width:88px;height:88px}.hatch-ring{border:4px solid var(--rarity-tint);width:72px;height:72px;animation:hatch-ring var(--phase-ms) ease-out backwards;border-radius:50%}.hatch-small .hatch-ring{border-width:3px;width:44px;height:44px}@keyframes hatch-ring{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.9)}}.hatch-moji{animation:hatch-moji-pop var(--phase-ms) ease-out backwards;display:inline-flex}@keyframes hatch-moji-pop{0%{opacity:0;transform:scale(.2)}60%{opacity:1;transform:scale(1.15)}to{transform:scale(1)}}.hatch-phase-fade .hatch-egg{animation:hatch-fade-out var(--phase-ms) linear forwards}.hatch-phase-fade .hatch-moji,.hatch-phase-fade .hatch-glow,.hatch-phase-fade~.hatch-info-slot .hatch-info{animation:hatch-fade-in var(--phase-ms) linear backwards}@keyframes hatch-fade-in{0%{opacity:0}to{opacity:1}}@keyframes hatch-fade-out{0%{opacity:1}to{opacity:0}}.hatch-info-slot{justify-content:center;min-height:4.6em;display:flex}.hatch-cell .hatch-info-slot{min-height:3.6em}.hatch-info{text-align:center;flex-direction:column;align-items:center;gap:3px;animation:.2s ease-out backwards hatch-fade-in;display:flex}.hatch-info-name{align-items:center;gap:6px;font-size:1.1rem;font-weight:700;display:inline-flex}.hatch-info-compact{gap:1px;font-size:.8rem}.hatch-info-compact .hatch-info-name{font-size:.85rem}.hatch-info-compact .tag{padding:0 6px;font-size:.68rem}.hatch-outcome-constellation{color:var(--constellation)}.hatch-outcome-glimmer{color:var(--muted)}.hatch-slow{text-align:center;color:var(--muted);margin:8px 0 0}.hatch-failure{text-align:center;padding:12px 0}@media (prefers-reduced-motion:reduce){.egg-card-art,.hatch-egg,.hatch-egg-motion,.hatch-info{animation:none!important}.hatch-phase-fade .hatch-egg{animation:hatch-fade-out var(--phase-ms) linear forwards!important}.hatch-phase-fade~.hatch-info-slot .hatch-info{animation:hatch-fade-in var(--phase-ms) linear backwards!important}}@media (width<=760px){.hatch-clutch{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.hatch-cell{padding:4px 1px}.hatch-egg-slot.hatch-small{height:72px}.hatch-cell .hatch-info-slot{min-height:3.2em}.hatch-info-compact{font-size:.72rem}.hatch-info-compact .tag{white-space:normal;line-height:1.15}.hatch-buttons .button{flex:1}}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}.table th{color:var(--muted);font-weight:600}.export-box{gap:6px;margin:10px 0;display:grid}textarea{width:100%;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);background:#0d0b13;padding:8px;font-family:ui-monospace,Consolas,monospace;font-size:.75rem}.danger-zone{border-color:#6a2a36}.save-error{max-width:720px;margin:60px auto;padding:0 20px}.loading-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100vh;display:flex}.loading-screen .progress{width:min(360px,80vw)}.loading-title{color:var(--accent);font-size:2.2rem}.notifications{z-index:10;gap:8px;max-width:380px;display:grid;position:fixed;bottom:16px;right:16px}.notification{background:var(--bg-panel-2);border:1px solid var(--warn);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 12px;font-size:.88rem;display:flex;box-shadow:0 6px 20px #0008}.notification span{flex:1}.notification-error{border-color:var(--bad,#e06060)}.summary-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:12px;display:grid}.summary-grid section{background:var(--bg-panel-2);border-radius:var(--radius);padding:10px 12px}.summary-items{gap:3px;margin:0;padding:0;font-size:.88rem;list-style:none;display:grid}.summary-items li{align-items:center;gap:6px;display:flex}.summary-items li span{flex:1}@media (width<=1000px){.split{grid-template-columns:1fr}}@media (width<=760px){:root{--nav-w:64px;--header-h:72px}.nav-label,.nav-badge,.nav-section-title{display:none}.nav-item{justify-content:center;padding:6px 4px;position:relative}.nav-item .nav-dot{position:absolute;top:4px;right:4px}.app-header{gap:10px;padding:0 10px}.logo,.header-activity,.header-chip-adventure,.header-chest-full{display:none}.header-stats{flex-wrap:nowrap;justify-content:center;gap:6px}.header-save:empty{display:none}.header-stats .header-chip{white-space:nowrap;padding:4px 8px}.main-panel{padding:14px}.task-card{flex-direction:column}.picker-side{display:none}}.account-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:100vh;padding:20px;display:flex}.account-legal{gap:16px;font-size:14px;display:flex}.account-legal a{color:var(--muted);text-underline-offset:3px;text-decoration:underline}.account-legal a:hover{color:var(--text)}.legal-page{justify-content:center;min-height:100vh;padding:32px 20px 64px;display:flex}.legal-document{width:min(42rem,100%)}.legal-document h1{margin:0 0 8px;font-size:32px}.legal-document h2{margin:28px 0 8px;font-size:20px}.legal-document h3{margin:20px 0 8px;font-size:16px}.legal-document p,.legal-document li{margin:0 0 12px;line-height:1.55}.legal-document ul{margin:0 0 12px;padding-left:1.25rem}.legal-document a{color:var(--accent)}.legal-back{margin-bottom:20px}.legal-back a{color:var(--muted)}.account-form{flex-direction:column;gap:8px;width:min(380px,92vw);display:flex}.account-form input:not([type=checkbox]),.settings-fields input,.settings-fields select{font:inherit;color:var(--text);background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.account-agree{align-items:flex-start;gap:8px;font-size:14px;line-height:1.4;display:flex}.account-agree input{flex:none;margin-top:3px}.account-agree a{color:var(--accent)}.settings-fields{flex-direction:column;align-items:flex-start;gap:8px;max-width:320px;display:flex}
