/* Mini Manavgat — mint product shell. The Three.js scene/palette is independent. */
:root{
  color-scheme:light;
  --ink:#214338;
  --muted:#5e7668;
  --paper:#f6f8f4;
  --stroke:#cdddD3;
  --mint:#bde5cf;
  --mint-strong:#34896a;
  --mint-dark:#246d4e;
  --shadow:0 8px 22px rgba(34,69,54,.12);
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;min-height:100%;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif}
button,a{-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
button{cursor:pointer;font:inherit}
.page{
  display:flex;flex-direction:column;gap:10px;
  width:100%;max-width:1800px;height:100vh;height:100dvh;min-height:490px;
  margin:0 auto;padding:clamp(8px,1.6vw,22px);
}
.header{display:flex;align-items:center;gap:8px;flex:none;min-height:44px;padding:0 3px}
.home-entry,.mini-brand{
  display:flex;align-items:center;justify-content:center;
  height:44px;background:#fff;border:1px solid var(--stroke);border-radius:15px;box-shadow:var(--shadow);
}
.home-entry{width:44px;flex:none;transition:transform .15s ease,background .15s ease}
.home-entry:hover{transform:translateY(-1px);background:#f4fbf6}
.home-entry svg{width:22px;height:22px;fill:none;stroke:var(--mint-dark);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mini-brand{width:auto;min-width:78px;padding:0 13px}
.mini-map-wordmark{--wm-size:26px;gap:0}
.stage{
  position:relative;isolation:isolate;flex:1;min-height:0;
  overflow:hidden;background:#dff0ec;border:1px solid #d4ddd4;border-radius:24px;
  box-shadow:0 17px 50px rgba(35,75,56,.11);
}
.viewport{position:absolute;inset:0;width:100%;height:100%;outline:none;touch-action:none;cursor:grab}
.viewport:active{cursor:grabbing}
.viewport canvas{display:block;width:100%;height:100%}
.zoom-controls{
  position:absolute;right:clamp(10px,1.8vw,23px);bottom:clamp(10px,1.8vw,23px);
  z-index:2;display:flex;flex-direction:column;gap:6px;
}
.zoom-controls button{
  width:43px;height:43px;border:1px solid var(--stroke);border-radius:13px;
  background:#fffefbf2;color:var(--mint-dark);box-shadow:var(--shadow);
  font-size:23px;font-weight:750;line-height:1;
}
.zoom-controls button:hover{background:#e1f3e6}
#compassReset{display:flex;justify-content:center;align-items:center;padding:0}
#compassNeedle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;line-height:1;transition:transform .15s ease}
#compassNeedle svg{width:17px;height:19px;fill:#34896a;stroke:#246d4e;stroke-width:1.2;stroke-linejoin:round}
.compass-north{font-size:10px;font-weight:850;line-height:1.1;color:#246d4e}
.bottom-controls{
  position:absolute;z-index:2;bottom:clamp(10px,1.8vw,23px);left:clamp(10px,1.8vw,23px);
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  max-width:calc(100% - 110px);
}
#overtureSourceAttribution[hidden]{display:none!important}
#lighting{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:43px;border:1px solid var(--stroke);border-radius:13px;
  padding:0 14px;background:#fffefbf2;color:var(--mint-dark);box-shadow:var(--shadow);
  font-size:12px;font-weight:800;
}
#lighting:hover,#lighting.active{background:#dff2e6;border-color:#9acdb2}
.indicator{font-size:16px}
.district-controls{
  position:absolute;z-index:3;top:clamp(10px,1.8vw,23px);
  left:clamp(10px,1.8vw,23px);
}
.neighborhood-toggle{
  display:flex;align-items:center;justify-content:center;
  width:43px;height:43px;border:1px solid var(--stroke);
  border-radius:13px;background:#fffefbf2;color:var(--mint-dark);
  box-shadow:var(--shadow);
}
.neighborhood-toggle svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.neighborhood-toggle:hover,.neighborhood-toggle[aria-expanded="true"]{background:#e1f3e6}
.neighborhood-panel{
  position:absolute;top:calc(100% + 8px);left:0;
  width:min(265px,calc(100vw - 42px));padding:10px;
  border:1px solid var(--stroke);border-radius:14px;
  background:#fffefb;box-shadow:var(--shadow);
}
.neighborhood-panel[hidden]{display:none}
.neighborhood-panel label{display:block;margin:0 0 7px;font-size:12px;font-weight:800;color:var(--mint-dark)}
.neighborhood-panel select{
  width:100%;height:min(355px,55dvh);min-height:145px;
  border:1px solid #b7d4c0;border-radius:10px;
  background:#fff;color:var(--ink);padding:5px;
  font:650 13px system-ui,-apple-system,"Segoe UI",sans-serif;
}
.neighborhood-panel select option{padding:7px 5px;border-radius:5px}
.neighborhood-panel select:disabled{opacity:.55}
/* Every interactive control stays hidden until the first complete 3D frame is ready. */
.stage.preparing .viewport,
.stage.preparing .zoom-controls,
.stage.preparing .bottom-controls,
.stage.preparing .district-controls{visibility:hidden}
.sr-only{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.loading{
  position:fixed;inset:0;z-index:10000;display:flex;flex-direction:column;
  justify-content:center;align-items:center;gap:26px;
  width:100%;min-height:100vh;min-height:100dvh;padding:22px;
  background:
    radial-gradient(ellipse 60% 40% at 18% 28%,#e6f0e4 0%,transparent 100%),
    radial-gradient(ellipse 50% 30% at 86% 76%,#f1e8d5 0%,transparent 100%),
    #f6f8f4;
  text-align:center;
}
/* Very faint static map-board grain, no raster requests or moving effects. */
.loading::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(#6b8d7921 .65px,transparent .65px);
  background-size:20px 20px;opacity:.45;
  animation:miniLoadingDrift 12s ease-in-out infinite alternate;
  mask-image:linear-gradient(135deg,transparent 5%,#000 50%,transparent 95%);
}
@keyframes miniLoadingDrift{
  from{transform:translate3d(-9px,-6px,0);opacity:.36}
  to{transform:translate3d(9px,6px,0);opacity:.6}
}
@media(prefers-reduced-motion:reduce){.loading::before{animation:none}}
.loading>*{position:relative;z-index:1;}

.loading[hidden],.error[hidden]{display:none}
.mini-loading-wordmark{--wm-size:clamp(36px,8vw,58px);gap:calc(var(--wm-size) * .22)}
.mini-loading-wordmark .wordmark-main{display:inline-flex;align-items:baseline}
.mini-load-letter{display:inline-block}
.mini-load-i{transform-origin:center bottom;animation:miniBounce 1.3s cubic-bezier(.22,.85,.3,1) infinite}
.mini-load-i.first{animation-delay:0s}
.mini-load-i.second{animation-delay:.19s}
@keyframes miniBounce{
  0%,12%,42%,100%{transform:translateY(0)}
  24%{transform:translateY(-.22em)}
  33%{transform:translateY(.025em)}
}
.loading-percent{
  display:block;color:var(--mint-dark);
  font-size:clamp(31px,6vw,43px);font-weight:850;letter-spacing:-.055em;font-variant-numeric:tabular-nums;
}
.mini-loading-tip{max-width:320px;margin:-10px 0 0;color:#547261;font:600 12px/1.5 system-ui,sans-serif}
.loading progress{
  display:block;width:min(270px,75vw);height:7px;
  overflow:hidden;border:0;border-radius:99px;background:#d8e9df;
  accent-color:var(--mint-strong);
}
.loading progress::-webkit-progress-bar{background:#d8e9df;border-radius:99px}
.loading progress::-webkit-progress-value{background:var(--mint-strong);border-radius:99px}
.loading progress::-moz-progress-bar{background:var(--mint-strong);border-radius:99px}
.error{
  position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(360px,calc(100% - 40px));padding:24px;text-align:center;
  background:#fffef7f5;border:1px solid #d1e0d3;border-radius:18px;
  box-shadow:0 13px 34px #3a544e38;
}
.error strong{font-size:15px}
.error p{font-size:12px;color:var(--muted);line-height:1.5}
.error a{
  display:inline-block;margin-top:6px;padding:10px 13px;background:var(--mint-dark);
  color:#fff;border-radius:10px;font-size:12px;font-weight:800;
}
.foot{
  flex:none;display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:0 3px;font-size:10px;line-height:1.5;color:#748a79;
}
.foot b{color:#48715b}

/* Readable source/licence notes without adding a full-screen menu or script. */
.mini-methods{position:relative;z-index:11;margin-left:auto;flex:none;font:600 10px/1.5 system-ui,sans-serif}
.mini-methods summary{cursor:pointer;color:#48715b;text-decoration:underline;text-underline-offset:2px;list-style-position:inside;white-space:nowrap}
.mini-methods-panel{position:absolute;right:0;bottom:calc(100% + 9px);
 width:min(385px,calc(100vw - 22px));max-height:min(55vh,450px);overflow:auto;
 padding:13px 15px;background:#fffefb;color:#28493b;border:1px solid #c8dccd;
 border-radius:13px;box-shadow:0 8px 28px #28493b3b;font:500 12px/1.5 system-ui,sans-serif}
.mini-methods-panel strong{display:block;font-size:13px}
.mini-methods-panel p{margin:8px 0 0}
.mini-methods-panel a{color:#236a4d;text-decoration:underline;overflow-wrap:anywhere}

button:focus-visible,a:focus-visible,select:focus-visible{
  outline:3px solid var(--mint-strong);outline-offset:3px;
}
body.mini-loading .header,body.mini-loading .foot{visibility:hidden}
@media(max-width:720px){
  .page{padding:7px;gap:7px}
  .stage{border-radius:18px}
  .header{min-height:40px}
  .home-entry,.mini-brand{height:40px;border-radius:13px}
  .home-entry{width:40px}
  .mini-brand{min-width:70px;padding:0 11px}
  .mini-map-wordmark{--wm-size:23px}
  .district-controls{left:9px;top:9px}
  .neighborhood-toggle{width:39px;height:39px;border-radius:11px}
  .neighborhood-panel{width:min(260px,calc(100vw - 36px))}
  .zoom-controls{right:9px;bottom:9px}
  .zoom-controls button{width:39px;height:39px;border-radius:11px;font-size:21px}
  .bottom-controls{left:9px;bottom:9px}
  #lighting{min-height:39px;padding:0 11px;border-radius:11px;font-size:11px}
  .overture-preview-toggle{min-height:39px;padding:0 10px;border-radius:11px;font-size:11px}
  .bottom-controls{gap:5px;max-width:calc(100% - 58px)}
  .foot{font-size:9px}
  .mini-loading-wordmark{--wm-size:clamp(34px,9vw,48px)}
}
@media(prefers-reduced-motion:reduce){
  .mini-load-i{animation:none}
  .home-entry{transition:none}
  #compassNeedle{transition:none}
}

.error #retryMini{
  display:block;margin:12px auto 8px;padding:10px 16px;
  border:1px solid #416e56;border-radius:12px;
  background:#d7efde;color:#234a33;font:inherit;font-weight:650;
  cursor:pointer;max-width:100%;
}
.error #retryMini:focus-visible{outline:2px solid #348b52;outline-offset:2px}
/* Keep complete legal credits; responsive alignment, no public counters. */
.foot{justify-content:space-between}
.foot-sources{margin-left:auto;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px 10px;text-align:right}
.foot-main{flex:none}
@media(max-width:720px){.foot-sources{width:100%;gap:2px 8px;font-size:9px}}

/* 10 November single-plan: centered, complete source attribution and two
   accessible floating disclosure panels. No extra top-level app screen. */
.foot{position:relative;z-index:40;justify-content:center;align-items:center;
  flex-direction:column;text-align:center;gap:9px;padding:8px 10px 10px}
.foot-sources{margin-left:0;display:flex;justify-content:center;text-align:center;
  align-items:center;gap:6px 13px;flex-wrap:wrap}
.foot-sources a{color:#326c55;text-decoration:underline;text-underline-offset:2px}
.foot-links{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap}
.mini-methods{margin:0;position:relative;z-index:40}
.mini-methods summary{white-space:normal}
.mini-methods-panel{left:50%;right:auto;transform:translateX(-50%);
  width:min(385px,calc(100vw - 28px));max-height:min(62dvh,480px);
  text-align:left;box-sizing:border-box}
.mini-methods[open]{z-index:42}
.mini-methods-panel b{font-weight:750}
@media(max-width:720px){.foot{padding-bottom:14px;gap:10px}.foot-sources{gap:4px 9px}}
