@font-face{font-family:DM;src:url(../fonts/dm-sans-latin-400-normal.woff2);font-display:swap}@font-face{font-family:DM;src:url(../fonts/dm-sans-latin-600-normal.woff2);font-weight:600;font-display:swap}:root{font-family:DM,sans-serif;font-synthesis:none;color:#f2f0e9;background:#747f78;--ink:#f2f0e9;--muted:#cad0c9;--panel:#1e2725e8;--line:#e0e6dc33;--accent:#ffd394;--focus:#0eb1d7;--space:24px}*{box-sizing:border-box}body{margin:0;min-width:320px;overflow:hidden}main{position:relative;width:100%;height:100svh;overflow:hidden}button{-webkit-tap-highlight-color:transparent;font:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.4}button:focus-visible,#viewport:focus-visible{outline:2px solid var(--focus);outline-offset:4px}button[hidden],[hidden]{display:none}#viewport{position:absolute;top:0;right:0;bottom:0;left:0;touch-action:none;outline-offset:-4px}#viewport canvas{display:block;width:100%;height:100%}.property-header{position:absolute;inset:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;gap:24px;padding:20px var(--space) 42px;pointer-events:none;background:linear-gradient(#17211ec9,#17211e58 60%,transparent)}.brand{display:block;width:clamp(185px,17vw,245px);height:auto;object-fit:contain}.property-address{text-align:right;padding-top:4px;text-shadow:0 1px 16px #17211e88}.property-address p{color:var(--muted);margin:0 0 5px;font-size:10px;letter-spacing:.17em;text-transform:uppercase}h1{margin:0;font-size:clamp(22px,2.15vw,33px);font-weight:400;letter-spacing:-.045em;line-height:1.2}.controls{position:absolute;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);display:flex;gap:6px;max-width:calc(100% - 24px);padding:7px;background:var(--panel);border:1px solid var(--line);border-radius:7px;box-shadow:0 8px 32px #14201b33;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.controls button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 20px;border:1px solid transparent;border-radius:3px;white-space:nowrap;color:var(--ink);background:transparent;font-size:12px;font-weight:600;transition:background .18s,color .18s,border-color .18s}.controls button:not(:disabled):hover{background:#ffffff12}#highlight-sprinklers{border-color:var(--line)}.tour-check{display:grid;place-items:center;width:14px;height:14px;border:1px solid var(--muted);color:transparent;font-size:10px}#highlight-sprinklers[aria-pressed=true]{color:var(--accent);border-color:#ffd39480;background:#ffd39412}#highlight-sprinklers[aria-pressed=true] .tour-check{color:#252c25;background:var(--accent);border-color:var(--accent)}#run-scenario{background:var(--ink);color:#21312b}#run-scenario:not(:disabled):hover{background:#fff}#run-scenario.running{opacity:.7}#stop-scenario{min-width:68px}#loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;padding:24px;min-width:280px;color:var(--ink);background:#1e2725e8;border:1px solid var(--line);border-radius:5px}#loading p{font-size:15px;margin:16px 0 7px}#loading small{font-size:11px;color:var(--muted)}.loader{display:inline-block;width:22px;height:22px;border:1px solid var(--line);border-top-color:var(--focus);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#retry{display:block;margin:18px auto 0;padding:10px 20px;border:1px solid var(--line);border-radius:3px;background:transparent;color:var(--ink)}#retry[hidden],body.error .loader{display:none}.station-marker{position:absolute;transform:translate(-50%,-220%);padding:6px 9px;background:#f4d5a3;color:#272b23;border:1px solid #ffda9d;border-radius:3px;font-size:11px;white-space:nowrap;z-index:2;pointer-events:none}.station-marker:after{content:"";position:absolute;left:50%;width:1px;height:24px;bottom:-25px;background:#ffda9d}.sprinkler-beacon{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;z-index:1}.sprinkler-beacon:before{content:"";position:absolute;width:48px;height:48px;left:-24px;top:-24px;border:1px solid #ffdb95;border-radius:50%;background:radial-gradient(circle,#ffd28b55,transparent 65%);box-shadow:0 0 16px #ffc87544}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(max-width:680px){:root{--space:16px}.property-header{padding-top:max(16px,env(safe-area-inset-top));gap:16px;align-items:flex-start;flex-direction:column;background:linear-gradient(#17211ee0,#17211e55 75%,transparent)}.brand{width:174px}.property-address{text-align:left;padding-top:0}.property-address p{font-size:8px;margin-bottom:4px}h1{font-size:25px}.controls{width:calc(100% - 24px);display:grid;grid-template-columns:1.12fr 1.14fr .5fr;padding:5px;gap:4px;bottom:max(12px,env(safe-area-inset-bottom))}.controls button{font-size:11px;min-height:46px;padding:0 7px;gap:5px}#stop-scenario{min-width:0}.tour-check{width:12px;height:12px;flex-shrink:0}.station-marker{font-size:10px}}@media(max-width:360px){.controls button{font-size:10px;padding:0 4px;gap:4px}.brand{width:160px}h1{font-size:23px}}@media(max-height:520px)and (min-width:681px){.brand{width:170px}.property-header{padding-top:12px}.controls{bottom:10px;padding:4px}.controls button{min-height:42px}h1{font-size:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
