/* ===== Reside — approved base styles (journey, header, closing, footer) ===== */
:root{--bg:#101b19;--ink:#f0f2e9;--muted:#a4b0a7;--line:rgba(221,234,217,.18);--accent:#d3ef91;--page:clamp(1.4rem,4.1vw,5rem);font-family:'DM Sans',Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:6rem}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}::selection{background:var(--accent);color:var(--bg)}.skip-link{position:fixed;top:-5rem;left:1rem;z-index:100;background:var(--accent);color:var(--bg);padding:1rem}.skip-link:focus{top:1rem}.header{height:100px;position:absolute;inset:0 0 auto;z-index:10;padding:0 var(--page);display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:1rem}.wordmark{font-size:2.4rem;line-height:1;font-weight:650;letter-spacing:-.13rem}.brand-dot{color:var(--accent)}.brand-sub{font-size:.61rem;line-height:1.3;letter-spacing:.12rem;border-left:1px solid var(--line);padding-left:1rem;max-width:4.9rem}.header nav{display:flex;gap:2.5rem;font-size:.875rem}.header nav a{color:#c7cfc8;transition:color .2s}.header nav a:hover{color:var(--accent)}.header-cta{display:flex;align-items:center;gap:2rem;padding:.8rem 1.2rem;border:1px solid #748271;border-radius:3rem;font-size:.875rem}.header-cta:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.header-cta span{font-size:1.25rem}.stage{height:100svh;min-height:760px;position:relative;overflow:hidden}.scene,.stage-shade{position:absolute;inset:0}.scene{background:radial-gradient(ellipse at 64% 50%,#2a382c 0,transparent 60%)}.hero-model{position:absolute;width:76%;height:85%;object-fit:contain;right:-8%;top:13%}.stage-shade{background:linear-gradient(90deg,var(--bg),rgba(16,27,25,.65) 29%,transparent 54%);pointer-events:none}.hero-copy{position:absolute;top:26%;left:var(--page);z-index:2;max-width:46%}.eyebrow{font-size:.75rem;letter-spacing:.13em;line-height:1.5;display:flex;gap:.7rem;align-items:center;font-weight:550}.mini-line{display:block;width:1.6rem;height:1px;background:var(--accent)}h1{font-size:clamp(4.5rem,7.6vw,8.5rem);font-weight:450;line-height:.99;letter-spacing:-.067em;margin:2rem 0 1.7rem}h1 em{font-style:normal;color:var(--accent)}.hero-description{color:#b7c2b8;font-size:1rem;line-height:1.7;max-width:25rem}.text-link{display:inline-flex;gap:1.3rem;align-items:center;font-size:.94rem;margin-top:1.6rem}.round-arrow{display:grid;place-items:center;width:2.6rem;height:2.6rem;border:1px solid #667163;border-radius:50%;font-size:1.2rem}.text-link:hover .round-arrow{background:var(--accent);color:var(--bg);border-color:var(--accent)}.stage-topline{position:absolute;top:132px;right:var(--page);display:flex;gap:2rem;color:#9eaaa0;font-size:.65rem;letter-spacing:.1em}.stage-bottom{position:absolute;bottom:2rem;left:var(--page);right:var(--page);display:flex;align-items:center;justify-content:space-between;font-size:.65rem;letter-spacing:.12em;color:#b2bdb1}.scroll-hint{display:flex;align-items:center;gap:1.5rem}.scroll-hint span{font-size:1.1rem;color:var(--accent)}.concept-caption{color:#8c998e;font-size:.62rem}.first-note{padding:7rem var(--page);border-top:1px solid var(--line)}h2{font-size:clamp(2.5rem,4.5vw,5rem);line-height:1.08;font-weight:450;letter-spacing:-.05em}.first-note>p:last-child{max-width:38rem;font-size:1.1rem;line-height:1.7;color:var(--muted)}
@media(max-width:760px){.header{height:80px}.header nav{display:none}.wordmark{font-size:2rem}.brand-sub{display:none}.header-cta{padding:.6rem 1rem;gap:1rem}.stage{min-height:820px}.hero-copy{top:16%;max-width:94%;}.eyebrow{font-size:.65rem}h1{font-size:clamp(4.3rem,15vw,6rem);margin:1.5rem 0 1rem}.hero-description{font-size:.94rem}.hero-model{width:112%;height:49%;top:48%;right:-11%}.stage-shade{background:linear-gradient(180deg,var(--bg),transparent 60%)}.stage-topline{display:none}.stage-bottom{bottom:1.5rem;gap:1rem}.scroll-hint{display:none}.concept-caption{font-size:.6rem}.text-link{margin-top:.8rem}.first-note{padding:4rem var(--page)}}
.brand-sub{font-size:.75rem;max-width:5.7rem}.eyebrow{font-size:.75rem}.stage-topline,.stage-bottom,.concept-caption{font-size:.75rem}.journey{position:relative}.js .journey{height:580svh}.js .stage{position:sticky;top:0;height:100svh;min-height:680px}.scene canvas{width:100%;height:100%;display:block;position:absolute;inset:0;opacity:0;transition:opacity .8s}.canvas-ready .scene canvas{opacity:1}.canvas-ready .hero-model{opacity:0}.chapter-copy:not(.hero-copy){position:relative;padding:4rem var(--page);max-width:40rem}.chapter-copy h2{margin:1.4rem 0;font-size:clamp(3.4rem,5.3vw,6rem);line-height:1.04}.chapter-copy h2 em{font-style:normal;color:var(--accent)}.chapter-copy>p:not(.eyebrow):not(.room-note){font-size:1rem;line-height:1.7;color:#b7c2b8;max-width:24rem}.js .chapter-copy{position:absolute;left:var(--page);top:25%;max-width:43%;padding:0;opacity:0;visibility:hidden;will-change:transform,opacity;z-index:3}.js .hero-copy{opacity:1;visibility:visible}.detail-rule{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.2rem;display:flex;flex-direction:column;gap:.6rem}.detail-rule>span{font-size:.75rem;letter-spacing:.1em;color:#9eafa0}.detail-rule strong{font-size:1rem;font-weight:450}.amenity-list{margin:1.6rem 0 0;padding:0;list-style:none;max-width:24rem}.amenity-list li{border-top:1px solid var(--line);padding:.7rem 0;font-size:.94rem}.amenity-list li span{display:inline-block;width:2.2rem;color:#9daa91;font-size:.75rem}.room-metrics{display:flex;gap:3rem;margin-top:1.8rem;border-top:1px solid var(--line);padding-top:1.5rem}.room-metrics>div{display:flex;flex-direction:column;gap:.5rem}.room-metrics strong{font-size:3rem;line-height:1;font-weight:450;letter-spacing:-.04em}.room-metrics strong span{font-size:1.5rem;margin-left:.35rem}.room-metrics>div>span{font-size:.75rem;color:#9eafa0;letter-spacing:.09em}.room-note{font-size:.75rem;color:#9dac9e;line-height:1.6;margin-top:1.2rem}.chapter-nav{position:absolute;right:var(--page);top:44%;display:flex;flex-direction:column;gap:1.1rem;z-index:5}.chapter-nav a{font-size:.75rem;color:#94a492;width:2rem;min-height:28px;display:flex;align-items:center;justify-content:flex-end;position:relative}.chapter-nav a::after{content:'';width:3px;height:0;position:absolute;right:-.8rem;background:var(--accent);transition:height .3s}.chapter-nav a[aria-current]{color:var(--accent)}.chapter-nav a[aria-current]::after{height:18px}.scene-callouts{position:absolute;bottom:18%;left:52%;z-index:3;pointer-events:none}.scene-tag{font-size:.75rem;letter-spacing:.09em;display:none;color:#ccd5c4;background:rgba(16,27,25,.76);border:1px solid #697759;padding:.65rem .85rem;backdrop-filter:blur(12px)}.scene-tag:first-child{display:block}.journey-progress{position:absolute;bottom:0;left:0;width:100%;height:2px;background:#26382d}.journey-progress span{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}.closing{padding:7rem var(--page) 4rem;text-align:center;position:relative;background:radial-gradient(ellipse at 50% 100%,#283824 0,transparent 68%)}.closing .eyebrow{justify-content:center;color:#a1b298}.closing h2{font-size:clamp(3rem,5.3vw,6rem);margin:2rem 0}.closing h2 em{font-style:normal;color:var(--accent)}.closing .text-link{margin-top:1rem}.closing-note{font-size:.8rem;line-height:1.7;color:#94a48e;margin:4.5rem 0 0}footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 var(--page);padding:2rem 0;border-top:1px solid var(--line);font-size:.8rem;color:#a9b5a3}footer .wordmark{color:var(--ink);font-size:2rem}footer a:last-child{color:var(--ink)}body:not(.js) .stage{height:auto;overflow:visible;padding-top:100svh}body:not(.js) .hero-copy{top:180px}body:not(.js) .chapter-nav,body:not(.js) .stage-bottom,body:not(.js) .scene-callouts{display:none}body:not(.js) .scene{height:100svh}body:not(.js) .stage-shade{height:100svh}
@media(min-width:1500px){.js .chapter-copy{top:27%}}@media(max-height:760px) and (min-width:761px){.js .chapter-copy{top:20%}.chapter-copy h2{font-size:4rem;margin:.8rem 0}h1{font-size:6rem;margin:1rem 0}.amenity-list{margin-top:1rem}.amenity-list li{padding:.5rem 0}.stage-topline{top:120px}}
@media(max-width:900px){.header nav{gap:1.4rem}.chapter-copy h2{font-size:3.5rem}.scene-callouts{left:48%;bottom:16%}}
@media(max-width:760px){.js .journey{height:560svh}.js .stage{min-height:760px}.js .chapter-copy{top:125px;max-width:calc(100% - 2 * var(--page));width:100%;}.js .hero-copy{top:126px}.chapter-copy h2{font-size:clamp(2.8rem,10vw,3.7rem);line-height:1.03;margin:1.1rem 0}.chapter-copy h2 br:nth-of-type(2){display:none}.chapter-copy>p:not(.eyebrow):not(.room-note){font-size:.94rem;line-height:1.6;max-width:24rem}.hero-copy .hero-description br{display:none}.hero-copy .hero-description{max-width:21rem}.hero-copy h1{font-size:clamp(4rem,14vw,5rem)}.stage-shade{background:linear-gradient(180deg,var(--bg) 0,rgba(16,27,25,.85) 32%,transparent 57%)}.stage-bottom{font-size:.75rem;bottom:1.2rem;gap:.5rem}.concept-caption{font-size:.75rem}.chapter-nav{right:1.5rem;top:auto;bottom:5.1rem;flex-direction:row;gap:1.5rem}.chapter-nav a{width:auto;min-width:24px;min-height:32px}.chapter-nav a::after{right:auto;bottom:0;height:2px!important;width:0;transition:width .2s}.chapter-nav a[aria-current]::after{width:24px}.scene-callouts{left:var(--page);bottom:9.5rem;max-width:85%;display:none}.detail-rule{margin-top:1.2rem;padding-top:1rem;gap:.4rem;max-width:24rem}.detail-rule>span{font-size:.75rem}.amenity-list{display:grid;grid-template-columns:1fr 1fr;gap:0 .8rem;margin-top:1.2rem;max-width:100%}.amenity-list li{font-size:.875rem;padding:.65rem 0}.amenity-list li span{width:1.5rem}.room-metrics{gap:2rem;margin-top:1.2rem;padding-top:1rem;max-width:25rem}.room-metrics strong{font-size:2.2rem}.room-metrics>div>span{font-size:.75rem}.room-note{font-size:.75rem;margin-top:.8rem}.closing{padding:4.5rem var(--page) 3rem}.closing h2{font-size:3rem}.closing-note{margin-top:3rem}footer{flex-wrap:wrap;gap:1.8rem;font-size:.75rem}footer>*{width:calc(50% - 1rem)}footer>*:nth-child(even){text-align:right}.stage-topline{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .chapter-copy{will-change:auto}}

/* =====================================================================
   Reside — additions: rate card, add-ons, receipt, the standard,
   for employers, proposal sheet, and the reveal choreography.
   Hidden "pre-reveal" states are scoped under html.anim, which only
   pricing.js sets, so the page renders fully at rest without JS.
   ===================================================================== */
body{background:var(--bg);font-family:inherit;font-size:1rem}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- reveal choreography ---- */
.anim .reveal{opacity:0;transform:translateY(22px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--dl,0ms)}
.anim .reveal.in{opacity:1;transform:none}
.lines .line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.anim .lines .line>span{display:block;transform:translateY(112%);transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.anim .lines .line:nth-child(2)>span{transition-delay:.1s}
.anim .lines.in .line>span{transform:none}

/* ---- 04 · pricing ---- */
.pricing{position:relative;z-index:4;isolation:isolate;overflow:hidden;background:#e5ebdf;color:#17251e;padding:7.5rem var(--page) 6.5rem}
.pricing .mini-line,.employers .mini-line{background:#63705e}
.pricing-grid{position:absolute;inset:-120px;z-index:-1;pointer-events:none;background-image:linear-gradient(rgba(23,37,30,.085) 1px,transparent 1px),linear-gradient(90deg,rgba(23,37,30,.085) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 62% 55% at 70% 22%,#000 5%,transparent 70%);mask-image:radial-gradient(ellipse 62% 55% at 70% 22%,#000 5%,transparent 70%);animation:drift 80s linear infinite}
@keyframes drift{to{transform:translate(56px,56px)}}
.pricing-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem 4rem;align-items:end;margin-bottom:3.6rem}
.pricing-intro h2{font-size:clamp(3.5rem,5.7vw,6.6rem);margin:1.6rem 0 0;line-height:1.02}
.pricing-intro h2 .soft{color:#63705e}
.pricing-lede{max-width:30rem}
.pricing-lede p{margin:0;font-size:1.06rem;line-height:1.7;color:#4d5c4b}
.pricing-lede .small{font-size:.94rem;margin-top:1rem}
.pricing-lede strong{color:#17251e;font-weight:550}

/* the rate card */
@property --glow-x{syntax:'<percentage>';inherits:false;initial-value:18%}
.rate-card{--glow-x:18%;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(2rem,4vw,4.5rem);background:var(--bg);color:var(--ink);border-radius:1.6rem;padding:clamp(1.8rem,3.4vw,3.4rem);position:relative;overflow:hidden;box-shadow:0 50px 90px -50px rgba(16,27,25,.6);transition:--glow-x 1.2s cubic-bezier(.2,.8,.2,1)}
.rate-card::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(55% 75% at var(--glow-x) 42%,rgba(211,239,145,.17),transparent 70%)}
.rate-tag{position:absolute;top:1.6rem;right:1.9rem;font-size:.7rem;letter-spacing:.14em;color:#8c998e}
.rate-figure{position:relative;display:flex;flex-direction:column;min-width:0}
.rate-figure>.eyebrow{color:#9eafa0}
.rate-amount{display:flex;align-items:baseline;gap:.7rem;margin:1.3rem 0 .6rem}
.rate-amount .currency{font-size:clamp(1rem,1.5vw,1.4rem);letter-spacing:.08em;color:#9eafa0;font-weight:500}
.odometer{display:inline-flex;font-variant-numeric:tabular-nums;font-weight:450;letter-spacing:-.06em;line-height:1;color:var(--accent)}
#rate-odometer{font-size:clamp(5.4rem,9.4vw,10.5rem)}
.odo-slot{display:block;height:1em;overflow:hidden}
.odo-strip{display:block;transform:translateY(calc(var(--d,0) * -1em));transition:transform .95s cubic-bezier(.18,.84,.22,1);transition-delay:var(--dl,0ms);will-change:transform}
.odo-strip span,.odo-sep{display:block;height:1em;line-height:1}
.rate-caption{font-size:1.06rem;color:#c7cfc8;margin:0}
.rate-caption .dot{color:#63705e;margin:0 .45rem}
.tier-control{margin-top:2.2rem}
.tier-control label{display:block;font-size:.75rem;letter-spacing:.13em;color:#9eafa0;margin-bottom:1.1rem;font-weight:550}
.tier-stops{list-style:none;margin:.9rem 0 0;padding:0;position:relative;height:2.7rem}
.tier-stops li{position:absolute;top:0;display:flex;flex-direction:column;gap:.15rem;font-size:.75rem;letter-spacing:.06em;color:#8c998e;white-space:nowrap;transition:color .4s}
.tier-stops li strong{font-size:1.05rem;font-weight:500;letter-spacing:0;color:#c7cfc8;transition:color .4s}
.tier-stops li[data-i="0"]{left:0}
.tier-stops li[data-i="1"]{left:calc(11px + (100% - 22px) / 3);transform:translateX(-50%);text-align:center}
.tier-stops li[data-i="2"]{left:calc(11px + (100% - 22px) * 2 / 3);transform:translateX(-50%);text-align:center}
.tier-stops li[data-i="3"]{right:0;text-align:right}
.tier-stops li.active,.tier-stops li.active strong{color:var(--accent)}
.rate-note{font-size:.8rem;line-height:1.6;color:#8c998e;margin:1.6rem 0 0;max-width:27rem}

/* range inputs (dark by default; light variant inside the receipt) */
.range{-webkit-appearance:none;appearance:none;width:100%;height:24px;background:transparent;margin:0;cursor:pointer;--p:0%;--track:#2c3b35;--fill:var(--accent);--thumb:var(--accent);--ring:var(--bg);--halo:rgba(211,239,145,.22)}
.range:focus{outline:none}
.range::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:linear-gradient(90deg,var(--fill) var(--p),var(--track) var(--p))}
.range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--thumb);border:4px solid var(--ring);margin-top:-10px;box-shadow:0 0 0 1px var(--thumb);transition:transform .3s,box-shadow .3s}
.range:hover::-webkit-slider-thumb,.range:active::-webkit-slider-thumb{transform:scale(1.15)}
.range:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 1px var(--thumb),0 0 0 7px var(--halo)}
.range::-moz-range-track{height:2px;border-radius:2px;background:var(--track)}
.range::-moz-range-progress{height:2px;background:var(--fill)}
.range::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--thumb);border:4px solid var(--ring);box-shadow:0 0 0 1px var(--thumb)}
.range:focus-visible::-moz-range-thumb{box-shadow:0 0 0 1px var(--thumb),0 0 0 7px var(--halo)}

/* the room plan */
.room-plan{margin:0;display:flex;flex-direction:column;justify-content:center;gap:.9rem;min-width:0;position:relative}
.plan{width:100%;height:auto;display:block;overflow:visible}
.plan-floor{fill:url(#floor)}
.plan-rug{fill:none;stroke:rgba(240,242,233,.3);stroke-width:1;stroke-dasharray:4 5;transition:opacity .5s}
.plan-walls{fill:rgba(240,242,233,.03);stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.anim .plan-walls{stroke-dasharray:1500;stroke-dashoffset:1500;transition:stroke-dashoffset 1.9s cubic-bezier(.4,0,.2,1) .25s}
.anim .rate-card.in .plan-walls{stroke-dashoffset:0}
.anim .rate-card.drawn .plan-walls{stroke-dasharray:none;transition:none}
.plan-cut{stroke:var(--bg);stroke-width:6}
.plan-win{stroke:var(--accent);stroke-width:1.5;stroke-dasharray:6 4;opacity:.85}
.plan-door{fill:none;stroke:#9eafa0;stroke-width:1.2;stroke-dasharray:3 3}
.plan-door-leaf{stroke:#9eafa0;stroke-width:1.5}
.plan-dim{fill:#8c998e;font-size:11px;letter-spacing:.12em;font-family:'DM Sans',Arial,sans-serif}
.plan-dimline{stroke:#4f5e54;stroke-width:1}
.bed{transform:translate(var(--x,0px),var(--y,0px)) scale(var(--s,1));transform-box:fill-box;transform-origin:center;transition:transform .85s cubic-bezier(.2,.8,.2,1),opacity .45s;transition-delay:var(--dl,0ms)}
.bed.off{--s:.55;opacity:0}
.bed-frame{fill:#ece6d6}.bed-pillow{fill:#fbfaf3}.bed-blanket{fill:#8f9e70}
.room-plan figcaption{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.4rem 1.2rem;font-size:.75rem;letter-spacing:.12em;color:#9eafa0;font-weight:550}
.room-plan figcaption span{white-space:nowrap}
.room-plan figcaption .plan-meta{display:flex;gap:.6rem}
.room-plan figcaption .plan-meta i{font-style:normal;color:#63705e}

/* every bed includes */
.inclusions{margin-top:4.5rem}
.inclusion-list{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 3rem}
.inclusion-list li{border-top:1px solid #acb9a6;padding:1.1rem 0 1.4rem;display:flex;flex-direction:column;gap:.35rem}
.inclusion-list strong{font-weight:500;font-size:1rem;letter-spacing:-.01em}
.inclusion-list span{font-size:.875rem;color:#52624d;line-height:1.55}

/* add-ons */
.addons{margin-top:5rem}
.addons-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem 4rem;align-items:end}
.addons-head h3{font-size:clamp(2.2rem,3.4vw,3.4rem);font-weight:450;letter-spacing:-.045em;line-height:1.04;margin:1.1rem 0 0}
.addons-head>p{color:#4d5c4b;font-size:1rem;line-height:1.7;max-width:30rem;margin:0}
.addon-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-top:2.4rem}
.addon{appearance:none;text-align:left;background:rgba(255,255,255,.38);border:1px solid #b7c3ad;border-radius:1.1rem;padding:1.4rem 1.3rem 1.2rem;display:flex;flex-direction:column;gap:.7rem;min-height:16rem;cursor:pointer;color:inherit;position:relative;transition:transform .5s cubic-bezier(.2,.8,.2,1),background .45s,border-color .45s,box-shadow .5s,color .45s}
.addon:hover{transform:translateY(-4px);border-color:#63705e}
.addon:focus-visible{outline:2px solid #17251e;outline-offset:4px}
.addon[aria-pressed="true"]{background:var(--bg);color:var(--ink);border-color:var(--bg);box-shadow:0 30px 50px -30px rgba(16,27,25,.65)}
.addon .icon{width:2.6rem;height:2.6rem;color:#4d5c4b;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;transition:color .45s}
.addon[aria-pressed="true"] .icon{color:var(--accent)}
.anim .addon .icon *{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset 1.1s cubic-bezier(.4,0,.2,1);transition-delay:calc(var(--n,0) * 90ms + 200ms)}
.anim .addon.in .icon *{stroke-dashoffset:0}
.addon strong{font-size:1.1rem;font-weight:500;letter-spacing:-.02em;margin-top:.2rem}
.addon>span{font-size:.875rem;line-height:1.5;color:#52624d;transition:color .45s}
.addon[aria-pressed="true"]>span{color:#b7c2b8}
.addon-state{font-style:normal;font-size:.75rem;letter-spacing:.12em;display:flex;align-items:center;gap:.55rem;margin-top:auto;padding-top:.6rem;color:#63705e;text-transform:uppercase;transition:color .45s}
.addon-state svg{width:1.15rem;height:1.15rem;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.addon-state .tick{stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .5s cubic-bezier(.4,0,.2,1)}
.addon[aria-pressed="true"] .addon-state{color:var(--accent)}
.addon[aria-pressed="true"] .addon-state circle{fill:var(--accent)}
.addon[aria-pressed="true"] .addon-state .tick{stroke:var(--bg);stroke-dashoffset:0;stroke-width:1.8}

/* the receipt */
.receipt{margin-top:5rem;background:#f2f5ec;border:1px solid #c3cdb9;border-radius:1.6rem;padding:clamp(1.6rem,3vw,3rem) clamp(1.6rem,3vw,3rem) clamp(1.4rem,2.6vw,2.6rem);position:relative}
.receipt>.eyebrow{margin-bottom:1.6rem}
.receipt-row{position:relative;display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;gap:.4rem 1.5rem;align-items:center;border-top:1px solid #c3cdb9;padding:1.4rem 0}
.receipt-row .idx{font-size:.75rem;color:#617058;letter-spacing:.06em;align-self:start;padding-top:.35rem}
.receipt-row .cell strong{display:block;font-size:1.3rem;font-weight:500;letter-spacing:-.03em}
.receipt-row .cell>span{display:block;font-size:.94rem;color:#52624d;margin-top:.3rem}
.receipt-row .figure{font-size:1.6rem;font-weight:450;letter-spacing:-.03em;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;display:flex;align-items:baseline;justify-content:flex-end;gap:.5rem}
.receipt-row .figure small{font-size:.72rem;letter-spacing:.1em;color:#63705e;font-weight:550}
.receipt-row .figure.quoted{font-size:.875rem;color:#63705e;letter-spacing:.02em}
.receipt-row .op{position:absolute;right:0;top:-.95rem;background:#f2f5ec;color:#73886a;font-size:1.5rem;line-height:1;padding:.25rem .5rem}
.receipt-row.team{grid-template-areas:"idx label figure" ". slider slider"}
.receipt-row.team .idx{grid-area:idx}.receipt-row.team .cell{grid-area:label}.receipt-row.team .figure{grid-area:figure}.receipt-row.team .slider{grid-area:slider;margin-top:.7rem}
.receipt .range{--track:#c3cdb9;--fill:#17251e;--thumb:#17251e;--ring:#f2f5ec;--halo:rgba(23,37,30,.15)}
.beds-figure output{font-size:2.2rem;letter-spacing:-.04em}
.receipt-row.total{background:#cbd9ba;border:0;border-radius:1rem;padding:1.4rem 1.4rem;margin-top:.5rem;grid-template-columns:2.4rem minmax(0,1fr) auto}
.receipt-row.total .op{right:1.4rem;top:-1.35rem;background:#f2f5ec}
.receipt-row.total .figure{font-size:clamp(2rem,3.6vw,3.2rem);color:#17251e}
.receipt-row.total .odometer{color:#17251e;letter-spacing:-.05em;font-weight:450}
.receipt-row.total .figure small{color:#4d5c4b}
.receipt-row.addons-line{border-top:0;padding-top:1.2rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}
.chips:empty{display:none}
.chip{font-size:.8rem;border:1px solid #17251e;border-radius:2rem;padding:.25rem .7rem;animation:chip-in .5s cubic-bezier(.2,.8,.2,1)}
@keyframes chip-in{from{opacity:0;transform:translateY(6px)}}
.receipt-actions{display:flex;align-items:center;gap:2.2rem;padding-top:1.8rem;border-top:1px solid #c3cdb9;flex-wrap:wrap}
.pricing-note{font-size:.8rem;line-height:1.6;color:#5b6b54;max-width:34rem;margin:0}
.button{appearance:none;border:1px solid #17251e;background:#17251e;color:#e5ebdf;border-radius:3rem;padding:1rem 1.6rem;font-size:.94rem;font-weight:500;display:inline-flex;align-items:center;gap:1.4rem;cursor:pointer;white-space:nowrap;transition:background .25s,color .25s,border-color .25s,transform .4s cubic-bezier(.2,.8,.2,1)}
.button:hover{background:var(--accent);border-color:var(--accent);color:var(--bg);transform:translateY(-2px)}
.button:focus-visible{outline:2px solid #17251e;outline-offset:4px}
.button span{font-size:1.25rem}

/* ---- 05 · the standard ---- */
.standard{position:relative;z-index:4;padding:7.5rem var(--page);display:grid;grid-template-columns:1fr 1.25fr;gap:4rem 6vw;border-top:1px solid var(--line);background:radial-gradient(ellipse 60% 70% at 12% 45%,#1b2a26 0,transparent 60%)}
.standard h2{margin:1.6rem 0 1.4rem;font-size:clamp(3rem,4.8vw,5.4rem)}
.standard h2 em{font-style:normal;color:var(--accent)}
.standard-copy>p:not(.eyebrow){font-size:1.06rem;line-height:1.7;color:#b7c2b8;max-width:28rem;margin:0}
.standard-copy>p.standard-note{font-size:.8rem;color:#8c998e;line-height:1.6;max-width:26rem;margin-top:2rem}
.standard-facts{margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:0 2.5rem}
.standard-facts>div{position:relative;padding:1.3rem 0 1.9rem;display:flex;flex-direction:column;gap:.8rem}
.standard-facts>div::before{content:'';position:absolute;left:0;top:0;width:100%;height:1px;background:#3a4a43;transform-origin:left;transition:transform 1.2s cubic-bezier(.4,0,.2,1);transition-delay:calc(var(--i,0) * 110ms)}
.standard-facts>div::after{content:'';position:absolute;left:0;top:0;width:2rem;height:1px;background:var(--accent);transform-origin:left;transition:transform 1s cubic-bezier(.4,0,.2,1);transition-delay:calc(var(--i,0) * 110ms + .3s)}
.anim .standard-facts>div::before,.anim .standard-facts>div::after{transform:scaleX(0)}
.anim .standard-facts.in>div::before,.anim .standard-facts.in>div::after{transform:scaleX(1)}
.standard-facts dt{font-size:.75rem;letter-spacing:.12em;color:#9eafa0;font-weight:550}
.standard-facts dd{margin:0;display:flex;flex-direction:column;gap:.55rem}
.standard-facts strong{font-size:clamp(2.6rem,3.6vw,3.6rem);line-height:1;font-weight:450;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.standard-facts strong span{font-size:.5em;margin-left:.15em;color:#9daa91;letter-spacing:0}
.standard-facts dd>span{font-size:.875rem;color:#a4b0a7;line-height:1.55;max-width:18rem}

/* ---- 06 · for employers ---- */
.employers{position:relative;z-index:4;background:#e5ebdf;color:#17251e;padding:7.5rem var(--page)}
.employers-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem 4rem;align-items:end}
.employers-head h2{font-size:clamp(3.2rem,5.2vw,6rem);margin:1.6rem 0 0;line-height:1.02}
.employers-head h2 span{color:#63705e}
.employers-head>p{font-size:1.06rem;line-height:1.7;color:#4d5c4b;margin:0;max-width:31rem}
.steps{list-style:none;margin:3.8rem 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:2.5rem;position:relative}
.steps::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:#acb9a6}
.steps::after{content:'';position:absolute;left:0;top:0;width:100%;height:1px;background:#17251e;transform-origin:left;transition:transform 2.2s cubic-bezier(.4,0,.2,1)}
.anim .steps::after{transform:scaleX(0)}
.anim .steps.in::after{transform:scaleX(1)}
.steps li{padding-top:1.7rem;position:relative;display:flex;flex-direction:column;gap:.6rem}
.steps li::before{content:'';position:absolute;top:-4px;left:0;width:9px;height:9px;border-radius:50%;background:#17251e;transition:transform .5s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0) * .55s + .1s)}
.anim .steps li::before{transform:scale(0)}
.anim .steps.in li::before{transform:scale(1)}
.step-index{font-size:.75rem;letter-spacing:.12em;color:#63705e;font-weight:550}
.steps strong{font-size:1.25rem;font-weight:500;letter-spacing:-.02em}
.steps p{margin:0;font-size:.94rem;line-height:1.6;color:#52624d;max-width:17rem}
.employers-cta{margin-top:3.6rem;display:flex;align-items:center;gap:2.4rem;flex-wrap:wrap}
.text-link.dark .round-arrow{border-color:#8f9c8a}
.text-link.dark:hover .round-arrow{background:#17251e;border-color:#17251e;color:#e5ebdf}

/* ---- proposal sheet ---- */
.sheet{border:0;padding:0;background:transparent;width:min(34rem,calc(100% - 2rem));color:#17251e;font-family:'DM Sans',Arial,sans-serif}
.sheet::backdrop{background:rgba(16,27,25,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.sheet-panel{background:#f2f5ec;border-radius:1.5rem;padding:2.2rem;position:relative;display:flex;flex-direction:column;gap:1.2rem}
.sheet h3{font-size:2rem;font-weight:450;letter-spacing:-.04em;margin:.2rem 0 0;line-height:1.05}
.sheet-summary{margin:0;display:flex;flex-direction:column}
.sheet-summary div{display:grid;grid-template-columns:8rem 1fr;gap:1rem;padding:.75rem 0;border-top:1px solid #c3cdb9;font-size:.94rem}
.sheet-summary div:last-child{border-bottom:1px solid #c3cdb9}
.sheet-summary dt{color:#63705e;letter-spacing:.1em;font-size:.72rem;text-transform:uppercase;padding-top:.2rem;font-weight:550}
.sheet-summary dd{margin:0;font-variant-numeric:tabular-nums}
.sheet-copy{margin:0;font-size:.94rem;line-height:1.6;color:#4d5c4b}
.sheet-close{position:absolute;top:1.1rem;right:1.1rem;appearance:none;border:1px solid #b7c3ad;background:transparent;width:2.4rem;height:2.4rem;border-radius:50%;font-size:1.3rem;line-height:1;cursor:pointer;color:inherit;display:grid;place-items:center}
.sheet-close:hover{background:#17251e;color:#e5ebdf;border-color:#17251e}
.sheet-actions{display:flex;align-items:center;gap:.8rem 1rem;flex-wrap:wrap}
.button.ghost{background:transparent;color:#17251e}
.button.ghost:hover{background:#17251e;border-color:#17251e;color:#e5ebdf}
.sheet-copy a{color:#17251e;text-decoration:underline;text-underline-offset:3px}
footer a.footer-mail{color:var(--ink);transition:color .2s}
footer a.footer-mail:hover{color:var(--accent)}
#copy-state{font-size:.8rem;color:#63705e;letter-spacing:.04em}
.sheet[open]{animation:sheet-in .5s cubic-bezier(.2,.8,.2,1)}
@keyframes sheet-in{from{opacity:0;transform:translateY(16px)}}

/* ---- responsive ---- */
@media(max-width:1000px){
  .header nav .nav-extra{display:none}
  .pricing-intro,.addons-head,.employers-head,.standard{grid-template-columns:1fr}
  .rate-card{grid-template-columns:1fr;gap:2.5rem}
  .rate-tag{display:none}
  .inclusion-list{grid-template-columns:1fr 1fr}
  .addon-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;margin:2.2rem calc(-1 * var(--page)) 0;padding:.4rem var(--page) 1rem;scrollbar-width:none}
  .addon-grid::-webkit-scrollbar{display:none}
  .addon{flex:0 0 min(76%,18rem);scroll-snap-align:start;min-height:15rem}
  .standard-facts{grid-template-columns:1fr 1fr}
  .steps{grid-template-columns:1fr 1fr;gap:2.5rem 2rem}
}
@media(max-width:760px){
  .pricing,.employers,.standard{padding:4.5rem var(--page)}
  .pricing-intro{margin-bottom:2.4rem}
  .pricing-intro h2{font-size:clamp(3.2rem,12vw,3.8rem)}
  .rate-card{padding:1.6rem 1.3rem 1.5rem;border-radius:1.2rem}
  #rate-odometer{font-size:clamp(4.6rem,24vw,6rem)}
  .rate-caption{font-size:1rem}
  .plan-dim{font-size:17px}
  .tier-control{margin-top:1.6rem}
  .inclusion-list{grid-template-columns:1fr}
  .addons,.receipt{margin-top:3.5rem}
  .receipt{border-radius:1.2rem}
  .receipt-row{grid-template-columns:1.8rem minmax(0,1fr);gap:.5rem 1rem}
  .receipt-row .figure{grid-column:2;justify-content:flex-start;text-align:left}
  .receipt-row.team{grid-template-areas:"idx label" ". figure" ". slider"}
  .receipt-row.total{grid-template-columns:1.8rem minmax(0,1fr);padding:1.2rem 1rem}
  .receipt-row.total .op{right:1rem}
  .receipt-actions{gap:1.4rem}
  .standard h2{font-size:3rem}
  .employers-head h2{font-size:3.2rem}
  .steps{grid-template-columns:1fr;gap:1.6rem;margin-top:2.8rem;padding-left:1.6rem}
  .steps::before,.steps::after{top:0;bottom:0;left:4px;right:auto;width:1px;height:auto;transform-origin:top}
  .anim .steps::after{transform:scaleY(0)}
  .anim .steps.in::after{transform:scaleY(1)}
  .steps li{padding-top:0}
  .steps li::before{left:-1.6rem;top:.35rem}
  .steps p{max-width:none}
  .sheet-panel{padding:1.6rem;border-radius:1.2rem}
  .sheet-summary div{grid-template-columns:1fr;gap:.2rem}
}
