
:root{--plum:#5B2A45;--plum-d:#401C30;--mus:#E8B04B;--paper:#FFF8EE;--paper2:#F8EBD6;--olive:#3E5C3A;--ink:#2A1720;--muted:#7A6170;--tom:#D9573B}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Karla',system-ui,sans-serif;background:var(--paper);color:var(--ink);font-size:17px;line-height:1.6;overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;opacity:.35;background-image:radial-gradient(rgba(91,42,69,.08) 1px,transparent 1px);background-size:22px 22px}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;line-height:1.02;letter-spacing:-.01em}
.hand{font-family:'Caveat',cursive;font-weight:700}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px;position:relative;z-index:2}
@media(min-width:900px){.wrap{padding:0 40px}}
:focus-visible{outline:3px solid var(--mus);outline-offset:3px}
main,header,footer,section{position:relative;z-index:2}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:var(--paper);border-bottom:2px solid var(--plum)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:12px}
.logo{display:flex;align-items:center;gap:10px;color:var(--plum)}
.logo b{font-family:'DM Serif Display';font-weight:400;font-size:24px;line-height:1;display:block}
.logo small{font-family:'Caveat';font-size:17px;color:var(--olive);display:block;line-height:1;margin-top:1px}
.nav{display:none;gap:28px;font-weight:700;font-size:15px;color:var(--plum)}
.nav a{padding:6px 2px;background:linear-gradient(var(--mus),var(--mus)) 0 88%/0 6px no-repeat;transition:background-size .3s}
.nav a:hover{background-size:100% 6px}
@media(min-width:960px){.nav{display:flex}}
.rbtn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:999px;background:var(--plum);color:var(--paper);font-weight:700;font-size:15px;border:2px solid var(--plum);box-shadow:3px 3px 0 var(--mus);transition:transform .2s,box-shadow .2s}
.rbtn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--mus)}
.rbtn.alt{background:var(--paper);color:var(--plum);box-shadow:3px 3px 0 var(--plum)}
.rbtn.alt:hover{box-shadow:5px 5px 0 var(--plum)}
.rbtn.mus{background:var(--mus);color:var(--plum-d);border-color:var(--plum-d);box-shadow:3px 3px 0 var(--plum-d)}
.hdr .rbtn{min-height:42px;padding:0 16px;font-size:14px}
.smt{display:none}@media(max-width:480px){.hdr .rbtn .lg{display:none}.hdr .rbtn .smt{display:inline}}
/* hero */
.hero{padding:26px 0 60px;overflow:hidden}
.hgrid{display:grid;gap:26px;align-items:center}
@media(min-width:960px){.hgrid{grid-template-columns:1fr 1.05fr;gap:50px}.hero{padding:50px 0 90px}}
.kick{display:inline-flex;align-items:center;gap:8px;background:var(--mus);color:var(--plum-d);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;padding:6px 14px;border-radius:999px;transform:rotate(-2deg)}
.hero h1{font-size:50px;color:var(--plum);margin:16px 0 14px}
.hero h1 em{font-style:italic;color:var(--olive)}
.hero h1 .u{position:relative;white-space:nowrap}
.hero h1 .u svg{position:absolute;left:-2%;bottom:-.02em;width:104%;height:.2em;z-index:-1}
.hero h1 .u svg path{stroke-dasharray:400;stroke-dashoffset:400;animation:draw 1.4s .6s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@media(min-width:960px){.hero h1{font-size:clamp(64px,6.4vw,96px)}}
.hero p.lead{font-size:18px;color:var(--muted);max-width:480px}
.hero .btns{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.photo{position:relative}
.arch{border-radius:260px 260px 28px 28px;overflow:hidden;border:3px solid var(--plum);aspect-ratio:1/1.02;box-shadow:12px 12px 0 var(--mus);background:var(--paper2)}
.arch img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.loaded .arch img{transform:scale(1)}
@media(max-width:959px){.arch{aspect-ratio:1.25/1;border-radius:200px 200px 24px 24px;box-shadow:8px 8px 0 var(--mus)}}
.note{position:absolute;font-family:'Caveat';font-size:24px;color:var(--plum);line-height:1;display:flex;align-items:center;gap:4px}
.note.n1{top:4%;left:-6%;transform:rotate(-8deg)}
.note.n2{bottom:-46px;right:4%;transform:rotate(-3deg);flex-direction:row;align-items:center}
@media(max-width:959px){.note{display:none}}
.hours{position:absolute;left:-30px;bottom:-34px;background:var(--paper);border:2.5px solid var(--plum);border-radius:18px;padding:16px 20px;width:290px;transform:rotate(-3deg);box-shadow:6px 6px 0 var(--plum);z-index:3}
.hours h4{font-family:'DM Serif Display';font-weight:400;font-size:23px;color:var(--plum);display:flex;justify-content:space-between;align-items:center;gap:10px;white-space:nowrap}
.open{font-family:'Karla';font-size:12px;font-weight:700;color:var(--olive);display:flex;align-items:center;gap:6px}
.open i{width:8px;height:8px;border-radius:50%;background:#4CAF50;box-shadow:0 0 0 3px rgba(76,175,80,.2);animation:pulse 2s infinite}
@keyframes pulse{50%{box-shadow:0 0 0 6px rgba(76,175,80,0)}}
.hours dl{display:grid;grid-template-columns:1fr auto;gap:2px 12px;font-size:14px;margin-top:8px}
.hours dd{font-weight:700;text-align:right}
@media(max-width:959px){.hours{position:relative;left:auto;bottom:auto;width:auto;margin:-36px 14px 0;transform:rotate(-1.5deg)}}
.stick{position:absolute;top:-22px;right:18px;width:100px;height:100px;z-index:3;animation:wob 6s ease-in-out infinite}
@media(min-width:960px){.stick{top:-26px;right:-22px;width:128px;height:128px}}
@keyframes wob{50%{transform:rotate(10deg) scale(1.04)}}
/* scallop divider */
.scallop{height:22px;background:radial-gradient(circle at 11px 0,transparent 11px,var(--plum) 12px) 0 0/22px 22px repeat-x}
.scallop.up{background:radial-gradient(circle at 11px 22px,transparent 11px,var(--plum) 12px) 0 0/22px 22px repeat-x}
section{padding:70px 0}@media(min-width:960px){section{padding:100px 0}}
.st{margin-bottom:30px}.st .hand{font-size:26px;color:var(--tom);display:block;transform:rotate(-2deg);transform-origin:left}
.st h2{font-size:42px;color:var(--plum)}@media(min-width:960px){.st h2{font-size:64px}}
/* menu */
.menu{background:var(--plum);color:var(--paper)}
.menu .st h2{color:var(--paper)}.menu .st .hand{color:var(--mus)}
.tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 2px 10px;margin:0 -20px 18px;padding-left:20px;padding-right:20px}
@media(min-width:960px){.tabs{margin:0 0 24px;padding-left:2px}}
.tabs button{white-space:nowrap;min-height:46px;padding:0 20px;border-radius:999px;border:2px solid var(--paper);font-weight:700;font-size:15px;transition:all .2s}
.tabs button[aria-selected=true]{background:var(--mus);border-color:var(--mus);color:var(--plum-d);transform:rotate(-2deg)}
.mlist{display:none;grid-template-columns:1fr;gap:6px 60px}
.mlist.on{display:grid;animation:pop .45s ease}
@keyframes pop{from{opacity:0;transform:translateY(10px)}}
@media(min-width:960px){.mlist{grid-template-columns:1fr 1fr}}
.mi{padding:16px 0;border-bottom:1.5px dashed rgba(255,248,238,.3)}
.mi .row{display:flex;align-items:baseline;gap:10px}
.mi h3{font-size:24px;line-height:1.15}
.mi .dots{flex:1;border-bottom:2px dotted rgba(232,176,75,.6);transform:translateY(-5px);min-width:20px}
.mi .pr{font-family:'DM Serif Display';font-size:22px;color:var(--mus)}
.mi p{font-size:15px;opacity:.82;margin-top:2px}
.mi .tg{font-family:'Caveat';font-size:19px;color:var(--mus);margin-left:6px;white-space:nowrap}
.mnote{margin-top:22px;font-size:13px;opacity:.7}
/* specials */
.sgrid{display:grid;gap:30px}@media(min-width:960px){.sgrid{grid-template-columns:repeat(3,1fr);gap:34px}}
.pol{background:#fff;padding:12px 12px 20px;border:2px solid var(--plum);box-shadow:6px 6px 0 var(--plum);transition:transform .35s}
.pol:nth-child(1){transform:rotate(-2deg)}.pol:nth-child(2){transform:rotate(1.5deg)}.pol:nth-child(3){transform:rotate(-1deg)}
.pol:hover{transform:rotate(0) translateY(-6px)}
.pol .im{aspect-ratio:1/.9;overflow:hidden}.pol img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.pol:hover img{transform:scale(1.06)}
.pol h3{font-size:27px;color:var(--plum);margin:14px 4px 4px;display:flex;justify-content:space-between;gap:10px}
.pol h3 span{font-size:22px;color:var(--olive)}
.pol p{margin:0 4px;color:var(--muted);font-size:15.5px}
.pol .hand{display:block;margin:8px 4px 0;font-size:21px;color:var(--tom)}
/* gallery strip */
.strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 20px 16px;scrollbar-width:none}
.strip figure{flex:none;width:78vw;max-width:520px;scroll-snap-align:center;border-radius:22px;overflow:hidden;border:2.5px solid var(--plum);aspect-ratio:16/10;position:relative}
.strip figure:nth-child(even){aspect-ratio:1;width:56vw;max-width:340px}
.strip img{width:100%;height:100%;object-fit:cover}
.strip figcaption{position:absolute;left:12px;bottom:10px;background:var(--paper);font-family:'Caveat';font-size:21px;color:var(--plum);padding:0 12px;border-radius:999px;transform:rotate(-2deg)}
@media(min-width:960px){.strip{padding-left:max(40px,calc((100vw - 1240px)/2 + 40px))}}
/* reserve */
.reserve{background:var(--mus)}
.rgrid{display:grid;gap:30px}@media(min-width:960px){.rgrid{grid-template-columns:.9fr 1.1fr;gap:60px;align-items:center}}
.reserve .st .hand{color:var(--plum)}
.reserve p{color:var(--plum-d)}
.rform{background:var(--paper);border:2.5px solid var(--plum);border-radius:24px;padding:24px;box-shadow:8px 8px 0 var(--plum)}
.fr{display:grid;gap:14px}@media(min-width:600px){.fr.two{grid-template-columns:1fr 1fr}.fr.three{grid-template-columns:1fr 1fr 1fr}}
label{display:block;font-weight:700;font-size:14px;color:var(--plum);margin-bottom:5px}
input,select,textarea{width:100%;min-height:50px;padding:12px 14px;border:2px solid var(--plum);border-radius:12px;background:#fff;font:inherit;font-size:16px;color:var(--ink)}
textarea{min-height:86px;resize:vertical}
.party{display:flex;gap:6px;flex-wrap:wrap}
.party button{width:46px;height:46px;border:2px solid var(--plum);border-radius:50%;font-weight:700;color:var(--plum);transition:all .2s}
.party button.on{background:var(--plum);color:var(--paper);transform:rotate(-6deg)}
.rform .rbtn{width:100%;margin-top:18px;min-height:54px;font-size:16px}
.demo-msg{display:none;margin-top:14px;padding:14px 16px;border-radius:14px;background:#EEF3E8;border:2px dashed var(--olive);color:var(--olive);font-weight:700;font-size:15px}
.demo-msg.show{display:block;animation:pop .4s}
/* find */
.fgrid{display:grid;gap:26px}@media(min-width:960px){.fgrid{grid-template-columns:1.3fr 1fr;gap:50px;align-items:center}}
.map{border:2.5px solid var(--plum);border-radius:24px;overflow:hidden;background:#F3E6CF;box-shadow:8px 8px 0 var(--olive)}
.map svg{display:block;width:100%;height:auto}
.pin{animation:bob 2.4s ease-in-out infinite;transform-origin:center bottom}
@keyframes bob{50%{transform:translateY(-6px)}}
.addr{font-size:18px}.addr h3{font-size:34px;color:var(--plum);margin-bottom:10px}
.addr .ln{display:flex;gap:12px;align-items:start;padding:12px 0;border-bottom:1.5px dashed rgba(91,42,69,.25)}
.addr svg{flex:none;margin-top:3px;color:var(--tom)}
/* reviews */
.rv3{display:grid;gap:22px}@media(min-width:960px){.rv3{grid-template-columns:repeat(3,1fr)}}
.paper{background:#FFFDF7;border:2px solid var(--plum);border-radius:6px;padding:24px 22px;position:relative;box-shadow:4px 4px 0 rgba(91,42,69,.25)}
.paper:before{content:"";position:absolute;top:-12px;left:50%;width:84px;height:24px;margin-left:-42px;background:rgba(232,176,75,.75);transform:rotate(-3deg)}
.paper p{font-family:'Caveat';font-size:26px;line-height:1.15;color:var(--plum)}
.paper small{display:block;margin-top:12px;font-size:13px;color:var(--muted)}
.paper .s{color:var(--mus);letter-spacing:2px}
.ph-note{font-size:13px;color:var(--muted);margin-top:18px;font-style:italic}
/* insta */
.insta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
@media(min-width:960px){.insta{grid-template-columns:repeat(6,1fr);gap:10px}}
.insta a{aspect-ratio:1;overflow:hidden;border-radius:12px;position:relative}
.insta img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.insta a:after{content:"♥";position:absolute;inset:0;display:grid;place-items:center;font-size:30px;color:#fff;background:rgba(91,42,69,.45);opacity:0;transition:opacity .3s}
.insta a:hover:after{opacity:1}.insta a:hover img{transform:scale(1.08)}
/* footer */
footer{background:var(--plum-d);color:#EBD9E2;padding:56px 0 90px;font-size:15px}
.fg{display:grid;gap:28px;grid-template-columns:1fr 1fr}@media(min-width:960px){.fg{grid-template-columns:2fr 1fr 1fr 1fr}}
.fg h4{font-family:'Caveat';font-size:24px;color:var(--mus);font-weight:700;margin-bottom:6px}
.fg a{display:block;padding:3px 0}.fg a:hover{color:var(--mus)}
.fb{grid-column:1/-1}@media(min-width:960px){.fb{grid-column:auto}}
footer .logo{color:var(--paper)}footer .logo small{color:var(--mus)}
.fbase{margin-top:40px;padding-top:18px;border-top:1px solid rgba(255,255,255,.15);display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;font-size:13px;opacity:.85}
.concept{position:fixed;right:10px;bottom:10px;z-index:70;background:var(--paper);color:var(--plum);border:2px solid var(--plum);font-size:11.5px;font-weight:700;padding:6px 12px;border-radius:999px;box-shadow:2px 2px 0 var(--plum);max-width:calc(100% - 20px)}
@media(max-width:600px){.concept .long{display:none}}
.rv{opacity:0;transform:translateY(28px) rotate(var(--r,0deg));transition:opacity .8s ease,transform .8s cubic-bezier(.3,1.4,.5,1)}
.rv.in{opacity:1;transform:rotate(var(--r,0deg))}
.d1{transition-delay:.1s}.d2{transition-delay:.2s}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}.arch img{transform:none}.hero h1 .u svg path{stroke-dashoffset:0}}

.fg a.logo{display:flex}
