:root{--moss: #3D4F3D;--moss-light: #5A6E5A;--moss-dark: #2D3B2D;--moss-deep: #1E2E1E;--sand: #D4C5A9;--sand-light: #E5DAC4;--sand-dark: #B8A88A;--cream: #F7F4EF;--linen: #FDFCFA;--charcoal: #2A2A28;--text: #4A4A46;--text-2: #7A7A74;--text-3: #A5A59E;--border: #E5E0D8;--serif: "Cormorant", serif;--sans: "Karla", sans-serif;--ease: cubic-bezier(.16, 1, .3, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--r: 4px;--max-w: 1100px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--sans);font-size:16px;line-height:1.8;color:var(--text);background:var(--linen);overflow-x:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}button{border:none;background:none;cursor:pointer;font:inherit}.tag{display:inline-block;font-family:var(--sans);font-size:.65rem;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--moss);margin-bottom:1.25rem}.tag--light{color:var(--sand-light)}h2{font-family:var(--serif);font-size:clamp(2rem,4.5vw,3.5rem);font-weight:400;line-height:1.15;color:var(--charcoal);margin-bottom:1.5rem}h2 em{font-style:italic;color:var(--moss)}.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--sans);font-weight:500;font-size:.8rem;letter-spacing:.08em;border-radius:0;transition:all .4s var(--ease);cursor:pointer}.btn--moss{background:var(--moss);color:#fff;padding:.85rem 2rem}.btn--moss:hover{background:var(--moss-dark);transform:translateY(-2px)}.btn--white{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.3);padding:.85rem 2rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.btn--white:hover{background:#fff;color:var(--moss-dark)}.btn--lg{padding:1rem 2.5rem;font-size:.85rem}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.25rem clamp(1.5rem,5vw,4rem);transition:all .5s var(--ease)}.nav--scrolled{background:#fdfcfaeb;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 1px 0 var(--border)}.nav__logo{font-family:var(--serif);font-size:1.6rem;font-weight:500;color:#fff;letter-spacing:.05em;transition:color .4s}.nav--scrolled .nav__logo{color:var(--charcoal)}.nav__links{display:flex;gap:2.5rem}.nav__links a{font-size:.75rem;font-weight:400;letter-spacing:.08em;color:#fff9;transition:color .3s}.nav__links a:hover{color:#fff}.nav--scrolled .nav__links a{color:var(--text-2)}.nav--scrolled .nav__links a:hover{color:var(--charcoal)}.nav__cta{font-size:.7rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:#fff9;border:1px solid rgba(255,255,255,.25);padding:.45rem 1.1rem;transition:all .3s}.nav__cta:hover{color:#fff;border-color:#fff}.nav--scrolled .nav__cta{color:var(--moss);border-color:var(--moss)}.nav--scrolled .nav__cta:hover{background:var(--moss);color:#fff}.nav__burger{display:none;flex-direction:column;gap:5px;width:22px}.nav__burger span{display:block;height:1px;background:#fff;transition:background .3s}.nav--scrolled .nav__burger span{background:var(--charcoal)}@media (max-width: 800px){.nav__links,.nav__cta{display:none}.nav__burger{display:flex}}.mob{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:var(--cream);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.75rem;opacity:0;pointer-events:none;transition:opacity .4s}.mob--open{opacity:1;pointer-events:auto}.mob a{font-family:var(--serif);font-size:2rem;font-weight:400;color:var(--charcoal);letter-spacing:.05em}.hero{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;text-align:center;padding:6rem 2rem}.hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center}.hero__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#2d3b2d80,#2d3b2db3)}.hero__content{position:relative;z-index:2;max-width:600px}.hero__jp{font-family:var(--serif);font-size:3.5rem;color:#ffffff26;display:block;margin-bottom:.5rem;letter-spacing:.3em}.hero h1{font-family:var(--serif);font-size:clamp(3.5rem,8vw,6rem);font-weight:300;color:#fff;letter-spacing:.08em;line-height:1;margin-bottom:.25rem}.hero__tagline{font-size:.75rem;font-weight:400;letter-spacing:.4em;text-transform:uppercase;color:var(--sand-light);margin-bottom:2rem}.hero__line{width:1px;height:50px;background:#ffffff40;margin:0 auto 1.5rem}.hero__sub{font-family:var(--serif);font-size:1.3rem;font-weight:300;font-style:italic;color:#ffffffb3;margin-bottom:2.5rem}.philosophy{position:relative;padding:8rem clamp(1.5rem,5vw,4rem);background:var(--cream);overflow:hidden}.philosophy__kanji{position:absolute;top:-.15em;right:-.1em;font-size:clamp(15rem,35vw,30rem);color:#3d4f3d08;font-family:var(--serif);pointer-events:none;line-height:1;-webkit-user-select:none;user-select:none}.philosophy__inner{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}.philosophy__right p{color:var(--text-2);line-height:1.9;margin-bottom:1.25rem}.philosophy__features{max-width:var(--max-w);margin:5rem auto 0;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.feature{background:var(--linen);padding:2.5rem 2rem;border:1px solid var(--border);transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s}.feature:hover{transform:translateY(-6px);box-shadow:0 20px 50px #2a2a280f;border-color:var(--moss)}.feature__icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;border:1px solid var(--border);color:var(--moss);margin-bottom:1.25rem;transition:background .4s,border-color .4s,color .4s}.feature:hover .feature__icon{background:var(--moss);border-color:var(--moss);color:#fff}.feature h3{font-family:var(--serif);font-size:1.25rem;font-weight:500;color:var(--charcoal);margin-bottom:.5rem}.feature p{font-size:.85rem;color:var(--text-2);line-height:1.7}@media (max-width: 768px){.philosophy__inner{grid-template-columns:1fr}.philosophy__features{grid-template-columns:1fr;max-width:400px}}.marquee{padding:1.25rem 0;overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--linen)}.marquee__track{display:flex;gap:2rem;white-space:nowrap;animation:marquee 30s linear infinite;width:max-content}.marquee__track span{font-family:var(--serif);font-size:1.1rem;font-weight:400;font-style:italic;color:var(--text-2)}.marquee__dot{color:var(--moss)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.treatments{padding:7rem clamp(1.5rem,5vw,4rem) 5rem}.treatments__header{max-width:var(--max-w);margin:0 auto 3rem;display:flex;align-items:flex-end;justify-content:space-between}.treatments__scroll-hint{display:flex;align-items:center;gap:.5rem;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-3);animation:nudge 2s infinite}@keyframes nudge{0%,to{transform:translate(0)}50%{transform:translate(6px)}}.treatments__carousel{display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:clamp(1.5rem,5vw,4rem);padding:0 clamp(1.5rem,5vw,4rem) 2rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}.treatments__carousel::-webkit-scrollbar{display:none}.treatment-card{flex:0 0 340px;scroll-snap-align:start;background:var(--cream);border:1px solid var(--border);overflow:hidden;transition:transform .5s var(--ease),box-shadow .5s var(--ease)}.treatment-card:hover{transform:translateY(-8px);box-shadow:0 24px 60px #2a2a2814}.treatment-card__img{position:relative;overflow:hidden;aspect-ratio:4 / 3}.treatment-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}.treatment-card:hover .treatment-card__img img{transform:scale(1.08)}.treatment-card__num{position:absolute;bottom:1rem;left:1rem;font-family:var(--serif);font-size:3rem;font-weight:300;color:#fff6;line-height:1}.treatment-card__body{padding:1.5rem 1.75rem 2rem}.treatment-card__body h3{font-family:var(--serif);font-size:1.5rem;font-weight:500;color:var(--charcoal);margin-bottom:.5rem}.treatment-card__body>p{font-size:.85rem;color:var(--text-2);margin-bottom:1.25rem;line-height:1.7}.treatment-card__prices{border-top:1px solid var(--border);padding-top:.75rem}.treatment-card__prices>div{display:flex;justify-content:space-between;padding:.4rem 0;font-size:.85rem}.treatment-card__prices span:first-child{color:var(--text-2)}.treatment-card__prices span:last-child{color:var(--moss);font-weight:600}@media (max-width: 600px){.treatment-card{flex:0 0 85vw}.treatments__scroll-hint{display:none}}.parallax-quote{position:relative;min-height:55vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:6rem 2rem;overflow:hidden}.parallax-quote__bg{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;background-size:cover;background-position:center;will-change:transform}.parallax-quote__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#1e2e1ed1}.parallax-quote__content{position:relative;z-index:2;max-width:650px}.parallax-quote__jp{font-size:5rem;color:#ffffff14;letter-spacing:.3em;display:block;margin-bottom:1rem;transition:transform 1s var(--ease),opacity 1s}.parallax-quote blockquote{font-family:var(--serif);font-size:clamp(1.5rem,4vw,2.8rem);font-weight:300;color:#fff;line-height:1.3;margin-bottom:1.5rem}.parallax-quote blockquote em{color:var(--sand-light);font-style:italic}.parallax-quote cite{font-family:var(--sans);font-size:.72rem;color:var(--sand-dark);font-style:normal;letter-spacing:.15em;text-transform:uppercase}.space{padding:7rem clamp(1.5rem,5vw,4rem)}.space__header{max-width:var(--max-w);margin:0 auto 3rem}.space__grid{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:200px;gap:1rem}.space__card{overflow:hidden;border-radius:var(--r)}.space__card--text{grid-row:span 2;background:var(--moss-dark);color:#ffffffb3;padding:2.5rem 2rem;display:flex;flex-direction:column;justify-content:center}.space__card--text p{font-size:.9rem;line-height:1.8;margin-bottom:1rem}.space__card--img img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-out)}.space__card--img:hover img{transform:scale(1.06)}.space__card--tall{grid-row:span 2}.space__card--detail{background:var(--cream);border:1px solid var(--border);padding:2rem;display:flex;flex-direction:column;justify-content:center;text-align:center;transition:transform .5s var(--ease),border-color .5s}.space__card--detail:hover{transform:translateY(-4px);border-color:var(--moss)}.space__kanji{font-size:2.5rem;color:var(--moss);opacity:.15;margin-bottom:.5rem}.space__card--detail h3{font-family:var(--serif);font-size:1.2rem;color:var(--charcoal);margin-bottom:.35rem}.space__card--detail p{font-size:.78rem;color:var(--text-2);line-height:1.6}@media (max-width: 768px){.space__grid{grid-template-columns:1fr 1fr;grid-auto-rows:180px}.space__card--text{grid-column:span 2;grid-row:span 1}.space__card--detail{grid-column:span 2}}@media (max-width: 500px){.space__grid{grid-template-columns:1fr;grid-auto-rows:auto}.space__card--text,.space__card--detail{grid-column:auto}.space__card--img{aspect-ratio:4/3}.space__card--tall{grid-row:auto}}.stats{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--cream)}.stat{padding:3rem 2rem;text-align:center;border-right:1px solid var(--border)}.stat:last-child{border-right:none}.stat__num{display:block;font-family:var(--serif);font-size:3rem;font-weight:300;color:var(--moss);line-height:1;margin-bottom:.25rem}.stat__label{font-size:.68rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--text-3)}@media (max-width: 600px){.stats{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:none}}.reviews{position:relative;padding:7rem clamp(1.5rem,5vw,4rem);background:var(--cream);overflow:hidden}.reviews__kanji{position:absolute;top:-.15em;left:-.15em;font-size:clamp(12rem,30vw,25rem);color:#3d4f3d06;font-family:var(--serif);pointer-events:none;line-height:1}.reviews__header{max-width:var(--max-w);margin:0 auto 3rem}.reviews__stack{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.review-card{background:var(--linen);border:1px solid var(--border);padding:2.5rem 2rem;position:relative;transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s}.review-card:hover{transform:translateY(-6px);box-shadow:0 20px 50px #2a2a280f;border-color:var(--moss)}.review-card__quote{font-family:var(--serif);font-size:5rem;color:var(--moss);opacity:.15;line-height:1;height:2.5rem;margin-bottom:.5rem}.review-card p{font-family:var(--serif);font-size:1.05rem;font-style:italic;color:var(--text);line-height:1.75;margin-bottom:1.5rem}.review-card__footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border);padding-top:1rem}.review-card__stars{color:var(--moss);font-size:.75rem;letter-spacing:2px}.review-card__footer>span{font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}@media (max-width: 768px){.reviews__stack{grid-template-columns:1fr;max-width:480px}}.contact{position:relative;min-height:80vh;display:flex;align-items:center;justify-content:flex-end;padding:5rem clamp(1.5rem,5vw,4rem);overflow:hidden}.contact__bg{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background-size:cover;background-position:center;will-change:transform}.contact__overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#1e2e1ed9,#1e2e1e99)}.contact__inner{position:relative;z-index:2;max-width:var(--max-w);width:100%;margin:0 auto;display:flex;justify-content:flex-end}.contact__card{background:#1e2e1e99;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);padding:3rem 2.5rem;max-width:440px;width:100%}.contact__card h2{color:#fff}.contact__card h2 em{color:var(--sand-light)}.contact__card>p{color:#fff9;margin-bottom:2rem}.contact__details{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.contact__details strong{display:block;font-size:.6rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--sand);margin-bottom:.1rem}.contact__details span,.contact__details a{color:#ffffffa6;font-size:.88rem;display:block}.contact__details a:hover{color:#fff}.contact__hours{margin-top:1rem}.contact__hours-row{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.06);font-size:.8rem;color:#ffffff80}.contact__hours-row:last-child{border-bottom:none}.contact__hours-row--today{color:var(--sand-light);font-weight:600}@media (max-width: 768px){.contact,.contact__inner{justify-content:center}.contact__card{max-width:100%}}.footer{background:var(--charcoal);padding:2.5rem clamp(1.5rem,5vw,4rem) 1.5rem}.footer__inner{max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.footer__logo{font-family:var(--serif);font-size:1.2rem;font-weight:400;color:var(--sand-light);letter-spacing:.05em}.footer__links{display:flex;gap:1.5rem}.footer__links a{font-size:.75rem;color:var(--text-3);transition:color .3s}.footer__links a:hover{color:var(--sand-light)}.footer__copy{font-size:.68rem;color:var(--text-3)}.footer__demo{max-width:var(--max-w);margin:1.25rem auto 0;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.06);text-align:center;font-size:.7rem;color:var(--text-3)}.footer__demo a{color:var(--sand);text-decoration:underline}@media (max-width: 600px){.footer__inner{flex-direction:column;text-align:center}}.reveal-fade{opacity:0;transition:opacity .9s var(--ease)}.reveal-fade--visible{opacity:1}.reveal-up{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal-up--visible{opacity:1;transform:none}.reveal-slide-right{opacity:0;transform:translate(-40px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.reveal-slide-right--visible{opacity:1;transform:none}.reveal-scale{opacity:0;transform:scale(.85);transition:opacity 1s var(--ease),transform 1s var(--ease)}.reveal-scale--visible{opacity:1;transform:none}
