/* Spectral glass: one visual language from the first screen to the enquiry. */
:root{--bg:#09091c;--panel:#c0caff09;--ink:#f5f5ff;--muted:#b9bdd8;--cyan:#83fff5;--purple:#d3a6ff;--line:#c4caff30;--glass:linear-gradient(125deg,#d5dcff14,#979fff06 48%,#d78aff0d);--glass-edge:#cad6ff45}
body{background:radial-gradient(ellipse at 85% 6%,#41207142,transparent 24%),radial-gradient(ellipse at 0 40%,#17396542,transparent 28%),#09091c;isolation:isolate}
.spectral-atmosphere{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1}
.spectral-atmosphere i{position:absolute;width:65vw;height:65vw;border-radius:50%;background:radial-gradient(ellipse,#713cf222,transparent 66%);top:-28vw;right:-20vw;animation:spectral-drift 24s ease-in-out infinite alternate}
.spectral-atmosphere i:nth-child(2){background:radial-gradient(ellipse,#0bcbd518,transparent 65%);top:35%;left:-38vw;animation-delay:-9s}
.spectral-atmosphere i:nth-child(3){background:radial-gradient(ellipse,#ee62dc12,transparent 66%);top:60%;right:-35vw;animation-delay:-16s}
.eyebrow,.pill,.hero-foot,.hero-caption,.image-label,.world-copy .tags,.signal p,.counter,.pause,.holo-system,.holo-map-foot>span:last-child,.holo-index small,.modal-promise{font-family:Noto,Arial,sans-serif}
.eyebrow{letter-spacing:.14em;font-size:10px;font-weight:600;color:#b8c1ff}
h2 span{color:#c4bcdf}
.embassy-header{position:sticky;top:0;width:100%;min-height:var(--embassy-header-h);z-index:100;background:#080b16;border-bottom:1px solid #c5ccff24;box-shadow:0 12px 50px #03031724}
.embassy-header .top{width:min(1320px,calc(100% - (2 * var(--embassy-header-gutter))));height:var(--embassy-header-h);margin:auto;padding-inline:0;background:transparent;border:0;border-radius:0;box-shadow:none;backdrop-filter:none}
.btn,.round,.world-tabs button,.socials a,.header-social a,.menu-toggle{background:var(--glass);border-color:var(--glass-edge);box-shadow:inset 0 1px #f0eaff14;backdrop-filter:blur(12px)}
.btn.primary,.world-tabs button[aria-selected=true],.floating-contact{background:linear-gradient(115deg,#b9fff5,#9cdcff 56%,#c5b2ff);border-color:#dbfaffa0;color:#10152e;box-shadow:0 6px 30px #689ef32b,inset 0 1px #ffffffaa}
.btn.primary:hover{background:linear-gradient(115deg,#d1fff9,#c8bcff);box-shadow:0 8px 45px #909bff55}
.hero:before{background:radial-gradient(ellipse at 74% 45%,#7744c333,transparent 65%)}
.hero h1 em{background:linear-gradient(100deg,#a5fff5 10%,#a6d9ff 55%,#e0acff);color:transparent;background-clip:text}
.hero-art img{border-radius:45% 45% 8% 8%;filter:saturate(1.13)}
.orbit{border-color:#bfa8ff38;box-shadow:0 0 35px #9b69ff0b,inset 0 0 25px #71e7ff0b}
.orbit.second{border-style:solid;border-color:#9bccff22;animation:none}
.orbit:after{background:#d8bbff;box-shadow:0 0 9px #fff,0 0 26px #b579ff}
.hero-caption{background:linear-gradient(130deg,#afc7ff21,#999bee0b);border:1px solid #c7d6ff60;border-radius:20px;box-shadow:0 20px 60px #05071940,inset 0 1px #ffffff24;backdrop-filter:blur(22px) saturate(150%)}
.hero-foot{border-image:linear-gradient(90deg,#b99fff00,#b99fff66,#8ce9ff44,#8ce9ff00) 1;letter-spacing:.08em}
.architecture,.world-frame,.home,.form-box,.holo-stage,.holo-preview{background:var(--glass);border:1px solid var(--glass-edge);box-shadow:inset 0 1px #e5eaff20,0 25px 65px #02021a36;backdrop-filter:blur(18px)}
.architecture{padding:9px;border-radius:30px;overflow:visible}.architecture>img{border-radius:22px}.architecture .image-label{background:#a8c0ee19;border-color:#d4deff60;backdrop-filter:blur(24px);box-shadow:0 10px 30px #040b2940}
.facts{gap:16px;border:0;margin-top:16px}.facts>div{padding:22px;border:1px solid #c2bfff24;border-radius:18px;background:linear-gradient(120deg,#9badff0c,#a8b9ff02)}
.facts strong{background:linear-gradient(120deg,#f2edff,#a8ecff);background-clip:text;color:transparent}
.worlds{background:radial-gradient(ellipse at 8% 45%,#5038a82b,transparent 60%)}
.world-tabs button{border-radius:12px}.world-frame{border-radius:28px;overflow:visible;gap:12px;padding:10px;min-height:440px}
.world-copy{padding:30px 25px}.world-copy .eyebrow{color:#d3c1ff}.world-copy .tags{letter-spacing:.08em}
.world-visual{border-radius:20px;overflow:hidden;background:transparent}.world-visual img{background:transparent}
.world-visual .enlarge{background:#a5baff20;box-shadow:inset 0 1px #ffffff50;border-color:#e3eaff80}
.dots button[aria-current=true]{background:linear-gradient(90deg,#9fefff,#cf9aff);box-shadow:0 0 14px #c09aff50}
.tech-image{padding:10px;border:1px solid #b7caff38;border-radius:26px;background:var(--glass);box-shadow:0 0 70px #9173ee14}
.tech-image img{border-radius:18px}.tech-image .signal{background:linear-gradient(110deg,#9faaff16,#b69aff05);border:1px solid #c4beff2b;border-radius:13px;padding:16px 20px}
.tech-list button{padding:18px 16px;border:1px solid #c2bfff20;border-radius:12px;margin-top:8px;background:#adbaff04;transition:background .25s,border-color .25s}
.tech-list button.active{background:linear-gradient(100deg,#81dfff17,#bd8fff0d);border-color:#bdd7ff66;color:#b9fff7;box-shadow:inset 3px 0 #98dfff}
.manifesto{border:0;background:radial-gradient(ellipse at 50% 70%,#7239b74a,transparent 66%),radial-gradient(ellipse at 25% 20%,#23698433,transparent 60%);padding:140px 0}
.manifesto:before,.manifesto:after{inset:19% -15%;border-color:#c8aaff40;box-shadow:0 0 35px #c8aaff14;transform:rotate(-9deg)}
.manifesto:after{inset:28% -15%;transform:rotate(9deg);border-color:#97ddff38}
.homes{gap:26px}.home{padding:10px;border-radius:28px}.home-image{border-radius:20px}.home-image .pill{background:#8798d427;border-color:#e1ddff66;backdrop-filter:blur(20px)}
.home-content{padding:25px 20px}.home:hover{border-color:#b8c9ff70;box-shadow:0 25px 70px #5654b621}
.gallery{background:radial-gradient(ellipse at 90% 50%,#57347c25,transparent 70%);border-block:1px solid #cabaff14}
.gallery-card{padding:9px;border:1px solid #c8d0ff35;border-radius:25px;background:var(--glass)}
.gallery-card img{border-radius:17px}.gallery-card span{padding:17px 12px;color:#e0e4ff}
.contact{background:radial-gradient(ellipse at 15% 35%,#5842963b,transparent 60%),radial-gradient(ellipse at 85% 70%,#18748329,transparent 55%)}
.form-box{border-radius:28px;background:linear-gradient(130deg,#c9d7ff16,#a2b9ff06 50%,#d0a1ff12);box-shadow:0 25px 85px #04042250,inset 0 1px #f1eaff33}
.form-box input,.form-box select{background:#08102d50;border-color:#b7c8ff40;border-radius:12px}.form-box input:focus,.form-box select:focus{border-color:#b2efff;box-shadow:0 0 25px #81baff18}
#enquiry-dialog,#navigation-dialog,.holo-dialog{background:linear-gradient(130deg,#202542eb,#16172dec);border:1px solid #d0d9ff66;box-shadow:0 0 100px #8c6cff22,inset 0 1px #fff3;backdrop-filter:blur(30px) saturate(140%)}
.modal-story{background:#898adc0d}.modal-story:after{background:linear-gradient(180deg,#171932ae,#14153266 55%,#17172ed9)}
.holo-stage{border-radius:32px;padding:30px;background:linear-gradient(125deg,#adc7ff12,#b1a5ff05 45%,#dfaaff0c);box-shadow:0 30px 100px #100a3538,inset 0 1px #eff5ff38}
.holo-stage:before{inset:0;background:radial-gradient(ellipse at 28% 60%,#7bdfff16,transparent 58%),radial-gradient(ellipse at 90% 25%,#ba77ff18,transparent 50%);mask-image:none}
.holo-topline{border-color:#c8caff22;color:#c9d6ff;letter-spacing:.06em}.holo-topline i{background:#ccb4ff;box-shadow:0 0 12px #c59cff}.holo-system{color:#c9bdec}
.holo-map{transform:perspective(1300px) rotateX(8deg);filter:drop-shadow(0 16px 8px #638fff25) drop-shadow(0 0 22px #86cfff25)}
.holo-map>img{opacity:.95;filter:grayscale(1) brightness(1.9) contrast(.85)}
.holo-scan{display:none}
.holo-map-area:after{content:'';position:absolute;left:8%;right:8%;bottom:57px;height:14px;background:linear-gradient(90deg,transparent,#8fe8ff55,#c698ff55,transparent);filter:blur(16px);pointer-events:none}
.holo-point{--point-color:#d6efff;background:#5963aa45;border:1px solid #effaffb3;backdrop-filter:blur(8px);box-shadow:0 0 0 4px #b7b6ff0c,0 0 20px #adb7ff55;font-family:Noto,Arial,sans-serif}
.holo-point:before{border-style:solid;border-color:#c3acff50;inset:-5px}.holo-point:hover,.holo-point.is-active{background:linear-gradient(135deg,#bcfff9,#bea8ff);color:#17142e;box-shadow:0 0 0 6px #ceb6ff15,0 0 26px #c6a1ff77}
.holo-idle{border:0;background:none}.holo-reticle{border:1px solid #ddcaff77;background:linear-gradient(135deg,#bbcfff1a,#c69aff0b);box-shadow:0 0 60px #ba8dff20,inset 0 0 22px #acebff14;transform:rotate(-15deg)}
.holo-reticle i{border-style:solid;border-color:#a9eaff66;inset:14px;animation:none}.holo-reticle b{font-family:Noto,Arial,sans-serif;color:#ecdbff;transform:rotate(15deg)}
.holo-preview{background:linear-gradient(130deg,#c8dfff23,#adbaff0d 45%,#d7adff1a);border-color:#d3dfff80;border-radius:22px;backdrop-filter:blur(25px) saturate(140%);box-shadow:0 20px 50px #15102d35,inset 0 1px #fff5,0 0 35px #b59fff12}
.holo-preview:after{background:linear-gradient(90deg,#94eaff,#dfbcff);box-shadow:0 0 18px #c6a5ff}.holo-picture{background:#aebdff05;border-radius:13px;border-color:#dde7ff38}
.holo-beam path{stroke:#c5dfff;stroke-width:1.2}.holo-beam .holo-beam-glow{stroke:#bf9bff88;stroke-width:5;filter:blur(4px)}.holo-beam circle{fill:#f2dfff;filter:drop-shadow(0 0 9px #d19dff)}
.holo-index{border-color:#c8caff22;gap:10px}.holo-index button{border-color:#c5caff26;background:#bacbff06;border-radius:12px}.holo-index button:hover,.holo-index button.is-active{background:linear-gradient(100deg,#a6dfff1c,#c5a0ff14);border-color:#cfc7ff70;color:#e0eaff}
.holo-dialog-media{background:transparent}.holo-dialog-copy{background:#afc4ff05}
@keyframes spectral-drift{to{transform:translate3d(6vw,5vh,0) scale(1.15)}}
@media(max-width:1000px){.top{padding-inline:15px}.facts>div{padding:17px;gap:10px}.facts strong{font-size:32px}.holo-stage{padding:20px}}
@media(max-width:700px){.top{padding-inline:12px;border-radius:0 0 17px 17px}.eyebrow{font-size:9px}.hero-caption{border-radius:16px}.facts{gap:8px}.facts>div{padding:14px 10px}.facts strong{font-size:28px}.architecture{padding:5px;border-radius:20px}.architecture>img{border-radius:15px}.world-frame{padding:7px;gap:0;border-radius:23px}.world-copy{padding:24px 18px}.world-visual{border-radius:16px}.home{border-radius:23px;padding:7px}.home-content{padding:22px 15px}.manifesto{padding:95px 0}.form-box{padding:25px}.gallery-card{padding:6px;border-radius:20px}.holo-stage{padding:16px;border-radius:24px}.holo-map{transform:none}.holo-map-area:after{bottom:55px}.holo-preview{border-radius:18px}.spectral-atmosphere i{width:120vw;height:120vw}.spectral-atmosphere i:first-child{right:-50vw}.holo-index{gap:7px}}
body.still .spectral-atmosphere i{animation:none}
@media(prefers-reduced-motion:reduce){.spectral-atmosphere i{animation:none}}



/* EMBASSY WORLD / spatial console. One layout owner, no imported repair layers.
   The pane is sized by the workspace, never by an image or a translated title.
   Only inner media/copy regions change contents. Expanded and compact modes use
   the same grid. All interactive controls live inside that grid. */
:root {
  --embassy-header-h: 80px;
  --emw-gutter: clamp(20px, 3.5vw, 72px);
  --embassy-neon-cyan: #9efcff;
  --embassy-neon-blue: #69b6ff;
  --embassy-neon-violet: #c8a6ff;
  --embassy-neon-white: #f2feff;
  --embassy-border-soft: rgba(158, 252, 255, .22);
  --embassy-border-strong: rgba(158, 252, 255, .54);
  --embassy-neon-border: rgba(152, 242, 255, .32);
  --embassy-glow-cyan-soft: 0 0 12px rgba(110, 243, 255, .22);
  --embassy-glow-cyan: 0 0 18px rgba(110, 243, 255, .35);
  --embassy-glow-blue: 0 0 26px rgba(90, 145, 255, .22);
  --embassy-glow-violet: 0 0 24px rgba(184, 130, 255, .18);
  --embassy-glow-strength: .78;
  --embassy-interface-boost: 1;
  --embassy-panel-noise: .06;
  --embassy-shadow-soft: 0 0 22px rgba(89, 207, 255, .16);
  --embassy-shadow-strong: 0 0 34px rgba(80, 118, 255, .18);
  --embassy-text-glow: 0 0 10px rgba(133, 240, 255, .18);
}
html:has(body.virtual-mode) { height: 100%; overflow: hidden; scroll-behavior: auto; }
body.virtual-mode { height: 100%; overflow: hidden; background: #061022; }
body.virtual-mode > main,
body.virtual-mode > .floating-contact,
body.virtual-mode > .spectral-atmosphere { display: none; }
body.virtual-mode .skip { z-index: 2000; }

/* The full-width hardware rail remains opaque and independent of dimming. */
.virtual-mode .embassy-header {
  position: fixed; inset: 0 0 auto; z-index: 100;
  height: auto; min-height: 80px;
  background: #080b16; border-bottom: 1px solid #99eeff26;
  box-shadow: none; isolation: isolate;
}
.virtual-mode .embassy-header .top {
  position: relative; inset: auto;
  width: calc(100% - 2 * var(--emw-gutter)); max-width: 1904px;
  height: auto; min-height: 80px; margin: auto; padding: 8px 0;
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  border: 0; border-radius: 0; background: none; box-shadow: none; backdrop-filter: none;
  direction: ltr;
}
.virtual-mode .top > nav,
.virtual-mode .header-enquire,
.virtual-mode .menu-toggle { display: none; }
.virtual-mode .brand { flex: 0 0 auto; }
.virtual-mode .brand img { display: block; width: 104px; height: 58px; object-fit: contain; }
.virtual-mode .header-contact {
  display: flex; align-items: center; flex-direction: row; gap: 18px;
  min-width: 0; margin: 0 0 0 auto;
}
.virtual-mode .direct-phone { white-space: nowrap; }
.virtual-mode .direct-phone small { display: none; }
.virtual-mode .direct-phone strong { font-size: 15px; color: #f2f7ff; }
.virtual-mode .embassy-header .header-social { display: flex; gap: 5px; }
.virtual-mode .header-social a {
  display: grid; place-items: center; width: 40px; height: 40px; padding: 0;
  font-size: 0; flex: 0 0 auto; border: 1px solid rgba(158, 236, 255, .44);
  background: linear-gradient(180deg, rgba(17, 40, 76, .82), rgba(8, 23, 52, .74));
  border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 0 14px rgba(74, 205, 255, .16);
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.virtual-mode .header-social a span { display: none; }
.virtual-mode .header-social a svg {
  display: block; width: 28px; height: 28px; margin: 0;
  justify-self: center; align-self: center;
  transform: translate(0, 0); transform-origin: center;
}
.virtual-mode .languages { display: block; position: relative; margin: 0; }
.virtual-mode .languages summary {
  min-width: 48px; min-height: 44px; padding: 10px;
  display: flex; align-items: center; justify-content: center; gap: 6px;
  font-size: 11px; font-weight: 700; letter-spacing: .08em; color: #f2f7ff;
  background: linear-gradient(180deg, rgba(17, 40, 76, .82), rgba(8, 23, 52, .74));
  border: 1px solid rgba(158, 236, 255, .44); border-radius: 14px;
}
.virtual-mode .header-contact { gap: 10px; }
.virtual-mode .embassy-header .header-social { gap: 8px; }
.virtual-mode .header-social a,
.virtual-mode .languages summary {
  border-color: var(--embassy-neon-border);
  background: linear-gradient(180deg, rgba(10, 28, 64, .72), rgba(6, 18, 46, .58));
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.05), var(--embassy-shadow-soft), var(--embassy-shadow-strong);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.virtual-mode .header-social a:hover,
.virtual-mode .header-social a:focus-visible,
.virtual-mode .languages summary:hover,
.virtual-mode .languages[open] summary {
  border-color: rgba(158, 252, 255, .78);
  color: var(--embassy-neon-cyan);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.08), 0 0 18px rgba(89, 211, 255, .28), var(--embassy-shadow-strong);
}
.virtual-mode .header-social a svg {
  filter: drop-shadow(0 0 6px rgba(141, 244, 255, .65)) drop-shadow(0 0 14px rgba(77, 142, 255, .25));
}
.virtual-mode .header-social a.line-contact{color:#63e6a0;border-color:#63e6a0a8;background:linear-gradient(180deg,#63e6a01c,#63e6a008);}
.virtual-mode .header-social a.whatsapp-contact{color:#55df83;border-color:#55df83a8;background:linear-gradient(180deg,#55df831c,#55df8308);}
.virtual-mode .header-social a.telegram-contact{color:#58bfff;border-color:#58bfffa8;background:linear-gradient(180deg,#58bfff1c,#58bfff08);}
.virtual-mode .header-social a.max-contact{color:#b59aff;border-color:#b59affb0;background:linear-gradient(180deg,#b59aff1c,#b59aff08);}
.virtual-mode .header-social a.line-contact:hover,.virtual-mode .header-social a.line-contact:focus-visible{color:#9dffc6;border-color:#63e6a0;box-shadow:inset 0 0 0 1px #ffffff18,0 0 18px #63e6a055,var(--embassy-shadow-strong);}
.virtual-mode .header-social a.whatsapp-contact:hover,.virtual-mode .header-social a.whatsapp-contact:focus-visible{color:#a0ffbd;border-color:#55df83;box-shadow:inset 0 0 0 1px #ffffff18,0 0 18px #55df8355,var(--embassy-shadow-strong);}
.virtual-mode .header-social a.telegram-contact:hover,.virtual-mode .header-social a.telegram-contact:focus-visible{color:#b3e4ff;border-color:#58bfff;box-shadow:inset 0 0 0 1px #ffffff18,0 0 18px #58bfff55,var(--embassy-shadow-strong);}
.virtual-mode .header-social a.max-contact:hover,.virtual-mode .header-social a.max-contact:focus-visible{color:#e0d5ff;border-color:#b59aff;box-shadow:inset 0 0 0 1px #ffffff18,0 0 18px #b59aff55,var(--embassy-shadow-strong);}
.virtual-mode .header-social a.whatsapp-contact svg path:first-child{fill:none;stroke:currentColor;}
.virtual-mode .header-social a.whatsapp-contact svg path:nth-child(2){fill:currentColor;stroke:none;}
.virtual-mode .header-social a:hover,
.virtual-mode .header-social a:focus-visible { transform: translateY(-1px); }
.virtual-mode .languages summary { min-width: 52px; border-radius: 14px; }
.virtual-mode .language-menu {
  position: absolute; inset: calc(100% + 10px) 0 auto auto;
  width: min(244px, calc(100vw - 28px)); max-height: min(460px, 70dvh);
  overflow-y: auto; background: #0c1930; color: #f4f8ff; z-index: 101;
  box-shadow: 0 18px 48px #0009; border: 1px solid #b9eaff55;
}
.virtual-mode .language-menu a { min-height: 42px; }

/* The scene and stable workspace. All geometry is layout, not animation. */
.virtual-screen {
  --interface-light: .412; --scene-dim: .35; --window-tint: .18;
  --reading-tint: .75; --chrome-tint: .62;
  --emw-dock-space: 100px;
  position: fixed; inset: 0; height: 100dvh; z-index: 1;
  color: #eef8ff; isolation: isolate; overflow: hidden;
}
.virtual-backdrop { position: absolute; inset: 0; z-index: -3; background: #071426 url('../img/cinema-wide.webp') center / cover no-repeat; }
.virtual-backdrop::before {
  content: ''; position: absolute; inset: 0; background: #020713;
  opacity: var(--scene-dim); pointer-events: none;
}
.virtual-backdrop::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, #020d2352, transparent 60%), linear-gradient(0deg, #020c2455, transparent 28%);
}
.virtual-workspace {
  position: absolute;
  inset: calc(var(--embassy-header-h) + 24px) var(--emw-gutter) calc(var(--emw-dock-space) + env(safe-area-inset-bottom));
  display: grid; grid-template-columns: minmax(0, .72fr) minmax(0, 1.28fr);
  gap: clamp(24px, 3vw, 72px); align-items: center;
  max-width: 1904px; margin-inline: auto; min-width: 0; min-height: 0;
  direction: ltr;
}
.virtual-intro {
  position: relative; width: 100%; min-width: 0; max-width: 600px;
  height: 100%; max-height: 100%; display: grid; grid-template-rows: minmax(0, 1fr) auto; overflow: hidden;
  padding: clamp(16px, 2vw, 30px); border-radius: 16px;
  isolation: isolate; scrollbar-width: thin; scrollbar-color: #bcefff50 transparent;
  text-align: start; direction: inherit;
}
.intro-reading { min-width: 0; min-height: 0; overflow-x: hidden; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #bcefff50 transparent; }
.virtual-intro::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(90deg, #041127b8 0%, #04112766 70%, transparent);
}
.virtual-intro .eyebrow { font-size: 10px; color: #c4e7f7; letter-spacing: .16em; }
.virtual-intro h1 {
  font: 400 clamp(34px, 4.2vw, 74px)/1.05 Noto, Arial, sans-serif;
  letter-spacing: -.045em; margin: 18px 0; max-width: 100%;
  color: #f5fbff; text-shadow: 0 2px 18px #041127a8;
}
.virtual-intro h1 em { font-style: normal; color: #a9fff5; }
.virtual-intro .intro-reading > p { margin: 0; max-width: 440px; font-size: clamp(13px, 1.12vw, 16px); line-height: 1.75; color: #e1edfa; }
.virtual-intro .hero-price { margin: 20px 0 0; max-width: 460px; }
.virtual-intro .hero-price > span { color: #bddce9; font-size: 10px; }
.virtual-intro .hero-price strong { font-size: clamp(26px, 2.4vw, 38px); line-height: 1.25; }
.virtual-intro .hero-price small { display: block; color: #c9d8e7; font-size: 11px; line-height: 1.65; }
.virtual-intro .hero-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 16px; }
.virtual-intro .hero-actions .textlink { display: none; }
.virtual-intro .btn.primary {
  display: flex; align-items: center; gap: 20px; max-width: 100%; min-height: 54px;
  padding: 14px 20px; border-radius: 10px; font-size: 14px; line-height: 1.4;
  color: #e8ffff; background: #092739d9; border: 1px solid #9eefffbd;
  box-shadow: inset 0 1px #dfffff30; white-space: normal; text-align: start;
  position: relative; overflow: hidden; isolation: isolate;
}
.virtual-intro .btn.primary::before {
  content: ''; position: absolute; inset: 0; pointer-events: none; z-index: -1;
  background:
    linear-gradient(#9cecff, #9cecff) left top / 12px 1px no-repeat,
    linear-gradient(#9cecff, #9cecff) left top / 1px 12px no-repeat,
    linear-gradient(#c9a8ff, #c9a8ff) right bottom / 12px 1px no-repeat,
    linear-gradient(#c9a8ff, #c9a8ff) right bottom / 1px 12px no-repeat;
  opacity: .72;
}
.virtual-intro .btn.primary::after {
  content: ''; position: absolute; inset-block: 0; width: 42px; left: -60px;
  pointer-events: none; z-index: -1;
  background: linear-gradient(90deg, transparent, rgb(150 245 255 / .22), transparent);
  transform: skewX(-18deg);
}
.virtual-intro .btn.primary:hover::after,
.virtual-intro .btn.primary:focus-visible::after { animation: embassy-cta-scan .55s ease-out; }
@keyframes embassy-cta-scan { to { left: calc(100% + 60px); } }
.virtual-intro .btn.primary b { flex: 0 0 30px; text-align: center; border-inline-start: 1px solid #a6ffff50; }
.virtual-intro .btn.primary:hover { background: #103c50; transform: translateY(-2px); }
.virtual-screen .virtual-intro,
.virtual-screen .virtual-description,
.virtual-screen .window-scroll,
.virtual-screen .virtual-content,
.virtual-screen .holo-reading {
  min-width: 0;
  max-width: 100%;
}
.virtual-screen .virtual-intro,
.virtual-screen .virtual-description {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
}
.virtual-intro p, .virtual-intro h1, .virtual-description h2, .virtual-description p {
  min-width: 0; max-width: 100%; white-space: normal;
  overflow-wrap: break-word; word-break: normal; hyphens: auto;
}
html[dir=rtl] .virtual-intro, html[dir=rtl] .virtual-description,
html[dir=rtl] .virtual-content, html[dir=rtl] .virtual-settings { direction: rtl; }
html[dir=rtl] .virtual-intro h1 { letter-spacing: 0; }

/* Single physical frame. The SVG traveller is drawn on this exact box. */
.virtual-window {
  --emw-frame-progress: 0;
  position: relative; width: 100%; height: 100%; max-height: 780px;
  min-width: 0; min-height: 0; align-self: center;
  display: grid; grid-template-rows: 52px minmax(0, 1fr) 54px;
  border: 1px solid #a4efff66; border-radius: 16px;
  background: rgb(5 20 40 / var(--window-tint));
  box-shadow: 0 20px 64px #02081959; isolation: isolate;
  transform: none; overflow: hidden;
  container: glass / inline-size;
}
.virtual-window[hidden] { display: none; }
.virtual-window::before {
  content: ''; pointer-events: none; position: absolute; inset: 0; z-index: 0;
  background: linear-gradient(135deg, #b2f4ff0e, transparent 30%, transparent 70%, #ca9aff0c);
}
.window-bar, .window-foot {
  position: relative; z-index: 2; min-width: 0; margin: 0;
  display: flex; align-items: center; gap: 12px; padding: 4px 12px;
  background: rgb(4 17 35 / var(--chrome-tint)); direction: ltr;
}
.window-bar { justify-content: space-between; border-bottom: 1px solid #a7eaff26; }
.window-bar > div { display: flex; gap: 4px; flex: 0 0 auto; }
.window-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; letter-spacing: .13em; color: #b6eff5; }
.virtual-retry[hidden] { display: none; }
.window-bar button, .window-foot button, .media-enlarge, .virtual-retry {
  display: inline-flex; align-items: center; justify-content: center;
  position: static; min-width: 44px; min-height: 44px; margin: 0;
  border: 1px solid #a6e8ff38; border-radius: 9px; background: #092539b3;
  color: #e4ffff; cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 0 18px rgba(83, 209, 255, .18);
}
.window-bar button { font-size: 22px; }
.window-bar button:hover, .window-foot button:hover, .media-enlarge:hover { border-color: #b2ffffb3; background: #1b465b; }
.window-foot { justify-content: space-between; border-top: 1px solid #b4ecff26; }
.media-navigation { display: flex; align-items: center; justify-content: center; gap: 8px; margin: auto; }
.media-counter { position: static; min-width: 64px; text-align: center; font-size: 12px; font-variant-numeric: tabular-nums; color: #d5eaf7; }
.media-navigation button { font-size: 22px; }
.window-foot .media-play { font-size: 14px; }
.media-play .media-play-icon { width: 20px; height: 20px; fill: var(--embassy-neon-cyan); filter: drop-shadow(0 0 6px rgba(137, 244, 255, .55)); }
.media-play .media-play-icon[hidden] { display: none; }
.window-foot .window-read { padding: 6px 12px; font-size: 11px; white-space: normal; line-height: 1.2; }
.window-foot .window-note { font-size: 10px; color: #c2dbe7; }

/* Image first, fixed reading budget below. Long copy scrolls, not the frame. */
.window-scroll {
  position: relative; z-index: 1; min-width: 0; min-height: 0;
  display: grid; grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr) clamp(114px, 16dvh, 156px);
  gap: 12px; padding: 14px; overflow: hidden;
}
.virtual-media {
  position: relative; grid-row: 1; min-width: 0; min-height: 0; width: 100%; height: 100%;
  overflow: hidden; border-radius: 10px; background: #030e2080;
  border: 1px solid #c0ecff26; touch-action: pan-y;
}
.virtual-media > img {
  position: absolute; inset: 0; display: block; width: 100%; height: 100%;
  max-width: none; max-height: none; margin: 0; object-fit: contain; object-position: center;
}
.virtual-media > img[hidden] { display: none; }
.media-enlarge { position: absolute; right: 10px; bottom: 10px; z-index: 4; font-size: 23px; background: #071d32e8; }
.virtual-media.is-map > img, .virtual-media.is-map > .media-enlarge { display: none; }
.virtual-description {
  grid-row: 2; min-width: 0; min-height: 0; width: 100%; height: 100%;
  padding: 14px 16px; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain;
  border-radius: 10px; background: rgb(4 16 34 / var(--reading-tint));
  border-inline-start: 2px solid #8deef077; text-align: start;
  scrollbar-width: thin; scrollbar-color: #acdae650 transparent;
}
.virtual-description .eyebrow { color: #a1cbde; font-size: 9px; margin-bottom: 7px; }
.virtual-description h2 { font-size: clamp(20px, 1.65vw, 30px); line-height: 1.2; letter-spacing: -.025em; margin: 0 0 10px; color: #f1fcff; }
.virtual-description p { margin: 0; font-size: 13px; line-height: 1.65; color: #d5e6f5; }
.virtual-screen .virtual-description h2.is-typing,
.virtual-screen .virtual-description p.is-typing {
  animation: holo-copy-in .36s ease-out both;
}
@keyframes holo-copy-in {
  from { opacity: 0; transform: translateY(6px); filter: blur(4px); }
  to { opacity: 1; transform: none; filter: none; }
}
body.still .virtual-screen .virtual-description h2.is-typing,
body.still .virtual-screen .virtual-description p.is-typing {
  animation: none !important;
}
@media (prefers-reduced-motion: reduce) {
  .virtual-screen .virtual-description h2.is-typing,
  .virtual-screen .virtual-description p.is-typing { animation: none !important; }
}
.virtual-media-state {
  position: absolute; inset: 0; z-index: 3; display: grid; align-content: center;
  justify-items: center; gap: 12px; padding: 20px; text-align: center;
  font-size: 13px; color: #dcefff; background: #061426e8;
}
.virtual-media-state[hidden] { display: none; }
.virtual-retry { padding: 8px 16px; }
.virtual-content { display: none; min-width: 0; min-height: 0; }
.virtual-screen:not(.has-media) .window-scroll { display: block; overflow-y: auto; overscroll-behavior: contain; }
.virtual-screen:not(.has-media) .virtual-media,
.virtual-screen:not(.has-media) .virtual-description,
.virtual-screen:not(.has-media) .media-navigation { display: none; }
.virtual-screen:not(.has-media) .virtual-content { display: block; }
.virtual-screen:not(.has-media) .window-foot { justify-content: flex-end; }
.virtual-screen:not(.has-media) .window-note { margin-inline-end: auto; }

/* Expanded is the same frame occupying both grid columns. No sliding offscreen. */
.virtual-screen.is-expanded .virtual-workspace { grid-template-columns: minmax(0, 1fr); }
.virtual-screen.is-expanded .virtual-intro { display: none; }
.virtual-screen.is-expanded .virtual-window { max-width: 1660px; max-height: none; margin: auto; }
.virtual-screen.window-hidden .virtual-intro { max-width: 680px; }
.virtual-screen.window-hidden .virtual-window { display: none; }

/* Dock stays reachable in every state, also for touch and keyboard users. */
.virtual-dock {
  position: absolute; z-index: 10; left: 64%; bottom: calc(16px + env(safe-area-inset-bottom));
  transform: translateX(-50%); display: flex; justify-content: center; gap: 6px;
  max-width: calc(100% - 32px); padding: 6px;
  border: 1px solid #9befff59; border-radius: 14px;
  background: #061b30c7; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04), 0 12px 36px #01071555, var(--embassy-shadow-soft);
}
.virtual-dock button {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; flex: 0 1 88px; width: 88px; min-width: 64px; min-height: 62px;
  padding: 7px 9px; color: #cde6f7; background: transparent;
  border: 1px solid transparent; border-radius: 9px;
  transition: background .18s, border-color .18s;
}
.virtual-dock button[aria-pressed=true] { background: #80edff16; border-color: #b1efff85; color: #dffffb; }
.virtual-dock button:hover { background: #aed7ff13; border-color: #b1efff55; }
.virtual-dock svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.virtual-dock span { font-size: 11px; line-height: 1.2; text-align: center; white-space: normal; overflow-wrap: break-word; hyphens: auto; }
.virtual-caption { position: absolute; left: var(--emw-gutter); bottom: calc(78px + env(safe-area-inset-bottom)); max-width: 330px; font-size: 9px; line-height: 1.5; color: #bad5e8; letter-spacing: .055em; }

/* One settings drawer on ALL viewports. Hidden means neither focusable nor visible. */
.settings-toggle {
  position: absolute; z-index: 12; left: var(--emw-gutter); bottom: calc(20px + env(safe-area-inset-bottom));
  display: flex; align-items: center; justify-content: center; gap: 9px;
  min-width: 48px; min-height: 48px; padding: 8px 14px; border: 1px solid #b6ecff50;
  border-radius: 10px; background: #061b30e8; color: #d6f6ff; font-size: 11px;
}
.settings-toggle svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.virtual-settings {
  position: absolute; z-index: 30; left: var(--emw-gutter);
  bottom: calc(82px + env(safe-area-inset-bottom)); width: min(330px, calc(100% - 28px));
  max-height: calc(100dvh - var(--embassy-header-h) - 110px); margin: 0;
  overflow: auto; overscroll-behavior: contain; scrollbar-width: thin;
  padding: 20px; border: 1px solid #b1eaff70; border-radius: 14px;
  background: #08192ff5; box-shadow: 0 15px 56px #01050caa; color: #ecfaff;
}
.virtual-settings[hidden] { display: none; }
.settings-heading { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px; }
.settings-heading h2 { font-size: 17px; margin: 0; }
.settings-close { width: 44px; height: 44px; background: none; border: 0; border-radius: 8px; font-size: 25px; }
.settings-field { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; padding-block: 15px; border-bottom: 1px solid #cbeaff22; }
.settings-field label, .settings-field output { font-size: 12px; line-height: 1.4; }
.settings-field label { min-width: 0; white-space: normal; }
.settings-field output { color: #acfcf0; font-variant-numeric: tabular-nums; }
.settings-field input[type=range] { grid-column: 1/-1; width: 100%; min-height: 30px; margin: 0; accent-color: #a4faf4; cursor: pointer; direction: ltr; }
.settings-motion { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 14px; min-block-size: 44px; padding-block: 10px 2px; border-top: 1px solid rgba(255,255,255,.09); margin-top: 10px; font-size: 13px; cursor: pointer; }
.settings-motion input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.settings-motion > i { position: relative; display: block; inline-size: 54px; block-size: 30px; border: 1px solid var(--embassy-neon-border); border-radius: 999px; background: rgba(255,255,255,.08); box-shadow: 0 0 12px rgba(78,214,255,.1); }
.settings-motion > i::after { content: ''; position: absolute; inset-block-start: 3px; inset-inline-start: 3px; inline-size: 22px; block-size: 22px; border-radius: 50%; background: var(--embassy-neon-cyan); box-shadow: 0 0 10px rgba(137,244,255,.55), 0 0 22px rgba(70,125,255,.25); transition: transform .22s ease; }
.settings-motion input:checked + i { border-color: rgba(158,252,255,.78); background: rgba(132,244,236,.18); }
.settings-motion input:checked + i::after { transform: translateX(24px); }
.settings-motion input:focus-visible + i { outline: 2px solid var(--embassy-neon-cyan); outline-offset: 3px; }

.virtual-screen .intro-reading,
.virtual-screen .virtual-description,
.virtual-screen .virtual-settings,
.virtual-screen .window-scroll {
  scrollbar-width: thin;
  scrollbar-color: rgba(140,245,255,.82) rgba(255,255,255,.08);
}
.virtual-screen .intro-reading::-webkit-scrollbar,
.virtual-screen .virtual-description::-webkit-scrollbar,
.virtual-screen .virtual-settings::-webkit-scrollbar,
.virtual-screen .window-scroll::-webkit-scrollbar { width: 8px; height: 8px; }
.virtual-screen .intro-reading::-webkit-scrollbar-track,
.virtual-screen .virtual-description::-webkit-scrollbar-track,
.virtual-screen .virtual-settings::-webkit-scrollbar-track,
.virtual-screen .window-scroll::-webkit-scrollbar-track { background: rgba(255,255,255,.06); border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.04); }
.virtual-screen .intro-reading::-webkit-scrollbar-thumb,
.virtual-screen .virtual-description::-webkit-scrollbar-thumb,
.virtual-screen .virtual-settings::-webkit-scrollbar-thumb,
.virtual-screen .window-scroll::-webkit-scrollbar-thumb { border-radius: 999px; background: linear-gradient(180deg, rgba(157,255,252,.95), rgba(109,183,255,.78)); box-shadow: 0 0 8px rgba(111,236,255,.55), 0 0 18px rgba(73,122,255,.22); border: 2px solid transparent; background-clip: padding-box; }

/* Moved sections retain their live form handlers and IDs. */
.virtual-content .homes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.virtual-content .home { min-width: 0; background: #071b30d9; border-radius: 12px; padding: 8px; }
.virtual-content .home-image { border-radius: 8px; }
.virtual-content .home-image img { width: 100%; height: auto; aspect-ratio: 16/10; object-fit: cover; }
.virtual-content .home-content { padding: 18px; }
.virtual-content .home-title { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.virtual-content .home h3 { font-size: 25px; margin: 0; }
.virtual-content .home-footer { flex-wrap: wrap; gap: 10px; }
.virtual-content .home p { color: #d6e7f4; }
.virtual-content #inline-form { max-width: 680px; margin-inline: auto; }
.virtual-content .form-box { min-width: 0; padding: clamp(16px, 3vw, 32px); border-radius: 12px; background: #081a30ed; box-shadow: none; backdrop-filter: none; }
.virtual-content .form-box input, .virtual-content .form-box select { min-width: 0; max-width: 100%; }
.virtual-content .form-box .privacy { font-size: 12px; line-height: 1.7; color: #c5daeb; }
.virtual-content #explore { width: 100%; padding: 0; margin: 0; }
.virtual-content #explore > .eyebrow, .virtual-content #explore > .section-head { display: none; }
.virtual-content .holo-stage { padding: 14px; border-radius: 12px; background: #071a2dcf; }
.virtual-content .holo-map { transform: none; }
.virtual-content .holo-workspace { min-width: 0; min-height: 0; }
.virtual-content .holo-preview { background: #0b2337f5; }
.virtual-content .holo-note { color: #c5ddec; font-size: 11px; }
.virtual-content .holo-point { width: 38px; height: 38px; min-width: 0; background: #082536; color: #d9ffff; }
.virtual-content .holo-point:hover, .virtual-content .holo-point:focus-visible { background: #bcffff; color: #082536; }
.virtual-map { position: absolute; inset: 0; display: none; background: #162b3c; overflow: hidden; }
.virtual-media.is-map .virtual-map { display: block; }
.map-tiles { position: absolute; inset: 0; overflow: hidden; }
.map-tiles img { position: absolute; width: 256px; height: 256px; max-width: none; }
.map-pin { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -100%); padding: 8px 12px; border-radius: 7px; background: #082a43; border: 2px solid #9fffff; color: white; white-space: nowrap; font-size: 11px; }
.virtual-map > a { position: absolute; left: 12px; bottom: 24px; z-index: 2; padding: 12px; border-radius: 8px; background: #082a43; color: #e2ffff; font-size: 12px; }
.virtual-map .map-attribution { left: auto; right: 0; bottom: 0; padding: 2px 5px; color: #14293b; background: #fff; font-size: 10px; }
.map-zoom { position: absolute; top: 10px; left: 10px; display: grid; gap: 5px; }
.map-zoom button { width: 44px; height: 44px; border: 1px solid #d0faff70; border-radius: 8px; background: #082a43; color: white; font-size: 22px; }

/* Motion is decorative. Neither page geometry nor slide timing depends on it. */
.window-circuit { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 4; pointer-events: none; overflow: hidden; color: #a2fff5; opacity: var(--interface-light); }
.window-circuit rect { fill: none; vector-effect: non-scaling-stroke; }
.window-circuit .circuit-base { stroke: #b2efff55; stroke-width: 1; }
.window-circuit .circuit-core { stroke: currentColor; stroke-width: 2; stroke-dasharray: 7 93; animation: emw-traveller 14s linear infinite; }
@keyframes emw-traveller { to { stroke-dashoffset: -100; } }
.virtual-window.is-arriving { animation: emw-arrive .24s ease-out both; }
@keyframes emw-arrive { from { opacity: 0; } to { opacity: 1; } }
.virtual-media > img.is-arriving { animation: emw-image-in .32s ease-out both; }
@keyframes emw-image-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.virtual-screen button:focus-visible, .virtual-screen a:focus-visible { outline: 2px solid #bcfff5; outline-offset: -3px; }
.virtual-screen input:focus-visible { outline: 2px solid #bcfff5; outline-offset: 2px; }
.virtual-screen button:disabled { opacity: .5; cursor: default; }
body.still .virtual-screen .circuit-core { display: none; }
body.still .virtual-screen *, body.still .virtual-screen *::before, body.still .virtual-screen *::after { animation: none !important; transition: none !important; }

/* The fullscreen photograph is independent of the transparency slider. */
body.virtual-mode .virtual-gallery {
  position: fixed; inset: 0; margin: auto; width: min(1680px, calc(100vw - 32px));
  height: calc(100dvh - 32px); max-width: none; max-height: none; padding: 0;
  color: #edfaff; background: #061224f5; border: 1px solid #b1eaff88;
  border-radius: 14px; overflow: hidden; box-shadow: 0 24px 90px #0009;
}
body.virtual-mode .virtual-gallery:not([open]) { display: none; }
body.virtual-mode .virtual-gallery[open] { display: block; }
body.virtual-mode .virtual-gallery::backdrop { background: #020711c7; backdrop-filter: blur(7px); }
.virtual-gallery__shell { position: relative; display: grid; grid-template-rows: 60px minmax(0, 1fr) 60px; width: 100%; height: 100%; min-width: 0; min-height: 0; }
.virtual-gallery__header, .virtual-gallery__footer { position: relative; display: flex; align-items: center; gap: 12px; padding: 6px 14px; min-width: 0; background: #061426; direction: ltr; }
.virtual-gallery__header { justify-content: space-between; border-bottom: 1px solid #b4edff30; }
.virtual-gallery__footer { justify-content: center; border-top: 1px solid #b4edff30; }
.virtual-gallery__stage { position: relative; min-width: 0; min-height: 0; margin: 12px; overflow: hidden; display: grid; place-items: center; }
body.virtual-mode .virtual-gallery #lightbox-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain; opacity: 1; filter: none; }
body.virtual-mode .virtual-gallery #lightbox-image[hidden] { display: none; }
.virtual-gallery__error { position: relative; z-index: 2; padding: 20px; text-align: center; background: #07172de8; font-size: 14px; }
.virtual-gallery__error[hidden] { display: none; }
.virtual-gallery .lightbox-caption { position: static; min-width: 0; margin: 0; padding: 0; color: #e1f6ff; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.virtual-gallery .close, .virtual-gallery #lightbox-prev, .virtual-gallery #lightbox-next { position: static; inset: auto; display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; margin: 0; padding: 0; color: #dfffff; background: #0d2941; border: 1px solid #b9efff50; border-radius: 9px; font-size: 24px; }
.virtual-gallery .virtual-gallery__counter { min-width: 64px; text-align: center; font-size: 12px; font-variant-numeric: tabular-nums; }
.virtual-gallery .dots { display: none; }
.virtual-gallery .lightbox-full { position: static; margin: 0 0 0 auto; color: #b6ffff; font-size: 11px; padding: 8px; max-width: 45%; }

/* Wide, shallow screens place copy BESIDE the photograph, not over its height. */
@media (min-width: 1500px) and (min-aspect-ratio: 2/1) {
  .virtual-workspace { grid-template-columns: minmax(0, .58fr) minmax(0, 1.42fr); }
  .virtual-intro h1 { font-size: clamp(44px, 3.25vw, 68px); }
  .virtual-screen.has-media .window-scroll { grid-template-columns: minmax(0, 2.2fr) minmax(220px, 1fr); grid-template-rows: minmax(0, 1fr); }
  .virtual-screen.has-media .virtual-media { grid-column: 1; grid-row: 1; }
  .virtual-screen.has-media .virtual-description { grid-column: 2; grid-row: 1; padding: 20px; }
  .virtual-screen.has-media .virtual-description h2 { font-size: 26px; }
}
@container glass (max-width: 760px) {
  .virtual-content .homes { grid-template-columns: minmax(0, 1fr); }
  .virtual-content .holo-workspace { grid-template-columns: minmax(0, 1fr); }
  .virtual-content .holo-map-area { padding-top: 12px; }
  .virtual-content .holo-dock, .virtual-content .holo-idle { min-height: 0; }
  .virtual-content .holo-idle { padding: 14px; }
  .virtual-content .holo-reticle { display: none; }
  .virtual-content .holo-index { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .virtual-content .home-content { padding: 14px; }
}

/* This breakpoint is also used by the controller. It changes layout, not state.
   A resize never selects a module, advances a slide or steals focus. */
@media (max-width: 1000px), (max-height: 620px) {
  .virtual-screen { --emw-gutter: 18px; --emw-dock-space: 102px; }
  .virtual-workspace { grid-template-columns: minmax(0, 1fr); inset-block-start: calc(var(--embassy-header-h) + 12px); gap: 0; }
  .virtual-screen:not(.window-hidden) .virtual-intro { display: none; }
  .virtual-intro { max-width: 680px; align-self: center; justify-self: center; }
  .virtual-intro h1 { font-size: clamp(34px, 7vw, 66px); }
  .virtual-window { max-height: none; grid-template-rows: 48px minmax(0, 1fr) 52px; }
  .window-scroll { padding: 10px; gap: 10px; grid-template-rows: minmax(0, 1fr) clamp(100px, 19dvh, 160px); }
  .virtual-description h2 { font-size: clamp(20px, 3.7vw, 28px); }
  .virtual-description p { font-size: 13px; }
  .window-note { display: none; }
  .virtual-dock { left: 18px; right: 78px; bottom: calc(14px + env(safe-area-inset-bottom)); transform: none; max-width: none; width: auto; gap: 2px; }
  .virtual-dock button { flex: 1 1 0; width: auto; min-width: 0; min-height: 62px; padding: 6px 2px; }
  .virtual-dock span { font-size: 10px; }
  .settings-toggle { inset-inline-start: auto; left: auto; right: 18px; bottom: calc(22px + env(safe-area-inset-bottom)); padding: 8px; }
  .settings-toggle > span { display: none; }
  .virtual-settings { left: auto; right: 18px; bottom: calc(96px + env(safe-area-inset-bottom)); }
  .virtual-caption { display: none; }
  .window-expand { display: none !important; }
  .window-foot .window-read { display: none; }
}
@media (max-width: 600px) {
  :root { --embassy-header-h: 106px; --emw-gutter: 14px; }
  .virtual-mode .embassy-header { min-height: 0; }
  .virtual-mode .embassy-header .top { min-height: 102px; width: calc(100% - 28px); gap: 10px; padding: 7px 0; }
  .virtual-mode .brand img { width: 70px; height: 48px; }
  .virtual-mode .header-contact { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: 32px 36px; gap: 6px; justify-items: end; align-items: center; width: min(100%, 236px); }
  .virtual-mode .direct-phone { grid-column: 1/-1; grid-row: 1; justify-self: end; }
  .virtual-mode .direct-phone strong { font-size: 12px; }
  .virtual-mode .languages { grid-column: 2; grid-row: 2; }
  .virtual-mode .languages summary { min-height: 36px; min-width: 42px; padding: 7px; font-size: 10px; border-radius: 12px; }
  .virtual-mode .embassy-header .header-social { grid-column: 1; grid-row: 2; gap: 5px; }
  .virtual-mode .header-social a { width: 34px; height: 34px; }
  .virtual-mode .header-social a svg { width: 24px; height: 24px; }
  .virtual-screen { --emw-gutter: 12px; --emw-dock-space: 100px; }
  .virtual-intro { padding: 14px; }
  .virtual-intro h1 { font-size: clamp(36px, 9.5vw, 52px); margin: 14px 0 18px; }
  .virtual-intro .intro-reading > p { font-size: 13px; line-height: 1.65; }
  .virtual-intro .eyebrow { font-size: 8px; letter-spacing: .08em; }
  .virtual-intro .hero-price { margin-top: 22px; }
  .virtual-intro .hero-price strong { font-size: 27px; }
  .virtual-intro .hero-price small { font-size: 10px; }
  .virtual-intro .hero-actions { margin-top: 20px; }
  .virtual-intro .btn.primary { padding: 12px 14px; font-size: 13px; gap: 12px; }
  .virtual-description { padding: 12px; }
  .virtual-description .eyebrow { display: none; }
  .virtual-description h2 { font-size: 21px; }
  .window-scroll { padding: 8px; gap: 8px; grid-template-rows: minmax(0, 1fr) clamp(112px, 21dvh, 168px); }
  .virtual-dock { left: 12px; right: 70px; padding: 4px; gap: 1px; }
  .virtual-dock svg { width: 22px; height: 22px; }
  .virtual-dock span { font-size: 8px; line-height: 1.35; }
  .settings-toggle { right: 12px; }
  .virtual-settings { right: 12px; }
  body.virtual-mode .virtual-gallery { width: calc(100vw - 12px); height: calc(100dvh - 12px); border-radius: 10px; }
  .virtual-gallery__shell { grid-template-rows: 54px minmax(0, 1fr) 58px; }
  .virtual-gallery__stage { margin: 6px; }
  .virtual-gallery .lightbox-caption { font-size: 12px; }
  .virtual-gallery .lightbox-full { display: none; }
}
/* Six readable 44px+ targets, rather than 37px miniature tabs on small phones. */
@media (max-width: 374px) {
  .virtual-screen { --emw-dock-space: 136px; }
  .virtual-dock { right: 70px; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 2px; }
  .virtual-dock button { width: auto; min-height: 48px; padding: 3px; gap: 3px; }
  .virtual-dock span { font-size: 9px; }
  .virtual-dock svg { width: 18px; height: 18px; }
  .settings-toggle { bottom: calc(42px + env(safe-area-inset-bottom)); }
  .virtual-settings { bottom: calc(130px + env(safe-area-inset-bottom)); max-height: calc(100dvh - var(--embassy-header-h) - 144px - env(safe-area-inset-bottom)); }
}
@media (max-width: 600px) and (max-height: 700px) and (orientation: portrait) {
  .window-scroll { grid-template-rows: minmax(0,1fr) 88px; }
  .virtual-description h2 { font-size: 20px; }
  .virtual-description p { font-size: 12px; }
}
@media (orientation: landscape) and (max-height: 620px) {
  :root { --embassy-header-h: 64px; }
  .virtual-mode .embassy-header, .virtual-mode .embassy-header .top { min-height: 62px; }
  .virtual-mode .embassy-header .top { padding: 4px 0; }
  .virtual-mode .brand img { height: 48px; width: 84px; }
  .virtual-screen { --emw-dock-space: 78px; }
  .virtual-workspace { inset-block-start: calc(var(--embassy-header-h) + 8px); }
  .virtual-window { grid-template-rows: 42px minmax(0, 1fr) 46px; }
  .window-bar { padding: 0 8px; }
  .window-bar button, .window-foot button { min-width: 40px; min-height: 40px; }
  .virtual-screen.has-media .window-scroll { grid-template-columns: minmax(0, 1.6fr) minmax(220px, 1fr); grid-template-rows: minmax(0, 1fr); padding: 6px; gap: 8px; }
  .virtual-screen.has-media .virtual-media { grid-column: 1; grid-row: 1; }
  .virtual-screen.has-media .virtual-description { grid-column: 2; grid-row: 1; padding: 10px; }
  .virtual-description h2 { font-size: 20px; }
  .virtual-description p { font-size: 12px; }
  .virtual-description .eyebrow { display: none; }
  .virtual-dock { bottom: calc(8px + env(safe-area-inset-bottom)); }
  .virtual-dock button { min-height: 48px; gap: 3px; }
  .virtual-dock span { font-size: 9px; }
  .virtual-dock svg { width: 20px; height: 20px; }
  .settings-toggle { bottom: calc(13px + env(safe-area-inset-bottom)); }
  .virtual-settings { bottom: calc(72px + env(safe-area-inset-bottom)); max-height: calc(100dvh - var(--embassy-header-h) - 88px); }
  .virtual-intro h1 { font-size: 34px; }
  .virtual-gallery__shell { grid-template-rows: 48px minmax(0, 1fr) 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .virtual-screen *, .virtual-screen *::before, .virtual-screen *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

/* Future-interface visual polish. Geometry stays owned by the rules above. */
.virtual-screen {
  --embassy-neon-white: #f2feff;
  --embassy-border-soft: rgba(158,252,255,.22);
  --embassy-border-strong: rgba(158,252,255,.54);
  --embassy-glow-cyan-soft: 0 0 12px rgba(110,243,255,.22);
  --embassy-glow-cyan: 0 0 18px rgba(110,243,255,.35);
  --embassy-glow-blue: 0 0 26px rgba(90,145,255,.22);
  --embassy-glow-violet: 0 0 24px rgba(184,130,255,.18);
}

.virtual-mode .header-social a {
  position: relative;
  background:
    radial-gradient(circle at 30% 25%, rgba(255,255,255,.10), transparent 42%),
    linear-gradient(180deg, rgba(15,34,66,.88), rgba(7,20,43,.70));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    0 0 0 1px rgba(110,243,255,.06),
    0 0 14px rgba(89,211,255,.18),
    0 0 28px rgba(98,111,255,.12);
  filter: brightness(var(--embassy-interface-boost));
}
.virtual-mode .header-social a::before {
  content: '';
  position: absolute;
  inset: 2px;
  border: 1px solid rgba(255,255,255,.04);
  border-radius: inherit;
  pointer-events: none;
}
.virtual-mode .header-social a svg { overflow: visible; }
.virtual-mode .languages summary {
  background:
    radial-gradient(circle at 28% 24%, rgba(255,255,255,.08), transparent 38%),
    linear-gradient(180deg, rgba(13,31,61,.92), rgba(8,18,42,.72));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), var(--embassy-shadow-soft), var(--embassy-shadow-strong);
  filter: brightness(var(--embassy-interface-boost));
}

.virtual-window {
  background:
    linear-gradient(180deg, rgba(8,18,38,.52), rgba(6,16,32,.30)),
    repeating-linear-gradient(180deg, rgba(255,255,255,var(--embassy-panel-noise)) 0 1px, transparent 1px 10px);
  border-color: var(--embassy-border-soft);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 0 0 1px rgba(111,236,255,.04),
    0 18px 64px rgba(2,8,25,.38),
    0 0 34px rgba(98,118,255, calc(.12 * var(--embassy-glow-strength)));
}
.virtual-window::before {
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), transparent 22%),
    radial-gradient(circle at 18% 0%, rgba(158,252,255,.10), transparent 28%),
    radial-gradient(circle at 84% 100%, rgba(200,166,255,.08), transparent 26%);
  mix-blend-mode: screen;
  opacity: calc(.72 * var(--embassy-glow-strength));
}
.virtual-window::after {
  content: '';
  position: absolute;
  inset: -20%;
  z-index: 1;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 0%, transparent 42%, rgba(158,252,255,.10) 49%, rgba(200,166,255,.12) 51%, transparent 58%, transparent 100%);
  opacity: 0;
  transform: translateX(-18%);
}
.virtual-window.is-pulsing {
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 0 0 1px rgba(111,236,255,.08),
    0 18px 64px rgba(2,8,25,.38),
    0 0 40px rgba(104,240,255, calc(.18 * var(--embassy-glow-strength))),
    0 0 70px rgba(121,133,255, calc(.16 * var(--embassy-glow-strength)));
}
.virtual-window.is-pulsing::after { animation: emw-sweep .42s ease-out; }
@keyframes emw-sweep {
  0% { opacity: 0; transform: translateX(-18%); }
  12% { opacity: .9; }
  100% { opacity: 0; transform: translateX(18%); }
}

.window-circuit {
  overflow: visible;
  opacity: calc(var(--interface-light) * var(--embassy-interface-boost));
}
.window-circuit .circuit-base { stroke: rgba(178,239,255,.26); stroke-width: 1.05; }
.window-circuit .circuit-glow {
  stroke: url(#emw-frame-gradient);
  stroke-width: 1.8;
  opacity: calc(.35 + (.45 * var(--embassy-glow-strength)));
  filter: drop-shadow(0 0 6px rgba(110,243,255,.45)) drop-shadow(0 0 18px rgba(103,127,255,.22));
}
.window-circuit .circuit-progress {
  stroke: url(#emw-frame-gradient);
  stroke-width: 2.5;
  stroke-linecap: round;
  stroke-dasharray: calc(var(--emw-frame-progress) * 1) 100;
  opacity: .95;
  filter: drop-shadow(0 0 8px rgba(126,244,255,.55)) drop-shadow(0 0 18px rgba(106,118,255,.25));
}
.window-circuit .circuit-traveller {
  stroke: rgba(255,255,255,.95);
  stroke-width: 2.2;
  stroke-linecap: round;
  stroke-dasharray: 6 94;
  animation: emw-traveller 7.5s linear infinite;
  filter: drop-shadow(0 0 8px rgba(162,247,255,.9)) drop-shadow(0 0 18px rgba(105,148,255,.30));
}
@keyframes emw-traveller { to { stroke-dashoffset: -100; } }
body.still .virtual-screen .circuit-traveller { display: none; }

.virtual-intro .eyebrow,
.virtual-intro h1,
.virtual-intro .intro-reading > p,
.virtual-intro .hero-price,
.virtual-intro .hero-actions {
  opacity: 0;
  transform: translateY(10px);
  clip-path: inset(0 0 100% 0);
  filter: blur(6px);
}
.is-intro-ready .virtual-intro .eyebrow { animation: emw-reveal .55s ease-out .05s forwards; }
.is-intro-ready .virtual-intro h1 { animation: emw-reveal .72s ease-out .16s forwards; }
.is-intro-ready .virtual-intro .intro-reading > p { animation: emw-reveal .62s ease-out .32s forwards; }
.is-intro-ready .virtual-intro .hero-price { animation: emw-reveal .62s ease-out .48s forwards; }
.is-intro-ready .virtual-intro .hero-actions { animation: emw-reveal .62s ease-out .58s forwards; }
@keyframes emw-reveal {
  0% { opacity: 0; transform: translateY(10px); clip-path: inset(0 0 100% 0); filter: blur(6px); }
  55% { opacity: .9; }
  100% { opacity: 1; transform: none; clip-path: inset(0 0 0 0); filter: none; }
}
.virtual-intro h1 em {
  color: #a9fff5;
  text-shadow: 0 0 10px rgba(110,243,255,.32), 0 0 24px rgba(119,143,255,.12);
}
body.still .virtual-intro .eyebrow,
body.still .virtual-intro h1,
body.still .virtual-intro .intro-reading > p,
body.still .virtual-intro .hero-price,
body.still .virtual-intro .hero-actions {
  opacity: 1;
  transform: none;
  clip-path: none;
  filter: none;
}
@media (prefers-reduced-motion: reduce) {
  .virtual-intro .eyebrow,
  .virtual-intro h1,
  .virtual-intro .intro-reading > p,
  .virtual-intro .hero-price,
  .virtual-intro .hero-actions {
    opacity: 1;
    transform: none;
    clip-path: none;
    filter: none;
  }
}

.virtual-dock {
  background:
    linear-gradient(180deg, rgba(8,28,56,.74), rgba(6,22,45,.66)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 12px);
  background-size: 100% 100%, 180% 100%;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), inset 0 0 0 1px rgba(118,234,255,.04), 0 0 20px rgba(96,225,255,.10), 0 16px 44px rgba(0,6,18,.34);
  filter: brightness(var(--embassy-interface-boost));
  animation: emw-dock-shimmer 12s linear infinite;
}
.virtual-dock::before {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.06), transparent 35%), radial-gradient(circle at 50% 0%, rgba(158,252,255,.12), transparent 45%);
  opacity: .9;
}
.virtual-dock button { z-index: 1; transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease; }
.virtual-dock button[aria-pressed=true] {
  background: linear-gradient(180deg, rgba(126,237,255,.16), rgba(126,237,255,.06));
  border-color: rgba(177,239,255,.76);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 18px rgba(103,224,255,.20), 0 0 28px rgba(118,130,255,.14);
}
.virtual-dock button[aria-pressed=true] svg { filter: drop-shadow(0 0 7px rgba(126,244,255,.62)) drop-shadow(0 0 15px rgba(118,132,255,.20)); }
.virtual-dock button:hover { transform: translateY(-1px); }
@keyframes emw-dock-shimmer { from { background-position: 0 0, 0 0; } to { background-position: 0 0, 180% 0; } }

/* Dock accents: keep the plan's cyan/blue/violet language while giving each
   module a readable identity. The accents live on the icon first, so labels
   stay calm and the six controls do not collapse into one pale strip. */
.virtual-dock button[data-view="worlds"] { --dock-accent: #9efcff; }
.virtual-dock button[data-view="homes"] { --dock-accent: #82c9ff; }
.virtual-dock button[data-view="tech"] { --dock-accent: #c2a8ff; }
.virtual-dock button[data-view="location"] { --dock-accent: #8fffe1; }
.virtual-dock button[data-view="contact"] { --dock-accent: #e2b1ff; }
.virtual-dock button[data-view="map"] { --dock-accent: #a9bcff; }
.virtual-dock button svg {
  color: var(--dock-accent, #bfeeff);
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--dock-accent, #bfeeff) 58%, transparent));
  transition: color .18s ease, filter .18s ease, transform .18s ease;
}
.virtual-dock button span { color: color-mix(in srgb, var(--dock-accent, #cde6f7) 62%, #cde6f7); }
.virtual-dock button[aria-pressed=true] {
  color: var(--dock-accent, #ecffff);
  border-color: color-mix(in srgb, var(--dock-accent, #b1efff) 72%, white 18%);
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--dock-accent, #7eedff) 19%, transparent),
    color-mix(in srgb, var(--dock-accent, #7eedff) 7%, transparent));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    0 0 18px color-mix(in srgb, var(--dock-accent, #67e0ff) 30%, transparent),
    0 0 28px rgba(118,130,255,.14);
}
.virtual-dock button[aria-pressed=true] svg {
  filter:
    drop-shadow(0 0 7px color-mix(in srgb, var(--dock-accent, #7ef4ff) 78%, white 8%))
    drop-shadow(0 0 16px color-mix(in srgb, var(--dock-accent, #7684ff) 28%, transparent));
}
body:not(.still) .virtual-dock button svg {
  animation: emw-dock-icon-breathe 4.8s ease-in-out infinite;
}
body:not(.still) .virtual-dock button:nth-child(2) svg { animation-delay: -.8s; }
body:not(.still) .virtual-dock button:nth-child(3) svg { animation-delay: -1.6s; }
body:not(.still) .virtual-dock button:nth-child(4) svg { animation-delay: -2.4s; }
body:not(.still) .virtual-dock button:nth-child(5) svg { animation-delay: -3.2s; }
body:not(.still) .virtual-dock button:nth-child(6) svg { animation-delay: -4s; }
@keyframes emw-dock-icon-breathe {
  0%, 100% { opacity: .82; transform: translateY(0) scale(1); }
  50% { opacity: 1; transform: translateY(-1px) scale(1.045); }
}
@media (prefers-reduced-motion: reduce) {
  body:not(.still) .virtual-dock button svg { animation: none !important; }
}

/* Idle pulse from the plan, kept on decorative overlays so the structural
   box-shadow and the slider-controlled glow remain intact. */
.virtual-dock::after,
.virtual-settings::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  border-radius: inherit;
  background:
    linear-gradient(180deg, rgba(255,255,255,.045), transparent 22%),
    repeating-linear-gradient(180deg, rgba(255,255,255,.018) 0 1px, transparent 1px 10px);
  opacity: .56;
  animation: emw-idle-pulse 6.8s ease-in-out infinite;
}
.virtual-settings > * { position: relative; z-index: 1; }
.virtual-window::before { animation: emw-idle-pulse 6.8s ease-in-out infinite; }
@keyframes emw-idle-pulse {
  0%, 100% { opacity: .48; }
  50% { opacity: .92; }
}

.virtual-settings {
  background-image:
    linear-gradient(180deg, rgba(255,255,255,.04), transparent 18%),
    repeating-linear-gradient(180deg, rgba(255,255,255,.022) 0 1px, transparent 1px 10px),
    linear-gradient(180deg, rgba(8,24,48,.92), rgba(7,20,40,.88));
  border-color: rgba(177,234,255,.56);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 0 24px rgba(92,220,255,.16), 0 18px 56px rgba(1,5,12,.58);
  backdrop-filter: blur(18px) saturate(145%);
  -webkit-backdrop-filter: blur(18px) saturate(145%);
  filter: brightness(var(--embassy-interface-boost));
}
.settings-heading { padding-bottom: 10px; border-bottom: 1px solid rgba(201,230,255,.14); }
.settings-field input[type=range]::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: linear-gradient(90deg, rgba(158,252,255,.58), rgba(105,182,255,.22)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.10), 0 0 10px rgba(111,236,255,.08); }
.settings-field input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; inline-size: 18px; block-size: 18px; margin-top: -6px; border-radius: 50%; border: 1px solid rgba(220,255,255,.78); background: radial-gradient(circle at 35% 35%, #fff, #9efcff 62%); box-shadow: 0 0 10px rgba(137,244,255,.55), 0 0 22px rgba(70,125,255,.25); }
.settings-field input[type=range]::-moz-range-track { height: 6px; border-radius: 999px; background: linear-gradient(90deg, rgba(158,252,255,.58), rgba(105,182,255,.22)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.10), 0 0 10px rgba(111,236,255,.08); }
.settings-field input[type=range]::-moz-range-thumb { inline-size: 18px; block-size: 18px; border-radius: 50%; border: 1px solid rgba(220,255,255,.78); background: #9efcff; box-shadow: 0 0 10px rgba(137,244,255,.55), 0 0 22px rgba(70,125,255,.25); }
.settings-motion > i { box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 10px rgba(78,214,255,.12), 0 0 20px rgba(83,123,255,.08); }

.window-bar button, .window-foot button, .media-enlarge, .virtual-retry {
  background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.08), transparent 40%), linear-gradient(180deg, rgba(9,37,57,.88), rgba(7,28,50,.76));
  border-color: rgba(166,232,255,.34);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 12px rgba(83,209,255,.16), 0 0 24px rgba(95,124,255,.10);
}
.window-bar button:hover, .window-foot button:hover, .media-enlarge:hover, .virtual-retry:hover { border-color: rgba(178,255,255,.82); box-shadow: inset 0 1px 0 rgba(255,255,255,.11), 0 0 16px rgba(83,209,255,.30), 0 0 30px rgba(95,124,255,.16); }
.media-play .media-play-icon { inline-size: 20px; block-size: 20px; fill: var(--embassy-neon-cyan); filter: drop-shadow(0 0 6px rgba(137,244,255,.72)) drop-shadow(0 0 16px rgba(77,142,255,.24)); }

@media (prefers-reduced-motion: reduce) {
  .virtual-dock, .virtual-window, .virtual-settings { animation: none !important; }
  body.still .virtual-window.is-pulsing::after { animation: none !important; }
}

/* Floor-plan beacons stay legible at rest and pulse one after another when
   motion is enabled. This layer is decorative and does not affect geometry. */
.virtual-content .holo-point {
  --point-color: #8fffee;
  background: radial-gradient(circle at 42% 35%, rgba(143,255,238,.3), rgba(8,37,54,.94) 68%);
  border-color: color-mix(in srgb, var(--point-color) 78%, white);
  color: var(--point-color);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--point-color) 18%, transparent),
    0 0 16px 3px color-mix(in srgb, var(--point-color) 68%, transparent),
    0 0 34px color-mix(in srgb, var(--point-color) 35%, transparent);
}
.virtual-content .holo-point::before {
  border-color: color-mix(in srgb, var(--point-color) 70%, transparent);
  box-shadow: 0 0 12px color-mix(in srgb, var(--point-color) 48%, transparent);
}
.virtual-content .holo-point:nth-of-type(1) { --point-color: #9efcff; }
.virtual-content .holo-point:nth-of-type(2) { --point-color: #bba7ff; }
.virtual-content .holo-point:nth-of-type(3) { --point-color: #78c8ff; }
.virtual-content .holo-point:nth-of-type(4) { --point-color: #ffb7ee; }
.virtual-content .holo-point:nth-of-type(5) { --point-color: #ffd58a; }
.virtual-content .holo-point:nth-of-type(6) { --point-color: #a7ffbe; }
body:not(.still) .virtual-content .holo-point { animation: emw-point-blink 2.8s ease-in-out infinite; }
body:not(.still) .virtual-content .holo-point:nth-of-type(1) { animation-delay: .0s; }
body:not(.still) .virtual-content .holo-point:nth-of-type(2) { animation-delay: .45s; }
body:not(.still) .virtual-content .holo-point:nth-of-type(3) { animation-delay: .9s; }
body:not(.still) .virtual-content .holo-point:nth-of-type(4) { animation-delay: 1.35s; }
body:not(.still) .virtual-content .holo-point:nth-of-type(5) { animation-delay: 1.8s; }
body:not(.still) .virtual-content .holo-point:nth-of-type(6) { animation-delay: 2.25s; }
@keyframes emw-point-blink {
  0%, 100% { box-shadow: 0 0 0 4px color-mix(in srgb, var(--point-color) 18%, transparent), 0 0 16px 3px color-mix(in srgb, var(--point-color) 68%, transparent), 0 0 34px color-mix(in srgb, var(--point-color) 35%, transparent); }
  50% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--point-color) 24%, transparent), 0 0 25px 7px color-mix(in srgb, var(--point-color) 88%, transparent), 0 0 52px color-mix(in srgb, var(--point-color) 52%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  .virtual-content .holo-point { animation: none !important; }
}
