@font-face{font-family:Ninja;src:url(../assets/font/ninja.ttf);font-display:swap}:root{--bg:#1d2026;--side:#15171c;--panel:#262a32;--panel-2:#2f3440;--line:#3a404d;--text:#e6e8ec;--muted:#9aa1ae;--gold:#f0b94a;--green:#6cc36c;--red:#e2605b;--blue:#5fa8e8;--radius:10px;--side-w:250px;--pixel-font:"Ninja", ui-monospace, monospace}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:15px/1.4 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}button{font:inherit;color:inherit;cursor:pointer}canvas.pixel{image-rendering:pixelated;image-rendering:crisp-edges}h1,h2,h3{font-family:var(--pixel-font);letter-spacing:.5px;margin:0 0 .5em;font-weight:400}#loading{z-index:100;background:radial-gradient(circle at 50% 35%,#2b3a2e 0%,#15171c 70%);place-items:center;transition:opacity .5s;display:grid;position:fixed;inset:0}#loading.done{opacity:0;pointer-events:none}.load-inner{text-align:center;width:min(360px,86vw)}.load-brand{color:var(--muted);letter-spacing:3px;text-transform:uppercase;font-size:12px}.load-title{color:var(--gold);text-shadow:0 3px #6b4a12;margin:8px 0 16px;font-size:34px}#load-sprites{width:100%;height:auto;margin-bottom:14px}.load-text{color:var(--muted);margin-top:8px;font-size:13px}.load-tip{color:#c9d2c0;min-height:3em;margin-top:18px;font-size:13px}.bar{border:1px solid var(--line);background:#0f1115;border-radius:6px;height:10px;overflow:hidden}.bar-fill{background:linear-gradient(90deg, #4f9d4f, var(--green));width:0;height:100%;transition:width .12s linear}.bar.xp .bar-fill{background:linear-gradient(90deg, #3d78b8, var(--blue))}.bar.hp .bar-fill{background:linear-gradient(90deg,#b8423d,#e2605b);transition:width .25s}.bar.gauge{height:5px}.bar.gauge .bar-fill{background:var(--gold);transition:none}.bar.big{height:16px}#app{grid-template-columns:var(--side-w) 1fr;height:100%;display:grid}.side{background:var(--side);border-right:1px solid var(--line);padding-bottom:24px;overflow-y:auto}.side-head{padding:16px 16px 10px}.side-head .t{font-family:var(--pixel-font);color:var(--gold);font-size:20px}.side-head .s{color:var(--muted);letter-spacing:1.5px;text-transform:uppercase;font-size:11px}.nav-group{color:var(--gold);letter-spacing:2px;text-transform:uppercase;text-shadow:0 1px #000;border-bottom:1px solid #2c313b;margin:0 8px 6px;padding:16px 14px 6px;font-size:15px;font-weight:800}.nav{cursor:pointer;color:#f2f4f7;background:#2a303b;border:1px solid #454d5c;border-left:4px solid #5b6578;border-radius:9px;align-items:center;gap:10px;margin:4px 8px;padding:9px 10px 9px 12px;font-weight:600;display:flex;box-shadow:0 2px #00000059}.nav:hover{background:#333a47;border-color:#5d6679}.nav.on{border-color:#8a7433;border-left-color:var(--gold);background:#3a3424}.nav .lbl small{color:#b4bccb;font-weight:500}.side .help-btn{color:#d6dbe4;background:#1f232b;border-color:#6a7488}.nav .ico{width:24px;height:24px;image-rendering:pixelated;background-repeat:no-repeat;flex:none}.nav .lbl{flex:1;min-width:0}.nav .lbl small{color:var(--muted);font-size:11px;display:block}.nav .dot{background:var(--green);width:8px;height:8px;box-shadow:0 0 6px var(--green);border-radius:50%;display:none}.nav .dot.on{display:block}.help-btn{border:1px solid var(--line);width:22px;height:22px;color:var(--muted);background:0 0;border-radius:50%;flex:none;padding:0;font-size:12px;line-height:1}.help-btn:hover{color:var(--gold);border-color:var(--gold)}.main{flex-direction:column;min-width:0;height:100%;display:flex}.top{background:var(--side);border-bottom:1px solid var(--line);padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));align-items:center;gap:12px;display:flex}.top .menu{border:1px solid var(--line);background:0 0;border-radius:8px;padding:4px 10px;font-size:18px;display:none}.top .title{font-family:var(--pixel-font);flex:1;font-size:20px}.top .gold{color:var(--gold);white-space:nowrap;font-weight:600}.top .icon-btn{border:1px solid var(--line);background:0 0;border-radius:8px;padding:4px 8px}.page{padding:16px;padding-bottom:max(24px, env(safe-area-inset-bottom));flex:1;overflow-y:auto}.media-strip{background:#1b2a22;border-bottom:1px solid #2f5a3c;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 12px;display:flex}.media-strip[hidden]{display:none}.media-strip .mart{border-radius:4px;width:34px;height:34px}.media-strip .mlabel{white-space:nowrap;text-overflow:ellipsis;color:#cfe8d4;flex:1;min-width:140px;font-size:13px;overflow:hidden}.media-strip .mctl{flex-wrap:wrap;gap:6px;display:flex}.mbtn{color:#eafbee;background:#264a33;border:1px solid #3f7a52;border-radius:9px;min-width:44px;height:38px;font-size:15px;font-weight:700}.mbtn.app{background:#2a303b;border-color:#454d5c;font-size:12px}.mbtn:active{transform:translateY(1px)}input{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;padding:7px 10px}code{word-break:break-all;background:#15171c;border-radius:4px;padding:1px 5px;font-size:12px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:14px}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.grow{flex:1}.muted{color:var(--muted)}.small{font-size:12px}.gold-t{color:var(--gold)}.green-t{color:var(--green)}.red-t{color:var(--red)}.btn{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px 14px}.btn:hover{border-color:#56607a}.btn.go{background:#2f6b3a;border-color:#3f8a4c}.btn.stop{background:#6b2f2f;border-color:#8a3f3f}.btn.gold{background:#6b5320;border-color:#9a7a2e}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{padding:4px 9px;font-size:13px}select{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;max-width:100%;padding:7px 10px}.skill-head{align-items:center;gap:14px;display:flex}.skill-head .lvl{font-family:var(--pixel-font);color:var(--gold);font-size:26px}.log{color:var(--muted);max-height:220px;font-size:13px;overflow-y:auto}.log div{border-bottom:1px dashed #30343d;padding:2px 0}.grid2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.kv{grid-template-columns:auto 1fr;gap:2px 12px;font-size:13px;display:grid}.kv b{font-weight:600}.pedestal-wrap{justify-content:center;margin-bottom:10px;display:flex}.pedestal{place-items:center;display:grid}.pedestal-img{object-fit:contain;border-radius:12px;width:140px;height:140px}.pedestal-preview{object-fit:contain;border:1px solid var(--line);border-radius:8px;width:100%;max-width:220px;margin-top:8px;display:block}.cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.card{border:1px solid var(--line);cursor:pointer;background:linear-gradient(#313744,#262a32);border-radius:12px;padding:8px;transition:transform .12s,border-color .12s;position:relative}.card:hover{border-color:#5a6378}.card.sel{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset}.card.in-deck:after{content:"DECK";background:var(--gold);color:#222;border-radius:4px;padding:1px 4px;font-size:10px;font-weight:700;position:absolute;top:6px;right:6px}.card .art{background:radial-gradient(circle at 50% 70%,#3e5a43 0%,#232830 70%);border-radius:8px;place-items:center;height:76px;display:grid}.card .art canvas{width:72px;height:72px}.card .art.has-face{height:96px;position:relative;overflow:hidden}.card .art .face{width:84px;height:84px;image-rendering:pixelated;border-radius:6px;box-shadow:0 2px #00000059}.card .art .mini{position:absolute;bottom:2px;right:4px}.card .art .mini canvas{width:36px;height:36px}.card .nm{white-space:nowrap;text-overflow:ellipsis;margin-top:6px;font-weight:600;overflow:hidden}.card .sub{color:var(--muted);font-size:11px}.card .stats{grid-template-columns:1fr 1fr;gap:0 6px;margin-top:4px;font-size:12px;display:grid}.card .pw{color:var(--gold);font-size:13px;font-weight:700}.card .acts{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.town-wrap{border-radius:var(--radius);border:2px solid var(--gold);background:#2a303b;width:100%;max-width:960px;height:360px;margin:0 auto;position:relative;overflow:hidden}.town-wrap canvas{object-fit:contain;width:100%;height:100%;image-rendering:pixelated;cursor:pointer;display:block}.town-status{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:14px;display:grid}.arena-side{grid-template-columns:repeat(5,1fr);gap:8px;display:grid}.fighter{border:1px solid var(--line);text-align:center;background:#242832;border-radius:10px;padding:6px;transition:transform .15s;position:relative}.fighter canvas{width:56px;height:56px}.fighter .fn{white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.fighter.dead{opacity:.3;filter:grayscale()}.fighter.lunge-up{transform:translateY(-14px)}.fighter.lunge-down{transform:translateY(14px)}.fighter.hit{animation:.3s hit}@keyframes hit{0%,to{transform:translate(0)}25%{background:#5a2a2a;transform:translate(-5px)}75%{transform:translate(5px)}}.fighter.healed{animation:.5s healed}@keyframes healed{50%{background:#2a5a33}}.float{pointer-events:none;text-shadow:0 2px #000;font-size:16px;font-weight:800;animation:1s forwards float;position:absolute;top:20%;left:50%;transform:translate(-50%)}.float.crit{color:var(--gold);font-size:20px}.float.heal{color:var(--green)}@keyframes float{to{opacity:0;top:-30%}}.vs{text-align:center;font-family:var(--pixel-font);color:var(--muted);margin:10px 0}.modal-bg{z-index:50;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:520px;max-height:85vh;padding:18px;overflow-y:auto}.modal h2{color:var(--gold)}.modal .faq{margin-top:12px}.modal .faq b{margin-top:8px;display:block}.modal .see{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.chip{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:12px}.toast{z-index:60;background:#2f6b3a;border:1px solid #3f8a4c;border-radius:10px;max-width:90vw;padding:10px 16px;animation:3.5s forwards toast;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}@keyframes toast{0%{opacity:0;transform:translate(-50%,10px)}10%,85%{opacity:1;transform:translate(-50%)}to{opacity:0}}@media (width<=820px){#app{grid-template-columns:1fr}.side{z-index:40;width:min(290px,84vw);padding-top:env(safe-area-inset-top);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.side.open{transform:none;box-shadow:0 0 0 100vmax #00000080}.top .menu{display:block}.page{padding:12px}.grid2{grid-template-columns:1fr}.cards{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.arena-side{grid-template-columns:repeat(5,1fr);gap:4px}.fighter canvas{width:40px;height:40px}.nav{padding-top:10px;padding-bottom:10px}}.icon-btn.speed.fast{color:#fff3cf;background:#6b5320;border-color:#9a7a2e;font-weight:800}.collapse-btn{border:1px solid var(--line);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:4px 8px}body.side-collapsed #app{grid-template-columns:64px 1fr}body.side-collapsed .side{width:64px}body.side-collapsed .side .side-head .t,body.side-collapsed .side .side-head .s,body.side-collapsed .side .nav-group,body.side-collapsed .side .nav .lbl,body.side-collapsed .side .nav .help-btn,body.side-collapsed .side .nav .dot{display:none}body.side-collapsed .side .nav{border-left-width:2px;justify-content:center;margin:4px 8px;padding:8px}body.side-collapsed .side .nav .ico{margin:0}body.side-collapsed .side .side-head{text-align:center;padding:12px 8px}.main-chip{color:#cfe3ff;cursor:pointer;white-space:nowrap;background:#2a303b;border:1px solid #454d5c;border-radius:999px;padding:3px 10px;font-size:13px;font-weight:700}.strip{gap:8px;padding:6px 2px 10px;display:flex;overflow-x:auto}.thumb{text-align:center;cursor:grab;-webkit-user-select:none;user-select:none;background:#2a303b;border:1px solid #454d5c;border-radius:10px;flex:none;width:64px;padding:4px}.thumb.picked{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}.thumb .tface,.gift-pick .tface{width:48px;height:48px;image-rendering:pixelated;border-radius:6px}.thumb canvas{width:48px;height:48px}.thumb .tname{white-space:nowrap;text-overflow:ellipsis;font-size:10px;display:block;overflow:hidden}.slot{cursor:pointer;background:#20242c;border:2px dashed #56607a;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:2px;width:76px;min-height:86px;display:flex}.slot.filled{background:#22301f;border-style:solid;border-color:#3f8a4c}.slot.over{border-color:var(--gold);background:#3a3424}.slot .thumb{background:0 0;border:0;width:auto;padding:0}.slot-empty{color:#6a7488;font-size:26px;line-height:1}.slot-label{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:70px;font-size:10px;overflow:hidden}.pens{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.pen{border:1px solid var(--line);background:#262a32;border-radius:10px;padding:8px}.big-plus{color:#ff5e8a;font-size:20px}.scene{margin-bottom:14px}.banner{cursor:pointer;border-radius:10px;margin-bottom:10px;padding:10px 14px;font-weight:600}.banner.gift{background:#3a3424;border:1px solid #8a7433}.banner.quest{background:#1f2e3d;border:1px solid #36597c}.job{color:#e6f0ff;background:#36597c;border-radius:4px;margin:2px 0;padding:1px 6px;font-size:10px;display:inline-block}.lock{text-align:center;padding:30px 16px}.quest-card{border-color:#36597c}.dialogue{border-left:3px solid var(--gold);background:#1f232b;border-radius:6px;margin:8px 0;padding:8px 12px}.gate{margin:6px 0}.class-grid{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.class-card.on{border-color:var(--gold)}.gift-pick{text-align:center;border:1px solid var(--line);background:#262a32;border-radius:10px;padding:8px}.editor details{margin:4px 0}.ed-item>summary{cursor:pointer;background:#2a303b;border-radius:8px;align-items:center;gap:6px;padding:6px 8px;font-weight:600;display:flex}.ed-obj,.ed-arr{border-left:1px dashed #3a404d;margin:4px 0 8px;padding-left:12px}.ed-field{grid-template-columns:160px 1fr;align-items:center;gap:8px;margin:4px 0;display:grid}.ed-field label{color:var(--muted);font-size:13px}.ed-row{align-items:center;gap:6px;margin:3px 0;display:flex}.ed-bar{z-index:5;position:sticky;top:0}textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--line);font:inherit;border-radius:8px;padding:7px 10px}.changelog{border-collapse:collapse;width:100%;font-size:12px}.changelog th,.changelog td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:4px 6px}@media (width<=820px){.ed-field{grid-template-columns:1fr}}.btn.sm{min-height:32px}.help-btn{position:relative}.help-btn:after{content:"";position:absolute;inset:-11px}.nav:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.pw,.stats,.kv{font-variant-numeric:tabular-nums}.bar.gauge .bar-fill{transition:none}.job{pointer-events:none}@media (width<=820px){.btn.sm{min-height:40px;padding:8px 12px}}.chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.chip.part{background:#2c3a2c;border-color:#4a7a4a}.slotchip{border:1px solid var(--line);background:#20242c;border-radius:8px;align-items:center;gap:4px;padding:3px 6px;display:inline-flex}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;display:grid}.tpl.on{border-color:var(--gold)}.art-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.art-item.on{border-color:var(--green)}.art-img{aspect-ratio:1;object-fit:contain;background:#e9e7ee;border-radius:8px;width:100%}.art-sprite{width:64px;height:64px;image-rendering:pixelated;background:#e9e7ee;border-radius:6px}.card .art .face.hires{image-rendering:auto;object-fit:contain;background:#e9e7ee}.card .art .face.rendered,.thumb .tface.rendered,.gift-pick .tface.rendered{image-rendering:auto;object-fit:contain;box-shadow:none}.rigview{image-rendering:auto;background:#f1eff5;border-radius:8px}.rig-compose{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.gen-row{border-top:1px dashed var(--line);align-items:center;gap:8px;padding:6px 0;display:flex;overflow-x:auto}.gen-label{width:56px;color:var(--gold);flex:none;font-weight:700}.gen-card{text-align:center;cursor:pointer;flex:none;width:84px;font-size:11px}.chip.mut{background:#4a2f5a;border-color:#8a5aa8}table.genes{border-collapse:collapse;margin-top:8px;font-size:12px}table.genes td,table.genes th{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:3px 6px}
