:root{--navy:#10283e;--ink:#142d43;--paper:#fff;--mist:#f0f4f6;--muted:#4e6475;--line:#cbd6de;--gold:#82621b;--gold-light:#e2c77f;--max:1280px;color-scheme:light}
*{box-sizing:border-box;scrollbar-color:var(--muted) var(--mist)}
html{scroll-behavior:smooth;scroll-padding-top:30px}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Arial,sans-serif}
body:has(dialog[open]){overflow:hidden}
[hidden]{display:none!important}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.08;text-wrap:balance}
h1{font-size:clamp(48px,6vw,84px);letter-spacing:-.035em}
h2{font-size:clamp(38px,4.2vw,60px);letter-spacing:-.025em}
h3{font-size:28px}
em{font-weight:400;color:var(--muted)}
p{max-width:70ch}
p+p{margin-top:18px}
a{color:inherit;text-underline-offset:5px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;min-height:44px;padding:10px 16px}
button:hover,a:hover{color:var(--gold)}
button:disabled{cursor:wait;opacity:.6}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:0;background:var(--paper);padding:12px;min-height:48px;caret-color:var(--gold)}
textarea{resize:vertical}
::placeholder{color:var(--muted);opacity:1}
::selection{background:var(--gold-light);color:var(--navy)}
:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
.skip{position:absolute;top:-100px;left:15px;z-index:20;background:var(--paper);padding:12px}
.skip:focus{top:12px}
.demo-bar{background:var(--navy);color:#fff;padding:8px max(5vw,20px);display:flex;justify-content:space-between;font-size:11px;letter-spacing:.05em}
.demo-bar span{letter-spacing:.02em;color:#c8d6e1}
header{padding:22px 4.5%;display:flex;gap:24px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;font:25px/1.2 Georgia,serif;letter-spacing:.14em;white-space:nowrap}
.brand small{display:block;font:11px/1.5 Arial,sans-serif;letter-spacing:.14em;margin-top:8px}
nav{display:flex;align-items:center;gap:20px}
nav a{text-decoration:none;min-height:44px;display:flex;align-items:center;font-size:14px}
nav a:first-child{border-bottom:2px solid var(--gold)}
.nav-end{display:flex;align-items:center;gap:8px;font-size:13px}
.nav-end #desk-button{border:1px solid var(--line)}
#saved-count{margin-left:6px}
#menu-button{display:none}
.hero{position:relative;isolation:isolate;background:var(--paper);color:#fff;height:720px;min-height:520px;overflow:visible}
.hero-scene{position:absolute;inset:64px 0 0;width:100%;height:calc(100% - 64px);object-fit:cover;object-position:center 57%;z-index:-2}
.hero:after{content:'';position:absolute;inset:64px 0 0;z-index:-1;background:linear-gradient(90deg,rgba(8,25,41,.05),rgba(8,25,41,.25) 38%,rgba(8,25,41,.85) 67%,rgba(8,25,41,.78))}
.hero-portrait{position:absolute;left:4%;bottom:0;width:43%;height:700px;z-index:2;pointer-events:none;filter:drop-shadow(14px 8px 18px #051b2945)}
.hero-portrait img{display:block;width:100%;height:100%;object-fit:contain;object-position:center bottom}
.hero-copy{position:relative;margin-left:53%;padding:145px 8% 100px 0;width:47%;animation:cover-arrival .8s cubic-bezier(.16,1,.3,1)}
.hero h1{font-size:clamp(54px,5.3vw,76px);max-width:12ch}
.hero em{color:var(--gold-light)}
.hero p{margin:24px 0 30px;font-size:18px;color:#f0f4f7}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 24px;background:var(--navy);color:white;text-decoration:none;font-size:14px;line-height:1.5}
.button:hover{background:#25465f;color:white}
.gold{background:var(--gold-light);color:var(--navy)}
.gold:hover{background:#ecd79f;color:var(--navy)}
.hero-secondary{margin-left:25px;font-size:14px;color:white;display:inline-block;padding:12px 0}
.hero-caption{position:absolute;bottom:25px;left:53%;right:5%;display:flex;justify-content:space-between;color:#fff;font-size:11px;letter-spacing:.03em}
.rental-band{background:var(--navy);color:white;padding:48px 7% 32px;display:flex;align-items:center;justify-content:space-between;gap:25px}
.rental-band b{display:block;font:22px Georgia,serif;margin-bottom:6px}
.rental-band span{font-size:12px;color:#cbd9e2}
.rental-band button{color:var(--gold-light);font-size:13px}
.section{max-width:calc(var(--max) + 12vw);margin:auto;padding:90px 6vw}
.section-top{display:flex;gap:40px;justify-content:space-between;align-items:end;margin-bottom:38px}
.section-description{font-size:15px;max-width:425px;color:var(--muted)}
.tabs{display:flex;gap:3px;margin-top:25px;border-bottom:1px solid var(--line)}
.tabs button{padding:12px 22px;color:var(--muted)}
.tabs button[aria-pressed=true]{background:var(--navy);color:white}
.search-bar{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:20px;align-items:end;background:var(--mist);padding:22px}
label{display:block;font-size:13px;line-height:1.5}
.search-bar select,label input,label select,label textarea{margin-top:7px}
.search-bar select{border:0;border-bottom:1px solid var(--line);background:transparent;padding-left:0}
.search-bar button{font-size:13px;text-decoration:underline}
.results-line{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:20px 0;color:var(--muted)}
.results-line button{text-decoration:underline;font-size:12px}
.property-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px;perspective:1600px}
.property-card{min-width:0;perspective:1600px}
.card-photo{position:relative;overflow:hidden;height:260px;background:var(--mist);transform-style:preserve-3d;box-shadow:0 10px 24px -14px #0b1f3a73;transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s cubic-bezier(.2,.7,.3,1)}
.card-photo img{width:100%;height:100%;object-fit:cover;filter:saturate(.92);transition:transform .7s cubic-bezier(.2,.7,.3,1),filter .45s ease}
.card-photo:after{content:'';position:absolute;inset:14px;border:1px solid transparent;z-index:1;pointer-events:none;transition:border-color .45s ease}
.badge,.save{z-index:2}
.property-card:first-child{grid-column:1/-1;display:grid;grid-template-columns:1.6fr 1fr;background:var(--mist)}
.property-card:first-child .card-photo{height:390px}
.property-card:first-child .card-info{padding:36px;display:flex;flex-direction:column;justify-content:center}
.property-card:first-child h3{font-size:40px}
.badge{position:absolute;top:16px;left:16px;background:var(--paper);padding:5px 9px;font-size:11px;letter-spacing:.02em;max-width:calc(100% - 105px)}
.save{position:absolute;top:12px;right:12px;background:var(--paper);font-size:12px;min-width:66px}
.save[aria-pressed=true]{background:var(--navy);color:white}
.card-info{padding:22px 0;border-bottom:1px solid var(--line)}
.location{display:block;font-size:11px;letter-spacing:.04em;color:var(--muted);margin-bottom:10px}
.card-info p{font-size:13px;color:var(--muted);margin-top:12px}
.card-bottom{display:flex;gap:10px;justify-content:space-between;align-items:center;margin-top:18px;font-size:17px;flex-wrap:wrap}
.card-bottom button{font-size:12px;text-decoration:underline;padding-right:0;padding-left:0}
.fine{font-size:12px;color:var(--muted);line-height:1.7;margin-top:22px}
.rental-intro{max-width:none;background:var(--navy);color:white;display:grid;grid-template-columns:1fr 1fr;gap:10%;padding-left:10%;padding-right:10%}
.rental-intro em{color:var(--gold-light)}
.rental-intro p{margin:24px 0;max-width:44ch}
.rental-facts h3{color:var(--gold-light)}
dl{margin:15px 0}
dl div{display:grid;grid-template-columns:100px 1fr;border-bottom:1px solid #395065;padding:15px 0}
dd{margin:0;font-size:14px;color:#dbe5ec}
dt{font-size:14px}
.rental-intro .fine{color:#c3d1dc;font-size:12px}
#capture-status{font-size:13px;color:var(--gold-light)}
.section-mist{max-width:none;background:var(--mist)}
.area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;perspective:1600px}
.area-card:last-child:nth-child(3n + 1){grid-column:2}
.area-card{position:relative;padding:0;height:255px;overflow:hidden;background:var(--navy);transform-style:preserve-3d;box-shadow:0 10px 24px -14px #0b1f3a73;transition:transform .45s cubic-bezier(.2,.7,.3,1),box-shadow .45s cubic-bezier(.2,.7,.3,1)}
.area-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.92);transition:transform .7s cubic-bezier(.2,.7,.3,1),filter .45s ease}
.area-card:after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,#0b1f3a05 15%,#0b1f3a70 45%,#0b1f3aeb 100%);pointer-events:none}
.area-card:before{content:'';position:absolute;inset:14px;border:1px solid #ffffff60;z-index:2;pointer-events:none;transition:border-color .45s ease}
.area-card .label{position:absolute;left:20px;right:20px;bottom:30px;z-index:3;text-align:center;color:#fff;font:27px/1.15 Georgia,serif;text-shadow:0 2px 14px #0b1f3a99;transition:transform .45s cubic-bezier(.2,.7,.3,1)}
.area-card .sub{display:block;font:11px/1.4 Arial,sans-serif;letter-spacing:.08em;color:var(--gold-light);margin-top:10px}
.match{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}
.match>img{width:100%;height:490px;object-fit:cover}
.match p,.service-grid p,.about p{margin-top:24px;color:var(--muted)}
.match .button{margin-top:25px}
.match>img{box-shadow:0 12px 30px -20px #0b1f3a80;transition:transform .6s cubic-bezier(.2,.7,.3,1),box-shadow .6s ease}
.property-card:focus-within .card-photo:after,.area-card:focus-visible:before{border-color:#c9a227}
@media(hover:hover) and (pointer:fine){
 .property-card:hover .card-photo,.area-card:hover,.area-card:focus-visible{transform:translateY(-10px) scale(1.025) rotateX(3deg);box-shadow:0 34px 55px -26px #0b1f3a9e,0 0 0 1px #c9a227}
 .property-card:hover .card-photo img,.area-card:hover img{transform:scale(1.09);filter:saturate(1.04)}
 .property-card:hover .card-photo:after,.area-card:hover:before{border-color:#c9a227}
 .area-card:hover .label,.area-card:focus-visible .label{transform:translateY(-6px)}
 .match:hover>img{transform:perspective(1400px) translateY(-8px) scale(1.02) rotateX(2deg);box-shadow:0 30px 50px -28px #0b1f3a8c}
}
@media(prefers-reduced-motion:reduce){
 .property-card .card-photo,.property-card .card-photo img,.area-card,.area-card img,.area-card .label,.match>img{transform:none!important}
}
.service-grid{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:60px 10%}
.service-grid .text-link{margin-top:20px;padding-left:0}
.text-link{text-decoration:underline;text-underline-offset:6px;font-size:14px}
.full{grid-column:1/-1}
.service-grid>.fine{margin:0}
.about{display:grid;grid-template-columns:1fr 1fr;gap:10%;border-top:1px solid var(--line);align-items:center}
.portrait{background:var(--mist);width:min(92%,340px);justify-self:center}
.portrait img{width:100%;height:auto;object-fit:contain;display:block}
.portrait span{display:block;padding:16px 20px;font-size:12px}
.about .button{margin-top:25px}
.contact{display:flex;flex-direction:column;gap:5px;margin-top:26px}
.contact span{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.contact a{font-size:18px;overflow-wrap:anywhere}
.closing{text-align:center;padding:75px 20px;background:var(--navy);color:white}
.closing em{color:var(--gold-light)}
.closing .button{margin-top:30px}
.closing p{margin:22px auto 0;font-size:12px;color:#c3d1dc}
footer{display:flex;justify-content:space-between;align-items:center;gap:35px;padding:40px 6%;border-top:1px solid var(--line)}
footer p{font-size:12px;color:var(--muted)}
footer button{font-size:12px;padding-left:0}
.theme-switch{display:flex;border:1px solid var(--line);padding:4px}
.theme-switch button{padding:8px 15px}
.theme-switch [aria-pressed=true]{background:var(--navy);color:white}
.outline{border:1px solid var(--line);font-size:13px}
.demo-notice{background:var(--mist);padding:20px;font-size:14px}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:35px 0}
.metric{border-bottom:1px solid var(--line);padding:20px 0}
.metric b{display:block;font:38px Georgia,serif}
.metric span{font-size:13px;color:var(--muted)}
.desk-layout{display:grid;grid-template-columns:2fr 1fr;gap:50px}
.desk-layout aside{background:var(--mist);padding:25px;align-self:start}
.desk-layout aside p{margin:20px 0}
.desk-layout aside h3{margin-top:25px}
.small-heading{font-size:32px}
.lead{padding:24px 0;border-top:1px solid var(--line)}
.lead-top{display:flex;justify-content:space-between;gap:20px;align-items:center}
.lead-top select{max-width:190px}
.lead p{font-size:14px;margin-top:9px;color:var(--muted)}
.lead-actions{display:flex;gap:15px;margin-top:12px}
.lead-actions button{padding-left:0;text-decoration:underline;font-size:13px}
dialog{width:min(850px,calc(100% - 32px));max-height:90vh;padding:0;border:0;color:var(--ink);background:var(--paper);box-shadow:0 24px 80px #0005}
dialog::backdrop{background:#071d35b8}
.dialog-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:8px 20px;background:var(--paper);border-bottom:1px solid var(--line);font-size:11px}
.modal-close{font-size:13px;border:1px solid var(--line)}
#modal-content{padding:32px}
.detail-image{width:calc(100% + 64px);height:330px;object-fit:cover;margin:-32px -32px 28px}
#modal-content h2{font-size:44px;margin-bottom:20px}
#modal-content h3{margin-top:24px;margin-bottom:15px}
#modal-content p{margin-bottom:18px}
.detail-meta{display:flex;gap:25px;flex-wrap:wrap;margin-bottom:18px}
.detail-meta span{font-size:14px}
.detail-schools,.unavailable,.demo-notice{padding:20px;background:var(--mist);margin:22px 0}
.detail-schools b,.schools h4{font-size:12px}
.detail-schools p{font-size:13px}
.alt{display:flex;gap:20px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:18px 0}
.alt p{font-size:13px;margin:6px 0!important}
.alt button{text-decoration:underline}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:25px}
.consent{display:flex;align-items:start;gap:12px;font-size:13px}
.consent input{width:20px;min-height:20px;margin-top:2px;accent-color:var(--navy)}
.form-status{white-space:pre-line;font-size:14px;background:var(--mist);padding:16px}
.form-status:empty{display:none}
.honeypot{position:absolute;left:-10000px;opacity:0}
.school-set{margin:20px 0}
.school-set b{font-size:12px}
.school-set ul{padding-left:20px;font-size:14px}
.area-tags{display:flex;gap:10px;flex-wrap:wrap}
.area-tags span{font-size:11px;background:var(--mist);padding:6px 10px}
.draft{width:100%;font-size:15px}
.empty{grid-column:1/-1;padding:50px;background:var(--mist)}
.empty p{margin:20px 0}
#toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;box-shadow:0 8px 30px #0003;padding:14px 22px;max-width:calc(100% - 32px);z-index:10;font-size:13px;display:none}
#toast.show{display:block}
[data-theme=navy]{--gold:#e2c77f;--paper:#10283e;--ink:#f2f5f7;--mist:#19364e;--muted:#bdceda;--line:#3e566b;color-scheme:dark}
[data-theme=navy] .button:not(.gold),[data-theme=navy] .tabs [aria-pressed=true],[data-theme=navy] .theme-switch [aria-pressed=true]{background:#e2c77f;color:#10283e}
[data-theme=navy] .save[aria-pressed=true]{background:var(--gold-light);color:var(--navy)}
@keyframes cover-arrival{from{transform:translateY(14px);opacity:.8}to{transform:translateY(0);opacity:1}}
@media(min-width:1600px){.hero{height:780px}.hero-portrait{height:760px}.hero-copy{padding-top:170px}}
@media(max-width:1150px){
 header{flex-wrap:wrap;gap:14px}.brand{font-size:22px}
 nav{order:3;width:100%;justify-content:center}.hero{height:650px}.hero-portrait{height:630px;left:2%;width:45%}.hero-copy{padding-top:130px;padding-right:5%}.hero h1{font-size:clamp(46px,5.7vw,58px)}.hero p{font-size:16px}.hero-secondary{margin-left:0;margin-top:10px;display:block;width:max-content}
 .rental-band{flex-wrap:wrap}
 .property-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 body{font-size:15px}.demo-bar{padding:8px 18px;font-size:11px;letter-spacing:0;gap:18px}.demo-bar span{font-size:11px;text-align:right}
 .brand{font-size:21px}.brand small{font-size:11px;letter-spacing:.08em}
 header{padding:19px 20px;gap:12px}.nav-end{width:100%;justify-content:space-between;order:4;border-top:1px solid var(--line);padding-top:8px}
 #menu-button{display:block;border:1px solid var(--line);font-size:13px;padding:8px 12px}
 nav{display:none;align-items:stretch;gap:0;padding:8px 0}nav.open{display:flex;flex-direction:column}nav a{padding:8px 0}nav a:first-child{border:0}
 .hero{height:auto;min-height:850px;padding-bottom:440px;overflow:hidden}.hero-scene{inset:0;width:100%;height:100%;object-position:61% center}
 .hero:after{inset:0;background:linear-gradient(180deg,rgba(8,25,41,.88),rgba(8,25,41,.76) 42%,rgba(8,25,41,.12) 70%,rgba(8,25,41,.3))}
 .hero-copy{padding:44px 25px 20px;margin-left:0;width:100%}.hero h1{font-size:52px;max-width:13ch}.hero p{font-size:15px;margin-top:18px;margin-bottom:20px}
 .hero-portrait{left:0;bottom:0;width:78%;height:440px}.hero-secondary{display:inline-block;width:auto;margin-top:0}
 .hero .button{padding:13px 20px}.hero-secondary{margin-left:18px;font-size:12px}
 .hero-caption{left:auto;right:16px;bottom:22px;width:26%;font-size:11px;gap:20px;display:block;text-align:right}.hero-caption span:first-child{display:none}
 .rental-band{padding:30px 25px;gap:20px}.rental-band b{font-size:22px}.rental-band button{padding:10px 0}
 .section{padding:60px 22px}.section-top{display:block;margin-bottom:26px}.section-description{margin-top:22px;font-size:14px}
 .tabs{margin-top:20px}.tabs button{flex:1}.search-bar{grid-template-columns:1fr 1fr;gap:18px;padding:18px}
 .search-bar label:first-child{grid-column:1/-1}.search-bar label{font-size:12px}.search-bar button{grid-column:1/-1;padding:0;justify-self:start}
 .results-line{font-size:11px;gap:12px;align-items:start}.results-line button{font-size:11px;white-space:nowrap;padding-right:0}
 .property-grid{grid-template-columns:1fr;gap:32px}.property-card:first-child{display:block}
 .property-card:first-child .card-photo{height:265px}.property-card:first-child .card-info{padding:22px}
 .property-card:first-child h3{font-size:33px}.card-photo{height:255px}.card-info h3{font-size:30px}.card-bottom{font-size:17px;gap:8px}
 .rental-intro{grid-template-columns:1fr;gap:40px;padding:55px 25px}.rental-intro p{font-size:15px}
 .area-grid{grid-template-columns:1fr;gap:20px}.area-card{height:255px}.area-card:last-child:nth-child(3n + 1){grid-column:auto}.area-card img{height:100%}
 .area-card .label{left:14px;right:14px;bottom:24px;font-size:21px}.area-card .sub{font-size:11px;margin-top:9px;line-height:1.4}.area-card:before{inset:9px}
 .match,.about{grid-template-columns:1fr;gap:32px}.match>img{height:350px}.service-grid{grid-template-columns:1fr;gap:45px}
 .closing{padding:60px 22px}.closing p{font-size:11px}
 footer{display:grid;grid-template-columns:1fr;padding:35px 22px;gap:25px}.theme-switch{width:max-content}
 .metrics{gap:15px}.metric b{font-size:30px}.metric span{font-size:11px}.desk-layout{grid-template-columns:1fr;gap:30px}
 .lead-top{align-items:start;flex-direction:column;gap:12px}.lead-top select{max-width:none}.small-heading{margin-bottom:20px}
 .form-grid{grid-template-columns:1fr;gap:18px}#modal-content{padding:24px}#modal-content h2{font-size:35px}
 .detail-image{width:calc(100% + 48px);margin:-24px -24px 25px;height:240px}.dialog-toolbar{padding:8px 14px}.dialog-toolbar span{font-size:11px}
 dialog{max-height:92vh;width:calc(100% - 20px)}.alt{align-items:start}.alt button{padding:8px}.empty{padding:30px}.detail-meta{gap:10px}
 #advisor>.section-top .outline{margin-top:20px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
