:root{--cream:#f4f0e8;--ink:#171717;--sage:#aeb9a6;--latte:#b98057;--pink:#d96b7a;--white:#fff;--line:2px solid var(--ink)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.skip-link{position:fixed;top:8px;left:8px;z-index:1000;padding:10px 14px;background:#fff;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.site-header{height:86px;padding:10px clamp(20px,4vw,64px);display:flex;align-items:center;justify-content:space-between;border-bottom:var(--line);background:rgba(244,240,232,.94);backdrop-filter:blur(12px);position:relative;z-index:10}
.brand{display:flex;align-items:center;gap:12px;font-family:"Permanent Marker",cursive;font-size:1.4rem;line-height:1}
.brand img{width:62px;height:62px;border-radius:50%}
.brand small{display:block;font-family:"DM Sans",sans-serif;font-size:.55rem;letter-spacing:.34em;margin-top:7px}
nav{display:flex;gap:30px;font-weight:600}
nav a,.text-link{position:relative}
nav a:after,.text-link:after{content:"";height:2px;background:currentColor;position:absolute;left:0;right:100%;bottom:-4px;transition:right .25s}
nav a:hover:after,.text-link:hover:after{right:0}
.header-cta{padding:13px 20px;border:var(--line);border-radius:999px;font-weight:700;background:var(--ink);color:#fff}
.hero{height:calc(100vh - 86px);min-height:640px;position:relative;display:flex;align-items:center;overflow:hidden;border-bottom:var(--line);background:var(--cream)}
.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-copy{position:relative;z-index:2;width:min(680px,49vw);padding-left:clamp(24px,6vw,112px)}
.eyebrow{font-weight:800;letter-spacing:.18em;font-size:.78rem;margin:0 0 16px;text-transform:uppercase}
h1,h2,h3,p{margin-top:0}
h1,h2{font-weight:700;letter-spacing:-.06em;line-height:.91}
h1{font-size:clamp(3.7rem,6.7vw,8rem);margin-bottom:26px}
h1 span,h2 span{font-family:"Permanent Marker",cursive;font-weight:400;color:var(--pink);letter-spacing:-.04em}
.hero-copy>p:not(.eyebrow){max-width:560px;font-size:clamp(1rem,1.35vw,1.25rem);line-height:1.55}
.hero-actions,.visit-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:13px 24px;border:var(--line);border-radius:999px;font-weight:800;transition:transform .2s,box-shadow .2s}
.button:hover{transform:translate(-3px,-3px);box-shadow:4px 4px 0 var(--ink)}
.button-dark{background:var(--ink);color:#fff}.button-light{background:var(--cream)}.button-outline{background:transparent}
.hero-stamp{position:absolute;z-index:2;right:4vw;bottom:4vh;width:116px;height:116px;border:var(--line);border-radius:50%;background:var(--pink);display:grid;place-items:center;text-align:center;font-weight:900;line-height:1.05;transform:rotate(8deg)}
.ticker{overflow:hidden;border-bottom:var(--line);background:var(--ink);color:var(--cream);padding:12px 0;white-space:nowrap;font-weight:800;letter-spacing:.08em}
.ticker div{width:max-content;animation:ticker 24s linear infinite}
@keyframes ticker{to{transform:translateX(-50%)}}
.section{padding:clamp(80px,10vw,150px) clamp(20px,6vw,110px)}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:60px}
.section-heading h2,.story h2,.spread-copy h2,.visit h2{font-size:clamp(3.2rem,7vw,7.2rem);margin:0}
.section-heading .eyebrow{align-self:flex-start}
.offer-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:22px;align-items:start}
.offer-card{border:var(--line);overflow:hidden;position:relative;min-height:490px}
.offer-card-photo{background:#fff}
.offer-card-photo img{width:100%;height:370px;object-fit:cover;border-bottom:var(--line);transition:transform .5s}
.offer-card-photo:hover img{transform:scale(1.035)}
.offer-card>div:not(.scribble){padding:24px}
.offer-card span{font-weight:800;font-size:.8rem}
.offer-card h3{font-size:1.8rem;line-height:1;margin:9px 0 12px;letter-spacing:-.04em}
.offer-card p{margin:0}
.coffee-card{grid-column:1/6;transform:rotate(-1.5deg)}
.toastie-card{grid-column:7/13;transform:translateY(70px) rotate(1.2deg)}
.sage-card{grid-column:2/7;background:var(--sage);margin-top:70px;transform:rotate(1.4deg)}
.pink-card{grid-column:8/12;background:var(--pink);margin-top:140px;transform:rotate(-1deg)}
.scribble{font-family:"Permanent Marker",cursive;font-size:clamp(3rem,6vw,6.5rem);line-height:.82;position:absolute;top:35px;right:28px;transform:rotate(-7deg)}
.spread-section{display:grid;grid-template-columns:1.25fr .75fr;min-height:780px;background:var(--ink);color:var(--cream);border-block:var(--line)}
.spread-image{position:relative;min-height:690px;overflow:hidden}
.spread-image img{width:100%;height:100%;object-fit:cover}
.roundel{position:absolute;top:42px;right:42px;width:140px;height:140px;border-radius:50%;background:var(--pink);color:var(--ink);display:grid;place-items:center;text-align:center;font-weight:900;line-height:1.05;transform:rotate(8deg);border:2px solid var(--ink)}
.spread-copy{padding:clamp(50px,7vw,110px);display:flex;flex-direction:column;justify-content:center}
.spread-copy h2{font-size:clamp(3.6rem,6vw,7rem)}
.spread-copy>p:not(.eyebrow){font-size:1.15rem;max-width:540px}
.text-link{font-family:"Permanent Marker",cursive;color:var(--pink);font-size:1.4rem;width:max-content;margin-top:20px}
.menu-section{background:var(--cream);border-bottom:var(--line)}
.menu-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:50px;align-items:end;margin-bottom:45px}
.menu-intro h2{font-size:clamp(4rem,8vw,8rem);margin:0}.menu-intro>p{max-width:520px;font-size:1.1rem;font-weight:600}
.menu-tabs{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:54px;border-bottom:var(--line)}
.menu-tabs a{border:var(--line);border-radius:999px;padding:10px 17px;background:#fff;font-weight:800}.menu-tabs a:hover{background:var(--pink)}
.menu-category{display:grid;grid-template-columns:minmax(230px,.65fr) 1.35fr;gap:clamp(35px,7vw,100px);padding:70px 0;border-bottom:var(--line);scroll-margin-top:30px}
.menu-category-title span{font-weight:900}.menu-category-title h3{font-family:"Permanent Marker",cursive;font-size:clamp(2.6rem,5vw,5rem);line-height:.9;margin:15px 0;transform:rotate(-2deg)}
.menu-list{display:grid;grid-template-columns:1fr 1fr;gap:0 34px}
.menu-list article{display:flex;gap:18px;justify-content:space-between;padding:18px 0;border-top:1px solid rgba(23,23,23,.35)}
.menu-list h4,.drink-groups h4{font-size:1.1rem;line-height:1.2;margin:0 0 7px}.menu-list h4 small{display:inline-block;padding:3px 6px;border-radius:999px;background:var(--sage);font-size:.6rem;vertical-align:middle}
.menu-list p{font-size:.88rem;line-height:1.45;margin:0;color:#49453f}.menu-list strong{white-space:nowrap}
.drinks-category{border-bottom:0}.drink-groups{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.drink-groups>div{border:var(--line);padding:22px;background:#fff;box-shadow:5px 5px 0 var(--ink)}.drink-groups>div:nth-child(3n+2){background:var(--sage)}.drink-groups>div:nth-child(3n){background:#f2b2bd}
.drink-groups h4{font-family:"Permanent Marker",cursive;font-size:1.65rem}.drink-groups p{display:flex;justify-content:space-between;gap:12px;padding:6px 0;margin:0;border-bottom:1px solid rgba(23,23,23,.2);font-size:.9rem}.drink-groups span{font-weight:800;white-space:nowrap}
.menu-note{grid-column:2;margin:8px 0 0;font-size:.78rem}
.story{display:grid;grid-template-columns:.7fr 1.5fr .8fr;gap:clamp(30px,6vw,100px);align-items:center;background:var(--sage);border-bottom:var(--line)}
.story-kicker{font-family:"Permanent Marker",cursive;font-size:clamp(3rem,5vw,6rem);line-height:.85;transform:rotate(-8deg);color:var(--cream);text-shadow:3px 3px 0 var(--ink)}
.story-copy p{max-width:700px}.story-lead{font-size:1.4rem;font-weight:700;margin-top:40px}
blockquote{font-family:"Permanent Marker",cursive;font-size:clamp(2.3rem,4vw,4.5rem);color:var(--pink);margin:35px 0 0;transform:rotate(-2deg)}
.story-note{border:var(--line);background:var(--cream);padding:28px;font-weight:600;transform:rotate(2deg);box-shadow:8px 8px 0 var(--ink)}
.story-note strong{display:block;font-family:"Permanent Marker",cursive;font-size:1.45rem;line-height:1.05;margin-bottom:12px}.story-side{display:grid;gap:28px}.story-note-pink{background:#efadb8;transform:rotate(-1.5deg)}.story-link{color:var(--ink);margin-left:8px}
.visit{display:grid;grid-template-columns:1fr 1fr;min-height:780px;background:var(--pink);border-bottom:var(--line)}
.visit-photo{min-height:700px;overflow:hidden;border-right:var(--line);padding:70px;background:var(--cream)}
.visit-photo img{width:100%;height:100%;object-fit:cover;border:var(--line);transform:rotate(-2deg);box-shadow:12px 12px 0 var(--ink)}
.visit-content{padding:clamp(50px,7vw,110px);display:flex;flex-direction:column;justify-content:center}
.visit h2{margin-bottom:30px}
address{font-style:normal;font-size:1.25rem;font-weight:600}
.hours{margin-top:32px;max-width:530px;border-top:var(--line)}
.hours div{display:flex;justify-content:space-between;padding:14px 0;border-bottom:var(--line)}
.hours small{display:block;padding:7px 0 12px;text-align:right;border-bottom:var(--line)}
footer{background:var(--ink);color:var(--cream);padding:60px clamp(20px,6vw,110px);display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:30px}
.footer-brand{font-family:"Permanent Marker",cursive;font-size:2.5rem;line-height:.8}.footer-brand span{display:block;font-family:"DM Sans",sans-serif;font-size:.65rem;letter-spacing:.35em;margin-top:15px}
footer p{margin:0;text-align:center}footer>div{display:flex;justify-content:flex-end;gap:24px;font-weight:700}
.mobile-call{display:none}
@media(max-width:850px){
  .site-header{height:72px;padding:8px 18px}.brand img{width:52px;height:52px}.brand span{font-size:1.05rem}.brand small{font-size:.45rem}nav,.header-cta{display:none}
  .hero{height:calc(100svh - 72px);min-height:720px;align-items:flex-start}.hero-media{object-position:center}
  .hero:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(244,240,232,.97) 0%,rgba(244,240,232,.79) 27%,transparent 45%)}
  .hero-copy{width:100%;padding:35px 22px 0;text-align:center}.hero-copy .eyebrow{margin-bottom:10px}.hero-copy>p:not(.eyebrow){font-size:1rem;max-width:430px;margin-inline:auto}
  h1{font-size:clamp(3.25rem,14vw,5rem);margin-bottom:17px}.hero-actions{justify-content:center;margin-top:20px}.button{min-height:48px;padding:11px 18px}
  .hero-stamp{display:none}.ticker{font-size:.8rem}
  .section{padding:78px 20px}.section-heading{display:block;margin-bottom:35px}.section-heading h2,.story h2,.spread-copy h2,.visit h2{font-size:clamp(3.2rem,14vw,5.2rem)}
  .offer-grid{display:grid;grid-template-columns:1fr;gap:20px}.offer-card,.coffee-card,.toastie-card,.sage-card,.pink-card{grid-column:auto;transform:none;margin:0;min-height:420px}.offer-card-photo img{height:330px}.scribble{font-size:4.5rem}
  .spread-section{grid-template-columns:1fr}.spread-image{min-height:580px}.spread-copy{padding:70px 22px}.roundel{width:110px;height:110px;right:20px;top:20px;font-size:.8rem}
  .menu-intro{grid-template-columns:1fr;gap:22px}.menu-intro h2{font-size:4.7rem}.menu-tabs{padding-bottom:36px}
  .menu-category{grid-template-columns:1fr;gap:18px;padding:50px 0}.menu-category-title h3{font-size:3rem}.menu-list{grid-template-columns:1fr}.drink-groups{grid-template-columns:1fr}.menu-note{grid-column:1}
  .story{grid-template-columns:1fr;gap:40px}.story-kicker{font-size:4.2rem}.story-note{transform:none}.story-side{gap:22px}.story-lead{margin-top:28px}
  .visit{grid-template-columns:1fr}.visit-photo{min-height:520px;padding:35px;border-right:0;border-bottom:var(--line)}.visit-content{padding:70px 22px 100px}
  footer{grid-template-columns:1fr;text-align:center;padding-bottom:100px}.footer-brand{justify-self:center}footer p{text-align:center}footer>div{justify-content:center}
  .mobile-call{display:block;position:fixed;z-index:50;left:16px;right:16px;bottom:14px;text-align:center;padding:14px;background:var(--ink);color:#fff;border:2px solid var(--cream);border-radius:999px;font-weight:800;box-shadow:0 5px 20px rgba(0,0,0,.25)}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ticker div{animation:none}.offer-card-photo img,.button{transition:none}.hero-media{display:none}.hero{background-image:url("assets/desktop-poster.png");background-size:cover;background-position:center}}
@media(max-width:850px) and (prefers-reduced-motion:reduce){.hero{background-image:url("assets/mobile-poster.png")}}
