.browser{z-index:2;border:1px solid var(--line);background:var(--bg);border-radius:.4rem;flex-direction:column;display:flex;position:absolute;inset:.75rem;overflow:hidden;box-shadow:0 .5rem 1.5rem #00000040}.browser__header{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:.7rem;padding:.7rem 1rem;display:flex}.browser__title{letter-spacing:-.02em;margin:0;font-size:1rem}.browser__filter{align-items:center;gap:.4rem;min-width:0;display:flex}.browser__filter-label{color:var(--muted);font-size:.8rem}.browser__filter select{border:1px solid var(--line);background:var(--map-bg);max-width:14rem;color:var(--fg);font:inherit;border-radius:.25rem;padding:.25rem .4rem;font-size:.85rem}.browser__close{border:1px solid var(--line);background:var(--map-bg);color:var(--fg);font:inherit;cursor:pointer;border-radius:.25rem;margin-left:auto;padding:.25rem .6rem;font-size:.8rem}.browser__close:hover{border-color:var(--accent)}.browser__body{flex:1;min-height:0;padding:.4rem 1rem 1rem;overflow-y:auto}.browser__list{margin:0;padding:0;list-style:none}.browser__row{border-bottom:1px solid var(--line);padding:.7rem 0}.browser__row:last-child{border-bottom:none}.browser__when{align-items:baseline;gap:.5rem;margin:0 0 .15rem;font-size:.9rem;display:flex}.browser__real{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.browser__flag{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent);border-radius:.7rem;padding:.02rem .35rem;font-size:.7rem}.browser__text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:.9rem;line-height:1.5}.browser__where{flex-wrap:wrap;gap:.35rem;margin:.3rem 0 0;font-size:.75rem;display:flex}.browser__source,.browser__spot,.browser__area{color:var(--muted);border:1px solid var(--line);border-radius:.7rem;padding:.05rem .4rem}.browser__source{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.browser__spot{border-style:dashed}.browser__nowhere,.browser__empty{color:var(--muted);font-size:.85rem}.browser__empty{margin:1rem 0}.browser__error{margin:1rem 0;font-size:.85rem}@media (pointer:coarse){.browser__close{min-height:2.5rem}.browser__filter select{min-height:2.5rem;font-size:1rem}}@media (width<=40rem){.browser{inset:.4rem}.browser__header{flex-wrap:wrap;gap:.5rem;padding:.6rem .7rem}.browser__body{padding:.4rem .7rem 1rem}}.legend{pointer-events:auto;flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.legend__toggle,.legend__list{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:.3rem;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:.8rem}.legend__toggle{font:inherit;cursor:pointer;align-items:center;gap:.4rem;padding:.4rem .7rem;font-size:.8rem;display:flex}.legend__toggle:hover{border-color:var(--accent);color:var(--fg)}.legend__caret{font-size:.7rem;line-height:1}.legend__list{max-height:60vh;margin:0;padding:.5rem .7rem;list-style:none;overflow-y:auto}.legend__row{align-items:center;gap:.5rem;padding:.1rem 0;display:flex}.legend__swatch{background:var(--map-bg);border-radius:.2rem;flex:none}.legend__name{color:var(--fg);white-space:nowrap;text-transform:uppercase;letter-spacing:.05em}@media (pointer:coarse){.legend__toggle{min-height:2.5rem}}@media (width<=40rem){.legend__toggle,.legend__list{font-size:.7rem}.legend__toggle{padding:.3rem .5rem}.legend__list{max-height:40vh}.legend{flex-direction:column-reverse}.legend__caret{transform:scaleY(-1)}}.map-canvas{width:100%;height:100%;position:relative}.map-canvas__svg{background:var(--map-bg);touch-action:none;cursor:default;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.map-canvas__grid-line{stroke:var(--grid-line)}.map-canvas__origin{fill:none;stroke:var(--grid-origin)}.map-canvas__hud{pointer-events:none;flex-direction:column;align-items:flex-start;gap:.4rem;display:flex;position:absolute;bottom:.75rem;left:.75rem}.map-canvas__readout{border:1px solid var(--line);background:var(--bg);color:var(--muted);pointer-events:none;border-radius:.3rem;gap:1rem;padding:.4rem .7rem;font-family:ui-monospace,SF Mono,Cascadia Mono,Menlo,Consolas,monospace;font-size:.8rem;display:flex}.map-canvas__readout strong{color:var(--fg);font-weight:600}.map-canvas__region-label{fill:var(--muted);fill-opacity:.85;letter-spacing:.14em;text-transform:uppercase;stroke:var(--map-bg);stroke-width:3px;stroke-opacity:.7;paint-order:stroke;pointer-events:none;font-size:11px;font-weight:600}.map-canvas__tracing polyline{stroke:var(--accent);stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.map-canvas__tracing circle{fill:var(--bg);stroke:var(--accent)}.map-canvas__measure line{stroke:var(--accent);vector-effect:non-scaling-stroke}.map-canvas__measure[data-frozen=true] line{stroke-dasharray:5 3}.map-canvas__measure circle{fill:var(--bg);stroke:var(--accent);stroke-width:1.5px;vector-effect:non-scaling-stroke}.map-canvas__measure-label{fill:var(--accent);font-variant-numeric:tabular-nums;stroke:var(--map-bg);stroke-width:3px;paint-order:stroke;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:12px;font-weight:600}.map-canvas__marker-halo{stroke-width:1.5px}.map-canvas__marker-label{fill:var(--fg);stroke:var(--map-bg);stroke-width:3px;paint-order:stroke;font-size:12px;font-weight:500}.map-canvas__marker-detail{fill:var(--muted);fill-opacity:.75;stroke:var(--map-bg);stroke-width:2.5px;stroke-opacity:.75;paint-order:stroke;font-size:10px}.map-canvas__error{border:1px solid var(--bad);background:var(--bg);color:var(--bad);pointer-events:none;border-radius:.3rem;padding:.4rem .7rem;font-size:.8rem;position:absolute;top:.75rem;left:.75rem}.map-canvas[data-measuring=true] .map-canvas__svg{cursor:crosshair}@media (width<=40rem){.map-canvas__hud{flex-direction:column-reverse;top:.5rem;bottom:auto;left:.5rem}.map-canvas__readout{gap:.6rem;padding:.3rem .5rem;font-size:.7rem}.map-canvas__readout .map-canvas__centre{display:none}}.mapview-panel{z-index:1;border:1px solid var(--line);background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:.4rem;flex-direction:column;gap:.7rem;width:20rem;padding:.9rem 1rem;display:flex;position:absolute;top:.75rem;bottom:.75rem;right:.75rem;overflow-y:auto;box-shadow:0 .5rem 1.5rem #00000040}.mapview-panel__handle{display:none}.mapview-panel__title{overflow-wrap:anywhere;margin:0;font-size:1rem}.mapview-panel__facts{grid-template-columns:auto 1fr;gap:.2rem .8rem;margin:0;font-size:.85rem;display:grid}.mapview-panel__facts dt{color:var(--muted)}.mapview-panel__facts dd{font-variant-numeric:tabular-nums;margin:0}.mapview-panel__notes{white-space:pre-wrap;overflow-wrap:anywhere;flex:none;margin:0;font-size:.9rem;line-height:1.5}.mapview-panel__field{color:var(--muted);flex-direction:column;gap:.25rem;min-width:0;font-size:.8rem;display:flex}.mapview-panel__field--grow{flex:1 0 auto}.mapview-panel__advanced{border-top:1px solid var(--line);margin-bottom:.2rem;padding-top:.6rem}.mapview-panel__advanced summary{color:var(--muted);cursor:pointer;margin-bottom:.5rem;font-size:.8rem}.mapview-panel__advanced summary:hover{color:var(--fg)}.mapview-panel__row{gap:.5rem;display:flex}.mapview-panel input,.mapview-panel textarea,.mapview-panel select{border:1px solid var(--line);background:var(--map-bg);width:100%;color:var(--fg);font:inherit;border-radius:.25rem;padding:.35rem .45rem;font-size:.9rem}.mapview-panel textarea{resize:vertical;min-height:7rem;line-height:1.45}.mapview-panel select{padding-right:.3rem}.mapview-panel input:focus-visible,.mapview-panel textarea:focus-visible,.mapview-panel select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.mapview-panel__actions{flex-wrap:wrap;gap:.4rem;display:flex}.mapview-panel button{border:1px solid var(--line);background:var(--map-bg);color:var(--fg);font:inherit;cursor:pointer;border-radius:.25rem;padding:.35rem .7rem;font-size:.85rem}.mapview-panel button:hover:not(:disabled){border-color:var(--accent)}.mapview-panel button:disabled{color:var(--muted);cursor:default}.mapview-panel__danger{color:var(--bad)}.mapview-panel__section{flex-direction:column;gap:.35rem;display:flex}.mapview-panel__section-title{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.75rem;font-weight:600}.mapview-panel__inline-list{overflow-wrap:anywhere;margin:0;font-size:.85rem;line-height:1.45}.mapview-panel__events,.mapview-panel__npcs{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.mapview-panel__event-when,.mapview-panel__npc-name{align-items:baseline;gap:.5rem;margin:0;font-size:.85rem;display:flex}.mapview-panel__event-where{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.78rem;font-style:italic}.mapview-panel__event-real,.mapview-panel__npc-race{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.75rem}.mapview-panel__event-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:.85rem;line-height:1.45}.mapview-panel__event,.mapview-panel__npc{border-bottom:1px solid var(--line);flex-direction:column;gap:.3rem;padding-bottom:.5rem;display:flex}.mapview-panel__event textarea{min-height:0}.mapview-panel__add{color:var(--muted);align-self:flex-start;padding:.25rem .6rem;font-size:.8rem}.mapview-panel__add:hover:not(:disabled){color:var(--fg)}.mapview-panel__hint{color:var(--muted);margin:0;font-size:.8rem}.mapview-panel__error{color:var(--bad);margin:0;font-size:.8rem}@media (width<=40rem){.mapview-panel{border-radius:.6rem .6rem 0 0;width:auto;height:50%;padding-top:.2rem;inset:auto 0 0;box-shadow:0 -.5rem 1.5rem #00000059}.mapview-panel__handle{cursor:ns-resize;touch-action:none;justify-content:center;align-items:center;height:1.6rem;margin:-.2rem -1rem 0;display:flex}.mapview-panel__grip{background:var(--line);border-radius:.25rem;width:2.5rem;height:.25rem}.mapview-panel__handle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.mapview-panel input,.mapview-panel textarea,.mapview-panel select{font-size:16px}}@media (pointer:coarse){.mapview-panel input,.mapview-panel textarea,.mapview-panel select{font-size:16px}.mapview-panel button{min-height:2.75rem;padding:.5rem .9rem}}.mapview-panel__flags{flex-wrap:wrap;gap:.8rem;display:flex}.mapview-panel__flag{color:var(--muted);cursor:pointer;align-items:center;gap:.3rem;font-size:.8rem;display:flex}.mapview-panel__flag input{cursor:pointer;width:auto;margin:0}.mapview-panel__npc-flag{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);color:var(--accent);border-radius:.7rem;padding:.02rem .35rem;font-size:.7rem}.mapview{--bg:#171614;--fg:#ece8e1;--muted:#9a938a;--line:#35322d;--bad:#e0796a;--map-bg:#14130f;--grid-line:#302c26;--grid-origin:#e0796a;--poi-spit:#7fbcd8;--poi-port-town:#7fc08e;--poi-tall-shank:#cba96a;--poi-huge-town:#79b4de;--poi-reskana-remnant:#a89bd8;--poi-fucked-up-shit:#e0796a;--poi-point-of-interest:#6fc4bd;--poi-under-thrash-rift:#d68ab8;--poi-unknown:#9a938a;--accent:#79b4de;--region-kingdom:#a89bd8;--region-forest:#79c288;--region-swamp:#b3ac6a;--region-desert:#d8b481;--region-water:#7fbcd8;--region-unknown:#a89f94}[data-theme=light] .mapview{--bg:#fbfaf7;--fg:#1c1a17;--muted:#6c6760;--line:#ddd8cf;--bad:#a33a2c;--map-bg:#f4f1ea;--grid-line:#d8d2c6;--grid-origin:#a33a2c;--poi-spit:#3d7591;--poi-port-town:#2f6b3f;--poi-tall-shank:#8a6d3b;--poi-huge-town:#1f5c8b;--poi-reskana-remnant:#6b5ca5;--poi-fucked-up-shit:#a33a2c;--poi-point-of-interest:#2f7d78;--poi-under-thrash-rift:#8b3a6b;--poi-unknown:#6c6760;--accent:#1f5c8b;--region-kingdom:#6b5ca5;--region-forest:#3f7a4a;--region-swamp:#6f6a3a;--region-desert:#a8834a;--region-water:#3d7591;--region-unknown:#7a736a}.mapview{flex-direction:column;height:100%;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;display:flex}.mapview__toolbar{border-bottom:1px solid var(--line);flex:none;align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.mapview__action{border:1px solid var(--line);background:var(--map-bg);color:var(--fg);font:inherit;cursor:pointer;border-radius:.25rem;padding:.25rem .6rem;font-size:.8rem}.mapview__action:hover:not(:disabled){border-color:var(--accent)}.mapview__action:disabled{color:var(--muted);cursor:default}.mapview__action[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb, var(--accent) 12%, var(--map-bg))}.mapview__speed{color:var(--muted);align-items:center;gap:.4rem;font-size:.8rem;display:flex}.mapview__speed input[type=range]{width:6rem;accent-color:var(--accent);cursor:pointer}.mapview__speed-value{color:var(--fg);font-variant-numeric:tabular-nums;text-align:center;min-width:.7rem;font-weight:600}.mapview__speed-rate{font-variant-numeric:tabular-nums;min-width:5rem}.mapview__body{flex:1;min-height:0;display:flex;position:relative}.mapview__map{flex:1;min-width:0;min-height:0}@media (pointer:coarse){.mapview__action{min-height:2.5rem;padding:.4rem .8rem}.mapview__speed input[type=range]{width:8rem;height:2.5rem}}@media (width<=40rem){.mapview__toolbar{flex-wrap:wrap;gap:.6rem;padding:.5rem .7rem}.mapview__speed{gap:.3rem;font-size:.75rem}.mapview__speed input[type=range]{width:5rem}.mapview__speed-rate{display:none}}@font-face{font-family:Philosopher;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/philosopher-400.woff2)format("woff2")}@font-face{font-family:Philosopher;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/philosopher-700.woff2)format("woff2")}@font-face{font-family:Philosopher;font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/philosopher-400-italic.woff2)format("woff2")}@font-face{font-family:Philosopher;font-style:italic;font-weight:700;font-display:swap;src:url(/fonts/philosopher-700-italic.woff2)format("woff2")}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1a1d24;--sidebar-bg:#14161c;--text:#e6e7ea;--text-muted:#9aa0aa;--border:#2a2e38;--surface:#2f343f;--surface-hover:#3b414e;--active:#4338ca;--link:#8ab4ff;--income-quality:#8fae9b;--income-level:#a49bc0;--income-base:#b3a488;--income-total:#93aec4;--adv-bg:#2e6b4f;--dis-bg:#8c3b3b;--interaction-negative:#c08a86;--interaction-positive:#86b596;--icon-filter:invert(1) grayscale(1) brightness(1.6)}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--sidebar-bg:#f4f4f6;--text:#1f2430;--text-muted:#6b7280;--border:#e2e2e8;--surface:#fff;--surface-hover:#ececf0;--active:#dcdcff;--link:#2563eb;--income-quality:#4f7a63;--income-level:#665b93;--income-base:#7d6a45;--income-total:#456580;--adv-bg:#2f7d57;--dis-bg:#b03f3e;--interaction-negative:#9c4a44;--interaction-positive:#3f7a56;--icon-filter:none}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:var(--bg);font-family:Philosopher,system-ui,-apple-system,sans-serif;transition:background-color .15s,color .15s}button,input,select,textarea{font-family:inherit}.app{height:100vh;display:flex;position:relative;overflow:hidden}.sidebar{background:var(--sidebar-bg);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:.5rem;width:4.5rem;padding:.5rem;transition:width .15s;display:flex;overflow:hidden}.sidebar--expanded{width:15rem}.sidebar__brand{align-items:center;gap:.5rem;min-height:2.5rem;padding:.25rem;display:flex}.sidebar__logo{flex-shrink:0;width:2rem;height:2rem}.sidebar__title{white-space:nowrap;font-size:1rem;font-weight:700}.sidebar__toggle{height:2rem;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__toggle:hover{background:var(--surface-hover)}.sidebar__nav{flex-direction:column;gap:.25rem;display:flex;overflow-y:auto}.nav-item{width:100%;color:var(--text);white-space:nowrap;cursor:pointer;background:0 0;border:none;border-radius:.375rem;align-items:center;gap:.625rem;padding:.5rem;font-size:.9rem;display:flex}.nav-item:hover{background:var(--surface-hover)}.nav-item.active{background:var(--active)}.nav-item__icon{flex-shrink:0;width:1.5rem;height:1.5rem}img.nav-item__icon{filter:var(--icon-filter)}.sidebar__footer{flex-direction:column;gap:.25rem;margin-top:auto;display:flex}.sidebar__version{color:var(--text-muted);text-align:center;padding:.25rem;font-size:.75rem}.sidebar__title,.nav-item__label{display:none}.sidebar__brand,.nav-item{justify-content:center}.sidebar--expanded .sidebar__title{display:block}.sidebar--expanded .nav-item__label{display:inline}.sidebar--expanded .sidebar__brand,.sidebar--expanded .nav-item{justify-content:flex-start}.main{flex:1;padding:2rem;overflow-y:auto}.main--full{min-height:0;padding:0;overflow:hidden}.characters{max-width:32rem;margin-inline:auto}.characters__section--divider{border-top:1px solid var(--border);margin-top:2rem;padding-top:1.5rem}.characters__empty{color:var(--text-muted)}.characters__list{flex-direction:column;gap:.4rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.character{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:.5rem;flex-direction:column;gap:.6rem;padding:.5rem .75rem;display:flex}.character__header{align-items:center;gap:.6rem;display:flex}.character__owner{color:var(--text-muted);flex-shrink:0;font-size:.75rem}.character__name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.character__icon-btn{width:1.5rem;height:1.5rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;display:flex}.character__icon-btn:hover{color:var(--text);background:var(--surface-hover)}.character-detail__back{color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:.375rem;align-items:center;gap:.35rem;margin-bottom:1rem;padding:.35rem .6rem .35rem .45rem;font-size:.9rem;display:inline-flex}.character-detail__back:hover{color:var(--text);background:var(--surface-hover)}.character-detail__header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem;display:flex}.character-detail__name{margin:0}.character-detail>.character-detail__name{margin-bottom:1rem}.character-detail__edit{color:#fff;background:var(--active);cursor:pointer;border:none;border-radius:.375rem;flex-shrink:0;align-items:center;gap:.35rem;padding:.4rem .7rem;font-size:.9rem;display:inline-flex}.character-detail__edit:hover{opacity:.9}.character-detail__section{margin-top:1.5rem}.character-detail__section h2{margin-bottom:.5rem}.character__meta{grid-template-columns:max-content 1fr;align-items:baseline;gap:.5rem .75rem;margin:0;display:grid}.character__meta-item{display:contents}.character__meta dt{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.75rem}.character__meta dd{margin:0}.character__backstory{font-size:.95rem;line-height:1.55}.character__backstory>:first-child{margin-top:0}.character__backstory>:last-child{margin-bottom:0}.character__backstory h1,.character__backstory h2,.character__backstory h3{margin:.75rem 0 .4rem;line-height:1.25}.character__backstory pre{background:var(--bg);border:1px solid var(--border);border-radius:.375rem;padding:.6rem .75rem;overflow-x:auto}.character__backstory code{font-size:.9em}.character__backstory blockquote{color:var(--text-muted);border-left:3px solid var(--border);margin:.5rem 0;padding-left:.75rem}.character__form{flex-direction:column;gap:.6rem;display:flex}.character__field{flex-direction:column;gap:.25rem;display:flex}.character__field>span{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.75rem}.character__field input,.character__textarea{min-width:0;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;padding:.4rem .5rem;font-family:inherit;font-size:.95rem}.character__textarea{resize:vertical;line-height:1.5}.character__actions{gap:.5rem;display:flex}.characters__btn{color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:.375rem;flex-shrink:0;padding:.25rem .6rem;font-size:.8rem}.characters__btn:hover{background:var(--surface-hover)}.characters__btn--primary{color:#fff;background:var(--active);border-color:var(--active);padding:.4rem 1.1rem;font-size:.9rem}.characters__btn--primary:hover{background:var(--active);opacity:.9}.characters__form{gap:.5rem;margin-top:.75rem;display:flex}.characters__form input{min-width:0;color:var(--text);background:var(--sidebar-bg);border:1px solid var(--border);border-radius:.375rem;flex:1;padding:.5rem;font-size:1rem}.characters__form button{color:#fff;background:var(--active);cursor:pointer;border:none;border-radius:.375rem;flex-shrink:0;padding:.5rem .9rem;font-size:.95rem}.characters__form button:disabled,.characters__form input:disabled{opacity:.6;cursor:default}.characters__limit{color:var(--text-muted);margin:.5rem 0 0;font-size:.85rem}.attribution{max-width:32rem;margin-inline:auto}.attribution__intro{color:var(--text-muted)}.attribution__list{flex-direction:column;gap:1rem;margin:1.5rem 0 0;padding:0;list-style:none;display:flex}.attribution__item{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:.5rem;align-items:center;gap:1rem;padding:.75rem;display:flex}.attribution__thumb{object-fit:contain;flex-shrink:0;width:3rem;height:3rem}.attribution__usage{color:var(--text-muted);margin-bottom:.15rem;font-size:.85rem}.attribution a{color:var(--link)}.login{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login__card{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:.75rem;flex-direction:column;gap:.75rem;width:100%;max-width:20rem;padding:2rem;display:flex}.login__logo{align-self:center;width:3rem;height:3rem}.login__title{text-align:center;margin:0 0 .5rem;font-size:1.25rem}.login__card label{color:var(--text-muted);flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.login__card input{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;padding:.5rem;font-size:1rem}.login__card button{color:#fff;background:var(--active);cursor:pointer;border:none;border-radius:.375rem;padding:.6rem;font-size:1rem}.login__card button:disabled{opacity:.6;cursor:default}.login__error{color:#f87171;margin:0;font-size:.85rem}.account{text-align:center;flex-direction:column;align-items:center;gap:1rem;max-width:28rem;margin:0 auto;display:flex}.account h1,.account h2,.account h3{margin:0}.account__who{color:var(--text-muted);margin:0}.account__badge{text-transform:uppercase;color:#fff;background:var(--active);border-radius:.25rem;padding:.1rem .4rem;font-size:.7rem}.account__who .account__badge{margin-left:.5rem}.account__logout{color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:.375rem;padding:.5rem 1rem;font-size:.95rem}.account__logout:hover{background:var(--surface-hover)}.account__section{border-top:1px solid var(--border);flex-direction:column;align-items:center;gap:.75rem;width:100%;margin-top:1.5rem;padding-top:1.5rem;display:flex}.account__users{flex-direction:column;gap:.4rem;width:100%;margin:0;padding:0;list-style:none;display:flex}.account__user{text-align:left;background:var(--sidebar-bg);border:1px solid var(--border);border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.5rem .75rem;display:flex}.account__user-main{align-items:center;gap:.6rem;display:flex}.account__pages{flex-wrap:wrap;gap:.4rem .9rem;padding-left:2.35rem;display:flex}.account__form .account__pages{padding-left:0}.account__page{color:var(--text-muted);cursor:pointer;align-items:center;gap:.3rem;font-size:.8rem;display:flex}.account__avatar{color:#fff;background:var(--active);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:1.75rem;height:1.75rem;font-size:.8rem;font-weight:700;display:flex}.account__user-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.account__reset{color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:.375rem;flex-shrink:0;padding:.2rem .5rem;font-size:.75rem}.account__reset:hover{background:var(--surface-hover)}.account__delete{width:1.5rem;height:1.5rem;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:.375rem;flex-shrink:0;justify-content:center;align-items:center;font-size:1.1rem;line-height:1;display:flex}.account__delete:hover{color:#fff;background:#dc2626}.account__form{flex-direction:column;gap:.5rem;width:100%;max-width:18rem;display:flex}.account__form input[type=text],.account__form input[type=password],.account__form input:not([type]){color:var(--text);background:var(--sidebar-bg);border:1px solid var(--border);border-radius:.375rem;padding:.5rem;font-size:1rem}.account__hint{color:var(--text-muted);margin:0;font-size:.85rem}.account__notice{color:#4ade80;margin:0;font-size:.85rem}.account__checkbox{color:var(--text-muted);justify-content:center;align-items:center;gap:.4rem;display:flex}.account__form button{color:#fff;background:var(--active);cursor:pointer;border:none;border-radius:.375rem;padding:.5rem;font-size:.95rem}.downtime{max-width:40rem;margin-inline:auto}.characters__intro{color:var(--text-muted)}.character-gate__picker{flex-direction:column;gap:.4rem;margin:.75rem 0;padding:0;list-style:none;display:flex}.character-gate__picker-item{text-align:left;width:100%;color:var(--text);background:var(--sidebar-bg);border:1px solid var(--border);cursor:pointer;border-radius:.5rem;padding:.6rem .75rem;font-size:1rem}.character-gate__picker-item:hover{background:var(--surface-hover)}.skilltables{max-width:60rem;margin-inline:auto}.skilltable{margin-top:1.75rem}.skilltable__head{width:100%;font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;align-items:center;gap:.6rem;margin-bottom:.5rem;padding:.3rem 0;display:flex}.skilltable__caret{color:var(--text-muted);flex-shrink:0;transition:transform .15s}.skilltable__caret--open{transform:rotate(90deg)}.skilltable__title{font-size:1.15rem;font-weight:600}.skilltable__badge{color:#fff;background:var(--active);border-radius:999px;flex-shrink:0;padding:.15rem .55rem;font-size:.75rem;font-weight:600}.skilltable__badge--muted{color:var(--text-muted);background:var(--surface);border:1px solid var(--border)}.skilltable__scroll{overflow-x:auto}.skilltable__table{border-collapse:collapse;width:100%;font-size:.9rem}.skilltable__table th,.skilltable__table td{text-align:left;vertical-align:top;border:1px solid var(--border);padding:.4rem .6rem}.skilltable__table thead th{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);background:var(--sidebar-bg);white-space:nowrap;font-size:.72rem}.skilltable__table tbody th{white-space:nowrap;font-weight:600}.skilltable__row--current th,.skilltable__row--current td{background:var(--surface-hover);background:color-mix(in srgb, var(--active) 22%, transparent)}.skilltable__row--achieved th,.skilltable__row--achieved td{background:var(--sidebar-bg);background:#16a34a24}.skilltable__notes{color:var(--text-muted);margin:.5rem 0 0;padding-left:1.1rem;font-size:.85rem}.skilltable__notes li{margin-top:.2rem}.skills__group{margin-top:1rem}.skills__group h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}.skills__grid{grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:.25rem 1rem;margin:0;padding:0;list-style:none;display:grid}.skills__item{border-bottom:1px solid var(--border);justify-content:space-between;gap:.5rem;padding:.15rem 0;display:flex}.skills__name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.skills__level{color:var(--text-muted);font-variant-numeric:tabular-nums;flex-shrink:0}.skills__edit-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.4rem 1rem;margin:.5rem 0 0;padding:0;list-style:none;display:grid}.skills__edit-item{align-items:center;gap:.5rem;display:flex}.skills__edit-item .skills__name{flex:1}.skills__select,.skills__score{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;flex-shrink:0;padding:.3rem .45rem;font-family:inherit;font-size:.9rem}.skills__score{width:4rem}.skills__add{gap:.5rem;margin-bottom:.6rem;display:flex}.skills__add .skills__select{flex:1;min-width:0}.tags__list{flex-wrap:wrap;gap:.4rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.tags__tag{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .6rem;font-size:.85rem;display:inline-flex}.tags__remove{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-size:1rem;line-height:1;display:inline-flex}.tags__remove:hover{color:var(--text)}.tags__input{width:12rem;max-width:100%;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;padding:.3rem .45rem;font-family:inherit;font-size:.9rem}.downtime__section{margin-top:1.75rem}.downtime__group{margin-top:1rem}.downtime__group h3{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.5rem;font-size:.8rem}.section-head{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.section-head>h2,.section-head>h3{margin:0}.section-chevron{color:var(--text-muted);cursor:pointer;background:0 0;border:none;align-items:center;padding:.1rem .25rem;font-size:.85rem;transition:transform .2s;display:inline-flex}.section-chevron:hover{color:var(--text)}.section-chevron--open{transform:rotate(90deg)}.inline-add{align-items:center;gap:.4rem;display:flex}.inline-add__toggle{width:1.5rem;height:1.5rem;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:1.15rem;line-height:1;transition:transform .2s,background .15s;display:inline-flex}.inline-add__toggle:hover{background:var(--surface-hover)}.inline-add__toggle--open{transform:rotate(45deg)}.inline-add__panel{opacity:0;align-items:center;gap:.4rem;max-width:0;transition:max-width .25s,opacity .2s;display:flex;overflow:hidden}.inline-add__panel--open{opacity:1;max-width:24rem}.inline-add__panel .downtime__select{width:12rem}.track{margin-bottom:.6rem}.track__head{justify-content:space-between;gap:.75rem;margin-bottom:.2rem;font-size:.9rem;display:flex}.track__value{font-variant-numeric:tabular-nums;color:var(--text-muted);flex-shrink:0}.track__name--link,.skills__name--link{text-overflow:ellipsis;min-width:0;font:inherit;text-align:left;color:var(--active);cursor:pointer;background:0 0;border:none;padding:0;overflow:hidden}.track__name--link:hover,.skills__name--link:hover{text-decoration:underline}.track__bar{background:var(--bg);border:1px solid var(--border);border-radius:999px;height:.5rem;overflow:hidden}.track__fill{background:var(--active);border-radius:999px;height:100%;transition:width .2s}.track__fill--max{background:#16a34a}.track__status{color:var(--text-muted);margin-top:.2rem;font-size:.8rem;display:block}.kind-switch{grid-template-columns:repeat(var(--kind-switch-count,3), 1fr);background:var(--bg);border:1px solid var(--border);border-radius:.5rem;padding:.2rem;display:grid;position:relative}.kind-switch__thumb{width:calc((100% - .4rem) / var(--kind-switch-count,3));background:var(--active);border-radius:.375rem;height:calc(100% - .4rem);transition:transform .2s;position:absolute;top:.2rem;left:.2rem}.kind-switch__btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:.375rem;padding:.4rem .5rem;font-family:inherit;font-size:.85rem;transition:color .2s;position:relative}.kind-switch__btn:hover{color:var(--text)}.kind-switch__btn--on,.kind-switch__btn--on:hover{color:#fff}@media (prefers-reduced-motion:reduce){.kind-switch__thumb{transition:none}}.downtime__log{background:var(--sidebar-bg);border:1px solid var(--border);border-radius:.5rem;flex-direction:column;gap:.6rem;margin-top:1rem;padding:1rem;display:flex}.downtime__field{flex-direction:column;gap:.25rem;display:flex}.downtime__field--centered>span{text-align:center}.downtime__field>span{text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);font-size:.75rem}.downtime__select,.downtime__field input{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.375rem;padding:.4rem .5rem;font-family:inherit;font-size:.95rem}.downtime__select--mono{max-width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.downtime__new-skill{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.downtime__new-skill .downtime__select{flex:1;min-width:12rem}.downtime__levelup{color:#052e16;background:#86efac;border-radius:.375rem;margin:.25rem 0 0;padding:.4rem .6rem;font-weight:600}.downtime__special-result{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:.375rem;margin:.25rem 0 0;padding:.4rem .6rem;font-weight:600}.downtime__special-result--hit{color:#052e16;background:#fcd34d;border-color:#f59e0b}.downtime__employment{background:var(--bg);border:1px solid var(--border);border-radius:.375rem;flex-direction:column;gap:.5rem;padding:.6rem .7rem;display:flex}.downtime__employment-head{text-transform:uppercase;letter-spacing:.03em;text-align:center;color:var(--text-muted);margin:0;font-size:.75rem}.downtime__employment-toggle{cursor:pointer;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.downtime__income{text-align:center;color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0;font-size:.9rem}.hint{cursor:help;border-bottom:1px dotted;position:relative}.hint__panel{z-index:10;text-align:left;width:max-content;color:var(--text);background:var(--sidebar-bg);border:1px solid var(--border);opacity:0;visibility:hidden;border-radius:.375rem;padding:.5rem .6rem;transition:opacity .15s,transform .15s,visibility .15s;display:block;position:absolute;bottom:calc(100% + .45rem);left:50%;transform:translate(-50%,.2rem);box-shadow:0 6px 18px #00000059}.hint:hover .hint__panel,.hint:focus-visible .hint__panel,.hint:focus-within .hint__panel{opacity:1;visibility:visible;transform:translate(-50%)}.hint__title{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.35rem;font-size:.7rem;display:block}.hint__grid{font-variant-numeric:tabular-nums;grid-template-columns:auto auto auto;gap:.1rem .6rem;font-size:.8rem;display:grid}.hint__row{display:contents}.hint__grid>.hint__row>span{color:var(--text-muted);white-space:nowrap}.hint__mult{text-align:right}.hint__grid>.hint__row--on>span{color:var(--hint-accent,var(--text));font-weight:600}@media (prefers-reduced-motion:reduce){.hint__panel{transition:none}}.downtime__income-term{color:var(--text)}.downtime__income-term--quality{color:var(--income-quality);--hint-accent:var(--income-quality)}.downtime__income-term--level{color:var(--income-level);--hint-accent:var(--income-level)}.downtime__income-term--base{color:var(--income-base)}.downtime__income-total{color:var(--income-total)}.downtime__counters{flex-wrap:wrap;justify-content:center;align-items:center;gap:.3rem .6rem;font-size:.8rem;display:flex}.downtime__counter{border:1px solid;border-radius:999px;padding:.1rem .45rem}.downtime__counter--advantage,.track__counter--advantage{color:var(--interaction-positive)}.downtime__counter--disadvantage,.track__counter--disadvantage{color:var(--interaction-negative)}.downtime__counter-source{opacity:.75}.downtime__counter-effect{text-align:center;color:var(--text-muted);flex-basis:100%}.track__counters{flex-wrap:wrap;align-items:center;gap:.3rem;margin-top:.25rem;font-size:.75rem;display:flex}.track__counter{border:1px solid;border-radius:999px;align-items:center;gap:.3rem;padding:.05rem .4rem;display:inline-flex}.track__counter-source{color:var(--text-muted)}.track__counter-clear,.track__counter-add{width:1.1rem;height:1.1rem;color:var(--text-muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;padding:0;font-family:inherit;font-size:.9rem;line-height:1}.track__counter-clear{color:inherit;border:none}.track__counter-clear:hover,.track__counter-add:hover{color:var(--text);background:var(--surface-hover)}.track__counter-form{flex-wrap:wrap;align-items:center;gap:.3rem;display:inline-flex}.track__counter-form select,.track__counter-form input{color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:.25rem;padding:.15rem .3rem;font-family:inherit;font-size:.75rem}.track__counter-form input[type=number]{width:3.2rem}.downtime__interactions{border-top:1px solid var(--border);flex-direction:column;gap:.5rem;margin-top:.6rem;padding-top:.6rem;display:flex}.downtime__interactions-head{text-transform:uppercase;letter-spacing:.03em;text-align:center;color:var(--text-muted);margin:0;font-size:.75rem}.downtime__interaction{flex-direction:column;gap:.25rem;display:flex}.downtime__interaction-outcome{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:.4rem;margin:0;font-size:.9rem;display:flex}.downtime__interaction-gold{color:var(--income-total)}.downtime__interaction-text{text-align:center;color:var(--text-muted);margin:0;font-size:.8rem}.downtime__interaction--negative{color:var(--interaction-negative);--hint-accent:var(--interaction-negative)}.downtime__interaction--positive{color:var(--interaction-positive);--hint-accent:var(--interaction-positive)}.downtime__entry-interactions{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:.15rem .75rem;font-size:.85rem;display:flex}.downtime__entry-interaction-roll{color:var(--text-muted)}.downtime__entry-interaction-total{color:var(--income-total)}.downtime__income-hint{font-style:italic}.check-row{font-variant-numeric:tabular-nums;flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;display:flex}.check-row--main{gap:.5rem;padding:.85rem .75rem}.check-row__dice{color:var(--text);font-weight:600}.check-row__adv{border:1px solid var(--border);border-radius:.375rem;display:inline-flex;overflow:hidden}.check-row__advbtn{color:var(--text-muted);background:var(--bg);cursor:pointer;border:none;padding:.25rem .5rem;font-family:inherit;font-size:.75rem;transition:background .15s,color .15s}.check-row__advbtn+.check-row__advbtn{border-left:1px solid var(--border)}.check-row__advbtn:hover{background:var(--surface-hover)}.check-row__advbtn--adv.check-row__advbtn--on,.check-row__advbtn--adv.check-row__advbtn--on:hover{color:#fff;background:var(--adv-bg)}.check-row__advbtn--dis.check-row__advbtn--on,.check-row__advbtn--dis.check-row__advbtn--on:hover{color:#fff;background:var(--dis-bg)}.check-row__breakdown{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem}.check-row__ability{width:auto;min-width:0}.check-row__total{width:5.5rem;font-weight:600}.check-row__op{color:var(--text-muted);padding:0 .05rem}.check-row__prof{white-space:nowrap;background:var(--surface);border:1px solid var(--border);border-radius:.375rem;flex-direction:column;align-items:center;padding:.05rem .5rem .15rem;line-height:1.15;display:inline-flex}.check-row__prof-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:.6rem}.check-row__prof-calc,.check-row__val{color:var(--text)}.check-row__roll{width:2.1rem;height:2.1rem;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:.375rem;justify-content:center;align-items:center;padding:0;transition:background .15s,transform .15s;display:inline-flex}.check-row__roll:hover{background:var(--surface-hover)}.check-row__roll:active{transform:rotate(-20deg)}.downtime__day{margin-top:1rem}.downtime__day h3{margin-bottom:.35rem;font-size:.9rem}.downtime__entries{flex-direction:column;gap:.3rem;margin:0;padding-left:1.1rem;display:flex}.downtime__entry-main{font-variant-numeric:tabular-nums}.downtime__entry-levelup{color:#16a34a}.downtime__entry-note{color:var(--text-muted);font-size:.85rem;display:block}.downtime__entry-special{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem;display:block}.downtime__entry-special--hit{color:#b45309;font-weight:600}.downtime__entry-income{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.85rem;display:block}.downtime__entry-income strong{color:var(--income-total)}@media (width<=640px){.main{padding:1rem .85rem}.sidebar--expanded{z-index:20;position:absolute;top:0;bottom:0;left:0;box-shadow:.5rem 0 1.75rem #00000059}input,select,textarea{font-size:1rem}.check-row{gap:.45rem .3rem}.check-row__advbtn{padding:.45rem .7rem;font-size:.85rem}.check-row__roll{width:2.5rem;height:2.5rem}.check-row__breakdown{flex-basis:100%}.check-row__total{flex:1;min-width:4rem}}
