:root{--bg:#F3EBDD;--ink:#2B2118;--forest:#2F5240;--rust:#B4532A;--sage:#7F9A7A;--kraft:#C8B394;--muted:#5E5246}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.6 Inter,system-ui,sans-serif}
a{color:var(--forest)}a:hover{color:var(--rust)}
:focus-visible{outline:2px solid var(--rust);outline-offset:3px}
.skip{position:absolute;left:-999px;top:8px;background:var(--bg);padding:8px 14px;border:1px solid var(--ink);border-radius:4px;z-index:9}.skip:focus{left:8px}
.wrap{max-width:1100px;margin:0 auto;padding:0 24px}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:700;line-height:1.08;margin:0 0 .4em;letter-spacing:-.01em}
.dot{color:var(--rust)}
.over{font:600 13px/1 Inter,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--rust);margin:0 0 18px}
header.site{border-bottom:1px solid var(--kraft)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;min-height:68px;gap:12px;flex-wrap:wrap}
.mark{font:700 30px/1 Fraunces,serif;color:var(--ink);text-decoration:none}.mark::after{content:".";color:var(--rust)}
nav a{margin-left:20px;color:var(--ink);font-weight:500;font-size:15px;text-decoration:none;display:inline-block;padding:10px 0}nav a:hover{color:var(--rust)}
.slide{padding:88px 0;border-bottom:1px solid var(--kraft)}
.two{display:grid;gap:48px;align-items:center}@media(min-width:860px){.two{grid-template-columns:1.25fr .75fr}}
.hero h1{font-size:clamp(44px,8vw,88px)}
.sub{font:italic 400 clamp(20px,2.6vw,26px)/1.4 Fraunces,serif;color:var(--forest);margin:0}
.phone{justify-self:center;width:min(280px,78%);padding:10px;background:#FBF6EC;border:1px solid var(--kraft);border-radius:28px}
.phone img{display:block;width:100%;border-radius:20px;border:1px solid var(--ink)}
h2{font-size:clamp(30px,4.4vw,46px)}
.giant{font:700 clamp(56px,11vw,120px)/1 Fraunces,serif;color:var(--forest);margin:.1em 0 .35em}
.bars{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:8px 0 28px}
.bars div{font:700 clamp(16px,2.2vw,22px) Fraunces,serif}
.bars div::before{content:"";display:block;height:8px;background:var(--forest);margin-bottom:12px;transform-origin:left;transform:scaleX(var(--s,1));transition:transform .9s cubic-bezier(.2,.7,.2,1)}
.bars div:first-child::before{background:var(--rust)}
.bars div:nth-child(2)::before{transition-delay:.12s}.bars div:nth-child(3)::before{transition-delay:.24s}.bars div:nth-child(4)::before{transition-delay:.36s}
.js .bars:not(.in) div{--s:0}
.lead{font-size:19px;max-width:30em}
/* path diagram */
.path{position:relative;display:grid;gap:40px;margin-top:48px}
@media(min-width:860px){.path{grid-template-columns:repeat(3,1fr)}}
.path svg.line{position:absolute;left:0;top:70px;width:100%;height:60px;display:none}
@media(min-width:860px){.path svg.line{display:block}}
.path svg.line path{fill:none;stroke:var(--kraft);stroke-width:2;stroke-dasharray:6 8}
.path svg.line .draw{stroke:var(--rust);stroke-dasharray:1000;stroke-dashoffset:var(--o,0);transition:stroke-dashoffset 2s ease}
.js .path:not(.in) svg .draw{--o:1000}
.beat{position:relative;text-align:center}
.beat .art{width:150px;height:150px;margin:0 auto 18px;border-radius:50%;background:#FBF6EC;border:1px solid var(--kraft);display:grid;place-items:center}
.beat .art img{width:96px;height:96px;object-fit:contain;animation:bob 3.6s ease-in-out infinite}
.beat:nth-child(3) .art img{animation-delay:-1.2s}.beat:nth-child(4) .art img{animation-delay:-2.4s}
.beat h3{font-size:26px;margin-bottom:.2em}.beat p{margin:0;color:var(--muted)}
.num{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--forest);color:var(--bg);font:600 14px Inter;margin-bottom:8px}
@keyframes bob{50%{transform:translateY(-8px)}}
/* shortcuts */
ol.short{list-style:none;padding:0;margin:32px 0 0;position:relative}
ol.short::before{content:"";position:absolute;left:21px;top:24px;bottom:24px;border-left:2px dashed var(--kraft)}
ol.short li{position:relative;display:flex;align-items:center;gap:20px;padding:12px 0;font:600 clamp(22px,3vw,30px)/1.2 Fraunces,serif}
ol.short li span.c{flex:none;width:44px;height:44px;border-radius:50%;background:var(--forest);color:var(--bg);display:grid;place-items:center;font:600 17px Inter}
ol.short li:first-child span.c{background:var(--rust)}
ol.short small{font:500 13px Inter;letter-spacing:.14em;text-transform:uppercase;color:var(--rust)}
.note{color:var(--rust);font-size:15px;margin-top:24px;max-width:34em}
/* tiles */
.tiles{display:grid;gap:20px;margin-top:40px}@media(min-width:760px){.tiles{grid-template-columns:repeat(3,1fr)}}
.tile{border:1px solid var(--kraft);border-radius:4px;padding:32px 26px;background:#F8F2E6}
.tile img{height:72px;margin-bottom:16px;animation:bob 4s ease-in-out infinite}
.tile h3{font-size:24px}.tile p{margin:0;color:var(--muted)}
.row{display:grid;gap:0;margin-top:32px;border-top:1px solid var(--kraft)}
@media(min-width:760px){.row{grid-template-columns:repeat(3,1fr)}.row>div+div{border-left:1px solid var(--kraft)}}
.row>div{padding:24px 24px 24px 0}@media(min-width:760px){.row>div+div{padding-left:24px}}
.row h3{font-size:22px;margin-bottom:.25em}.row p{margin:0;color:var(--muted);font-size:16px}
.row h3::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--rust);margin-right:10px;vertical-align:middle}
/* close */
.close{background:var(--forest);color:var(--bg);padding:112px 0;border:0}
.close h2{font-size:clamp(40px,7vw,76px);color:var(--bg)}
.close p{font-size:19px;margin:.4em 0}.close a{color:var(--bg)}.close a:hover{color:#F0C9AF}
.link{display:inline-block;margin-top:28px;padding:14px 22px;border:1px solid var(--bg);border-radius:4px;text-decoration:none;font-weight:600}
/* reveal */
.js .rv{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.js .rv.in{opacity:1;transform:none}
.js ol.short li{opacity:0;transform:translateX(-16px);transition:opacity .6s,transform .6s}
.js ol.short.in li{opacity:1;transform:none}
ol.short li:nth-child(2){transition-delay:.1s}ol.short li:nth-child(3){transition-delay:.2s}ol.short li:nth-child(4){transition-delay:.3s}ol.short li:nth-child(5){transition-delay:.4s}
@media (prefers-reduced-motion:reduce){*,*::before{animation:none!important;transition:none!important}.js .rv,.js ol.short li{opacity:1;transform:none}.js .bars div{--s:1}.js .path svg .draw{--o:0}html{scroll-behavior:auto}}
/* docs */
.doc{max-width:700px;padding:64px 24px 80px;margin:0 auto}.doc h1{font-size:clamp(40px,6vw,60px)}.doc h1::after{content:".";color:var(--rust)}
.doc h2{font-size:26px;margin-top:1.8em}.doc li{margin-bottom:.4em}.muted{color:var(--muted)}
footer{border-top:1px solid var(--kraft);padding:32px 0;color:var(--muted);font-size:15px}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}footer p{margin:0}
footer a{color:var(--ink);margin-right:18px;display:inline-block;padding:6px 0}
