.btn{appearance:none;background:var(--raised);color:var(--text);border:1px solid var(--line);height:var(--control);padding:0 var(--s3);font:inherit;white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--line-hot)}.btn:focus:not(:focus-visible){outline:none}.btn[aria-pressed=true]{border-color:var(--line-hot);color:var(--text)}.btn--icon{width:var(--control);height:var(--control);color:var(--muted);justify-content:center;align-items:center;padding:0;display:inline-flex}.btn--icon:hover:not(:disabled){color:var(--text)}.btn:disabled{color:var(--dim);cursor:not-allowed}.btn--signal{border-color:var(--signal);color:var(--signal)}.field{gap:var(--step);flex-direction:column;display:flex}.field__label{color:var(--muted);font-size:var(--t-body);letter-spacing:.08em}.field__input{appearance:none;width:100%;height:var(--control);background:var(--bg);color:var(--text);border:1px solid var(--line);padding:0 var(--s2);font:inherit}.field__input:focus{border-color:var(--line-hot);outline:none}.field__hint{color:var(--dim);font-size:var(--t-body);margin:0}.field__error{color:var(--signal);font-size:var(--t-body);margin:0}.panel{border:1px solid var(--line);background:var(--surface);flex-direction:column;min-height:0;display:flex}.panel__head{justify-content:space-between;align-items:center;gap:var(--gap);padding:var(--s2) var(--pad);border-bottom:1px solid var(--line);color:var(--muted);font-size:var(--t-body);letter-spacing:.08em;display:flex}.panel__body{padding:var(--pad);min-height:0;overflow:auto}.toolbar{align-items:center;gap:var(--gap);padding:var(--s2) var(--pad);border-bottom:1px solid var(--line);display:flex}.btn--active{border-color:var(--active);color:var(--active)}.btn--active:hover:not(:disabled){border-color:var(--active);color:var(--text)}.failure{max-width:520px;margin:calc(var(--s6) + var(--s6)) auto;padding:0 var(--pad);flex-direction:column;display:flex}.failure__copy{margin:0 0 var(--gap);color:var(--text);font-size:var(--t-body)}.failure__detail{margin:0 0 var(--gap);color:var(--muted);font-size:var(--t-body);overflow-wrap:anywhere}.failure__actions{align-items:center;gap:var(--gap);display:flex}.log{font-size:var(--t-body);flex-direction:column;min-width:560px;display:flex}.log__row{gap:var(--gap);padding:var(--s1) var(--pad);border-bottom:1px solid var(--line);grid-template-columns:84px 68px minmax(0,1fr) minmax(0,1.4fr);display:grid}.log__at,.log__mod{color:var(--dim);white-space:nowrap}.log__msg{text-overflow:ellipsis;overflow:hidden}.log__keys{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.log__row--warn .log__msg{color:var(--text)}.log__row--error .log__msg{color:var(--signal)}.drawer{z-index:20;background:var(--surface);border-top:1px solid var(--line);height:40vh;padding-bottom:env(safe-area-inset-bottom,0px);grid-template-rows:auto 1fr;display:grid;position:fixed;bottom:0;left:0;right:0}.drawer--full{height:100%}.drawer .toolbar{flex-wrap:nowrap;align-items:flex-start}.drawer__controls{align-items:center;gap:var(--s2);flex-wrap:wrap;flex:auto;min-width:0;display:flex}.drawer__icons{gap:var(--s2);flex:none;display:flex}.drawer__title{font-size:var(--t-body);letter-spacing:.08em;color:var(--muted)}.drawer__body{min-height:0;overflow:auto}.header{justify-content:space-between;align-items:center;gap:var(--gap);height:50px;padding:0 var(--pad);padding-top:env(safe-area-inset-top,0px);box-sizing:content-box;border-bottom:1px solid var(--line);display:flex}.header__identity{align-items:center;gap:var(--s3);min-width:0;display:flex}.header__brand{font-size:var(--t-brand);letter-spacing:.14em;color:var(--text);flex:none;text-decoration:none}.header__who{align-items:baseline;gap:var(--s2);min-width:0;padding-left:var(--s3);border-left:1px solid var(--line);text-decoration:none;display:flex}.header__name{color:var(--text);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.header__being{color:var(--muted);letter-spacing:.08em;white-space:nowrap}.header__who:hover .header__being{color:var(--text)}.header__who:focus:not(:focus-visible){outline:none}.header__actions{align-items:center;gap:var(--s2);display:flex}.header__icon{appearance:none;color:var(--muted);font:inherit;width:var(--control);height:var(--control);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;display:inline-flex}.header__icon:hover,.header__icon[aria-pressed=true]{color:var(--text)}.header__icon:focus:not(:focus-visible){outline:none}.header__link{color:var(--muted);letter-spacing:.08em;padding:var(--s2) var(--s3);text-decoration:none}.header__link:hover,.header__link[aria-current=page]{color:var(--text)}.header__link:focus:not(:focus-visible){outline:none}.tabs{background:var(--bg);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom,0px);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.tabs__tab{min-height:50px;padding:var(--s2) var(--s1);letter-spacing:.08em;color:var(--muted);background:0 0;justify-content:center;align-items:center;text-decoration:none;display:flex}.tabs__tab:hover{color:var(--text)}.tabs__tab[aria-current=page]{color:var(--text);background:var(--surface)}.tabs__tab:focus:not(:focus-visible){outline:none}.shell{height:100%;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);grid-template-rows:auto 1fr auto;display:grid;position:relative}.shell--bare{padding-bottom:env(safe-area-inset-bottom,0px)}.shell__body{min-height:0;overflow:hidden}.auth{gap:var(--gap);max-width:320px;margin:calc(var(--s6) + var(--s6)) auto;padding:0 var(--pad);flex-direction:column;display:flex}.auth__title{margin:0 0 var(--gap);font-size:var(--t-body);letter-spacing:.08em;color:var(--text);font-weight:400}.auth__footer{color:var(--muted);font-size:var(--t-body);margin:0}.page{grid-template-rows:1fr;height:100%;min-height:0;display:grid}.page__body{min-height:0;padding:var(--pad);overflow:auto}.about{gap:var(--gap);flex-direction:column;display:flex}.about__versions{gap:var(--s2);flex-direction:column;margin:0;display:flex}.about__row{gap:var(--gap);display:flex}.about__name{color:var(--muted);letter-spacing:.08em;min-width:80px}.about__version{color:var(--text);margin:0}.about__credit{color:var(--dim);margin:0}.about__credit+.about__credit{margin-top:var(--s2)}.about__credit a{color:var(--muted);text-decoration:none}.about__credit a:hover{color:var(--text)}.roster{gap:var(--hairline);background:var(--line);border:1px solid var(--line);grid-template-columns:1fr;display:grid}.roster__row{justify-content:space-between;align-items:center;gap:var(--gap);background:var(--surface);display:flex}.roster__pick{appearance:none;align-items:center;gap:var(--s3);min-width:0;color:inherit;font:inherit;text-align:left;padding:var(--s3) var(--pad);cursor:pointer;background:0 0;border:none;flex:1;display:flex}.roster__pick:disabled{cursor:default}.roster__pick:focus:not(:focus-visible){outline:none}.roster__mark{width:var(--s4);color:var(--dim);flex:none;justify-content:center;align-items:center;display:flex}.roster__row--active .roster__mark{color:var(--text)}.roster__text{gap:var(--s1);flex-direction:column;min-width:0;display:flex}.roster__name{color:var(--muted);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.roster__pick:hover:not(:disabled) .roster__name,.roster__row--active .roster__name{color:var(--text)}.roster__meta{color:var(--dim)}.roster__actions{gap:var(--s2);padding:var(--s3) var(--pad) var(--s3) 0;flex:none;display:flex}.characters{gap:var(--s5);flex-direction:column;display:flex}.characters__roster{gap:var(--s2);flex-direction:column;display:flex}.characters__label{color:var(--dim);letter-spacing:.08em}.characters__empty{color:var(--muted);margin:0}.characters__subject{gap:var(--s1);flex-direction:column;min-width:0;display:flex}.characters__name{color:var(--text);letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.characters__meta{color:var(--muted)}.characters__warn{color:var(--text);margin:0}.characters__form{gap:var(--gap);flex-direction:column;display:flex}.characters__reroll{color:var(--muted);margin:0;margin-top:var(--step)}.characters__actions{gap:var(--s2);display:flex}.tome{gap:var(--hairline);background:var(--line);border:1px solid var(--line);grid-template-columns:1fr;display:grid}.tome__opt{appearance:none;background:var(--surface);color:var(--text);padding:var(--s3);text-align:left;cursor:pointer;align-items:baseline;gap:var(--gap);font:inherit;border:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);display:grid}.tome__opt--on{background:var(--raised);border-left:1px solid var(--line-hot)}.tome__being{color:var(--muted);font-size:var(--t-body)}.tome__id{color:var(--dim);font-size:var(--t-body);text-align:right}.tome__empty{color:var(--muted);font-size:var(--t-body)}@font-face{font-family:Departure Mono;src:url(/fonts/departure-mono/DepartureMono-Regular.woff2)format("woff2"),url(/fonts/departure-mono/DepartureMono-Regular.woff)format("woff");font-weight:400;font-style:normal;font-display:block}:root{--bg:#0a0a0a;--surface:#121212;--raised:#1a1a1a;--line:#262626;--line-hot:#3a3a3a;--text:#ededed;--muted:#8a8a8a;--dim:#5a5a5a;--signal:#d8524f;--entity:#ff0015;--active:#4ad07a;--font:"Departure Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--t-body:11px;--t-brand:11px;--lh-body:18px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--hairline:1px;--control:32px;--control-lg:42px;--step:var(--s1);--gap:var(--s3);--pad:var(--s4);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (min-width:900px){:root{--pad:var(--s3)}}*,:before,:after{box-sizing:border-box;border-radius:0}html,body,#app{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:var(--t-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased}code,kbd,samp{font-variant-ligatures:none}a{color:var(--text);-webkit-text-decoration-color:var(--line-hot);text-decoration-color:var(--line-hot)}:focus-visible{outline:1px solid var(--text);outline-offset:1px}
