@font-face{font-family:"Jersey 10";src:url(../fonts/Jersey10.ttf) format("truetype");font-display:swap}@font-face{font-family:Pixelify Sans;src:url(../fonts/PixelifySans.ttf) format("truetype");font-display:swap}@font-face{font-family:VT323;src:url(../fonts/VT323.ttf) format("truetype");font-display:swap}:root{--bg: #0b0e17;--panel: #151a28;--well: #0f1320;--head: #1e2740;--edge: #2b3348;--text: #f2f4f8;--dim: #8c96ad;--faint: #59627a;--accent: #4cc3ff;--alert: #ff5a5a;--display: "Jersey 10", monospace;--num: "VT323", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Pixelify Sans,system-ui,sans-serif;font-size:17px;line-height:1.45}#app{max-width:1280px;margin:0 auto;padding:18px 16px 40px;display:flex;flex-direction:column;gap:14px}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.topbar{display:flex;align-items:baseline;gap:14px;border-bottom:2px solid var(--edge);padding-bottom:12px}.brand{font-family:var(--display);font-size:30px;letter-spacing:1px;color:var(--accent)}.subtitle{color:var(--dim);font-size:16px}.clock{margin-left:auto;font-family:var(--num);font-size:24px;color:var(--text)}.clock-unit,.clock-label{color:var(--dim);margin-left:2px;margin-right:2px;font-size:15px}.view{display:flex;flex-direction:column;gap:14px}.view[hidden]{display:none}.maplayout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px;align-items:start}.mapwrap{position:relative;border:2px solid var(--edge);border-radius:10px;padding:8px;background:var(--panel)}#map{display:block;margin:0 auto;border-radius:6px;cursor:crosshair;image-rendering:pixelated}.travelstate{margin-top:8px;font-size:15px;color:var(--dim);text-align:center}.side{display:flex;flex-direction:column;gap:12px}.card{background:var(--panel);border:2px solid var(--edge);border-radius:10px;overflow:hidden}.cardhead{font-family:var(--display);font-size:17px;letter-spacing:1px;color:var(--text);padding:7px 12px;background:var(--head);border-bottom:2px solid var(--edge)}.cardbody{padding:9px 12px 11px;font-size:15px;display:flex;flex-direction:column;gap:4px}.kv{display:flex;justify-content:space-between;gap:10px}.kv .k{color:var(--dim)}.kv.rare,.kv.rare .k{color:#b492ff}.partyrow{display:grid;grid-template-columns:1fr auto 54px auto;gap:7px;align-items:center;opacity:.55}.partyrow.active{opacity:1}.pname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.plvl,.php{color:var(--dim);font-family:var(--num);font-size:16px;white-space:nowrap}.pbar{display:block;height:8px;background:#080a10;border-radius:3px;overflow:hidden}.pbar>span{display:block;height:100%}.rowlabel{font-size:15px;color:var(--dim)}.field select{font-family:Pixelify Sans,system-ui,sans-serif;font-size:15px;color:var(--text);background:var(--well);border:2px solid var(--edge);border-radius:6px;padding:5px 9px}.stage{position:relative}#arena{display:block;margin:0 auto;border:2px solid var(--edge);border-radius:10px;background:var(--bg);image-rendering:pixelated}.banner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);padding:14px 26px;border:2px solid var(--edge);border-radius:10px;background:#0b0e17f0;font-family:var(--display);font-size:22px;letter-spacing:1px;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}.banner.show{opacity:1;transform:translate(-50%,-50%) scale(1)}.banner.error{border-color:var(--alert);color:var(--alert)}.controls{display:flex;flex-direction:column;gap:10px;padding:14px;background:var(--panel);border:2px solid var(--edge);border-radius:10px}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spacer{flex:1}button{font-family:Pixelify Sans,system-ui,sans-serif;font-size:16px;color:var(--text);background:#212a40;border:2px solid var(--edge);border-radius:7px;padding:5px 14px;cursor:pointer;transition:background .12s ease,border-color .12s ease}button:hover{background:#29334e;border-color:#3f4b6a}button.primary{background:#14344a;border-color:#2f6a94;color:var(--accent)}button.primary:hover{background:#1a4260}.chip{padding:4px 11px;font-size:15px}.chip.on{background:#14344a;border-color:var(--accent);color:var(--accent)}.speeds{display:flex;gap:5px}.field{display:flex;align-items:center;gap:7px;font-size:15px;color:var(--dim)}.field.grow{flex:1;min-width:260px}.field input{flex:1;font-family:Pixelify Sans,system-ui,sans-serif;font-size:15px;color:var(--text);background:var(--well);border:2px solid var(--edge);border-radius:6px;padding:5px 9px;min-width:90px}.field input:focus{outline:none;border-color:var(--accent)}#scrub{width:100%;accent-color:var(--accent)}.hint{font-size:14px;color:var(--dim);word-break:break-word}.logpanel{background:var(--panel);border:2px solid var(--edge);border-radius:10px;overflow:hidden}.loghead{font-family:var(--display);font-size:17px;letter-spacing:1px;color:var(--text);padding:7px 14px;background:var(--head);border-bottom:2px solid var(--edge)}.logbody{height:250px;overflow-y:auto;padding:8px 14px 12px;font-size:16px;line-height:1.5}.logline{display:flex;gap:12px}.logline.emph{font-weight:700}.stamp{color:var(--faint);font-family:var(--num);font-size:17px;white-space:pre;flex:0 0 auto}.logbody::-webkit-scrollbar{width:9px}.logbody::-webkit-scrollbar-track{background:var(--well)}.logbody::-webkit-scrollbar-thumb{background:#313c58;border-radius:5px}@media(max-width:900px){.maplayout{grid-template-columns:minmax(0,1fr)}}@media(max-width:720px){.field.grow{min-width:100%}}.partylayout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}.roster{gap:6px}.rosterrow{display:grid;grid-template-columns:22px 1fr auto auto auto;gap:8px;align-items:center;padding:6px 8px;border:2px solid transparent;border-radius:7px;background:var(--well);cursor:pointer}.rosterrow.fighting{border-color:#2f6a94}.rosterrow.selected{background:#1c2438;border-color:var(--accent)}.rosterrow.dragging{opacity:.4}.rosterrow.dropinto{border-color:var(--accent);border-style:dashed}.rslot{color:var(--accent);font-size:14px}.rname{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rlvl,.rhp{color:var(--dim);font-family:var(--num);font-size:16px;white-space:nowrap}.rbtns,.cbtns{display:flex;gap:4px;flex-wrap:wrap}button.mini{font-size:13px;padding:2px 8px;border-radius:5px;border-width:2px}button.mini:disabled{opacity:.32;cursor:default}.detailhead{font-family:var(--display);font-size:24px;color:var(--text);margin-bottom:4px}.subhead{font-family:var(--display);font-size:16px;letter-spacing:1px;color:var(--dim);margin-top:10px;padding-top:8px;border-top:2px solid var(--edge)}.gatehint{color:var(--accent);font-size:13px}.slotrow{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:4px}.slotlabel{width:14px;color:var(--dim);font-size:13px}.slotselect{flex:1;min-width:180px;font-family:Pixelify Sans,system-ui,sans-serif;font-size:15px;color:var(--text);background:var(--well);border:2px solid var(--edge);border-radius:6px;padding:4px 7px}.moverow{display:flex;justify-content:space-between;gap:10px;margin-top:4px}.moverow.dimmed{opacity:.6}.movetext{width:100%;color:var(--dim);font-size:14px;line-height:1.45;padding-left:21px}.spoils{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;background:var(--panel);border:2px solid var(--edge);border-radius:10px;padding:0;overflow:hidden}.spoils[hidden]{display:none}.spoilscol{padding:0 0 10px}.spoilscol .loghead{margin-bottom:6px}.kv.note{padding-left:12px;font-size:14px}.capturerow{display:flex;flex-direction:column;gap:5px;padding:7px 0;border-bottom:1px solid var(--edge)}.capturerow:last-child{border-bottom:none}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#04060ccc;display:flex;align-items:center;justify-content:center;z-index:20}.modal[hidden]{display:none}.modalbox{width:min(520px,calc(100vw - 32px));background:var(--panel);border:2px solid var(--accent);border-radius:10px;overflow:hidden}.modalhead{font-family:var(--display);font-size:19px;letter-spacing:1px;color:var(--accent);padding:9px 15px;background:var(--head);border-bottom:2px solid var(--edge)}.modalbody{padding:13px 15px 16px;font-size:15px;display:flex;flex-direction:column;gap:8px}@media(max-width:900px){.partylayout,.spoils{grid-template-columns:minmax(0,1fr)}}.startwrap{max-width:980px;margin:0 auto;display:flex;flex-direction:column;gap:16px;padding-top:22px}.startlede{margin:0;font-size:17px;line-height:1.6;color:var(--dim);text-align:center}.factions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:start}.factioncard{background:var(--panel);border:2px solid var(--edge);border-radius:10px;padding:14px;display:flex;flex-direction:column;gap:10px}.factionhead{font-family:var(--display);font-size:23px;letter-spacing:1px;color:var(--accent)}.factionblurb{font-size:15px;color:var(--dim);line-height:1.5}.starterrow{display:flex;flex-direction:column;gap:8px}.startercard{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:10px 12px;background:var(--well);border:2px solid var(--edge);border-radius:8px}.startercard:hover{background:#1a2234;border-color:#3f4b6a}.startercard.on{background:#14344a;border-color:var(--accent)}.startername{font-family:var(--display);font-size:21px;color:var(--text)}.startertypes,.starterstats{font-size:14px;color:var(--dim)}.starterflavour{font-size:14px;color:var(--dim);line-height:1.45;opacity:.8}.startfoot{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}#start-note{text-align:center;min-height:16px}@media(max-width:720px){.factions{grid-template-columns:minmax(0,1fr)}}.howto{background:var(--panel);border:2px solid var(--edge);border-radius:10px;padding:12px 16px;display:flex;flex-direction:column;gap:6px}.howtoline{font-size:15px;color:var(--dim)}.howtoline:before{content:"» ";color:var(--accent)}.actionrow{margin-top:6px}.overviewbox{width:min(560px,calc(100vw - 32px))}#overview-canvas{display:block;width:100%;height:auto;border:2px solid var(--edge);border-radius:8px;background:var(--bg);image-rendering:pixelated;cursor:pointer;margin-bottom:10px}.attunestage{font-family:var(--display);font-size:19px;color:var(--accent);padding:14px 6px;text-align:center;transition:transform .12s ease}.attunestage.pulse{transform:scale(1.04)}.attunestage.held{color:#58d878}.attunestage.broke{color:var(--alert)}.encounterprompt{position:absolute;left:50%;bottom:48px;transform:translate(-50%);background:#0b0e17f2;border:2px solid var(--accent);border-radius:10px;padding:12px 18px;display:flex;flex-direction:column;align-items:center;gap:10px;z-index:10}.encounterprompt[hidden]{display:none}.encountertext{font-family:var(--display);font-size:19px;color:var(--text);text-align:center}.spin-app{max-width:1120px;margin:0 auto;padding:16px}.spin-app [hidden]{display:none!important}.spin-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px;margin-bottom:14px}.spin-brand{font-family:var(--display);font-size:30px;letter-spacing:2px}.spin-back{font-size:15px}.spin-record{font-family:var(--num);font-size:22px;color:var(--dim)}.spin-home{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.spin-panel{background:var(--panel);border:2px solid var(--edge);border-radius:10px;overflow:hidden}.spin-head{font-family:var(--display);font-size:19px;letter-spacing:1px;padding:6px 14px;background:var(--head);border-bottom:2px solid var(--edge)}.spin-head.second{border-top:2px solid var(--edge)}.spin-hint{margin:8px 14px;font-size:15px;color:var(--dim)}.machine-body{display:flex;flex-direction:column;align-items:center;padding:16px}.reel{display:flex;align-items:center;justify-content:center;width:148px;height:148px;background:var(--well);border:3px solid var(--edge);border-radius:12px}.reel-empty{font-family:var(--display);font-size:80px;color:var(--faint)}.reel-text{min-height:56px;margin:8px 0;text-align:center}.reel-name{font-family:var(--display);font-size:26px;line-height:1.1}.reel-tier{font-size:15px}.spin-button,.fight-button{font-family:var(--display);letter-spacing:2px;color:#06121c;background:var(--accent);border:2px solid var(--accent);border-radius:10px;cursor:pointer}.spin-button{width:220px;padding:10px;font-size:34px}.spin-button:disabled,.fight-button:disabled{color:var(--dim);background:var(--well);border-color:var(--edge);cursor:default}.machine-rules{margin:12px 0 8px;font-size:15px;color:var(--dim);text-align:center}.odds{display:flex;flex-wrap:wrap;justify-content:center;gap:2px 14px;font-family:var(--num);font-size:19px}.sprite{display:block;width:64px;height:64px;margin:2px auto;object-fit:contain;image-rendering:pixelated}.sprite.big{width:128px;height:128px;margin:0}.sprite.blur{opacity:.7}.mon-name{font-size:14px;line-height:1.15;text-align:center;overflow-wrap:anywhere}.slot-name{font-family:var(--num);font-size:15px;letter-spacing:1px;color:var(--dim);text-transform:uppercase}.slots,.ghost-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.slots{padding:12px 14px 0}.slot,.ghost-card,.mon-card{padding:6px;min-height:112px;color:var(--text);font-family:inherit;background:var(--well);border:2px solid var(--edge);border-radius:8px;cursor:pointer}.slot.active{outline:2px solid var(--accent);outline-offset:1px}.slot-empty{padding-top:26px;font-size:14px;color:var(--faint)}.link{padding:0;color:var(--accent);font:inherit;text-decoration:underline;background:none;border:0;cursor:pointer}.opponent{padding:8px 14px 0}.opponent .spin-hint{margin:4px 0}.ghost-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 10px;margin-bottom:6px}.ghost-name{font-family:var(--display);font-size:21px}.ghost-rating{font-family:var(--num);font-size:19px;color:var(--dim)}.fight-row{padding:10px 14px 14px}.fight-button{width:100%;padding:8px 18px;font-size:26px}.collection{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:8px;max-height:340px;overflow-y:auto;padding:12px 14px}.collection .spin-hint{grid-column:1 / -1;margin:0}.mon-card.picked{outline:2px solid var(--accent);outline-offset:1px}.mon-card.fielded{opacity:.55}.mon-count{font-family:var(--num);font-size:17px;color:var(--dim)}.mon-ready{margin-top:2px;font-family:var(--num);font-size:15px;color:var(--accent)}.evolve{padding:8px 0;border-top:1px solid var(--edge)}.evolve-line{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.evolve-form{padding:2px;color:var(--text);font-family:inherit;background:var(--well);border:2px solid var(--edge);border-radius:6px;cursor:pointer}.evolve-form.current{border-color:var(--accent)}.evolve-text{margin:6px 0;font-size:14px;color:var(--dim)}.evolve-button{width:100%;padding:6px;font-family:var(--display);font-size:21px;letter-spacing:1px;color:#06121c;background:var(--accent);border:2px solid var(--accent);border-radius:8px;cursor:pointer}.evolve-button:disabled{color:var(--dim);background:var(--well);border-color:var(--edge);cursor:default}.detail{padding:12px 14px}.detail .spin-hint{margin:0}.detail-head{display:flex;align-items:center;gap:12px}.detail-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0;text-align:center}.detail-stat{padding:4px;background:var(--well);border-radius:6px}.detail-value{font-family:var(--num);font-size:24px;line-height:1}.detail-move{padding:6px 0;border-top:1px solid var(--edge)}.detail-move-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 10px}.detail-move-name{font-family:var(--display);font-size:19px}.detail-move-text{font-size:14px;color:var(--dim)}.spin-fight{display:flex;flex-direction:column;gap:12px}.fight-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.fight-controls .fight-button{width:auto}.fight-result{flex:1;min-width:180px;font-family:var(--num);font-size:22px}@media(max-width:760px){.spin-home{grid-template-columns:minmax(0,1fr)}.slots .mon-name,.ghost-row .mon-name{font-size:clamp(9px,3vw,14px);overflow-wrap:normal}}
