/* One Marina Gardens 3D Explorer */
.omg3d{--ink:#14263d;--muted:#5b6b7f;--line:#dfe4ea;--panel:rgba(255,255,255,.96);--accent:#b8862b;--accent2:#14325c;--wa:#1faa53;
  position:relative;width:100%;height:min(86vh,900px);min-height:520px;overflow:hidden;background:#bcd3e6;
  font:14px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:var(--ink);border-radius:14px;isolation:isolate}
.omg3d--full{position:fixed;inset:0;height:100%;min-height:0;border-radius:0;z-index:1}
.omg3d:fullscreen{height:100%;border-radius:0}
.omg3d *,.omg3d *::before,.omg3d *::after{box-sizing:border-box}
.omg3d button,.omg3d input,.omg3d select,.omg3d textarea{font:inherit;color:inherit}
.omg3d-stage{position:absolute;inset:0}
.omg3d-stage canvas{display:block;width:100%;height:100%;touch-action:none;outline:none}
.omg3d-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

.omg3d-loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:12px;background:linear-gradient(160deg,#14325c,#1f4d7a);color:#fff;z-index:50;transition:opacity .5s}
.omg3d-loading.is-done{opacity:0;pointer-events:none}
.omg3d-spinner{width:42px;height:42px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#f2c14e;animation:omg3dspin 1s linear infinite}
@keyframes omg3dspin{to{transform:rotate(360deg)}}

.omg3d-brand{position:absolute;left:16px;top:14px;z-index:5;pointer-events:none;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.omg3d-brand h1{margin:0;font-size:22px;letter-spacing:.02em;font-weight:700;color:#fff}
.omg3d-brand p{margin:2px 0 0;font-size:13px;opacity:.95}

/* finder */
.omg3d-find-toggle{position:absolute;left:16px;top:74px;z-index:6;border:0;border-radius:10px;background:var(--panel);padding:8px 12px;box-shadow:0 4px 18px rgba(0,0,0,.15);cursor:pointer;display:none;font-weight:600}
.omg3d-find{position:absolute;left:16px;top:74px;z-index:5;width:260px;max-height:calc(100% - 200px);overflow:auto;background:var(--panel);border-radius:14px;padding:14px;box-shadow:0 8px 30px rgba(15,30,50,.18);backdrop-filter:blur(6px)}
.omg3d-search{display:flex;gap:6px}
.omg3d-search input{flex:1;min-width:0;border:1px solid var(--line);border-radius:9px;padding:8px 10px;background:#fff}
.omg3d .omg3d-search button,.omg3d .omg3d-go{border:0;border-radius:9px;background:var(--accent2);color:#fff;padding:8px 12px;cursor:pointer;font-weight:600}
.omg3d-search-msg{margin:4px 0 0;min-height:1em;font-size:12px;color:#b3261e}
.omg3d-pickers{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px}
.omg3d-pickers select,.omg3d-mode{border:1px solid var(--line);border-radius:9px;padding:7px 8px;background:#fff;width:100%}
.omg3d-pickers .omg3d-sel-stack{grid-column:1/-1}
.omg3d-go{grid-column:1/-1}
.omg3d-sec{margin:12px 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.omg3d-filters{display:grid;gap:4px}
.omg3d-filter{display:block;cursor:pointer}
.omg3d-filter input{position:absolute;opacity:0}
.omg3d-filter span{display:flex;align-items:center;gap:8px;padding:5px 8px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:13px}
.omg3d-filter i{width:14px;height:14px;border-radius:4px;background:var(--c);flex:none}
.omg3d-filter em{margin-left:auto;font-style:normal;color:var(--muted);font-size:12px}
.omg3d-filter input:not(:checked)+span{opacity:.45}
.omg3d-filter input:focus-visible+span{outline:2px solid var(--accent2)}
.omg3d-total{margin:10px 0 0;font-size:12px;color:var(--muted)}
.omg3d-note-tex{font-size:12px;color:#b3261e}

/* HUD */
.omg3d-hud{position:absolute;right:16px;top:14px;z-index:6;display:flex;flex-direction:column;align-items:center;gap:8px}
.omg3d-hud button{width:40px;height:40px;border-radius:50%;border:0;background:var(--panel);box-shadow:0 4px 16px rgba(0,0,0,.18);cursor:pointer;font-size:18px;display:grid;place-items:center}
.omg3d-hud button.is-on{background:var(--accent2);color:#fff}
.omg3d-hud .omg3d-compass{width:84px;height:84px;padding:0;background:transparent;box-shadow:none}
.omg3d-rose{width:84px;height:84px;filter:drop-shadow(0 4px 10px rgba(0,0,0,.25));transition:transform .05s linear}
.omg3d-rose .r-bg{fill:rgba(255,255,255,.95)}
.omg3d-rose .r-ring{fill:none;stroke:#c9d1db;stroke-width:1}
.omg3d-rose .r-ticks line{stroke:#8a97a8;stroke-width:1}
.omg3d-rose .r-n{fill:#d62828}.omg3d-rose .r-s{fill:#3a4a5e}
.omg3d-rose .r-lbl{font:700 10px system-ui,sans-serif;text-anchor:middle;fill:#3a4a5e}
.omg3d-rose .r-lbl-n{fill:#d62828;font-size:12px}

/* sun bar */
.omg3d-sun{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:5;width:min(860px,calc(100% - 32px));background:var(--panel);border-radius:14px;box-shadow:0 8px 30px rgba(15,30,50,.2);padding:10px 14px}
.omg3d-sun-toggle{display:none;border:0;background:none;font-weight:700;cursor:pointer;padding:2px 0}
.omg3d-sun-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.omg3d-play{width:36px;height:36px;border-radius:50%;border:0;background:#f2a900;color:#fff;cursor:pointer;font-size:14px;flex:none}
.omg3d-clock{font-weight:700;min-width:70px;font-variant-numeric:tabular-nums}
.omg3d-time{flex:1;min-width:140px;accent-color:#f2a900}
.omg3d-date,.omg3d-presets{border:1px solid var(--line);border-radius:9px;padding:5px 8px;background:#fff}
.omg3d-sun-info{margin-top:6px;font-size:12.5px;color:var(--muted);gap:8px 14px}
.omg3d-sun-info label{display:inline-flex;align-items:center;gap:4px;cursor:pointer}
.omg3d-quick{display:inline-flex;gap:4px;flex-wrap:wrap}
.omg3d-quick button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px 9px;cursor:pointer;font-size:12px}
.omg3d-quick b{color:#c26a00}
.omg3d-sunread{color:var(--ink);font-weight:600}
.omg3d-noonread b{color:var(--ink)}

/* unit panel */
.omg3d-panel{position:absolute;right:16px;top:14px;bottom:14px;z-index:7;width:370px;background:var(--panel);border-radius:14px;box-shadow:0 10px 40px rgba(15,30,50,.25);transform:translateX(calc(100% + 30px));transition:transform .35s cubic-bezier(.2,.8,.2,1);display:flex;flex-direction:column}
.omg3d-panel.is-open{transform:none}
.omg3d-panel-close{position:absolute;right:10px;top:8px;width:32px;height:32px;border-radius:50%;border:0;background:#eef1f5;cursor:pointer;font-size:20px;line-height:1;z-index:2}
.omg3d-panel-body{overflow:auto;padding:16px 16px 18px}
.omg3d-unit-head{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;padding-right:34px}
.omg3d-unit-head small{color:var(--muted)}
.omg3d-unit-head h2{margin:0;font-size:30px;line-height:1.1;letter-spacing:.01em;color:var(--accent2)}
.omg3d-updown{display:flex;gap:4px}
.omg3d-updown button{width:32px;height:32px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer}
.omg3d-chips{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.omg3d-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:#eef1f5;font-size:12.5px;font-weight:600}
.omg3d-chip[style]::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--c)}
.omg3d-chip.is-sold{background:#5f6670;color:#fff}
.omg3d-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 10px}
.omg3d-facts div{background:#f4f6f9;border-radius:10px;padding:8px}
.omg3d-facts dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.omg3d-facts dd{margin:2px 0 0;font-weight:700;font-size:14px}
.omg3d-facts dd small{display:block;font-weight:500;color:var(--muted);font-size:11.5px}
.omg3d-line{margin:6px 0;font-size:13px}
.omg3d-line b{display:inline-block;min-width:74px;color:var(--muted);font-weight:600}
.omg3d-price{margin:10px 0;padding:10px 12px;border-radius:10px;background:linear-gradient(135deg,#fff8e6,#fdf1d6);border:1px solid #f0dca8}
.omg3d-price span{display:block;font-size:12px;color:#7a5a12}
.omg3d-price b{font-size:22px;color:#6b4a00}
.omg3d-price small{display:block;color:#7a6a45;font-size:11.5px;margin-top:2px}
.omg3d-price.is-sold{background:#f1f2f4;border-color:var(--line)}
.omg3d-price.is-sold b{font-size:15px;color:var(--ink)}
.omg3d-plan{margin:10px 0;padding:0}
.omg3d-plan-open{position:relative;display:block;width:100%;border:1px solid var(--line);border-radius:10px;background:#fff;padding:6px;cursor:zoom-in}
.omg3d-plan img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain}
.omg3d-plan-zoom{position:absolute;right:10px;bottom:10px;background:rgba(20,50,92,.9);color:#fff;border-radius:999px;padding:3px 10px;font-size:12px}
.omg3d-plan figcaption{font-size:12px;color:var(--muted);margin-top:4px}
.omg3d-plan.is-missing .omg3d-plan-open::after{content:"Floor plan image unavailable";display:block;padding:40px 10px;text-align:center;color:var(--muted)}
.omg3d-keyplan{margin:10px 0;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fbfcfd}
.omg3d-keyplan-title{font-size:12px;font-weight:700;margin-bottom:4px}
.omg3d-keyplan-title small{font-weight:500;color:var(--muted)}
.omg3d-keyplan svg{display:block;width:100%;height:auto;max-height:230px}
.omg3d-keyplan .kp-core{fill:#cfd4da}
.omg3d-keyplan polygon{stroke:#fff;stroke-width:.35}
.omg3d-keyplan .kp-unit polygon{fill:#c9d4ec}
.omg3d-keyplan .kp-unit,.omg3d-keyplan .kp-sold{cursor:pointer}
.omg3d-keyplan .kp-unit:hover polygon{filter:brightness(1.08);stroke:#14325c}
.omg3d-keyplan .kp-sel polygon{fill:#ffb400;stroke:#8a5a00}
.omg3d-keyplan .kp-sold polygon{fill:#8b9099}
.omg3d-keyplan .kp-none polygon{fill:#eceff2}
.omg3d-keyplan text{font:600 2.6px system-ui,sans-serif;text-anchor:middle;fill:#14263d;pointer-events:none}
.omg3d-keyplan .kp-n path{fill:#d62828}.omg3d-keyplan .kp-n text{fill:#d62828;font-size:3px}
.omg3d-actions{display:grid;gap:6px;margin-top:10px}
.omg3d-btn{display:block;text-align:center;border:1px solid var(--line);background:#fff;border-radius:10px;padding:9px 12px;cursor:pointer;font-weight:600;text-decoration:none;color:var(--ink)}
.omg3d-btn--primary{background:var(--accent2);border-color:var(--accent2);color:#fff}
.omg3d-btn--wa{background:var(--wa);border-color:var(--wa);color:#fff}
.omg3d-lead{margin-top:10px;display:grid;gap:8px;padding:12px;border-radius:10px;background:#f4f6f9}
.omg3d-lead h3{margin:0;font-size:15px}
.omg3d-lead label{display:grid;gap:3px;font-size:12px;color:var(--muted)}
.omg3d-lead input,.omg3d-lead textarea{border:1px solid var(--line);border-radius:8px;padding:7px 9px;background:#fff;color:var(--ink)}
.omg3d-lead .omg3d-consent{display:flex;gap:6px;align-items:flex-start}
.omg3d-hp{position:absolute!important;left:-9999px}
.omg3d-lead-msg{margin:0;font-size:12.5px;min-height:1em}
.omg3d-disclaimer{margin:12px 0 0;font-size:11px;color:var(--muted)}

.omg3d-tip{position:absolute;z-index:8;pointer-events:none;background:rgba(20,38,61,.94);color:#fff;border-radius:8px;padding:6px 9px;font-size:12.5px;line-height:1.35;white-space:nowrap}
.omg3d-tip span{opacity:.85}
.omg3d-lightbox{position:absolute;inset:0;margin:0;z-index:20;background:rgba(10,20,35,.85);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}
.omg3d-lightbox[hidden]{display:none}
.omg3d-lightbox img{max-width:100%;max-height:calc(100% - 40px);background:#fff;border-radius:8px}
.omg3d-lightbox figcaption{color:#fff;margin-top:8px}
.omg3d-lb-close{position:absolute;right:14px;top:10px;width:40px;height:40px;border-radius:50%;border:0;background:#fff;font-size:24px;cursor:pointer}

/* narrow / mobile */
.omg3d--narrow{height:min(92vh,820px)}
.omg3d--narrow .omg3d-brand h1{font-size:17px}
.omg3d--narrow .omg3d-brand p{font-size:12px}
.omg3d--narrow .omg3d-find-toggle{display:block;top:62px}
.omg3d--narrow .omg3d-find{display:none;top:104px;width:calc(100% - 32px);max-height:calc(100% - 260px)}
.omg3d--narrow.omg3d--find-open .omg3d-find{display:block}
.omg3d--narrow .omg3d-hud{top:10px;right:10px;gap:6px}
.omg3d--narrow .omg3d-hud .omg3d-compass,.omg3d--narrow .omg3d-rose{width:64px;height:64px}
.omg3d--narrow .omg3d-hud button{width:36px;height:36px;font-size:16px}
.omg3d--narrow .omg3d-sun{bottom:10px;padding:8px 10px;width:calc(100% - 20px)}
.omg3d--narrow .omg3d-sun-toggle{display:block}
.omg3d--narrow.omg3d--sun-collapsed .omg3d-sun-body{display:none}
.omg3d--narrow .omg3d-sun-info{font-size:11.5px}
.omg3d--narrow .omg3d-date{flex:1}
.omg3d--narrow .omg3d-panel{left:0;right:0;top:auto;bottom:0;width:auto;height:72%;border-radius:16px 16px 0 0;transform:translateY(105%)}
.omg3d--narrow .omg3d-panel.is-open{transform:none}
@media (prefers-reduced-motion:reduce){.omg3d-panel,.omg3d-loading{transition:none}}
.omg3d:not(.omg3d--narrow):has(.omg3d-panel.is-open) .omg3d-hud{right:402px}
.omg3d:not(.omg3d--narrow):has(.omg3d-panel.is-open) .omg3d-sun{left:16px;transform:none;width:calc(100% - 420px)}
.omg3d--full.omg3d--narrow{height:100%}
.omg3d h1,.omg3d h2,.omg3d h3,.omg3d p,.omg3d dl,.omg3d dd,.omg3d figure{font-family:inherit;text-transform:none;letter-spacing:normal}
.omg3d .omg3d-brand h1{letter-spacing:.02em}
