/* Masterplan WebGL da V2, isolado na V3. */

#masterplan .spatial-cluster{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);min-height:38px;padding:8px 10px;background:#f8f7f3;color:#343a3e;border:1px solid #ffffffa8;box-shadow:0 4px 18px #181d2170;white-space:nowrap;font-size:11px;line-height:1.2;z-index:2}
#masterplan .spatial-cluster.has-selected{background:#ddcca0}
#masterplan .spatial-cluster:hover{background:#fff}
#masterplan .spatial-cluster:focus-visible{outline:2px solid #fff;outline-offset:4px}
#masterplan.spatial-section{background:#e8e5df;color:var(--paper);padding-top:85px;scroll-margin-top:-80px}
#masterplan .spatial-intro{display:flex;justify-content:space-between;align-items:end;gap:40px;padding-bottom:55px}
#masterplan .spatial-intro .label{color:#777b7e;margin-bottom:23px}
#masterplan .spatial-intro h2{font-size:clamp(42px,4.7vw,72px)}
#masterplan .spatial-intro>p{max-width:340px;font-size:16px;color:#777b7e}
#masterplan .spatial{position:relative;height:clamp(700px,100svh,1050px);isolation:isolate;background:#e8e5df;overflow:hidden}
#masterplan .spatial:before{content:"";pointer-events:none;position:absolute;inset:0;z-index:1;background:linear-gradient(#e8e5df70,transparent 25%,transparent 68%,#e8e5dfe6)}
#masterplan .spatial-stage{position:absolute;inset:0;touch-action:pan-y;overflow:hidden;outline-offset:-5px}
#masterplan .spatial-stage canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:inherit}
#masterplan .spatial-stage canvas.dragging{cursor:grabbing}
#masterplan .spatial-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.8}
#masterplan .spatial.is-webgl .spatial-fallback{opacity:0;pointer-events:none;transition:opacity .7s}
#masterplan .spatial-pins{position:absolute;inset:0;pointer-events:none;overflow:hidden}
#masterplan .spatial-pin{position:absolute;left:0;top:0;transform:translate(-50%,-100%);padding:0;background:transparent;color:var(--ink);pointer-events:auto;display:flex;flex-direction:column;align-items:center;justify-content:end;width:40px;height:62px;transition:opacity .2s}
#masterplan .spatial-pin:after{content:"";height:21px;width:1px;background:#f8f7f3a8;box-shadow:0 0 5px #fff8}
#masterplan .spatial-pin>span{display:grid;place-items:center;border:1px solid #f8f7f390;background:#f8f7f3ec;box-shadow:0 3px 12px #181d2199;border-radius:50%;width:30px;height:30px;font-size:12px;line-height:1;font-weight:600;transition:transform .25s,background .25s}
#masterplan .spatial-pin[aria-pressed=true]{z-index:2}
#masterplan .spatial-pin[aria-pressed=true]>span{background:#ddcca0;color:#263642;transform:scale(1.15);outline:1px solid #f8f7f395;outline-offset:5px}
#masterplan .spatial-pin:hover>span{transform:scale(1.18);background:white}
#masterplan .spatial-pin em{position:absolute;bottom:66px;left:50%;transform:translateX(-50%);white-space:nowrap;background:#f8f7f3;color:#343a3e;font:12px/1.4 var(--sans);padding:8px 12px;opacity:0;pointer-events:none;transition:opacity .2s}
#masterplan .spatial-pin:hover em,#masterplan .spatial-pin:focus-visible em{opacity:1}
#masterplan .spatial-top{position:absolute;left:var(--gutter);right:var(--gutter);top:32px;z-index:3;display:flex;align-items:start;justify-content:space-between;gap:20px;pointer-events:none}
#masterplan .spatial-top>*{pointer-events:auto}
#masterplan .spatial-top .label{font-size:12px}
#masterplan .spatial-status{font-size:13px;color:#6b6e70;margin-top:7px}
#masterplan .spatial-top-actions{display:flex;gap:8px}
#masterplan .spatial-button{display:inline-flex;justify-content:center;align-items:center;gap:10px;background:#f8f7f3d9;border:1px solid #a6a6a44d;color:var(--paper);padding:11px 14px;min-width:44px;min-height:44px;font-size:13px;line-height:1.4;backdrop-filter:blur(10px);transition:background .25s,border-color .25s}
#masterplan .spatial-button:hover,#masterplan .spatial-button[aria-pressed=true]{background:var(--paper);border-color:var(--paper);color:var(--ink)}
#masterplan .spatial-button .icon{width:18px;height:18px}
#masterplan .spatial-button>span:not(:only-child){white-space:nowrap}
#masterplan .spatial-top-actions button>span:last-child:not(:first-child){font-size:12px}
#masterplan .spatial-card{position:absolute;right:var(--gutter);top:130px;width:290px;z-index:3;background:#f8f7f3f5;color:var(--ink);box-shadow:0 15px 50px #181d2135}
#masterplan .spatial-card>.label{padding:16px 20px;font-size:11px}
#masterplan .spatial-card>img{width:100%;aspect-ratio:16/9;object-fit:cover}
#masterplan .spatial-card-copy{padding:22px}
#masterplan .spatial-index{font-size:12px;color:var(--muted);margin-bottom:8px;font-variant-numeric:tabular-nums}
#masterplan .spatial-card h3{font-size:29px;line-height:1.15;letter-spacing:-.055em;margin-bottom:15px}
#masterplan .spatial-card #spatial-description{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:20px;min-height:4.9em}
#masterplan .spatial-card .cta{font-size:13px;width:100%;min-height:48px;padding-left:14px;gap:8px}
#masterplan .spatial-card .cta-icon{width:32px;height:32px}
#masterplan .save-place{display:flex;gap:9px;align-items:center;background:transparent;font-size:12px;margin-top:16px;padding:6px 0;min-height:36px}
#masterplan .save-place .icon{width:16px;height:16px}
#masterplan .save-place[aria-pressed=true]{color:#263e53}
#masterplan .spatial-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:62px;display:flex;justify-content:space-between;gap:20px;z-index:3}
#masterplan .spatial-tour,#masterplan .spatial-view{display:flex;gap:6px}
#masterplan .spatial-instructions{position:absolute;left:var(--gutter);right:var(--gutter);bottom:25px;display:flex;justify-content:space-between;gap:20px;z-index:3;color:#6b6e70;font-size:12px}
#masterplan .spatial-instructions a{text-decoration:underline;text-underline-offset:4px}
#masterplan .spatial-caption{padding-block:28px;display:flex;align-items:center;justify-content:space-between;gap:40px;border-top:1px solid #f8f7f324}
#masterplan .spatial-caption>p{font-size:12px;color:#6b6e70;max-width:460px}
#masterplan .spatial-caption>a{display:flex;align-items:center;gap:18px;font-size:15px;flex-wrap:wrap}
#masterplan .spatial-caption>a>span{font-size:12px;color:#ddcca0}
#masterplan .spatial-caption .icon{width:18px}
#masterplan .spatial-dialog{border:0;padding:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;background:#e8e5df;color:var(--paper);overflow:hidden}
#masterplan .spatial-dialog::backdrop{background:#e8e5df}
#masterplan .spatial-dialog .spatial{height:100dvh;min-height:0}
#masterplan .spatial-dialog .spatial-stage{touch-action:none}
#masterplan .spatial-dialog .spatial-top{top:25px}
#masterplan .spatial-dialog .spatial-card{top:115px}
#masterplan .spatial-dialog .spatial-instructions{bottom:20px}
#masterplan .spatial-dialog .spatial-bottom{bottom:55px}
#masterplan .spatial-directory{position:absolute;right:var(--gutter);top:103px;bottom:125px;width:370px;z-index:6;background:var(--paper);color:var(--ink);padding:24px;box-shadow:0 15px 70px #181d2180;display:flex;flex-direction:column;gap:18px}
#masterplan .directory-top{display:flex;align-items:center;justify-content:space-between;gap:15px}
#masterplan .directory-top h3{font-size:23px;letter-spacing:-.04em}
#masterplan .directory-top .spatial-button{background:transparent;color:var(--ink);border-color:var(--line);padding:10px}
#masterplan .spatial-directory input{width:100%;border:1px solid var(--line);background:transparent;min-height:46px;padding:10px 12px;font-size:14px;border-radius:0}
#masterplan .place-filters{display:flex;gap:6px;flex-wrap:wrap}
#masterplan .place-filters button{padding:7px 10px;background:#eeece7;font-size:12px;min-height:34px}
#masterplan .place-filters button[aria-pressed=true]{background:var(--ink);color:var(--paper)}
#masterplan .place-results{overflow:auto;flex:1;min-height:0}
#masterplan .place-result{display:flex;gap:13px;align-items:center;width:100%;text-align:left;background:transparent;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
#masterplan .place-result>span{font-size:11px;color:var(--muted);width:20px;flex:none}
#masterplan .place-result img{width:66px;height:43px;object-fit:cover}
#masterplan .place-result b{font-weight:400;line-height:1.4}
#masterplan .place-result[aria-pressed=true] b{font-weight:600}
#masterplan .place-result:hover{background:#343a3e07}
#masterplan .place-result:focus-visible{outline-offset:-2px}
@media (min-width:1600px){#masterplan .spatial-card{width:330px}
#masterplan .spatial-card h3{font-size:34px}
#masterplan .spatial-card #spatial-description{font-size:15px}}
@media (max-width:1100px){#masterplan .spatial-card{width:270px}
#masterplan .spatial-card-copy{padding:20px}
#masterplan .spatial-top,#masterplan .spatial-bottom,#masterplan .spatial-instructions{left:24px;right:24px}
#masterplan .spatial-card{right:24px}
#masterplan .spatial-card h3{font-size:27px}
#masterplan .spatial-bottom{gap:10px}
#masterplan .spatial-button{padding:11px}}
@media (max-width:900px){#masterplan .spatial-intro{align-items:start}
#masterplan .spatial-intro>p{max-width:260px}
#masterplan .spatial{height:950px}
#masterplan .spatial-card{top:auto;bottom:140px;left:24px;right:24px;width:auto;display:grid;grid-template-columns:200px 1fr}
#masterplan .spatial-card>.label{display:none}
#masterplan .spatial-card>img{height:100%;aspect-ratio:auto;object-fit:cover}
#masterplan .spatial-card-copy{padding:20px}
#masterplan .spatial-card h3{font-size:26px}
#masterplan .spatial-card #spatial-description{min-height:0;margin-bottom:14px}
#masterplan .spatial-card .cta{max-width:260px}
#masterplan .spatial-card .save-place{display:inline-flex;margin:12px 0 0}
#masterplan .spatial-status{font-size:12px}
#masterplan .spatial-top-actions .spatial-button{font-size:12px}
#masterplan .spatial-caption{gap:25px}
#masterplan .spatial-caption>p{max-width:360px}
#masterplan .spatial-dialog .spatial-card{top:auto;bottom:130px}
#masterplan .spatial-dialog .spatial{min-height:0}
#masterplan .spatial-directory{right:24px;bottom:130px}}
@media (max-width:600px){#masterplan.spatial-section{padding-top:65px}
#masterplan .spatial-intro{display:block;padding-bottom:35px}
#masterplan .spatial-intro h2{font-size:44px}
#masterplan .spatial-intro>p{margin-top:25px;max-width:none;font-size:16px}
#masterplan .spatial{height:1000px;min-height:850px}
#masterplan .spatial-top{left:18px;right:18px;top:24px;gap:18px;align-items:start;flex-direction:column}
#masterplan .spatial-top .label{font-size:11px}
#masterplan .spatial-top-actions{width:100%}
#masterplan .spatial-top-actions .spatial-button{font-size:12px;padding:10px 12px}
#masterplan .spatial-top-actions .spatial-button>span{font-size:12px!important}
#masterplan .spatial-card{left:18px;right:18px;bottom:184px;display:grid;grid-template-columns:92px minmax(0,1fr)}
#masterplan .spatial-card>img{width:92px;object-fit:cover}
#masterplan .spatial-card-copy{padding:17px}
#masterplan .spatial-card h3{font-size:24px;margin-bottom:10px}
#masterplan .spatial-index{font-size:11px;margin-bottom:7px}
#masterplan .spatial-card #spatial-description{font-size:13px;line-height:1.65;min-height:0}
#masterplan .spatial-card .cta{font-size:12px;gap:6px;min-height:44px;padding-left:10px;padding-right:5px}
#masterplan .spatial-card .cta-icon{width:28px;height:28px}
#masterplan .spatial-card .save-place{font-size:11px;gap:5px;margin-top:9px}
#masterplan .spatial-bottom{bottom:76px;left:18px;right:18px;flex-direction:column;align-items:stretch;gap:8px}
#masterplan .spatial-tour,#masterplan .spatial-view{justify-content:center;gap:6px}
#masterplan .spatial-button{font-size:12px;padding:10px 12px}
#masterplan .spatial-tour .tour-toggle{flex:1}
#masterplan .spatial-view>#spatial-overview{flex:1}
#masterplan .spatial-instructions{bottom:22px;left:18px;right:18px;display:block;font-size:11px}
#masterplan .spatial-instructions>a{display:block;margin-top:5px}
#masterplan .spatial-caption{display:block;padding-block:25px}
#masterplan .spatial-caption>p{font-size:12px;margin-bottom:20px}
#masterplan .spatial-caption>a{font-size:15px;gap:14px}
#masterplan .spatial-pin{width:38px;height:55px}
#masterplan .spatial-pin>span{width:28px;height:28px;font-size:11px}
#masterplan .spatial-pin:after{height:17px}
#masterplan .spatial-directory{left:16px;right:16px;top:125px;bottom:75px;width:auto;padding:20px}
#masterplan .directory-top h3{font-size:22px}
#masterplan .spatial-dialog .spatial{min-height:0}
#masterplan .spatial-dialog .spatial-top{top:18px}
#masterplan .spatial-dialog .spatial-card{bottom:174px;max-height:290px;overflow:auto}
#masterplan .spatial-dialog .spatial-bottom{bottom:68px}
#masterplan .spatial-dialog .spatial-instructions{bottom:15px}
#masterplan .spatial-dialog .spatial-status{display:none}
#masterplan .spatial-dialog .spatial-top{gap:10px}
#masterplan .spatial-dialog .spatial-top-actions{justify-content:space-between}
#masterplan .spatial-dialog .spatial-top .label{font-size:10px}}
@media (prefers-reduced-motion:reduce){#masterplan .spatial-stage canvas{scroll-behavior:auto}
#masterplan .spatial-dialog{animation:none!important}}
#masterplan.spatial-section{background:var(--paper);color:var(--ink);padding-top:100px;scroll-margin-top:0}
#masterplan .spatial-intro .label,#masterplan .spatial-intro>p{color:var(--muted)}
#masterplan .spatial{height:clamp(660px,85svh,950px);background:#e8e5df}
#masterplan .spatial:before{background:linear-gradient(#e8e5df70,transparent 23%,transparent 70%,#e8e5dfc7)}
#masterplan .spatial.is-webgl .spatial-fallback{visibility:hidden;transition:none}
#masterplan .spatial-top{top:26px;align-items:center}
#masterplan .spatial-top .label{font-size:20px;font-weight:400;letter-spacing:-.035em;text-transform:none}
#masterplan .spatial-top-actions{align-items:center;gap:14px}
#masterplan .spatial-button{background:transparent;color:var(--ink);border-color:transparent;font-size:14px;backdrop-filter:none}
#masterplan .spatial-button:hover{background:#f8f7f3b3;color:var(--ink);border-color:transparent}
#masterplan .spatial-button[aria-pressed=true]{background:var(--accent);color:var(--paper);border-color:transparent}
#masterplan #spatial-expand,#masterplan #spatial-close{width:44px;padding:0}
#masterplan .spatial-card{top:105px;width:285px;display:block;background:#f8f7f3f5;color:var(--ink);box-shadow:0 8px 35px #181d210b}
#masterplan .spatial-card>.sr-only{padding:0}
#masterplan .spatial-card-copy{padding:25px}
#masterplan .spatial-card h3{font-size:28px;margin-bottom:16px}
#masterplan .spatial-card #spatial-description{font-size:15px;line-height:1.7;min-height:0;margin-bottom:22px}
#masterplan .spatial-card .cta{font-size:14px;padding-inline:15px}
#masterplan .save-place{font-size:13px;min-height:44px;margin-top:10px}
#masterplan .save-place[aria-pressed=true]{color:var(--accent)}
#masterplan .spatial-pin{height:38px}
#masterplan .spatial-pin>span{width:12px;height:12px;font-size:0;background:#fcfbf6;border:1px solid #ffffff;box-shadow:0 2px 6px #20262b30}
#masterplan .spatial-pin:after{height:9px;background:#ffffffb3;box-shadow:none}
#masterplan .spatial-pin[aria-pressed=true]>span,#masterplan .spatial-pin:hover>span,#masterplan .spatial-pin:focus-visible>span{width:28px;height:28px;font-size:12px;transform:none}
#masterplan .spatial-pin[aria-pressed=true]>span{background:var(--gold);color:#293641;outline-color:#fff8;outline-offset:3px}
#masterplan .spatial-pin em{bottom:47px;background:#fcfbf6;color:var(--ink);font-size:13px;box-shadow:0 4px 16px #20262b12}
#masterplan .spatial-cluster{background:#fcfbf6e8;color:var(--ink);border:0;font-size:12px;box-shadow:0 3px 12px #20262b14}
#masterplan .spatial-cluster.has-selected{background:#e1d4ad}
#masterplan .spatial-bottom,#masterplan .spatial-dialog .spatial-bottom{bottom:25px;align-items:end;flex-direction:row;gap:16px}
#masterplan .spatial-tour{gap:2px;background:#f8f7f3e8;padding:3px}
#masterplan .spatial-options{position:relative;flex:none;color:var(--ink)}
#masterplan .spatial-options>summary{list-style:none;display:flex;align-items:center;gap:14px;min-height:50px;padding:12px 16px;background:#f8f7f3e8;font-size:14px;cursor:pointer}
#masterplan .spatial-options>summary::-webkit-details-marker{display:none}
#masterplan .spatial-options>summary:after{content:"";width:6px;height:6px;border-right:1px solid;border-bottom:1px solid;transform:rotate(45deg);margin-top:-4px}
#masterplan .spatial-options[open]>summary:after{transform:rotate(225deg);margin-top:3px}
#masterplan .spatial-options>summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
#masterplan .spatial-options-panel{position:absolute;right:0;bottom:calc(100% + 12px);width:300px;background:#fcfbf8;box-shadow:0 8px 40px #20262b20;padding:22px;z-index:6}
#masterplan .spatial-options-panel .spatial-view{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#masterplan .spatial-options-panel .spatial-button{border:1px solid var(--line);font-size:13px;padding:10px}
#masterplan .spatial-options-panel .spatial-instructions{position:static;display:block;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:17px;margin-top:17px}
#masterplan .spatial-options-panel .spatial-instructions a{display:inline-block;margin-top:13px}
#masterplan .spatial-options-panel .spatial-instructions span{display:block}
#masterplan .spatial-caption{border-color:var(--line)}
#masterplan .spatial-caption>p,#masterplan .spatial-caption>a>span{color:var(--muted)}
#masterplan .spatial-caption>a{font-size:15px;color:var(--accent)}
#masterplan .spatial-dialog{background:#e8e5df;color:var(--ink)}
#masterplan .spatial-dialog::backdrop{background:#e8e5df}
#masterplan .spatial-dialog .spatial-card{top:105px}
#masterplan .spatial-directory{background:#fcfbf8;color:var(--ink);box-shadow:0 8px 40px #20262b24;bottom:100px}
#masterplan .place-filters button{background:#eeece7}
#masterplan .place-filters button[aria-pressed=true]{background:var(--accent)}
@media (max-width:900px){#masterplan .spatial{height:800px}
#masterplan .spatial-card,#masterplan .spatial-dialog .spatial-card{top:auto;bottom:100px;left:24px;right:24px;width:auto;max-height:none;display:block}
#masterplan .spatial-card-copy{padding:22px 25px}
#masterplan .spatial-card .cta{width:auto;min-width:215px;display:inline-flex;margin-right:18px}
#masterplan .spatial-card .save-place{display:inline-flex;margin-top:0}}
@media (max-width:600px){#masterplan.spatial-section{padding-top:70px}
#masterplan .spatial{height:740px;min-height:0}
#masterplan .spatial-top,#masterplan .spatial-dialog .spatial-top{flex-direction:row;align-items:center;left:18px;right:18px;top:18px;gap:10px}
#masterplan .spatial-top .label,#masterplan .spatial-dialog .spatial-top .label{font-size:18px}
#masterplan .spatial-top-actions,#masterplan .spatial-dialog .spatial-top-actions{width:auto;gap:3px;justify-content:end}
#masterplan .spatial-top-actions .spatial-button{padding:9px;font-size:13px}
#masterplan #spatial-contact{font-size:0;padding:9px}
#masterplan #spatial-contact:before{content:"Visita";font-size:13px}
#masterplan #spatial-contact span{font-size:12px!important}
#masterplan .spatial-top-actions #spatial-expand,#masterplan .spatial-top-actions #spatial-close{padding:0;width:38px;min-width:38px}
#masterplan .spatial-card,#masterplan .spatial-dialog .spatial-card{left:18px;right:18px;bottom:96px;top:auto;max-height:300px;overflow:auto}
#masterplan .spatial-card-copy{padding:20px}
#masterplan .spatial-card h3{font-size:25px;margin-bottom:11px}
#masterplan .spatial-card #spatial-description{font-size:14px;line-height:1.65;margin-bottom:17px}
#masterplan .spatial-card .cta{font-size:13px;min-width:0;display:flex;width:100%;max-width:none;margin-right:0;padding:12px 15px}
#masterplan .spatial-card .save-place{font-size:13px;margin-top:6px;min-height:36px}
#masterplan .spatial-bottom,#masterplan .spatial-dialog .spatial-bottom{left:18px;right:18px;bottom:23px;gap:8px}
#masterplan .spatial-tour .tour-toggle{flex:none;padding:10px 9px;font-size:13px}
#masterplan .spatial-tour .tour-toggle .icon{width:16px;height:16px}
#masterplan .spatial-tour .spatial-button:not(.tour-toggle){padding:10px;width:34px;min-width:34px}
#masterplan .spatial-options>summary{font-size:12px;padding:12px 10px;gap:9px}
#masterplan .spatial-options-panel{width:min(300px,calc(100vw - 36px))}
#masterplan .spatial-options-panel .spatial-view{justify-content:stretch}
#masterplan .spatial-pin{height:38px}
#masterplan .spatial-pin>span{width:12px;height:12px;font-size:0}
#masterplan .spatial-pin:after{height:8px}
#masterplan .spatial-directory{top:83px;bottom:88px}
#masterplan .spatial-caption>p{margin-bottom:10px}}
#masterplan .place-portal{
  position:absolute; inset:0; z-index:10;
  display:grid; place-items:center;
  padding:clamp(24px,5vw,72px);
  background:rgb(13 21 28 / 76%);
  color:var(--ink); touch-action:pan-y;
}
#masterplan .portal-popup{
  position:relative; width:min(1040px,100%); min-width:0;
  background:var(--paper); box-shadow:0 24px 90px #0005;
}
#masterplan .portal-popup>img{
  display:block; width:100%; height:auto; max-height:min(64svh,640px);
  object-fit:contain; background:#172128;
}
#masterplan .portal-popup h3{
  font-size:clamp(22px,2.1vw,30px); font-weight:400;
  line-height:1.25; letter-spacing:-.04em;
  margin:0; padding:20px 26px;
}
#masterplan .portal-close{
  position:absolute; top:16px; right:16px; z-index:1;
  display:grid; place-items:center; width:64px; height:64px;
  padding:0; border:1px solid #ffffff80; border-radius:50%;
  color:var(--ink); background:var(--paper); box-shadow:0 4px 24px #0003;
  transition:background .2s,transform .2s;
}
#masterplan .portal-close .icon{width:30px; height:30px; stroke-width:1.5}
#masterplan .portal-close:hover{background:#d8c68e; transform:rotate(90deg)}
#masterplan .portal-close:focus-visible{outline:3px solid #d8c68e; outline-offset:4px}
@media (max-width:600px) {#masterplan .place-portal{padding:20px}
#masterplan .portal-popup h3{font-size:22px; padding:18px 20px}
#masterplan .portal-close{width:56px; height:56px; top:10px; right:10px}}
@media (prefers-reduced-motion:reduce) {#masterplan .portal-close{transition:none}
#masterplan .portal-close:hover{transform:none}}
#masterplan .spatial:before{background:linear-gradient(#18232a57,transparent 25%,transparent 80%,#18232a1c);pointer-events:none}
#masterplan .spatial-card[hidden]{display:none!important}
#masterplan .spatial-top .label{color:#fff;text-shadow:0 1px 10px #18232a40}
#masterplan .spatial-top-actions>.spatial-button{color:var(--ink);background:#f8f7f3ed;box-shadow:0 2px 20px #18232a0a}
#masterplan .spatial-top-actions>.spatial-button:hover{background:#fff}
#masterplan .spatial-bottom{justify-content:flex-end!important;pointer-events:none}
#masterplan .spatial-bottom>*{pointer-events:auto}
#masterplan .spatial-options-panel{width:152px;padding:12px}
#masterplan .spatial-caption{justify-content:flex-end}
#masterplan .spatial-pin>span{width:16px;height:16px}
#masterplan .spatial-pin:after{height:13px}
#masterplan .spatial-pin em{font-size:14px}
#masterplan .spatial.has-place-card .spatial-pin[aria-pressed=true] em{opacity:1}
@media (max-width:600px){#masterplan .spatial-top-actions{gap:6px}
#masterplan .spatial-pin>span{width:14px;height:14px}}
#masterplan .spatial-card{width:300px;top:95px;right:var(--gutter);bottom:auto;max-height:none;overflow:visible;animation:soft-in .3s both}
#masterplan .spatial-card>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
#masterplan .spatial-card-copy{padding:22px}
#masterplan .spatial-card h3{font-size:27px;margin-bottom:12px;padding-right:0}
#masterplan .spatial-card #spatial-description{font-size:14px;line-height:1.7;margin-bottom:18px}
#masterplan #spatial-card-close{position:absolute;right:10px;top:10px;width:36px;height:36px;padding:8px;background:#f8f7f3ec;color:var(--accent);z-index:2}
#masterplan .spatial-card .cta{width:100%;margin:0;min-width:0;max-width:none}
#masterplan .spatial-card .save-place{font-size:13px;margin-top:12px}
#masterplan .spatial-top{flex-direction:row;align-items:center}
#masterplan .spatial-top-actions{width:auto}
#masterplan .spatial{height:clamp(660px,85svh,950px);min-height:0}
@media (min-width:901px){#masterplan .spatial{height:120svh;min-height:660px;max-height:none}}
@media (max-width:900px){#masterplan .spatial-card{width:280px;left:auto;right:24px;top:95px;bottom:auto;display:block}
#masterplan .spatial-card-copy{padding:20px}
#masterplan .spatial-card .save-place{display:flex}}
@media (max-width:600px){#masterplan .spatial{height:720px;min-height:0}
#masterplan .spatial-top{top:22px;left:18px;right:18px;gap:8px}
#masterplan .spatial-card{left:18px;right:18px;width:auto;top:auto;bottom:82px;max-height:none;overflow:visible;display:grid;grid-template-columns:100px minmax(0,1fr)}
#masterplan .spatial-card>img{width:100px;aspect-ratio:auto;height:100%;object-fit:cover}
#masterplan .spatial-card-copy{padding:18px}
#masterplan .spatial-card h3{font-size:24px;padding-right:18px;margin-bottom:10px}
#masterplan .spatial-card #spatial-description{font-size:14px;line-height:1.55;margin-bottom:14px}
#masterplan #spatial-card-close{width:30px;height:30px;right:3px;top:3px;padding:6px;background:transparent}
#masterplan .spatial-card .cta{padding:10px 12px;min-height:44px;font-size:13px;gap:10px}
#masterplan .spatial-card .save-place{font-size:12px;gap:5px;margin-top:8px}
#masterplan .spatial-card .save-place .icon{width:16px}}

#masterplan{--sans:Lago,Arial,sans-serif;--accent:var(--forest);padding-bottom:35px;scroll-margin-top:var(--head)}
#masterplan .label{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 24px}
#masterplan .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
#masterplan .spatial-intro{padding-bottom:40px}#masterplan .spatial-intro h2{font:370 clamp(36px,4.1vw,58px)/1.08 Lago,Arial,sans-serif;letter-spacing:-.055em}
#masterplan .spatial-intro>p{font:400 14px/1.65 Lago,Arial,sans-serif;color:var(--muted)}
#masterplan .cta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:46px;padding:12px 16px;border-radius:3px;font:400 12px/1.4 Lago,Arial,sans-serif}
#masterplan .solid-cta{background:var(--forest);color:var(--paper)}#masterplan .cta-icon{display:grid;place-items:center}#masterplan .cta .icon{width:18px;height:18px}
#masterplan .map-footnote{padding-top:20px}#masterplan [hidden]{display:none!important}
#masterplan .spatial-card h3,#masterplan .directory-top h3,#masterplan .portal-popup h3{font-family:Lago,Arial,sans-serif;letter-spacing:-.04em;font-weight:400}
#masterplan .spatial-button{min-height:42px}#masterplan .spatial-caption a{flex-wrap:wrap}
@media(max-width:640px){#masterplan.spatial-section{padding-top:70px}#masterplan .spatial-intro{display:block}#masterplan .spatial-intro>p{margin:22px 0 0}#masterplan .spatial-intro h2{font-size:36px}#masterplan .spatial-top .label{font-size:16px;letter-spacing:0;margin:0;text-transform:none}}

#masterplan .icon{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}

#masterplan .spatial-card>img{aspect-ratio:1.32;height:auto}#masterplan .spatial-card-copy{padding:22px}#masterplan .spatial-card h3{margin-bottom:12px}#masterplan .spatial-card #spatial-description{margin-bottom:20px}#masterplan .spatial-top{pointer-events:none}
@media(max-width:600px){#masterplan .spatial-card{display:block;left:auto;right:18px;width:min(245px,calc(100% - 36px));bottom:82px}#masterplan .spatial-card>img{width:100%;height:auto;aspect-ratio:1.7}#masterplan .spatial-card-copy{padding:16px}#masterplan .spatial-card h3{font-size:23px}#masterplan .spatial-card #spatial-description{font-size:12px;line-height:1.55;margin-bottom:12px}#masterplan #spatial-card-close{background:var(--paper);right:8px;top:8px}}

/* O enquadramento inicial cabe em uma tela de computador. */
@media(min-width:901px){#masterplan .spatial{height:calc(100svh - 88px);min-height:660px;max-height:1050px}}

/* Agrupamentos compactos preservam a leitura e o toque nos pontos próximos. */
#masterplan .spatial-cluster{width:34px;min-width:34px;height:34px;min-height:34px;border-radius:50%;padding:0;display:grid;place-items:center;font-size:12px;line-height:1}
#masterplan .spatial-card .cta.arrow-link{padding-inline:18px;gap:8px;justify-content:center}#masterplan .spatial-card .cta-icon{width:18px;height:18px}

.spatial-invitation{position:absolute;inset:0;display:grid;place-items:center;z-index:6;pointer-events:none;background:linear-gradient(transparent 30%,#28291c16);transition:background .3s}
.spatial-invitation[hidden]{display:none}.spatial-invitation button{pointer-events:auto;display:flex;align-items:center;gap:18px;max-width:calc(100% - 40px);padding:18px 22px;background:#f6f3ede8;color:var(--ink);border:1px solid #fff9ee99;box-shadow:0 10px 40px #191d1838;backdrop-filter:blur(14px);border-radius:4px;font-size:15px;text-align:left;transition:transform .3s,background .3s,box-shadow .3s}
.spatial-invitation button>svg:first-child{width:26px;height:26px;flex-shrink:0}.spatial-invitation small{display:block;font-size:11px;color:var(--muted);margin-top:3px}.spatial-invitation button:hover,.spatial-invitation button:focus-visible{transform:translateY(-3px);background:#f6f3ed;box-shadow:0 14px 45px #191d1855}.spatial.is-preview .spatial-pins{visibility:hidden}.spatial.is-preview .spatial-stage{cursor:default}.spatial-bottom[hidden]{display:none}
@media(max-width:640px){.spatial-invitation button{gap:12px;font-size:13px;padding:14px 16px}.spatial-invitation small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.spatial-invitation button{transition:none}}

#spatial-start.arrow-link{padding-inline:20px;gap:10px}
@media(max-width:640px){#spatial-start.arrow-link{padding-inline:16px;gap:8px}}

#masterplan .spatial-intro>p{font-size:17px;line-height:1.65;max-width:340px}#masterplan .spatial-description{font-size:16px}@media(max-width:640px){#masterplan .spatial-intro>p{font-size:16px}}
