:root{--ink:#14110f;--paper:#f6f1e9;--sand:#ebe3d6;--accent:#a8552f;--gold:#e8c9a0;--muted:#6b625a;--serif:'Fraunces',Georgia,serif;--sans:'Inter',system-ui,sans-serif}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
.concept-bar{background:var(--accent);color:#fff;font-size:12.5px;text-align:center;padding:8px 16px;line-height:1.4}
.nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(18px,5vw,64px);background:rgba(246,241,233,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(20,17,15,.08)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-family:var(--serif);font-size:20px}
.brand em{font-style:italic;color:var(--accent)}
.nav nav{display:flex;gap:28px}
.nav nav a{text-decoration:none;font-size:14px;color:var(--muted);transition:color .2s}
.nav nav a:hover{color:var(--ink)}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);text-decoration:none;font-weight:500;font-size:15px;padding:14px 24px;border-radius:999px;border:1px solid var(--ink);transition:transform .25s,background .25s,color .25s}
.btn:hover{transform:translateY(-2px);background:var(--accent);border-color:var(--accent)}
.btn-sm{padding:9px 18px;font-size:13px}
.btn-ghost{background:transparent;color:var(--ink)}
.btn-ghost:hover{color:#fff}
.btn-ghost-dark{background:transparent;color:var(--ink)}
.btn-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.btn-light:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.hero{display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:40px;min-height:min(78vh,700px);padding:clamp(40px,7vw,96px) clamp(18px,5vw,64px)}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:18px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.05;letter-spacing:-.02em}
h1{font-size:clamp(44px,7.4vw,96px)}
h1 i{font-style:italic;color:var(--accent)}
.line{display:block;overflow:hidden;padding-bottom:.08em}
.line>span{display:block;transform:translateY(105%);animation:rise 1s cubic-bezier(.2,.8,.2,1) forwards}
.line:nth-child(2)>span{animation-delay:.12s}
@keyframes rise{to{transform:none}}
h2{font-size:clamp(32px,4.4vw,56px);margin-bottom:24px}
.lead{max-width:480px;font-size:18px;color:var(--muted);margin:28px 0 32px}
.actions{display:flex;flex-wrap:wrap;gap:12px}
.open-chip{display:flex;align-items:center;gap:10px;margin-top:28px;font-size:14px;color:var(--muted)}
.dot{width:9px;height:9px;border-radius:50%;background:#aaa}
.dot.on{background:#3d8f5a;animation:pulse 2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(61,143,90,.5)}70%{box-shadow:0 0 0 9px rgba(61,143,90,0)}100%{box-shadow:0 0 0 0 rgba(61,143,90,0)}}
.hero-art{display:flex;justify-content:center}
.art{width:100%;max-width:440px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.ring{stroke:var(--sand);stroke-width:1.5;stroke-dasharray:1100;stroke-dashoffset:1100;animation:draw 2.4s ease-out .2s forwards}
.r2{stroke:var(--accent);opacity:.5;animation-delay:.5s}
@keyframes draw{to{stroke-dashoffset:0}}
.handle{stroke:var(--accent);stroke-width:5;stroke-dasharray:260;stroke-dashoffset:260;animation:draw 1.6s ease-out .8s forwards}
.stem{stroke-width:5;stroke-dasharray:200;stroke-dashoffset:200;animation:draw 1.2s ease-out 1s forwards}
.blade path{stroke-width:5;transform-origin:200px 250px}
.blade{opacity:0;animation:fade .01s 1.4s forwards}
.b1{transform-origin:200px 250px;animation:fade .01s 1.4s forwards,snip1 3.6s ease-in-out 2.2s infinite}
.b2{transform-origin:200px 250px;animation:fade .01s 1.4s forwards,snip2 3.6s ease-in-out 2.2s infinite}
@keyframes fade{to{opacity:1}}
@keyframes snip1{0%,40%,100%{transform:rotate(0)}20%{transform:rotate(9deg)}}
@keyframes snip2{0%,40%,100%{transform:rotate(0)}20%{transform:rotate(-9deg)}}
.strands path{stroke:var(--gold);stroke-width:2;stroke-dasharray:600;stroke-dashoffset:600;animation:draw 2.4s ease-out 1.2s forwards}
.ticker{background:var(--ink);color:var(--gold);overflow:hidden;padding:18px 0;white-space:nowrap}
.ticker-track{display:inline-flex;gap:48px;animation:scroll 32s linear infinite}
.ticker span{font-family:var(--serif);font-size:24px;font-style:italic}
.ticker span::after{content:"\2022";margin-left:48px;color:var(--accent)}
@keyframes scroll{to{transform:translateX(-33.333%)}}
.section{padding:clamp(64px,9vw,120px) clamp(18px,5vw,64px);max-width:1280px;margin:auto}
.section.dark{max-width:none;background:var(--ink);color:var(--paper)}
.section.dark>*{max-width:1152px;margin-left:auto;margin-right:auto}
.section.dark .eyebrow{color:var(--gold)}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:start}
.grid-2 p{color:var(--muted);font-size:17px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px;padding-top:28px;border-top:1px solid rgba(20,17,15,.15)}
.stats dt{font-family:var(--serif);font-size:clamp(28px,3.4vw,44px);color:var(--ink)}
.stats dd{font-size:13px;color:var(--muted)}
.svc{list-style:none;padding:0;margin-top:40px}
.svc li{display:grid;grid-template-columns:70px 1fr 1.2fr;align-items:baseline;gap:20px;padding:28px 0;border-top:1px solid rgba(246,241,233,.18);transition:padding .3s,background .3s}
.svc li:last-child{border-bottom:1px solid rgba(246,241,233,.18)}
.svc li:hover{padding-left:16px}
.svc li:hover h3{color:var(--gold)}
.svc .n{font-size:13px;color:var(--gold);letter-spacing:.1em}
.svc h3{font-size:clamp(26px,3.4vw,40px);transition:color .3s}
.svc p{color:#bdb4a8}
.fine{font-size:13px;color:var(--muted);margin-top:24px}
.dark .fine{color:#9c9388}
.quotes{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:36px}
figure{background:var(--sand);padding:32px;border-radius:6px}
blockquote{font-family:var(--serif);font-size:21px;line-height:1.35;margin-bottom:20px}
figcaption{font-size:12.5px;color:var(--muted)}
.cta{max-width:none;background:var(--accent);color:#fff;text-align:center}
.cta h2{margin-bottom:12px}
.cta p{margin-bottom:28px;opacity:.9}
address{font-style:normal;font-size:18px;line-height:1.7;margin:8px 0 20px}
.link{font-family:var(--serif);font-size:28px;text-decoration:none;border-bottom:1px solid var(--accent)}
.btn-ghost-dark{margin-top:24px}
.hours{width:100%;border-collapse:collapse;font-size:16px}
.hours caption{text-align:left;font-family:var(--serif);font-size:24px;margin-bottom:12px}
.hours th{text-align:left;font-weight:500;padding:13px 0;border-top:1px solid rgba(20,17,15,.12)}
.hours td{text-align:right;color:var(--muted)}
.hours tr.today th,.hours tr.today td{color:var(--accent);font-weight:600}
footer{background:var(--ink);color:#9c9388;font-size:13px;padding:32px clamp(18px,5vw,64px) 96px;text-align:center}
.wa-float{position:fixed;right:18px;bottom:18px;z-index:30;width:56px;height:56px;border-radius:50%;background:#1f9d55;color:#fff;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.25);transition:transform .25s}
.wa-float:hover{transform:scale(1.08)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.hero .reveal{animation:up .9s ease .5s forwards}
@keyframes up{to{opacity:1;transform:none}}
@media (max-width:820px){
  .nav nav{display:none}
  .hero,.grid-2,.quotes{grid-template-columns:1fr}
  .hero{min-height:0}.hero-art{order:-1;max-height:260px}.art{max-width:260px}
  .svc li{grid-template-columns:40px 1fr}.svc p{grid-column:2}
  .stats{grid-template-columns:repeat(3,1fr)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal,.line>span{opacity:1;transform:none}
  .ring,.handle,.stem,.strands path{stroke-dashoffset:0}.blade{opacity:1}
}

.btn.pending{border-style:dashed}
.btn.pending:hover{transform:none;background:var(--ink);border-color:var(--ink)}
.btn-light.pending:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.wa-float.pending{background:#6b625a}
.demo-note{font-size:13px;color:var(--muted);margin-top:18px;max-width:420px}
.hours-h{font-size:24px;margin-bottom:12px}
.stats{grid-template-columns:repeat(2,1fr)!important;max-width:420px}
