:root{--bg:#faf7f3;--surface:#fff;--ink:#2a2420;--muted:#5f554d;--line:#e7ddd3;--copper:#8f5434;--copper-2:#c8946f;--soft:#f3e9e0}
*{box-sizing:border-box}
html{font-size:112.5%}
body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:"Assistant",Arial,sans-serif;line-height:1.75}
a{color:var(--copper)}
a:focus-visible,.btn:focus-visible{outline:3px solid #f0a020;outline-offset:2px}
img{max-width:100%;height:auto}
.wrap{max-width:1080px;margin-inline:auto;padding-inline:20px}
.skip{position:absolute;top:-60px;right:1rem;background:var(--copper);color:#fff;padding:.5rem 1rem;z-index:10}
.skip:focus{top:.5rem}
h1,h2,h3{font-family:"Frank Ruhl Libre",Georgia,serif;line-height:1.3;text-wrap:balance;margin:0 0 .6rem}
h1{font-size:clamp(1.8rem,4vw,2.6rem)}
h2{font-size:1.45rem}
h3{font-size:1.2rem}
.top{background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.bar{display:flex;align-items:center;gap:1rem;padding-block:.6rem;flex-wrap:wrap}
.brand img{display:block;width:190px}
nav{flex:1}
nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:.2rem 1.1rem;margin:0;padding:0}
nav a{color:var(--ink);text-decoration:none;font-weight:600;padding:.3rem 0;border-bottom:2px solid transparent}
nav a:hover,nav a[aria-current]{border-color:var(--copper-2);color:var(--copper)}
.btn{display:inline-block;background:var(--copper);color:#fff;text-decoration:none;font-weight:700;padding:.75rem 1.4rem;border-radius:999px;margin:.25rem 0 .25rem .4rem}
.btn:hover{background:#74412a}
.btn.ghost{background:transparent;color:var(--copper);border:2px solid var(--copper-2)}
.btn.small{padding:.45rem 1rem;font-size:.95rem}
main{padding-block:2rem 3rem}
.eyebrow{color:var(--copper);font-weight:700;letter-spacing:.02em;margin:0 0 .4rem}
.eyebrow a{text-decoration:none}
.lede{font-size:1.2rem;color:var(--muted);max-width:62ch}
.hero{padding-block:2.5rem 2rem}
.hero h1{max-width:24ch}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.2rem;margin-block:1.5rem 2.5rem}
.three>div{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.3rem}
.three h2{font-size:1.25rem;color:var(--copper)}
.sec{margin-top:2.5rem}
.ticks{list-style:none;padding:0;max-width:70ch}
.ticks li{padding-right:1.8rem;position:relative;margin:.5rem 0}
.ticks li::before{content:"✓";position:absolute;right:0;color:var(--copper);font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.1rem;margin-block:1rem}
.card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:1.3rem;text-decoration:none;color:var(--ink)}
.card:hover{border-color:var(--copper-2)}
.card p{color:var(--muted);flex:1;margin:.2rem 0 .8rem}
.more{color:var(--copper);font-weight:700}
.prose{max-width:68ch}
.prose h2{margin-top:2rem}
.prose blockquote{margin:1.2rem 0;padding:.8rem 1.2rem;background:var(--soft);border-right:4px solid var(--copper-2);border-radius:8px}
.note{margin-top:2.5rem;padding:1rem 1.2rem;background:var(--soft);border-radius:10px;color:var(--muted);font-size:.95rem}
.steps{padding-right:1.4rem}
.steps li{margin-bottom:1.2rem}
.steps li::marker{color:var(--copper);font-weight:700;font-family:"Frank Ruhl Libre",serif;font-size:1.3rem}
.steps h2{font-size:1.25rem;margin:0}
.steps p{margin:.2rem 0}
.cta{margin-top:3rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.8rem;text-align:center}
.foot{background:#2a2420;color:#efe6dd;padding-block:2rem 1rem;margin-top:2rem}
.foot a{color:#f0c9a8}
.foot .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem}
.foot h2{font-size:1.1rem;color:#fff}
.foot img{filter:brightness(0) invert(1);opacity:.9}
.fine{font-size:.85rem;opacity:.75;margin-top:1.5rem}
@media (max-width:640px){.bar{gap:.5rem}.brand img{width:150px}nav ul{gap:.1rem .9rem;font-size:.95rem}.btn.small{display:none}}
.hero{display:grid;grid-template-columns:1fr minmax(220px,360px);gap:2.5rem;align-items:center}
.hero>div{min-width:0}
.portrait{margin:0}
.portrait img{display:block;width:100%;border-radius:50% 50% 18px 18px;box-shadow:0 18px 40px rgba(80,45,25,.18);border:6px solid #fff}
.about-photo{float:left;width:min(300px,42%);margin:0 1.5rem 1rem 0;border-radius:16px;box-shadow:0 12px 30px rgba(80,45,25,.15)}
@media (max-width:760px){.hero{grid-template-columns:1fr}.portrait{max-width:260px;margin-inline:auto;order:-1}.about-photo{float:none;display:block;width:70%;margin:0 auto 1.2rem}}
.kicker{display:inline-block;font-size:1.3rem;font-weight:700;color:var(--copper);background:var(--soft);border-radius:999px;padding:.35rem 1.1rem;margin:0 0 1rem}
.prose{max-width:800px;margin-inline:auto}
main>h1,main>.lede,main>.cards{max-width:1080px}
.prose .lede{max-width:none}
/* accessibility toolbar */
.a11y-btn{position:fixed;bottom:16px;left:16px;z-index:20;width:52px;height:52px;border-radius:50%;border:0;background:#1f4e8c;color:#fff;font-size:26px;cursor:pointer;box-shadow:0 6px 16px rgba(0,0,0,.25)}
.a11y-panel{position:fixed;bottom:78px;left:16px;z-index:20;background:#fff;color:#222;border:1px solid #ccc;border-radius:12px;padding:12px;width:230px;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.a11y-panel h2{font-size:1.05rem;margin:0 0 .5rem;font-family:Arial,sans-serif}
.a11y-panel button{display:block;width:100%;text-align:right;margin:.25rem 0;padding:.5rem .7rem;border:1px solid #ccc;border-radius:8px;background:#f6f6f6;font:inherit;font-size:.95rem;cursor:pointer;color:#222}
.a11y-panel button[aria-pressed=true]{background:#1f4e8c;color:#fff;border-color:#1f4e8c}
html.a11y-contrast{--bg:#fff;--surface:#fff;--ink:#000;--muted:#000;--line:#000;--copper:#0b3d91;--copper-2:#0b3d91;--soft:#fff}
html.a11y-contrast body{background:#fff;color:#000}
html.a11y-contrast .foot{background:#000;color:#fff}
html.a11y-links a{text-decoration:underline!important;text-decoration-thickness:2px!important}
html.a11y-font body,html.a11y-font h1,html.a11y-font h2,html.a11y-font h3{font-family:Arial,sans-serif!important;letter-spacing:.01em}
html.a11y-still *{animation:none!important;transition:none!important}
/* first screen: keep the call button above the fold */
main{padding-block:1rem 3rem}
.hero{padding-block:1rem 1.2rem;gap:2rem}
.hero h1{font-size:clamp(1.7rem,3.2vw,2.3rem);margin-bottom:.5rem}
.kicker{font-size:1.15rem;margin-bottom:.6rem;padding:.25rem 1rem}
.hero .lede{font-size:1.1rem;margin:.4rem 0 .8rem}
.portrait{max-width:300px;justify-self:center}
.hero h1{max-width:none;font-size:clamp(1.5rem,2.6vw,2.1rem)}
.hero h1 span{display:block}
.hero h1 .l2{color:var(--copper)}
/* decoration */
.hero{position:relative;isolation:isolate}
.watermark{position:absolute;inset-inline-start:38%;top:-10px;width:min(520px,60vw);opacity:.07;z-index:-1;pointer-events:none}
.sec,.prose h2,.cta h2,main>h1,.prose h1{position:relative;padding-bottom:.45rem}
.sec::after,.prose h2::after,main>h1::after,.prose h1::after{content:"";position:absolute;bottom:0;right:0;width:56px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--copper-2),var(--copper))}
.cta h2::after{content:"";display:block;width:56px;height:3px;border-radius:3px;margin:.5rem auto 0;background:linear-gradient(90deg,var(--copper-2),var(--copper))}
.ico{width:40px;height:40px;fill:none;stroke:var(--copper);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;background:var(--soft);border-radius:12px;padding:7px;margin-bottom:.6rem}
.three>div{transition:transform .2s,box-shadow .2s}
.three>div:hover,.card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(80,45,25,.10)}
.card{transition:transform .2s,box-shadow .2s,border-color .2s}
/* process timeline */
.steps{list-style:none;counter-reset:st;padding:0;position:relative}
.steps::before{content:"";position:absolute;right:21px;top:10px;bottom:10px;width:2px;background:var(--line)}
.steps li{counter-increment:st;position:relative;padding-right:64px;min-height:46px}
.steps li::before{content:counter(st);position:absolute;right:0;top:0;width:44px;height:44px;border-radius:50%;background:var(--copper);color:#fff;font:700 1.2rem "Frank Ruhl Libre",serif;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 5px var(--bg)}
.steps h2{padding-bottom:0}.steps h2::after{display:none}
/* reveal on scroll */
.js .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.js .reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
html.a11y-still .reveal{opacity:1!important;transform:none!important}
@media (max-width:760px){.watermark{inset-inline-start:auto;left:-20%;top:0;width:90vw}}
/* warm touches v2 */
.watermark{position:fixed;top:120px;left:-60px;right:auto;inset-inline-start:auto;width:min(560px,70vw);opacity:.055;z-index:-1;pointer-events:none}
body{position:relative;z-index:0}
.ico{display:inline-flex;width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#e7c4a8,#c8946f 60%,#a8693f);padding:6px;margin-bottom:.7rem;box-shadow:0 6px 14px rgba(143,84,52,.25);border:0;stroke:none}
.ico svg{width:100%;height:100%}
.hello{font-family:"Amatic SC",cursive;font-size:2rem;color:var(--copper);text-align:center;margin-bottom:.3rem;transform:rotate(-3deg)}
.portrait img{border-color:#fff;box-shadow:0 0 0 3px var(--copper-2),0 18px 40px rgba(80,45,25,.18)}
.quote{margin:2.5rem auto;max-width:820px;text-align:center;padding:1.6rem 1.8rem;background:var(--soft);border-radius:20px;position:relative}
.quote::before{content:"❝";position:absolute;top:-22px;right:50%;transform:translateX(50%);font-size:2.6rem;color:var(--copper-2);background:var(--bg);border-radius:50%;width:48px;height:48px;line-height:56px}
.quote p{font-family:"Frank Ruhl Libre",serif;font-size:1.35rem;margin:.3rem 0 .6rem;color:var(--ink)}
.quote cite{font-family:"Amatic SC",cursive;font-size:1.8rem;color:var(--copper);font-style:normal}
.sign{font-family:"Amatic SC",cursive;font-size:2.6rem;color:var(--copper);margin-top:.5rem}
.wave{display:block;width:100%;height:46px;margin-top:2rem;margin-bottom:-1px}
.foot{margin-top:0}
.quote cite,.sign{font-family:"Frank Ruhl Libre",serif;font-style:normal;font-weight:700;color:var(--copper)}
.quote cite{font-size:1.1rem}
.sign{font-size:1.4rem;margin-top:.8rem}
.table-wrap{overflow-x:auto;margin:1rem 0}
.prose table{border-collapse:collapse;min-width:260px;background:var(--surface);border-radius:10px;overflow:hidden}
.prose th,.prose td{padding:.45rem 1.1rem;border-bottom:1px solid var(--line);text-align:right;font-variant-numeric:tabular-nums}
.prose th{background:var(--soft);color:var(--copper)}
