:root{--color-bg: #f9f5f0;--color-surface: #f0ebe3;--color-text: #3a2f27;--color-text-muted: #7a6a5e;--color-primary: #B39A63;--color-primary-contrast: #ffffff;--color-accent: #b8a898;--color-border: #ddd5c9;--color-sage: #8a9e8a;--color-sage-light: #e8ede8;--color-promo: #126562;--color-promo-contrast: #ffffff;--color-surface-inverse: #2a2018;--color-text-inverse: #f5efe8;--font-heading: "Libre Baskerville", serif;--font-body: "Source Sans 3", sans-serif;--font-size-base: 16px;--font-size-h1: 4.5rem;--font-size-h2: 3rem;--font-size-h3: 1.5rem;--line-height-base: 1.7;--space-xs: .5rem;--space-sm: 1rem;--space-md: 2rem;--space-lg: 5rem;--space-xl: 8rem;--radius-sm: 3px;--radius-md: 8px;--radius-lg: 16px;--radius-button: 4px;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 16px rgba(0,0,0,.1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:var(--font-size-base)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);line-height:var(--line-height-base);font-weight:300}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}.mobile-overlay{position:fixed;inset:0;background:#00000080;z-index:150;opacity:0;pointer-events:none;transition:opacity .3s ease}.mobile-overlay.open{opacity:1;pointer-events:auto}.mobile-nav{position:fixed;top:0;right:0;width:min(320px,85vw);height:100vh;background:var(--color-bg);z-index:200;display:flex;flex-direction:column;padding:var(--space-lg) var(--space-md);transform:translate(100%);transition:transform .35s cubic-bezier(.4,0,.2,1)}.mobile-nav.open{transform:translate(0)}.mobile-nav-close{position:absolute;top:1.25rem;right:1.25rem;background:none;border:none;color:var(--color-text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-sm)}.mobile-nav-close:hover{color:var(--color-primary)}.mobile-nav-close svg{pointer-events:none}.mobile-nav-links{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.mobile-nav-links a{font-family:var(--font-heading);font-size:1.6rem;font-weight:400;color:var(--color-text);letter-spacing:.02em;padding:.25rem 0;display:block;transition:color .2s}.mobile-nav-links a:hover{color:var(--color-primary)}.mobile-nav-phone{margin-top:auto;padding-top:var(--space-md);border-top:1px solid var(--color-border);font-family:var(--font-body);font-size:.9rem;color:var(--color-text-muted)}.mobile-nav-phone a{display:block;font-size:1.1rem;font-weight:500;color:var(--color-primary);margin-top:.25rem}.site-header{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.25rem var(--space-md);display:flex;align-items:center;justify-content:space-between;transition:background .4s ease,box-shadow .4s ease}.site-header.scrolled{background:#f9f5f0f5;backdrop-filter:blur(8px);box-shadow:var(--shadow-sm)}.wordmark{display:flex;align-items:center;gap:.6rem;font-family:var(--font-heading);font-size:1.45rem;font-weight:400;letter-spacing:.06em;color:#fff;transition:color .4s ease;line-height:1.1}.wordmark-logo{width:48px;height:48px;object-fit:contain;flex-shrink:0;opacity:.92;transition:opacity .4s ease}.site-header.scrolled .wordmark-logo{opacity:1}.wordmark-text{display:flex;flex-direction:column}.wordmark-text span{display:block;font-size:.65rem;font-weight:300;letter-spacing:.18em;text-transform:uppercase;font-family:var(--font-body);margin-top:2px;opacity:.85}.site-header.scrolled .wordmark{color:var(--color-text)}.desktop-nav{display:none;align-items:center;gap:2rem}@media(min-width:1024px){.desktop-nav{display:flex}}.desktop-nav a{font-family:var(--font-body);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:400;color:#ffffffe6;transition:color .2s;padding:.25rem 0;position:relative}.desktop-nav a:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .25s ease}.desktop-nav a:hover:after{transform:scaleX(1)}.desktop-nav a:hover{color:#fff}.site-header.scrolled .desktop-nav a{color:var(--color-text-muted)}.site-header.scrolled .desktop-nav a:hover{color:var(--color-primary)}.header-phone{display:none;font-size:.82rem;letter-spacing:.06em;color:#ffffffe6;font-weight:400;transition:color .4s ease}@media(min-width:768px){.header-phone{display:block}}.site-header.scrolled .header-phone{color:var(--color-primary)}.menu-btn{background:none;border:none;cursor:pointer;color:#fff;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;transition:color .4s ease}.menu-btn svg{pointer-events:none}.menu-btn:hover{opacity:.75}.site-header.scrolled .menu-btn{color:var(--color-text)}@media(min-width:1024px){.menu-btn{display:none}}#home{position:relative;width:100%;height:100svh;min-height:600px;overflow:hidden}.hero-bg{position:absolute;inset:0;background-image:url(https://pub-3b16b70961a64983952a325499efe13e.r2.dev/lulu-pure-spa/v1/pb-massage-389719.jpg);background-size:cover;background-position:center 40%;transform:scale(1.04);transition:transform 8s ease-out}.hero-bg.loaded{transform:scale(1)}.hero-overlay{position:absolute;inset:0;background:linear-gradient(to top,#1e140ab8,#1e140a47,#1e140a1f)}.hero-content{position:absolute;bottom:var(--space-xl);left:var(--space-md);right:var(--space-md);max-width:680px}@media(min-width:768px){.hero-content{left:var(--space-lg);bottom:calc(var(--space-xl) + 1rem)}}.hero-eyebrow{font-family:var(--font-body);font-size:.75rem;letter-spacing:.22em;text-transform:uppercase;color:#ffffffb3;margin-bottom:var(--space-sm);font-weight:400}.hero-title{font-family:var(--font-heading);font-size:clamp(2.6rem,6vw,var(--font-size-h1));font-weight:300;color:#fff;line-height:1.1;letter-spacing:.01em;margin-bottom:var(--space-sm)}.hero-title em{font-style:italic;font-weight:300}.hero-sub{font-family:var(--font-body);font-size:.95rem;color:#ffffffc7;margin-bottom:var(--space-md);font-weight:300;max-width:480px;letter-spacing:.02em}.hero-ctas{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}.btn-primary{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-promo);color:var(--color-promo-contrast);font-family:var(--font-body);font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;font-weight:500;padding:.85rem 1.75rem;border-radius:var(--radius-button);border:none;cursor:pointer;transition:background .2s,transform .15s}.btn-primary:hover{background:#a8784e;transform:translateY(-1px)}.btn-ghost{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:#ffffffe0;font-family:var(--font-body);font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;font-weight:400;padding:.85rem 1.5rem;border-radius:var(--radius-button);border:1px solid rgba(255,255,255,.45);cursor:pointer;transition:border-color .2s,color .2s,background .2s}.btn-ghost:hover{border-color:#ffffffe6;color:#fff;background:#ffffff14}.hero-scroll-hint{position:absolute;bottom:1.5rem;right:var(--space-md);display:flex;flex-direction:column;align-items:center;gap:.5rem;color:#ffffff80}@media(min-width:768px){.hero-scroll-hint{right:var(--space-lg)}}.hero-scroll-hint span{font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;font-family:var(--font-body);writing-mode:vertical-lr}.scroll-line{width:1px;height:48px;background:#ffffff4d;position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;top:-100%;left:0;right:0;height:100%;background:#ffffffbf;animation:scrollDrop 2s ease-in-out infinite}@keyframes scrollDrop{0%{top:-100%}to{top:100%}}#promo{background:var(--color-promo);padding:1rem var(--space-md);display:flex;align-items:center;justify-content:center;gap:.75rem;text-align:center;flex-wrap:wrap}.promo-text{font-family:var(--font-body);font-size:.88rem;letter-spacing:.06em;color:var(--color-promo-contrast);font-weight:400}.promo-text strong{font-weight:500}.promo-icon{color:var(--color-promo-contrast);opacity:.9}.section-label{font-family:var(--font-body);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-muted);font-weight:400;margin-bottom:.75rem}.section-title{font-family:var(--font-heading);font-size:var(--font-size-h2);font-weight:300;line-height:1.15;letter-spacing:.01em;color:var(--color-text)}.section-title em{font-style:italic}#services{padding:var(--space-xl) var(--space-md);background:var(--color-bg)}.services-inner{max-width:1100px;margin:0 auto}.services-header{text-align:center;margin-bottom:var(--space-lg)}.services-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:640px){.services-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:900px){.services-grid{grid-template-columns:repeat(6,1fr)}.services-grid .service-card:nth-child(1){grid-column:1 / span 2}.services-grid .service-card:nth-child(2){grid-column:3 / span 2}.services-grid .service-card:nth-child(3){grid-column:5 / span 2}.services-grid .service-card:nth-child(4){grid-column:2 / span 2}.services-grid .service-card:nth-child(5){grid-column:4 / span 2}}.service-card{background:var(--color-surface);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .25s,transform .25s}.service-card:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)}.service-card-img{width:100%;aspect-ratio:4 / 3;object-fit:cover}.service-card-body{padding:1.5rem}.service-card-icon{width:32px;height:32px;color:var(--color-sage);margin-bottom:.75rem}.service-card-name{font-family:var(--font-heading);font-size:var(--font-size-h3);font-weight:400;color:var(--color-text);margin-bottom:.5rem;line-height:1.25}.service-card-desc{font-size:.88rem;color:var(--color-text-muted);line-height:1.65;margin-bottom:1rem}.service-prices{display:flex;flex-wrap:wrap;gap:.5rem}.price-chip{background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;padding:.3rem .75rem;font-size:.78rem;color:var(--color-text-muted);font-family:var(--font-body);font-weight:400}.price-chip strong{color:var(--color-text);font-weight:500}.service-badge{display:inline-block;background:var(--color-sage-light);color:var(--color-sage);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .6rem;border-radius:20px;font-weight:500;margin-bottom:.6rem}#gallery{background:var(--color-surface-inverse)}.gallery-band{display:grid;grid-template-columns:1fr}@media(min-width:768px){.gallery-band{grid-template-columns:repeat(3,1fr)}}.gallery-band-item{aspect-ratio:3 / 4;overflow:hidden}@media(min-width:768px){.gallery-band-item{aspect-ratio:2 / 3}}.gallery-band-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}.gallery-band-item:hover img{transform:scale(1.04)}.gallery-caption{padding:var(--space-lg) var(--space-md);text-align:center;background:var(--color-surface-inverse)}.gallery-caption .section-label{color:#ffffff73}.gallery-caption .section-title{color:var(--color-text-inverse)}.gallery-caption p{max-width:520px;margin:1rem auto 0;color:#fff9;font-size:.92rem;line-height:1.7}#about{background:var(--color-bg)}.about-band{display:grid;grid-template-columns:1fr;min-height:600px}@media(min-width:900px){.about-band{grid-template-columns:1fr 1fr}}.about-img{position:relative;min-height:400px;overflow:hidden}.about-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.about-copy{display:flex;flex-direction:column;justify-content:center;padding:var(--space-lg) var(--space-md);max-width:560px}@media(min-width:900px){.about-copy{padding:var(--space-xl) var(--space-lg)}}.about-copy p{color:var(--color-text-muted);font-size:1rem;line-height:var(--line-height-base);margin-top:var(--space-sm)}.about-copy p+p{margin-top:1rem}.review-card{margin-top:var(--space-md);padding:1.25rem 1.5rem;background:var(--color-surface);border-radius:var(--radius-md);border-left:3px solid var(--color-promo)}.stars{display:flex;gap:3px;margin-bottom:.5rem;color:var(--color-promo)}.review-text{font-family:var(--font-heading);font-style:italic;font-size:1.1rem;color:var(--color-text);line-height:1.5;font-weight:300}.review-meta{margin-top:.5rem;font-size:.78rem;color:var(--color-text-muted);letter-spacing:.04em}.review-aggregate{display:inline-flex;align-items:center;gap:.4rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:20px;padding:.3rem .85rem;font-size:.8rem;color:var(--color-text-muted);margin-top:1rem}.review-aggregate strong{color:var(--color-text);font-weight:500}#hours{background:var(--color-surface);padding:var(--space-xl) var(--space-md)}.hours-inner{max-width:860px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:var(--space-lg);align-items:start}@media(min-width:768px){.hours-inner{grid-template-columns:1fr 1fr}}.hours-grid{display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.5rem;margin-top:var(--space-sm)}.hours-day{font-size:.88rem;color:var(--color-text-muted);font-weight:400}.hours-time{font-size:.88rem;color:var(--color-text);font-weight:400}.walk-in-badge{display:inline-flex;align-items:center;gap:.4rem;margin-top:var(--space-sm);background:var(--color-sage-light);color:var(--color-sage);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;padding:.35rem .85rem;border-radius:20px;font-weight:500}#contact{background:var(--color-bg);padding:var(--space-xl) var(--space-md)}.contact-inner{max-width:860px;margin:0 auto}.contact-header{text-align:center;margin-bottom:var(--space-lg)}.contact-header p{margin-top:.75rem;color:var(--color-text-muted);font-size:.95rem;max-width:440px;margin-left:auto;margin-right:auto}.contact-methods{display:grid;grid-template-columns:1fr;gap:var(--space-md)}@media(min-width:640px){.contact-methods{grid-template-columns:repeat(3,1fr)}}.contact-method{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-md);text-align:center;border:1px solid var(--color-border);transition:box-shadow .2s,transform .2s}.contact-method:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.contact-method-icon{width:44px;height:44px;color:var(--color-primary);margin:0 auto .75rem}.contact-method-label{font-family:var(--font-body);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--color-text-muted);margin-bottom:.4rem}.contact-method-value{font-family:var(--font-heading);font-size:1.4rem;font-weight:400;color:var(--color-text);line-height:1.2}.contact-method-action{display:inline-flex;align-items:center;gap:.3rem;margin-top:.75rem;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-primary);font-weight:500;transition:color .2s}.contact-method-action:hover{color:var(--color-text)}.map-band{margin-top:var(--space-lg);border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);border:1px solid var(--color-border)}.map-placeholder{position:relative;aspect-ratio:16 / 7;overflow:hidden}.map-placeholder img{width:100%;height:100%;object-fit:cover}.map-overlay-label{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#1e140a59;color:#fff;text-align:center}.map-overlay-label p{font-family:var(--font-heading);font-size:1.4rem;font-weight:300;margin-top:.5rem}.map-overlay-label small{font-size:.78rem;opacity:.7;letter-spacing:.06em;margin-top:.25rem}.parking-notice{display:flex;align-items:flex-start;gap:1rem;margin-top:var(--space-sm);padding:1.1rem 1.4rem;background:var(--color-sage-light);border-radius:var(--radius-md);border:1px solid var(--color-border)}.parking-notice-icon{flex-shrink:0;width:40px;height:40px;background:#fff;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-sage);box-shadow:var(--shadow-sm)}.parking-notice-title{font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--color-text);letter-spacing:.02em;margin-bottom:.3rem}.parking-notice-body{font-size:.85rem;color:var(--color-text-muted);line-height:1.6}.map-footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.5rem}.map-address{font-size:.88rem;color:var(--color-text-muted);line-height:1.5}.map-address strong{color:var(--color-text);font-weight:500}.btn-outline{display:inline-flex;align-items:center;gap:.4rem;background:transparent;color:var(--color-primary);font-family:var(--font-body);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:500;padding:.65rem 1.25rem;border-radius:var(--radius-button);border:1px solid var(--color-border);cursor:pointer;transition:border-color .2s,color .2s,background .2s}.btn-outline:hover{border-color:var(--color-primary);background:var(--color-surface)}.cta-band{position:relative;overflow:hidden;min-height:400px;display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-xl) var(--space-md)}.cta-band-bg{position:absolute;inset:0;background-image:url(https://pub-3b16b70961a64983952a325499efe13e.r2.dev/lulu-pure-spa/v1/pb-massage-therapy-1612308.jpg);background-size:cover;background-position:center;will-change:transform}.cta-band-overlay{position:absolute;inset:0;background:#1e140a9e}.cta-band-content{position:relative;z-index:2;max-width:640px}.cta-band-content .section-label{color:#ffffff8c}.cta-band-content .section-title{color:#fff;font-size:clamp(2rem,4vw,var(--font-size-h2))}.cta-band-content p{color:#ffffffb8;margin:1rem auto var(--space-md);font-size:.95rem;max-width:460px}.cta-band-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}footer{background:var(--color-surface-inverse);padding:var(--space-lg) var(--space-md);text-align:center}.footer-inner{max-width:860px;margin:0 auto}.footer-brand{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1rem}.footer-logo{width:40px;height:40px;object-fit:contain;opacity:.85}.footer-wordmark{font-family:var(--font-heading);font-size:1.4rem;font-weight:300;letter-spacing:.06em;color:var(--color-text-inverse);margin-bottom:0}.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;margin-bottom:var(--space-md)}.footer-nav a{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:#ffffff73;transition:color .2s}.footer-nav a:hover{color:#ffffffd9}.footer-divider{width:40px;height:1px;background:#ffffff26;margin:0 auto var(--space-sm)}.footer-copy{font-size:.78rem;color:#ffffff4d;line-height:1.6}.footer-copy a{color:#ffffff73;transition:color .2s}.footer-copy a:hover{color:#ffffffbf}.animate-in,.animate-in-up,.animate-in-left,.animate-in-right,.animate-in-scale,.animate-in-blur{opacity:0;transition:opacity .6s ease .15s,transform .6s ease .15s,filter .6s ease .15s;will-change:opacity,transform}.animate-in,.animate-in-up{transform:translate3d(0,24px,0)}.animate-in-left{transform:translate3d(-32px,0,0)}.animate-in-right{transform:translate3d(32px,0,0)}.animate-in-scale{transform:scale(.92)}.animate-in-blur{filter:blur(8px)}.animate-in.visible,.animate-in-up.visible,.animate-in-left.visible,.animate-in-right.visible,.animate-in-scale.visible{opacity:1;transform:none}.animate-in-blur.visible{opacity:1;filter:none}@media(max-width:640px){.animate-in-left{transform:translate3d(-16px,0,0)}.animate-in-right{transform:translate3d(16px,0,0)}}.animate-in-stagger>*:nth-child(1){transition-delay:.1s}.animate-in-stagger>*:nth-child(2){transition-delay:.2s}.animate-in-stagger>*:nth-child(3){transition-delay:.3s}.animate-in-stagger>*:nth-child(4){transition-delay:.4s}.animate-in-stagger>*:nth-child(5){transition-delay:.5s}.animate-in-stagger>*:nth-child(6){transition-delay:.6s}.animate-in-stagger>*:nth-child(7){transition-delay:.7s}.animate-in-stagger>*:nth-child(8){transition-delay:.8s}:where(.parallax-bg){position:relative;isolation:isolate;overflow:hidden}.parallax-bg:before{content:"";position:absolute;inset:-15% 0;background-image:var(--cinder-pbg, none);background-size:cover;background-position:center;transform:translate3d(0,var(--cinder-y, 0px),0);will-change:transform;pointer-events:none;z-index:-1}[data-parallax]{transform:translate3d(0,var(--cinder-y, 0px),0);will-change:transform}.sticky-eyebrow{position:sticky;top:0;z-index:5}.marquee-strip{overflow:hidden;position:relative;width:100%}.marquee-strip .marquee-track{display:flex;flex-wrap:nowrap;width:max-content;animation:cinder-marquee 30s linear infinite;gap:var(--marquee-gap, 2rem)}.marquee-strip:hover .marquee-track{animation-play-state:paused}@keyframes cinder-marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(max-width:640px){.marquee-strip .marquee-track{animation-duration:45s}}@media(prefers-reduced-motion:reduce){.animate-in,.animate-in-up,.animate-in-left,.animate-in-right,.animate-in-scale,.animate-in-blur{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}.parallax-bg:before,[data-parallax]{transform:none!important}.marquee-strip .marquee-track{animation:none!important}}[data-anim-off] .animate-in,[data-anim-off] .animate-in-up,[data-anim-off] .animate-in-left,[data-anim-off] .animate-in-right,[data-anim-off] .animate-in-scale,[data-anim-off] .animate-in-blur,[data-anim-off].animate-in,[data-anim-off].animate-in-up,[data-anim-off].animate-in-left,[data-anim-off].animate-in-right,[data-anim-off].animate-in-scale,[data-anim-off].animate-in-blur{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}[data-anim-off] .parallax-bg:before,[data-anim-off].parallax-bg:before,[data-anim-off] [data-parallax],[data-anim-off][data-parallax]{transform:none!important}[data-anim-off] .sticky-eyebrow,[data-anim-off].sticky-eyebrow{position:static!important}[data-anim-off] .marquee-strip .marquee-track,[data-anim-off].marquee-strip .marquee-track{animation:none!important}
