
:root{font-family:Inter,Segoe UI,sans-serif;color:#203b36;background:#cbdcd8;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}#viewport{position:fixed;inset:0}canvas{display:block;width:100%;height:100%}header{position:absolute;top:24px;left:28px;right:28px;height:70px;background:#fffdf4ed;border:1px solid #fff9;border-radius:18px;display:flex;align-items:center;padding:0 24px;gap:24px;box-shadow:0 8px 35px #203b3610}.brand{display:flex;align-items:center;gap:4px;font-size:27px;font-weight:750;text-decoration:none;color:#203b36;letter-spacing:-1.3px}.brand>span:last-child{font-weight:400}.mark{background:#305b4f;color:#fff6dc;width:35px;height:35px;border-radius:10px;display:grid;place-content:center;margin-right:8px;font-size:24px;position:relative}.mark span{position:absolute;right:3px;top:-7px;font-size:21px;color:#e6bd71}.divider{width:1px;height:30px;background:#d8dfd5}.location{font-size:14px;font-weight:600}.location small{display:block;font-size:10px;letter-spacing:1px;color:#7d8e85;margin-top:5px}.badge{margin-left:auto;font-size:10px;letter-spacing:1.7px;border:1px solid #c9d7c9;border-radius:30px;padding:9px 13px;color:#64796c}.intro{position:absolute;left:48px;top:132px;pointer-events:none;text-shadow:0 2px 18px #f4f2dd}.eyebrow{font-size:10px;letter-spacing:2.6px;font-weight:700;color:#4e7366}h1{font-size:48px;line-height:1.05;letter-spacing:-2px;font-weight:650;margin:17px 0}h1 em{font-family:Georgia,serif;font-weight:400;font-size:33px;letter-spacing:-1px}.intro p{font-size:13px;color:#567065}.views{position:absolute;bottom:108px;left:50%;transform:translateX(-50%);padding:5px;background:#fffdf4ed;border-radius:40px;display:flex;box-shadow:0 5px 20px #213d3620;gap:3px}button{font:inherit;border:0;cursor:pointer}.views button{padding:12px 22px;border-radius:30px;background:none;color:#566d60;font-size:12px}.views button.active{background:#315b4f;color:#fff7e6}.panel{position:absolute;right:28px;top:118px;width:252px;background:#fffdf3f2;border:1px solid #fff9;border-radius:18px;padding:23px;box-shadow:0 8px 35px #203b3610}.panel-heading{font-size:9px;letter-spacing:1.5px;color:#6a7e71;display:flex;align-items:center;gap:8px;margin-bottom:24px}.status-dot{background:#5c9a79;width:6px;height:6px;border-radius:50%}.switch-row{font-size:12px;display:flex;justify-content:space-between;align-items:center;margin:18px 0}input[type=checkbox]{appearance:none;width:31px;height:18px;border-radius:15px;background:#cbd2c8;position:relative;cursor:pointer;margin:0}input[type=checkbox]:after{content:'';position:absolute;width:12px;height:12px;background:#fffaf0;left:3px;top:3px;border-radius:50%;transition:transform .2s}input[type=checkbox]:checked{background:#477b64}input[type=checkbox]:checked:after{transform:translateX(13px)}.range-label{display:flex;justify-content:space-between;font-size:11px;margin-top:26px}.range-label span{color:#8a9688;font-size:10px}input[type=range]{width:100%;accent-color:#477b64;margin:15px 0 4px}.panel-line{height:1px;background:#dfe3d7;margin:21px 0}.stats{display:flex;gap:24px}.stats strong{display:block;font-size:23px;font-weight:550;letter-spacing:-1px}.stats span{font-size:9px;color:#829080}.metrics{font-size:10px;color:#819183;line-height:1.7;margin:17px 0}#reset{width:100%;padding:11px;border:1px solid #d7dfd2;background:transparent;border-radius:8px;color:#607b69;font-size:11px}.compass{position:absolute;right:55px;bottom:143px;display:grid;place-items:center;color:#355f50;pointer-events:none}.compass>span{font-size:10px;letter-spacing:1px}.compass>div{font-size:40px}footer{position:absolute;bottom:0;left:0;right:0;padding:18px 28px 20px;background:linear-gradient(transparent,#f8f4e2ed);font-size:10px;color:#4e6c5f;pointer-events:none}.help,.credits{display:flex;gap:20px;justify-content:center}.help{margin-bottom:15px}.credits{font-size:9px;opacity:.85}.credits a{pointer-events:auto;color:inherit}#loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;background:#edf0e6e8;z-index:5;transition:opacity .5s}#loading strong{font-family:Georgia,serif;font-size:32px;font-weight:400}#loading>span:last-child{font-size:12px;color:#6b8174}.spinner{height:30px;width:30px;border:2px solid #c8d6c7;border-top-color:#315b4f;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#error{position:absolute;left:30px;bottom:100px;max-width:500px;background:#fff2dd;padding:20px;border-radius:12px;color:#7b3f29;font-size:13px}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid #ca9d48;outline-offset:3px}@media(max-width:800px){header{left:12px;right:12px;top:12px;height:60px;padding:0 14px;gap:12px}.badge{display:none}.brand{font-size:22px}.location{font-size:11px}.intro{left:24px;top:95px}h1{font-size:34px}h1 em{font-size:24px}.panel{top:auto;bottom:170px;right:12px;width:185px;padding:15px}.panel-heading{margin-bottom:10px;font-size:8px}.stats strong{font-size:20px}.range-label,.panel-line{margin-top:14px}.switch-row{margin:12px 0}.help span:nth-child(n+2){display:none}.credits{gap:8px;flex-wrap:wrap}.compass{display:none}.views{bottom:95px}.views button{padding:11px 15px}.intro p{display:none}}

.workshop-link{margin-left:auto;color:#305b4f;text-decoration:none;font-size:11px;padding:9px 12px;border:1px solid #bdcdbb;border-radius:8px}.workshop-link+.badge{margin-left:0}@media(max-width:800px){.workshop-link{font-size:9px;padding:7px}.location small{display:none}}

.unreal-switch{padding-top:13px;border-top:1px solid #dfe3d7}.unreal-legend{border:1px solid #d8dfd2;border-radius:9px;padding:11px;background:#fffdf7;font-size:10px;line-height:1.6}.unreal-legend[hidden]{display:none}.unreal-legend>div{display:flex;align-items:center;gap:7px;margin:3px 0}.unreal-key{width:10px;height:10px;border-radius:3px;display:inline-block}.unreal-key.built{background:#0ba77a}.unreal-key.demo{border:2px dashed #d79928;background:#f4bd592a}.unreal-legend p{color:#6a7766;font-size:10px;margin:8px 0}.unreal-legend button{background:#315b4f;color:#fff7e6;border-radius:6px;padding:7px 10px;font-size:10px}.unreal-note{font-size:10px;color:#8a6333}.panel{max-height:calc(100vh - 240px);overflow-y:auto}input:disabled{opacity:.45;cursor:wait}

.house-editor-link{color:#305b4f;text-decoration:none;font-size:11px;padding:9px 12px;border:1px solid #bdcdbb;border-radius:8px;white-space:nowrap}@media(max-width:800px){.house-editor-link{font-size:9px;padding:7px}}

/* The public map keeps only the Unreal overlay control. */
.intro,.views{display:none}
.panel{width:228px;padding:14px 18px;max-height:calc(100vh - 150px)}
.panel>:not(.unreal-switch):not(.unreal-legend):not(.unreal-note){display:none}
.panel .unreal-switch{margin:0;padding:0;border:0;gap:18px}
.panel .unreal-legend{margin-top:12px}
.panel .unreal-note:not([hidden]){margin-top:10px}
@media(max-width:800px){.panel{top:86px;bottom:auto;right:12px;width:220px;max-height:calc(100vh - 180px)}}
