:root{--type-body:1rem;--type-action:.9375rem;--type-small:.875rem;--type-caption:.75rem}
/* Refinements shared by the four selected Motor Tides pages. */
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hnav a{letter-spacing:.13em;white-space:nowrap}
.hd .resident-login{position:relative;margin-left:clamp(16px,2.2vw,30px);padding:8px 0;font-size:var(--type-small);font-weight:600;letter-spacing:.13em;text-transform:uppercase;opacity:.78;white-space:nowrap;color:inherit;text-decoration:none}
.hd .resident-login::after{content:"";position:absolute;left:0;right:100%;bottom:2px;border-bottom:1px solid currentColor;transition:right .3s ease}
.hd .resident-login:is(:hover,:focus-visible)::after{right:0}
.mnav .menu-services{display:flex;flex-wrap:wrap;gap:12px;flex-shrink:0;margin-top:20px;padding-top:20px;border-top:1px solid rgba(7,75,77,.2)}
.mnav .menu-services .tide-button{min-height:48px;font-size:var(--type-small);line-height:1.2}
.mnav .menu-services~.msub{margin-top:16px}
@media(max-width:1280px){.hd .resident-login{display:none}.hnav{display:none}.hd .cta{margin-left:auto}.mbtn{display:grid;place-items:center;width:44px;height:44px;background:none;border:0;color:inherit;margin-left:10px;cursor:pointer}}
.hero-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:14px 30px;margin-top:28px;font-size:var(--type-small)}
.hero-actions a,.text-link,.text-actions a{display:inline-block;text-decoration:none;border-bottom:1px solid currentColor;padding:10px 0;font-weight:500}
.hero-actions a span{margin-left:16px}
.intro-copy{max-width:58ch;margin:28px auto 0;color:#4E5E62;font-size:var(--type-body);line-height:1.9}
.text-actions{display:flex;gap:20px 36px;flex-wrap:wrap;margin-top:22px;font-size:var(--type-small)}
.section-title,.home-amenities h2{font-family:var(--serif);font-size:clamp(2.3rem,5vw,4.6rem);font-weight:400;line-height:1.08;margin:20px 0 28px}
.section-title em,.home-amenities h2 em{color:var(--accent, #A4592F);font-weight:400}
.availability-note{font-size:var(--type-small);line-height:1.8;color:#BECFD4;margin-top:22px;max-width:78ch}
.availability-note a{text-underline-offset:4px}
.home-amenities{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(36px,7vw,110px);align-items:center;padding-top:110px;padding-bottom:110px}
.home-amenities figure{aspect-ratio:4/5;overflow:hidden}
.home-amenities img{width:100%;height:100%;object-fit:cover}
.home-amenities p:not(.kick){max-width:46ch;color:#4E5E62;line-height:1.9}
.home-amenities ul{list-style:none;margin:26px 0;font-size:var(--type-small)}
.home-amenities li{padding:10px 0;border-bottom:1px solid rgba(7,75,77,.2)}
.home-amenities .text-link{font-size:var(--type-small)}
.neighborhood-link{text-align:center;padding-bottom:90px;font-size:var(--type-small)}
.local-guide,.leasing-notes{padding-top:95px;padding-bottom:95px}
.guide-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,8vw,120px);margin-top:48px}
.guide-columns h3{font-size:var(--type-small);font-weight:600;letter-spacing:.16em;text-transform:uppercase;margin-bottom:18px}
.guide-columns ul{list-style:none}
.guide-columns li{padding:20px 0;border-bottom:1px solid rgba(7,75,77,.22)}
.guide-columns a{font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,2rem);text-decoration:none}
.guide-columns li span{display:block;font-size:var(--type-small);margin-top:4px;color:#4E5E62}
.leasing-notes{border-top:1px solid rgba(7,75,77,.22);display:grid;grid-template-columns:1fr 1.5fr;gap:40px}
.faq-list details{border-bottom:1px solid rgba(7,75,77,.25);padding:0 0 5px}
.faq-list summary{font-size:1rem;font-weight:500;cursor:pointer;padding:22px 0;list-style:none;display:flex;justify-content:space-between;gap:20px}
.faq-list summary::-webkit-details-marker{display:none}

.faq-list p{font-size:.88rem;line-height:1.9;color:#4E5E62;padding-bottom:22px;max-width:62ch}
.faq-list a{text-underline-offset:4px}
.ft{display:block;padding-top:50px;padding-bottom:100px}
.footer-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px 32px;padding-bottom:32px}
.footer-identity{display:flex;align-items:center;justify-content:space-between;flex-basis:100%;gap:24px}
.footer-brand{font-family:var(--serif);font-size:1.5rem;border:0!important;align-self:start;line-height:1.3}
.footer-brand span{display:block;font:500 var(--type-small) var(--sans);text-transform:uppercase;letter-spacing:.17em;margin-top:10px}
.ft nav{display:flex;gap:9px;flex-direction:column}
.ft nav a{align-self:flex-start;border:0;padding:3px 0}
.ft .footer-top>nav{flex-direction:row;flex-wrap:wrap;gap:10px 28px}
.footer-bottom{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:space-between;gap:18px 24px;border-top:1px solid rgba(7,75,77,.18);padding-top:22px;font-size:var(--type-small);line-height:22px}
.footer-bottom nav{align-items:center;flex-direction:row;flex-wrap:wrap;gap:18px}
.footer-bottom nav a{padding:0;line-height:22px}
@media(max-width:820px){
 .home-amenities{grid-template-columns:1fr;padding-top:70px;padding-bottom:70px}.home-amenities figure{aspect-ratio:4/3}
 .leasing-notes{grid-template-columns:1fr;gap:12px}
}
@media(max-width:600px){
 .guide-columns{grid-template-columns:1fr;gap:45px}.local-guide,.leasing-notes{padding-top:65px;padding-bottom:65px}
 .footer-top{gap:28px;font-size:var(--type-small)}.footer-identity{align-items:flex-start;flex-direction:column;gap:18px}.ft .footer-top>nav{flex-direction:column;flex-basis:calc(50% - 16px);gap:9px}.ft{padding-bottom:100px}.footer-bottom{flex-direction:column;align-items:flex-start;gap:16px}
 .mark .tag{font-size:var(--type-small);letter-spacing:.18em}.hero-actions{font-size:var(--type-small);gap:18px}.mark .rule{height:38px;bottom:25px}
 .mnav .msub{font-size:var(--type-small)}.phero h1{font-size:clamp(2.63rem,11.28vw,4.69rem)}
}
@media(prefers-reduced-motion:reduce){
 .hero-actions,.rv{opacity:1;transform:none}
}

/* Clear calls to action, with the same quiet, architectural edges. */
html{scrollbar-gutter:stable}
html:has(dialog[open]),html:has(.mnav.open){overflow:hidden}
.mnav{overflow:hidden;max-height:100dvh}
.mnav>nav{min-height:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-right:8px}
.mnav .msub{flex-shrink:0}
.tide-button,.pactions button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:15px 25px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);font:500 var(--type-small) var(--sans);letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:background-color .3s cubic-bezier(.22,1,.36,1),color .3s cubic-bezier(.22,1,.36,1),border-color .3s cubic-bezier(.22,1,.36,1)}
.hero-actions{gap:14px;margin-top:30px}
.hero-actions .tide-button{padding:15px 25px;border:1px solid var(--ink);font-weight:500}
.tide-button.outline{background:transparent;color:var(--ink)}
.tide-button:hover,.hero-actions .tide-button:hover{background:#166268;color:var(--bg);border-color:#166268}
.tide-button.outline:is(:hover,:focus-visible){background:var(--ink);color:var(--bg);border-color:var(--ink)}
.pactions button.bline{background:none;color:inherit;border-color:currentColor;font-size:var(--type-small);text-transform:uppercase;letter-spacing:.22em;padding:16px 30px}
.pactions button.bline:hover{background:rgba(150,175,180,.14)}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent, #A4592F);outline-offset:5px}

/* Drawings stay visible; each layout keeps consistent columns for comparison. */
.plan-grid{display:grid;gap:0}
.plan-card{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.25fr);gap:clamp(24px,5vw,70px);padding:42px 0;border-top:1px solid rgba(190,207,212,.28)}
.plan-card[hidden]{display:none}
.plan-drawing{position:relative;display:grid;place-items:center;align-self:start;width:100%;border:0;background:#fff;padding:25px;cursor:zoom-in;aspect-ratio:4/3}
.plan-drawing img{display:block;width:100%;height:100%;max-height:290px;object-fit:contain;mix-blend-mode:multiply}
.plan-drawing>span{position:absolute;right:12px;bottom:8px;font:300 26px var(--sans);color:var(--ink);width:36px;height:36px;display:grid;place-items:center;border-radius:50%;transition:background .25s}
.plan-drawing:hover>span{background:#E5EBEC}
.plan-info{min-width:0}
.plan-heading{display:flex;justify-content:space-between;align-items:start;gap:18px}
.plan-heading h3{font:400 clamp(1.9rem,3.3vw,3rem)/1.15 var(--serif);text-transform:uppercase;margin:0}
.plan-heading p{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.plan-heading small{display:block;font-size:var(--type-small);color:#BECFD4;margin-bottom:4px}
.plan-heading strong{font-size:1.1rem;font-weight:500}
.plan-specs{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:12px;margin:24px 0}
.plan-specs dt{font-size:var(--type-small);color:#BECFD4;margin-bottom:6px}
.plan-specs dd{font-size:var(--type-small);font-variant-numeric:tabular-nums}
.plan-tools{display:flex;align-items:center;gap:12px 24px;justify-content:space-between;flex-wrap:wrap}
.plan-link{display:inline-flex;align-items:center;gap:9px;font:500 var(--type-small) var(--sans);color:inherit;background:none;border:0;border-bottom:1px solid rgba(190,207,212,.6);padding:10px 0;cursor:pointer;text-decoration:none}
.plan-link svg{width:18px;height:18px;stroke:currentColor;stroke-width:1.5;fill:none}
.special{position:relative}
.special-trigger{display:flex;align-items:center;gap:10px;color:var(--accent-cream, #D8B995);background:none;border:0;border-bottom:1px dashed var(--accent-cream, #D8B995);border-bottom-color:color-mix(in srgb,var(--accent-cream, #D8B995) 60%,transparent);font:500 var(--type-small) var(--sans);padding:10px 0;cursor:pointer}
.special-tip{position:absolute;left:0;bottom:calc(100% + 10px);z-index:5;background:#F3F0E7;color:#074B4D;width:min(300px,75vw);padding:20px;box-shadow:0 10px 35px rgba(0,0,0,.15);font-size:var(--type-small);line-height:1.6;opacity:0;visibility:hidden;transform:translateY(4px);transition:opacity .2s,transform .2s,visibility 0s .2s;pointer-events:none}
.special-tip:after{content:'';position:absolute;top:100%;left:20px;border:7px solid transparent;border-top-color:#F3F0E7}
.special-tip strong{display:block;font-family:var(--serif);font-size:1.4rem;font-weight:400;margin-bottom:6px}
.special-tip small{display:block;font-size:var(--type-small);line-height:1.7;margin-top:10px;color:#536367}
.special-trigger[aria-expanded="true"]+.special-tip{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto}
@media(hover:hover){.special:hover .special-tip{opacity:1;visibility:visible;transform:none;transition-delay:0s;pointer-events:auto}}
.unit-details{margin-top:20px;border-top:1px solid rgba(190,207,212,.25)}
.unit-details summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;cursor:pointer;list-style:none;font-size:var(--type-small)}
.unit-details summary::-webkit-details-marker{display:none}
.unit-details summary span{display:none}
:is(.unit-details,.faq-list details)>summary{position:relative;padding-right:36px}
:is(.unit-details,.faq-list details)>summary::before,:is(.unit-details,.faq-list details)>summary::after{content:"";position:absolute;right:3px;top:50%;width:16px;height:1px;background:currentColor;transform:rotate(0deg);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
:is(.unit-details,.faq-list details)>summary::after{transform:rotate(90deg)}
:is(.unit-details,.faq-list details):is([data-expanded="true"],[open]:not([data-expanded]))>summary::after{transform:rotate(0deg)}
@media(prefers-reduced-motion:reduce){:is(.unit-details,.faq-list details)>summary::after{transition:none}}
.unit-table-wrap{overflow-x:auto}
.unit-details table{width:100%;border-collapse:collapse;font-size:var(--type-small);font-variant-numeric:tabular-nums;text-align:left}
.unit-details th,.unit-details td{padding:12px 10px 12px 0;border-bottom:1px solid rgba(190,207,212,.2);white-space:nowrap;font-weight:400}
.unit-details thead th{font-size:var(--type-small);color:#BECFD4}
.unit-details td:nth-child(n+3),.unit-details thead th:nth-child(n+3){text-align:right}
.unit-note{color:#BECFD4;font-size:var(--type-small);line-height:1.7;margin-top:12px}
.availability-note button[data-availability-inquiry]{padding:0;border:0;background:none;color:inherit;font:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:6px;cursor:pointer}
.plan-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}
.plan-actions .tide-button{min-height:48px;padding:13px 22px;border-color:#EFEADD;background:#EFEADD;color:#074B4D}
.plan-actions .tide-button.outline{background:transparent;color:#EFEADD;border-color:#92A1A6}
.plan-actions .tide-button:is(:hover,:focus-visible){background:#DED8C8;border-color:#DED8C8;color:#074B4D}
.plan-actions .tide-button.outline:is(:hover,:focus-visible){background:#EFEADD;border-color:#EFEADD;color:#074B4D}
.plan-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:12px 0 25px}
.plan-filters button{border:1px solid rgba(190,207,212,.4);background:none;color:inherit;min-height:44px;padding:10px 18px;font:500 var(--type-small) var(--sans);cursor:pointer;transition:color .2s,background .2s}
.plan-filters button[aria-pressed="true"]{background:#F3F0E7;color:#074B4D;border-color:#F3F0E7}
.plan-filters>span{font-size:var(--type-small);color:#BECFD4;margin-left:auto}
.featured-plans{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.featured-plans .plan-card{display:flex;flex-direction:column;gap:24px;padding-top:24px;padding-bottom:12px}
.featured-plans .plan-heading{align-items:center}
.featured-plans h3{font-size:clamp(1.5rem,2.1vw,2rem)}
.featured-plans .plan-heading strong{font-size:.96rem}
.featured-plans .plan-specs{margin:20px 0}.featured-plans .plan-count{font-size:var(--type-small);color:#BECFD4;margin-bottom:8px}
.tcard{border:0;background:var(--ink);text-align:left;cursor:pointer;font-family:inherit}
.tours-heading{display:flex;align-items:center;justify-content:space-between;gap:clamp(8px,2vw,20px);margin-top:14px}
.tours-heading .h2x{margin-top:0}
.tour-controls{display:flex;gap:10px;flex-shrink:0}.tour-controls[hidden]{display:none}
.tour-controls button,.carousel-toolbar button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid #92A1A6;border-radius:0;background:transparent;color:var(--ink);cursor:pointer;transition:background .2s,color .2s}
:is(.tour-controls,.carousel-toolbar) button:hover:not(:disabled){background:var(--ink);color:var(--bg)}
:is(.tour-controls,.carousel-toolbar) button:disabled{opacity:.3;cursor:default}
.tstrip.has-controls{scrollbar-width:none}.tstrip.has-controls::-webkit-scrollbar{display:none}
.tstrip:focus-visible{outline:2px solid var(--accent, #A4592F);outline-offset:4px}.tstrip .tcard:focus-visible{outline-offset:-4px}
@media(prefers-reduced-motion:reduce){.tour-controls button{transition:none}}

/* Shared, reversible modal motion: a soft rise and fade, without a scale jump. */
.tide-dialog{--dialog-gap:48px;border:0;padding:56px 8px 8px;position:fixed;margin:auto;width:min(620px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - var(--dialog-gap));background:#F3F0E7;color:#074B4D;overflow:hidden;animation:tide-dialog-in .4s cubic-bezier(.22,1,.36,1) both}
.tide-dialog::backdrop{background:rgba(4,27,28,.6);backdrop-filter:blur(5px);animation:tide-backdrop-in .4s ease both}
.tide-dialog[data-closing]{animation:tide-dialog-out .28s cubic-bezier(.4,0,1,1) both;pointer-events:none}
.tide-dialog[data-closing]::backdrop{animation:tide-backdrop-out .28s ease both}
.dialog-sheet{position:relative;background:#F3F0E7;padding:8px calc(clamp(26px,5vw,46px) - 8px) calc(clamp(26px,5vw,46px) - 8px);max-height:calc(100dvh - var(--dialog-gap) - 64px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#92A1A6 transparent}
.dialog-sheet .kick{font-size:var(--type-small);padding-right:35px;color:var(--accent, #A4592F)}
.dialog-sheet h2{font:400 clamp(2rem,4vw,3rem)/1.1 var(--serif);margin:10px 35px 16px 0}
.dialog-sheet h2 em{font-weight:400;color:var(--accent-mid, #AD6643)}
.dialog-close,.mnav .mclose{display:grid;place-items:center;width:44px;height:44px;border:1px solid transparent;border-radius:50%;position:absolute;right:14px;top:14px;background:none;color:#074B4D;cursor:pointer;font:300 28px/1 var(--sans);transition:background .25s,color .25s,border-color .25s}
.tide-dialog>.dialog-close{top:8px;right:22px;z-index:2;background:#F3F0E7}
.dialog-close:hover,.mnav .mclose:hover{background:#074B4D;color:#F3F0E7;border-color:#074B4D}
.dialog-close:focus-visible{outline-offset:2px}
.drawing-large{display:block;width:100%;max-height:62dvh;object-fit:contain;background:white;padding:12px}
.image-dialog{width:min(780px,calc(100vw - 32px))}
.dialog-note{font-size:var(--type-small);line-height:1.7;color:#536367;margin-top:18px}
.dialog-note a{text-underline-offset:4px}
.tide-dialog.virtual-dialog{width:min(1440px,calc(100vw - 32px));height:min(860px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:0}
.virtual-dialog .dialog-sheet{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%;max-height:none;padding:0;overflow:hidden;scrollbar-gutter:auto}
.virtual-dialog .dialog-sheet h2{font-size:clamp(1.25rem,2.5vw,1.75rem);line-height:1.3;margin:0;padding:18px 76px 18px 24px}
.virtual-dialog>.dialog-close{top:10px;right:12px}
.virtual-dialog .dialog-note{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px 20px;margin:0;padding:12px 24px 16px;font-size:var(--type-small)}
.virtual-frame{height:100%;min-height:0;background:#063C40}
@media(max-width:600px){.tide-dialog.virtual-dialog{width:100vw;height:100dvh;max-height:100dvh}.virtual-dialog .dialog-sheet h2{padding-left:16px}.virtual-dialog .dialog-note{padding:12px 16px 16px}}
.virtual-frame iframe{border:0;width:100%;height:100%;display:block}
.visit-intro{font-size:var(--type-small);line-height:1.8;color:#536367;margin-bottom:18px;max-width:56ch}
.visit-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px 18px}
.visit-fields label{display:flex;flex-direction:column;gap:8px;font-size:var(--type-small);font-weight:500;min-width:0}
.visit-fields label.wide{grid-column:1/-1}
.visit-fields label span{font-size:var(--type-small);font-weight:400;color:#536367;display:contents}
.visit-fields input,.visit-fields select{width:100%;min-width:0;min-height:48px;appearance:none;border:1px solid #92A1A6;background:transparent;color:#074B4D;border-radius:0;padding:11px 12px;font:400 var(--type-small) var(--sans)}
.visit-fields select{appearance:auto}
.visit-fields input:focus,.visit-fields select:focus{outline:2px solid #074B4D;outline-offset:2px}
.visit-hours,.visit-consent{font-size:var(--type-small);line-height:1.6;color:#536367;margin-top:12px}
.visit-consent a{text-underline-offset:3px;white-space:nowrap}
.visit-submit{width:100%;margin-top:18px;font-size:var(--type-small)}
.visit-submit:disabled{opacity:.65;cursor:default}
.visit-status:empty{display:none}
.visit-status{font-size:var(--type-small);line-height:1.7;margin-top:18px;padding:14px 0;border-top:1px solid #B4BDC1}
.visit-request[hidden],.visit-success[hidden]{display:none}
.visit-success .visit-intro{max-width:42ch}
.visit-receipt{border-top:1px solid #B4BDC1;margin:28px 0}
.visit-receipt>div{padding:18px 0;border-bottom:1px solid #B4BDC1}
.visit-receipt dt{font:500 var(--type-small) var(--sans);letter-spacing:.12em;text-transform:uppercase;margin-bottom:8px;color:#536367}
.visit-receipt dd{margin:0;font:400 1.02rem/1.6 var(--sans)}
.visit-receipt dd span{display:block}
.visit-receipt dd span+span{font-size:var(--type-small);color:#536367}
.visit-success-actions{display:flex;align-items:center;flex-wrap:wrap;gap:20px 28px}
.visit-success-actions .tide-button{min-width:130px}
.visit-success-actions .text-link{font-size:var(--type-small)}
.visit-success-actions .tide-arrow{margin-left:10px}
#visit-success-title:focus{outline:none}
.visit-call{text-align:center;font-size:var(--type-small);margin-top:24px}.visit-call a{text-underline-offset:3px}
.mtc-root .mtc-close{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;transition:background .25s,opacity .25s}
.mtc-root .mtc-close:hover{background:rgba(255,255,255,.15)}
@keyframes tide-dialog-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes tide-dialog-out{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}
@keyframes tide-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes tide-backdrop-out{from{opacity:1}to{opacity:0}}
@media(max-width:1000px){.featured-plans{gap:20px}.featured-plans .plan-heading{display:block}.featured-plans .plan-heading p{text-align:left;margin-top:12px}.featured-plans .plan-specs{gap:8px}.featured-plans .plan-specs dt{font-size:var(--type-small)}}
@media(max-width:700px){
 .plan-card{grid-template-columns:1fr;gap:25px;padding:32px 0}.plan-drawing{aspect-ratio:4/3;max-width:550px}.plan-drawing img{max-height:310px}
 .featured-plans{grid-template-columns:1fr}.featured-plans .plan-heading{display:flex}.featured-plans .plan-heading p{margin:0;text-align:right}.featured-plans h3{font-size:2rem}.featured-plans .plan-specs dt{font-size:var(--type-small)}
 .plan-filters>span{flex-basis:100%;margin:10px 0 0}.plan-filters button{padding:10px 14px}
 .tide-dialog{--dialog-gap:24px}.dialog-sheet{padding:8px 16px 22px}
 .visit-fields{grid-template-columns:1fr}.visit-fields input,.visit-fields select{font-size:16px}.visit-fields label.wide{grid-column:auto}
 .hero-actions .tide-button{font-size:var(--type-small);padding:13px 18px;min-height:46px}
}
@media(prefers-reduced-motion:reduce){.tide-dialog,.tide-dialog::backdrop{animation:none!important}.dialog-close,.mnav .mclose,.special-tip,.tide-button{transition:none}.tcard:hover img{transform:none}}

/* Photography gives the feature stories the same rhythm as the original gallery. */
.residence-stories,.amenity-stories{padding-top:10px;padding-bottom:100px}
.photo-story{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(35px,7vw,110px);align-items:center;margin:80px 0 110px}
.photo-story.reverse{grid-template-columns:1fr 1.15fr}.photo-story.reverse figure{order:2}
.photo-story figure{aspect-ratio:4/5;overflow:hidden}
.photo-story img{width:100%;height:100%;object-fit:cover;display:block}
.photo-story h2{font:400 clamp(2rem,4.3vw,4rem)/1.1 var(--serif);margin:22px 0}
.photo-story h2 em{color:var(--accent, #A4592F);font-weight:400}
.story-copy>p:not(.kick){font-size:var(--type-small);line-height:1.9;color:#536367;max-width:46ch}
.story-copy .text-link{font-size:var(--type-small);margin-top:20px}
.visual-features{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:26px 24px;margin-top:35px}
.visual-features li{display:flex;gap:14px;align-items:start}
.visual-features svg{width:26px;height:26px;flex:0 0 26px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.visual-features h3{font:500 var(--type-small)/1.5 var(--sans);margin:0 0 6px}
.visual-features p{font-size:var(--type-small);line-height:1.7;color:#536367}
.amenity-stories .visual-features{grid-template-columns:1fr;gap:22px}
.comforts{background:#04343A;color:#F3F0E7;padding:90px 0}
.comforts .visual-features{grid-template-columns:repeat(4,1fr);gap:35px;margin:45px 0}
.comforts .visual-features li{display:block}.comforts .visual-features svg{margin-bottom:16px;color:#B0C6CB}
.comforts .visual-features p,.feature-note{color:#BECFD4}
.feature-note{font-size:var(--type-small);line-height:1.8;margin-top:35px}
@media(max-width:900px){.comforts .visual-features{grid-template-columns:1fr 1fr}.photo-story{gap:35px}.photo-story h2{font-size:2.6rem}}
@media(max-width:700px){.photo-story,.photo-story.reverse{grid-template-columns:1fr;gap:32px;margin:45px 0 75px}.photo-story.reverse figure{order:0}.photo-story figure{aspect-ratio:4/3}.photo-story h2{font-size:2.5rem}.residence-stories,.amenity-stories{padding-bottom:10px}.comforts{padding:65px 0}.amenity-stories .visual-features{grid-template-columns:1fr 1fr;gap:25px 18px}.visual-features li{gap:10px}.visual-features svg{width:22px;height:22px;flex-basis:22px}}
.plan-missing{aspect-ratio:4/3;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;align-self:start;border:1px solid rgba(190,207,212,.3);color:#BECFD4}
.plan-missing svg{width:40px;height:40px;fill:none;stroke:currentColor;stroke-width:1;opacity:.7;margin-bottom:20px}
.plan-missing p{font:400 1.8rem/1.2 var(--serif);color:#F3F0E7;margin-bottom:16px}
.plan-missing>span{font-size:var(--type-small);max-width:25ch;line-height:1.8}.plan-missing a{font-size:var(--type-small);margin-top:20px;text-underline-offset:5px}
.special-trigger:focus-visible+.special-tip{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.special.tip-dismissed .special-tip{opacity:0;visibility:hidden;pointer-events:none}
@media(max-width:600px){.ocean-media{background-position:70% 50%}.ocean-media video{object-position:70% 50%}}
.residence-stories .photo-story figure{aspect-ratio:4/3}
.mnav{z-index:10000}

/* Final site refinements: preserve the official brand and a consistent reading rhythm. */
.wiseman-mark{display:block;background:currentColor;mask:url("/assets/img/wiseman-logo.svg") center/contain no-repeat;-webkit-mask:url("/assets/img/wiseman-logo.svg") center/contain no-repeat}
.brand .wiseman-mark{width:32px;height:30px;flex-shrink:0}
.wiseman-symbol{mask-image:url("/assets/img/wiseman-symbol.svg");-webkit-mask-image:url("/assets/img/wiseman-symbol.svg")}
.brand i{display:block;font-size:var(--type-small);letter-spacing:.32em;opacity:.8;margin-top:0;line-height:1.05}.brand b{font-size:var(--type-small);letter-spacing:.22em}
.pt-brand .wiseman-mark{width:58px;height:40px}
.hd .cta{border:1px solid currentColor;padding:10px 17px;letter-spacing:.14em;line-height:1.2;background:transparent}
.hd .cta:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.hd.inv .cta:hover{background:var(--bg);color:var(--ink);border-color:var(--bg)}
.hero-actions{display:grid;grid-template-columns:repeat(2,minmax(0,210px));justify-content:center;gap:14px}
.hero-actions .tide-button{width:100%;padding:15px 12px}
.plan-drawing{height:320px;min-height:320px;aspect-ratio:auto;padding:0;overflow:hidden}
.plan-drawing img{position:absolute;inset:24px;width:calc(100% - 48px);height:calc(100% - 48px);max-height:none;object-fit:contain}
.plan-figure{min-width:0}.drawing-caption{font-size:var(--type-small);line-height:1.7;color:#BECFD4;margin-top:14px;max-width:48ch}
.featured-plans{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 56px)/3);grid-template-columns:none;gap:28px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;padding-bottom:16px}
.featured-plans .plan-card{min-width:0;scroll-snap-align:start;gap:24px;display:flex;align-items:stretch}
.featured-plans .plan-drawing{height:270px;min-height:270px;flex-shrink:0;max-width:none}
.featured-plans .plan-heading{display:flex;min-height:72px;align-items:start;gap:10px}
.featured-plans .plan-heading h3{font-size:clamp(1.35rem,2vw,1.8rem)}
.featured-plans .plan-heading p{margin:0;text-align:right}
.featured-plans .plan-info{display:flex;flex-direction:column;flex:1}
.featured-plans .plan-info>.plan-link{align-self:start;margin-top:auto}
.carousel-toolbar{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:24px 0 12px}
.carousel-toolbar p{font-size:var(--type-small);color:#536367}.carousel-toolbar>div{display:flex;gap:10px}
.carousel-toolbar button{display:grid;place-items:center;width:44px;height:44px;border:1px solid #728A90;background:none;color:#F3F0E7;font:400 22px var(--sans);cursor:pointer;transition:background .2s,color .2s}
.carousel-toolbar button:hover:not(:disabled){background:#F3F0E7;color:#074B4D}.carousel-toolbar button:disabled{opacity:.3;cursor:default}
.neighborhood-cta{margin-top:24px;font-size:var(--type-small)}
.footer-identity nav[aria-label="Social media"]{flex-direction:row;gap:10px;margin-top:0}
.ft nav[aria-label="Social media"] a{width:40px;height:40px;display:grid;place-items:center;border:1px solid #BAC2C5;border-radius:50%;padding:0;transition:background .2s,color .2s}
.ft nav[aria-label="Social media"] a:hover{background:#074B4D;color:#F3F0E7}.ft nav[aria-label="Social media"] svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round}
.footer-legal{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px;max-width:100%}
.footer-copyright,.equal-housing{white-space:nowrap}
.equal-housing{display:inline-flex;align-items:center;gap:7px;margin:0;line-height:22px}
.equal-housing-icon{display:block;flex:0 0 22px;width:22px;height:19.45px;background:currentColor;mask:url("/assets/img/equal-housing.svg") center/contain no-repeat;-webkit-mask:url("/assets/img/equal-housing.svg") center/contain no-repeat}
.ft .unitpulse-credit{border:0;opacity:.75;font-size:inherit;line-height:22px}
.mtc-root .mtc-v-pill,.mtc-root .mtc-launch{font-family:var(--sans)}
.mtc-root.mtc-v-pill .mtc-launch{width:auto;padding:0 20px;gap:10px;border-radius:999px;box-shadow:0 8px 28px rgba(4,52,58,.17);transition:padding var(--_motion) var(--_motion-ease),gap var(--_motion) var(--_motion-ease),opacity var(--_motion) ease,background-color .2s ease}
.mtc-root.mtc-v-pill.open .mtc-launch{width:auto;padding:0 17px;gap:0}
.mtc-root .mtc-pill-ico{position:relative;left:auto;top:auto;flex:0 0 20px}
.mtc-root .mtc-pill-label{position:static;display:grid;grid-template-columns:1fr;min-width:0;font:500 13px var(--sans);letter-spacing:.01em;transition:grid-template-columns var(--_motion) var(--_motion-ease),opacity .2s ease .12s}
.mtc-root .mtc-pill-label>span{overflow:hidden}
.mtc-root.open .mtc-pill-label{grid-template-columns:0fr;transition-delay:0s}
@media(max-width:600px){
 .mtc-root.mtc-v-pill .mtc-launch,.mtc-root.mtc-v-pill.open .mtc-launch{width:56px;height:56px;padding:0;gap:0;justify-content:center}
 .mtc-root .mtc-pill-label,.mtc-root .mtc-teaser{display:none}
 .mtc-root .mtc-pill-ico{flex:0 0 22px;width:22px;height:22px}.mtc-root .mtc-pill-ico svg{width:22px;height:22px}
}
.mtc-root .mtc-pill-ico svg{stroke-width:1.5}.mtc-root .mtc-foot{align-items:flex-end}
.mtc-root .mtc-in{border-radius:8px;border:1px solid #92A1A6;line-height:22px;padding:10px 12px;box-sizing:border-box}
.mtc-root .mtc-in:focus{outline:none;border-color:#074B4D;box-shadow:0 0 0 4px rgba(7,75,77,.14)}
@media(forced-colors:active){.mtc-root .mtc-in:focus{outline:2px solid Highlight;outline-offset:2px}}
.mtc-root .mtc-send{width:44px;height:44px;border-radius:8px;flex-shrink:0}.mtc-root .mtc-row.user .mtc-bub{white-space:pre-wrap}
.visit-picker{min-width:0;align-self:start}.picker-label{display:block;font-size:var(--type-small);font-weight:500;margin-bottom:8px}
.picker-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:12px 16px;border:1px solid #92A1A6;background:none;color:#074B4D;text-align:left;font:400 16px/1.4 var(--sans);cursor:pointer}
.picker-trigger svg{width:18px;height:18px;flex:0 0 18px;stroke:currentColor;stroke-width:1.5;fill:none;transition:transform .25s}
.picker-trigger[aria-expanded="true"] svg{transform:rotate(180deg)}.picker-trigger:disabled{opacity:.55;cursor:default}
.picker-options{margin-top:10px;padding:12px;background:#EAE8DE;border:1px solid #B8C1C5;animation:tide-dialog-in .25s ease}
.picker-options[hidden]{display:none}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.calendar-head strong{font:500 var(--type-small) var(--sans)}.calendar-head button{background:none;border:0;width:32px;height:36px;font:400 24px var(--sans);color:#074B4D;cursor:pointer}
.calendar-week,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-week span{text-align:center;font-size:var(--type-small);padding:6px 0;color:#607072}
.calendar-days button{height:34px;min-width:0;padding:0;border:1px solid transparent;background:none;color:#074B4D;font:400 var(--type-small) var(--sans);cursor:pointer}
.calendar-days button[aria-current="date"]{border-bottom-color:var(--accent-mid, #AD6643)}.calendar-days button:disabled,.calendar-head button:disabled{opacity:.3;cursor:default}
.calendar-days button:hover:not(:disabled),.calendar-days button[aria-pressed="true"]{background:#074B4D;color:#F3F0E7}
#visit-time-options{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:6px;height:max-content;max-height:270px;overflow:auto}#visit-time-options[hidden]{display:none}
#visit-time-options button{min-height:40px;font:400 var(--type-small) var(--sans);border:1px solid #92A1A6;background:none;color:#074B4D;cursor:pointer;padding:6px}
#visit-time-options button:hover,#visit-time-options button[aria-pressed="true"]{background:#074B4D;color:#F3F0E7}
@media(max-width:1000px){.featured-plans{grid-auto-columns:calc((100% - 24px)/2);gap:24px}}
@media(max-width:600px){.brand .wiseman-mark{width:28px;height:28px}.brand b{font-size:var(--type-small);letter-spacing:.13em}.hd .cta{padding:9px 12px}.hero-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:400px;margin-left:auto;margin-right:auto}.featured-plans{grid-auto-columns:86%;gap:18px}.featured-plans .plan-drawing{height:260px;min-height:260px}.plan-drawing{height:300px;min-height:300px}.carousel-toolbar p{max-width:22ch;line-height:1.8}.equal-housing{margin:0}.picker-trigger{font-size:16px}.calendar-days button{height:40px}.calendar-head strong{font-size:var(--type-small)}}
@media(prefers-reduced-motion:reduce){.picker-options{animation:none}.featured-plans{scroll-behavior:auto}.carousel-toolbar button,.picker-trigger svg{transition:none}}
.utility-hero{padding-top:155px;padding-bottom:60px;max-width:1200px}.utility-hero h1{font:400 clamp(3rem,7.5vw,6.8rem)/1.04 var(--serif);margin:22px 0 28px;letter-spacing:-.02em}.utility-hero h1 em{font-weight:400;color:var(--accent-mid, #AD6643)}.utility-hero>p:last-child{max-width:52ch;color:#536367;font-size:.95rem;line-height:1.9}
.contact-layout,.service-layout{display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,100px);padding-bottom:110px;align-items:start}
.service-layout>img{width:100%;aspect-ratio:4/3;object-fit:cover}.contact-details{padding-top:30px}.contact-details h2,.contact-form-sheet h2{font:400 2.4rem var(--serif);margin:14px 0 16px}.contact-details address{font-style:normal;line-height:1.9}.contact-details>p:not(.kick){font-size:var(--type-small);color:#536367;margin-top:12px}
.office-hours{margin-top:25px;font-size:var(--type-small);max-width:390px}.office-hours>div{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid #BEC6C9;gap:16px}.contact-form-sheet{padding:30px clamp(24px,3vw,44px) 38px;background:#EAE8DE}
.visit-fields textarea{width:100%;padding:12px;border:1px solid #92A1A6;background:transparent;font:400 var(--type-small)/1.7 var(--sans);color:#074B4D;resize:vertical;min-height:150px;border-radius:0}.visit-fields textarea:focus{outline:2px solid #074B4D;outline-offset:2px}
.service-layout>img{aspect-ratio:4/5}.service-step{display:flex;gap:25px;margin:15px 0 30px}.service-step>span{font-size:var(--type-small);color:var(--accent-mid, #AD6643);padding-top:12px}.service-step h2{font:400 2rem var(--serif);margin-bottom:10px}.service-step p{font-size:var(--type-small);line-height:1.8;color:#536367}.service-note{font-size:var(--type-small);line-height:1.8;margin:15px 0 22px;color:#536367}
.policy-copy{padding-bottom:100px}.policy-copy h2{font:400 2rem var(--serif);margin:40px 0 18px}.policy-copy p{font-size:1rem;line-height:1.9;margin:16px 0;color:#425A5E}.policy-copy a{text-underline-offset:4px}.policy-copy .review-notice{padding:18px 22px;background:#E7E4D8;font-size:var(--type-small);border-left:2px solid var(--accent-mid, #AD6643)}
@media(max-width:750px){.utility-hero{padding-top:120px;padding-bottom:45px}.contact-layout,.service-layout{grid-template-columns:1fr;padding-bottom:70px;gap:40px}.service-layout>img{aspect-ratio:4/3}.contact-details{padding-top:0}.contact-form-sheet{padding:26px 22px}.visit-fields textarea{font-size:16px}.utility-hero h1{font-size:3.6rem}}
.neighborhood-map{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(270px,1fr);gap:36px;margin-top:45px;align-items:stretch}.map-canvas{position:relative;min-height:580px;background:#E6E8DD;overflow:hidden}#neighborhood-map-canvas{width:100%;height:100%;min-height:580px;display:block;border:0}.map-canvas [hidden]{display:none!important}.map-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 20px;background:#F3F0E7;color:#074B4D;font-size:var(--type-small)}.map-caption a{text-underline-offset:4px}.map-places{display:flex;flex-direction:column}.map-places button{display:flex;gap:18px;align-items:center;text-align:left;flex:1;width:100%;padding:15px 12px;background:none;color:#F3F0E7;border:0;border-bottom:1px solid #456166;cursor:pointer;transition:background .2s}.map-places button[aria-pressed="true"],.map-places button:hover{background:#084D4F}.place-number{font:400 var(--type-small) var(--sans);color:var(--accent-tint, #D3A884)}.map-places strong{display:block;font:400 clamp(1.15rem,2vw,1.65rem) var(--serif)}.map-places small{display:block;color:#BECFD4;font:.6rem var(--sans);margin-top:5px}.guide-columns li{position:relative;padding-left:46px}.guide-icon{position:absolute;top:25px;left:0;width:26px;height:26px;stroke:var(--accent-mid, #AD6643);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;fill:none}.guide-columns a{font-size:clamp(1.35rem,2.2vw,1.85rem)}
@media(max-width:760px){.neighborhood-map{grid-template-columns:1fr;gap:20px}.map-canvas{min-height:360px}#neighborhood-map-canvas{height:360px;min-height:360px}.map-places{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.map-places button{padding:15px 4px;gap:10px}.map-places strong{font-size:1.15rem}.map-caption{font-size:var(--type-small);padding:14px}}
/* Keep Google's own map attribution visible above the site's caption. */
.map-canvas{display:flex;flex-direction:column}#neighborhood-map-canvas{flex:1;height:580px;min-height:0}.map-caption{position:relative;flex-shrink:0}
@media(max-width:760px){#neighborhood-map-canvas{height:360px;min-height:360px}}
/* Reserve room for the centered rule even on shorter desktop viewports. */
.mark{padding-bottom:150px}
@media(max-width:600px){.mark{padding-bottom:100px}}
.plan-missing{height:320px;min-height:320px;aspect-ratio:auto}
@media(max-width:1000px){.footer-legal{flex-basis:100%}}
@media(max-width:600px){.plan-missing{height:300px;min-height:300px}}

.mtc-root .mtc-ava:not(.mtc-ava-art)>svg{width:24px;height:20px}.mtc-root .mtc-mava:not(.mtc-ava-art)>svg{width:16px;height:13px}
.page-crosslink{padding-top:80px;padding-bottom:80px;border-top:1px solid #BAC2C5}.page-crosslink .section-title{margin:20px 0 28px}.neighborhood-hero{padding-bottom:80px}
.page-crosslink.with-photo{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr);align-items:center;gap:clamp(32px,6vw,88px);padding-top:64px;padding-bottom:64px}
.crosslink-copy .section-title{font-size:clamp(2.6rem,4.8vw,4.2rem)}
.crosslink-photo{aspect-ratio:4/3;overflow:hidden}
.crosslink-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
@media(max-width:760px){.page-crosslink.with-photo{grid-template-columns:1fr;gap:32px}.crosslink-photo{aspect-ratio:3/2}.crosslink-copy .section-title{font-size:clamp(2.6rem,8vw,3.5rem)}}


/* One home entrance: oversized ocean lettering settles into a persistent video cutout. */
.home-page .pt:not(.cover){display:none;animation:none}
.home-page .mark{overflow:hidden;padding-bottom:90px;--hero-entry-drop:clamp(40px,8svh,80px)}
@media(max-width:600px){.home-page .mark{padding-bottom:60px}}
.intro-ready .hero-scroll{height:200svh}
.intro-ready .hero-scroll .mark{position:sticky;top:0;height:100svh}
.home-page .mark h1{font-size:clamp(3.2rem,min(18.8vw,23.51svh),15.51rem)}
.home-page .mark h1 .w span{animation:none;transform:none}
.home-page .mark .tag,.home-page .mark .rule{animation:none;opacity:1}
.hero-copy{position:relative;z-index:1}
.hero-baseline{display:inline-block;width:0;height:0}
.hero-opening{display:none;position:absolute;inset:0;overflow:hidden;background:url('/assets/img/ocean-poster.jpg?v=1') center/cover;pointer-events:none}
.hero-opening video,.hero-opening-veil{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-opening video{opacity:0;transition:opacity .45s ease}
.hero-opening-tone{position:absolute;inset:0;background:rgba(4,52,58,.12)}
.intro-playing .hero-opening video{opacity:1}
.intro-pending .hero-opening,.intro-ready .hero-opening{display:block}
.intro-pending .hero-opening-veil,.intro-pending .hero-opening-tone{opacity:0}
.intro-pending .mark h1,.intro-ready .mark h1{color:transparent}
.intro-pending .mark .tag,.intro-pending .hero-actions,.intro-pending .mark .rule{opacity:0}
.intro-running .hero-opening-type{animation:heroZoomOut 2.6s cubic-bezier(.22,.61,.36,1) 1.2s both}
.intro-running .hero-opening-veil,.intro-running .hero-opening-tone{animation:heroCutout 1s ease 1.2s both}
.intro-running .mark .tag{animation:heroContentIn .8s ease 2.35s both}
.intro-running .hero-actions{animation:heroContentIn .8s ease 2.55s both}
.intro-running .mark .rule{animation:heroContentIn .8s ease 2.75s both}
.intro-pending .hd,.intro-running .hd{background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;color:#F3F0E7}
.intro-running .hd{animation:heroHeaderInk 1s ease 1.2s both}
/* Follow the animated header color directly instead of restarting a child transition each frame. */
.intro-pending .hd .cta,.intro-running .hd .cta{transition:none}
@keyframes heroHeaderInk{from{color:#F3F0E7}to{color:#074B4D}}
.hero-motion-toggle{position:absolute;z-index:2;left:var(--pad);bottom:28px;width:44px;height:44px;display:grid;place-items:center;border:1px solid #92A1A6;border-radius:50%;background:var(--bg);color:var(--ink);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease}
.hero-motion-toggle:focus-visible{opacity:1;pointer-events:auto}
@media(hover:hover) and (pointer:fine){.mark:hover .hero-motion-toggle{opacity:1;pointer-events:auto}}
@media(hover:none),(pointer:coarse),(max-width:1280px){.hero-motion-toggle{opacity:1;pointer-events:auto}}
.hero-motion-toggle[hidden]{display:none}
.hero-motion-toggle svg{width:14px;height:14px;fill:currentColor}
@media(max-height:600px){.home-page .mark{padding-top:74px;padding-bottom:20px;--hero-entry-drop:20px}.home-page .mark h1{font-size:min(18.8vw,19.74svh)}.home-page .mark .tag,.home-page .hero-actions{margin-top:16px}.home-page .mark .rule{display:none}}
@keyframes heroZoomOut{from{transform:translateY(var(--hero-entry-drop)) scale(1.7)}to{transform:translateY(0) scale(1)}}
@keyframes heroCutout{from{opacity:0}to{opacity:1}}
@keyframes heroContentIn{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@media(prefers-reduced-motion:reduce){.hero-opening,.hero-motion-toggle{display:none!important}.home-page .mark h1{color:var(--ink)}.home-page .mark .tag,.home-page .hero-actions,.home-page .mark .rule{animation:none;opacity:1}}

/* Pickers use the browser top layer, outside the dialog's scroll/clipping box. */
.picker-options{position:fixed;inset:auto;margin:0;z-index:200;max-width:calc(100vw - 32px);overflow:auto;overscroll-behavior:contain;color:#074B4D;box-shadow:0 14px 35px rgba(4,52,58,.16);animation:none}
.picker-options::backdrop{background:transparent;pointer-events:none}
/* Legal pages share one centered reading column, including their titles. */
.policy-page{width:min(800px,calc(100% - 2 * var(--pad)));margin-inline:auto}
.policy-page>.wrap{padding-inline:0;max-width:none}
.policy-page .utility-hero{padding-top:clamp(112px,12vw,155px);padding-bottom:48px}
.policy-page .utility-hero h1{font-size:clamp(2.75rem,6vw,5rem);margin-bottom:0}
.policy-copy>:first-child,.policy-copy>div>:first-child{margin-top:0}
.policy-copy{overflow-wrap:anywhere}.policy-copy ul,.policy-copy ol{padding-left:24px;margin:20px 0}.policy-copy li{margin:8px 0}.policy-copy table{width:100%;border-collapse:collapse}.policy-copy td,.policy-copy th{padding:12px;border:1px solid #B8C1C5;text-align:left}

/* Open neighborhood map: local library, cached places, visible OSM attribution. */
#neighborhood-map-canvas{background:#E6E8DD;font-family:var(--sans);isolation:isolate}
#neighborhood-map-canvas .leaflet-tile{filter:saturate(.35) sepia(.12)}
.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:#F3F0E7;color:#074B4D;font-size:var(--type-small)}
.map-toolbar button{font:500 var(--type-small) var(--sans);padding:8px 10px;border:1px solid #9BACB0;background:transparent;color:inherit;cursor:pointer}
.map-notice{position:absolute;z-index:500;top:85px;left:16px;right:16px;padding:14px;background:#F3F0E7;color:#074B4D;font-size:var(--type-small);box-shadow:0 3px 12px #04343A18}
.map-notice[hidden]{display:none}
.map-pin{background:none;border:0}
.map-pin span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #074B4D;border-radius:50%;background:#F3F0E7;color:#074B4D;box-shadow:0 2px 5px #04343A30;font:600 11px var(--sans)}
.map-pin[aria-pressed="true"] span{background:#074B4D;color:#F3F0E7;border-color:#F3F0E7}
.map-pin:focus-visible{outline:3px solid var(--accent, #A4592F);outline-offset:3px;box-shadow:0 0 0 3px #F3F0E7,0 0 0 8px rgba(7,75,77,.25)}
.map-pin.is-home{background:#074B4D;border:1px solid #F3F0E7}
.map-home-symbol{position:absolute;top:11px;left:8px;width:26px;height:20px;background:#F3F0E7;mask:url("/assets/img/wiseman-symbol.svg") center/contain no-repeat;-webkit-mask:url("/assets/img/wiseman-symbol.svg") center/contain no-repeat}
.map-home-label{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);padding:3px 6px;background:#F3F0E7;color:#074B4D;font:500 10px/1.5 var(--sans);letter-spacing:.08em;white-space:nowrap}
.map-pin.is-home[aria-pressed="true"] .map-pin.is-home{background:#074B4D;border:1px solid #F3F0E7}

#neighborhood-map-canvas .leaflet-control-zoom a{background:#F3F0E7;color:#074B4D}
#neighborhood-map-canvas .leaflet-control-attribution{background:#F3F0E7;color:#074B4D;font-size:10px}
#neighborhood-map-canvas .leaflet-control-attribution a{color:#074B4D}
#neighborhood-map-canvas .leaflet-tooltip{background:#074B4D;color:#F3F0E7;border:0;box-shadow:0 3px 10px #04343A22;font:500 11px var(--sans)}
#neighborhood-map-canvas .leaflet-tooltip-top:before{border-top-color:#074B4D}

.map-canvas{container-type:inline-size}
@container(max-width:450px){
  .map-pin span{width:22px;height:22px;margin:3px;font-size:10px}
  .map-pin-4:before{content:"";position:absolute;left:13px;top:14px;width:1px;height:12px;background:#074B4D}
  .map-pin-4 span{transform:translateY(12px)}
  .map-pin-8 span{transform:translate(-6px,-3px)}
}

/* Photo-led page openings retain the Monogram typography and square image edges. */
.floorplans-hero{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;align-content:center;gap:clamp(35px,5vw,90px);padding-top:130px;padding-bottom:35px}
.floorplans-hero h1{font-size:clamp(4.23rem,9.87vw,9.4rem)}
.floorplans-hero .tag{max-width:30ch;line-height:1.9}
.plan-hero-images{display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:1fr 1fr;gap:12px;height:clamp(390px,43vw,610px)}
.plan-hero-images figure{position:relative;overflow:hidden;min-width:0;min-height:0}
.plan-hero-images img{width:100%;height:100%;object-fit:cover}
.plan-hero-main{grid-row:1 / 3}
.plan-hero-main img{object-position:63% center}
.plan-hero-main figcaption{position:absolute;bottom:0;left:0;right:0;padding:22px 16px 16px;background:linear-gradient(transparent,rgba(4,52,58,.7));color:#F3F0E7;font:400 clamp(1.1rem,1.5vw,1.5rem)/1.2 var(--serif)}
.plan-hero-detail:last-child img{object-position:62% center}
.neighborhood-hero{max-width:none;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(35px,5vw,90px);padding-top:135px;padding-bottom:65px}
.neighborhood-hero h1{font-size:clamp(3.2rem,5.17vw,5.64rem)}
.neighborhood-hero-copy>p:last-child{max-width:44ch;color:#536367;font-size:.95rem;line-height:1.9}
.neighborhood-hero-image{position:relative;align-self:stretch;padding-bottom:30px;min-height:390px}
.neighborhood-hero-image img{width:100%;height:100%;max-height:490px;object-fit:cover;object-position:40% center}
.neighborhood-hero-image figcaption{position:absolute;bottom:0;left:0;color:#536367;font-size:var(--type-small);letter-spacing:.04em}
.place-lifestyle{margin:55px calc(-1 * var(--pad)) 0;text-align:left}
.place-scene{position:relative;overflow:hidden;aspect-ratio:3/2}
.place-scene img{display:block;width:100%;height:100%;object-fit:cover}
.place-veil{display:none;position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);pointer-events:none}
.reveal-ready .place-veil{display:block}
.place-type{font-family:var(--serif);font-weight:500;transform-origin:600px 400px}
.place-numerals{font-size:480px}.place-street{font-size:160px}
.place-lifestyle figcaption{display:flex;align-items:start;justify-content:space-between;gap:20px;margin:20px var(--pad) 0;color:#536367;font-size:var(--type-small);letter-spacing:.03em}
.place-address b{display:block;font:400 clamp(1.3rem,2vw,1.7rem)/1.2 var(--serif);color:var(--ink)}
.place-address>span{display:block;margin-top:7px;font-size:var(--type-small);letter-spacing:.12em;text-transform:uppercase}
.place-caption{text-align:right}
@media(prefers-reduced-motion:reduce){.place-veil{display:none!important}.place-scene img{transform:none!important}}
#neighborhood-map-canvas .leaflet-gl-layer{position:absolute;pointer-events:none}
@media(max-width:900px){
 .floorplans-hero{grid-template-columns:1fr;gap:32px;min-height:0;padding-top:130px}
 .floorplans-hero h1{font-size:clamp(4.23rem,11.28vw,7.52rem)}
 .floorplans-hero h1 .w{display:inline-block}.floorplans-hero h1 .w+.w{margin-left:.14em}
 .floorplans-hero .tag{max-width:none;margin-top:16px}
 .plan-hero-images{height:320px;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:1fr}
 .plan-hero-main{grid-row:auto}
 .neighborhood-hero{gap:30px;padding-top:125px}
 .neighborhood-hero h1{font-size:clamp(2.54rem,5.17vw,3.76rem)}
 .neighborhood-hero-image{min-height:340px}
}
@media(max-width:600px){
 .floorplans-hero{padding-top:110px;padding-bottom:20px;gap:26px}
 .floorplans-hero h1{font-size:clamp(3rem,11.28vw,4.23rem)}
 .floorplans-hero .tag{font-size:var(--type-small);letter-spacing:.2em}
 .plan-hero-images{height:230px;display:block}.plan-hero-main{height:100%}.plan-hero-detail{display:none}
 .plan-hero-main img{object-position:center 56%}
 .neighborhood-hero{grid-template-columns:1fr;padding-top:115px;padding-bottom:38px;gap:28px}
 .neighborhood-hero h1{font-size:clamp(2.63rem,10.34vw,3.38rem);margin:18px 0 22px}
 .neighborhood-hero-image{min-height:0;height:255px}
 .neighborhood-hero-copy>p:last-child{font-size:var(--type-small)}
 .place-lifestyle{margin-top:32px}
 .place-lifestyle figcaption{flex-direction:column;gap:14px;margin-top:16px}
 .place-caption{text-align:left}
}

/* Shared long, fine directional arrow; rotation preserves the same geometry. */
.tide-arrow,.calendar-head button[data-month]::before,.mtc-root .mtc-calnav::before{display:inline-block;width:32px;height:12px;flex-shrink:0;background:currentColor;mask:url("/assets/img/arrow-right.svg") center/contain no-repeat;-webkit-mask:url("/assets/img/arrow-right.svg") center/contain no-repeat}
.tide-arrow-left{transform:rotate(180deg)}
.text-link.has-arrow{display:inline-flex;align-items:center;gap:10px}
.calendar-head button[data-month],.mtc-root .mtc-calnav{display:grid;place-items:center;font-size:0}
.calendar-head button[data-month]::before,.mtc-root .mtc-calnav::before{content:"";width:26px}
.calendar-head button[data-month="-1"]::before,.mtc-root .mtc-calnav.prev::before{transform:rotate(180deg)}
.mtc-root .mtc-calnav{width:34px;height:34px}
.picker-trigger svg{stroke-width:1.3}
@media(prefers-reduced-motion:reduce){.visit-directions .tide-arrow{transition:none}}

/* Text links share the header's left-to-right, 300 ms underline draw.
   Background layers also follow wrapped inline links without changing layout. */
:is(
 main a[href]:not(:where(.tide-button,.bfill,.bline,.tcard,.leaflet-control a,.maplibregl-control-container a)),
 .ft nav:not([aria-label="Social media"]) a[href],.ft .unitpulse-credit,.footer-cc,
 .mnav a[href]:not(:where(.tide-button)),.tide-dialog a[href],.mtc-root a[href],.account-text-button,button.plan-link
){
 text-decoration:none;
 border-bottom-color:transparent;
 background-image:linear-gradient(currentColor,currentColor);
 background-repeat:no-repeat;
 background-position:left bottom;
 padding-bottom:6px;
 background-size:var(--link-underline,0%) 1px;
 box-decoration-break:clone;-webkit-box-decoration-break:clone;
 transition:background-size .3s ease;
}
:is(main a,.ft a,.mnav a,.tide-dialog a,.mtc-root a,.account-text-button,button.plan-link,.footer-cc):is(:hover,:focus-visible){--link-underline:100%}
/* The inline fallback stays identifiable without hover, including touch screens. */
.virtual-dialog a.virtual-fallback{--link-underline:100%}
.plan-tools button.plan-link:hover{color:#A8C9CE}
.virtual-dialog a.virtual-fallback:hover{color:var(--accent-kick, #945536)}
.mnav nav a{align-self:flex-start}
.visit-details a.visit-major{width:fit-content;max-width:100%}
@media(prefers-reduced-motion:reduce){
 a,.account-text-button,button.plan-link{transition:none!important}
 .hnav a::after,.hd .resident-login::after{transition:none}
}

/* Application selects and date fields reuse the tour picker’s floating surface. */
.picker-trigger>span{min-width:0;overflow-wrap:anywhere}
.account-picker>.picker-label{font-size:var(--type-small);color:var(--ink);margin-bottom:9px;font-weight:500}
.account-picker>.picker-trigger{background:var(--bg)}
.account-picker>[hidden]{display:none}
.account-options{font-family:var(--sans);line-height:1.5;scrollbar-width:thin}
.option-list{padding:6px}
.picker-option{padding:10px 12px;min-height:44px;font:400 var(--type-small)/1.5 var(--sans);cursor:pointer;overflow-wrap:anywhere;border:1px solid transparent}
.picker-option:hover,.picker-option.is-active{background:#074B4D;color:#F3F0E7}
.picker-option[aria-selected="true"]{border-color:#074B4D;font-weight:600}
.account-options .calendar-days button{height:40px;font-size:var(--type-small)}
.mtc-root .mtc-datebtn{padding:12px 16px;min-height:48px}
.mtc-root .mtc-datebtn svg{width:18px;height:18px;flex:0 0 18px;stroke-width:1.3}

/* The menu keeps one continuous surface through opening and closing. */
.mnav{opacity:1;transform:none;clip-path:inset(0 0 100% 0);visibility:hidden;pointer-events:none;transition:clip-path .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1),visibility 0s .3s}
.mnav.open{opacity:1;transform:translateY(0);clip-path:inset(0);visibility:visible;pointer-events:auto;transition:clip-path .42s cubic-bezier(.16,1,.3,1),transform .42s cubic-bezier(.16,1,.3,1)}
html:has(.mnav[data-closing]){overflow:hidden}
@media(prefers-reduced-motion:reduce){.mnav,.mnav.open{transition:none;transform:none}}

/* The menu close control occupies the hamburger's exact viewport position. */
.mbtn>span,.mnav .mclose>span{position:relative;display:block;width:22px;height:18px}
.mbtn i,.mnav .mclose i{position:absolute;left:0;top:8px;display:block;width:22px;height:2px;margin:0;background:currentColor;border-radius:1px;transform-origin:center;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .2s ease}
.mbtn i:first-child,.mnav .mclose i:first-child{transform:translateY(-6px)}
.mbtn i:last-child,.mnav .mclose i:last-child{transform:translateY(6px)}
.mbtn[aria-expanded="true"] i:first-child,.mnav.open .mclose i:first-child{transform:rotate(45deg)}
.mbtn[aria-expanded="true"] i:nth-child(2),.mnav.open .mclose i:nth-child(2){opacity:0}
.mbtn[aria-expanded="true"] i:last-child,.mnav.open .mclose i:last-child{transform:rotate(-45deg)}
.mnav .mclose{position:fixed;right:auto;border-radius:0;padding:0}
.mnav .mclose:hover{background:transparent;color:#074B4D;border-color:transparent}
@media(prefers-reduced-motion:reduce){.mbtn i,.mnav .mclose i{transition:none}}

/* Readable roles across the selected site; compact layouts retain the same type scale. */
body{font-size:var(--type-body)}
.hnav a,.hd .resident-login,.hd .cta{font-size:var(--type-small);letter-spacing:.08em}
.hnav{gap:clamp(16px,1.6vw,24px)}
.hnav a,.hd .resident-login{font-weight:500}
.hd .resident-login{margin-left:clamp(16px,1.6vw,24px)}
.brand b{font-size:var(--type-small);letter-spacing:.16em}
.brand i{font-size:11px;letter-spacing:.16em}.footer-brand span{font-size:var(--type-caption);letter-spacing:.14em}
.kick,.dialog-sheet .kick,.mark .tag,.phero .tag,.floorplans-hero .tag,.itile .lb,.frow .nm i,.arow .nm i{font-size:var(--type-caption);letter-spacing:.2em}
.text-actions,.text-link,.neighborhood-link,.neighborhood-cta,
.tide-button,.hero-actions .tide-button,.mnav .menu-services .tide-button,
.plan-link,.plan-filters button,.unit-details summary,
.visit-submit,.visit-success-actions .text-link{font-size:var(--type-action);line-height:1.5}
.bfill,.bline,.pactions button.bline{font-size:var(--type-small);letter-spacing:.12em;line-height:1.5}
.intro-copy,.icopy,.story-copy>p:not(.kick),.home-amenities ul,
.faq-list p,.visual-features h3,.visual-features p,.feat .note,.mood .icopy,
.avenue .fine,.visit-intro,.service-step p,.utility-hero>p:last-child,
.neighborhood-hero-copy>p:last-child,.office-hours{font-size:var(--type-body);line-height:1.8}
.story-copy .text-link,.home-amenities .text-link{font-size:var(--type-action)}
.frow .ds,.arow .ds,.visit-details h3,.visit-details .visit-timezone,
.visit-office-hours>div,.ft,.footer-top,.footer-bottom,.mnav .msub{font-size:var(--type-small)}
.ft nav a{line-height:1.7}
.plan-specs dd,.unit-details table{font-size:var(--type-body)}
.plan-heading strong,.featured-plans .plan-heading strong{font-size:1.25rem}
.plan-heading small,.plan-specs dt,.featured-plans .plan-specs dt,
.unit-details thead th,.plan-count,.featured-plans .plan-count,
.special-trigger,.special-tip small,.unit-note,.availability-note,
.drawing-caption,.carousel-toolbar p{font-size:var(--type-small);line-height:1.6}
.plan-specs{grid-template-columns:1fr 1fr 1.25fr;column-gap:14px}
.featured-plans{grid-auto-columns:calc((100% - 56px)/3)}
.featured-plans .plan-heading{flex-wrap:wrap;row-gap:8px;min-height:84px}
.featured-plans .plan-specs{column-gap:12px}
.featured-plans .plan-heading h3{font-size:clamp(1.75rem,2vw,2rem)}
.visit-fields label,.picker-label,.account-picker>.picker-label{font-size:var(--type-small);line-height:1.5}
.visit-fields input,.visit-fields select,.visit-fields textarea,.picker-option{font-size:var(--type-body)}
.visit-fields label span{font-size:inherit}
.calendar-head strong,.calendar-days button,.account-options .calendar-days button,#visit-time-options button{font-size:var(--type-small)}
.calendar-week span{font-size:var(--type-caption)}
.map-toolbar,.map-toolbar button,.map-caption,.map-places small,.place-number{font-size:var(--type-small)}
.map-pin span{font-size:var(--type-caption)}
.map-home-label,#neighborhood-map-canvas .leaflet-tooltip,#neighborhood-map-canvas .leaflet-control-attribution{font-size:var(--type-caption)}
.mtc-root .mtc-card,.mtc-root .mtc-form b,.mtc-root .mtc-form .mtc-go{font-size:var(--type-body)}
.mtc-root .mtc-head-t span,.mtc-root .mtc-form label,.mtc-root .mtc-form .mtc-err,.mtc-root .mtc-slotnote,.mtc-root .mtc-chip,.mtc-root .mtc-calday,.mtc-root .mtc-slot,.mtc-root .mtc-calhead b{font-size:var(--type-small)}
.mtc-root .mtc-day,.mtc-root .mtc-pow,.mtc-root .mtc-by,.mtc-root .mtc-caldow{font-size:var(--type-caption);line-height:1.5}
@media(max-width:1100px){.featured-plans{grid-auto-columns:calc((100% - 28px)/2)}}
@media(max-width:600px){
 .featured-plans{grid-auto-columns:90%}
 .hero-actions{grid-template-columns:1fr;max-width:280px;gap:10px}
 .hero-actions .tide-button{min-height:48px;padding:12px 16px}
 .brand b{font-size:var(--type-caption);letter-spacing:.12em}.brand i{font-size:10px}
 .hd .cta{padding:9px 12px}
 .mnav .menu-services{gap:10px}.mnav .menu-services .tide-button{padding:12px 18px}
 .plan-specs{column-gap:10px}
 .itile .lb{left:14px;right:14px;bottom:14px;letter-spacing:.14em}
 .arow .ds{white-space:normal}
}
.place .amen span,.tcard .ext,.tcard .tg i,.tours .fine{font-size:var(--type-small);line-height:1.6}
.place .amen span,.tcard .ext,.tcard .tg i{letter-spacing:.1em}
.pt-sub{font-size:var(--type-caption)}
.mtc-root .mtc-badge{font-size:var(--type-caption)}
.mtc-root .mtc-slotnote,.mtc-root .mtc-caldow{opacity:1;color:#536367}
@media(max-width:360px){.hd .brand{gap:8px}.hd .cta{padding:9px 10px}}

/* Keep the header focused; the complete page list remains in the menu. */
.hnav{display:flex;margin-left:auto}
.hnav a:not([href="/floorplans"]):not([href="/residences"]),.hd .resident-login{display:none}
.hd .cta{margin-left:24px}
.hd .mbtn{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;background:none;border:0;padding:0;color:inherit;margin-left:16px;cursor:pointer}
.text-actions{gap:12px;align-items:center}
.text-actions .tide-button{padding:13px 22px;border:1px solid var(--ink);font-weight:500}
.home-amenities .tide-button{margin-top:8px}
.story-copy .tide-button{margin-top:20px}
@media(max-width:760px){.hnav{display:none}.hd .cta{margin-left:auto}.hd .mbtn{margin-left:10px}}

/* A bounded menu column and quieter repeated card actions. */
.mnav>nav,.mnav>.menu-services,.mnav>.msub{width:100%;max-width:640px;margin-left:auto;margin-right:auto}
.featured-plans .plan-info>.plan-link{min-height:44px;border-bottom:0}

/* Main actions share sentence case and dimensions across links and buttons. */
:is(main,.tide-dialog,.mnav) .tide-button,main .pactions :is(.bfill,.bline){display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;font:500 var(--type-action)/1.4 var(--sans);letter-spacing:.03em;text-transform:none;text-align:center}

/* ─────────────────────────────────────────────────────────────────────────
   Hero click-to-call, and the sitewide move-in offer strip.
   Both are one feature block so the promotion can be removed in one cut:
   delete this section, public/assets/offer-banner.js, and the four <head>
   script tags. The :root scroll-padding-top below also references --banner-h,
   which resolves to 0px whenever the strip is absent.
   ───────────────────────────────────────────────────────────────────────── */

/* The leasing number, appended to the hero kicker. `padding` builds a 44px
   tap target on a line whose text is only ~19px tall; the negative margin
   cancels that padding's layout cost, so the kicker grows by one pixel
   instead of twenty-four and the hero composition is untouched. */
.tag-call{display:inline-block;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px;padding:18px 4px;margin:-18px 0;font-weight:500;white-space:nowrap}
/* hover 不降文字对比(2026-09-18,#586 真环境实测):experience/gallery 的 tag-call 坐在深青 hero 上,
   换 accent 深铜字色会从米色掉到 ~1.7:1;affordance 移到下划线(accent+加粗),字色不动,明暗底通用。 */
.tag-call:is(:hover,:focus-visible){text-decoration-color:var(--accent, #A4592F);text-decoration-thickness:2px}

/* One property drives every anchor the strip displaces. Absent, dismissed and
   expired all resolve to 0px, so those three states cannot drift apart.
   `:root.has-offer-banner` is compound on purpose: `:root` and a bare
   `.has-offer-banner` tie at specificity (0,1,0) and the winner would depend
   on source order. */
:root{--banner-h:0px}
:root.has-offer-banner{--banner-h:44px}

/* The header is position:fixed with `inset:0 0 auto 0`; this longhand lands
   later and moves it down. */
.hd{top:var(--banner-h)}

/* The home hero is exactly one viewport tall, so it must lose what the strip
   takes or its bottom scrolls away. `.mark` and `.hero-scroll` exist only on
   index.html, so these need no page scoping. */
.mark{min-height:calc(100svh - var(--banner-h))}
/* During the intro the hero is sticky at top:0 inside a 200svh scrubber.
   Matching the existing three-class selector so this override actually wins. */
.intro-ready .hero-scroll .mark{top:var(--banner-h);height:calc(100svh - var(--banner-h))}

.offer-bar{position:fixed;inset:0 0 auto 0;z-index:95;display:flex;align-items:center;justify-content:center;gap:clamp(12px,2vw,26px);height:var(--banner-h);padding:0 clamp(12px,3vw,40px);background:var(--deep);color:var(--bg);font:500 var(--type-caption)/1.3 var(--sans);letter-spacing:.04em}
.offer-copy{display:flex;align-items:baseline;gap:10px;margin:0;min-width:0}
.offer-headline{font-weight:600;white-space:nowrap}
.offer-detail{opacity:.82;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.offer-action{flex:none;background:var(--bg);color:var(--deep);border:0;padding:7px 16px;font:600 var(--type-caption) var(--sans);letter-spacing:.06em;cursor:pointer;transition:background .25s var(--ease)}
.offer-action:is(:hover,:focus-visible){background:var(--tide)}
.offer-dismiss{flex:none;background:none;border:0;color:inherit;opacity:.7;font-size:1.1rem;line-height:1;padding:10px;cursor:pointer;transition:opacity .25s ease}
.offer-dismiss:is(:hover,:focus-visible){opacity:1}

/* The shared .special tooltip opens upward, which from a strip at the top of
   the viewport would put it off-screen. Flip it below the trigger and move
   its arrow to match. */
/* The plan-card trigger draws its dash as a border-bottom on a padded box,
   which in this much tighter bar floats the dash far under the word and runs
   it into the bar's bottom edge. Underline the TEXT instead, so the affordance
   stays attached to "Terms" while the padding still carries the tap target. */
.offer-terms .special-trigger{color:var(--tide);border-bottom:0;text-decoration:underline;text-decoration-style:dashed;text-decoration-color:rgba(168,201,206,.6);text-underline-offset:4px;font-size:var(--type-caption);padding:10px 2px;white-space:nowrap}
.offer-terms .special-tip{top:calc(100% + 10px);bottom:auto;left:auto;right:0;transform:none}
.offer-terms .special-tip:after{top:auto;bottom:100%;left:auto;right:20px;border-top-color:transparent;border-bottom-color:var(--bg)}

/* Below 600px the detail drops out — the headline is the part that earns the
   tap, and the full wording stays one tap away in the terms tooltip. The
   height is declared rather than measured because --banner-h has to be
   correct before the first paint.

   This was two wrapped rows, which read badly: the headline centred on its
   own line while `space-between` threw the action hard left, the dismiss hard
   right and left "Terms" floating at an arbitrary midpoint — three unrelated
   things under a centred title. One centred row instead, in DOM order, with
   the dismiss lifted out of the flow and pinned to the edge where a close
   control belongs. That also brings the strip down from 64px to 48px, which
   the hero gets back. */
@media(max-width:600px){
  :root.has-offer-banner{--banner-h:48px}
  .offer-bar{flex-wrap:nowrap;justify-content:center;gap:10px;padding:0 32px 0 12px}
  .offer-detail{display:none}
  .offer-copy{flex:0 1 auto;min-width:0}
  .offer-headline{white-space:nowrap}
  .offer-action{flex:0 0 auto;padding:6px 12px}
  .offer-dismiss{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:8px}

  /* The tooltip is absolute against `.special`, which on this bar sits near
     the middle of the row — with `right:0` it ran 63px off the left edge of a
     320px screen, so the disclaimer was partly unreadable. Dropping `.special`
     to static hands the containing block to `.offer-bar`, and the tip becomes
     a panel spanning the bar's width. Its arrow would point at nothing, so it
     goes. */
  .offer-terms{position:static}
  .offer-terms .special-tip{left:12px;right:12px;width:auto;top:calc(100% + 8px);bottom:auto;transform:none}
  .offer-terms .special-tip:after{display:none}
}

/* Under ~400px the word "Terms" no longer fits beside the claim and the
   action without the headline being squeezed into an ellipsis, so it becomes
   the standard information mark. The button keeps its text node and an
   explicit aria-label, so its accessible name is unchanged. */
@media(max-width:400px){
  .offer-terms .special-trigger{font-size:0;padding:10px 2px}
  .offer-terms .special-trigger::after{content:'\24D8';font-size:14px;line-height:1}
}

/* The strip is decoration over content; honour a reduced-motion preference by
   keeping its tooltip transition instant rather than sliding. */
@media(prefers-reduced-motion:reduce){.offer-terms .special-tip{transition-duration:0s}}

/* ─────────────────────────────────────────────────────────────────────────
   Brand lockup — aligned to the official Wiseman mark (client call,
   2026-09-14). Two corrections:

   1. Colour. `.wiseman-mark` is a CSS mask filled with `currentColor`, so it
      has no colour of its own — it took the concept's deep green. It stays
      adaptive on purpose (the header inverts to cream over the hero video and
      the symbol has to follow), so the fix was the palette itself: the greens
      are now the brand teals, and the mark inherits one. See
      docs/CONTENT.md "Brand" for the official values.
   2. Weight. The official lettering under the bars is LIGHT and widely
      tracked; the lockup was set at 600, which read heavier than the logo it
      sits beside. 400 is the lightest weight already loaded, so this costs no
      extra font file, and holds up at 13px where 300 would go fragile.
   ───────────────────────────────────────────────────────────────────────── */
.brand b{font-weight:400}
/* opacity is a contrast control here, not decoration: the byline is 10px at
   weight 400, so it needs 4.5:1. Measured with axe against the brand teal on
   the cream ground, .75 gives 4.36:1 and fails — it was .8 before the teal
   re-tone and dropping it was this file's own regression. .85 restores the
   margin the re-tone ate; do not lower it without re-running the axe scan. */
.brand i{font-weight:400;opacity:.85}

/* Brand sand-yellow. Unusable for text on cream — #FEDA77 on #F3F0E7 is about
   1.1:1 — so it is reserved for non-text accent: as a solid it carries deep
   teal text at roughly 8:1, which is why the offer strip's action uses it.
   Both values stay here rather than in each page's :root: they are the Wiseman
   brand sand, shared by every property, not a per-property accent. */
:root{--sand:#FEDA77;--sand-hover:#FFE9A4}
.offer-action{background:var(--sand);color:var(--deep)}
.offer-action:is(:hover,:focus-visible){background:var(--sand-hover)}

/* ─────────────────────────────────────────────────────────────────────────
   Two serifs, split by job (2026-09-14).

   The client's "hard to read" complaint is about serif at READING size, where
   a Didone's hairlines disappear — not about the giant hero, where the same
   contrast is the point and the concept's whole idea. So the roles split:

     --serif          Newsreader  — every heading you actually read: section
                                    titles, plan names, tooltips, captions.
                                    Moderate contrast, real italic, variable
                                    optical size.
     --serif-display  Prata       — the four page-filling titles only.

   Prata sets about 6% wider than Bodoni at the same size: at 218px the home
   hero's widest line measures 918px in Prata against Bodoni's 865px. So every
   display font-size is scaled by 0.94, which brings it back to 863px — the
   fit the concept was approved with, within two pixels.

   That scaling is applied in place, at each declaration, rather than as an
   override at the end of this file: several of the sizes are responsive
   variants inside media queries, and a trailing override would beat all of
   them at every width and flatten the type scale.
   ───────────────────────────────────────────────────────────────────────── */
:root{--serif-display:'Prata',Georgia,serif}
.mark h1,.phero h1,.floorplans-hero h1,.neighborhood-hero h1{font-family:var(--serif-display)}

/* Prata's caps need more headroom than the line box gives them.

   Measured: Prata's font box is 1.35em (ascent .99 + descent .36) against
   Bodoni's 1.15em, but these display lines are set at line-height .96. That
   puts the baseline .795em below the top of the line box while Prata's ink
   rises .82em — so the caps overshoot by .025em and `.w`, which is
   overflow:hidden for the rise-in reveal, sliced the tops flat.

   Raising line-height to ~1.05 would fix it and visibly loosen the display
   stack, which is a design change. Instead the clip window itself grows
   upward: overflow clips at the PADDING box, so padding-top enlarges the
   visible area while the negative margin keeps the layout identical.

   Top only, deliberately. The reveal starts at translateY(112%) — below the
   box — so any padding-bottom would expose the text before it animates in. */
.mark h1 .w,.phero h1 .w,.floorplans-hero h1 .w,.neighborhood-hero h1 .w{padding-top:.09em;margin-top:-.09em}

/* Banner clearance for every page that is not the home hero.

   The header is position:fixed, so nothing reserves space for it — each page
   hero hard-codes its own top padding (110px, 125px, 130px …) to clear it.
   The offer strip moves the header down by --banner-h but those paddings did
   not follow, so on the inner pages the title ran up under the header: on
   /floorplans at 375px the h1 sat at 110px with the header ending at 126px,
   a 16px overlap. Found by looking at the inner pages on a phone; the home
   hero never showed it because its sticky rule already offsets by --banner-h.

   One rule rather than adding --banner-h to a dozen paddings and their
   responsive variants. `.mark` is the home hero and exists only on index.html
   (it does not match `wiseman-mark`, which is a different class token), so
   this hits exactly the twelve other pages — including apply, handoff and the
   logins, which share no hero class with the rest. --banner-h is 0px whenever
   the strip is absent, dismissed or expired, so this is inert without it. */
main:not(:has(.mark)){padding-top:var(--banner-h)}

/* The separator belongs to the number, not to the line before it.

   On the narrow floor-plans hero the kicker wrapped as "… PRICING ·" with the
   separator stranded at the end of the line. A literal "·" plus &nbsp; in the
   markup does not fix it: .tag-call is an inline-block, and browsers take a
   line-break opportunity before an atomic inline regardless of the
   non-breaking space in front of it. Generating the separator inside the link
   makes "· Call (213) 964-9720" one unbreakable box, so it wraps whole. */
.tag-call::before{content:'\00B7\00A0'}
/* Windows High Contrast / forced-colors: fills are stripped by the OS, so
   every control that reads through its background needs a real border, and
   selected states need a system-color repaint (not just a fill swap). */
@media (forced-colors: active){
 .mtc-chip,.mtc-launch,.mtc-go,.tide-button,.map-pin span,.plan-filters button,.mt-a11y-btn,.mt-a11y-panel button{border:1px solid ButtonText}
 .map-pin.is-home{border:2px solid ButtonText}
 .plan-filters button[aria-pressed="true"],.map-places button[aria-pressed="true"]{outline:2px solid Highlight;outline-offset:2px}
 .mtc-pill-label,.mtc-teaser{forced-color-adjust:auto}
}

/* WCAG: --accent is #A4592F, 4.55:1 on cream. The #C8784D it replaced measured
   2.95:1 — under the 3:1 large-text/UI line — and the STATIC em/index accents
   are what automated scanners flag (Unruh plaintiffs run exactly those).
   Hover/focus gain a non-color cue (underline / double ring) so state changes
   never hang on a marginal hue; the ring's cream halo survives dark heroes.

   2026-09-15: these values moved into each page's :root as --accent /
   --accent-kick / --accent-mid / --accent-tint / --accent-soft / --accent-cream,
   so a second property retones without touching this file. The brand sand
   (--sand / --sand-hover) stays in this file instead, because it is Wiseman's,
   not the property's. The block below still exists to beat specificity, not to
   hold colour. See docs/superpowers/specs/2026-09-15-motor-midway-design.md. */
html .mani p.big em,html .close h2 em,html .arow .nm i{color:var(--accent, #A4592F)}
html .hnav a[aria-current="page"]::after{background:var(--accent, #A4592F);border-color:var(--accent, #A4592F)}
/* .hd .cta is deliberately NOT in this list. It FILLS with ink on hover, so the
   fill is already the non-colour cue this rule exists to provide — and taking
   the copper text left copper on a teal fill at 1.91:1, on the primary call to
   action. The .bline buttons below are text-on-cream, where #A4592F is 4.55:1
   and the underline is the cue. Keep the two treatments apart. */
html .bline:hover,html .close .bline:hover{color:var(--accent, #A4592F);text-decoration:underline;text-underline-offset:4px}
html .hd .cta:focus-visible,html .bline:focus-visible,html .close .bline:focus-visible{color:var(--accent, #A4592F);outline:3px solid var(--accent, #A4592F);outline-offset:3px;box-shadow:0 0 0 3px #F3F0E7}
html h2 em,html .section-title em{color:var(--accent, #A4592F)}
html [data-dark] h2 em,html [data-dark] .section-title em,html [data-dark] .kick{color:var(--accent-tint, #D3A884)}
html [data-dark] .carousel-toolbar p{color:#BECFD4}
html .place-number{color:var(--accent-soft, #E0BE9F)}
html .story-copy h2 em{color:var(--accent, #A4592F)}
html .home-amenities h2 em{color:var(--accent, #A4592F)}
html .pindex .carousel-toolbar p{color:#BECFD4}

/* A2P/10DLC SMS opt-in. The wording is compliance-locked (sms-consent.test pins
   it byte-for-byte); only the presentation lives here. Set apart from the form
   as a quiet fine-print card — a hair lighter than the #F3F0E7 dialog so it
   reads as its own panel — rather than dense text jammed under the fields. */
.visit-sms{display:flex;gap:11px;align-items:flex-start;font-size:.72rem;line-height:1.6;color:#536367;margin:14px 0 4px;padding:11px 13px;background:#FBFAF6;border:1px solid rgba(7,75,77,.18);border-radius:10px}
.visit-sms input{margin-top:1px;width:16px;height:16px;accent-color:#074B4D;flex:none;cursor:pointer}
.visit-sms a{color:#074B4D;text-decoration:underline;text-underline-offset:2px}

/* Persistent cookie-preferences control, in the footer policy nav.

   The consent panel previously opened only from the banner and from the
   notice shown when a 3D tour is blocked — so once a visitor had answered,
   there was no way back to change or withdraw the choice. `data-cc` is the
   vendored library's own declarative hook, so this needs no bespoke JS and
   cannot drift from its API.

   A dialog opener is a button, not a link, so it needs the UA chrome removed
   to sit in the nav like its siblings; it joins the shared underline-draw
   treatment above rather than carrying a style of its own. */
.footer-cc{appearance:none;-webkit-appearance:none;background:none;border:0;margin:0;padding:0;font:inherit;color:var(--ink);text-align:left;align-self:flex-start;line-height:1.7;cursor:pointer}

/* Keyboard focus must not land under the fixed header.

   The header is position:fixed, so it paints over content that scrolls beneath
   it — including whatever the user just tabbed to. WCAG 2.2 SC 2.4.11 Focus Not
   Obscured (Minimum), Level AA. Reproduced on /floorplans: a focusable control
   sat inside the 74px band and hit-tested to the header.

   scroll-padding-top on the scrollport is the fix, not scroll-margin-top on the
   targets: scroll-margin only helps anchor jumps and scrollIntoView on the
   elements that carry it, and the two rules that used to be here sat on
   CONTAINERS (.plan-card, .policy-copy h2), which does nothing for sequential
   focus on their descendants. They were removed rather than kept, because the
   two properties are additive and would have stacked.

   Header measures 74px, and 62px at <=430px; +12px so focus is not flush
   against the chrome. --banner-h collapses to 0px when the offer strip is
   absent, so this tracks it automatically. */
:root{scroll-padding-top:calc(86px + var(--banner-h))}
@media(max-width:430px){:root{scroll-padding-top:calc(74px + var(--banner-h))}}
