html{scroll-behavior:smooth}
.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
.shimmer{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.shimmer::before{content:"";position:absolute;top:0;left:0;width:40%;height:100%;will-change:transform;transform:translateX(-150%);background:linear-gradient(100deg,transparent,rgba(56,189,248,.10),transparent);animation:sh 6s ease-in-out infinite}
@keyframes sh{0%{transform:translateX(-150%)}60%,100%{transform:translateX(325%)}}
.drop{position:absolute;width:10px;height:14px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:rgba(56,189,248,.55);animation:fall linear infinite;pointer-events:none}
@keyframes fall{0%{transform:translateY(-40px);opacity:0}10%{opacity:1}100%{transform:translateY(620px);opacity:0}}
.mbar{display:none}
@media (max-width:760px){
 .mbar{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:50;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:#06111F;box-shadow:0 -8px 24px rgba(0,0,0,.3)}
 .mbar a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;font:700 16px Inter,system-ui,sans-serif;text-decoration:none;color:#fff;border:2px solid #2B4670}
 .mbar a.q{background:#FFC43D;color:#0A1A33;border-color:#FFC43D}
 body{padding-bottom:76px}
 nav.mainnav{display:none!important;width:100%;flex-direction:column;align-items:stretch!important}
 nav.mainnav.open{display:flex!important}
 nav.mainnav a{padding:12px 0;font-size:18px!important}
 .burger{display:flex!important}
}
.burger{display:none;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;border:2px solid #2B4670;background:transparent;color:#fff;cursor:pointer}
.pc{background:#0A1A33;color:#fff;border-radius:24px;padding:34px;box-shadow:0 24px 60px rgba(10,26,51,.25);font-family:Inter,system-ui,sans-serif}
.pc h3{font:800 34px 'Barlow Condensed',sans-serif;text-transform:uppercase;margin:0 0 6px}
.pc .opts{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0 22px}
.pc button.o{font:600 16px Inter,sans-serif;min-height:48px;padding:10px 18px;border-radius:12px;border:2px solid #2B4670;background:#13294A;color:#fff;cursor:pointer;transition:all .2s}
.pc button.o[aria-pressed="true"]{background:#38BDF8;border-color:#38BDF8;color:#0A1A33}
.pc .lab{font-weight:700;color:#C9D6E8;font-size:14px;letter-spacing:1.5px;text-transform:uppercase}
.pc .total{display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;border-top:1px solid #23406A;padding-top:22px;margin-top:6px}
.pc .num{font:800 64px 'Barlow Condensed',sans-serif;color:#FFC43D;line-height:1;transition:transform .25s}
.pc .num.pop{transform:scale(1.12)}
.pc .note{color:#C9D6E8;font-size:14px;line-height:1.5;margin-top:10px}
.pc a.go{display:inline-block;margin-top:20px;background:#FFC43D;color:#0A1A33;font-weight:800;font-size:18px;padding:18px 28px;border-radius:12px;text-decoration:none}
.ba{position:relative;height:460px;border-radius:24px;overflow:hidden;user-select:none;touch-action:none;box-shadow:0 24px 60px rgba(10,26,51,.18);cursor:ew-resize}
.ba .side{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:600 18px Inter,sans-serif;text-align:center;padding:20px}
.ba .before{background:repeating-linear-gradient(135deg,#CFC6B4 0 18px,#C4BAA6 18px 36px);color:#3D3426;clip-path:inset(0 50% 0 0)}
.ba .after{background:repeating-linear-gradient(135deg,#E6EEF7 0 18px,#DDE7F2 18px 36px);color:#4A5A70}
.ba .line{position:absolute;top:0;bottom:0;left:50%;width:4px;margin-left:-2px;background:#fff}
.ba .knob{position:absolute;top:50%;left:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:#fff;box-shadow:0 6px 18px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center;border:0}
.ba .tag{position:absolute;top:18px;font:800 13px Inter,sans-serif;letter-spacing:2px;padding:8px 12px;border-radius:8px}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.shimmer::before,.drop{animation:none;display:none}html{scroll-behavior:auto}}
/* header on phones */
.burger{margin-left:auto}
@media (max-width:760px){
 .brand{min-width:0;flex:1 1 auto}
 .brand>div>div:first-child{font-size:24px!important}
 .brand>div>div:last-child{font-size:10px!important;letter-spacing:1.2px!important}
 .topbar span{display:none}
 .topbar>div{justify-content:center!important}
 .herobtns a{flex:1 1 100%;text-align:center}
}
/* hover lift */
@media (hover:hover){
 [style*="border-radius: 20px"],.rv,.gtile{transition:transform .25s ease,box-shadow .25s ease}
 [style*="border-radius: 20px"]:hover,.rv:hover,.gtile:hover{transform:translateY(-6px);box-shadow:0 18px 40px rgba(10,26,51,.16)}
}
.reveal.in:hover{transform:translateY(-6px)}
/* placeholders */
.ph{border-radius:24px;background:repeating-linear-gradient(135deg,#E6EEF7 0 18px,#DDE7F2 18px 36px);border:2px dashed #A9BED6;display:flex;align-items:center;justify-content:center;text-align:center;color:#4A5A70;font:600 18px Inter,sans-serif;padding:24px}
.chip{background:#FFFFFF;border:1px solid #DCE5EF;padding:10px 16px;border-radius:999px;text-decoration:none;color:#0A1A33;transition:all .2s}
.chip:hover{background:#0A1A33;color:#FFFFFF;border-color:#0A1A33}
/* house tool */
.hwrap{position:relative}
.house{width:100%;height:auto;display:block;border-radius:28px;box-shadow:0 24px 60px rgba(10,26,51,.18);touch-action:manipulation}
.house .part{cursor:pointer;outline:none}
.house .part:focus-visible{filter:drop-shadow(0 0 6px #1B6FA8)}
.house .glass{fill:#9FC7E6;stroke:#0A1A33;stroke-width:3;transition:fill .5s}
.house .bars{stroke:#FFFFFF;stroke-width:5}
.house .glint{stroke:#FFFFFF;stroke-width:4;stroke-linecap:round;opacity:0;transition:opacity .5s}
.house .fascia{fill:#F4F1E8;stroke:#0A1A33;stroke-width:2.5;transition:fill .5s}
.house .gutter{fill:#5B6B80;stroke:#0A1A33;stroke-width:2.5;transition:fill .5s}
.house .consroof{fill:#CFE6F5;stroke:#0A1A33;stroke-width:2.5;transition:fill .5s}
.house .consglass{fill:#BFDDF0;stroke:#0A1A33;stroke-width:2.5;opacity:.85;transition:fill .5s}
.house .consbars{stroke:#FFFFFF;stroke-width:5}
.house .dirt{fill:#7A8B4A;opacity:.75;transition:opacity .6s ease}
.house .dirt .leaf{fill:none;stroke:#6B7F3A;stroke-width:7;stroke-linecap:round}
.house .part:hover .dirt{opacity:.55}
.house .part.on .dirt{opacity:0}
.house .part.on .glass{fill:#D6F0FF}
.house .part.on .glint{opacity:.95}
.house .part.on .fascia{fill:#FFFFFF}
.house .part.on .gutter{fill:#1B6FA8}
.house .part.on .consroof,.house .part.on .consglass{fill:#E9F7FF}
.house .spark{pointer-events:none}
.house .spark .spk{fill:#FFC43D;stroke:#FFFFFF;stroke-width:1.5;opacity:0;transform-box:fill-box;transform-origin:center}
.house .part.on .spk{animation:spk 1.1s ease-out both}
@keyframes spk{0%{opacity:0;transform:scale(.2)}35%{opacity:1}100%{opacity:0;transform:scale(1.5) rotate(45deg)}}
.house .hint{fill:#FFC43D;stroke:#0A1A33;stroke-width:2.5;animation:hint 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.house .part.on .hint{display:none}
@keyframes hint{0%,100%{transform:scale(.8);opacity:.9}50%{transform:scale(1.25);opacity:.5}}
.htip{position:absolute;left:18px;top:18px;background:#0A1A33;color:#FFFFFF;font:700 14px Inter,sans-serif;padding:8px 12px;border-radius:10px;transition:opacity .4s}
.htip.gone{opacity:0}
.hbtns button,.hpanel button.o{font:600 15px Inter,sans-serif;min-height:46px;padding:10px 16px;border-radius:12px;border:2px solid #DCE5EF;background:#FFFFFF;color:#0A1A33;cursor:pointer;transition:all .2s}
.hbtns button[aria-pressed="true"]{background:#0A1A33;color:#FFFFFF;border-color:#0A1A33}
.hpanel{background:#0A1A33;color:#FFFFFF;border-radius:24px;padding:30px;box-shadow:0 24px 60px rgba(10,26,51,.25);font-family:Inter,system-ui,sans-serif;position:sticky;top:20px}
.hpanel .lab{font-weight:700;color:#C9D6E8;font-size:13px;letter-spacing:1.5px;text-transform:uppercase}
.hpanel .opts{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 20px}
.hpanel button.o{background:#13294A;color:#FFFFFF;border-color:#2B4670}
.hpanel button.o[aria-pressed="true"]{background:#38BDF8;border-color:#38BDF8;color:#0A1A33}
.hpanel ul{list-style:none;margin:0 0 6px;padding:0;min-height:40px}
.hpanel li{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #1C3050;animation:li .35s ease both}
@keyframes li{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.hpanel .empty{color:#9FB4D1;padding:10px 0}
.hpanel .num{font:800 72px 'Barlow Condensed',sans-serif;color:#FFC43D;line-height:1;display:inline-block;transition:transform .25s}
.hpanel .num.pop{transform:scale(1.15)}
.hpanel .note{color:#C9D6E8;font-size:14px;line-height:1.5;margin-top:10px}
.hpanel a.go{display:block;text-align:center;margin-top:20px;background:#FFC43D;color:#0A1A33;font-weight:800;font-size:18px;padding:18px;border-radius:12px;text-decoration:none}
.hpanel a.go.ready{animation:glow 1.8s ease-in-out infinite}
@keyframes glow{0%,100%{box-shadow:0 0 0 0 rgba(255,196,61,.6)}50%{box-shadow:0 0 0 12px rgba(255,196,61,0)}}
.hpanel .all{width:100%;margin-top:4px}
/* map */
.pin{animation:pin .5s ease both}
@keyframes pin{from{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}
.pulse{animation:pulse 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes pulse{0%,100%{transform:scale(.85);opacity:.35}50%{transform:scale(1.15);opacity:.15}}
/* reviews */
.rvtrack{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(290px,32%);gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;margin-top:40px;padding-bottom:12px;scrollbar-width:thin}
.rv{scroll-snap-align:start;background:#FFFFFF;border-radius:20px;padding:30px;border:1px solid #DCE5EF}
.rvbtn{width:52px;height:52px;border-radius:50%;border:2px solid #0A1A33;background:#FFFFFF;color:#0A1A33;display:flex;align-items:center;justify-content:center;cursor:pointer}
.rvbtn:hover{background:#0A1A33;color:#FFFFFF}
@media (max-width:760px){.rvtrack{grid-auto-columns:86%}}
/* gallery */
.ggrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px;margin-top:40px}
.gtile{aspect-ratio:4/3;border-radius:20px;border:2px dashed #A9BED6;background:repeating-linear-gradient(135deg,#E6EEF7 0 18px,#DDE7F2 18px 36px);color:#4A5A70;font:700 18px Inter,sans-serif;cursor:zoom-in;display:flex;align-items:center;justify-content:center;text-align:center;padding:16px}
.gtile small{font-weight:500;font-size:13px}
.lbox{border:0;padding:0;background:transparent;max-width:min(92vw,1100px);width:100%}
.lbox::backdrop{background:rgba(6,17,31,.85)}
.lbin{position:relative}
.lbimg{aspect-ratio:4/3;border-radius:20px;background:#E6EEF7;display:flex;align-items:center;justify-content:center;font:700 24px Inter,sans-serif;color:#4A5A70}
.lbimg img{width:100%;height:100%;object-fit:cover;border-radius:20px}
.lbx{position:absolute;top:-14px;right:-14px;width:48px;height:48px;border-radius:50%;border:0;background:#FFC43D;color:#0A1A33;font:800 28px Inter,sans-serif;cursor:pointer}
@media (prefers-reduced-motion:reduce){.house .part.on .spk,.house .hint,.pin,.pulse,.hpanel a.go.ready,.hpanel li{animation:none}}
img.photo{display:block;width:100%;object-fit:cover;border-radius:24px;box-shadow:0 24px 60px rgba(10,26,51,.18);background:#E6EEF7}
.gtile.has{padding:0;border:0;position:relative;overflow:hidden;background:#E6EEF7}
.gtile.has img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.gtile.has:hover img{transform:scale(1.06)}
.gtile .gcap{position:absolute;left:12px;bottom:12px;background:rgba(10,26,51,.85);color:#fff;font:700 14px Inter,sans-serif;padding:8px 12px;border-radius:10px}
.ba.baimg{height:auto;aspect-ratio:4/5;max-height:640px}
.ba .side img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none;-webkit-user-drag:none}
.ba .side{padding:0}
.bavid{position:relative;border-radius:24px;overflow:hidden;aspect-ratio:4/5;max-height:640px;background:#13294A;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.bavid video{width:100%;height:100%;object-fit:cover;display:block}
.vbtn{position:absolute;right:14px;bottom:14px;width:48px;height:48px;border-radius:50%;border:0;background:rgba(10,26,51,.8);color:#fff;font:700 14px Inter,sans-serif;cursor:pointer}
