:root{color-scheme:dark;--bg: #0f1419;--panel: #1a2332;--text: #e7ecf3;--muted: #8b9bb4;--accent: #6cb6ff;--warn-bg: #3d2a12;--warn-border: #c47b2a;--topbar-h: 3.25rem;--motion-ms: 50ms;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}a,button{transition:color var(--motion-ms),background-color var(--motion-ms),border-color var(--motion-ms),opacity var(--motion-ms)}@media (prefers-reduced-motion: reduce){:root{--motion-ms: 0ms}}html,body,#root{margin:0;height:100%;max-height:100%;background:var(--bg);color:var(--text)}.app{display:flex;flex-direction:column;height:100%;max-height:100dvh;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;height:var(--topbar-h);flex-shrink:0;background:var(--panel);border-bottom:1px solid #2a3548;z-index:10}.brand{font-weight:700;color:var(--text);text-decoration:none}.topbar nav{display:flex;gap:1rem}.topbar a{color:var(--accent);text-decoration:none}.main{flex:1 1 auto;min-height:0;min-width:0;display:flex;flex-direction:column;overflow:hidden}.page{padding:1rem;max-width:40rem;overflow:auto;-webkit-overflow-scrolling:touch;flex:1;min-height:0}.muted{color:var(--muted);font-size:.9rem}.banner{padding:.75rem 1rem;border-radius:8px;margin:.5rem 0 1rem}.banner.warn{background:var(--warn-bg);border:1px solid var(--warn-border)}.work-list{list-style:none;padding:0;margin:0}.work-list li a{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid #2a3548;color:inherit;text-decoration:none}.work-title{font-weight:600}.work-layout{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;height:100%;max-height:100%;overflow:hidden}@media (min-width: 768px){.work-layout{flex-direction:row}}.map-pane{position:relative;flex:1 1 auto;min-height:0;min-width:0;flex-basis:0;overflow:hidden}@media (max-width: 767px){.map-pane{flex:1 1 50%;min-height:40dvh;max-height:55dvh}}.map-pane.full{max-height:none}.map-container{position:absolute!important;top:0;right:0;bottom:0;left:0;width:100%!important;height:100%!important;max-width:100%;max-height:100%;overflow:hidden}.map-container .maplibregl-canvas-container,.map-container .maplibregl-canvas{width:100%!important;height:100%!important}.map-overlay{position:absolute;z-index:2;left:.5rem;right:.5rem;top:.5rem;pointer-events:none}.map-overlay .banner{pointer-events:auto}.sheet{background:var(--panel);border-top:1px solid #2a3548;padding:1rem;flex:1 1 45%;min-height:0;max-height:50dvh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}@media (min-width: 768px){.sheet{flex:0 0 min(22rem,38vw);width:min(22rem,38vw);max-width:min(22rem,38vw);max-height:none;height:100%;border-top:none;border-left:1px solid #2a3548}.map-pane{flex:1 1 auto;max-height:none}}.sheet h1{font-size:1.15rem;margin:0 0 .25rem}.sheet h2{font-size:1rem;margin:.5rem 0}.pin-list{list-style:none;padding:0;margin:1rem 0 0}.pin-list button{width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:.5rem 0;border-bottom:1px solid #2a3548;cursor:pointer}.pin-list button.active{color:var(--accent);font-weight:600}.pin-detail{background:#121a26;border:1px solid #2a3548;border-radius:10px;padding:.75rem 1rem;margin:.75rem 0}.pin-detail h2{margin-top:0}.mono{font-family:ui-monospace,monospace;font-size:.75rem;word-break:break-all}.appearances{margin:.5rem 0 0;padding-left:1.1rem}.appearances a{color:var(--accent)}code{font-size:.85em}
