:root{--bg: #e7e5dc;--surface: #f4f2e9;--surface-dark: #171815;--text: #171815;--text-muted: #62635c;--border: #9a9b91;--border-strong: #353631;--accent: #cf4b32;--success: #477a4b;--warning: #b47728;--danger: #a63830;--pixel-red: #FF004D;--pixel-green: #00E436;--pixel-blue: #29ADFF;--pixel-yellow: #FFEC27;--pixel-orange: #FFA300;--space-0: 0;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-none: 0;--radius-xs: 2px;--radius-sm: 2px;--radius-md: 2px;--radius-lg: 2px;--radius-xl: 2px;--radius-full: 2px;--border-width: 1px;--shadow-none: none;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", Menlo, Monaco, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-lg: 1rem;--text-xl: 1.125rem;--text-2xl: 1.25rem;--text-3xl: 1.5rem}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit}img,canvas,svg{display:block}#rpgclaw-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:9999;display:flex;align-items:center;justify-content:center;transition:opacity .15s}#rpgclaw-loading-overlay.shell-dismissed{opacity:0;pointer-events:none}#rpgclaw-loading-overlay .hero-title{font-size:1rem;font-weight:700;color:var(--text)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-weight:600;line-height:1.25;color:var(--text)}.rpg-mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.rpg-panel{background:var(--surface);border:var(--border-width) solid var(--border);border-radius:var(--radius-xs);padding:var(--space-3)}.rpg-panel-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:var(--border-width) solid var(--border);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:600;color:var(--text)}.rpg-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:var(--border-width) solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font-size:var(--text-sm);font-family:var(--font-sans);cursor:pointer;transition:background 0s,border-color 0s}.rpg-btn:hover{border-color:var(--border-strong)}.rpg-btn:active{background:var(--bg)}.rpg-btn:focus-visible{outline:var(--border-width) solid var(--text);outline-offset:1px}.rpg-btn--primary{background:var(--surface-dark);color:var(--surface);border-color:var(--surface-dark)}.rpg-btn--primary:hover{background:var(--text)}.rpg-btn--danger{border-color:var(--danger);color:var(--danger)}.rpg-btn--danger:hover{background:var(--danger);color:var(--surface)}.rpg-input{width:100%;padding:var(--space-1) var(--space-2);border:var(--border-width) solid var(--border);border-radius:var(--radius-xs);background:var(--surface);color:var(--text);font-size:var(--text-sm);font-family:var(--font-sans)}.rpg-input:focus{border-color:var(--border-strong);outline:none}.rpg-input::placeholder{color:var(--text-muted)}.rpg-divider{border:none;border-top:var(--border-width) solid var(--border);margin:var(--space-2) 0}.rpg-badge{display:inline-block;padding:1px var(--space-2);border:var(--border-width) solid var(--border);border-radius:var(--radius-xs);font-size:var(--text-xs);line-height:1.4}.rpg-badge--success{border-color:var(--success);color:var(--success)}.rpg-badge--warning{border-color:var(--warning);color:var(--warning)}.rpg-badge--danger{border-color:var(--danger);color:var(--danger)}.rpg-badge--active{border-color:var(--accent);color:var(--accent)}.rpg-counter{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-muted)}.rpg-counter strong{color:var(--text);font-weight:600}.rpg-layout{display:flex;flex-direction:column;height:100vh;overflow:hidden}.rpg-main{flex:1;overflow:hidden;position:relative}.rpg-topnav{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 var(--space-4);background:var(--surface);border-bottom:var(--border-width) solid var(--border);font-size:var(--text-sm);flex-shrink:0}.rpg-topnav__brand{font-weight:700;color:var(--text);text-decoration:none;margin-right:var(--space-6);font-size:var(--text-sm)}.rpg-topnav__links{display:flex;gap:var(--space-1)}.rpg-topnav__link{padding:var(--space-1) var(--space-3);color:var(--text-muted);text-decoration:none;border-bottom:2px solid transparent;font-size:var(--text-sm);transition:color 0s}.rpg-topnav__link:hover{color:var(--text)}.rpg-topnav__link--active{color:var(--text);border-bottom-color:var(--text)}.rpg-topnav__right{display:flex;align-items:center;gap:var(--space-3)}.rpg-statusbar{display:flex;align-items:center;justify-content:space-between;height:28px;padding:0 var(--space-4);background:var(--surface);border-top:var(--border-width) solid var(--border);font-size:var(--text-xs);color:var(--text-muted);flex-shrink:0}.rpg-statusbar__group{display:flex;align-items:center;gap:var(--space-4)}.rpg-toolbar{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);background:var(--surface);border-bottom:var(--border-width) solid var(--border);font-size:var(--text-xs);height:32px;flex-shrink:0}.rpg-toolbar__group{display:flex;align-items:center;gap:var(--space-1)}.rpg-toolbar__separator{width:var(--border-width);height:16px;background:var(--border);margin:0 var(--space-1)}.rpg-layer-panel{position:absolute;right:var(--space-3);top:var(--space-3);background:var(--surface);border:var(--border-width) solid var(--border);border-radius:var(--radius-xs);padding:var(--space-2);min-width:160px;z-index:10}.rpg-layer-item{display:flex;align-items:center;gap:var(--space-2);padding:2px var(--space-1);font-size:var(--text-xs);cursor:pointer}.rpg-layer-item input[type=checkbox]{accent-color:var(--text)}.rpg-selection-panel{position:absolute;left:var(--space-3);bottom:40px;background:var(--surface);border:var(--border-width) solid var(--border);border-radius:var(--radius-xs);padding:var(--space-3);min-width:200px;z-index:10}.rpg-selection-panel__title{font-size:var(--text-sm);font-weight:600;margin-bottom:var(--space-1);padding-bottom:var(--space-1);border-bottom:var(--border-width) solid var(--border)}.rpg-selection-panel__row{display:flex;justify-content:space-between;font-size:var(--text-xs);padding:1px 0}.rpg-selection-panel__row span:first-child{color:var(--text-muted)}.rpg-selection-panel__row span:last-child{color:var(--text)}.rpg-activity-item{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-1) 0;border-bottom:var(--border-width) solid var(--border);font-size:var(--text-sm)}.rpg-activity-item__time{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-xs);min-width:40px;flex-shrink:0}.rpg-project-row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);border:var(--border-width) solid var(--border);border-radius:var(--radius-xs);margin-bottom:var(--space-1);font-size:var(--text-sm)}.rpg-project-row__progress{width:80px;height:4px;background:var(--border);flex-shrink:0}.rpg-project-row__progress-bar{height:100%;background:var(--text)}.rpg-pixel-editor{display:flex;gap:var(--space-4)}.rpg-pixel-grid{display:grid;gap:1px;background:var(--border);border:var(--border-width) solid var(--border)}.rpg-pixel-cell{width:20px;height:20px;cursor:pointer;background:var(--surface)}.rpg-pixel-cell:hover{outline:1px solid var(--text);outline-offset:-1px}.rpg-pixel-cell--filled{background:currentColor}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.rpg-worldmap{position:relative;width:100%;height:calc(100vh - var(--nav-height, 48px));background:var(--bg);overflow:hidden}.rpg-worldmap__map{position:absolute;top:36px;right:0;bottom:36px;left:0}.rpg-worldmap__map .maplibregl-canvas{display:block}.rpg-worldmap__map .maplibregl-ctrl-attrib{display:none}.rpg-worldmap__sim-canvas{image-rendering:pixelated;z-index:10}.rpg-worldmap__breadcrumb{position:absolute;top:0;left:0;right:0;height:36px;display:flex;align-items:center;padding:0 16px;background:var(--bg);border-bottom:1px solid var(--border);font-size:var(--text-sm, 13px);color:var(--text);z-index:20}.rpg-worldmap__breadcrumb-sep{color:var(--text-muted);margin:0 4px}.rpg-worldmap__breadcrumb-btn{all:unset;cursor:pointer;color:var(--text);font-size:var(--text-sm, 13px)}.rpg-worldmap__breadcrumb-btn:hover{color:var(--accent)}.rpg-worldmap__status{position:absolute;bottom:0;left:0;right:0;height:36px;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--bg);border-top:1px solid var(--border);font-size:var(--text-xs, 11px);color:var(--text-muted);z-index:20}.rpg-worldmap__status-item{font-family:var(--font-mono, monospace);font-size:var(--text-xs, 11px);color:var(--text)}.rpg-worldmap__status-sep{color:var(--border)}.rpg-worldmap__toggle{all:unset;cursor:pointer;font-size:var(--text-xs, 11px);padding:2px 8px;border:1px solid var(--border);border-radius:2px;color:var(--text-muted)}.rpg-worldmap__toggle:hover{border-color:var(--text-muted);color:var(--text)}.rpg-worldmap__toggle--active{background:var(--text);color:var(--bg);border-color:var(--text)}.rpg-worldmap__status-spacer{flex:1}.rpg-worldmap__disclaimer{font-size:var(--text-2xs, 10px);color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rpg-worldmap__map .maplibregl-ctrl-group{border:1px solid var(--border);border-radius:2px;box-shadow:none}.rpg-worldmap__map .maplibregl-ctrl-group button{width:28px;height:28px}.rpg-worldmap__map .maplibregl-ctrl-group button:hover{background:var(--surface)}.rpg-worldmap__search{position:absolute;top:44px;left:16px;z-index:30;width:280px}.rpg-worldmap__search-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:2px;background:var(--surface);color:var(--text);font-size:var(--text-sm, 13px);font-family:inherit;outline:none;box-sizing:border-box}.rpg-worldmap__search-input:focus{border-color:var(--text)}.rpg-worldmap__search-input::placeholder{color:var(--text-muted)}.rpg-worldmap__search-results{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--surface);border:1px solid var(--border);border-radius:2px;max-height:320px;overflow-y:auto;box-shadow:0 2px 8px #00000014}.rpg-worldmap__search-result{all:unset;display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;font-size:var(--text-sm, 13px);color:var(--text);cursor:pointer;box-sizing:border-box}.rpg-worldmap__search-result:hover{background:var(--bg)}.rpg-worldmap__search-result-type{font-size:14px;flex-shrink:0}.rpg-worldmap__search-result-meta{margin-left:auto;font-size:var(--text-xs, 11px);color:var(--text-muted)}.rpg-worldmap__city-dot{cursor:pointer;width:6px;height:6px;background:var(--text);border:1px solid var(--bg);border-radius:50%;transform:translate(-3px,-3px);transition:transform .1s}.rpg-worldmap__city-dot:hover{transform:translate(-3px,-3px) scale(2);z-index:10}.rpg-worldmap__city-dot span{display:none;position:absolute;top:8px;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);font-size:var(--text-2xs, 10px);padding:2px 6px;border-radius:2px;white-space:nowrap}.rpg-worldmap__city-dot:hover span{display:block}.rpg-static-page{min-height:100vh;background:var(--bg);padding-bottom:64px}.rpg-static-hero{padding:48px 24px 32px;max-width:720px;margin:0 auto;text-align:center;border-bottom:1px solid var(--border)}.rpg-static-hero__title{font-size:var(--text-xl, 28px);font-weight:600;color:var(--text);margin:0 0 12px}.rpg-static-hero__subtitle{font-size:var(--text-base, 16px);color:var(--text-muted);line-height:1.6;margin:0}.rpg-static-content{max-width:720px;margin:0 auto;padding:32px 24px}.rpg-static-section{margin-bottom:48px}.rpg-static-section h2{font-size:var(--text-lg, 20px);font-weight:600;color:var(--text);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--border)}.rpg-static-section p{font-size:var(--text-base, 16px);color:var(--text-muted);line-height:1.7;margin:0 0 16px}.rpg-static-section p:last-child{margin-bottom:0}.rpg-static-section strong{color:var(--text);font-weight:600}.rpg-static-list{list-style:none;padding:0;margin:0 0 16px}.rpg-static-list li{position:relative;padding:8px 0 8px 20px;font-size:var(--text-base, 16px);color:var(--text-muted);line-height:1.6;border-bottom:1px solid var(--border)}.rpg-static-list li:before{content:"—";position:absolute;left:0;color:var(--border-strong)}.rpg-static-list li:last-child{border-bottom:none}.rpg-static-list li strong{color:var(--text);font-weight:600}.rpg-feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-top:8px}.rpg-feature-card{padding:20px;border:1px solid var(--border);border-radius:2px;background:var(--surface)}.rpg-feature-card__icon{font-size:24px;margin-bottom:8px}.rpg-feature-card h3{font-size:var(--text-base, 16px);font-weight:600;color:var(--text);margin:0 0 8px}.rpg-feature-card p{font-size:var(--text-sm, 13px);color:var(--text-muted);line-height:1.5;margin:0}.rpg-zoom-table{width:100%;border:1px solid var(--border);border-radius:2px;overflow:hidden}.rpg-zoom-table__row{display:grid;grid-template-columns:100px 1fr 150px;padding:10px 16px;border-bottom:1px solid var(--border);font-size:var(--text-sm, 13px);color:var(--text)}.rpg-zoom-table__row:last-child{border-bottom:none}.rpg-zoom-table__header{background:var(--surface);font-weight:600;color:var(--text-muted);font-size:var(--text-xs, 11px);text-transform:uppercase;letter-spacing:.5px}.rpg-zoom-table__zoom{font-family:var(--font-mono, monospace);font-weight:600;color:var(--text)}.rpg-zoom-table__res{font-family:var(--font-mono, monospace);color:var(--text-muted);font-size:var(--text-xs, 11px)}.rpg-static-cta{text-align:center;padding:32px;border:1px solid var(--border);border-radius:2px;background:var(--surface)}.rpg-static-cta h2{border-bottom:none;margin-bottom:8px}.rpg-static-cta p{margin-bottom:20px}.rpg-btn{display:inline-block;padding:10px 24px;font-size:var(--text-base, 16px);font-weight:600;text-decoration:none;border:1px solid var(--text);border-radius:2px;cursor:pointer;background:none;color:var(--text);font-family:inherit}.rpg-btn--primary{background:var(--text);color:var(--bg)}.rpg-btn--primary:hover{background:var(--border-strong)}
