@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--ink:#174c43;--cream:#fff9ee;--coral:#e9937c;--sage:#dfebda;scroll-behavior:smooth;scroll-padding-top:30px}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font:15px/1.7 'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #b75133;outline-offset:5px}.concept{text-align:center;background:#e3ebd9;padding:8px 15px;font-size:10px;letter-spacing:.05em}.concept a{text-decoration:underline;text-underline-offset:3px}.header{max-width:1440px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:28px 6%;border-bottom:1px solid #174c4322}.brand{font:bold 38px/.9 'DM Sans',sans-serif;letter-spacing:-2.5px;position:relative;display:inline-block}.brand small{display:block;font:10px/1.5 'DM Sans',sans-serif;letter-spacing:5px;margin:10px 0 0 4px}.brand-sun{font-size:30px;margin-left:7px;vertical-align:3px;color:#c46c4f}.header nav{display:flex;gap:30px;align-items:center;font-size:12px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:24px;background:var(--ink);color:var(--cream);border:0;border-radius:99px;padding:17px 25px;font-size:12px;font-weight:600;transition:transform .2s,background .2s}.button span{font-size:20px}.button.small{padding:12px 20px}.button:hover{background:#26665a;transform:translateY(-2px)}.journey{max-width:1440px;padding:0 6%;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;gap:7%}.story{min-width:0}.chapter{padding:95px 0;scroll-margin-top:30px;border-bottom:1px solid #174c4322}.hero{padding:78px 0 80px;min-height:720px;border:0}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:700;margin:0 0 27px}h1,h2{font-family:'DM Serif Display',Georgia,serif;line-height:1.04;font-weight:400;letter-spacing:-2.3px;margin:0 0 29px}h1{font-size:clamp(62px,6.2vw,90px)}h2{font-size:clamp(42px,4.3vw,62px)}h1 em,h2 em{font-weight:400;color:#6a8b68}h3{font-size:16px;line-height:1.4;margin:0 0 8px;letter-spacing:-.3px}p{margin:0 0 24px}.lead{font-size:15px;line-height:1.85;margin-bottom:30px}.underlink{display:block;width:fit-content;font-size:11px;font-weight:600;border-bottom:1px solid #174c4355;padding-bottom:5px;margin-top:20px}.hero-note{font-size:10px;margin-top:48px;display:flex;align-items:center;gap:12px}.hero-note span{font-size:24px}.chapter>p:not(.eyebrow):not(.fine){max-width:440px;color:#49665d}.mascot-column{min-width:0;position:relative}.scene{position:sticky;top:25px;margin:45px 0 40px;background:#dfeadb;border-radius:180px 180px 20px 20px;overflow:hidden;min-height:610px;padding-top:54px}.scene-top{display:flex;justify-content:space-between;align-items:center;margin:14px 35px 0;gap:12px;font-size:8px;letter-spacing:1.5px;line-height:1.7}.scene-top button{border:0;background:transparent;text-decoration:underline;text-underline-offset:4px;font-size:9px;white-space:nowrap;padding:8px;letter-spacing:0}.mascot{width:100%;display:block;margin-top:-10px;max-height:500px}.scene-caption{display:flex;gap:17px;align-items:center;padding:0 30px 25px}.caption-number{font-size:30px}.scene-caption strong{font-family:'DM Serif Display',Georgia,serif;font-size:23px;font-weight:400}.scene-caption p{font-size:10px;margin:3px 0 0}.mascot-label{display:block;text-align:center;font-size:8px;letter-spacing:2px;border-top:1px solid #174c4320;padding:14px}.umbrella,.deckchair,.eyes,.arm{opacity:0;transition:opacity .4s}.glasses{transition:transform .5s;transform-origin:250px 180px}.tooth-float{transform-origin:250px 300px;animation:bob 4s ease-in-out infinite}.float{transition:opacity .4s}.scene[data-state=shade] .umbrella{opacity:1}.scene[data-state=wave] .glasses{transform:translateY(-40px) rotate(-8deg)}.scene[data-state=wave] .eyes,.scene[data-state=wave] .arm{opacity:1}.scene[data-state=chair] .deckchair,.scene[data-state=rest] .deckchair{opacity:1}.scene[data-state=chair] .float,.scene[data-state=rest] .float{opacity:0}.scene[data-state=rest] .glasses{transform:translateY(-35px)}.scene[data-state=rest] .eyes{opacity:1}.scene[data-state=rest] .umbrella{opacity:1}.scene[data-state=rest] .tooth-float{animation-duration:6s}.flower{transform-origin:417px 427px}.care-row{display:flex;gap:20px;border-top:1px solid #174c4325;padding:25px 0}.care-row p{font-size:12px;line-height:1.85;margin:0}.line-icon{font-size:30px;width:35px;flex:none;line-height:1.2}.number{font-size:9px;margin-left:auto;opacity:.6}.steps{padding:0;list-style:none;margin:35px 0}.steps li{display:flex;gap:20px;padding:22px 0}.steps li>span{border:1px solid #174c4333;border-radius:50%;width:37px;height:37px;display:grid;place-items:center;flex:none;font-family:Georgia,serif;font-size:18px}.steps p{margin:0;font-size:12px}.fine{font-size:10px;line-height:1.7;color:#5b7064}.room{height:270px;background:#e9ddc8;position:relative;overflow:hidden;border-radius:120px 120px 10px 10px;margin:30px 0}.window{position:absolute;left:35px;top:35px;width:120px;height:145px;border-radius:80px 80px 0 0;background:#c5d8bd;border:9px solid #faf1df}.window:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 47%,#faf1df 47%,#faf1df 53%,transparent 53%)}.window i{position:absolute;right:10px;top:15px;width:35px;height:35px;border-radius:50%;background:#e9bb76}.arch{position:absolute;width:115px;height:190px;border-radius:100px 100px 0 0;right:30px;top:40px;background:#f4ead7}.bench{position:absolute;bottom:35px;left:70px;right:60px;height:62px;background:#bdc6a1;border-radius:25px 25px 9px 9px;border-bottom:10px solid #7d8867;box-shadow:0 9px 0 -4px #7e715c}.plant{position:absolute;right:35px;bottom:60px;font-size:70px;z-index:1;transform:rotate(15deg);color:#677e57}.room-label{position:absolute;bottom:9px;left:20px;font-size:7px;letter-spacing:1px}.principles{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;margin-top:35px}.principles span{font-size:25px}.principles h3{font-size:12px;margin-top:10px}.principles p{font-size:10px}.faq details{border-top:1px solid #174c4333;padding:21px 0}.faq summary{font-size:13px;font-weight:500;cursor:pointer}.faq details p{font-size:12px;margin:17px 0 0}.booking{border:0}.booking form{margin-top:35px;background:#ecefdc;border-radius:20px;padding:28px}.booking label{display:block;font-size:11px;margin:0 0 8px;font-weight:600}.booking select{width:100%;padding:13px 15px;background:var(--cream);border:1px solid #174c4333;border-radius:9px;margin-bottom:20px;font-size:12px}.booking .button{width:100%;margin:5px 0 15px}.booking .fine{margin:0}.reset{border:0;background:transparent;text-decoration:underline;font-size:10px;padding:15px 0 0}#result{font-size:12px;background:#d2e4cd;padding:18px;border-radius:10px;margin-top:15px}.closing{background:#dce8d3;padding:36px 6%;display:flex;justify-content:space-between;align-items:center}.closing span{font-family:'DM Serif Display',Georgia,serif;font-size:clamp(25px,3.5vw,45px);letter-spacing:-1px}.closing a{font-size:10px}footer{padding:45px 6%;display:flex;align-items:center;justify-content:space-between;gap:35px}footer .brand{font-size:28px}footer p{font-size:10px;margin:0}footer>a:last-child{font-size:11px;text-decoration:underline;text-underline-offset:5px}.paused *{animation-play-state:paused!important}.paused .tooth-float{animation:none}.reveal{animation:enter .5s ease-out}@keyframes enter{from{opacity:.4;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}
@media(max-width:800px){.header{padding:23px 6%}.header nav{gap:15px}.header nav>a:not(.button){display:none}.brand{font-size:32px}.journey{display:block}.hero{min-height:0;padding:45px 0}.hero h1{font-size:70px}.hero-note{margin-top:25px}.mascot-column{position:fixed;width:92px;height:105px;right:12px;bottom:12px;z-index:5;pointer-events:none}.scene{padding:0;margin:0;min-height:0;border-radius:35px;background:#dfeadb;box-shadow:0 3px 15px #174c431a;position:static;overflow:hidden}.scene-top,.scene-caption,.mascot-label{display:none}.mascot{height:105px;margin:0}.chapter{padding:60px 0}.hero{padding-top:45px}.chapter h2{font-size:45px}.story{padding-bottom:20px}.booking{padding-bottom:110px}.closing{gap:25px}.closing a{max-width:80px}footer{align-items:flex-start;flex-direction:column;padding-bottom:135px;gap:25px}.principles{gap:13px}.scene .sun{opacity:.9}.header{position:relative}.header .small{font-size:10px;padding:11px 14px}.room{height:240px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.tooth-float{transform:none!important}}
/* On phones, reserve a compact sticky scene rather than covering the page. */
@media(max-width:800px){.journey{display:flex;flex-direction:column}.story{display:contents}.mascot-column{order:-1;position:sticky;top:0;width:100%;height:150px;right:auto;bottom:auto;z-index:5;pointer-events:auto;margin-top:15px}.scene{height:140px;min-height:140px;border-radius:18px;display:flex;align-items:center;justify-content:center}.mascot{height:150px;width:150px;flex:none}.scene-top{display:block;position:absolute;right:8px;top:4px;margin:0}.scene-top>span{display:none}.scene-caption{display:block;padding:0 16px 0 0;max-width:150px}.scene-caption .caption-number{display:none}.scene-caption strong{font-size:18px;line-height:1.15;display:block}.scene-caption p{font-size:9px}.chapter{scroll-margin-top:170px}.hero{padding-top:35px}.booking{padding-bottom:60px}footer{padding-bottom:45px}}
@media(max-width:800px){.hero h1{font-size:clamp(49px,14vw,66px);letter-spacing:-1.8px}}
/* Mallow's new home: header first, a little corner companion on scroll. */
.header{gap:24px;position:relative;min-height:144px;padding-block:20px}.brand{display:inline-flex;align-items:center;gap:12px;letter-spacing:-2px}.brand .tooth-logo{width:57px;height:57px;flex:none;overflow:visible}.brand-type{display:block}.brand small{margin-top:8px}.mascot-home{width:105px;height:102px;flex:none;margin-left:auto}.header nav{margin-left:12px}.mascot-column{position:relative;width:105px;height:102px;z-index:30;pointer-events:auto;margin:0;right:auto;bottom:auto;top:auto}.mascot-column.docked{position:fixed;right:22px;bottom:22px;top:auto;width:105px;height:110px;transform-origin:top left}.mascot-column .scene{position:relative;top:auto;margin:0;padding:0;width:100%;height:100%;min-height:0;border-radius:50%;overflow:visible;background:transparent;box-shadow:none;display:block}.mascot-column .scene-top{position:absolute;right:0;bottom:-5px;top:auto;margin:0;display:block;z-index:2}.scene-top>span,.mascot-column .scene-caption,.mascot-column .mascot-label{display:none}.scene-top button{width:24px;height:24px;border-radius:50%;background:var(--cream);border:1px solid #174c4333;text-decoration:none;padding:0;font-size:11px;letter-spacing:0;display:grid;place-items:center}.mascot-column .mascot{width:100%;height:100%;max-height:none;margin:0;overflow:visible;filter:drop-shadow(0 5px 3px #174c4314)}.mascot .sun-rays{transform-origin:394px 100px;animation:sun-turn 30s linear infinite}.mascot .sun{fill:#efbc65}.mascot .tooth-float{animation:companion-bob 4.5s ease-in-out infinite;transform-origin:250px 260px}.mascot .flower{display:none}.mascot .deckchair{transform:translate(42px,12px)}.scene[data-state=wave] .arm{transform-origin:330px 237px;animation:hello-wave 1.5s ease-in-out 2}.mascot-column:hover .tooth-float{animation:companion-greet .75s ease-in-out}.journey{display:block;max-width:1240px;padding-inline:7%}.story{display:block}.hero{min-height:0;max-width:100%;padding:85px 0 90px;position:relative;background:radial-gradient(ellipse at 95% 40%,#dfebda77,transparent 50%)}.hero h1{font-size:clamp(65px,7.6vw,110px);max-width:880px}.hero h1 br:first-child{display:none}.hero .lead{font-size:17px}.chapter:not(.hero){max-width:100%;padding-block:80px}.chapter>p:not(.eyebrow):not(.fine){max-width:600px}.care-row{max-width:800px}.care-row p{font-size:14px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.steps li{align-items:flex-start}.steps p{font-size:13px}.room{height:330px;max-width:760px}.window{width:190px;height:210px;left:80px}.arch{right:70px;width:180px;height:250px}.bench{left:160px;right:140px;height:85px}.plant{right:85px;font-size:100px}.principles{max-width:850px;gap:35px}.principles h3{font-size:15px}.principles p{font-size:13px}.faq details{max-width:800px}.booking form{max-width:600px}.closing{padding-right:150px}footer{padding-right:155px}
@keyframes companion-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}@keyframes companion-greet{0%,100%{transform:none}35%{transform:translateY(-6px) rotate(-7deg)}70%{transform:translateY(1px) rotate(5deg)}}@keyframes hello-wave{0%,100%{transform:rotate(0)}50%{transform:rotate(-13deg)}}@keyframes sun-turn{to{transform:rotate(360deg)}}
@media(max-width:800px){.header{min-height:122px;padding:17px 6%;gap:12px;flex-wrap:wrap}.header .brand{font-size:30px;gap:7px}.brand .tooth-logo{width:43px;height:43px}.mascot-home{width:70px;height:70px;margin-left:auto}.mascot-column{width:70px;height:70px;position:relative}.mascot-column.docked{width:76px;height:82px;right:12px;bottom:15px}.header nav{width:100%;margin:0;justify-content:space-between;gap:12px}.header nav>a:not(.button){display:block;font-size:10px}.header nav .small{font-size:9px;padding:8px 11px}.journey{display:block;padding-inline:6%}.story{display:block}.hero{padding:45px 0 55px}.hero h1{font-size:clamp(49px,12.8vw,74px);letter-spacing:-1.8px}.hero .lead{font-size:14px}.chapter:not(.hero){padding-block:55px;scroll-margin-top:20px}.steps{grid-template-columns:1fr;gap:0}.room{height:240px}.window{left:25px;width:110px;height:145px}.arch{right:25px;width:100px;height:180px}.bench{left:50px;right:50px;height:60px}.plant{right:20px;font-size:65px}.principles{grid-template-columns:1fr;gap:10px}.principles>div{display:grid;grid-template-columns:35px 1fr;column-gap:10px}.principles span{grid-row:span 2}.principles h3{margin:4px 0}.principles p{grid-column:2}.closing{padding-right:100px;align-items:flex-start}.closing span{font-size:25px}.closing a{display:none}footer{padding-right:105px;padding-bottom:65px}.booking form{padding:22px}.scene-top button{width:24px;height:24px}.booking .button{padding-inline:18px}}
@media(prefers-reduced-motion:reduce){.mascot *{animation:none!important;transition:none!important}.mascot-column{transition:none!important}}

.hero h1{font-size:clamp(60px,6.8vw,96px);max-width:1000px}.hero h1 br:first-child{display:initial}.mascot>path{display:none}.mascot>ellipse{opacity:.08}@media(max-width:800px){.hero h1{font-size:clamp(45px,11.6vw,70px)}}

/* Sunrise opening: the illustration stays still; only the sun follows scroll. */
:root{--sun-rise:175px;--warmth:0;--ray-opacity:.15}
body{background:#f6f8ef;isolation:isolate}body::before{content:'';position:fixed;inset:0;z-index:-1;background:#fff0d7;opacity:var(--warmth);pointer-events:none}
.header{min-height:120px;justify-content:space-between;background:transparent}.header nav{margin-left:auto}.header .brand .tooth-logo{width:61px;height:61px}.journey{max-width:1440px;padding-inline:6%}.hero{padding:55px 0 65px;min-height:calc(100svh + 300px);background:transparent;overflow:visible}.hero-inner{position:sticky;top:30px;display:grid;grid-template-columns:1.15fr 1fr;gap:5%;align-items:center;min-height:580px}.hero-copy{min-width:0}.hero h1{font-size:clamp(58px,6.4vw,88px);letter-spacing:-2.4px;line-height:1.05;max-width:760px}.hero .lead{font-size:15px}.hero-note{margin-top:30px}.sunrise-art{min-width:0;position:relative;background:radial-gradient(ellipse at 60% 42%,rgba(247,202,123,.12),transparent 66%)}.sunrise-art svg{width:100%;display:block;overflow:visible}.rising-sun{transform:translateY(var(--sun-rise));will-change:transform}.sun-halo{opacity:calc(var(--warmth) * .25);transform:translateY(var(--sun-rise))}.sunrise-rays{opacity:var(--ray-opacity)}.horizon-back{opacity:.65}.sunrise-note{display:block;text-align:center;font-size:8px;letter-spacing:2px;color:#567367;margin-top:10px}.chapter:not(.hero){max-width:1100px;margin-inline:auto}.closing{padding-right:6%}footer{padding-right:6%}.hero h1 em{color:#78916d}.concept{background:#e1ead9}
@media(max-width:800px){.header{min-height:125px;gap:18px}.header .brand .tooth-logo{width:43px;height:43px}.header nav{margin-left:0}.hero{padding:30px 0 35px;min-height:calc(100svh + 240px)}.hero-inner{top:10px;display:flex;flex-direction:column;gap:10px;min-height:0;align-items:stretch}.hero h1{font-size:clamp(42px,10.8vw,65px);letter-spacing:-1.5px;margin-bottom:16px}.hero .eyebrow{margin-bottom:16px;font-size:8px}.hero .lead{font-size:12px;margin-bottom:20px}.hero .lead br{display:none}.hero .button{padding:13px 20px}.hero .underlink{margin-top:12px;font-size:10px}.hero-note{display:none}.sunrise-art{width:min(100%,260px);margin:0 auto}.sunrise-note{font-size:7px;margin-top:-8px}.hero-inner{padding-bottom:10px}footer{padding-right:6%}.closing{padding-right:6%}.closing a{display:block}}
@media(prefers-reduced-motion:reduce){.hero{min-height:0}.hero-inner{position:relative;top:0}.rising-sun,.sun-halo{transform:none!important;will-change:auto}body::before{opacity:0}}
.hero{min-height:calc(100svh + 550px)}.hero h1{font-size:clamp(54px,5.2vw,74px)}@media(max-width:800px){.hero{min-height:calc(100svh + 400px)}.hero h1{font-size:clamp(39px,10.3vw,59px)}}@media(prefers-reduced-motion:reduce){.hero{min-height:0}}

/* An illustrated room with a little depth, rather than another static panel. */
.room{--room-depth:0;background:linear-gradient(135deg,#f3e8d1,#e2d6bd);isolation:isolate}
.room::before{content:'';position:absolute;width:70%;height:160%;left:-25%;top:-40%;background:linear-gradient(115deg,transparent 25%,#fff9e45c 26%,#fff9e414 70%,transparent 71%);transform:translateX(calc(var(--room-depth)*20px));pointer-events:none}
.room .window{transform:translateY(calc(var(--room-depth)*-12px))}
.room .window i{transform:translateY(calc(var(--room-depth)*-16px))}
.room .arch{transform:translateY(calc(var(--room-depth)*-7px))}
.room .bench{transform:translateY(calc(var(--room-depth)*5px))}
.room .plant{transform:translateY(calc(var(--room-depth)*10px)) rotate(calc(15deg + var(--room-depth)*2deg));transform-origin:bottom center}
@media(hover:hover) and (prefers-reduced-motion:no-preference){.care-row .line-icon{transition:transform .35s ease}.care-row:hover .line-icon{transform:rotate(8deg) scale(1.06)}.steps li>span{transition:background .3s ease,transform .3s ease}.steps li:hover>span{background:#e1ead9;transform:translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.room::before,.room .window,.room .window i,.room .arch,.room .bench{transform:none!important}.room .plant{transform:rotate(15deg)!important}}
