*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f7f5f1;color:#101616;font-family:'DM Sans',Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:12px 5%;gap:24px;position:sticky;top:0;background:#f7f5f1f5;z-index:20;border-bottom:1px solid #deded8}.brand{display:flex;flex-direction:column;align-items:center;line-height:.9;min-width:160px}.brandword{font-family:Italiana,Georgia,serif;font-size:49px;letter-spacing:-4px}.brandline{font-size:18px;margin-top:-7px;line-height:.6}.brand small{font-size:8px;letter-spacing:2.3px;font-weight:700;margin-top:9px}.header nav{display:flex;gap:30px}.header nav a,.nav-book{font-size:11px;font-weight:700;letter-spacing:1.5px}.header nav a:hover{color:#00534f}.pill{background:#00534f;color:white;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:40px;padding:17px 24px;font-size:12px;letter-spacing:1.3px;font-weight:700;transition:transform .2s,background .2s}.pill:hover{background:#073e3c;transform:translateY(-2px)}.nav-toggle{display:none;border:0;background:transparent;font-size:26px}.hero{min-height:690px;position:relative;display:grid;grid-template-columns:51% 49%;overflow:hidden}.hero-curve{position:absolute;right:-8%;top:-37%;width:90%;height:110%;border-radius:0 0 0 95%;background:#00534f;transform:rotate(-8deg)}.hero-curve:before{content:'';position:absolute;left:-20px;top:5px;width:100%;height:100%;border-left:30px solid #9dc9df;border-radius:0 0 0 95%}.hero-content{position:relative;z-index:2;padding:100px 2% 90px 10%}.eyebrow{font-size:11px;font-weight:700;letter-spacing:3px}.hero h1,h2,.booking h3,.find-card h3{font-family:Italiana,Georgia,serif;font-weight:400;letter-spacing:-2px}.hero h1{font-size:clamp(64px,7.5vw,116px);line-height:.99;margin:35px 0 28px;white-space:nowrap}.hero h1 em,h2 em,.booking h3 em{font-weight:400}.hero-content>p{font-size:17px;max-width:420px;line-height:1.8}.actions{display:flex;gap:25px;align-items:center;margin-top:35px}.textlink,.underlink{font-size:12px;font-weight:700;letter-spacing:1px;border-bottom:1px solid;padding-bottom:7px}.hero-note{font-size:12px;font-weight:700;letter-spacing:2px;line-height:1.7;margin-top:90px}.hero-photo{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;padding:80px 7% 90px 0}.hero-photo img{width:100%;max-width:610px;height:480px;object-fit:cover;object-position:center;border-radius:50% 50% 10px 10px;filter:contrast(1.03);box-shadow:0 25px 50px #001e1b33}.photo-sticker{position:absolute;bottom:110px;right:6%;border-radius:50%;background:#9dc9df;width:140px;height:140px;display:flex;align-items:center;justify-content:center;text-align:center;transform:rotate(12deg);font-weight:700;font-size:18px;line-height:1.1}.hero-counter{position:absolute;bottom:32px;right:5%;color:white;font-size:11px;letter-spacing:3px}.ticker{background:#9dc9df;overflow:hidden;white-space:nowrap;padding:21px 0;font-size:13px;font-weight:700;letter-spacing:3px}.ticker div{min-width:max-content;text-align:center}.ticker span{padding:0 35px;color:#00534f}.section{padding:110px 8%}.intro{display:grid;grid-template-columns:1.3fr 1fr;align-items:end;gap:90px}.section h2{font-size:clamp(55px,6vw,94px);line-height:1.05;margin:26px 0}.intro-right p,.feature-text p,.about-copy p,.events-top p,.find p{font-size:17px;line-height:1.9;max-width:520px}.intro-right{padding-bottom:18px}.intro-right .underlink{display:inline-block;margin-top:15px}.feature-grid{display:grid;grid-template-columns:1fr 1fr;padding:0;min-height:670px;background:#e7f0ee}.feature-photo{position:relative;overflow:hidden}.feature-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.corner-mark{position:absolute;top:32px;left:35px;background:#9dc9df;border-radius:50%;width:125px;height:125px;display:grid;place-content:center;text-align:center;font-weight:700;transform:rotate(-14deg)}.feature-text{padding:90px 12%;}.feature-text h2{margin:24px 0}.mini-menu{margin:35px 0}.mini-menu div{display:flex;justify-content:space-between;border-bottom:1px solid #a7bdb7;padding:15px 0;font-size:13px;letter-spacing:1px}.fineprint{font-size:11px!important;opacity:.7;line-height:1.5!important}.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:8%;align-items:center}.about-copy p{max-width:430px}.handdrawn{font-family:Georgia,serif;font-style:italic;font-size:25px;color:#00534f;transform:rotate(-5deg);margin:50px 0 0 15px}.team-photo{position:relative}.team-photo img{width:100%;display:block;filter:grayscale(1) contrast(1.08);border-radius:48% 48% 4px 4px;outline:10px solid white}.dot-pattern{position:absolute;z-index:-1;width:210px;height:210px;right:-30px;top:-50px;background:radial-gradient(#111 1.5px,transparent 1.5px);background-size:11px 11px;border-radius:50%}.events{background:#00534f;color:#fff;position:relative;overflow:hidden}.events:before{content:'';position:absolute;width:110%;height:180px;top:-145px;left:-5%;background:#9dc9df;border-radius:50%}.events-top{text-align:center;max-width:780px;margin:auto}.events-top p{margin:0 auto}.event-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:65px 0 75px}.event-cards article{border:1px solid #ffffff55;padding:35px}.event-icon{font-size:40px;color:#9dc9df}.event-cards h3{font-size:20px}.event-cards p{font-size:14px;line-height:1.7;color:#d4e4e0}.booking{background:#f7f5f1;color:#111;display:grid;grid-template-columns:1fr 1.35fr;gap:55px;padding:60px}.booking h3{font-size:67px;line-height:1.05;margin:20px 0}.booking p{line-height:1.8}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:12px;font-weight:700;letter-spacing:.4px}input,textarea,select{display:block;width:100%;border:1px solid #b9c3bf;background:white;padding:13px;margin-top:7px;border-radius:0;color:#111}textarea{resize:vertical}form>label{margin:18px 0}form .pill{margin-top:10px}.find{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center}.find-card{background:#9dc9df;padding:60px 12%;min-height:480px;display:flex;flex-direction:column}.find-card h3{font-size:60px;line-height:1.05;margin:30px 0 20px}.find-card a{font-size:14px;margin-top:10px;text-decoration:underline}footer{background:#101616;color:#fff;display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:30px;padding:70px 8% 40px}footer .footer-brand{font-family:Italiana,serif;font-size:90px;line-height:1}footer .footer-brand span{font-family:Georgia,serif;font-size:20px}footer b{letter-spacing:2px;font-size:12px}footer p{font-size:13px;color:#c2ceca}footer a{display:block;margin-bottom:15px;font-size:12px;letter-spacing:1px}footer small{grid-column:1/-1;color:#a8b7b2;letter-spacing:2px;margin-top:40px}dialog{border:0;width:min(840px,92vw);max-height:85vh;overflow:auto;padding:50px;background:#f7f5f1;box-shadow:0 30px 100px #0005}dialog::backdrop{background:#001d1bbd}dialog h2{font-size:80px;margin:12px 0}.dialog-close{float:right;border:0;background:transparent;font-size:40px}.menu-table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}td,th{text-align:left;padding:13px 10px;border-bottom:1px solid #cbd2cf}th{background:#00534f;color:white}td:not(:first-child){white-space:nowrap}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9dc9df;outline-offset:3px}@media(max-width:900px){.header{height:80px}.header nav{display:none;position:absolute;top:80px;left:0;right:0;background:#f7f5f1;padding:30px;flex-direction:column}.header nav.open{display:flex}.nav-toggle{display:block;margin-left:auto}.nav-book{display:none}.hero{grid-template-columns:1fr}.hero-content{padding:70px 7% 20px}.hero h1{font-size:clamp(58px,10vw,90px)}.hero-photo{padding:15px 8% 70px}.hero-photo img{height:400px}.hero-curve{right:-40%;top:10%;height:95%;width:115%}.hero-counter{display:none}.hero-note{margin-top:45px}.intro,.feature-grid,.about,.booking,.find{grid-template-columns:1fr}.intro{gap:0}.feature-photo{height:470px}.section{padding:75px 7%}.feature-grid{padding:0}.feature-text{padding:65px 8%}.about{gap:55px}.booking{padding:35px}.event-cards{grid-template-columns:1fr}.events:before{display:none}footer{grid-template-columns:1fr 1fr}}@media(max-width:560px){.brandword{font-size:41px}.brand{min-width:135px}.hero h1{font-size:58px;white-space:normal}.hero-photo img{height:300px}.photo-sticker{width:100px;height:100px;font-size:13px;bottom:55px}.actions{flex-wrap:wrap}.section h2{font-size:60px}.feature-photo{height:350px}.form-grid{grid-template-columns:1fr}.booking h3{font-size:55px}.find-card{padding:45px 9%}.find-card h3{font-size:50px}footer{grid-template-columns:1fr}footer small{grid-column:1}.ticker{font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}
/* CSAW paper-and-halftone editorial direction */
body{background:#f7f3eb;background-image:repeating-linear-gradient(35deg,rgba(61,48,30,.018) 0px,rgba(61,48,30,.018) 1px,transparent 1px,transparent 5px)}
.header{background:#f7f3ebf7}.hero{background:#f7f3eb}.hero-curve{background:#00534f}.hero-photo{padding:35px 7% 60px 0}.hero-photo img{height:auto;max-height:680px;aspect-ratio:1/1;object-fit:cover;border-radius:0;box-shadow:13px 14px 0 #fff,18px 19px 0 #1112;filter:none;clip-path:polygon(5% 0,96% 0,100% 6%,100% 95%,94% 100%,4% 100%,0 94%,0 7%)}
.hero-photo:after{content:'';position:absolute;pointer-events:none;right:0;top:5%;width:120px;height:120px;background:radial-gradient(#111 1.4px,transparent 1.7px);background-size:9px 9px;opacity:.45;border-radius:50%}
.photo-sticker{bottom:35px;right:3%;border:8px solid #f7f3eb;box-shadow:0 4px 0 #1111}.team-photo img{border-radius:0;outline:10px solid #fff;filter:none;box-shadow:12px 12px 0 #9dc9df}.feature-grid{background:#f1eee6}.feature-photo img{filter:contrast(1.08) saturate(.75)}.about{background:#f7f3eb}.events{background:#00534f}.booking{background:#f7f3eb}.find-card{background:#9dc9df}.intro{position:relative}.intro:after{content:'';position:absolute;right:2%;top:15%;width:120px;height:120px;background:radial-gradient(#111 1px,transparent 2px);background-size:10px 10px;opacity:.25;pointer-events:none}.corner-mark{border:6px solid #fff}.hero h1 em,h2 em{font-style:italic}
@media(max-width:900px){.hero-photo{padding:25px 9% 80px}.hero-photo img{max-height:540px}.photo-sticker{bottom:40px}}

/* Confirmed CSAW menu, November 2026 */
#menu-dialog{width:min(1040px,95vw);background:#faf7f0;color:#243833;border:1px solid #dedbd3}#menu-dialog .menu-table-wrap{margin-top:22px}#menu-dialog table{min-width:510px;font-size:15px}#menu-dialog thead th{background:transparent;color:#50605a;font-family:Georgia,serif;font-weight:400;font-size:20px;letter-spacing:2px;border-bottom:2px solid #54665f}#menu-dialog thead th:first-child{width:64%}#menu-dialog thead th:not(:first-child){text-align:right;width:12%}#menu-dialog td{padding:20px 10px;border-bottom:1px solid #e0dfd8;vertical-align:top}#menu-dialog .price{text-align:right;font-family:Georgia,serif;font-size:20px}#menu-dialog .dash{color:#c7c8c2}#menu-dialog .menu-group th{padding:33px 10px 13px;background:transparent;border-bottom:1px solid #d4d5ce;color:#b28d59;font-family:Arial,sans-serif;font-weight:400;letter-spacing:4px;font-size:11px;text-align:left}#menu-dialog .drink-name{display:block;font-size:16px}#menu-dialog .drink-description{display:block;margin-top:6px;color:#8e9992;line-height:1.6;font-size:12px}#menu-dialog .menu-note{text-align:center;margin:35px auto 15px;max-width:520px;line-height:1.8;color:#66736e}#menu-dialog .milk-note{width:max-content;max-width:100%;margin:0 auto 10px;padding:12px 22px;border:1px solid #d5d7d1;border-radius:40px;letter-spacing:2px;font-size:12px;text-align:center}@media(max-width:560px){#menu-dialog{padding:24px 14px}#menu-dialog h2{font-size:54px}#menu-dialog table{min-width:450px}}

/* ---- additions: real wordmark, hours, where-we-are strip, form ---- */
.brandmark{height:46px;width:auto;display:block}
@media(max-width:900px){.brandmark{height:38px}}
@media(max-width:560px){.brandmark{height:32px}}
.brand{min-width:0}
.footer-logo{height:54px;width:auto;display:block}

.whereat{background:#00534f;color:#fff;padding:18px 5%}
.whereat-in{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;justify-content:center;text-align:center}
.whereat .wa-tag{font-size:10px;letter-spacing:3px;font-weight:700;color:#9dc9df}
.whereat .wa-place{font-family:Italiana,Georgia,serif;font-size:clamp(23px,3vw,31px);letter-spacing:-1px}
.whereat .wa-when{font-size:13px;color:#cfe3ec}
.whereat a{color:#9dc9df;font-size:12px;font-weight:700;letter-spacing:1.5px;text-decoration:underline}

.hours{list-style:none;padding:0;margin:4px 0 14px;width:100%}
.hours li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;font-size:14px;border-bottom:1px solid #00534f26}
.hours li b{font-weight:700}
.hours-note{font-size:11.5px;line-height:1.6;color:#13433f;opacity:.75;margin-bottom:6px}

.consent{display:flex!important;gap:11px;align-items:flex-start;font-size:12.5px;font-weight:500;letter-spacing:0;line-height:1.55;margin:18px 0 4px}
.consent input{width:19px;height:19px;flex:none;margin:1px 0 0;display:block;accent-color:#00534f}
.consent span{font-weight:400}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formstatus{display:none;margin-top:14px;padding:12px 15px;font-size:13.5px;font-weight:600;line-height:1.5}
.formstatus.ok{display:block;background:#00534f14;border:1px solid #00534f;color:#00403d}
.formstatus.bad{display:block;background:#b4472114;border:1px solid #b44721;color:#8d3517}
input[aria-invalid="true"],select[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#b44721!important}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
html,body{overflow-x:hidden;max-width:100%}
@media(max-width:900px){.dot-pattern{max-width:38vw;right:0}}

/* ============ MOTION LAYER ============ */
@keyframes csaw-ticker{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes csaw-spin{to{transform:rotate(360deg)}}
@keyframes csaw-pop{0%{opacity:0;transform:scale(.4) rotate(-18deg)}60%{opacity:1;transform:scale(1.18) rotate(6deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes csaw-wiggle{0%,100%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}
@keyframes csaw-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ticker: duplicated track scrolls seamlessly */
.ticker div{display:inline-flex;gap:0;animation:csaw-ticker 26s linear infinite;will-change:transform}
.ticker:hover div{animation-play-state:paused}
.ticker span{display:inline-block;animation:csaw-spin 7s linear infinite}

/* hero curve sweeps in */
.hero-curve{clip-path:inset(0 100% 0 0);transition:clip-path 1.5s cubic-bezier(.22,.68,.24,1) .15s}
.hero-curve.in{clip-path:inset(0 0 0 0)}

/* masked heading rise */
.rise{display:block;overflow:hidden}
.rise>span{display:block;transform:translateY(106%);transition:transform 1s cubic-bezier(.22,.68,.24,1)}
.rise.in>span{transform:none}
.rise.d1>span{transition-delay:.08s}.rise.d2>span{transition-delay:.16s}

/* fade-up */
.fu{opacity:0;transform:translateY(26px);transition:opacity .85s cubic-bezier(.22,.68,.24,1),transform .85s cubic-bezier(.22,.68,.24,1)}
.fu.in{opacity:1;transform:none}
.fu.s1{transition-delay:.1s}.fu.s2{transition-delay:.2s}.fu.s3{transition-delay:.3s}

/* photo wipe - clip the image, never the observed container */
.wipe>img{clip-path:inset(0 0 100% 0);transition:clip-path 1.15s cubic-bezier(.22,.68,.24,1)}
.wipe.in>img{clip-path:inset(0 0 0 0)}

/* svg draw-on */
.draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.6s cubic-bezier(.22,.68,.24,1)}
.draw.in{stroke-dashoffset:0}

/* decorative pieces */
.deco-arrow{position:absolute;width:clamp(120px,15vw,190px);pointer-events:none}
.deco-spark{position:absolute;width:clamp(26px,3.4vw,46px);pointer-events:none;opacity:0}
.deco-spark.in{animation:csaw-pop .62s cubic-bezier(.3,1.5,.5,1) forwards}
.deco-spark.k2{animation-delay:.14s}.deco-spark.k3{animation-delay:.28s}
.about .team-photo{position:relative}
.sp-a{top:2%;left:-3%}
.sp-b{top:-4%;right:16%;transform:rotate(22deg)}
.sp-c{bottom:12%;left:-5%;transform:rotate(-14deg)}
.hand-arrow{bottom:-54px;left:8px;transform:rotate(6deg)}
.handdrawn{position:relative}

/* playful hovers */
.pill,.textlink,.underlink,.find-card a,footer a{transition:transform .3s cubic-bezier(.22,.68,.24,1),background .3s ease,color .3s ease,letter-spacing .3s ease}
.pill:hover{transform:translateY(-3px) rotate(-.6deg)}
.textlink:hover,.underlink:hover{letter-spacing:2.4px}
.header nav a{display:inline-block;transition:transform .25s cubic-bezier(.3,1.4,.5,1),color .25s ease}
.header nav a:hover{transform:translateY(-2px)}
.event-cards article{transition:transform .4s cubic-bezier(.22,.68,.24,1),box-shadow .4s ease}
.event-cards article:hover{transform:translateY(-6px) rotate(-.5deg);box-shadow:0 18px 40px -26px #00534f80}
.event-cards article:hover .event-icon{animation:csaw-wiggle .5s ease-in-out 2}
.event-icon{display:inline-block}
.corner-mark,.photo-sticker{animation:csaw-float 6s ease-in-out infinite}
.feature-photo img,.team-photo img,.hero-photo img{transition:transform .9s cubic-bezier(.22,.68,.24,1)}
.feature-photo:hover img,.team-photo:hover img{transform:scale(1.03)}

/* menu dialog */
#menu-dialog{opacity:0;transform:translateY(18px) scale(.97);transition:opacity .4s ease,transform .4s cubic-bezier(.22,.68,.24,1)}
#menu-dialog[open]{opacity:1;transform:none}
#menu-dialog::backdrop{opacity:0;transition:opacity .4s ease}
#menu-dialog[open]::backdrop{opacity:1}
#menu-rows tr{opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .45s ease}
#menu-rows tr.in{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  .ticker div,.ticker span,.corner-mark,.photo-sticker{animation:none!important}
  .rise>span,.fu,.wipe,.hero-curve,#menu-dialog,#menu-rows tr{opacity:1!important;transform:none!important;clip-path:none!important}
  .draw{stroke-dashoffset:0!important}
  .deco-spark{opacity:1!important;animation:none!important}
}

/* ---- coffee motion: steam and beans ---- */
.feature-photo{position:relative}
.steam{position:absolute;left:50%;top:4%;transform:translateX(-50%);width:clamp(54px,7vw,90px);height:auto;z-index:2;pointer-events:none;mix-blend-mode:multiply;opacity:.55}
.steam path{fill:none;stroke:#111;stroke-width:3.4;stroke-linecap:round;opacity:0;animation:csaw-steam 5.4s ease-in-out infinite}
.steam path:nth-child(2){animation-delay:1.6s}
.steam path:nth-child(3){animation-delay:3.2s}
@keyframes csaw-steam{
  0%{opacity:0;transform:translateY(14px) scaleY(.7)}
  25%{opacity:.8}
  100%{opacity:0;transform:translateY(-30px) scaleY(1.3)}
}
.ticker .bean{display:inline-block;vertical-align:middle;width:26px;animation:csaw-spin 9s linear infinite}
.ticker .bean svg{display:block;width:100%;height:auto}
.bean-divider{display:flex;justify-content:center;padding:6px 0 0}
.bean-divider svg{width:54px;height:auto}
@media (prefers-reduced-motion:reduce){
  .steam path,.ticker .bean{animation:none!important;opacity:.5}
}

/* ---- mobile and accessibility pass ---- */
.skip{position:absolute;left:-9999px;top:0;z-index:200;background:#00534f;color:#fff;padding:12px 20px;font-size:12px;font-weight:700;letter-spacing:1.5px}
.skip:focus{left:0}
.nav-toggle{min-width:44px;min-height:44px;font-size:24px;background:transparent;border:0;cursor:pointer}
.header nav a{padding:6px 0}
@media(max-width:900px){
  .header nav a{padding:14px 0;font-size:14px;min-height:44px;display:flex;align-items:center}
  .pill{min-height:46px;display:inline-flex;align-items:center;justify-content:center}
  .form-grid{grid-template-columns:1fr}
  .find-card{padding:44px 8%;min-height:0}
  .find-card h3{font-size:clamp(34px,8.5vw,48px)}
  .hero-counter{display:none}
  .bean-divider svg{width:42px}
  .steam{opacity:.4}
}
@media(max-width:560px){
  dialog{padding:26px 16px!important}
  .menu-table-wrap{-webkit-overflow-scrolling:touch}
  .menu-table-wrap table{min-width:430px}
  .ticker .bean{width:20px}
  footer{padding:52px 7% 32px}
}
input,select,textarea{font-size:16px}
a,button{-webkit-tap-highlight-color:#00534f33}


/* ---- tap targets ---- */
@media(max-width:900px){
  footer a{padding:10px 0;min-height:44px;display:flex;align-items:center;margin-bottom:4px}
  .find-card a{padding:10px 0;min-height:44px;display:flex;align-items:center;margin-top:0}
  .textlink,.underlink{padding:12px 0;min-height:44px;display:inline-flex;align-items:center}
  .consent{padding:8px 0;align-items:center}
  .consent input{width:26px;height:26px}
}
.wipe.in>img{will-change:auto}
.handdrawn{padding-bottom:78px}
.hand-arrow{bottom:2px;left:14px;transform:rotate(4deg)}
@media(max-width:900px){.handdrawn{padding-bottom:64px}.hand-arrow{width:120px}}

/* ---- WhatsApp contact links ---- */
.wa-link{display:flex!important;align-items:center;gap:10px;text-decoration:none!important;
  padding:11px 0;border-bottom:1px solid #00534f26;font-size:14px;min-height:46px}
.wa-link:last-of-type{border-bottom:0}
.wa-link>span:first-of-type{flex:1;text-decoration:underline;text-underline-offset:3px}
.wa-icon{width:21px;height:21px;flex:none;color:#00534f;transition:transform .3s cubic-bezier(.3,1.4,.5,1)}
.wa-link:hover .wa-icon{transform:scale(1.18) rotate(-7deg)}
.wa-tag-sm{font-size:9.5px;letter-spacing:1.6px;font-weight:700;text-transform:uppercase;
  background:#00534f;color:#fff;padding:4px 9px;border-radius:40px;flex:none}
.wa-mail .wa-tag-sm{background:#111}
.wa-mail{padding-left:31px}
.wa-note{font-size:11.5px;line-height:1.6;margin-top:12px;opacity:.8}
.wa-note a{display:inline!important;text-decoration:underline;margin:0!important;min-height:0!important;padding:0!important}

/* ---- scroll-progress cup ---- */
.cupprog{position:fixed;right:18px;bottom:18px;width:46px;z-index:40;opacity:0;pointer-events:none;
  transition:opacity .5s ease;filter:drop-shadow(0 4px 10px #11111126)}
.cupprog.show{opacity:.92}
.cupprog svg{width:100%;height:auto;display:block}
.cupline{fill:none;stroke:#111;stroke-width:4;stroke-linejoin:round}
.cupfill{fill:#5a3a22;transition:transform .18s linear}
@media(max-width:560px){.cupprog{width:36px;right:12px;bottom:12px}}
@media print{.cupprog{display:none}}

/* ---- latte art ---- */
.about .about-copy{position:relative}
.latte{position:absolute;right:-6%;bottom:-18px;width:clamp(74px,9vw,116px);pointer-events:none;opacity:.9}
.latte svg{width:100%;height:auto;display:block}
.latte-cup{stroke:#00534f;stroke-width:3}
.latte-art{stroke:#111;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:900px){.latte{right:4px;bottom:-8px;width:76px}}


/* ---- pouring send button ---- */
.pour-btn{position:relative;overflow:hidden;isolation:isolate}
.pour-btn__fill{position:absolute;inset:0;z-index:-1;background:#5a3a22;
  transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.4,.05,.3,1)}
.pour-btn.pouring .pour-btn__fill{transform:scaleX(1)}
.pour-btn.poured .pour-btn__fill{transform:scaleX(1);background:#00534f}
.pour-btn__label{position:relative;z-index:1}

@media (prefers-reduced-motion:reduce){
  .cupfill,.pour-shape,.pour-btn__fill{transition:none!important}
  .pour-shape{transform:translateY(0)!important}
  .latte-cup,.latte-art{stroke-dashoffset:0!important}
}
.latte{right:0;bottom:-6px}
@media(max-width:900px){.latte{right:0;bottom:-4px;width:72px}}
html,body{overflow-x:clip}
.about{overflow:hidden}

/* ---- the design's own curve pours in ---- */
.events:before{transform:translateY(-78px) scaleY(.55);opacity:0;
  transition:transform 1.15s cubic-bezier(.5,.02,.3,1),opacity .5s ease}
.events.poured-in:before{transform:none;opacity:1}
@media (prefers-reduced-motion:reduce){.events:before{transform:none!important;opacity:1!important}}
