.rsm{--n-ink: #3b2b25;--n-muted: #7a675a;--n-paper: #f8f0df;--n-paper-deep: #eadcc3;--n-line: #c9b79b;--n-accent: #c66443;--n-accent-deep: #8d3f2f;--n-water: #568f99;--n-wild: #a58157;--n-house: #f4dfb8;--n-roof: #9e5742;--n-plaza: #d8bd8b;--n-white: #fff;--n-shadow: #5d443322;--n-mountain-paper: #ded3bd;--n-house-timber: #ead2a7;--n-roof-timber: #9e5742;--n-house-stone: #d7c8ad;--n-roof-stone: #78665d;--n-house-coastal: #e8d7b8;--n-roof-coastal: #668b91;--n-house-highland: #dfc69c;--n-roof-highland: #734c43;--n-house-medieval: #e2cfaa;--n-roof-medieval: #69504a;--n-house-edo: #e7d8bc;--n-roof-edo: #413b3a;--n-house-sahelian: #d9ad76;--n-roof-sahelian: #a66d45;--n-tree-coastal-fill: #6f9b82;--n-tree-coastal-stroke: #416c60;--n-tree-highland-fill: #718b68;--n-tree-highland-stroke: #4d6652;--n-tree-edo-fill: #6f896c;--n-tree-edo-stroke: #4b624f;--n-tree-edo-pink-fill: #d99aa9;--n-tree-edo-pink-stroke: #9f6678;--n-tree-edo-green-fill: #8eaf83;--n-tree-edo-green-stroke: #5d795d;--n-tree-sahelian-fill: #b58a55;--n-tree-sahelian-stroke: #8b6540;--n-tree-medieval-fill: #7f8d65;--n-tree-medieval-stroke: #5c684d;--n-house-frame-stroke: #6f4e3f;--n-house-slats-stroke: #77564a;--n-house-masonry-stroke: #947d69;--n-sunband-stroke: #8d583d;--n-dark-house-body-stroke: #a89278;--n-dark-house-roof-stroke: #b6a087;--n-dark-window-fill: #79a5a3;--n-dark-window-stroke: #342d29;--n-dark-door-fill: #c77c62;--n-dark-door-stroke: #342d29;--n-dark-plaque-fill: #332b27;--n-dark-plaque-stroke: #c4ab8d;--n-dark-glyph-fill: #f1dfc3;--n-dark-glyph-stroke: #332b27;color:var(--n-ink);background:var(--n-paper);border:1px solid var(--n-line);border-radius:1.2rem;box-shadow:0 1rem 2.8rem var(--n-shadow);overflow:hidden}.theme-dark .rsm{--n-ink: #f3e5ce;--n-muted: #c0aa92;--n-paper: #2c2521;--n-paper-deep: #3a3029;--n-line: #725c4b;--n-accent: #db7854;--n-accent-deep: #f0a27c;--n-water: #7bb1b2;--n-wild: #d1aa75;--n-house: #e2cda8;--n-roof: #b86b4e;--n-plaza: #6b5140;--n-white: #211b18;--n-shadow: #0008;--n-mountain-paper-dark: #4a3b31;--n-house-timber: #655344;--n-roof-timber: #593c36;--n-house-stone: #5b534a;--n-roof-stone: #3c3938;--n-house-coastal: #4e625f;--n-roof-coastal: #324f52;--n-house-highland: #5e513e;--n-roof-highland: #463433;--n-house-medieval: #5a4b3f;--n-roof-medieval: #3b302d;--n-house-edo: #61584f;--n-roof-edo: #252b2b;--n-house-sahelian: #74543c;--n-roof-sahelian: #6e4636}.rsm-studio{display:grid;grid-template-columns:minmax(18rem,.75fr) minmax(28rem,1.5fr);min-height:35rem}.rsm-controls,.rsm-map-column{padding:clamp(1.15rem,2.5vw,2.1rem)}.rsm-controls{display:flex;flex-direction:column;gap:1.1rem;border-right:1px solid var(--n-line);background:var(--n-paper-deep)}.rsm-intro{max-width:32rem;color:var(--n-muted);font-size:.9rem;line-height:1.55}.rsm-separator{height:1px;background:var(--n-line)}.rsm-field,.rsm-services{display:flex;flex-direction:column;gap:.55rem;margin:0;padding:0;border:0}.rsm-field label,.rsm-label,.rsm-services legend{display:flex;justify-content:space-between;gap:.7rem;color:var(--n-ink);font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.rsm-field small{color:var(--n-muted);font-size:.74rem;line-height:1.4}.rsm-seed-row{display:flex;gap:.45rem}.rsm input[type=text],.rsm-service-picker{min-width:0;border:1px solid var(--n-line);border-radius:.55rem;background:var(--n-paper);color:var(--n-ink);font:inherit}.rsm input[type=text]{width:100%;padding:.68rem .75rem}.rsm input:focus-visible,.rsm button:focus-visible{outline:3px solid var(--n-accent);outline-offset:2px}.rsm button{cursor:pointer}.rsm-icon-button{flex:0 0 2.65rem;border:1px solid var(--n-line);border-radius:.55rem;background:var(--n-paper);color:var(--n-accent-deep);font-size:1.2rem}.rsm-choice-row,.rsm-service-row,.rsm-tool-group,.rsm-actions,.rsm-legend{display:flex;flex-wrap:wrap;gap:.45rem}.rsm-choice,.rsm-tool,.rsm-actions button,.rsm-data-menu summary{border:1px solid var(--n-line);border-radius:999px;background:var(--n-paper);color:var(--n-ink);font:inherit;font-size:.78rem}.rsm-choice{padding:.55rem .7rem}.rsm-choice.is-active,.rsm-tool.is-active,.rsm-action-primary{border-color:var(--n-accent-deep);background:var(--n-accent);color:var(--n-white)}.rsm-size-row{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem}.rsm-size-button{display:flex;min-height:4.1rem;flex-direction:column;justify-content:center;gap:.2rem;border:1px solid var(--n-line);border-radius:.65rem;background:var(--n-paper);color:var(--n-ink);font:inherit;text-align:left}.rsm-size-button strong,.rsm-size-button span,.rsm-size-button small{padding-inline:.65rem}.rsm-size-button span{color:var(--n-muted);font-size:.7rem}.rsm-size-button small{color:var(--n-muted);font-size:.64rem}.rsm-size-button.is-active{border-color:var(--n-accent-deep);box-shadow:inset 0 -.22rem var(--n-accent)}.rsm-home-field output{color:var(--n-accent-deep);font-variant-numeric:tabular-nums}.rsm input[type=range]{width:100%;accent-color:var(--n-accent)}.rsm-service-chip{position:relative;display:block;cursor:pointer}.rsm-service-entry{display:inline-flex;align-items:center;gap:.15rem}.rsm-remove-service{width:1.35rem;height:1.35rem;padding:0;border:1px solid var(--n-line);border-radius:50%;background:var(--n-paper);color:var(--n-muted);font:inherit;font-size:.7rem;line-height:1}.rsm-remove-service:hover,.rsm-remove-service:focus-visible{border-color:var(--n-accent-deep);color:var(--n-accent-deep)}.rsm-service-chip input{position:absolute;opacity:0}.rsm-service-chip span{display:block;padding:.48rem .65rem;border:1px solid var(--n-line);border-radius:999px;background:var(--n-paper);color:var(--n-muted);font-size:.74rem}.rsm-service-chip input:checked+span{border-color:var(--n-accent-deep);background:var(--n-accent-deep);color:var(--n-white)}.rsm-add-service{display:grid;grid-template-columns:1fr auto;gap:.4rem}.rsm-add-service button{padding:.55rem .7rem;border:1px solid var(--n-line);border-radius:.55rem;background:var(--n-paper);color:var(--n-ink);font:inherit;font-size:.72rem}.rsm-generate{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding:.9rem 1rem;border:1px solid var(--n-accent-deep);border-radius:.7rem;background:var(--n-accent);color:var(--n-white);font:inherit;font-weight:700}.rsm-map-column{min-width:0;background:var(--n-paper)}.rsm-map-heading,.rsm-stats,.rsm-map-tools,.rsm-actions{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.rsm-map-heading{margin-bottom:.95rem}.rsm-map-heading>div{display:grid;gap:.22rem}.rsm-eyebrow{color:var(--n-muted);font-size:.68rem;letter-spacing:.13em;text-transform:uppercase}.rsm-badge{padding:.4rem .65rem;border:1px solid var(--n-wild);border-radius:999px;color:var(--n-wild);font-size:.7rem;font-weight:700;white-space:nowrap}.rsm-map-frame{position:relative;overflow:hidden;border:1px solid var(--n-line);border-radius:.9rem;background:var(--n-paper-deep)}.rsm-map-host{aspect-ratio:1.5;min-height:18rem;touch-action:none}.rsm-map-svg{display:block;width:100%;height:100%;cursor:crosshair;shape-rendering:geometricprecision}.rsm-paper{fill:var(--n-paper)}.rsm-grid{fill:none;stroke:var(--n-line);stroke-width:.035;opacity:.35}.rsm-water-component{fill:var(--n-water);opacity:.82}.rsm-water-component rect{stroke:var(--n-water);stroke-width:.06}.rsm-water-river{opacity:.72}.rsm-water-pond{opacity:.8}.rsm-water-lake{opacity:.88}.rsm-road-base,.rsm-road-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.rsm-road-base{stroke:var(--n-line);stroke-width:.78}.rsm-road-line{stroke:var(--n-accent);stroke-dasharray:.18 .16;stroke-width:.16}.rsm-plaza rect{fill:var(--n-plaza);stroke:var(--n-line);stroke-width:.12}.rsm-plaza path{fill:none;stroke:var(--n-line);stroke-width:.1}.rsm-tree path:first-child{stroke:var(--n-roof);stroke-linecap:round;stroke-width:.13}.rsm-tree path:not(:first-child){fill:var(--n-wild);stroke:var(--n-roof);stroke-width:.08}.rsm-tree-coastal path:not(:first-child){fill:var(--n-tree-coastal-fill);stroke:var(--n-tree-coastal-stroke)}.rsm-tree-highland path:not(:first-child){fill:var(--n-tree-highland-fill);stroke:var(--n-tree-highland-stroke)}.rsm-tree-edo path:not(:first-child){fill:var(--n-tree-edo-fill);stroke:var(--n-tree-edo-stroke)}.rsm-tree-edo-pink path:not(:first-child){fill:var(--n-tree-edo-pink-fill);stroke:var(--n-tree-edo-pink-stroke)}.rsm-tree-edo-green path:not(:first-child){fill:var(--n-tree-edo-green-fill);stroke:var(--n-tree-edo-green-stroke)}.rsm-tree-sahelian path:not(:first-child){fill:var(--n-tree-sahelian-fill);stroke:var(--n-tree-sahelian-stroke)}.rsm-tree-medieval path:not(:first-child){fill:var(--n-tree-medieval-fill);stroke:var(--n-tree-medieval-stroke)}.rsm-building .rsm-house-body{fill:var(--n-house);stroke:var(--n-ink);stroke-width:.12}.rsm-building .rsm-house-roof{fill:var(--n-roof);stroke:var(--n-ink);stroke-width:.1}.rsm-house-window{fill:var(--n-water);stroke:var(--n-ink);stroke-width:.07}.rsm-house-door{fill:var(--n-accent-deep);stroke:var(--n-ink);stroke-width:.07}.rsm-house-beam,.rsm-house-stone,.rsm-house-frame,.rsm-house-wood-slats,.rsm-house-masonry,.rsm-house-awning,.rsm-house-chimney,.rsm-house-sunband{fill:none;stroke:var(--n-ink);stroke-linecap:round;stroke-width:.08}.rsm-house-frame{stroke:var(--n-house-frame-stroke);stroke-width:.12}.rsm-house-wood-slats{stroke:var(--n-house-slats-stroke);stroke-width:.07;opacity:.8}.rsm-house-masonry{stroke:var(--n-house-masonry-stroke);stroke-width:.07;stroke-dasharray:.55 .12;opacity:.78}.rsm-service-plaque{fill:var(--n-paper);stroke:var(--n-ink);stroke-width:.05;opacity:.94}.rsm-house-style-timber .rsm-house-body{fill:var(--n-house-timber)}.rsm-house-style-timber .rsm-house-roof{fill:var(--n-roof-timber)}.rsm-house-style-stone .rsm-house-body{fill:var(--n-house-stone)}.rsm-house-style-stone .rsm-house-roof{fill:var(--n-roof-stone)}.rsm-house-style-coastal .rsm-house-body{fill:var(--n-house-coastal)}.rsm-house-style-coastal .rsm-house-roof{fill:var(--n-roof-coastal)}.rsm-house-style-highland .rsm-house-body{fill:var(--n-house-highland)}.rsm-house-style-highland .rsm-house-roof{fill:var(--n-roof-highland)}.rsm-house-style-highland .rsm-house-chimney{stroke-width:.14}.rsm-house-style-medieval .rsm-house-body{fill:var(--n-house-medieval)}.rsm-house-style-medieval .rsm-house-roof{fill:var(--n-roof-medieval)}.rsm-house-style-edo .rsm-house-body{fill:var(--n-house-edo)}.rsm-house-style-edo .rsm-house-roof{fill:var(--n-roof-edo)}.rsm-house-style-edo .rsm-house-beam{stroke-width:.12}.rsm-house-style-sahelian .rsm-house-body{fill:var(--n-house-sahelian)}.rsm-house-style-sahelian .rsm-house-roof{fill:var(--n-roof-sahelian)}.rsm-house-style-sahelian .rsm-house-sunband{stroke:var(--n-sunband-stroke);stroke-width:.14}.rsm-building-glyph{fill:var(--n-ink);font-weight:800;paint-order:stroke;stroke:var(--n-paper);stroke-width:.035;text-anchor:middle}.rsm-service-sign{overflow:visible}.rsm-service-sign .rsm-building-glyph{font-weight:900;letter-spacing:0;dominant-baseline:middle}.rsm-service-stem{fill:none;stroke:var(--n-line);stroke-width:.07}.theme-dark .rsm-building .rsm-house-body{stroke:var(--n-dark-house-body-stroke)}.theme-dark .rsm-building .rsm-house-roof{stroke:var(--n-dark-house-roof-stroke)}.theme-dark .rsm-house-window{fill:var(--n-dark-window-fill);stroke:var(--n-dark-window-stroke)}.theme-dark .rsm-house-door{fill:var(--n-dark-door-fill);stroke:var(--n-dark-door-stroke)}.theme-dark .rsm-service-plaque{fill:var(--n-dark-plaque-fill);stroke:var(--n-dark-plaque-stroke)}.theme-dark .rsm-service-stem{stroke:var(--n-dark-plaque-stroke)}.theme-dark .rsm-service-sign .rsm-building-glyph{fill:var(--n-dark-glyph-fill);stroke:var(--n-dark-glyph-stroke)}.rsm-building:hover .rsm-house-body{fill:var(--n-paper)}.rsm-environment-mountain .rsm-paper{fill:var(--n-mountain-paper)}.theme-dark .rsm-environment-mountain .rsm-paper{fill:var(--n-mountain-paper-dark)}.rsm-context-menu[hidden]{display:none}.rsm-context-menu{position:fixed;z-index:20;display:grid;min-width:9rem;max-width:calc(100vw - 1rem);max-height:min(22rem,calc(100vh - 1rem));box-sizing:border-box;overflow-y:auto;gap:.2rem;padding:.4rem;border:1px solid var(--n-line);border-radius:.6rem;background:var(--n-paper);box-shadow:0 .7rem 1.5rem var(--n-shadow)}.rsm-context-menu button{padding:.5rem .65rem;border:0;background:transparent;color:var(--n-ink);font:inherit;font-size:.74rem;text-align:left}.rsm-context-menu button:hover{background:var(--n-paper-deep)}.rsm-map-help{position:absolute;right:.65rem;bottom:.65rem;padding:.35rem .5rem;border:1px solid var(--n-line);border-radius:.35rem;background:var(--n-paper);color:var(--n-muted);font-size:.68rem}.rsm-stats{align-items:stretch;margin-block:.85rem;padding-block:.65rem;border-block:1px solid var(--n-line)}.rsm-stats div{display:grid;gap:.18rem;min-width:0}.rsm-stats span{color:var(--n-muted);font-size:.67rem;text-transform:uppercase}.rsm-stats strong{font-size:1.1rem;font-variant-numeric:tabular-nums}.rsm-tool-group{gap:.25rem}.rsm-tool{padding:.48rem .6rem}.rsm-service-picker{position:relative;display:flex;align-items:center;gap:.45rem;padding:.25rem .35rem .25rem .6rem;color:var(--n-muted);font-size:.7rem}.rsm-service-picker>button{display:flex;align-items:center;gap:.5rem;padding:.3rem .4rem;border:0;background:transparent;color:var(--n-ink);font:inherit;font-size:.72rem}.rsm-service-picker>button b{width:.45rem;height:.45rem;border-right:1px solid var(--n-ink);border-bottom:1px solid var(--n-ink);transform:rotate(45deg) translateY(-.1rem)}.rsm-service-options[hidden]{display:none}.rsm-service-options{position:absolute;right:0;top:calc(100% + .35rem);z-index:3;display:grid;min-width:9rem;gap:.2rem;padding:.4rem;border:1px solid var(--n-line);border-radius:.55rem;background:var(--n-paper);box-shadow:0 .6rem 1.2rem var(--n-shadow)}.rsm-service-options button{padding:.45rem .55rem;border:0;background:transparent;color:var(--n-ink);font:inherit;font-size:.72rem;text-align:left}.rsm-service-options button:hover{background:var(--n-paper-deep)}.rsm-legend{margin-top:.75rem;color:var(--n-muted);font-size:.68rem}.rsm-legend span{display:inline-flex;align-items:center;gap:.28rem}.rsm-legend i{display:inline-grid;width:.8rem;height:.8rem;place-items:center;font-style:normal;font-weight:800}.rsm-legend-home{border:1px solid var(--n-ink);background:var(--n-paper-deep)}.rsm-legend-service{color:var(--n-accent-deep)}.rsm-legend i.rsm-legend-path{height:.22rem;border-block:2px dashed var(--n-accent)}.rsm-legend i.rsm-legend-water{height:.22rem;border-block:2px solid var(--n-water)}.rsm-legend-wild{color:var(--n-wild)}.rsm-actions{justify-content:flex-start;margin-top:1rem}.rsm-actions button,.rsm-data-menu summary{padding:.52rem .68rem}.rsm-actions button{font-size:.72rem}.rsm-data-menu{position:relative}.rsm-data-menu summary{cursor:pointer;list-style:none}.rsm-data-menu summary::-webkit-details-marker{display:none}.rsm-data-menu[open]>div{display:grid}.rsm-data-menu>div{position:absolute;right:0;z-index:2;display:none;min-width:9rem;gap:.35rem;margin-top:.35rem;padding:.45rem;border:1px solid var(--n-line);border-radius:.55rem;background:var(--n-paper);box-shadow:0 .6rem 1.2rem var(--n-shadow)}.rsm-data-menu label{display:block;color:var(--n-ink);font-size:.72rem}.rsm-data-menu input{width:100%;margin-top:.35rem;font-size:.68rem}.rsm-status{min-height:1.1rem;margin:.55rem 0 0;color:var(--n-accent-deep);font-size:.75rem}@media(max-width:850px){.rsm-studio{grid-template-columns:1fr}.rsm-controls{border-right:0;border-bottom:1px solid var(--n-line)}}@media(max-width:560px){.rsm-controls,.rsm-map-column{padding:1rem}.rsm-map-host{min-height:14rem}.rsm-map-tools,.rsm-actions{align-items:stretch;flex-direction:column}.rsm-tool-group{justify-content:center}.rsm-service-picker{justify-content:space-between}.rsm-actions button,.rsm-data-menu,.rsm-data-menu summary{width:100%}.rsm-data-menu>div{position:static}}
