:root{--lcd-100: #c6d0b3;--lcd-200: #b7c2a3;--lcd-300: #a7b493;--lcd-400: #96a382;--ink: #161a11;--ink-strong: #0d1009;--ink-soft: rgba(22, 26, 17, .66);--ink-faint: rgba(22, 26, 17, .38);--ink-ghost: rgba(22, 26, 17, .14);--ink-line: rgba(22, 26, 17, .22);--font-lcd: ui-monospace, "Cascadia Mono", "SFMono-Regular", "Consolas", "DejaVu Sans Mono", "Liberation Mono", "Courier New", monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 16px;--fs-xl: 22px;--lh: 1.45;--gap: 10px;--pad: 10px;--shell-max: 1120px;--pixel: 3px;--tick: 1.05s}html{height:100%}body,#app{min-height:100%}body{margin:0;background:var(--lcd-200);color:var(--ink);font-family:var(--font-lcd);font-size:var(--fs-md);line-height:var(--lh);-webkit-font-smoothing:none;font-smooth:never;text-rendering:geometricPrecision}.lcd-panel{position:relative;min-height:100dvh;background:radial-gradient(120% 90% at 50% 0%,var(--lcd-100) 0%,var(--lcd-200) 42%,var(--lcd-300) 78%,var(--lcd-400) 100%);isolation:isolate}.lcd-panel:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;background:repeating-linear-gradient(0deg,rgba(22,26,17,.055) 0 1px,transparent 1px var(--pixel)),repeating-linear-gradient(90deg,rgba(22,26,17,.045) 0 1px,transparent 1px var(--pixel));mix-blend-mode:multiply;opacity:.85}.lcd-panel:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:61;background:linear-gradient(148deg,rgba(255,255,255,.2) 0%,rgba(255,255,255,.05) 26%,transparent 46%)}.ghost{color:var(--ink-ghost)}.faint{color:var(--ink-faint)}.soft{color:var(--ink-soft)}.strong{color:var(--ink-strong);font-weight:700}.seg{font-size:var(--fs-xl);letter-spacing:.06em;font-weight:700}.label{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.inv{background:var(--ink);color:var(--lcd-100)}.blink{animation:lcd-blink var(--tick) steps(1,end) infinite}@keyframes lcd-blink{0%,49%{opacity:1}50%,to{opacity:.12}}.flicker{animation:lcd-flicker .35s steps(2,end) 2}@keyframes lcd-flicker{0%,to{opacity:1}50%{opacity:.45}}@media(prefers-reduced-motion:reduce){.blink,.flicker{animation:none}}.lcd-settle{animation:lcd-settle .18s ease-out}@keyframes lcd-settle{0%{opacity:.35;filter:contrast(.6);transform:translateY(-1px)}to{opacity:1;filter:none;transform:none}}*,*:before,*:after{box-sizing:border-box}h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul,ol{margin:0;padding:0;list-style:none}button,input,select,textarea{font:inherit;color:inherit}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:1px dashed var(--ink);outline-offset:1px}h1,h2,h3,h4{font-size:inherit;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.shell{display:flex;flex-direction:column;min-height:100dvh;max-width:var(--shell-max);margin:0 auto;padding:10px 12px 0;gap:6px}.topbar{display:flex;align-items:flex-start;gap:var(--gap);flex-wrap:wrap}.brand{white-space:pre;line-height:1;font-size:9px;letter-spacing:0;color:var(--ink);-webkit-user-select:none;user-select:none}@media(min-width:720px){.brand{font-size:11px}}.brand__sub{font-size:var(--fs-xs);letter-spacing:.34em;color:var(--ink-soft);text-transform:uppercase}.status{display:flex;gap:1.5ch;flex-wrap:wrap;align-items:baseline;white-space:pre}.status__k{color:var(--ink-faint);font-size:var(--fs-xs);letter-spacing:.12em}.status__v{font-weight:700}.nav{position:relative;display:flex;flex-wrap:wrap;gap:.25ch}.nav .btn{font-size:var(--fs-sm)}.nav__items{display:flex;flex-wrap:wrap;gap:.25ch}.nav>.nav__toggle{display:none}.main{flex:1 1 auto;padding:4px 0 56px;min-width:0}.footbar{position:sticky;bottom:0;display:flex;gap:1.5ch;flex-wrap:wrap;justify-content:space-between;padding:3px 0 6px;font-size:var(--fs-xs);color:var(--ink-faint);letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(0deg,var(--lcd-300),rgba(0,0,0,0));z-index:30}.pie__link{color:var(--ink-faint);text-decoration:none}.pie__link:hover,.pie__link:focus-visible{color:var(--ink);text-decoration:underline}.lang{display:inline-flex;gap:.25ch;align-items:baseline}.lang__opt{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0 .5ch;font:inherit;letter-spacing:inherit;color:var(--ink-faint);background:transparent;cursor:pointer}.lang__opt:hover{color:var(--ink)}.lang__opt.is-on{color:var(--lcd-100);background:var(--ink)}@media(max-width:640px){.footbar{position:static}.main{padding-bottom:16px}.toasts{right:8px;bottom:8px}.nav>.nav__toggle{display:inline-flex}.nav__items{display:none;position:absolute;z-index:50;left:0;top:calc(100% + 2px);flex-direction:column;flex-wrap:nowrap;gap:0;min-width:24ch;max-width:calc(100vw - 24px);padding:2px 0;background:var(--lcd-100);box-shadow:2px 3px #161a1138}.nav__items.is-open{display:flex}.nav__items .btn{width:100%;padding:1px 6px}.nav__items .btn__t{flex:1 1 auto}}.toasts{position:fixed;z-index:80;right:12px;bottom:12px;display:flex;flex-direction:column;gap:6px;width:min(380px,calc(100vw - 24px))}.toast{background:var(--lcd-100);box-shadow:2px 3px #161a1133}.boot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:var(--lcd-200);text-align:center}.boot__all{white-space:pre;line-height:1;font-size:10px;color:var(--ink)}.boot--fade{animation:boot-out .35s ease-in forwards}@keyframes boot-out{to{opacity:0;visibility:hidden}}.stage{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:auto auto;gap:6px;min-height:260px}.stage>*{min-width:0}.stage__foe{grid-column:2;grid-row:1}.stage__self{grid-column:1;grid-row:2}.stage__foe-info{grid-column:1;grid-row:1;align-self:start}.stage__self-info{grid-column:2;grid-row:2;align-self:end}@media(max-width:720px){.stage{grid-template-columns:minmax(0,1fr)}.stage__foe-info,.stage__foe,.stage__self,.stage__self-info{grid-column:1;grid-row:auto;align-self:stretch}}.log{height:8.5em;overflow-y:auto;white-space:pre-wrap;scroll-behavior:smooth}.log__line{display:block}.log__line--sys{color:var(--ink-soft)}.log__line--new{animation:lcd-flicker .3s steps(2,end) 1}.slots{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}@media(max-width:560px){.slots{grid-template-columns:1fr}}.skill{display:block;width:100%;text-align:left;background:none;border:0;font:inherit;padding:2px 6px;cursor:pointer;white-space:pre}.skill:hover:not(:disabled),.skill:focus-visible:not(:disabled){background:var(--ink);color:var(--lcd-100);outline:none}.skill:disabled{color:var(--ink-ghost);cursor:not-allowed}.skill__meta{font-size:var(--fs-xs);color:var(--ink-faint)}.skill:hover:not(:disabled) .skill__meta,.skill:focus-visible:not(:disabled) .skill__meta{color:var(--lcd-200)}.map{display:grid;gap:4px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.prov{display:block;width:100%;text-align:left;background:none;border:0;font:inherit;padding:0;cursor:pointer}.prov.is-here .af__top,.prov.is-here .af__bot,.prov.is-here .af__side{color:var(--ink)}.af{display:block;min-width:0;max-width:100%}.af__top,.af__bot{display:flex;align-items:flex-end;white-space:pre;line-height:1;color:var(--ink-soft);-webkit-user-select:none;user-select:none}.af__fill{display:block;flex:1 1 auto;min-width:0;overflow:hidden;white-space:pre}.af__title{color:var(--ink);font-weight:700;letter-spacing:.14em;text-transform:uppercase;flex:0 0 auto;max-width:100%;overflow:hidden;text-overflow:ellipsis}.af__mid{position:relative}.af__side{position:absolute;top:0;bottom:0;width:1ch;overflow:hidden;white-space:pre;line-height:var(--lh);color:var(--ink-soft);-webkit-user-select:none;user-select:none}.af__side--l{left:0}.af__side--r{right:0}.af__body{min-width:0;padding:4px 2ch 6px}.af--flush .af__body{padding:0 2ch}.af--pad .af__body{padding:10px 2.5ch 12px}.af--sel .af__top,.af--sel .af__bot,.af--sel .af__side{color:var(--ink)}.af--ghost .af__top,.af--ghost .af__bot,.af--ghost .af__side,.af--ghost .af__title{color:var(--ink-ghost)}.rule{display:block;overflow:hidden;white-space:pre;line-height:1;color:var(--ink-line);-webkit-user-select:none;user-select:none}.rule--strong{color:var(--ink-soft)}.btn{display:inline-flex;align-items:center;background:none;border:0;margin:0;padding:0;font:inherit;color:var(--ink);cursor:pointer;letter-spacing:.08em;text-transform:uppercase;white-space:pre;text-decoration:none}.btn{max-width:100%}.btn__b{color:var(--ink-faint)}.btn__t{padding:0 .5ch}.btn:hover:not(:disabled) .btn__t,.btn:focus-visible:not(:disabled) .btn__t{background:var(--ink);color:var(--lcd-100)}.btn:hover:not(:disabled) .btn__b,.btn:focus-visible:not(:disabled) .btn__b{color:var(--ink)}.btn:focus-visible{outline:none}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{cursor:not-allowed;color:var(--ink-ghost)}.btn:disabled .btn__b{color:var(--ink-ghost)}.btn--on .btn__t{background:var(--ink);color:var(--lcd-100)}.btn--on .btn__b{color:var(--ink)}.btn--danger .btn__t{text-decoration:line-through}.ai,.ai__label{display:block}.ai__row{display:flex;align-items:center;white-space:pre;color:var(--ink-faint)}.ai__box{position:relative;flex:1 1 auto;min-width:0}.ai__under{position:absolute;left:0;right:0;bottom:0;overflow:hidden;white-space:pre;line-height:var(--lh);color:var(--ink-ghost);pointer-events:none;-webkit-user-select:none;user-select:none}.ai input,.ai textarea{position:relative;z-index:1;display:block;width:100%;box-sizing:border-box;background:transparent;border:0;outline:none;padding:0 .5ch;margin:0;font:inherit;color:var(--ink);caret-color:var(--ink)}.ai textarea{resize:vertical;min-height:4.5em;line-height:var(--lh)}.ai input[type=number]{-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.ai input::-webkit-outer-spin-button,.ai input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.ai input::placeholder,.ai textarea::placeholder{color:var(--ink-ghost)}.ai input:focus~.ai__under,.ai textarea:focus~.ai__under{color:var(--ink-faint)}.ai--err .ai__row{color:var(--ink)}.ai__err{color:var(--ink);font-size:var(--fs-xs)}.ai__hint{color:var(--ink-faint);font-size:var(--fs-xs)}.sel{position:relative;display:block}.sel>.label{display:block}.sel__pop{position:absolute;z-index:40;left:0;top:calc(100% - 2px);min-width:100%;max-width:calc(100vw - 24px);max-height:240px;overflow-y:auto;background:var(--lcd-100);box-shadow:2px 3px #161a112e}.sel__opt{display:block;width:100%;text-align:left;background:none;border:0;font:inherit;color:var(--ink);padding:1px 6px;cursor:pointer;white-space:pre}.sel__opt[aria-selected=true],.sel__opt:hover,.sel__opt.is-cursor{background:var(--ink);color:var(--lcd-100)}.list{display:block}.list__item{display:flex;align-items:baseline;gap:.75ch;width:100%;text-align:left;background:none;border:0;font:inherit;color:var(--ink);padding:1px 4px;cursor:pointer;white-space:pre}.list__item:hover,.list__item:focus-visible{background:var(--ink);color:var(--lcd-100);outline:none}.list__item.is-on{background:var(--ink);color:var(--lcd-100)}.list__item:disabled{color:var(--ink-ghost);cursor:not-allowed}.list__item:disabled:hover{background:none;color:var(--ink-ghost)}.tbl{width:100%;border-collapse:collapse;white-space:pre}.tbl th{text-align:left;font-weight:700;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding:0 1ch 0 0}.tbl td{padding:0 1ch 0 0;vertical-align:top}.tbl tr.is-me td{background:var(--ink);color:var(--lcd-100)}.tbl .num{text-align:right}.bar{display:flex;align-items:baseline;gap:.75ch;white-space:pre;flex-wrap:wrap}.bar__t{color:var(--ink);letter-spacing:-.02em}.bar__t .off{color:var(--ink-ghost)}.bar--low .bar__t{animation:lcd-blink var(--tick) steps(1,end) infinite}.bar--stack{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:0 .75ch}.bar--stack .label{grid-column:1;grid-row:1}.bar--stack .bar__n{grid-column:2;grid-row:1;text-align:right}.bar--stack .bar__t{grid-column:1 / -1;grid-row:2;overflow:hidden}.pill{white-space:pre;letter-spacing:.06em}.pill--on{background:var(--ink);color:var(--lcd-100)}.art{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:repeating-linear-gradient(45deg,rgba(22,26,17,.05) 0 6px,transparent 6px 12px)}.art__inner{position:relative;z-index:1;padding:6px}.art__tag{font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}.art__name{font-weight:700;letter-spacing:.1em;text-transform:uppercase}.art__size{font-size:var(--fs-xs);letter-spacing:.08em;color:var(--ink);font-weight:700}.art__slot{font-size:var(--fs-xs);color:var(--ink-faint);word-break:break-all}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:16px;background:#161a1147}.modal__box{width:min(560px,100%);background:var(--lcd-100);box-shadow:3px 4px #161a1140}.modal--result{background:#161a1194}.modal--result .modal__box{width:min(760px,100%);max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}.row{display:flex;gap:var(--gap);align-items:center;flex-wrap:wrap}.row--tight{gap:.75ch}.col{display:flex;flex-direction:column;gap:var(--gap)}.col--tight{gap:4px}.between{justify-content:space-between}.grow{flex:1 1 auto;min-width:0}.grid{display:grid;gap:var(--gap)}.grid>*{min-width:0}.grid--2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid--3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.grid--4{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.right{text-align:right}.center{text-align:center}.nowrap{white-space:pre;overflow:hidden;text-overflow:ellipsis}.pre{white-space:pre-wrap}.scroll-y{overflow-y:auto;overscroll-behavior:contain}.scroll-x{overflow-x:auto;max-width:100%}.mt{margin-top:var(--gap)}.mb{margin-bottom:var(--gap)}.hidden-vis{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}::selection{background:var(--ink);color:var(--lcd-100)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ink-ghost)}::-webkit-scrollbar-thumb:hover{background:var(--ink-faint)}@media(max-width:640px){.nowrap{white-space:pre-wrap;overflow:visible}.row{gap:.75ch}.btn__t{white-space:normal}.af__body{padding:4px 1.5ch 6px}.af--pad .af__body{padding:8px 1.5ch 10px}.grid--2,.grid--3{grid-template-columns:minmax(0,1fr)}}
