/* Christine Chan · site v10 ("video panel" world: white reading ground, charcoal proof panels, gold numerals) */
:root{--bg:#fff;--tint:#F2F4F4;--tint-2:#E9ECEC;--panel:#141A1C;--panel-2:#1D2528;--ink:#0E1416;--text:#2B3538;--muted:#5C676B;
--line:rgba(14,20,22,.1);--line-2:rgba(14,20,22,.18);--line-d:rgba(255,255,255,.13);--gold:#C9A96E;--gold-t:#E6CE98;--gold-dim:rgba(201,169,110,.16);--gold-ink:#7E6236;--ok:#5F8F72;
--on-dark:#F4F6F6;--on-dark-2:#B4BEC1;--display:"Sora","Noto Sans TC",system-ui,sans-serif;--body:"Hanken Grotesk","Noto Sans TC",system-ui,sans-serif;
--r:14px;--r-s:10px;--ease:cubic-bezier(.22,.61,.36,1);--wrap:1200px;--hdr:76px;--sel:rgba(201,169,110,.35)}
*{box-sizing:border-box;margin:0}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 16px);-webkit-text-size-adjust:100%}
body{font:400 17px/1.6 var(--body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;font-optical-sizing:auto}
html[lang=zh-Hant] body{line-height:1.75}
img,video{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}ul,ol{padding:0;list-style:none}button{font:inherit;color:inherit}
::selection{background:var(--sel);color:var(--ink)}.dark ::selection,.panel ::selection{background:var(--gold);color:var(--ink)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.wrap{width:min(var(--wrap),100% - 48px);margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px;z-index:99}.skip:focus{left:8px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* ---------- type ---------- */
h1,.h2,h2,h3,.h3{font-family:var(--display);color:var(--ink);text-wrap:balance}
h1{font-size:clamp(42px,5.4vw,76px);line-height:1.04;font-weight:800;letter-spacing:-.035em}
.h2,h2{font-size:clamp(30px,3.3vw,46px);line-height:1.1;font-weight:700;letter-spacing:-.03em}
h3,.h3{font-size:22px;line-height:1.25;font-weight:600;letter-spacing:-.01em}
html[lang=zh-Hant] h1{font-size:clamp(36px,4.6vw,62px);line-height:1.2;letter-spacing:0;font-weight:700}
html[lang=zh-Hant] .h2,html[lang=zh-Hant] h2{font-size:clamp(28px,2.9vw,40px);line-height:1.25;letter-spacing:0;font-weight:700}
html[lang=zh-Hant] h3{letter-spacing:0;font-weight:700}
p,li{text-wrap:pretty}
.lead{font-size:clamp(17px,1.35vw,20px);line-height:1.6;max-width:62ch;color:var(--text)}
.sub{font-size:16px;color:var(--muted);max-width:60ch}
.sec-head{display:grid;justify-items:center;text-align:center;gap:14px;margin-bottom:48px}.sec-head>div{display:grid;justify-items:center;gap:12px}.sec-head .sub{max-width:62ch}
.sec-head .sub{margin-top:10px}
.sec{padding-block:clamp(64px,8vw,104px)}.sec+.sec,.sec+.contact,.sec+.panel,.panel+.sec,.trust+.sec{border-top:1px solid var(--line)}
.src{font-size:13px;color:var(--muted);margin-top:28px;line-height:1.5}.src b{color:var(--ink);font-weight:600;margin-right:6px}
.more{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink);font-size:15.5px;padding-bottom:2px;border-bottom:1.5px solid var(--gold);transition:gap .25s var(--ease),border-color .25s}
.more:hover{gap:12px;border-color:var(--ink)}.dark .more,.panel .more{color:var(--gold-t);border-color:rgba(201,169,110,.5)}.dark .more:hover,.panel .more:hover{border-color:var(--gold-t)}
.arr{display:inline-block;width:16px;height:16px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h10M9 4l4 4-4 4'/%3E%3C/svg%3E") center/contain no-repeat;transition:transform .3s var(--ease)}
a:hover>.arr,a:hover .arr,button:hover .arr{transform:translateX(4px)}
.num{font-family:var(--display);font-weight:600;color:var(--gold-ink);font-variant-numeric:tabular-nums}
.ticks{display:grid;gap:10px;margin-block:18px}
.ticks li{position:relative;padding-left:26px;font-size:16px;line-height:1.5}
.ticks li::before{content:"";position:absolute;left:0;top:6px;width:14px;height:9px;border:solid var(--gold);border-width:0 0 2px 2px;transform:rotate(-45deg)}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:0 24px;border-radius:999px;background:var(--ink);color:#fff;font-size:16px;font-weight:600;border:1.5px solid var(--ink);white-space:nowrap;cursor:pointer;transition:background .25s,color .25s,border-color .25s,transform .25s var(--ease),box-shadow .25s}
.btn:hover{background:var(--panel-2);border-color:var(--panel-2);transform:translateY(-2px);box-shadow:0 10px 24px -12px rgba(14,20,22,.5)}
.btn.ghost{background:transparent;color:var(--ink)}.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.light{background:#fff;color:var(--ink);border-color:#fff}.btn.light:hover{background:var(--gold-t);border-color:var(--gold-t);color:var(--ink)}
.btn.outline{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}.btn.outline:hover{background:#fff;color:var(--ink);border-color:#fff}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.ico{width:18px;height:18px;flex:none}

/* ---------- header ---------- */
.hdr{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:50;width:min(calc(var(--wrap) + 40px),calc(100% - 32px));height:62px;display:flex;align-items:center;gap:10px;padding:0 10px 0 22px;border-radius:999px;
  background:linear-gradient(135deg,rgba(255,255,255,.62),rgba(255,255,255,.38) 55%,rgba(255,255,255,.5));backdrop-filter:blur(30px) saturate(1.9) brightness(1.06);-webkit-backdrop-filter:blur(30px) saturate(1.9) brightness(1.06);border:0;box-shadow:0 24px 60px -28px rgba(14,20,22,.55),0 2px 6px -2px rgba(14,20,22,.12),0 1px 0 rgba(255,255,255,.9) inset,0 -1px 0 rgba(14,20,22,.06) inset,0 0 0 .5px rgba(14,20,22,.06);
  transition:width .5s var(--ease),top .4s var(--ease),height .4s var(--ease),box-shadow .3s;will-change:width}
.hdr.scrolled{width:min(920px,calc(100% - 32px));top:10px;height:56px;box-shadow:0 26px 60px -26px rgba(14,20,22,.6),0 2px 6px -2px rgba(14,20,22,.14),0 1px 0 rgba(255,255,255,.9) inset,0 -1px 0 rgba(14,20,22,.06) inset,0 0 0 .5px rgba(14,20,22,.08)}
.hdr::before,.hdr::after,.bubble::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none}
.hdr::before,.bubble::after{padding:1.5px;background:linear-gradient(135deg,rgba(255,255,255,.95),rgba(255,255,255,.25) 35%,rgba(255,255,255,.1) 60%,rgba(201,169,110,.6));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude}
.hdr::after{background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.12) 45%,transparent 50%);mix-blend-mode:soft-light}
.hdr>*{position:relative;z-index:1}
.hdr.scrolled .logo small{display:none}
.logo{display:flex;flex-direction:column;gap:1px;flex:1 1 0;color:var(--ink);line-height:1.1}
.hdr-right{display:flex;gap:10px;flex:1 1 0;justify-content:flex-end}
.logo b{font:700 18px/1.1 var(--display);letter-spacing:-.02em}.logo small{font-size:12.5px;color:var(--muted);letter-spacing:.01em}
.menu-btn,.lang,.hdr-call{display:inline-flex;align-items:center;gap:9px;height:40px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.9);background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.4));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 -1px 0 rgba(14,20,22,.05) inset,0 4px 12px -6px rgba(14,20,22,.25);font-size:14.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .25s,border-color .25s,color .25s,box-shadow .25s}
.menu-btn:hover,.lang:hover{border-color:#fff;background:rgba(255,255,255,.85);box-shadow:0 1px 0 #fff inset,0 8px 18px -8px rgba(14,20,22,.35)}
.hdr-call{background:linear-gradient(180deg,#232C2F,var(--ink));color:#fff;border-color:rgba(255,255,255,.18);box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 18px -8px rgba(14,20,22,.6)}.hdr-call:hover{background:var(--panel-2)}
.hdr-call .ico{width:16px;height:16px}
.lines{position:relative;width:16px;height:12px}.lines::before,.lines::after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;border-radius:2px;transition:transform .3s var(--ease),box-shadow .2s}
.lines::before{top:0;box-shadow:0 5px 0 currentColor}.lines::after{bottom:0}
.menu-btn[aria-expanded=true] .lines::before{transform:translateY(5px) rotate(45deg);box-shadow:none}.menu-btn[aria-expanded=true] .lines::after{transform:translateY(-5px) rotate(-45deg)}
.dd{position:relative}
.dd-menu{position:absolute;top:calc(100% + 10px);background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:0 24px 60px -24px rgba(14,20,22,.35),0 2px 6px rgba(14,20,22,.06);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s .22s;z-index:60}
.dd>button[aria-expanded=true]+.dd-menu{opacity:1;visibility:visible;transform:none;transition:opacity .22s var(--ease),transform .22s var(--ease),visibility 0s}
.menu-dd{position:static;flex:0 0 auto}.bubble{left:0;right:0;width:auto;max-width:980px;margin-inline:auto;padding:8px;top:calc(100% + 10px);border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.88),rgba(255,255,255,.78));backdrop-filter:blur(30px) saturate(1.8);-webkit-backdrop-filter:blur(30px) saturate(1.8);border:0;box-shadow:0 30px 70px -30px rgba(14,20,22,.55),0 1px 0 rgba(255,255,255,.95) inset}
.bubble::before{content:"";position:absolute;top:-7px;left:50%;width:14px;height:14px;background:rgba(255,255,255,.92);border-left:1px solid rgba(255,255,255,.95);border-top:1px solid rgba(255,255,255,.95);transform:translateX(-50%) rotate(45deg)}
.b-cols{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:8px;padding:12px}
.b-col{display:grid;align-content:start;gap:2px;padding:8px 12px}
.b-col+.b-col{border-left:1px solid var(--line)}
.b-col p{font-size:12.5px;font-weight:600;color:var(--muted);padding:4px 10px 8px}
.b-col a{display:flex;align-items:center;gap:12px;padding:9px 10px;border-radius:var(--r-s);font-size:15.5px;color:var(--ink);transition:background .2s}
.b-main a{font:600 22px/1.2 var(--display);padding:10px}html[lang=zh-Hant] .b-main a{font:700 19px/1.3 var(--display)}
.b-col a:hover{background:var(--tint)}
.b-col a[aria-current]{background:var(--tint)}.b-col a[aria-current]::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold);margin-left:auto}
.b-col .num{font-size:13px;width:22px}
.b-area img{width:40px;height:40px;border-radius:8px;object-fit:cover}
.b-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-top:1px solid var(--line);font-weight:600;font-size:15px}
.lang-dd .lang-menu{right:0;min-width:240px;padding:6px}
.lang-menu a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-s);color:var(--ink)}.lang-menu a:hover{background:var(--tint)}
.lang-menu a[aria-current]{background:var(--tint)}
.ln-code{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:var(--panel);color:var(--gold-t);font:700 13px var(--display)}
.ln-t{display:grid;line-height:1.2}.ln-t b{font-size:15px;font-weight:600}.ln-t small{font-size:12.5px;color:var(--muted)}
.ln-check{margin-left:auto;width:16px;height:16px;opacity:0}a[aria-current] .ln-check{opacity:1;background:var(--gold);mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8.5l3.5 3.5L13 4.5'/%3E%3C/svg%3E") center/contain no-repeat}
.burger{display:none}.nav{display:none}
.progress{position:fixed;top:0;left:0;height:2px;width:100%;background:var(--gold);transform-origin:0 50%;transform:scaleX(0);z-index:70;pointer-events:none}

/* ---------- hero (video) ---------- */
.hero{position:relative;overflow:hidden;background:var(--panel);color:var(--on-dark);min-height:min(100svh,860px);display:flex;align-items:center;padding-top:var(--hdr)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media video,.hero-media img{width:100%;height:100%;object-fit:cover;opacity:.9}
.hero-media::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 80% at 50% 45%,rgba(14,20,22,.86),rgba(14,20,22,.62) 60%,rgba(14,20,22,.4) 100%),linear-gradient(0deg,rgba(14,20,22,.6),transparent 40%)}
.hero-in{position:relative;z-index:1;display:grid;justify-items:center;text-align:center;gap:36px;padding-block:clamp(56px,7vw,96px)}.hero-copy{display:grid;justify-items:center}
.who{font-size:15.5px;font-weight:500;color:var(--gold-t);margin:-8px 0 20px}
.hero h1{color:#fff;max-width:16ch;margin-bottom:22px}html[lang=zh-Hant] .hero h1{max-width:16ch}
.hero .lead{color:#D9E0E2;max-width:56ch;margin-bottom:32px}
.doors{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.doors .btn{min-height:54px;padding-inline:26px;font-size:16.5px}
.acts{display:flex;gap:28px;flex-wrap:wrap;justify-content:center;margin-top:28px;font-size:15.5px;font-weight:600}
.acts a,.acts button{display:inline-flex;align-items:center;gap:9px;color:#fff;background:none;border:0;padding:0 0 3px;cursor:pointer;border-bottom:1.5px solid rgba(255,255,255,.35);transition:border-color .25s}
.acts a:hover,.acts button:hover{border-color:var(--gold-t)}
.acts .ico{color:var(--gold-t)}
.acts small{font-weight:400;color:var(--on-dark-2);margin-left:4px}
.hero-card{display:flex;align-items:center;gap:14px;padding:8px 18px 8px 8px;width:auto;border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:var(--r);overflow:hidden;background:var(--panel-2);box-shadow:0 40px 80px -30px rgba(0,0,0,.6);animation:rise .9s var(--ease) both;animation-delay:.2s}
.hero-card img{width:56px;height:56px;border-radius:999px;object-fit:cover}
.hero-cap{display:grid;gap:2px;text-align:left}
.hero-cap b{font:600 15px var(--display);color:#fff}.hero-cap span{font-size:13.5px;color:var(--on-dark-2)}
.hero-copy>*{animation:rise .8s var(--ease) both}.hero-copy>:nth-child(2){animation-delay:.08s}.hero-copy>:nth-child(3){animation-delay:.16s}.hero-copy>:nth-child(4){animation-delay:.24s}.hero-copy>:nth-child(5){animation-delay:.32s}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* ---------- trust strip ---------- */
.trust{border-bottom:1px solid var(--line)}
.trust-in{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-in>div{padding:26px 24px;display:grid;gap:4px;justify-items:center;text-align:center;border-right:1px solid var(--line)}
.trust-in>div:last-child{border-right:0}
.trust b{font:600 22px/1.15 var(--display);color:var(--ink);letter-spacing:-.01em;text-wrap:balance}html[lang=zh-Hant] .trust b{font-weight:700;font-size:21px}
.trust span{font-size:14px;color:var(--muted)}

/* ---------- service doors ---------- */
.doors-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.door{display:grid;grid-template-rows:auto 1fr;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.door:hover{transform:translateY(-4px);box-shadow:0 26px 48px -28px rgba(14,20,22,.45)}
.door img{width:100%;aspect-ratio:24/11;object-fit:cover}
.door-b{display:grid;gap:8px;padding:22px 20px 24px;align-content:start;justify-items:center;text-align:center}
.door-b b{font:600 21px/1.2 var(--display)}html[lang=zh-Hant] .door-b b{font-weight:700;font-size:19px}
.door-b span{font-size:15px;color:var(--muted);line-height:1.5}
.door-b .more{margin-top:6px}

/* ---------- market panel ---------- */
.panel{position:relative;background:radial-gradient(60% 50% at 50% 0%,rgba(201,169,110,.22),transparent 70%),radial-gradient(40% 40% at 90% 100%,rgba(201,169,110,.1),transparent 70%),var(--panel);color:var(--on-dark)}
.panel .h2,.panel h2,.panel h3{color:#fff}.panel .sub{color:var(--on-dark-2)}
.pulse-in{display:grid;grid-template-columns:1.4fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}.pulse-card{padding:28px;border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(255,255,255,.12) inset,0 40px 80px -40px rgba(0,0,0,.6)}
.pulse-in.solo{grid-template-columns:1fr}
.pz-row{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);margin-bottom:28px;position:relative}
.pz{position:relative;background:none;border:0;padding:10px 18px;border-radius:999px;font-size:14.5px;font-weight:600;color:var(--on-dark-2);cursor:pointer;transition:color .25s,background .25s}
.pz:hover{color:#fff}.pz.on{color:var(--ink);background:var(--gold-t)}

.pt-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.pt{min-width:0;padding:18px 18px 20px;border-radius:14px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);display:grid;gap:6px;align-content:start}.pt.big{background:linear-gradient(160deg,rgba(201,169,110,.22),rgba(201,169,110,.06));border-color:rgba(201,169,110,.35)}
.pt.big{grid-column:span 2}
.pt b{font:700 clamp(22px,1.9vw,30px)/1.05 var(--display);color:var(--gold-t);letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:clip}
.pt.big b{font-size:clamp(36px,3.6vw,54px);color:#fff}
.pt span{font-size:14px;color:var(--on-dark-2)}
.pt em{font-style:normal;font-size:13px;font-weight:600;color:#fff;display:block;min-height:1.3em}
.pulse .src{color:var(--on-dark-2)}
.pulse-read h3{margin-bottom:8px}
.pulse-read ul{display:grid;margin:0 0 24px}
.pulse-read li{padding:16px 0;border-bottom:1px solid var(--line-d);display:grid;gap:4px;font-size:15.5px;line-height:1.55;color:var(--on-dark-2)}
.pulse-read li b{color:#fff;font-weight:600;font-size:16.5px}.pulse-read li::before{content:"";display:block;width:28px;height:2px;background:var(--gold);margin-bottom:8px}
.pulse-links{display:grid;gap:12px;justify-items:start}
.bars h3{font-size:15px;font-family:var(--body);color:var(--ink);margin-bottom:16px}
.bars ul{display:grid;gap:10px}
.bars li{display:grid;grid-template-columns:130px 1fr 110px;gap:14px;align-items:center;font-size:15px}
.bars li i{height:12px;border-radius:999px;background:var(--tint-2);width:var(--w);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--ease)}
.bars.in li i{transform:scaleX(1)}
.bars li.hi span,.bars li.hi b{color:var(--ink);font-weight:700}.bars li.hi i{background:var(--gold)}
.bars li b{text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}

/* ---------- condo hotspots (tap a point on the photo) ---------- */
.condo-in{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:center}.condo-t{padding:40px 36px;border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.09),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(10px);text-align:center;display:grid;justify-items:center}
.condo .lead{color:#D9E0E2;margin:18px 0 30px;max-width:40ch}
.hotspots{position:relative;border-radius:var(--r)}.hotspots>img{width:100%;border-radius:var(--r);display:block;box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
.pin{position:absolute;width:30px;height:30px;transform:translate(-50%,-50%);border:0;background:none;padding:0;cursor:pointer}
.pin .dot{position:absolute;inset:0;border-radius:50%;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.3);transition:transform .3s var(--ease)}
.pin .dot::after{content:"+";position:absolute;inset:0;display:grid;place-items:center;font:600 20px/1 var(--body);color:var(--gold-ink);transition:transform .3s var(--ease)}
.pin:hover .dot,.pin[aria-expanded=true] .dot{transform:scale(1.15)}.pin[aria-expanded=true] .dot::after{transform:rotate(45deg)}
.pin .tip{position:absolute;left:40px;top:-6px;width:220px;padding:14px 16px;border-radius:var(--r-s);background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text);font:15px/1.45 var(--body);text-align:left;box-shadow:0 20px 40px -18px rgba(0,0,0,.5);opacity:0;visibility:hidden;transform:translateY(6px);transition:.25s var(--ease);z-index:3}
.pin .tip b{display:block;color:var(--ink);font-weight:600;font-size:16px;margin-bottom:2px}
.pin:hover .tip,.pin[aria-expanded=true] .tip,.pin:focus-visible .tip{opacity:1;visibility:visible;transform:none}
.pin[style*="left:84"] .tip,.pin[style*="left:70"] .tip{left:auto;right:40px}
@media(max-width:1000px){.condo-in{grid-template-columns:1fr}}
@media(max-width:760px){.hotspots{margin-inline:-16px}.hotspots>img{border-radius:0}.pin .tip{width:190px}.pin[style*="left:30"] .tip{left:-60px;top:40px}.pin[style*="left:12"] .tip{left:-4px;top:40px}}

/* ---------- cards: videos + tours ---------- */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.cards.center{justify-content:center}
.card{display:grid;grid-template-rows:auto 1fr;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:0 26px 48px -28px rgba(14,20,22,.45)}
.thumb{position:relative;display:block;background:var(--panel)}
.thumb img{width:100%;aspect-ratio:9/16;object-fit:cover}
.play{position:absolute;right:12px;bottom:12px;width:42px;height:42px;border-radius:50%;background:#fff;display:grid;place-items:center}
.play::after{content:"";margin-left:3px;border-style:solid;border-width:7px 0 7px 11px;border-color:transparent transparent transparent var(--ink)}
.card-b{display:grid;gap:6px;padding:16px 18px 20px;align-content:start}
.card-b small{font-size:13px;font-weight:600;color:var(--gold-ink);order:1}.card-b>span{order:2}
.card-b b{font:600 17px/1.3 var(--display)}html[lang=zh-Hant] .card-b b{font-weight:700}
.card-b span{font-size:14.5px;color:var(--muted);line-height:1.5}
.tours{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.tour{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line);color:var(--ink);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.tours .tour:hover{transform:translateY(-4px);box-shadow:0 26px 48px -28px rgba(14,20,22,.45)}
.tour .thumb img,.tour .thumb video{aspect-ratio:3/4;height:100%;width:100%;object-fit:cover;display:block}
.tour-b{display:grid;gap:8px;padding:22px;align-content:start}
.tour-b .price{font:600 26px/1 var(--display);color:var(--ink);letter-spacing:-.02em}
.tour-b .price small{font:500 13px var(--body);color:var(--muted);margin-left:8px;letter-spacing:0}
.tour-b b{font:600 18px/1.3 var(--display)}.tour-b .spec{font-size:14px;color:var(--muted)}
.tour-b .more{margin-top:8px;justify-self:start}
.tour-b .where{font-size:13.5px;font-weight:600;color:var(--gold-ink)}

/* ---------- listings (sample layout until hers arrive) ---------- */
.listings{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.lst-b{text-align:center;justify-items:center}
.lst{border-radius:var(--r);overflow:hidden;background:#fff;border:1px solid var(--line)}
.lst .thumb img{aspect-ratio:24/11}
.lst .tag{position:absolute;left:12px;top:12px;padding:5px 10px;border-radius:999px;background:rgba(14,20,22,.78);color:var(--gold-t);font:600 12.5px var(--body);font-style:normal}
.lst-b{display:grid;gap:4px;padding:16px 18px 18px}.lst-b b{font:600 17px/1.3 var(--display);color:var(--ink)}.lst-b span{font-size:14.5px;color:var(--muted)}
/* ---------- portfolio: centre-stage video carousel (focused video centred, next ones queued to the right) ---------- */
.port{position:relative;overflow:hidden;overflow-x:clip;contain:paint}
.port-sticky{display:grid;gap:28px;padding-block:clamp(64px,8vw,104px)}
.port-head{display:grid;justify-items:center;text-align:center;gap:12px}
.port-head .h2{font-size:clamp(36px,4.6vw,66px)}
.port-count{font:700 clamp(44px,6vw,88px)/1 var(--display);color:var(--gold);letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.port-stage{position:relative;height:min(72vh,640px);overflow:hidden;perspective:1200px;clip-path:inset(0)}
.vt{position:absolute;left:50%;top:50%;width:var(--vtw);aspect-ratio:9/16;border-radius:var(--r);overflow:hidden;background:var(--panel);color:#fff;isolation:isolate;cursor:pointer;border:0;padding:0;
  transform:translate(-50%,-50%) translateX(var(--x,0px)) scale(var(--s,1));opacity:var(--o,1);filter:grayscale(var(--g,0)) brightness(var(--b,1));transition:transform .65s var(--ease),opacity .45s var(--ease),filter .6s var(--ease);z-index:var(--z,1);box-shadow:0 40px 80px -36px rgba(0,0,0,.7)}
.vt img,.vt video{width:100%;height:100%;object-fit:cover;display:block}
.vt.is-on{--x:0px;--s:1;--o:1;--g:0;--b:1;--z:5}
.vt.is-next{--x:calc(var(--vtw) * .86);--s:.82;--o:.85;--g:.9;--b:.7;--z:4}
.vt.is-next2{--x:calc(var(--vtw) * 1.5);--s:.68;--o:.5;--g:1;--b:.6;--z:3}
.vt.is-prev{--x:calc(var(--vtw) * -1.1);--s:.8;--o:0;--g:1;--b:.7;--z:2;pointer-events:none}
.vt.is-far{--x:calc(var(--vtw) * 2.2);--s:.6;--o:0;--z:1;pointer-events:none}
.vt::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(14,20,22,.88) 0%,rgba(14,20,22,.35) 38%,transparent 60%)}
.vt-cap{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:20px;display:grid;gap:6px;text-align:left}
.vt-cap b{font:700 18px/1.25 var(--display)}.vt-cap small{font-size:12.5px;font-weight:600;color:var(--gold-t)}
.vt-cap i{font-style:normal;font:700 20px/1 var(--display);color:var(--gold-t)}
.vt .play{right:14px;top:14px;bottom:auto;width:38px;height:38px;z-index:1}
.vt-read{position:absolute;right:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 14px;border-radius:999px;background:#fff;color:var(--ink);font:600 13.5px var(--body);opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s var(--ease)}
.vt.is-on .vt-read{opacity:1;transform:none}
.port-nav{display:flex;justify-content:center;align-items:center;gap:14px}
.port-dots{display:flex;gap:6px}.port-dots i{width:8px;height:8px;border-radius:999px;background:var(--line-2);transition:background .3s,transform .3s}.port-dots i.on{background:var(--gold);transform:scale(1.25)}
.port-arrow{width:44px;height:44px;border-radius:999px;border:1px solid var(--line-2);background:#fff;display:grid;place-items:center;cursor:pointer;transition:border-color .25s}.port-arrow:hover{border-color:var(--ink)}.port-arrow .arr{transition:none}.port-arrow.prev .arr{transform:rotate(180deg)}
.port-bar{height:2px;background:var(--line);width:min(480px,80%);margin-inline:auto}.port-bar i{display:block;height:100%;width:var(--w,12.5%);background:var(--gold);transition:width .5s var(--ease)}

/* ---------- reviews (sample until real ones arrive) ---------- */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.review{display:grid;gap:18px;padding:28px;border-radius:var(--r);background:#fff;border:1px solid var(--line);align-content:start}
.review q{font:500 19px/1.45 var(--display);color:var(--ink);quotes:"\201C" "\201D"}html[lang=zh-Hant] .review q{font-size:17px;line-height:1.6}
.review q::before{color:var(--gold)}
.review footer{display:grid;gap:2px;font-size:14px;color:var(--muted)}.review footer b{color:var(--ink);font-weight:600}
.stars{display:flex;gap:3px;color:var(--gold)}.stars i{width:15px;height:15px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.5l2.9 6 6.6.9-4.8 4.6 1.2 6.5L12 17.4l-5.9 3.1 1.2-6.5L2.5 9.4l6.6-.9z'/%3E%3C/svg%3E") center/contain no-repeat}
.sample{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);padding:6px 12px;border:1px dashed var(--line-2);border-radius:999px}

/* ---------- areas ---------- */
.area-map{display:grid;grid-template-columns:1.25fr 1fr;gap:28px;align-items:stretch}
.map{position:relative;min-height:480px;border-radius:var(--r);overflow:hidden;background:var(--tint-2) url(/assets/map/osm-z10.webp) center/cover;border:1px solid var(--line);box-shadow:0 30px 60px -36px rgba(14,20,22,.5)}
.map svg{display:none}.m-lake{fill:#D5DEE0}.m-road{fill:none;stroke:#fff;stroke-width:4}.m-road.thin{stroke-width:2}.m-txt{font:500 13px var(--body);fill:var(--muted)}.m-txt.sm{font-size:11px}
.map .leaflet-container{position:absolute;inset:0;font-family:var(--body)}
.map-pin{position:absolute;transform:translate(-50%,-50%);background:none;border:0;padding:0;cursor:pointer;z-index:500}
.mp-dot{display:block;width:18px;height:18px;border-radius:50%;background:var(--gold);border:4px solid #fff;box-shadow:0 2px 8px rgba(14,20,22,.35);transition:transform .25s var(--ease)}
.map-pin.on .mp-dot,.map-pin:hover .mp-dot{transform:scale(1.25)}
.mp-label{position:absolute;left:14px;bottom:14px;white-space:nowrap;background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px}
.map .leaflet-control-attribution{font-size:10px;margin:6px 10px;border-radius:6px}
.map-cards{display:grid;gap:12px;align-content:start}
.map-card{display:grid;grid-template-columns:96px 1fr;gap:16px;align-items:center;padding:12px;border-radius:var(--r);background:#fff;border:1px solid var(--line);color:var(--ink);transition:border-color .25s,transform .3s var(--ease)}
.map-card.on{border-color:var(--gold)}.map-card:hover{transform:translateX(4px)}
.mc-img img{width:96px;height:96px;border-radius:var(--r-s);object-fit:cover}
.map-card b{font:600 19px/1.2 var(--display)}.map-card .mc-sub{font-size:14px;color:var(--muted);line-height:1.45}
.map-card em{font-style:normal;font-size:14px;font-weight:600;color:var(--gold-ink);display:inline-flex;gap:6px;align-items:center;margin-top:4px}
.mc-t{display:grid;gap:2px}

/* ---------- about ---------- */
.about-in{display:grid;grid-template-columns:5fr 7fr;gap:clamp(32px,6vw,88px);align-items:start}
.about-art{position:sticky;top:calc(var(--hdr) + 32px);display:grid;gap:14px}
.about-art img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r)}
.about-art small{font-size:13px;color:var(--muted)}
.about-steps{margin:32px 0 28px;border-top:1px solid var(--line)}
.about-steps li{display:grid;grid-template-columns:48px 1fr;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);align-items:baseline}
.about-steps .num{font-size:20px}
.about-steps b{display:block;font:600 17.5px/1.3 var(--display);color:var(--ink);margin-bottom:2px}
.about-steps span:last-child{font-size:15.5px;color:var(--muted)}
.creds{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px}
.creds dt{font-size:13px;color:var(--muted);margin-bottom:3px}.creds dd{font-weight:600;color:var(--ink);font-size:16px}
.about-note{margin-top:14px;font-size:16px;color:var(--muted)}.about-note .more{margin-left:6px}

/* ---------- contact ---------- */
.contact{padding-block:clamp(64px,8vw,104px)}
.contact.dark{background:var(--panel);color:var(--on-dark)}.contact.dark h2{color:#fff}.contact.dark p{color:var(--on-dark-2)}
.contact-in{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(32px,6vw,88px);align-items:center}
.contact h2{margin-bottom:14px}.contact p{font-size:17px;max-width:40ch}
.channels{display:grid;border-top:1px solid var(--line)}.dark .channels{border-color:var(--line-d)}
.ch{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:16px;padding:16px 4px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:var(--ink);transition:background .25s;border-radius:0}
.dark .ch{border-bottom-color:var(--line-d);color:#fff}
.ch:hover{background:rgba(201,169,110,.08)}
.ch-i{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;background:var(--gold-dim);color:var(--gold-ink)}.dark .ch-i{color:var(--gold-t)}
.ch-t{display:grid;gap:2px;min-width:0}.ch b{font-size:13px;font-weight:600;color:var(--muted)}.dark .ch b{color:var(--on-dark-2)}
.ch-v{font:600 17px/1.3 var(--body);overflow-wrap:anywhere}
.ch small{font-size:13px;color:var(--muted)}.dark .ch small{color:var(--on-dark-2)}
.ch .arr{color:var(--muted);opacity:.7}.dark .ch .arr{color:var(--gold-t)}

/* ---------- footer ---------- */
.ftr{border-top:1px solid var(--line);padding-top:56px;font-size:15px;position:relative}
.ftr-head{display:grid;justify-items:center;text-align:center;gap:12px;padding-bottom:36px;border-bottom:1px solid var(--line)}
.ftr-name{font:700 28px/1.1 var(--display);color:var(--ink);letter-spacing:-.02em}
.ftr-sub{margin-top:8px;color:var(--muted);line-height:1.5}
.ftr-slogan{font:600 18px var(--display);color:var(--ink)}
.ftr-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1fr;gap:32px;padding-block:44px}
.ftr-blurb{color:var(--muted);line-height:1.6;max-width:36ch}
html .ftr-grid h2{font:600 15px var(--body);color:var(--ink);margin-bottom:14px;letter-spacing:0}
.ftr-grid a,.ftr-grid span{display:block;color:var(--text);padding:5px 0}.ftr-grid a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.ftr-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding:22px 0 28px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.ftr-social{display:flex;gap:10px;justify-content:center;padding-top:6px}.ftr-social a{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);font-size:14px;font-weight:600;color:var(--ink)}.ftr-social a:hover{border-color:var(--ink)}
.ftr-legal{display:grid;gap:4px}.ftr-note{font-size:13px}.ftr-privacy{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
.to-top{position:fixed;right:20px;bottom:20px;width:46px;height:46px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .3s,transform .3s var(--ease);z-index:40;box-shadow:0 10px 24px -10px rgba(14,20,22,.5)}
.to-top.show{opacity:1;transform:none;pointer-events:auto}

/* ---------- inner page hero ---------- */
.page-hero{position:relative;overflow:hidden;background:var(--panel);color:var(--on-dark);display:flex;align-items:flex-end;min-height:min(66vh,600px);padding:calc(var(--hdr) + 32px) 0 clamp(48px,6vw,80px)}
.page-hero.photo::before{content:"";position:absolute;inset:0;background:var(--bg) center/cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(14,20,22,.9) 0%,rgba(14,20,22,.65) 50%,rgba(14,20,22,.3) 100%),linear-gradient(0deg,rgba(14,20,22,.7),transparent 55%)}
.page-hero:not(.photo){min-height:0;padding-top:calc(var(--hdr) + 48px)}.page-hero:not(.photo)::after{content:none}
.ph-copy{position:relative;z-index:1}
.page-hero h1{color:#fff;max-width:16ch;margin-bottom:18px}
.page-hero .lead{color:#D9E0E2}
.page-hero .btn{margin-top:28px}
.back{display:inline-flex;align-items:center;gap:8px;color:var(--gold-t);font-size:15px;font-weight:600;margin-bottom:24px}
.byline{color:var(--on-dark-2);font-size:14.5px;margin-top:16px}
.post-hero::before{filter:blur(28px) saturate(1.1);transform:scale(1.2)}
.post-hero h1{font-size:clamp(34px,4vw,56px);max-width:22ch}

/* ---------- services ---------- */
.subnav{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding-top:var(--hdr)}
.subnav .wrap{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.subnav a{position:relative;flex:none;padding:16px 14px;font-size:15px;font-weight:600;color:var(--muted);transition:color .25s}
.subnav a:hover{color:var(--ink)}.subnav a.on{color:var(--ink)}
.subnav a::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:2px;background:var(--gold);transform:scaleX(0);transform-origin:0 50%;transition:transform .3s var(--ease)}.subnav a.on::after{transform:scaleX(1)}
.svc-sec{padding-block:clamp(64px,8vw,104px);border-top:1px solid var(--line)}
.svc-in{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,88px);align-items:start}
.svc-in .h2{margin-bottom:18px}.svc-in .btn{margin-top:24px}
.svc-side{display:grid;gap:22px}
.svc-img{border-radius:var(--r);overflow:hidden;aspect-ratio:24/11;background:var(--tint-2)}.svc-img img{width:100%;height:100%;object-fit:cover}
.rel h3{font-size:15px;font-family:var(--body);color:var(--muted);font-weight:600;margin-bottom:10px}
.rel-grid{display:grid;gap:10px}
.rel .card{grid-template-columns:72px 1fr;grid-template-rows:none;align-items:center;border:1px solid var(--line);background:#fff}
.rel .thumb img{aspect-ratio:9/16;height:100%}.rel .play{width:28px;height:28px;right:6px;bottom:6px}.rel .play::after{border-width:5px 0 5px 8px}
.rel .card-b{padding:12px 14px}.rel .card-b b{font-size:15.5px}.rel .card-b span{display:none}
.order-box{margin-top:36px;padding:clamp(20px,3vw,36px);border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.order-switch{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;padding:4px;border-radius:999px;background:var(--tint);margin-bottom:28px}
.os{position:relative;z-index:1;padding:12px 26px;border:0;background:none;border-radius:999px;font-size:15.5px;font-weight:600;color:var(--muted);cursor:pointer;transition:color .3s}.os.on{color:#fff}
.os-thumb{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:calc(50% - 4px);border-radius:999px;background:var(--ink);transition:transform .4s var(--ease)}
.order-switch.right .os-thumb{transform:translateX(100%)}
.order-panels{display:grid}.order-panel{grid-area:1/1;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .4s var(--ease),transform .4s var(--ease),visibility 0s .4s}
.order-panel.on{opacity:1;visibility:visible;transform:none;transition:opacity .4s var(--ease) .05s,transform .4s var(--ease) .05s,visibility 0s}
.order-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.order-steps li{position:relative;display:grid;gap:8px;padding:20px;border-radius:var(--r-s);background:var(--tint);font-size:16px;font-weight:600;color:var(--ink);line-height:1.4}
.order-steps li span{font-family:var(--display);font-size:26px;color:var(--gold-ink);font-weight:600}
.order-steps li:not(:last-child)::after{content:"";position:absolute;right:-19px;top:50%;width:9px;height:9px;border:solid var(--gold);border-width:2px 2px 0 0;transform:translateY(-50%) rotate(45deg)}
.order-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}
.oc{padding:20px 22px;border-radius:var(--r-s);border:1px solid var(--line)}
.oc h3{font:600 14.5px var(--body);margin-bottom:10px;display:flex;align-items:center;gap:8px}
.oc h3::before{content:"";width:9px;height:9px;border-radius:50%}.oc.ok h3::before{background:var(--ok)}.oc.watch h3::before{background:var(--gold)}
.oc li{position:relative;padding:5px 0 5px 16px;font-size:15.5px}.oc li::before{content:"–";position:absolute;left:0;color:var(--gold)}
.order-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:24px;padding-top:22px;border-top:1px solid var(--line)}
.order-foot small{font-size:13.5px;color:var(--muted)}
.costs-in{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(32px,6vw,88px);align-items:start}
.costs .lead{margin-top:16px}
.cost-list{margin-top:28px;border-top:1px solid var(--line-2)}
.cost-list li{display:grid;grid-template-columns:minmax(150px,.8fr) 1.2fr;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.5}.cost-list b{color:var(--ink);font-weight:600}
.ltt{padding:28px;border-radius:var(--r);background:#fff;border:1px solid var(--line)}
.ltt-l{font-size:14px;font-weight:600;color:var(--ink)}
.ltt-in{display:flex;align-items:center;gap:6px;margin:10px 0 14px;padding:4px 16px;border-radius:var(--r-s);background:var(--tint);border:1px solid transparent}
.ltt-in:focus-within{border-color:var(--gold);background:#fff}
.ltt-in span{font:600 24px var(--display);color:var(--muted)}
.ltt-in input{border:0;background:none;font:600 clamp(26px,2.4vw,32px) var(--display);color:var(--ink);width:100%;padding:8px 0;outline:0;font-variant-numeric:tabular-nums;letter-spacing:-.01em;caret-color:var(--gold)}
.ltt-range{width:100%;accent-color:var(--ink)}
.ltt-ft{display:flex;gap:10px;align-items:center;margin:14px 0 20px;font-size:15px;color:var(--ink);cursor:pointer}.ltt-ft input{width:18px;height:18px;accent-color:var(--ink)}
.ltt-out{padding:20px 22px;border-radius:var(--r-s);background:var(--panel);color:var(--on-dark-2);display:grid;gap:4px}
.ltt-out b{font:600 clamp(34px,3.6vw,48px)/1.05 var(--display);color:var(--gold-t);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ltt-out small{font-size:13.5px;color:#fff}
.ltt .src{margin-top:14px}

/* ---------- condos ---------- */
.topics{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-2)}
.topic{padding:26px 28px 28px 0;border-bottom:1px solid var(--line)}
.topic:nth-child(3n+2),.topic:nth-child(3n+3){padding-left:28px;border-left:1px solid var(--line)}
.topic h3{font-size:19px;margin-bottom:8px}.topic p{font-size:15.5px;color:var(--muted)}
.qs{margin-top:28px;border-top:1px solid var(--line-2)}
.qs details{border-bottom:1px solid var(--line)}
.qs summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:40px 1fr 32px;align-items:baseline;gap:12px;padding:22px 0;font:600 clamp(20px,2vw,26px)/1.3 var(--display);color:var(--ink)}
html[lang=zh-Hant] .qs summary{font-weight:700;font-size:clamp(18px,1.8vw,22px)}
.qs summary::-webkit-details-marker{display:none}.qs .num{font-size:15px}
.qs summary::after{content:"+";justify-self:end;font:300 30px/1 var(--body);color:var(--gold);transition:transform .3s var(--ease)}
.qs details[open] summary::after{transform:rotate(45deg)}
.qs details p{max-width:66ch;padding:0 0 24px 52px;font-size:16px;line-height:1.6}

/* ---------- areas: at a glance ---------- */
.afacts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line-2);margin:32px 0 56px}
.af{padding:24px 24px 26px 0;border-bottom:1px solid var(--line);display:grid;gap:6px;align-content:start}
.af+.af{padding-left:24px;border-left:1px solid var(--line)}
.af b{font:600 clamp(32px,3.2vw,44px)/1 var(--display);color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.af span{font-size:15px;color:var(--muted);line-height:1.45}
.move-hoods{display:grid;grid-template-columns:1fr 1.5fr;gap:clamp(32px,6vw,88px);align-items:start}
.move{border-top:1px solid var(--line-2)}.move li{display:grid;gap:4px;padding:16px 0;border-bottom:1px solid var(--line)}
.move b{color:var(--ink);font-size:16.5px;font-weight:600}.move span{font-size:15.5px;color:var(--muted);line-height:1.5}
.hoods{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.hood{padding:18px 20px;border-radius:var(--r-s);background:var(--tint);display:grid;gap:4px;align-content:start}
.hood b{font:600 18px/1.25 var(--display);color:var(--ink)}html[lang=zh-Hant] .hood b{font-weight:700;font-size:16.5px}
.hood span{font-size:14.5px;color:var(--muted);line-height:1.5}
.gta-cmp{display:grid;grid-template-columns:1fr 1.3fr;gap:clamp(32px,6vw,88px);align-items:start}.gta-cmp .lead{margin-top:16px}
.empty{padding:36px;border:1px dashed var(--line-2);border-radius:var(--r);text-align:center;color:var(--muted);font-size:15px}

/* ---------- insights library ---------- */
.filters{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:32px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:9px 16px;border-radius:999px;border:1.5px solid var(--line-2);background:#fff;font-size:14.5px;font-weight:600;color:var(--text);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.chip:hover{border-color:var(--ink)}.chip.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.q{height:42px;padding:0 16px 0 40px;border-radius:999px;border:1.5px solid var(--line-2);background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%235C676B' stroke-width='1.7' stroke-linecap='round'%3E%3Ccircle cx='7' cy='7' r='4.5'/%3E%3Cpath d='M10.5 10.5 14 14'/%3E%3C/svg%3E") 14px center/16px no-repeat;font:inherit;font-size:15px;min-width:280px;color:var(--ink);caret-color:var(--gold)}
.q:focus{outline:2px solid var(--gold);outline-offset:2px;border-color:transparent}
.card[hidden]{display:none}

/* ---------- post page ---------- */
.post-in{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:clamp(32px,6vw,88px);align-items:start}
.post-video{position:sticky;top:calc(var(--hdr) + 24px);display:grid;gap:14px;justify-items:start}
.yt{position:relative;width:100%;aspect-ratio:9/16;border-radius:var(--r);overflow:hidden;background:var(--panel);box-shadow:0 30px 60px -30px rgba(14,20,22,.5)}
.yt-play{display:block;width:100%;height:100%;padding:0;border:0;background:none;cursor:pointer;position:relative}
.yt-play img{width:100%;height:100%;object-fit:cover}
.yt-btn{position:absolute;left:50%;top:50%;width:72px;height:72px;margin:-36px 0 0 -36px;border-radius:50%;background:#fff;transition:transform .3s var(--ease)}
.yt-btn::after{content:"";position:absolute;left:29px;top:22px;border-style:solid;border-width:14px 0 14px 22px;border-color:transparent transparent transparent var(--ink)}
.yt-play:hover .yt-btn{transform:scale(1.06)}
.yt-play small{position:absolute;left:12px;right:12px;bottom:12px;padding:10px 14px;border-radius:var(--r-s);background:rgba(14,20,22,.78);color:#fff;font:600 13px var(--body);text-align:left}
.yt iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.prose{max-width:68ch}.prose p{margin-bottom:18px}.prose>p:first-child{font-size:clamp(18px,1.4vw,20px);line-height:1.55;color:var(--ink);font-weight:500}
.prose h2{font-size:clamp(24px,2.2vw,30px);margin:40px 0 12px}
.calc{margin:28px 0;padding:8px 24px;border-radius:var(--r);background:var(--panel);color:var(--on-dark)}
.calc p{margin:0!important;padding:14px 0;font:600 16.5px/1.45 var(--body);border-bottom:1px solid var(--line-d)}.calc p:last-child{border:0;color:var(--gold-t)}.calc.facts p:last-child{color:inherit}
.fine{font-size:14px;color:var(--muted);padding-top:14px;border-top:1px solid var(--line-2);margin-top:24px}
.post-cta{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-top:44px;padding:22px 22px 22px 26px;border-radius:var(--r);background:var(--tint)}
.post-cta b{font:600 20px/1.25 var(--display);color:var(--ink)}

/* ---------- contact page: what to share ---------- */
.prep-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px}
.prep{padding:26px 28px;border-radius:var(--r);background:var(--tint)}.prep h3{margin-bottom:6px}

/* ---------- 404 ---------- */
.nf{padding:calc(var(--hdr) + clamp(80px,12vw,160px)) 0 clamp(80px,12vw,160px);text-align:center}.nf h1{margin-bottom:16px}.nf .btns{justify-content:center;margin-top:28px}

/* ---------- reveal ---------- */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none}.hero-copy>*,.hero-card{animation:none}}

/* ---------- responsive ---------- */
@media(max-width:1100px){.cards{grid-template-columns:repeat(3,1fr)}.doors-grid{grid-template-columns:repeat(2,1fr)}.reviews{grid-template-columns:1fr 1fr}}
@media(max-width:1000px){.hero-in{grid-template-columns:1fr;gap:36px}.hero-card{justify-self:start;width:260px}.pulse-in,.about-in,.contact-in,.svc-in,.costs-in,.move-hoods,.gta-cmp,.post-in,.area-map{grid-template-columns:1fr}
.about-art{position:static;max-width:380px}.post-video{position:static;justify-items:center}.yt{max-width:320px}.ftr-grid{grid-template-columns:1fr 1fr}.ftr-blurb{grid-column:1/-1}
.b-cols{grid-template-columns:1fr}.b-col+.b-col{border-left:0;border-top:1px solid var(--line)}.tours{grid-template-columns:1fr}.order-steps{grid-template-columns:1fr}.order-steps li:not(:last-child)::after{right:50%;top:auto;bottom:-18px;transform:translateX(50%) rotate(135deg)}}
@media(max-width:760px){
:root{--hdr:76px}.wrap{width:calc(100% - 32px)}
.hdr,.hdr.scrolled{top:8px;left:8px;right:8px;width:auto;transform:none;height:58px;border-radius:18px;padding:0 8px 0 16px}
.nav{top:74px}
.logo small{display:none}.menu-dd,.hdr-call span{display:none}.hdr-call{width:40px;padding:0;justify-content:center}.hdr-right{flex:0 0 auto}
.burger{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:999px;border:1px solid rgba(255,255,255,.9);background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.4));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 -1px 0 rgba(14,20,22,.05) inset,0 4px 12px -6px rgba(14,20,22,.25);cursor:pointer;position:relative}.burger span{position:absolute;left:-999px}.burger i{display:block;width:16px;height:12px;position:relative}.burger i::before,.burger i::after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--ink);border-radius:2px}.burger i::before{top:0;box-shadow:0 5px 0 var(--ink)}.burger i::after{bottom:0}
.nav{position:fixed;left:8px;right:8px;z-index:45;display:grid;gap:2px;padding:12px;border-radius:var(--r);background:#fff;border:1px solid var(--line);box-shadow:0 30px 60px -24px rgba(14,20,22,.45);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s .25s;max-height:calc(100vh - var(--hdr) - 24px);overflow:auto}
.nav.open{opacity:1;visibility:visible;transform:none;transition:opacity .25s var(--ease),transform .25s var(--ease),visibility 0s}
.nav>a{padding:14px 12px;border-radius:var(--r-s);font:600 22px/1.2 var(--display);color:var(--ink);border-bottom:1px solid var(--line)}.nav>a:last-of-type{border-bottom:0}
.nav .nav-cta{margin-top:10px;justify-content:center;border-bottom:0;font:600 16px var(--body);color:#fff}
.nav .dd{display:none}
.hero{min-height:0}.hero-in{padding-block:44px 52px;gap:24px}.hero h1{font-size:40px}.hero-card{display:flex}.who{font-size:13.5px;margin:-6px 0 16px}
.doors .btn{flex:1 1 100%}.acts{gap:18px}
.trust-in{grid-template-columns:1fr 1fr}.trust-in>div{padding:18px 16px 18px 0;border-bottom:1px solid var(--line)}.trust-in>div+div{padding-left:0}.trust-in>div:nth-child(2n){border-right:0;padding-left:16px}.trust-in>div:nth-child(n+3){border-bottom:0}
.doors-grid{grid-template-columns:1fr 1fr;gap:12px}.door img{aspect-ratio:3/2}.door-b{padding:14px 14px 16px;gap:6px}.door-b b{font-size:17px}.door-b span{font-size:13.5px}.door-b .more{font-size:14px}
.pt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pt{padding-right:12px}.pt b{font-size:24px}.pt.big b{font-size:34px}.pz{padding:10px 12px 12px;font-size:14px}
.cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;margin-inline:-16px;padding:4px 16px 8px;scrollbar-width:none}.cards>*{flex:0 0 72%;scroll-snap-align:start}
.rel-grid{display:grid}.rel .card{flex:none}
.tour{grid-template-columns:1fr}.tour .thumb img{aspect-ratio:16/10;height:auto}
.reviews{grid-template-columns:1fr}.listings{grid-template-columns:1fr}
.map{min-height:320px}.map-card{grid-template-columns:72px 1fr}.mc-img img{width:72px;height:72px}
.contact-in{gap:32px}.ch{grid-template-columns:40px 1fr auto;gap:12px}
.ftr-grid{grid-template-columns:1fr 1fr;gap:24px}.ftr-head{padding-bottom:24px}.ftr-blurb{grid-column:1/-1}.ftr-social{flex-wrap:wrap}.port-stage{height:min(68vh,560px)}.vt{--vtw:min(300px,64vw)}
.page-hero{min-height:0;padding-top:56px}.page-hero h1{font-size:36px}
.subnav .wrap{mask-image:linear-gradient(90deg,#000 88%,transparent)}
.afacts{grid-template-columns:1fr 1fr}.af{padding:18px 16px 18px 0}.af:nth-child(2n){padding-left:16px}.af:nth-child(2n+1){border-left:0;padding-left:0}
.topics{grid-template-columns:1fr}.topic,.topic:nth-child(3n+2),.topic:nth-child(3n+3){padding:20px 0;border-left:0}
.hoods{grid-template-columns:1fr}.order-cols{grid-template-columns:1fr}.cost-list li{grid-template-columns:1fr;gap:4px}.ltt{padding:20px}.prep-grid{grid-template-columns:1fr}
.bars li{grid-template-columns:96px 1fr 88px;gap:8px;font-size:13.5px}
.qs summary{grid-template-columns:32px 1fr 28px;font-size:19px;padding:18px 0}.qs details p{padding-left:0}
.creds{grid-template-columns:1fr}.about-steps li{grid-template-columns:40px 1fr}
.filters{align-items:stretch}.q{min-width:0;width:100%}
.post-cta{padding:20px}}

/* ---------- v14: scale, full-screen hero, real glass ---------- */
:root{--wrap:1320px;--vtw:min(420px,70vw)}
.sec{padding-block:clamp(96px,9.5vw,144px)}
.sec-head{margin-bottom:64px}.sec-head .h2,.h2{font-size:clamp(42px,4.8vw,72px);letter-spacing:-.035em}.sub,.sec-head .sub{font-size:18.5px;line-height:1.6;max-width:64ch}
.hero{min-height:100svh;padding-top:var(--hdr)}.hero-in{padding-block:clamp(72px,9vw,120px) clamp(72px,9vw,120px);gap:40px}
.hero h1{font-size:clamp(52px,7.4vw,108px);line-height:.98;max-width:14ch;margin-bottom:26px}.who{font-size:17px;margin:-10px 0 24px}
.hero-lead{font-size:clamp(18px,1.55vw,22px);max-width:58ch;line-height:1.55}
.hero .doors .btn{height:58px;padding:0 30px;font-size:17px}.acts{font-size:16.5px;gap:32px}
.hero-media video,.hero-media img{opacity:1}.hero-media::after{background:radial-gradient(70% 80% at 50% 45%,rgba(14,20,22,.8),rgba(14,20,22,.55) 60%,rgba(14,20,22,.35) 100%),linear-gradient(0deg,rgba(14,20,22,.65),transparent 40%)}
.hero-card{padding:10px 22px 10px 10px}.hero-card img{width:64px;height:64px}.hero-cap b{font-size:16px}.hero-cap span{font-size:14px}
.trust b{font-size:26px}.trust span{font-size:15px}.trust-in>div{padding:36px 24px}
.doors-grid{gap:24px}.door img{aspect-ratio:4/3}.door-b{padding:28px 24px 30px;gap:10px}.door-b b{font-size:25px}.door-b span{font-size:16.5px;line-height:1.55}.door-b .more{font-size:16px}
.pulse-in{gap:80px}.pulse-card{padding:32px}.pt{padding:20px 18px 22px;gap:8px}.pt b{font-size:clamp(20px,1.5vw,26px)}.pt.big b{font-size:clamp(40px,3.3vw,52px)}.pt span{font-size:15px}.pz button{padding:12px 20px;font-size:15.5px}
.pulse-read h3{font-size:26px}.pulse-read b{font-size:18px}.pulse-read p{font-size:16.5px}
.condo-in{gap:64px}.condo-t{padding:52px 44px}.condo-t .h2{font-size:clamp(40px,4vw,60px)}.condo-t p{font-size:19px}
.tours-grid,.tours .grid{gap:28px}.tour-b{padding:30px}.tour-b b{font-size:24px}.tour .price{font-size:34px}
.cards{gap:24px}.lst img{aspect-ratio:16/10}.lst-b{padding:22px 22px 24px}.lst-b b{font-size:20px}.lst-b span{font-size:15.5px}
.port-stage{height:min(84vh,820px)}.port-count{font-size:clamp(52px,7vw,104px)}
.vt-cap{padding:26px}.vt-cap b{font-size:21px}.vt-cap small{font-size:13.5px}.vt-cap i{font-size:24px}.vt .play{width:44px;height:44px}
.vt.is-next:hover,.vt.is-next2:hover{--g:.35;--b:.9;--o:1}
.area-map{gap:32px}.map{min-height:600px}.map-card{padding:16px}.map-card b{font-size:21px}
.reviews{gap:24px}.rev{padding:34px}.rev q,.rev p{font-size:20px}
.about-in{gap:clamp(40px,7vw,110px)}.about h2,.about .h2{font-size:clamp(40px,4.2vw,62px)}.about-lead{font-size:20px}
.ftr-name{font-size:34px}.ftr-grid{padding:56px 0}.ftr-grid a,.ftr-grid p{font-size:16px}
@media(max-width:1000px){.hero{min-height:100svh}.hero h1{font-size:clamp(44px,11vw,64px)}.sec{padding-block:clamp(72px,12vw,96px)}.port-stage{height:min(78vh,720px)}}

/* real glass: a thin translucent slab (little blur) whose rim bends what's behind it; Chromium adds the refraction via the SVG filter */
.hdr{background:linear-gradient(135deg,rgba(255,255,255,.5),rgba(255,255,255,.28) 50%,rgba(255,255,255,.4));backdrop-filter:blur(7px) saturate(1.8) brightness(1.06);-webkit-backdrop-filter:blur(7px) saturate(1.8) brightness(1.06);
  box-shadow:0 30px 70px -30px rgba(14,20,22,.6),0 2px 6px -2px rgba(14,20,22,.16),inset 0 0 0 1px rgba(255,255,255,.55),inset 0 1.5px 0 rgba(255,255,255,.95),inset 0 -1px 1px rgba(14,20,22,.1),inset 0 0 26px -8px rgba(255,255,255,.95),inset 0 0 0 .5px rgba(14,20,22,.1)}
.hdr.scrolled{box-shadow:0 30px 70px -30px rgba(14,20,22,.65),0 2px 6px -2px rgba(14,20,22,.18),inset 0 0 0 1px rgba(255,255,255,.55),inset 0 1.5px 0 rgba(255,255,255,.95),inset 0 -1px 1px rgba(14,20,22,.1),inset 0 0 26px -8px rgba(255,255,255,.95),inset 0 0 0 .5px rgba(14,20,22,.1)}
@supports (backdrop-filter:url(#lg)){.hdr{backdrop-filter:url(#lg) saturate(1.8) brightness(1.06)}}
.hdr::after{background:linear-gradient(180deg,rgba(255,255,255,.5),rgba(255,255,255,.08) 48%,transparent 52%,rgba(255,255,255,.14))}
.menu-btn,.lang{background:linear-gradient(180deg,rgba(255,255,255,.62),rgba(255,255,255,.3));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),inset 0 1px 0 #fff,inset 0 -1px 1px rgba(14,20,22,.08),0 6px 14px -8px rgba(14,20,22,.35)}
.bubble{background:linear-gradient(160deg,rgba(255,255,255,.86),rgba(255,255,255,.76));backdrop-filter:blur(14px) saturate(1.8);-webkit-backdrop-filter:blur(14px) saturate(1.8);box-shadow:0 30px 70px -30px rgba(14,20,22,.55),inset 0 0 0 1px rgba(255,255,255,.7),inset 0 1px 0 #fff,inset 0 0 30px -10px rgba(255,255,255,.9)}


/* ---------- v15 ---------- */
/* carousel: the left side mirrors the right */
.vt.is-prev{--x:calc(var(--vtw) * -.86);--s:.82;--o:.85;--g:.9;--b:.7;--z:4;pointer-events:auto}
.vt.is-prev2{--x:calc(var(--vtw) * -1.5);--s:.68;--o:.5;--g:1;--b:.6;--z:3}
.vt.is-farl{--x:calc(var(--vtw) * -2.2);--s:.6;--o:0;--z:1;pointer-events:none}
.vt.is-prev:hover,.vt.is-prev2:hover{--g:.35;--b:.9;--o:1}
.port-arrow:disabled{opacity:.3;cursor:default;border-color:var(--line-2)}

/* dark panels back to back read as one ground */
.pulse.panel{background:radial-gradient(60% 34% at 50% 0%,rgba(201,169,110,.2),transparent 70%),var(--panel)}
.condo.panel{background:radial-gradient(55% 30% at 50% 100%,rgba(201,169,110,.12),transparent 70%),var(--panel);padding-block:0 clamp(96px,9.5vw,144px)}
.sec+.panel.condo,.panel+.panel{border-top:0}
.pulse.panel+.condo.panel{padding-top:clamp(24px,3vw,48px)}

/* market: chart + table */
.mk-deep{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;margin-top:40px}
.mk-card{padding:32px;border-radius:22px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.1)}
.mk-card h3{font:700 22px/1.25 var(--display);color:#fff;letter-spacing:-.01em}
.mk-note{font-size:14.5px;color:var(--on-dark-2);margin:6px 0 26px}
.mk-plot{position:relative;padding-bottom:30px}
.mk-plot ul{display:grid;gap:12px;position:relative;z-index:1}
.mk-plot{--lw:120px;--vw:92px;padding:26px 0 0}
.mk-plot li{display:grid;grid-template-columns:var(--lw) 1fr var(--vw);gap:14px;align-items:center;font-size:14.5px;color:var(--on-dark-2)}
.mk-plot li i{height:22px;border-radius:6px;background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(255,255,255,.26));width:var(--w);transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--ease)}
.mk-plot li b{text-align:right;font:600 14px var(--body);color:#fff;font-variant-numeric:tabular-nums}
.mk-plot li.hi{color:#fff;font-weight:600}.mk-plot li.hi i{background:linear-gradient(90deg,#9C7F4B,var(--gold-t))}.mk-plot li.hi b{color:var(--gold-t)}
.mk-deep.in .mk-plot li i{transform:scaleX(1)}
.mk-plot li:nth-child(2) i{transition-delay:.05s}.mk-plot li:nth-child(3) i{transition-delay:.1s}.mk-plot li:nth-child(4) i{transition-delay:.15s}.mk-plot li:nth-child(5) i{transition-delay:.2s}.mk-plot li:nth-child(6) i{transition-delay:.25s}.mk-plot li:nth-child(7) i{transition-delay:.3s}.mk-plot li:nth-child(8) i{transition-delay:.35s}.mk-plot li:nth-child(9) i{transition-delay:.4s}.mk-plot li:nth-child(10) i{transition-delay:.45s}
.mk-ref{position:absolute;top:22px;bottom:26px;left:calc(var(--lw) + 14px + (100% - var(--lw) - var(--vw) - 28px) * var(--g));width:0;border-left:1.5px dashed rgba(230,206,152,.75);z-index:2;font-style:normal;pointer-events:none}
.mk-ref span{position:absolute;top:-22px;left:0;transform:translateX(-50%);white-space:nowrap;font:600 12.5px var(--body);color:var(--gold-t)}
.mk-axis{position:relative;margin:10px calc(var(--vw) + 14px) 0 calc(var(--lw) + 14px);height:20px;border-top:1px solid var(--line-d)}
.mk-axis span{position:absolute;top:6px;transform:translateX(-50%);font-size:12px;color:var(--on-dark-2);font-variant-numeric:tabular-nums}.mk-axis span:first-child{transform:none}
.mk-scroll{overflow-x:auto;margin-inline:-8px;padding-inline:8px}
.mk-table table{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.mk-table th,.mk-table td{padding:13px 12px;text-align:right;border-bottom:1px solid var(--line-d);white-space:nowrap}
.mk-table tbody th{text-align:left;font-weight:500;color:var(--on-dark-2);padding-left:0}
.mk-table thead th{font:700 15px var(--display);color:#fff;border-bottom:1px solid rgba(255,255,255,.25);padding-top:4px}
.mk-table td{color:#E8ECED}
.mk-table .on{background:rgba(201,169,110,.12);color:var(--gold-t)}.mk-table thead .on{color:var(--gold-t);border-radius:10px 10px 0 0}
.mk-table tbody tr:last-child .on{border-radius:0 0 10px 10px}
.mk-table tbody tr:hover th,.mk-table tbody tr:hover td{background-color:rgba(255,255,255,.04)}
.mk-src{grid-column:1/-1;margin-top:4px}
@media(max-width:1000px){.mk-deep{grid-template-columns:1fr}}
@media(max-width:700px){.mk-card{padding:22px 16px}.mk-plot{--lw:92px;--vw:76px}.mk-plot li{font-size:13px;gap:10px}.mk-plot li b{font-size:12.5px}.mk-table{padding-inline:12px}}

/* condo: expanded, the photo takes the full width; glass caption sits on it */
.condo .sec-head{padding-top:clamp(96px,9.5vw,144px)}.pulse.panel+.condo.panel .sec-head{padding-top:clamp(56px,6vw,96px)}
.condo .hotspots{border-radius:22px;overflow:visible}
.condo .hotspots>img{border-radius:22px;width:100%;height:auto}
.pin.r .tip{left:auto;right:40px}
.condo-glass{position:absolute;left:24px;bottom:24px;max-width:440px;display:grid;gap:16px;justify-items:start;padding:22px 24px;border-radius:18px;
  background:linear-gradient(135deg,rgba(20,26,28,.55),rgba(20,26,28,.35));backdrop-filter:blur(14px) saturate(1.5);-webkit-backdrop-filter:blur(14px) saturate(1.5);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),inset 0 1px 0 rgba(255,255,255,.3),0 24px 50px -24px rgba(0,0,0,.6)}
.condo-glass p{font-size:16px;line-height:1.5;color:#D9E0E2}.condo-glass b{display:block;font:700 20px/1.3 var(--display);color:#fff;margin-bottom:4px}
@media(max-width:700px){.condo-glass{position:static;margin:16px 16px 0;max-width:none}.condo .hotspots>img{border-radius:0}}

@media(min-width:1001px){.pulse-in{grid-template-columns:1.6fr 1fr}}
.mk-chart{display:flex;flex-direction:column}.mk-plot{flex:1;display:flex;flex-direction:column}.mk-plot ul{flex:1;align-content:space-between}
.mk-deep{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.mk-card{min-width:0}
@media(max-width:1000px){.mk-deep{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.doors-grid{gap:12px}}

.hs-img{position:relative}
@media(max-width:700px){.mk-axis span:nth-child(2),.mk-axis span:nth-child(3){display:none}}
.condo .hs-img>img{width:100%;height:auto;display:block;border-radius:22px;box-shadow:0 40px 80px -40px rgba(0,0,0,.6)}
@media(max-width:700px){.condo .hs-img>img{border-radius:0}}

/* ---------- v16 ---------- */
/* carousel: tiles stay opaque so the nearer one always covers the farther one; the fade is a veil, not transparency */
:root{--vtw:min(380px,70vw)}
.vt.is-next,.vt.is-prev{--x:calc(var(--vtw) * .84);--s:.8;--o:1;--g:.85;--b:.85;--z:4;--veil:.32}
.vt.is-prev{--x:calc(var(--vtw) * -.84)}
.vt.is-next2,.vt.is-prev2{--x:calc(var(--vtw) * 1.42);--s:.64;--o:1;--g:1;--b:.85;--z:3;--veil:.55}
.vt.is-prev2{--x:calc(var(--vtw) * -1.42)}
.vt.is-on{--veil:0}
.vt::before{content:"";position:absolute;inset:0;z-index:4;pointer-events:none;background:rgba(255,255,255,var(--veil,0));transition:background .5s var(--ease)}
.vt.is-next:hover,.vt.is-prev:hover,.vt.is-next2:hover,.vt.is-prev2:hover{--veil:.12;--g:.3;--b:1;--o:1}
@media(max-width:700px){:root{--vtw:min(280px,62vw)}}

/* navbar: clear glass. Almost no tint, a whisper of blur, light lives on the rim and in one specular sweep; text adapts to what is behind it */
.hdr{background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.06));
  backdrop-filter:blur(2px) saturate(1.7) brightness(1.05);-webkit-backdrop-filter:blur(2px) saturate(1.7) brightness(1.05);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(255,255,255,.3),inset 1px 0 0 rgba(255,255,255,.4),inset -1px 0 0 rgba(255,255,255,.4),inset 0 0 22px rgba(255,255,255,.16),0 14px 40px -14px rgba(0,0,0,.35)}
.hdr.scrolled{box-shadow:inset 0 1px 0 rgba(255,255,255,.85),inset 0 -1px 0 rgba(255,255,255,.3),inset 1px 0 0 rgba(255,255,255,.4),inset -1px 0 0 rgba(255,255,255,.4),inset 0 0 22px rgba(255,255,255,.16),0 16px 44px -14px rgba(0,0,0,.4)}
@supports (backdrop-filter:url(#lg)){.hdr{backdrop-filter:url(#lg) saturate(1.7) brightness(1.05)}}
.hdr::before{padding:1px;background:linear-gradient(120deg,rgba(255,255,255,.95),rgba(255,255,255,.15) 30%,rgba(255,255,255,0) 50%,rgba(255,255,255,.15) 70%,rgba(255,255,255,.8))}
.hdr::after{background:radial-gradient(60% 160% at 18% -60%,rgba(255,255,255,.55),transparent 60%),radial-gradient(40% 120% at 85% 160%,rgba(255,255,255,.22),transparent 60%);mix-blend-mode:screen}
.menu-btn,.lang{background:rgba(255,255,255,.28);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 0 0 1px rgba(255,255,255,.45),0 4px 12px -6px rgba(0,0,0,.25);border-color:transparent}
.menu-btn:hover,.lang:hover{background:rgba(255,255,255,.45)}
.burger{background:rgba(255,255,255,.28);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 0 0 1px rgba(255,255,255,.45)}
.logo,.menu-btn,.lang,.burger{transition:color .35s var(--ease),background .35s var(--ease)}
.logo small{transition:color .35s var(--ease)}
.hdr.on-dark .logo,.hdr.on-dark .menu-btn,.hdr.on-dark .lang,.hdr.on-dark .burger{color:#fff}
.hdr.on-dark .logo small{color:rgba(255,255,255,.72)}
.hdr.on-dark .menu-btn,.hdr.on-dark .lang,.hdr.on-dark .burger{background:rgba(255,255,255,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 0 0 1px rgba(255,255,255,.22),0 4px 12px -6px rgba(0,0,0,.4)}
.hdr.on-dark .menu-btn:hover,.hdr.on-dark .lang:hover{background:rgba(255,255,255,.22)}
.hdr.on-dark .hdr-call{background:#fff;color:var(--ink);border-color:#fff;box-shadow:0 6px 16px -8px rgba(0,0,0,.5)}

/* v16b: menu panel stays a calm frosted sheet (refraction broke its rendering); header gets enough blur to keep text legible */
.bubble{background:rgba(255,255,255,.9);backdrop-filter:blur(28px) saturate(1.8);-webkit-backdrop-filter:blur(28px) saturate(1.8)}
.hdr{backdrop-filter:blur(6px) saturate(1.7) brightness(1.05);-webkit-backdrop-filter:blur(6px) saturate(1.7) brightness(1.05)}
.hdr.on-dark{background:linear-gradient(180deg,rgba(20,26,28,.28),rgba(20,26,28,.14))}
.hdr.on-dark .burger i::before,.hdr.on-dark .burger i::after{background:#fff}
.hdr.on-dark .burger:not([aria-expanded=true]) i::before{box-shadow:0 5px 0 #fff}
/* nested backdrop-filters can't see past the header in Chromium, so the panel carries its own near-opaque ground */
.bubble{background:linear-gradient(160deg,rgba(255,255,255,.985),rgba(248,248,246,.97))}
.bubble::before{background:#fff}
.bubble{background:#fff}

/* ---------- v17 ---------- */
.tipcard{position:fixed;left:0;top:0;z-index:200;max-width:280px;padding:14px 16px;border-radius:14px;pointer-events:none;
  background:rgba(20,26,28,.92);color:#E8ECED;box-shadow:0 18px 40px -16px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.12);
  opacity:0;scale:.94;transition:opacity .18s var(--ease),scale .18s var(--ease);will-change:transform}
.tipcard.show{opacity:1;scale:1}
.tipcard b{display:block;font:700 15px/1.3 var(--display);color:#fff;margin-bottom:4px}
.tipcard span{display:block;font-size:14px;line-height:1.5;color:#B4BEC1}
@media(prefers-reduced-motion:reduce){.tipcard{transition:none}}

/* tours and guides: 2x2, bigger */
.tours{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}
.tour{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);min-height:460px}
.tour .thumb{position:relative;min-height:100%}
.tour .thumb video,.tour .thumb img{position:absolute;inset:0;aspect-ratio:auto;height:100%}
.tour-b{padding:36px 32px;gap:12px;align-content:center}
.tour-b b{font-size:26px;line-height:1.22}
.tour-b .price{font-size:36px}
.tour-b .price small{display:block;margin:8px 0 0}
.tour-b .kind{font:600 13.5px var(--body);color:var(--gold-ink)}
.tour-b .spec{font-size:15.5px;line-height:1.55}
@media(max-width:1100px){.tours{grid-template-columns:1fr}}
@media(max-width:700px){.tour{grid-template-columns:1fr;min-height:0}.tour .thumb{aspect-ratio:4/5}.tour-b{padding:24px 22px}.tour-b b{font-size:22px}.tour-b .price{font-size:30px}}

/* About: portrait + credentials card on the left, story on the right */
.about-in{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(48px,7vw,104px);align-items:start}
.about-art{display:grid;gap:20px}
.about-art img{border-radius:22px;box-shadow:0 30px 60px -36px rgba(14,20,22,.45)}
.about-art .creds{grid-template-columns:1fr 1fr;gap:18px 24px;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--tint)}
.about-art .creds dd{font-size:15px;line-height:1.4}
.about-copy .h2{margin-bottom:24px}
.about-copy .lead{font-size:19px;line-height:1.65;max-width:58ch}
.about-copy .about-note{margin-top:20px;font-size:16.5px;line-height:1.6;max-width:58ch}
.about-copy .about-steps{margin:40px 0 0}
.about-copy .about-steps li{padding:22px 0;grid-template-columns:56px 1fr}
.about-copy .about-steps b{font-size:20px;margin-bottom:4px}
.about-copy .about-steps span:last-child{font-size:16px}
@media(max-width:1000px){.about-in{grid-template-columns:1fr}.about-art{position:static;max-width:520px}}
@media(max-width:700px){.about-art .creds{grid-template-columns:1fr}}

.menu-btn:focus:not(:focus-visible),.lang:focus:not(:focus-visible){outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 0 0 1px rgba(255,255,255,.45),0 4px 12px -6px rgba(0,0,0,.25)}

.mk-table thead button{all:unset;cursor:pointer;padding:4px 2px;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.mk-table thead th:not(.on) button:hover{color:var(--gold-t);border-bottom-color:rgba(230,206,152,.5)}
.mk-table thead button:focus-visible{outline:2px solid var(--gold-t);outline-offset:3px;border-radius:4px}
.mk-table td[data-col]{cursor:pointer}
.mk-table td,.mk-table th{transition:background-color .25s var(--ease),color .25s var(--ease)}

.mk-table tbody tr,.mk-plot li{cursor:default}
.mk-plot li{border-radius:8px;transition:background-color .2s var(--ease)}
.mk-plot li:hover{background:rgba(255,255,255,.05)}
.mk-plot li:hover i{filter:brightness(1.25)}
.mk-table tbody tr:hover th{color:#fff}
.tipcard{max-width:300px}
.tipcard.light{background:rgba(255,255,255,.97);box-shadow:0 20px 44px -16px rgba(0,0,0,.6)}.tipcard.light b{color:var(--ink)}.tipcard.light span{color:var(--muted)}
.mk-table tbody tr:hover td.on{background-color:rgba(201,169,110,.2);color:var(--gold-t)}
.pin:hover .dot::after{transform:rotate(45deg)}.pin{cursor:default}

/* ---------- v18 ---------- */
/* navbar: borderless glass. No rim, no inset rings; depth from tint, blur, one soft sheen and the drop shadow */
.hdr{background:linear-gradient(180deg,rgba(255,255,255,.34),rgba(255,255,255,.18));border:0;
  backdrop-filter:blur(16px) saturate(1.8) brightness(1.04);-webkit-backdrop-filter:blur(16px) saturate(1.8) brightness(1.04);
  box-shadow:0 18px 44px -18px rgba(14,20,22,.42),0 2px 8px -4px rgba(14,20,22,.14)}
.hdr.scrolled{box-shadow:0 20px 48px -18px rgba(14,20,22,.48),0 2px 8px -4px rgba(14,20,22,.16)}
@supports (backdrop-filter:url(#lg)){.hdr{backdrop-filter:blur(16px) saturate(1.8) brightness(1.04)}}
.hdr::before{content:none}
.hdr::after{background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,255,255,0) 55%);mix-blend-mode:normal}
.hdr.on-dark{background:linear-gradient(180deg,rgba(20,26,28,.42),rgba(20,26,28,.26))}
.hdr.on-dark::after{background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,0) 55%)}
.menu-btn,.lang,.burger{border:0;background:rgba(255,255,255,.5);box-shadow:0 2px 8px -4px rgba(14,20,22,.25)}
.menu-btn:hover,.lang:hover{background:rgba(255,255,255,.75)}
.hdr.on-dark .menu-btn,.hdr.on-dark .lang,.hdr.on-dark .burger{background:rgba(255,255,255,.14);box-shadow:none}
.hdr.on-dark .menu-btn:hover,.hdr.on-dark .lang:hover{background:rgba(255,255,255,.24)}
.menu-btn:focus:not(:focus-visible),.lang:focus:not(:focus-visible){box-shadow:0 2px 8px -4px rgba(14,20,22,.25)}
.hdr-call{border:0}
.logo{flex:0 1 auto;margin-right:auto}
.logo:focus:not(:focus-visible),.hdr a:focus:not(:focus-visible){outline:none}
.hdr .menu-dd{position:absolute;left:50%;transform:translateX(-50%)}
.hdr .menu-dd .bubble{left:50%;right:auto;transform:translateX(-50%);width:min(980px,calc(100vw - 48px))}
.hdr .menu-dd>button[aria-expanded=true]+.bubble{transform:translateX(-50%)}

/* inner page heroes: tall, centred, same scrim and scale as Home */
.page-hero.photo{min-height:min(82svh,760px);align-items:center;justify-content:center;text-align:center;padding:calc(var(--hdr) + 40px) 0 clamp(64px,7vw,100px)}
.page-hero.photo .ph-copy{display:grid;justify-items:center}
.page-hero.photo::after{background:radial-gradient(70% 80% at 50% 50%,rgba(14,20,22,.8),rgba(14,20,22,.55) 60%,rgba(14,20,22,.38) 100%),linear-gradient(0deg,rgba(14,20,22,.6),transparent 45%)}
.page-hero h1{font-size:clamp(46px,6.4vw,92px);line-height:1;letter-spacing:-.035em;max-width:15ch;margin-inline:auto;margin-bottom:24px}
.page-hero .lead{font-size:clamp(18px,1.5vw,21px);line-height:1.55;max-width:60ch;margin-inline:auto}
.page-hero .btn{margin-top:34px;height:56px;padding:0 28px;font-size:16.5px}
.page-hero.post-hero{min-height:min(70svh,640px)}
.page-hero.post-hero h1{font-size:clamp(40px,5vw,72px);max-width:20ch}
.page-hero:not(.photo){padding:calc(var(--hdr) + 80px) 0 72px;text-align:center}
.page-hero:not(.photo) .ph-copy{display:grid;justify-items:center}
.page-hero:not(.photo) h1{color:#fff}

/* dark panels at the end of every inner page; back-to-back dark sections merge */
.contact.panel{padding-block:clamp(96px,9.5vw,144px)}
.contact.panel .contact-in{grid-template-columns:1fr;justify-items:center;text-align:center;gap:44px}
.contact.panel .contact-in>div:first-child{display:grid;justify-items:center}
.contact.panel h2{font-size:clamp(38px,4.4vw,64px);line-height:1.05;letter-spacing:-.03em;max-width:20ch;margin-bottom:16px}
.contact.panel p{margin-inline:auto;font-size:18px}
.contact.panel .channels{width:min(760px,100%);text-align:left}
.panel+.contact.panel,.panel+.panel,.costs.panel+.contact.panel{border-top:0;padding-top:clamp(40px,4vw,64px)}
.sec+.contact.panel{border-top:0}

/* closing costs on charcoal */
.costs.panel .lead{color:#D9E0E2}
.costs.panel .cost-list{border-top-color:var(--line-d)}
.costs.panel .cost-list li{border-bottom-color:var(--line-d);color:var(--on-dark-2)}
.costs.panel .cost-list b{color:#fff}
.costs.panel .ltt{background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(255,255,255,.03));border-color:rgba(255,255,255,.12);border-radius:22px;padding:32px}
.costs.panel .ltt-l,.costs.panel .ltt-ft{color:#fff}
.costs.panel .ltt-in{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
.costs.panel .ltt-in:focus-within{background:rgba(255,255,255,.1);border-color:var(--gold)}
.costs.panel .ltt-in input{color:#fff}
.costs.panel .ltt-in span{color:var(--on-dark-2)}
.costs.panel .ltt-range,.costs.panel .ltt-ft input{accent-color:var(--gold-t)}
.costs.panel .ltt-out{background:rgba(201,169,110,.14);border:1px solid rgba(201,169,110,.35)}
.costs.panel .src{color:var(--on-dark-2)}

/* services: roomier split sections, rounded art, alternating ground */
.svc-sec{padding-block:clamp(96px,9.5vw,144px)}
.svc-sec.alt{background:#F6F6F3}
.svc-sec+.svc-sec,.svc-sec+.sec,.sec+.svc-sec{border-top:0}
.svc-in{gap:clamp(48px,7vw,104px)}
.svc-sec img{border-radius:22px}
.svc-sec .h2,.svc-sec h2{font-size:clamp(40px,4.6vw,68px)}
.svc-sec .lead{font-size:19px;line-height:1.6}
.subnav{background:rgba(255,255,255,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}

/* card rows with few cards sit centred */
.cards{justify-content:center}
@media(min-width:701px){.cards{grid-template-columns:repeat(auto-fit,minmax(240px,300px))}}
.sec .sec-head+.cards,.sec .cards{margin-inline:auto}

@media(max-width:1000px){.page-hero.photo{min-height:74svh}}
@media(max-width:700px){.page-hero.photo{min-height:78svh;padding-top:calc(var(--hdr) + 24px)}.page-hero h1{font-size:clamp(38px,10vw,52px)}.contact.panel .channels{width:100%}}
.hdr-right{flex:0 0 auto}.hdr .menu-dd{z-index:3}
/* services sub-nav: centred pill bar that sticks under the navbar, no reserved gap */
.subnav{top:calc(var(--hdr) + 6px);padding:20px 0;background:transparent;border:0;backdrop-filter:none;-webkit-backdrop-filter:none;pointer-events:none}
.subnav .wrap{pointer-events:auto;width:fit-content;max-width:calc(100% - 32px);justify-content:center;gap:2px;padding:5px;border-radius:999px;mask-image:none;
  background:rgba(255,255,255,.82);backdrop-filter:blur(16px) saturate(1.6);-webkit-backdrop-filter:blur(16px) saturate(1.6);box-shadow:0 14px 34px -16px rgba(14,20,22,.35),0 0 0 1px rgba(14,20,22,.06)}
.subnav a{padding:10px 18px;border-radius:999px;font-size:15px}
.subnav a::after{content:none}
.subnav a:hover{background:rgba(14,20,22,.05)}
.subnav a.on{background:var(--ink);color:#fff}
@media(max-width:700px){.subnav .wrap{justify-content:flex-start}.subnav a{padding:9px 14px;font-size:14px}}

/* ---------- v19 footer ---------- */
.ftr{position:relative;overflow:hidden;background:var(--panel);color:var(--on-dark-2);border-top:0;padding-top:clamp(72px,7vw,104px);font-size:15.5px}
.panel+.ftr,.contact.panel+.ftr{border-top:1px solid var(--line-d)}
.ftr .wrap{position:relative;z-index:1}
.ftr-top{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;padding-bottom:48px;border-bottom:1px solid var(--line-d)}
.ftr-brand{display:grid;gap:10px}
.ftr-name{font:800 clamp(36px,4vw,56px)/1 var(--display);color:#fff;letter-spacing:-.035em}
.ftr-sub{margin:0;color:var(--on-dark-2);font-size:15px}
.ftr-slogan{margin:4px 0 0;font:600 19px var(--display);color:var(--gold-t)}
.ftr-reach{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ftr-call{height:52px;padding:0 24px;gap:10px;font-size:16px}
.ftr-call .ico{width:18px;height:18px}
.ftr-social{display:flex;gap:10px;padding:0;justify-content:flex-start}
.ftr .fs{position:relative;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;border:0;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;transition:background .25s var(--ease),color .25s,transform .25s var(--ease)}
.ftr .fs:hover{background:var(--gold-t);color:var(--ink);transform:translateY(-2px)}
.ftr .fs .ico,.ftr .fs svg{width:20px;height:20px}
.ftr .fs span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ftr .fs.done{background:var(--gold-t);color:var(--ink)}
.ftr-grid{display:grid;grid-template-columns:1fr 1fr 1fr 1.6fr;gap:40px;padding:56px 0}
.fcol summary{list-style:none;font:600 15px var(--body);color:#fff;margin-bottom:16px;cursor:default;display:flex;justify-content:space-between;align-items:center}
.fcol summary::-webkit-details-marker{display:none}
.fcol summary i{display:none}
.fcol div{display:grid;gap:2px}
.ftr-grid a{display:block;padding:6px 0;color:var(--on-dark-2);font-size:15.5px;transition:color .2s}
.ftr-grid a:hover{color:#fff;text-decoration:none}
.ftr-posts h2{font:600 15px var(--body);color:#fff;margin-bottom:16px;letter-spacing:0}
.ftr-grid a.fp{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:center;padding:8px;margin:0 -8px 4px;border-radius:12px}
.ftr-grid a.fp:hover{background:rgba(255,255,255,.05)}
.fp img{width:56px;height:74px;object-fit:cover;border-radius:8px}
.fp b{display:block;font:600 15px/1.35 var(--display);color:#fff}
.fp small{display:block;margin-top:4px;font-size:13px;color:var(--gold-t)}
.ftr-posts .more{display:inline-flex;margin-top:10px;color:var(--gold-t);border-bottom-color:rgba(230,206,152,.5)}
.ftr-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:24px 0 8px;border-top:1px solid var(--line-d);font-size:14px;color:var(--on-dark-2)}
.ftr-bar-r{display:flex;gap:22px;flex-wrap:wrap}
.ftr-bar a{color:#fff}.ftr-bar a:hover{color:var(--gold-t)}
.ftr-note{margin:0;padding-bottom:clamp(140px,15vw,220px);font-size:13px;color:rgba(180,190,193,.7)}
.ftr-mark{position:absolute;left:50%;bottom:-.18em;transform:translateX(-50%);white-space:nowrap;font:800 clamp(90px,15vw,240px)/1 var(--display);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1px rgba(230,206,152,.16);background:linear-gradient(180deg,rgba(230,206,152,.1),rgba(230,206,152,0));-webkit-background-clip:text;background-clip:text;pointer-events:none;user-select:none}
html[lang=zh-Hant] .ftr-mark{letter-spacing:-.02em}
@media(max-width:1000px){.ftr-grid{grid-template-columns:1fr 1fr 1fr}.ftr-posts{grid-column:1/-1}}
@media(max-width:700px){
  .ftr{padding-top:64px;text-align:left}
  .ftr-top{flex-direction:column;align-items:stretch;gap:28px;padding-bottom:32px}
  .ftr-name{font-size:40px}
  .ftr-reach{flex-direction:column;align-items:stretch;gap:14px}
  .ftr-call{justify-content:center;height:54px}
  .ftr-social{justify-content:space-between}
  .ftr .fs{width:auto;flex:1;height:54px;border-radius:16px}
  .ftr-grid{grid-template-columns:1fr;gap:0;padding:16px 0 32px}
  .fcol{border-bottom:1px solid var(--line-d)}
  .fcol summary{margin:0;padding:18px 0;font-size:16.5px;cursor:pointer}
  .fcol summary i{display:block;width:12px;height:12px;border-right:2px solid var(--on-dark-2);border-bottom:2px solid var(--on-dark-2);transform:rotate(45deg) translate(-3px,-3px);transition:transform .3s var(--ease)}
  .fcol[open] summary i{transform:rotate(225deg) translate(-3px,-3px)}
  .fcol div{padding:0 0 16px}
  .ftr-grid a{font-size:16px;padding:9px 0}
  .ftr-posts{padding-top:28px}
  .ftr-bar{flex-direction:column;align-items:flex-start;gap:10px}
  .ftr-note{padding-bottom:110px}
  .ftr-mark{font-size:22vw}
}
.ftr .ftr-posts h2{color:#fff;font:600 15px var(--body)}
.ftr-mark{font-size:clamp(72px,12.4vw,188px);bottom:-.16em}
@media(max-width:700px){.ftr-mark{font-size:15.5vw}}
@media(max-width:700px){.ftr-mark{font-size:12.6vw;bottom:-.14em}}

/* ---------- v20 condo Q&A ---------- */
.qa-a{overflow:hidden}
.qs summary{transition:color .3s var(--ease)}
.qs details:not(.on) summary{color:#5A6366}
.qs details:not(.on) summary:hover{color:var(--ink)}
.qs summary::after{transition:transform .35s var(--ease)}
.qs details[open] summary::after{transform:none}
.qs details.on summary::after{transform:rotate(45deg)}

/* ---------- v21 footer wordmark ---------- */
.ftr-bar-l{display:grid;gap:4px}
.ftr-bar .ftr-note{padding:0;font-size:12.5px;color:rgba(180,190,193,.6)}
.ftr-bar{padding-bottom:0}
.ftr-mark{position:relative;left:auto;bottom:auto;transform:none;margin:clamp(48px,6vw,88px) 0 0;line-height:.74;overflow:hidden;white-space:nowrap;
  font:800 clamp(64px,12vw,180px)/.74 var(--display);color:inherit;-webkit-text-stroke:0;background:none;pointer-events:none;user-select:none}
.ftr-mark span{display:block;width:max-content;padding-top:.06em;font:inherit;letter-spacing:-.045em;color:transparent;-webkit-text-stroke:0;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,30%),rgba(230,206,152,0),rgba(230,206,152,0)),
    linear-gradient(180deg,rgba(230,206,152,.26) 0%,rgba(230,206,152,.1) 55%,rgba(230,206,152,.02) 100%);
  -webkit-background-clip:text;background-clip:text}
.ftr-mark span.lit{background:radial-gradient(380px circle at var(--mx,50%) var(--my,30%),rgba(240,220,170,.7),rgba(230,206,152,0) 70%),
    linear-gradient(180deg,rgba(230,206,152,.26) 0%,rgba(230,206,152,.1) 55%,rgba(230,206,152,.02) 100%);-webkit-background-clip:text;background-clip:text}
html[lang=zh-Hant] .ftr-mark span{letter-spacing:-.02em}
.js .ftr-mark.reveal{transform:translateY(28%);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease)}
.js .ftr-mark.reveal.in{transform:none}
@media(max-width:700px){.ftr-mark{margin-top:40px;font-size:16vw}.ftr-bar{gap:14px}}
@media(prefers-reduced-motion:reduce){.js .ftr-mark.reveal{transform:none}}

.ftr-mark span{letter-spacing:-.028em}
.ftr-mark b{font:inherit}
.ftr-mark span,.ftr-mark span.lit{background-size:auto}
.ftr-mark span{background:linear-gradient(180deg,rgba(230,206,152,.32) 0%,rgba(230,206,152,.12) 55%,rgba(230,206,152,.03) 100%);-webkit-background-clip:text;background-clip:text}
@media(max-width:700px){.ftr-mark{margin-top:44px}.ftr-mark b{display:block}.ftr-mark span{line-height:.86}.ftr{padding-bottom:0}}
.ftr-mark span{letter-spacing:0}

/* ---------- v22: one card system for every video list; seamless dark grounds ---------- */
#lib,.sec .tours{margin-top:8px}
.tours>.tour[hidden]{display:none}
.tours>.tour:last-child:nth-child(odd){grid-column:1/-1;justify-self:center;width:calc(50% - 16px)}
@media(max-width:1100px){.tours>.tour:last-child:nth-child(odd){width:100%}}
.filters+#lib{margin-top:36px}
/* back-to-back charcoal sections read as one ground: no glow where they meet */
.costs.panel{background:radial-gradient(60% 40% at 50% 0%,rgba(201,169,110,.18),transparent 70%),var(--panel)}
.panel+.panel,.panel+.contact.panel,.costs.panel+.contact.panel{background:var(--panel)}
.contact.panel{background:var(--panel)}
.sec:not(.panel)+.contact.panel{background:radial-gradient(60% 40% at 50% 0%,rgba(201,169,110,.16),transparent 70%),var(--panel)}
/* navbar over dark ground: enough tint that text never fights the content behind it */
.hdr.on-dark{background:linear-gradient(180deg,rgba(20,26,28,.72),rgba(20,26,28,.58))}
/* post hero: the post's own thumbnail shows through, softly blurred, instead of near-black */
.post-hero::before{filter:blur(14px) saturate(1.25) brightness(.95);transform:scale(1.12)}
.page-hero.post-hero::after{background:radial-gradient(70% 90% at 50% 50%,rgba(14,20,22,.66),rgba(14,20,22,.44) 65%,rgba(14,20,22,.3)),linear-gradient(0deg,rgba(14,20,22,.55),transparent 50%)}
/* phones: video lists (not Home) as compact side-by-side cards */
@media(max-width:700px){
  .tours.list{gap:14px}
  .tours.list .tour{grid-template-columns:40% 1fr;min-height:0}
  .tours.list .tour .thumb{aspect-ratio:3/4;min-height:0}
  .tours.list .tour-b{padding:16px 16px 16px 14px;gap:6px;align-content:center}
  .tours.list .tour-b b{font-size:16.5px;line-height:1.28}
  .tours.list .tour-b .price{font-size:22px}
  .tours.list .tour-b .price small,.tours.list .tour-b .where{display:none}
  .tours.list .tour-b .spec{font-size:13.5px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .tours.list .tour-b .more{margin-top:4px;font-size:14px}
  .tours.list>.tour:last-child:nth-child(odd){width:100%}
}
@media(max-width:700px){.tours.list .tour .thumb{aspect-ratio:auto;min-height:200px;height:100%}}

/* ---------- v23 ---------- */
/* gold marks on white need 3:1: use the deeper gold on light grounds */
.stars{color:#A88446}.oc li::before,.qs summary::after{color:var(--gold-ink)}
/* market tiles: the two dollar figures get a full row on phones so they never clip */
@media(max-width:760px){.pt[data-f=median],.pt[data-f=det]{grid-column:1/-1}.pz{white-space:nowrap;min-height:44px;padding-inline:12px}}
/* tablet: the brokerage line would run under the centred Menu button */
@media(max-width:960px){.logo small{display:none}}
/* footer link columns only fold on phones */
@media(min-width:701px){.fcol summary{pointer-events:none}}
/* 404 on dark */
.page-hero:not(.photo) .btns{justify-content:center}
.page-hero:not(.photo) .btn.ghost{color:#fff;border-color:rgba(255,255,255,.35);background:transparent}
.page-hero:not(.photo) .btn.ghost:hover{background:rgba(255,255,255,.1)}
/* touch: 44px targets without changing the look */
@media(max-width:760px){
  .hdr-call,.lang,.burger{height:44px}.hdr-call,.burger{width:44px}
  .logo b{white-space:nowrap}
  .acts a,.acts button{position:relative}.acts a::after,.acts button::after{content:"";position:absolute;inset:-8px -4px}
  .ftr-bar a{display:inline-block;padding:11px 0}
}
@media(max-width:380px){.logo b{font-size:16px}.lang{padding:0 12px}}
.pin::after,.map-pin::after{content:"";position:absolute;inset:-8px}
.map-pin::after{inset:-13px}
.page-hero .btns{margin-top:34px}.page-hero .btns .btn{margin-top:0}
/* the map keeps Leaflet's z-index 400+ panes inside itself, so it can never paint over the fixed header */
.map{isolation:isolate;z-index:0}
/* back-to-top stays visible over the charcoal sections */
.to-top{box-shadow:0 0 0 1px rgba(255,255,255,.22),0 10px 24px -10px rgba(0,0,0,.5)}
/* services pill: solid enough that headings sliding under it don't show through */
.subnav .wrap{background:rgba(255,255,255,.97)}

/* post page: three more posts in a row, See more centred underneath */
@media(min-width:701px){
  .tours.trio{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,2vw,28px)}
  .tours.trio .tour{grid-template-columns:1fr;grid-template-rows:auto 1fr;min-height:0}
  .tours.trio>.tour:last-child:nth-child(odd){grid-column:auto;justify-self:stretch;width:auto}
  .tours.trio .tour .thumb{aspect-ratio:1/1;min-height:0}
  .tours.trio .tour-b{padding:clamp(16px,2vw,26px);gap:8px;align-content:start}
  .tours.trio .tour-b b{font-size:clamp(17px,1.6vw,21px);line-height:1.28}
  .tours.trio .tour-b .price{font-size:26px}
  .tours.trio .tour-b .spec{font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
}
.see-more{margin-top:clamp(32px,4vw,48px);text-align:center}

/* QA pass 2026-11-10: touch fixes */
.port-stage{touch-action:pan-y}                       /* horizontal swipes reach the carousel's own pointer handlers */
.vt.is-on .vt-cap{padding-bottom:64px}                 /* topic tags sit above the "Watch & read" button */
.trust-in{word-break:keep-all}                         /* Chinese lines break at spaces and 、 only, never inside 普通話 / 大多倫多 */
.hero h1,.hero .lead,.page-hero h1,.page-hero .lead{text-wrap:pretty}
@media(pointer:coarse){                                /* 44px touch areas without changing the look */
  .more,.back,.acts a,.acts button,.ftr-bar-r a{position:relative}  /* pins already have a 46px ::after */
  .more::before,.back::before,.acts a::before,.acts button::before,.ftr-bar-r a::before{content:"";position:absolute;inset:-10px -6px}
  .leaflet-touch .leaflet-bar a{width:44px;height:44px;line-height:44px}
  .ltt-range{height:44px}
  .ltt-ft{min-height:44px;display:flex;align-items:center;gap:10px}
}
@media(max-width:760px){html:has(.nav.open){overflow:hidden}}  /* page stays put behind the open phone menu */
.map-pin[data-area="richmond-hill"] .mp-label{left:auto;right:14px}  /* Richmond Hill sits just west of Markham: labels point away from each other */
/* market tiles: figures shrink with their tile instead of clipping (1024 and 1920 cut "$1,006,40") */
.pt{container-type:inline-size}
.pt b{font-size:min(30px,16.5cqi)}.pt.big b{font-size:min(54px,16.5cqi)}
@media(min-width:761px) and (max-width:1279px){.pt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}  /* narrow desktops: 2 tiles a row so figures stay large */
