@font-face{font-family:Manrope;src:url('assets/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
:root{--pink:#fff2f5;--paper:#fffafb;--ink:#211a1d;--cherry:#850d37;--muted:#68565e;--line:#e6cbd3;--radius:30px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;max-width:100%}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--cherry);outline-offset:6px}::selection{background:#f2bdcf;color:#211a1d}h1,h2,h3,p{margin:0}h2{font-size:clamp(42px,5vw,72px);line-height:1.1;font-weight:500;letter-spacing:-.055em}h3{font-size:clamp(21px,2.1vw,30px);line-height:1.3;font-weight:500;letter-spacing:-.035em}.section{max-width:1320px;width:calc(100% - 112px);margin:0 auto}.eyebrow{text-transform:uppercase;font-size:11px;letter-spacing:.23em;font-weight:600;margin-bottom:20px}.text-link{display:inline-flex;align-items:center;gap:20px;border-bottom:1px solid #bb5e7d;padding:6px 0;transition:color .18s}.text-link:hover{color:var(--cherry)}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;border-radius:99px;background:var(--cherry);color:white;padding:19px 30px;font-size:15px;font-weight:500;transition:background .2s,transform .2s;min-height:56px}.button:hover{background:#660a2a;transform:translateY(-2px)}.button:active{transform:scale(.98)}.button span{font-size:24px;line-height:1}.skip{position:fixed;left:16px;top:-80px;background:var(--ink);color:white;padding:12px;z-index:50;border-radius:12px}.skip:focus{top:12px}
.header{position:absolute;top:0;left:0;width:100%;z-index:5;height:82px;display:flex;align-items:center;justify-content:center}.header nav{display:flex;gap:clamp(24px,4vw,62px);align-items:center}.header a{font-size:15px;letter-spacing:.1em;padding:14px 0;border-bottom:1px solid transparent}.header a:hover{border-color:var(--cherry);color:var(--cherry)}
.hero{background:var(--pink) url('assets/blossom-background.png') center/cover no-repeat;overflow:hidden}.hero-inner{max-width:1680px;margin:auto;position:relative;height:clamp(740px,56.25vw,940px)}.hero-brand{position:absolute;z-index:2;top:114px;width:60%;left:20%;text-align:center}.hero-brand .eyebrow{margin:0;position:relative;z-index:2}.logo-window{position:relative;aspect-ratio:2.55;overflow:hidden;margin-top:-4px;mix-blend-mode:multiply;mask-image:radial-gradient(ellipse 65% 76% at 50% 50%,black 65%,transparent 100%)}.logo-window img{width:100%;height:auto;position:absolute;top:50%;transform:translateY(-47%);left:0}.hero-photo{position:absolute;top:34%;bottom:10%;overflow:hidden;border-radius:var(--radius);isolation:isolate}.hero-photo img{height:100%;width:100%;object-fit:cover;transition:transform .6s}.hero-photo:hover img{transform:scale(1.025)}.photo-left{left:2.5%;width:33.5%}.photo-right{right:2.5%;width:23.5%}.hero-actions{position:absolute;z-index:3;left:38%;right:28%;top:52%;display:flex;align-items:center;flex-direction:column;text-align:center;gap:26px}.hero-actions p{font-size:clamp(15px,1.45vw,23px);white-space:nowrap;margin-bottom:16px}.hero-actions .text-link{font-size:15px}.hero-address{position:absolute;bottom:4.8%;left:35%;right:25%;font-size:12px;color:var(--muted);display:flex;justify-content:center;gap:20px;align-items:center}.hero-address:before,.hero-address:after{content:'';height:1px;width:45px;background:#d893aa}.hero-address span{font-size:20px;color:var(--cherry)}
.services{padding-top:120px;padding-bottom:120px;display:grid;grid-template-columns:1fr 1.65fr;gap:80px}.section-intro .text-link{margin-top:30px;font-size:13px}.service-list details{border-bottom:1px solid var(--line)}.service-list details:first-child{border-top:1px solid var(--line)}.service-list summary{padding:26px 0;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:24px;list-style:none}.service-list summary::-webkit-details-marker{display:none}.detail-toggle{width:34px;height:34px;flex-shrink:0;border:1px solid var(--line);border-radius:50%;position:relative}.detail-toggle:before,.detail-toggle:after{content:'';position:absolute;top:50%;left:10px;width:12px;height:1px;background:var(--cherry)}.detail-toggle:after{transform:rotate(90deg);transition:transform .18s}details[open] .detail-toggle:after{transform:rotate(0)}.service-copy{max-width:510px;padding:0 50px 26px 0;color:var(--muted);font-size:15px}
.gallery{padding-bottom:120px}.gallery-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:44px}.gallery-heading .text-link{font-size:13px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.gallery-photo{border:0;padding:0;background:#f7dce5;border-radius:var(--radius);overflow:hidden;aspect-ratio:1;position:relative}.gallery-photo img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.gallery-photo:hover img{transform:scale(1.045)}.gallery-photo:nth-child(3n + 2){transform:translateY(34px)}.gallery-photo:after{content:'↗';position:absolute;right:16px;bottom:16px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;color:var(--cherry);background:#fffafbec;opacity:0;transition:opacity .2s}.gallery-photo:hover:after,.gallery-photo:focus-visible:after{opacity:1}
.gift-wrap{background:var(--pink) url('assets/blossom-background.png') center/cover no-repeat}.gift{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:120px;padding-top:100px;padding-bottom:100px}.gift h2{font-size:clamp(36px,4.1vw,59px);line-height:1.17}.gift-copy{max-width:390px}.gift-copy p{font-size:19px;line-height:1.7;margin-bottom:30px}.cherry-seal{width:82px;height:82px;border-radius:50%;mix-blend-mode:multiply;margin-bottom:22px}.gift .button{font-size:14px}
.studio{display:grid;grid-template-columns:1fr 1.25fr;gap:100px;align-items:center;padding-top:120px;padding-bottom:120px}.owner{font-size:22px;margin:20px 0}.studio-title .text-link{font-size:14px}.location-card{border:1px solid var(--line);background:var(--pink);border-radius:var(--radius);padding:56px;text-align:center}.location-card address{font-style:normal;font-size:clamp(26px,3vw,43px);letter-spacing:-.035em;line-height:1.4}.location-card .button{margin-top:32px}.button-outline{border:1px solid var(--cherry);background:transparent;color:var(--cherry)}.button-outline:hover{background:var(--cherry);color:white}
.contact{background:var(--cherry);color:white}.contact-inner{padding-top:68px;padding-bottom:70px;display:flex;justify-content:space-between;align-items:center;gap:40px}.contact .eyebrow{color:#f5bfd0}.contact-links{display:grid;gap:20px;min-width:42%}.contact-links a{border-bottom:1px solid #b86482;font-size:clamp(20px,2.5vw,35px);display:flex;gap:32px;justify-content:space-between;padding:9px 0;letter-spacing:-.03em}.contact-links a:hover{color:#f7c0d1}.footer{padding-top:36px;padding-bottom:36px;display:flex;align-items:center;gap:28px;font-size:11px;color:var(--muted)}.footer-brand{font-size:22px;letter-spacing:-.04em;color:var(--cherry)}.footer div{margin-left:auto;display:flex;gap:24px}.footer a:hover{text-decoration:underline}
.lightbox{padding:0;background:transparent;border:0;max-width:min(94vw,1000px);max-height:94dvh;overflow:visible;color:white}.lightbox::backdrop{background:#1d1019e8;backdrop-filter:blur(8px)}.lightbox img{width:auto;max-width:90vw;height:auto;max-height:85dvh;object-fit:contain;border-radius:20px;margin:auto}.lightbox-close{position:absolute;right:6px;top:6px;z-index:2;border:0;border-radius:50%;background:white;color:var(--cherry);width:44px;height:44px;font-size:30px;line-height:1}.lightbox-error{padding:50px 30px;background:var(--ink);border-radius:20px}.lightbox-error a{text-decoration:underline}body:has(.lightbox[open]){overflow:hidden}
@media(prefers-reduced-motion:no-preference){.hero-brand{animation:appear .5s both}.hero-actions{animation:appear .45s .12s both}.hero-photo{animation:appear .65s .1s both}@keyframes appear{from{opacity:0}to{opacity:1}}}
@media(min-width:1024px){@supports(animation-timeline:view()){.gallery-photo:nth-child(3n + 2){animation:gallery-drift linear both;animation-timeline:view();animation-range:entry 0% exit 100%}@keyframes gallery-drift{from{transform:translateY(48px)}to{transform:translateY(-12px)}}}}
@media(min-width:1680px){.hero{background-size:100% 100%}}
@media(max-width:1023px){.section{width:calc(100% - 64px)}.hero-inner{height:760px}.hero-brand{width:74%;left:13%;top:112px}.hero-photo{top:39%;bottom:10%}.photo-left{width:29%;left:3%}.photo-right{width:25%;right:3%}.hero-actions{left:33%;right:29%;top:53%;gap:24px}.hero-actions p{font-size:14px;white-space:normal}.hero-actions .button{padding:15px 20px;gap:14px;font-size:13px}.hero-address{left:20%;right:20%;bottom:4%}.services,.studio{gap:48px;padding-top:85px;padding-bottom:85px}.gift{gap:50px;padding-top:76px;padding-bottom:76px}.gallery-grid{gap:18px}.footer{flex-wrap:wrap}.footer div{width:100%;margin:0}.gift-copy p{font-size:16px}.location-card{padding:36px 24px}}
@media(max-width:639px){html{scroll-padding-top:24px}.header{height:70px}.header nav{gap:25px}.header a{font-size:12px;letter-spacing:.03em}.section{width:calc(100% - 40px)}.hero{background-size:auto 100%;background-position:center}.hero-inner{height:auto;display:grid;grid-template-columns:1.12fr .88fr;gap:14px;padding:88px 20px 26px}.hero-brand{position:relative;top:auto;left:auto;width:100%;grid-column:1/-1}.hero-brand .eyebrow{font-size:9px;letter-spacing:.17em;margin-bottom:8px}.logo-window{aspect-ratio:2.42;margin:0 -8px}.hero-actions{position:relative;left:auto;right:auto;top:auto;grid-column:1/-1;grid-row:2;gap:16px;padding:6px 0 22px}.hero-actions p{font-size:14px;margin-bottom:2px}.hero-actions .button{font-size:14px;padding:16px 25px;min-height:54px;gap:26px}.hero-actions .text-link{font-size:12px;padding:4px 0}.hero-photo{position:relative;inset:auto;width:auto;aspect-ratio:4/5;align-self:start;border-radius:24px}.hero-photo img{object-fit:cover}.photo-right{margin-top:32px;aspect-ratio:3/4}.hero-address{position:relative;left:auto;right:auto;bottom:auto;grid-column:1/-1;font-size:11px;gap:10px;margin-top:14px}.hero-address:before,.hero-address:after{width:22px}.hero-address span{font-size:16px}.services{display:block;padding-top:64px;padding-bottom:64px}.section-intro{margin-bottom:30px}.eyebrow{font-size:10px;margin-bottom:14px}.section-intro .text-link{margin-top:18px;font-size:12px}.service-list summary{padding:22px 0}.service-copy{font-size:14px;padding-right:20px}.gallery{padding-bottom:74px}.gallery-heading{align-items:start;margin-bottom:30px;gap:15px}.gallery-heading .text-link{font-size:11px;gap:8px;align-self:end}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gallery-photo{border-radius:22px;aspect-ratio:4/5}.gallery-photo:nth-child(3n + 2){transform:none}.gallery-photo:nth-child(even){transform:translateY(24px)}.gift{display:block;padding-top:62px;padding-bottom:62px}.gift h2{font-size:35px}.gift-copy{margin-top:34px}.gift-copy p{font-size:17px;max-width:310px}.cherry-seal{width:64px;height:64px;margin-bottom:18px}.gift .button{font-size:13px;padding:17px 24px}.studio{display:block;padding-top:64px;padding-bottom:64px}.studio-title{margin-bottom:34px}.owner{font-size:20px;margin:16px 0}.location-card{padding:36px 20px}.location-card address{font-size:29px}.contact-inner{display:block;padding-top:48px;padding-bottom:48px}.contact-links{margin-top:32px;gap:14px}.contact-links a{font-size:24px}.footer{gap:12px;padding-top:26px;padding-bottom:28px}.footer p{font-size:10px}.footer div{gap:18px;flex-wrap:wrap;margin-top:10px}.lightbox img{max-height:80dvh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.gallery-photo:nth-child(3n + 2){transform:none}}

/* Transparent preparation of the owner's supplied logo, keeping its lettering. */
.logo-window{aspect-ratio:1920/812;overflow:visible;mix-blend-mode:normal;mask-image:none;margin-top:8px}
.logo-window img{position:static;transform:none;width:100%;height:auto}
@media(min-width:1024px){.hero-brand{top:90px;width:56%;left:22%}.hero-actions{top:59%;gap:20px}.hero-actions p{margin-bottom:8px}}
@media(min-width:640px) and (max-width:1023px){.hero-brand{width:66%;left:17%;top:105px}.hero-actions{top:57%;gap:18px}.hero-actions p{margin-bottom:0}}
@media(max-width:639px){.logo-window{margin:0 -8px}.hero-brand .eyebrow{margin-bottom:12px}}
[hidden]{display:none!important}
