@charset "UTF-8";
:root{--pink:#ffd8e3;--raspberry:#bb174b;--green:#d7e9a0;--yellow:#ffe472;--ink:#391c35;--cream:#fffaf1;--line:rgba(57,28,53,.22);--serif:"Fraunces",Georgia,serif;--sans:"DM Sans",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--pink);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent}button,a,summary:focus-visible{outline-offset:5px}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid currentColor}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.02;letter-spacing:-.045em}em{font-weight:600}img{display:block;max-width:100%}.skip-link{position:fixed;left:20px;top:-80px;background:var(--ink);color:#fff;padding:14px;z-index:10}.skip-link:focus{top:20px}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 5%;border-bottom:1px solid var(--line)}.brand{display:flex;flex-direction:column;align-items:center;line-height:1;width:max-content}.brand-top{font-size:.65rem;letter-spacing:.32em;font-weight:700;padding-left:.32em}.brand-name{font-family:var(--serif);font-size:2.8rem;font-weight:700;letter-spacing:-.07em;line-height:1.1}.brand-dot{color:var(--raspberry)}.brand-bottom{font-size:.6rem;letter-spacing:.19em;margin-top:7px}nav{display:flex;align-items:center;gap:35px;font-size:.9rem;font-weight:600}nav>a:not(.button){position:relative}nav>a:not(.button):after{content:"";position:absolute;left:0;bottom:-4px;height:2px;width:0;background:currentColor;transition:width .2s}nav>a:hover:after{width:100%}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;min-height:57px;padding:15px 26px;border:1px solid var(--raspberry);border-radius:50px;background:var(--raspberry);color:var(--cream);font-size:.94rem;font-weight:600;line-height:1.4;transition:transform .2s,box-shadow .2s}.button:hover{transform:translateY(-3px);box-shadow:0 5px 0 rgba(57,28,53,.15)}.button-small{min-height:47px;padding:12px 21px;gap:18px}.menu-toggle{display:none}
.hero{display:grid;grid-template-columns:1.12fr 1fr;gap:3.5%;padding:60px 5% 56px;max-width:1800px;margin:auto;align-items:center}.hero-copy{padding:13px 0 0}.hero h1{font-size:clamp(4.4rem,6.8vw,7.6rem);color:var(--raspberry);letter-spacing:-.065em;line-height:1.02}.hero h1 em{display:inline}.hero-description{font-size:1.12rem;line-height:1.65;margin:27px 0 29px}.hero-foot{display:flex;align-items:center;gap:14px;margin-top:46px;font-size:.81rem}.tiny-star{color:var(--raspberry);font-size:2rem;line-height:1}.hero-art{position:relative;align-self:stretch;min-height:495px;background:var(--yellow);border-radius:48% 48% 8px 8px;isolation:isolate}.hero-art>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;border-radius:inherit}.ciao-seal{position:absolute;top:22px;right:-13px;background:var(--green);border:1px solid var(--ink);border-radius:50%;width:123px;height:123px;display:flex;align-items:center;justify-content:center;flex-direction:column;transform:rotate(12deg);font-size:.77rem;font-weight:700;line-height:1.25;letter-spacing:.04em;box-shadow:4px 4px 0 var(--ink)}.seal-smile{font-size:2.6rem;line-height:1;margin-top:4px;font-family:Arial,sans-serif;font-weight:400}.photo-caption{position:absolute;bottom:18px;left:24px;right:24px;display:flex;justify-content:space-between;gap:15px;font-size:.59rem;font-weight:700;letter-spacing:.12em}.flavour-band{background:var(--raspberry);color:var(--pink);padding:16px 0;overflow:hidden;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.flavour-band>div{display:flex;align-items:center;justify-content:space-around;gap:40px;white-space:nowrap;min-width:1150px}.flavour-band span{font-family:var(--serif);font-size:1.9rem;letter-spacing:.03em;font-weight:600}.flavour-band i{font-size:2rem;font-style:normal;line-height:1}
.section-space{padding:92px 5%}.menu-section{background:var(--cream)}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:44px}.section-label{font-size:.75rem;font-weight:700;letter-spacing:.16em;margin-bottom:16px}h2{font-size:clamp(3rem,4.7vw,5.4rem)}.section-heading>p{font-size:.95rem;margin-bottom:5px;line-height:1.7}.menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.menu-card{padding:29px 28px 25px;border-radius:5px;display:flex;flex-direction:column}.gelato-card{background:var(--green)}.pastry-card{background:var(--pink)}.coffee-card{background:var(--yellow)}.card-top{display:flex;justify-content:space-between;align-items:center;font-size:.68rem;font-weight:700;letter-spacing:.07em;padding-bottom:26px}.card-top>span:first-child{border:1px solid var(--ink);border-radius:50%;width:30px;height:30px;display:grid;place-content:center;font-size:.75rem}.menu-card h3{font-size:clamp(2.4rem,3.5vw,4rem);margin-bottom:21px}.menu-card>p{font-size:.94rem;line-height:1.65;max-width:30ch}.flavour-list{display:flex;flex-wrap:wrap;gap:8px;margin:27px 0 28px}.flavour-list>span{border:1px solid rgba(57,28,53,.4);padding:5px 12px;border-radius:20px;font-size:.8rem}.menu-card details{margin-top:auto;border-top:1px solid var(--line);padding-top:15px}.menu-card summary{cursor:pointer;list-style:none;font-size:.9rem;font-weight:600;display:flex;justify-content:space-between;align-items:center;min-height:30px}.menu-card summary::-webkit-details-marker{display:none}.menu-card summary span{font-size:1.4rem;transition:transform .2s}.menu-card details[open] summary span{transform:rotate(45deg)}.menu-card details p{font-size:.9rem;margin-top:13px;line-height:1.7}.menu-list{list-style:none;padding:0;margin:24px 0 28px;font-size:.9rem}.menu-list li{padding:7px 0;border-bottom:1px solid var(--line)}.menu-list li:first-child{padding-top:0}.text-link{display:inline-flex;align-items:center;gap:16px;font-size:.9rem;font-weight:600;line-height:1.5;width:fit-content}.text-link:hover{text-decoration:underline;text-underline-offset:5px}.menu-card>.text-link{margin-top:auto;padding-top:16px}.menu-note{font-size:.81rem;margin-top:24px;text-align:center;opacity:.8}
.story-section{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:var(--green);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.story-heading h2{font-size:clamp(3.5rem,6.4vw,7rem)}.story-copy{position:relative;padding-top:37px;max-width:490px}.story-flower{position:absolute;right:0;top:-23px;color:var(--raspberry);font-size:5.5rem;line-height:1;transform:rotate(12deg)}.story-lead{font-family:var(--serif);font-size:1.75rem;font-weight:600;line-height:1.25;letter-spacing:-.025em;margin-bottom:25px}.story-copy>p:not(.story-lead){font-size:1rem;margin-bottom:17px;line-height:1.8}.story-copy>.text-link{margin-top:16px;border-bottom:1px solid var(--ink);padding-bottom:7px}
.visit-section{background:var(--raspberry);color:var(--pink);display:grid;grid-template-columns:1.05fr 1fr;gap:12%}.visit-title h2{font-size:clamp(4.3rem,7.5vw,8rem);margin-bottom:34px}.button-yellow{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}.visit-details{padding-top:0}.visit-row{padding:23px 0;border-bottom:1px solid rgba(255,216,227,.45)}.visit-row:first-child{padding-top:0}.visit-row h3{font-family:var(--sans);font-size:.8rem;font-weight:500;letter-spacing:.03em;margin-bottom:13px}.visit-row address{font-family:var(--serif);font-size:1.65rem;font-style:normal;line-height:1.3;letter-spacing:-.02em}dl{margin:0;font-size:.94rem}dl>div{display:flex;justify-content:space-between;gap:20px;margin-bottom:7px}dd{margin:0;white-space:nowrap}.hours-note{font-size:.75rem;margin-top:12px;opacity:.9}.hours-note a{text-decoration:underline;text-underline-offset:3px}.contact-row{display:flex;align-items:center;justify-content:space-between}.contact-row>div>a{font-family:var(--serif);font-size:1.75rem;letter-spacing:-.035em}.round-link{width:50px;height:50px;border:1px solid var(--pink);border-radius:50%;display:grid;place-content:center;transition:background .2s,color .2s}.round-link:hover{background:var(--pink);color:var(--raspberry)}
footer{background:var(--pink);padding:34px 5% 28px;color:var(--raspberry)}.footer-wordmark{display:block;font-family:var(--serif);font-size:clamp(6rem,20.5vw,25rem);line-height:1;letter-spacing:-.08em;font-weight:700;padding-bottom:40px;white-space:nowrap}.footer-wordmark>span{color:var(--ink)}.footer-line{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid rgba(187,23,75,.35);padding-top:24px;font-size:.79rem}.footer-line>a{display:flex;gap:12px;align-items:center}.footer-line>a svg{width:17px;height:17px}.footer-line>span{font-size:.65rem;letter-spacing:.1em}
@media(min-width:1650px){.site-header,.section-space,footer{padding-left:max(5%,calc((100vw - 1620px)/2));padding-right:max(5%,calc((100vw - 1620px)/2))}.hero{padding-left:90px;padding-right:90px}.hero-art{min-height:620px}}
@media(max-width:1050px){nav{gap:22px}.hero h1{font-size:6.7vw}.hero-art{min-height:420px}.hero{gap:4%;padding-top:44px}.hero-foot{font-size:.74rem;margin-top:32px}.menu-card{padding:24px 22px}.menu-grid{gap:16px}.card-top{font-size:.58rem}.section-heading>p{font-size:.88rem}.story-section,.visit-section{gap:8%}.ciao-seal{width:105px;height:105px;right:-8px;top:10px;font-size:.65rem}.photo-caption{font-size:.5rem;left:17px;right:17px}.section-space{padding-top:76px;padding-bottom:76px}}
@media(max-width:760px){.site-header{padding:19px 6%;position:relative;z-index:3}.brand-name{font-size:2.45rem}.brand-top{font-size:.56rem}.brand-bottom{font-size:.54rem}.menu-toggle{display:flex;align-items:center;gap:12px;border:1px solid var(--ink);border-radius:40px;background:transparent;padding:10px 17px;font-size:.85rem;cursor:pointer}.menu-toggle svg{width:20px;height:20px}nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--pink);padding:23px 6% 28px;flex-direction:column;align-items:stretch;gap:0;border-bottom:1px solid var(--ink);box-shadow:0 12px 18px #391c3510}nav.is-open{display:flex}nav>a:not(.button){padding:13px 0;border-bottom:1px solid var(--line)}nav>.button{margin-top:19px;align-self:flex-start}.hero{grid-template-columns:1fr;padding:42px 6% 33px;gap:36px}.hero-copy{padding:0}.hero h1{font-size:clamp(3.3rem,10.8vw,5.7rem);line-height:1.02;letter-spacing:-.065em}.hero-description{font-size:1rem;margin:21px 0 23px}.hero-foot{margin-top:24px;font-size:.75rem}.hero-art{min-height:0;height:auto;aspect-ratio:1.08;max-width:540px;width:100%;justify-self:center;border-radius:48% 48% 5px 5px}.ciao-seal{right:0;top:15px}.photo-caption{font-size:.54rem;bottom:17px}.flavour-band{padding:12px 0}.flavour-band>div{min-width:830px;gap:27px}.flavour-band span{font-size:1.4rem}.flavour-band i{font-size:1.5rem}.section-space{padding:58px 6%}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:20px;font-size:.91rem}.section-label{font-size:.67rem;margin-bottom:15px}h2{font-size:clamp(2.8rem,9vw,4rem)}.menu-grid{grid-template-columns:1fr;gap:18px}.menu-card{padding:26px 25px 24px}.card-top{font-size:.64rem;padding-bottom:21px}.menu-card h3{font-size:2.8rem}.menu-card h3 br{display:none}.menu-card h3 br:after{content:" "}.menu-card>p{max-width:100%}.menu-card h3{line-height:1.07}.menu-card h3 br{display:initial}.flavour-list{margin:22px 0}.menu-list{margin:23px 0}.menu-note{font-size:.75rem;margin-top:23px}.story-section{grid-template-columns:1fr;gap:35px}.story-heading h2{font-size:clamp(3.4rem,12vw,5.5rem)}.story-copy{padding-top:10px;max-width:100%}.story-flower{top:-78px;right:9px;font-size:4.8rem}.story-lead{font-size:1.65rem}.story-copy>p:not(.story-lead){font-size:.96rem}.story-copy>.text-link{font-size:.81rem}.visit-section{grid-template-columns:1fr;gap:45px}.visit-title h2{font-size:clamp(4rem,15vw,7rem);margin-bottom:28px}.visit-row{padding:25px 0}.visit-details{max-width:540px}dl{font-size:.9rem}.footer-wordmark{font-size:20vw;padding-bottom:27px}footer{padding:32px 6% 26px}.footer-line{flex-wrap:wrap;gap:18px;font-size:.72rem;padding-top:21px}.footer-line>span{width:100%;font-size:.59rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Keep supporting copy legible across screen sizes. */
.brand-top,.brand-bottom,.photo-caption,.card-top,.section-label,.footer-line>span{font-size:.75rem}
.hero-foot,.menu-note,.footer-line,.hours-note{font-size:.875rem}
@media(max-width:760px){.photo-caption{font-size:.75rem;letter-spacing:.02em}.brand-top,.brand-bottom{font-size:.75rem}.hero h1{font-size:clamp(3.1rem,10.2vw,5.3rem)}.hero-foot{font-size:.875rem}.card-top{font-size:.75rem}}
