.app{flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}.app__head{padding:max(10px, env(safe-area-inset-top)) 14px 10px;border-bottom:1px solid var(--line);background:var(--surface);z-index:2;justify-content:space-between;align-items:center;gap:12px;display:flex}.app__title h1{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:600}.freshness{color:var(--text-dim);font-size:12px}.freshness--stale{color:var(--warn)}.app__nav{gap:8px;display:flex}.app__nav button{font-size:13px;font-weight:500}.app__head{flex-wrap:wrap;row-gap:8px}.app__title{min-width:0}@media (width<=480px){.app__nav{gap:5px}.app__nav button{padding:5px 8px;font-size:12.5px}}.app__error{background:color-mix(in srgb, var(--warn) 18%, var(--surface));color:var(--text);border-bottom:1px solid var(--line);padding:10px 14px;font-size:13px}.app__map{background:var(--bg);flex:1;min-height:0;position:relative;overflow:hidden}.recent{display:none}@media (orientation:portrait){.app__map{aspect-ratio:1;flex:none;width:100%}.recent{border-top:1px solid var(--line);flex-direction:column;flex:1;gap:12px;min-height:0;padding:14px;display:flex;overflow-y:auto}}.recent__session{border:1px solid var(--line);background:var(--surface);text-align:left;width:100%;color:var(--text);flex-direction:column;gap:3px;padding:11px 13px;display:flex}.recent__label{text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);font-size:10.5px}.recent__when{font-size:14px;font-weight:500}.recent__stats{flex-wrap:wrap;gap:10px;margin-top:3px;display:flex}.stat--milestone{color:var(--accent)}.recent__builders{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.recent__empty{color:var(--text-dim);margin:0;font-size:13px}.recent__legend{flex-wrap:wrap;gap:7px 14px;display:flex}.recent__key{color:var(--text-soft);align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.recent__dot{border-radius:50%;width:8px;height:8px}.recent__count{font-family:var(--mono);color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:11.5px}.app__loading{color:var(--text-dim);place-items:center;margin:0;font-size:14px;display:grid;position:absolute;inset:0}.map,.map__wrapper,.map__content{width:100%;height:100%}.map__frame{position:relative}.map__plate{cursor:crosshair;background:#0b0e12;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.map__overlay{width:100%;height:100%;display:block;position:absolute;inset:0}.map__tile{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none;max-width:none;display:block;position:absolute}.map__terrain{position:absolute;inset:0;overflow:hidden}.map__overlay{pointer-events:none}.map__detail{pointer-events:none;display:block;position:absolute}.map__pin{width:0;height:0;transform:translate(var(--x), var(--y)) scale(calc(1 / var(--map-scale,1)));transform-origin:0 0;position:absolute;top:0;left:0}.map__pin-mark{cursor:pointer;filter:drop-shadow(0 0 1px #000)drop-shadow(0 0 1px #000);background:0 0;border:0;border-radius:0;width:14px;height:16px;padding:0;position:absolute;top:-8px;left:-7px}.map__pin-shape{background:var(--pin);clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);width:100%;height:100%;display:block}.map__pin-name{pointer-events:none;white-space:nowrap;color:#fff;text-shadow:0 0 3px #000000e6,0 0 1px #000;font-size:11.5px;font-weight:600;line-height:1;position:absolute;top:0;left:10px;transform:translateY(-50%)}.map__pin--portal .map__pin-mark{width:14px;height:14px;top:-7px;left:-7px}.map__pin--portal .map__pin-shape{clip-path:none;border-radius:50%}.map__pin--loose .map__pin-shape{border:3px solid var(--pin);background:0 0}.map__pin--unnamed .map__pin-name{opacity:.8;font-style:italic;font-weight:500}.map__links{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.map__links line{stroke:#c58cff;stroke-width:calc(2px / var(--map-scale,1));stroke-dasharray:calc(6px / var(--map-scale,1)) calc(4px / var(--map-scale,1));stroke-linecap:round;filter:drop-shadow(0 0 1px #000c)}.map__pin--done{opacity:.5}.map__pin--done .map__pin-name{text-decoration:line-through}.map__selection{pointer-events:none;width:26px;height:26px;transform:translate(var(--x), var(--y)) scale(calc(1 / var(--map-scale,1))) translate(-50%, -50%);transform-origin:0 0;border:2px solid #fff;border-radius:50%;position:absolute;top:0;left:0;box-shadow:0 0 0 1px #0009}.app__foot{padding:10px 14px max(10px, env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);z-index:2;flex-direction:column;gap:8px;display:flex}.app__stats{color:var(--text-dim);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px 14px;font-size:12px;display:flex}.app__milestone{color:var(--accent)}.crew{flex-direction:column;gap:6px;display:flex}.crew__bar{background:var(--line);border-radius:3px;height:6px;display:flex;overflow:hidden}.crew__segment{min-width:2px;display:block}.crew__names{color:var(--text-soft);flex-wrap:wrap;gap:4px 14px;font-size:12px;display:flex}.crew__name{align-items:center;gap:6px;display:inline-flex}.crew__dot{border-radius:50%;width:8px;height:8px}.crew__count{color:var(--text-dim);font-variant-numeric:tabular-nums}.crew__total{color:var(--text-dim);margin-left:auto}.sheet{background:var(--surface);border-top:1px solid var(--line-firm);z-index:3;max-height:72%;padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 28px #00000059}.sheet--tall{max-height:84%}.sheet__head{border-bottom:1px solid var(--line);align-items:center;gap:10px;padding:12px 14px;display:flex}.sheet__head h2{flex:1;margin:0;font-size:15px;font-weight:600}.sheet__kind{color:var(--text-dim);margin-top:1px;font-size:11.5px;font-weight:500;display:block}.sheet__swatch{border-radius:50%;flex:none;width:12px;height:12px}.sheet__close{color:var(--text-dim);background:0 0;border:0;padding:2px 8px;font-size:22px;line-height:1}.sheet__facts{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;margin:0;padding:14px;display:grid}.sheet__facts dt{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin-bottom:3px;font-size:11px}.sheet__facts dd{font-family:var(--mono);margin:0;font-size:14px}.sheet__items{padding:0 14px 4px}.sheet__items h3{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:0 0 8px;font-size:11px;font-weight:600}.sheet__items ul{margin:0;padding:0;list-style:none}.sheet__items li{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.sheet__items li:last-child{border-bottom:0}.sheet__item{color:var(--text);font-size:13.5px}.sheet__stack{font-family:var(--mono);color:var(--accent);font-variant-numeric:tabular-nums;font-size:13px}.sheet__note{color:var(--text-dim);margin:8px 0 0;font-size:11.5px}.sheet__actions{padding:0 14px 14px}.sheet__hint,.sheet__empty{color:var(--text-dim);margin:0;padding:0 14px 14px;font-size:12.5px}.layers{padding:6px 8px 12px;overflow-y:auto}.layers__group+.layers__group{margin-top:10px}.layers__heading{letter-spacing:.06em;text-transform:uppercase;color:var(--text-dim);margin:0;padding:8px 8px 4px;font-size:11px;font-weight:600}.layers__row{text-align:left;border-radius:var(--radius);width:100%;color:var(--text-dim);background:0 0;border:0;align-items:center;gap:10px;padding:9px 8px;display:flex}.layers__row[aria-pressed=true]{color:var(--text);background:0 0}.layers__swatch{opacity:.25;border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 0 1px #80808066}.layers__row[aria-pressed=true] .layers__swatch{opacity:1}.layers__label{flex:1;font-size:14px}.layers__count{font-family:var(--mono);color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.stores__bar{flex-wrap:wrap;align-items:center;gap:8px 12px;padding:12px 14px 8px;display:flex}.stores__filter{min-width:140px;font:inherit;border-radius:var(--radius);border:1px solid var(--line-firm);background:var(--bg);color:var(--text);flex:1;padding:7px 10px;font-size:14px}.stores__summary{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:12px}.stores__list{padding-bottom:16px;overflow-y:auto}.stores__piles{color:var(--text-dim);font-size:12.5px}.stores__sort{gap:4px;display:flex}.stores__sort button{padding:5px 10px;font-size:12.5px}.stores__link{color:inherit;text-decoration:underline;-webkit-text-decoration-color:var(--line-firm);text-decoration-color:var(--line-firm);text-underline-offset:3px}.stores__link:hover{text-decoration-color:currentColor}.stores__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.stores__tabs{gap:6px;padding:12px 14px 0;display:flex}.stores__tabs button{padding:6px 12px;font-size:13px}.farm{flex-direction:column;gap:16px;padding:12px 0 16px;display:flex;overflow-y:auto}.farm__counts{color:var(--text-soft);font-variant-numeric:tabular-nums;gap:10px;font-size:13px;display:flex}.farm__ready{color:var(--accent);font-weight:600}.farm__herd+.farm__herd{margin-top:12px}.farm__herd-head{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:6px 0;display:flex}.sheet__items ul.farm__names{flex-wrap:wrap;gap:6px;padding:10px 0 2px;display:flex}.sheet__items li.farm__animal{border:1px solid var(--line-firm);color:var(--text);border-radius:12px;align-items:center;gap:5px;padding:3px 9px;font-size:12.5px;display:inline-flex}.farm__stars{color:var(--accent);font-size:11px}.farm__tag{text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-size:10.5px}.world{flex-direction:column;gap:16px;padding:12px 0 16px;display:flex;overflow-y:auto}.world__value{color:var(--text-soft);text-align:right;font-size:13.5px}.world__value--changed{color:var(--accent);font-weight:600}.world__mono{font-family:var(--mono);font-size:13px}.world__link{text-decoration:underline;-webkit-text-decoration-color:var(--line-firm);text-decoration-color:var(--line-firm);text-underline-offset:3px}.world__link:hover{text-decoration-color:currentColor}.world__link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sessions{margin:0;padding:4px 14px 16px;list-style:none;overflow-y:auto}.sessions__item{border-bottom:1px solid var(--line);padding:12px 0}.sessions__item:last-child{border-bottom:0}.sessions__when{font-size:13px;font-weight:500}.sessions__stats{flex-wrap:wrap;gap:8px;margin-top:5px;display:flex}.stat{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:12px}.stat--explore{color:#7ecb8f}.stat--build{color:var(--accent)}.sessions__builders{flex-wrap:wrap;gap:6px;margin-top:7px;display:flex}.chip{color:var(--chip);border:1px solid var(--chip);font-variant-numeric:tabular-nums;border-radius:10px;padding:2px 8px;font-size:11.5px}.sessions__milestone{margin-top:7px}.milestone{color:var(--accent);border-left:2px solid var(--accent);padding-left:8px;font-size:12px}.replay{z-index:2;color:#f3f1ea;border-radius:var(--radius);background:#0e1316e0;max-width:560px;margin:0 auto;padding:10px 12px;position:absolute;bottom:12px;left:12px;right:12px;box-shadow:0 6px 24px #00000059}.replay__controls{align-items:center;gap:10px;display:flex}.replay__play,.replay__close{width:34px;height:34px;color:inherit;cursor:pointer;background:#ffffff1f;border:0;border-radius:50%;flex:none;padding:0;font-size:14px}.replay__close{background:0 0;font-size:20px}.replay__scrub{accent-color:#ffd660;flex:1;min-width:0}.replay__caption{color:#f3f1eabf;font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:12.5px;display:flex}.replay__caption strong{color:#fff;font-weight:600}.map--replay .map__pin:not(.map__pin--boss) .map__pin-name{display:none}:root{--bg:#0e1316;--surface:#161d21;--raised:#1d262b;--line:#27333a;--line-firm:#36454e;--text:#e3eae7;--text-soft:#b6c2bd;--text-dim:#7f8f89;--accent:#d0913f;--warn:#dc7b6a;--radius:3px;--font:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root:not([data-theme=dark]){--bg:#eceee9;--surface:#f5f6f3;--raised:#fff;--line:#d5dad4;--line-firm:#b9c1ba;--text:#1a211e;--text-soft:#414d47;--text-dim:#66736d;--accent:#8d5518;--warn:#963d31;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;font-size:15px;line-height:1.5}button{font:inherit;cursor:pointer;color:var(--text-soft);border:1px solid var(--line-firm);border-radius:var(--radius);background:0 0;padding:6px 12px}button[aria-pressed=true]{background:var(--text);color:var(--bg);border-color:var(--text)}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}code{font-family:var(--mono);background:var(--raised);border-radius:2px;padding:1px 4px;font-size:.9em}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
