@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{font-family:'DM Sans',sans-serif;color:#233c36;background:#f8faf9;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit;border:1px solid #dce3df;background:#fff;border-radius:8px;min-height:42px;padding:9px 14px}button:hover{background:#edf2ef}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #b8822f;outline-offset:3px}header{height:88px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid #e1e8e3;background:#fff}.brand{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;font:800 18px 'Manrope',sans-serif;letter-spacing:2px}.brand small{display:block;font:400 12px 'DM Sans',sans-serif;letter-spacing:0;color:#6b7770;margin-top:5px}.brandmark{display:grid;place-items:center;font-size:32px;background:#233c36;color:#e7c897;width:44px;height:44px;border-radius:12px}.head-center{font-size:15px}.head-center span{font-size:10px;letter-spacing:1.6px;display:block;text-align:center;color:#7b877f;margin-top:5px}header>button{font-size:14px}main{display:grid;grid-template-columns:338px 1fr;height:calc(100dvh - 88px)}aside{overflow:auto;padding:28px 26px;background:#fff;border-right:1px solid #e1e8e3}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700;color:#7b897f}h1{font:600 29px/1.2 'Manrope',sans-serif;letter-spacing:-1px;margin:14px 0}.intro{font-size:14px;line-height:1.65;color:#78837c;margin-bottom:24px}.section-title{display:flex;gap:10px;color:#9aa79d;font-size:12px;margin:23px 0 12px}.section-title span{color:#344c42;font-weight:600;font-size:14px}.scenarios{display:grid;gap:8px}.scenarios button{text-align:left;padding:12px 14px;font-weight:600;border-radius:9px}.scenarios button small{display:block;font-weight:400;font-size:12px;color:#7a877e;margin-top:4px}.scenarios button.active{background:#233c36;color:white;border-color:#233c36}.scenarios button.active small{color:#c4d0c8}.toggle{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:9px 0}.toggle input{appearance:none;background:#d7e0da;width:34px;height:20px;border-radius:12px;position:relative;cursor:pointer}.toggle input:before{content:'';width:14px;height:14px;border-radius:50%;position:absolute;top:3px;left:3px;background:#fff;transition:transform .2s}.toggle input:checked{background:#486c4b}.toggle input:checked:before{transform:translateX(14px)}.range{margin:15px 0}.range label{display:flex;justify-content:space-between;font-size:14px;gap:8px}.range output{font-size:13px;color:#69786e;font-variant-numeric:tabular-nums}.range input{width:100%;accent-color:#496b4e;height:18px;margin:10px 0 0}details{font-size:13px;border-top:1px solid #edf0ed;padding-top:12px}summary{cursor:pointer;font-size:14px}details p{color:#78837c;line-height:1.6}.homes{display:flex;gap:8px}.homes button{flex:1}.homes button[data-home=C]{color:#3e778b;border-color:#94b3be}.route-button{width:100%;font-size:13px;margin-top:10px}.route-button.active{background:#e2f0f6;border-color:#85afc3}.note{display:flex;gap:9px;background:#f5f7f4;border-radius:8px;padding:12px;margin-top:25px}.note p{margin:0;font-size:12px;line-height:1.6;color:#78837c}.note strong{display:block;color:#4c6154}.viewport{position:relative;overflow:hidden;background:#e8eee7;min-width:0}#scene{position:absolute;inset:0}#scene canvas{display:block;width:100%;height:100%;touch-action:none}.view-top{position:absolute;top:24px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.view-top>*{pointer-events:auto}.segmented{display:flex;border:1px solid #dde5dd;background:#ffffffeb;padding:4px;border-radius:11px;box-shadow:0 4px 18px #233c3610}.segmented button{border:0;background:transparent;font-size:14px;min-height:36px}.segmented button.active{background:#233c36;color:#fff}.scene-label{font-size:11px;letter-spacing:1.5px;background:#fff9;padding:10px 14px;border:1px solid #ffffffaa;border-radius:6px;color:#456047}.view-tools{position:absolute;right:24px;top:94px;display:flex;flex-direction:column;gap:8px}.view-tools button{width:40px;padding:0;font-size:22px;box-shadow:0 3px 10px #233c3610}.view-bottom{position:absolute;bottom:28px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:end;gap:15px}.legend{background:#fffffff0;padding:13px 16px;border:1px solid #e4e9e1;border-radius:9px;display:flex;gap:15px;font-size:12px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:8px;height:8px;border-radius:2px}.gold{background:#bf9048}.green{background:#527448}.blue{background:#5195aa}.help{font-size:11px;color:#64796b;max-width:260px;text-align:right}.scale-note{position:absolute;bottom:7px;left:26px;font-size:10px;color:#6d8072}#walkHint{position:absolute;top:82px;left:24px;background:#fff;padding:10px;border-radius:6px;font-size:12px}#joystick{position:absolute;bottom:100px;right:24px;text-align:center}#joystick button{margin:2px;width:44px;touch-action:none}#loading{position:absolute;inset:0;display:grid;place-items:center;background:#e8eee7;font-size:18px}dialog{border:0;border-radius:15px;width:min(850px,92vw);padding:24px;max-height:90dvh;color:#233c36;box-shadow:0 24px 90px #0005}dialog::backdrop{background:#172c2866;backdrop-filter:blur(4px)}dialog img{width:100%;border-radius:8px}dialog p{font-size:14px;line-height:1.5;color:#69796d}.dialog-head{display:flex;justify-content:space-between;align-items:start;gap:15px}.dialog-head strong{font-size:20px}[hidden]{display:none!important}@media(min-width:1600px){aside{padding:34px}main{grid-template-columns:370px 1fr}h1{font-size:33px}}@media(max-width:850px){header{padding:0 16px;height:72px}.head-center{display:none}main{height:auto;display:flex;flex-direction:column}.viewport{height:65dvh;min-height:430px;order:-1}aside{overflow:visible;padding:24px;display:block}.view-top{left:12px;right:12px;top:14px}.scene-label{display:none}.view-tools{right:12px;top:76px}.view-bottom{left:12px;right:12px;bottom:28px}.help{display:none}.legend{font-size:11px;gap:10px;padding:10px}.scenarios{grid-template-columns:1fr 1fr}h1 br{display:none}h1{font-size:26px}.intro{margin-bottom:18px}#walkHint{left:12px;max-width:240px}.brand{font-size:16px}.brandmark{width:38px;height:38px}}

.parcel-note{font-size:12px;line-height:1.7;color:#78837c}dialog img+img{margin-top:16px}

#signDialog{width:min(700px,92vw);background:#eef2ed}#signDialog .parking-sign-preview{display:block;width:100%;max-height:70dvh;object-fit:contain;margin:12px auto}button:disabled{opacity:.5;cursor:default}
