:root{--c-dark:#0d0c0f;--c-light:#e6dfcc;--c-accent:#d4452f;--c-memory:#86a9c6;--c-good:#d6b25e;--c-dim:color-mix(in srgb, var(--c-light) 64%, var(--c-dark));--c-line:color-mix(in srgb, var(--c-light) 22%, transparent);--c-panel:color-mix(in srgb, var(--c-dark) 86%, transparent);--dither:repeating-conic-gradient(color-mix(in srgb, var(--c-light) 5%, transparent) 0 25%, transparent 0 50%) 0 0 / 4px 4px;--font:"VT323", ui-monospace, monospace;--log-w:min(400px, 31vw)}html,body{background:var(--c-dark);height:100%;margin:0;overflow:hidden}canvas#view{cursor:crosshair;width:100vw;height:100vh;display:block}#ui{pointer-events:none;font-family:var(--font);color:var(--c-light);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:none;font-size:20px;line-height:1.1;position:fixed;inset:0}#ui *{box-sizing:border-box}.dim{color:var(--c-dim)}.accent{color:var(--c-accent)}.memory{color:var(--c-memory)}.good{color:var(--c-good)}.key{text-align:center;border:1px solid var(--c-line);min-width:1.15em;color:var(--c-light);padding:0 .25em;line-height:1;display:inline-block}.panel{background:var(--dither), var(--c-panel);border:1px solid var(--c-line);box-shadow:0 0 0 1px color-mix(in srgb, var(--c-dark) 80%, transparent)}.panel-title{letter-spacing:.12em;text-transform:uppercase;color:var(--c-dim);border-bottom:1px solid var(--c-line);justify-content:space-between;gap:8px;padding:4px 8px;font-size:16px;display:flex}#status{gap:6px;display:grid;position:absolute;top:12px;left:14px}#status .hp{align-items:center;gap:8px;font-size:22px;display:flex}.hpbar{border:1px solid var(--c-line);background:var(--c-dark);width:220px;height:14px;position:relative}.hpbar>i{background:var(--c-accent);position:absolute;inset:1px auto 1px 1px}.hpbar>i.lag{background:var(--c-light);opacity:.5;transition:width .6s .25s}.hpbar.small{width:120px;height:10px}#status .lume{align-items:center;gap:8px;font-size:20px;display:flex}#status .lume .omen{color:var(--c-memory)}#status .stacks{align-items:center;gap:8px;font-size:20px;display:flex}#status .stacks:empty{display:none}.lumebar{gap:2px;display:flex}.lumebar>b{border:1px solid var(--c-line);background:var(--c-dark);width:9px;height:12px}.lumebar>b.on{background:var(--c-light)}.pips{align-items:center;gap:4px;font-size:18px;display:flex}.pips b{border:1px solid var(--c-line);width:10px;height:10px;display:inline-block}.pips b.done{background:var(--c-light)}.pips b.here{border-color:var(--c-accent);background:color-mix(in srgb, var(--c-accent) 45%, transparent)}.pips b.boss{border-radius:50%}#turn{letter-spacing:.08em;white-space:nowrap;padding:3px 14px;font-size:22px;position:absolute;top:12px;left:50%;transform:translate(-50%)}#turn.yours{color:var(--c-dark);background:var(--c-accent)}#turn.free{color:var(--c-dark);background:var(--c-light)}#turn.running{color:var(--c-dim)}#turn small{letter-spacing:0;opacity:.85;margin-left:10px;font-size:17px}#log{width:var(--log-w);pointer-events:auto;background:var(--c-panel);flex-direction:column;display:flex;position:absolute;top:44px;bottom:12px;right:14px}#log.collapsed{bottom:auto}@media (width<=1100px){#log{max-height:44vh;bottom:auto}}#log.collapsed .entries,#log.collapsed .filters{display:none}#log .filters{border-bottom:1px solid var(--c-line);flex-wrap:wrap;gap:4px;padding:5px 8px;display:flex}#log .filters button{font:inherit;color:var(--c-light);cursor:pointer;border:1px solid var(--c-line);background:0 0;align-items:center;gap:4px;padding:0 5px;font-size:17px;display:flex}#log .filters button.off{opacity:.35}#log .entries{scrollbar-width:thin;scrollbar-color:var(--c-line) transparent;flex:1;padding:4px 8px 8px;overflow-y:auto}#log .tick{color:var(--c-dim);border-top:1px dashed var(--c-line);margin-top:6px;padding-top:2px;font-size:16px}#log .tick:first-child{border-top:0;margin-top:0}#log .line{grid-template-columns:10px 1fr;align-items:baseline;gap:6px;font-size:20px;display:grid}#log .line.fresh{animation:.9s ease-out fresh}#log .line .body{flex-wrap:wrap;align-items:baseline;column-gap:10px;display:flex}#log .line .txt{flex:0 auto;min-width:0}#log .line .conta{color:var(--c-dim);white-space:nowrap;text-align:right;cursor:help;margin-left:auto;font-size:18px}#log .line .conta .cp+.cp{margin-left:10px}#log .line .conta .win{color:var(--c-light)}#log.no-contas .conta{display:none}#log .filters button .key{font-size:15px}@keyframes fresh{0%{background:color-mix(in srgb, var(--c-light) 18%, transparent)}to{background:0 0}}.cat{width:8px;height:8px;display:inline-block;transform:translateY(-1px)}.cat.combate{background:var(--c-accent)}.cat.defesa{background:var(--c-light)}.cat.estado{background:repeating-linear-gradient(45deg, var(--c-accent) 0 2px, transparent 2px 4px);outline:1px solid var(--c-accent)}.cat.revela{outline:1px solid var(--c-light);background:0 0}.cat.explora{background:var(--c-good)}.cat.saude{background:var(--c-good);border-radius:50%}.cat.memoria{background:var(--c-memory)}.cat.sistema{background:var(--c-dim)}#dock{flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;bottom:12px;left:14px;right:14px}#ui.log-open #dock{right:calc(var(--log-w) + 28px)}@media (width<=1100px){#ui.log-open #dock{right:14px}}#dock .row{align-items:flex-end;gap:8px;width:100%;display:flex}#timeline{flex:auto;min-width:0;max-width:760px}#timeline canvas{width:100%;image-rendering:pixelated;display:block}#timeline .legend{color:var(--c-dim);flex-wrap:wrap;gap:0 10px;padding:2px 8px 4px;font-size:16px;display:flex}#timeline .legend span{align-items:center;gap:4px;display:inline-flex}#timeline .legend i{width:14px;height:9px;display:inline-block}.sw-locked{background:var(--c-light)}.sw-free{background:repeating-linear-gradient(135deg, var(--c-light) 0 2px, transparent 2px 4px);outline:1px solid var(--c-light)}.sw-guard{background:repeating-linear-gradient(0deg, var(--c-light) 0 1px, transparent 1px 3px);outline:1px solid var(--c-light)}.sw-invuln{outline:1px dotted var(--c-light)}.sw-stun{background:repeating-conic-gradient(var(--c-accent) 0 25%, transparent 0 50%) 0 0 / 4px 4px}.sw-hit{background:var(--c-accent);margin:0 3px;transform:rotate(45deg);width:9px!important;height:9px!important}.sw-hit.other{outline:2px solid var(--c-accent);outline-offset:-2px;background:0 0}.sw-soft{background:var(--c-light);align-self:center;height:1px!important}.sw-preview{background:repeating-linear-gradient(135deg, var(--c-good) 0 2px, transparent 2px 4px);outline:1px solid var(--c-good)}#timeline .legend .pv{color:var(--c-good)}#timeline .legend .q{color:var(--c-light);text-align:center;width:10px;font-weight:400}#prompt{white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:19px;overflow:hidden}#abilities{pointer-events:auto;flex:none;grid-template-columns:repeat(4,70px);gap:4px;display:grid}.slot{cursor:pointer;flex-direction:column;justify-content:space-between;width:70px;height:54px;padding:3px 4px;display:flex;position:relative}.slot .n{color:var(--c-dim);font-size:17px}.slot .name{letter-spacing:-.02em;font-size:18px;line-height:1}.slot canvas{width:100%;height:8px;image-rendering:pixelated;display:block}.slot:hover{border-color:var(--c-light)}.slot.selected{border-color:var(--c-accent);box-shadow:inset 0 0 0 1px var(--c-accent)}.slot.selected .n{color:var(--c-accent)}.tooltip{pointer-events:none;z-index:5;background:var(--c-dark);border-color:color-mix(in srgb, var(--c-light) 45%, var(--c-dark));width:400px;padding:10px 12px;font-size:21px;line-height:1.15;position:absolute}.tooltip h3{margin:0 0 4px;font-size:26px;font-weight:400}.tooltip .row{grid-template-columns:64px 1fr;gap:8px;margin-top:2px;display:grid}.tooltip .nums{color:var(--c-light);opacity:.85;border-top:1px solid var(--c-line);margin-top:6px;padding-top:4px;font-size:19px}.tooltip .nums+.nums{opacity:.7;border-top:0;margin-top:2px;padding-top:0}.tooltip canvas{width:100%;height:10px;image-rendering:pixelated;margin:6px 0 2px}#inspect{background:var(--c-dark);width:290px;padding:7px 10px;font-size:19px;display:none;position:absolute}#inspect h3{justify-content:space-between;margin:0;font-size:22px;font-weight:400;display:flex}#inspect .stats{color:var(--c-dim);grid-template-columns:repeat(4,1fr);margin:3px 0;font-size:18px;display:grid}#inspect .stats b{color:var(--c-light);font-weight:400}#inspect .doing{font-size:19px}#inspect h3{margin:0;font-size:22px;font-weight:400}#inspect .aimhead{color:var(--c-accent);letter-spacing:.06em}#inspect .odds{font-size:22px}#inspect .odds b{color:var(--c-light);font-size:30px;font-weight:400}#inspect hr{border:0;border-top:1px solid var(--c-line);margin:6px 0}#inspect .memory{margin-top:2px}#stacktags{pointer-events:none;position:absolute;inset:0;overflow:hidden}.stacktag{white-space:nowrap;letter-spacing:.03em;background:var(--c-panel);border:1px solid var(--c-line);color:var(--c-light);padding:2px 5px 1px;font-size:19px;line-height:1;position:absolute;transform:translate(-50%,-100%)}.stacktag i{color:var(--c-dim);margin:0 4px;font-style:normal}#floaters{position:absolute;inset:0;overflow:hidden}.floater{white-space:nowrap;text-shadow:1px 0 var(--c-dark), -1px 0 var(--c-dark), 0 1px var(--c-dark), 0 -1px var(--c-dark), 2px 2px var(--c-dark);font-size:30px;position:absolute;transform:translate(-50%,-50%)}.floater.dmg{color:var(--c-light)}.floater.dmg.you{color:var(--c-accent)}.floater.big{font-size:42px}.floater.word{letter-spacing:.04em;font-size:21px}.floater.heal{color:var(--c-good)}.floater.def{color:var(--c-light)}.floater.memo{color:var(--c-memory)}#screen{pointer-events:auto;background:color-mix(in srgb, var(--c-dark) 70%, transparent);justify-content:center;align-items:center;display:none;position:absolute;inset:0}#screen.open{animation:.25s ease-out fade;display:flex}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{scrollbar-width:thin;scrollbar-color:var(--c-line) transparent;width:min(860px,94vw);max-height:90vh;padding:18px 24px 22px;overflow:hidden auto}.sheet h2{letter-spacing:.06em;margin:0 0 4px;font-size:34px;font-weight:400}.sheet .sub{color:var(--c-dim);margin-bottom:14px}.sheet .foot{color:var(--c-dim);margin-top:16px;font-size:17px}.cols{grid-template-columns:1fr 1fr;gap:18px;display:grid}.title{letter-spacing:.08em;background:repeating-conic-gradient(var(--c-light) 0 25%, color-mix(in srgb, var(--c-light) 35%, transparent) 0 50%) 0 0 / 3px 3px;color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(72px,13vw,150px);line-height:.9}.menu{text-align:center}.menu .tag{color:var(--c-dim);margin:6px 0 26px;font-size:22px}.menu nav{justify-items:center;gap:4px;display:grid}.menu button,.btn{font:inherit;color:var(--c-light);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:space-between;gap:16px;min-width:300px;padding:2px 18px;font-size:26px;display:flex}.menu button:hover,.menu button.focus,.btn:hover{border-color:var(--c-line);background:color-mix(in srgb, var(--c-light) 6%, transparent)}.menu button{position:relative}.menu button.focus:before{content:"▸";color:var(--c-accent);position:absolute;left:-18px}.menu button .key{font-size:18px}.menu .seed{color:var(--c-dim);margin-top:18px;font-size:18px}.menu input{font:inherit;background:var(--c-dark);width:120px;color:var(--c-light);border:1px solid var(--c-line);text-align:center;padding:0 6px;font-size:20px}.over h2.lost{color:var(--c-accent)}.statgrid{grid-template-columns:repeat(3,1fr);gap:8px 18px;margin:10px 0;display:grid}.stat{border-top:1px solid var(--c-line);padding-top:3px}.stat b{font-size:30px;font-weight:400;display:block}.stat span{color:var(--c-dim);font-size:16px}.actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.actions .btn{border-color:var(--c-line);min-width:0;font-size:22px}.codex{grid-template-columns:210px 1fr;gap:16px;display:grid}.codex ul{margin:0;padding:0;list-style:none}.codex li{cursor:pointer;gap:8px;padding:2px 6px;display:flex}.codex li.on{background:color-mix(in srgb, var(--c-light) 10%, transparent);box-shadow:inset 2px 0 var(--c-accent)}.codex .detail h3{margin:0;font-size:30px;font-weight:400}.codex .detail p{margin:6px 0}.codex .detail canvas{width:100%;height:22px;image-rendering:pixelated;margin:8px 0 2px}.codex .phases{color:var(--c-dim);flex-wrap:wrap;gap:10px;font-size:17px;display:flex}.help dl{grid-template-columns:170px 1fr;gap:3px 14px;margin:0;display:grid}.help dt{text-align:right}.help dd{color:var(--c-dim);margin:0}.help h3{letter-spacing:.06em;margin:14px 0 6px;font-size:22px;font-weight:400}.inv{grid-template-columns:250px 1fr;align-items:start;gap:18px;display:grid}.equip{align-content:start;gap:4px;display:grid}.equip .eslot{border:1px solid var(--c-line);cursor:pointer;grid-template-columns:112px 1fr;gap:6px;padding:3px 6px;display:grid}.equip .eslot span:first-child{color:var(--c-dim);font-size:16px}.bag{grid-template-columns:repeat(5,1fr);gap:4px;display:grid}.cell{aspect-ratio:1.5;border:1px solid var(--c-line);text-align:center;cursor:pointer;justify-content:center;align-items:center;padding:3px;font-size:15px;line-height:1;display:flex;position:relative}.cell.empty{opacity:.35;cursor:default}.cell .count{color:var(--c-dim);position:absolute;bottom:2px;right:3px}.cell:hover:not(.empty),.eslot:hover,.cell.on,.eslot.on{border-color:var(--c-light)}.glyph{font-size:22px;display:block}.itemcard{min-height:104px;margin-top:10px;padding:8px 10px}.itemcard h3{margin:0;font-size:24px;font-weight:400}.weight{color:var(--c-dim);margin-top:8px;font-size:16px}.classes{width:min(1700px,96vw);max-height:calc(100vh - 32px);padding:16px}.classes .sub{margin-bottom:8px}.classes .foot{margin-top:8px}.classgrid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;display:grid}@media (width<=1719px){.classes{width:min(1050px,96vw)}.classgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}.classcard{font:inherit;color:var(--c-light);text-align:left;cursor:pointer;background:color-mix(in srgb, var(--c-dark) 70%, transparent);border:1px solid var(--c-line);flex-direction:column;gap:4px;padding:8px 10px;font-size:18px;line-height:1.15;display:flex}.classcard .head{align-items:center;gap:8px;font-size:26px;display:flex}.classcard .head b{letter-spacing:.04em;font-weight:400}.classportrait{object-fit:contain;width:240px;max-width:100%;height:144px;image-rendering:pixelated;align-self:center;display:block}.classcard p{min-height:2.3em;margin:2px 0}.classcard.focus,.classcard:hover{border-color:var(--c-light);box-shadow:inset 0 0 0 1px var(--c-accent)}.codex li.missing{opacity:.4}.baglist{gap:3px;max-height:300px;display:grid;overflow-y:auto}.baglist .head{text-transform:lowercase;margin-top:6px;font-size:16px}.irow{border:1px solid var(--c-line);cursor:pointer;grid-template-columns:40px 1fr auto;align-items:center;gap:8px;padding:2px 6px;display:grid}.irow:hover,.irow.on{border-color:var(--c-light)}.irow .count{color:var(--c-dim)}.icon{justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex;position:relative}.icon img{width:36px;height:36px;image-rendering:pixelated;filter:grayscale()contrast(1.3);position:absolute;inset:0}.icon img+b{display:none}.icon b{font-size:22px;font-weight:400}.eslot .icon{vertical-align:middle;width:24px;height:24px;margin-right:4px}.eslot .icon img{width:24px;height:24px}.eslot.fixed{cursor:default;opacity:.7}.itemcard .actions{flex-wrap:wrap;gap:4px 14px;margin-top:6px;display:flex}.itemcard .actions b{color:var(--c-good);font-weight:400}#inspect .danger{color:var(--c-accent)}.classes .difficulty{text-align:left;width:100%;color:var(--c-light);border:1px solid var(--c-line);font:inherit;cursor:pointer;background:0 0;margin:6px 0 10px;padding:6px 10px;font-size:18px;display:block}.classes .difficulty:hover{border-color:var(--c-light)}.classes .difficulty b{color:var(--c-good);font-weight:400}#status .lvl{align-items:center;gap:8px;font-size:19px;display:flex}.xpbar{border:1px solid var(--c-line);background:var(--c-dark);vertical-align:middle;width:120px;height:7px;display:inline-block;position:relative}.xpbar>i{background:var(--c-good);max-width:calc(100% - 2px);position:absolute;inset:1px auto 1px 1px}#status .gold{color:var(--c-good)}#status .place{font-size:17px}#banner{text-align:center;pointer-events:none;opacity:0;background:var(--c-dark);border-top:1px solid var(--c-line);border-bottom:1px solid var(--c-line);white-space:nowrap;padding:8px 28px 10px;transition:opacity .6s;position:absolute;top:20%;left:50%;transform:translate(-50%)}#banner.show{opacity:1;animation:3.2s ease-out forwards bannerIn}#banner .t{letter-spacing:.14em;text-transform:lowercase;font-size:54px}#banner .s{color:var(--c-dim);margin-top:2px;font-size:22px}@keyframes bannerIn{0%{opacity:0;letter-spacing:.3em}12%{opacity:1}80%{opacity:1}to{opacity:0;letter-spacing:.14em}}.floater.xp{color:var(--c-good);font-size:19px}.floater.level{color:var(--c-good);letter-spacing:.1em}.charsheet{width:min(1060px,96vw)}.charsheet .sub b{font-weight:400}.charsheet .sub .xpbar{width:160px;margin:0 6px}.charcols{grid-template-columns:330px 1fr;align-items:start;gap:18px;display:grid}.charcols .head{margin-bottom:4px}.arow{border:1px solid var(--c-line);cursor:pointer;grid-template-columns:96px 36px 1fr auto;align-items:baseline;gap:4px 8px;margin-bottom:3px;padding:3px 6px;display:grid}.arow b{font-size:22px;font-weight:400}.arow .hint{grid-column:1/-1;font-size:16px;line-height:1.05}.arow.on,.prow.on{border-color:var(--c-light);box-shadow:inset 2px 0 var(--c-accent)}.derived{color:var(--c-dim);grid-template-columns:1fr 1fr;gap:2px 10px;margin-top:10px;font-size:18px;display:grid}.derived b{color:var(--c-light);font-weight:400}.tabs{flex-wrap:wrap;gap:4px;margin-bottom:4px;display:flex}.tab{border:1px solid var(--c-line);cursor:pointer;align-items:center;gap:6px;padding:1px 8px;font-size:18px;display:inline-flex}.tab.on{border-color:var(--c-accent);color:var(--c-light);background:color-mix(in srgb, var(--c-accent) 18%, transparent)}.treehint{margin-bottom:4px;font-size:16px}.prow{border:1px solid var(--c-line);cursor:pointer;grid-template-columns:46px auto 1fr auto;align-items:baseline;gap:2px 10px;margin-bottom:3px;padding:3px 6px;display:grid}.prow b{font-size:21px;font-weight:400}.prow .lv{color:var(--c-dim);font-size:16px}.prow .desc{color:var(--c-dim);grid-column:1/-1;font-size:17px;line-height:1.1}.prow.has b{color:var(--c-good)}.trade{width:min(980px,96vw)}.tradecols{grid-template-columns:1fr 1fr;gap:14px;display:grid}.tcol{align-content:start;gap:3px;max-height:340px;display:grid;overflow-y:auto}.trade .irow{grid-template-columns:40px 1fr auto auto}.trade .irow.off{opacity:.55}.slot{position:relative}.slot.tech{border-style:dashed}.slot.tech .name{color:var(--c-good)}.slot.cooling{opacity:.45}.slot .cd{color:var(--c-accent);font-size:15px;position:absolute;top:1px;right:4px}.menu button small{font-size:16px}
