:root{color-scheme:dark;--black:#10100f;--warm:#191714;--ivory:#fff7e9;--muted:#c3b9ac;--gold:#e4c492;--line:#ffffff28}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--black);color:var(--ivory);font:16px/1.6 system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:4px}img{display:block;width:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.02}h1{font-size:clamp(4rem,8vw,8.3rem);letter-spacing:-.075em}h2{font-size:clamp(2.8rem,6vw,5.8rem);letter-spacing:-.065em}h3{font-size:1.7rem}em{font-weight:400;color:var(--gold)}.eyebrow,.address{font-size:.68rem;font-weight:700;letter-spacing:.22em;color:var(--gold);margin-bottom:1.2rem}.wrap{width:min(1330px,90%);margin:auto}.actions{display:flex;gap:.8rem;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:46px;padding:.66rem 1.15rem;font-size:.85rem;font-weight:700;border:1px solid transparent}.gold{background:var(--gold);color:#17130e}.gold:hover{background:#f5dbb4}.outline{border-color:#ffffff62;background:#10100f45;color:white}.outline:hover{background:#ffffff23}.skip-link{position:absolute;left:1rem;top:-10rem;background:var(--black);padding:1rem;z-index:3}.skip-link:focus{top:1rem}
header{display:flex;justify-content:space-between;align-items:center;padding:.8rem 5%;border-bottom:1px solid var(--line);gap:1.4rem;background:#080808}.brand img,.foot img{width:125px;height:52px;object-fit:contain}.brand img{width:165px;height:68px}nav{display:flex;gap:clamp(.9rem,3vw,2.8rem);font-size:.86rem}nav a:hover{color:var(--gold)}
.hero{min-height:min(700px,88svh);position:relative;display:flex;align-items:center;padding:5rem 5% 7rem;background:linear-gradient(90deg,#0c0b0aef 0%,#0e0d0bbc 29%,#100f0c26 80%),linear-gradient(0deg,#10100fbb,transparent 35%),url(assets/malabar.webp) center 52%/cover}.hero-copy>p:not(.eyebrow){max-width:30rem;margin:1.65rem 0 1.9rem;color:#f1e6da}.hero-caption{position:absolute;bottom:1.5rem;right:5%;text-align:right;font-family:Georgia,serif;font-size:1.15rem}.hero-caption span{display:block;font:700 .58rem system-ui;letter-spacing:.18em;color:var(--gold)}
.inventory,.seller,.about{padding-block:clamp(3.5rem,8vw,7.5rem)}.section-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2.2rem}.section-head>p{max-width:22rem;color:var(--muted)}.controls{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-block:1px solid var(--line);padding:1rem 0}.filters{display:flex;gap:.4rem;flex-wrap:wrap}.filters button,.search{border:1px solid var(--line);background:transparent;color:var(--ivory);padding:.45rem .9rem}.filters button[aria-pressed=true]{background:var(--gold);color:#16130e;border-color:var(--gold)}.search{display:flex;gap:.5rem;align-items:center}.search input{width:14.5rem;max-width:100%;background:none;color:white;border:none}.search input::placeholder{color:var(--muted)}.results{font-size:.8rem;color:var(--muted);margin:1rem 0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.card{background:var(--warm);border:1px solid var(--line);min-width:0}.card button{display:block;width:100%;text-align:left;background:none;border:0;color:inherit;padding:0}.card img{aspect-ratio:1.55;background:#33291d}.card-body{padding:1.2rem;display:grid;gap:.7rem}.card-body .eyebrow{margin:0}.meta{color:var(--muted);font-size:.84rem}.price{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border-top:1px solid var(--line);padding-top:.65rem;color:var(--gold)}.seller{background:#1d1813;border-block:1px solid var(--line)}.seller-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}.seller-grid>div>p:not(.eyebrow),.about>p:not(.eyebrow){max-width:37rem;color:var(--muted);margin:1.4rem 0 1.6rem}.seller ol{margin:0;padding:0;list-style:none}.seller li{display:flex;gap:1.2rem;padding:1.3rem 0;border-top:1px solid var(--line)}.seller li span{color:var(--gold);font-size:.8rem}.seller li p{margin-top:.45rem;color:var(--muted);font-size:.91rem}.about{text-align:center}.about>p:not(.eyebrow){margin-inline:auto}.about .actions{justify-content:center}footer{background:#080808;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}.foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1.1rem 0}
dialog{color:inherit;border:1px solid var(--line);background:var(--warm);padding:0}dialog::backdrop{background:#080706d9}.close{position:absolute;right:.7rem;top:.7rem;border:1px solid #fff7;background:#090909;color:white;border-radius:50%;height:42px;width:42px;font-size:1.5rem}#details{width:min(680px,94vw);max-height:90svh}#details img{max-height:360px;aspect-ratio:1.8}.detail-body{padding:1.5rem;display:grid;gap:1rem}
#entry{background:#090909;max-width:none;max-height:none;width:100vw;height:100dvh;border:0;margin:0;inset:0;overflow:hidden}
#entry[open]{display:block}
body:has(dialog[open]){overflow:hidden}
.entry-copy{position:absolute;z-index:2;bottom:2rem;left:4%;padding:1.2rem;max-width:365px;background:linear-gradient(90deg,#090909e6,#090909a8);border-left:1px solid #e4c49280;transition:opacity .4s}
.entry-copy h1{font-size:clamp(2.4rem,4.2vw,4.6rem)}
.entry-copy h1 br{display:none}
.entry-copy>p:not(.eyebrow){color:#e4ded3;margin:.7rem 0}
.entry-copy .eyebrow{margin-bottom:.5rem;font-size:.62rem}
.entry-logo{width:120px;height:48px;object-fit:contain;object-position:left;margin-bottom:.6rem}
.quiet{display:block;color:#eee3d4;background:none;border:0;padding:.35rem 0;font-size:.85rem;text-decoration:underline;text-underline-offset:4px}
.door-scene{position:absolute;inset:0;display:grid;place-items:center;overflow:hidden;background:#090909}
.porch{width:max(100vw,150dvh);aspect-ratio:3/2;position:relative;background:none;transform-origin:50.5% 63%;will-change:transform}
.doorway{position:absolute;left:42.317708%;top:50.976563%;width:16.341146%;height:24.023438%;perspective:650px;background:transparent}
.door-left,.door-right{position:absolute;top:0;height:100%;width:50%;background-size:100% 100%;backface-visibility:hidden;transition:transform 1.05s 1.75s cubic-bezier(.32,.04,.2,1)}
.door-left{left:0;transform-origin:left center;background-image:url(assets/entrance-left-door.webp)}
.door-right{right:0;transform-origin:right center;background-image:url(assets/entrance-right-door.webp)}
.doorbell{position:absolute;left:62.5%;top:61%;display:grid;justify-items:center;gap:.35rem;padding:.28rem;border:0;background:none;color:#fff8eb;transform:translateX(-15%);z-index:1}
.bell-hardware{width:44px;height:50px;display:grid;place-items:center;background:#251a11;border:2px solid #f1d6a6;border-radius:6px;color:#f1d6a6;box-shadow:0 2px 8px #1d100cbb}
.bell-label{font-size:.75rem;line-height:1.12;font-weight:750;max-width:85px;background:#20150df2;padding:.5rem;border-radius:3px}
.doorbell:hover .bell-hardware{background:#d7b788;color:#19120c}
#entry.opening .entry-copy,#entry.opening .doorbell{opacity:0;pointer-events:none}
@media(max-width:850px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:start;flex-direction:column}.header-contact{display:none}.seller-grid{grid-template-columns:1fr}.hero{min-height:620px}}
@media(max-width:550px){header{padding-inline:4%;gap:.6rem}.brand img{width:105px;height:44px}nav{font-size:.76rem;gap:.65rem}.hero{min-height:550px;padding-top:3.5rem;background-position:58% center}.hero h1{font-size:clamp(3.4rem,12vw,5rem)}.grid{grid-template-columns:1fr}.search{width:100%}.search input{width:100%}.entry-copy{bottom:1rem;left:5%;width:90%;max-width:none;padding:.85rem}.entry-copy h1{font-size:2.5rem}.entry-copy .entry-logo{position:static;width:100px;height:40px;margin-bottom:.3rem}.entry-copy>p:not(.eyebrow){font-size:.82rem;margin:.45rem 0}.entry-copy .eyebrow{font-size:.58rem}.doorbell{left:62%;top:70%}.bell-label{font-size:.7rem}.bell-hardware{width:40px;height:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
.card-name{font:400 1.7rem/1.05 Georgia,serif}.card button:hover .card-name{color:var(--gold)}.detail-body .eyebrow{margin:0}.detail-body h2{font-size:clamp(2rem,6vw,4rem)}

#details .gallery-photo{object-fit:contain;background:#100e0c;aspect-ratio:1.7}
.gallery-thumbs{display:flex;gap:.35rem;padding:.6rem .8rem;overflow:auto;background:#100e0c}
.gallery-thumbs button{flex:0 0 62px;padding:0;background:none;border:2px solid transparent}
.gallery-thumbs button[aria-pressed=true]{border-color:var(--gold)}
#details .gallery-thumbs img{width:100%;aspect-ratio:1.4}
.property-description{display:grid;gap:.8rem;color:var(--muted);overflow-wrap:anywhere}
.close{z-index:1}

[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hero{isolation:isolate}
#hero-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 52%;z-index:-2}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0a0909e8,#0a09099c 44%,#0a090920 82%),linear-gradient(0deg,#10100f9c,transparent 38%);z-index:-1}
#hero-motion{position:absolute;right:5%;bottom:1.2rem;background:#10100fc9;color:var(--ivory);border:1px solid var(--line);padding:.45rem .7rem;font-size:.78rem}
.inventory-view{display:flex;gap:.5rem;margin-top:1rem}
.inventory-view button,.map-results-header button,.coast-chip,.prompt-chips button{background:transparent;color:var(--ivory);border:1px solid var(--line);padding:.4rem .75rem}
.inventory-view button[aria-pressed=true],.coast-chip[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.map-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.map-visual{background:radial-gradient(ellipse at center,#232722,#161916 75%);padding:1rem;text-align:center}
.map-graphic{position:relative;max-width:460px;margin:auto;aspect-ratio:460/490}
.map-graphic>img{width:100%;height:100%;object-fit:contain}
.map-north{position:absolute;top:.5rem;right:.5rem;color:var(--muted);font-size:.8rem}
.map-pin{position:absolute;transform:translate(-50%,-50%);min-width:31px;min-height:31px;border-radius:50%;border:1px solid #f3d9ae;background:#211b15;color:var(--gold);font-size:.78rem;font-weight:750;padding:0;box-shadow:0 0 0 3px #1c160c91}
.map-pin:hover,.map-pin[aria-pressed=true]{background:var(--gold);color:#211b15}
.map-visual>small{display:block;color:var(--muted);margin-top:.65rem}
.map-credit{font-size:.66rem}.map-credit a{text-decoration:underline}
.map-results{background:var(--warm);padding:1rem 1.2rem;min-width:0}
.map-results-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-bottom:.7rem}
#map-properties{max-height:485px;overflow:auto;list-style:none;margin:0;padding:0}
#map-properties button{display:grid;grid-template-columns:68px 1fr auto;align-items:center;gap:.75rem;text-align:left;width:100%;border:0;border-top:1px solid var(--line);padding:.65rem .25rem;background:transparent;color:var(--ivory)}
#map-properties button:hover{color:var(--gold)}
#map-properties img{aspect-ratio:1.22}
#map-properties small{display:block;color:var(--muted)}
#map-properties .map-price{color:var(--gold)}
.map-empty{padding:1rem 0;color:var(--muted)}
.founder{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(2rem,7vw,8rem);align-items:center;padding-block:clamp(3.5rem,8vw,7.5rem)}
.founder figure{margin:0;position:relative}
.founder figure img{height:auto;aspect-ratio:4/4.9;object-position:center 37%}
.founder figcaption{position:absolute;bottom:0;left:0;background:#10100fda;padding:.65rem 1rem;color:var(--gold);font-size:.75rem}
.founder div>p:not(.eyebrow){color:var(--muted);margin-top:1rem;max-width:42rem}
.founder .actions{margin-top:1.5rem}
.films{border-top:1px solid var(--line);background:#171512;padding-block:clamp(3.5rem,7vw,6.5rem)}
.film-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;margin:1.6rem 0 2rem}
.film-grid .eyebrow{margin:.8rem 0 .25rem}
.film-play{position:relative;display:block;width:100%;padding:0;border:1px solid var(--line);background:#10100f;color:var(--ivory)}
.film-play img{aspect-ratio:1.52}
.film-play span[aria-hidden]{position:absolute;left:50%;top:50%;translate:-50% -50%;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:#14110de6;border:1px solid var(--gold);font-size:1.45rem}
.film-play:hover span[aria-hidden]{background:var(--gold);color:#14110d}
#film-dialog{width:min(860px,94vw);max-height:92svh;padding:1.1rem}
#film-dialog h2{font-size:clamp(1.8rem,4vw,3.1rem);margin:0 3rem .8rem 0}
#film-dialog video{display:block;width:100%;max-height:72svh;background:#0b0a09}
#assistant-launch{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:3;box-shadow:0 4px 22px #0009;border-radius:2rem}
#assistant{width:min(485px,94vw);max-height:85svh}
.assistant-body{padding:1.25rem;display:grid;gap:.8rem}
.assistant-body h2{font-size:2.5rem;margin-right:2rem}
.assistant-body .eyebrow{margin:0}
.assistant-body p,.assistant-body>a{font-size:.9rem}
.assistant-body>a{color:var(--gold);text-decoration:underline}
.prompt-chips{display:flex;flex-wrap:wrap;gap:.35rem}
.prompt-chips button{font-size:.72rem}
#assistant-form{display:flex;gap:.5rem}
#assistant-input{min-width:0;flex:1;background:#12110f;border:1px solid var(--line);color:var(--ivory);padding:.5rem}
#assistant-answer ul{padding:0;list-style:none;margin:.5rem 0}
#assistant-answer button{width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;color:var(--gold);padding:.55rem 0;font-size:.85rem}
#assistant-answer p+p{margin-top:.45rem}
@media(max-width:700px){.map-layout,.founder{grid-template-columns:1fr}.map-graphic{max-width:350px}.founder figure{max-width:460px}.film-grid{grid-template-columns:1fr}.film-play img{aspect-ratio:1.8}#assistant-launch{font-size:.76rem;padding:.45rem .85rem}}

@media(min-width:551px) and (max-height:620px){.entry-copy{bottom:.65rem;max-width:270px;padding:.7rem}.entry-copy h1{font-size:2.5rem}.entry-copy>p:not(.eyebrow){font-size:.75rem}}

@media(max-aspect-ratio:4/5){
  .porch{width:max(100vw,66.666667dvh);aspect-ratio:2/3;background-image:none;transform-origin:50.2% 60%}
  .doorway{left:41.992188%;top:54.296875%;width:16.40625%;height:11.002604%}
  .door-left{background-image:url(assets/entrance-mobile-left.webp)}
  .door-right{background-image:url(assets/entrance-mobile-right.webp)}
  .entry-copy{top:max(1rem,env(safe-area-inset-top));bottom:auto;left:5%;width:90%;max-width:330px;padding:.9rem;background:linear-gradient(90deg,#090909ba,#09090958)}
  .entry-copy h1{font-size:clamp(2rem,8vw,3rem)}
  .entry-copy>p:not(.eyebrow){font-size:.8rem}
  .doorbell{left:64%;top:65%;transform:translateX(-50%);min-width:70px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){#entry.opening .porch{animation:none}.porch{will-change:auto}}
.door-scene{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}

@media(prefers-reduced-motion:reduce){.pov-opening-hand{display:none!important}#entry.opening .pov-opening-hand{animation:none}}


#entry,#entry::backdrop,.door-scene{background:transparent}
.porch{--entry-photo:url(assets/entrance-villa.webp);--entry-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201536%201024%22%3E%3Cmask%20id%3D%22m%22%3E%3Crect%20width%3D%221536%22%20height%3D%221024%22%20fill%3D%22white%22%2F%3E%3Crect%20x%3D%22650%22%20y%3D%22522%22%20width%3D%22251%22%20height%3D%22246%22%20fill%3D%22black%22%2F%3E%3C%2Fmask%3E%3Crect%20width%3D%221536%22%20height%3D%221024%22%20fill%3D%22white%22%20mask%3D%22url%28%23m%29%22%2F%3E%3C%2Fsvg%3E")}
.porch::before{content:"";position:absolute;inset:0;background:var(--entry-photo) center/100% 100% no-repeat;-webkit-mask-image:var(--entry-mask);mask-image:var(--entry-mask);-webkit-mask-size:100% 100%;mask-size:100% 100%}
.door-left,.door-right{transition:transform 1.1s cubic-bezier(.28,.05,.2,1)}
#entry.opening .door-left{transform:rotateY(-106deg)}
#entry.opening .door-right{transform:rotateY(106deg)}
#entry.opening .porch{animation:enter-live-site 2.2s cubic-bezier(.45,0,.25,1) forwards}
@keyframes enter-live-site{0%{transform:scale(1)}100%{transform:scale(16)}}
@media(max-aspect-ratio:4/5){.porch{--entry-photo:url(assets/entrance-villa-mobile.webp);--entry-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%201024%201536%22%3E%3Cmask%20id%3D%22m%22%3E%3Crect%20width%3D%221024%22%20height%3D%221536%22%20fill%3D%22white%22%2F%3E%3Crect%20x%3D%22430%22%20y%3D%22834%22%20width%3D%22168%22%20height%3D%22169%22%20fill%3D%22black%22%2F%3E%3C%2Fmask%3E%3Crect%20width%3D%221024%22%20height%3D%221536%22%20fill%3D%22white%22%20mask%3D%22url%28%23m%29%22%2F%3E%3C%2Fsvg%3E")}}
@media(prefers-reduced-motion:reduce){
  #entry.opening .porch{animation:enter-live-site-gently .35s linear forwards}
  @keyframes enter-live-site-gently{from{opacity:1}to{opacity:0}}
}
