/* Kaari: a calm, mobile-first concept with its own visual namespace. */
body.kaari-body { margin:0; background:#f5f0e8; }
.kaari { --kaari-paper:#f5f0e8; --kaari-ink:#293830; --kaari-muted:#5f6b61; --kaari-sage:#cdd8c6; --kaari-sage-deep:#6b806e; --kaari-clay:#dfb7a1; --kaari-cream:#f0dfca; color:var(--kaari-ink); background:var(--kaari-paper); font:400 16px/1.6 'Segoe UI',Arial,sans-serif; overflow:clip; }
.kaari *, .kaari *::before, .kaari *::after { box-sizing:border-box; }
.kaari a { color:inherit; }
.kaari :focus-visible { outline:3px solid #9c573c; outline-offset:4px; }
.kaari h1, .kaari h2, .kaari h3 { color:inherit; text-wrap:initial; font-family:'Segoe UI',Arial,sans-serif; font-weight:650; letter-spacing:-.045em; line-height:1.08; }
.kaari h1 em, .kaari h2 em, .kaari__quote em { font-family:Georgia,'Times New Roman',serif; font-weight:400; font-style:italic; letter-spacing:-.045em; }
.kaari p { margin-top:0; }
.kaari__skip { position:absolute; top:-100px; left:1rem; z-index:30; padding:.6rem 1rem; background:#fff; }
.kaari__skip:focus { top:1rem; }
.kaari__concept { display:flex; justify-content:space-between; gap:1rem; padding:.5rem 1rem; background:var(--kaari-sage-deep); color:#fff; font-size:.65rem; letter-spacing:.04em; }
.kaari__concept a { text-underline-offset:.2rem; white-space:nowrap; }
.kaari__header { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1rem; border-bottom:1px solid #d9d8cb; }
.kaari__brand { display:inline-flex; align-items:center; gap:.15rem; flex:none; text-decoration:none; font:700 1.8rem/1 'Segoe UI',Arial,sans-serif; letter-spacing:-.075em; }
.kaari__brand-mark { display:inline-grid; place-items:center; width:2rem; height:2rem; margin-right:.2rem; color:var(--kaari-sage-deep); font:2.3rem/1 Georgia,serif; transform:rotate(-25deg); }
.kaari__brand-dot { color:#ac694e; }
.kaari__brand small { align-self:end; margin:0 0 .22rem .35rem; font:700 .43rem/1.2 'Segoe UI',Arial,sans-serif; letter-spacing:.15em; }
.kaari__header nav { display:flex; align-items:center; gap:1.4rem; font-size:.8rem; font-weight:600; }
.kaari__header nav a { text-decoration:none; }
.kaari__header nav a:not(.kaari__nav-cta) { display:none; }
.kaari__header nav a:hover { color:#8e5e4a; }
.kaari__nav-cta { display:inline-flex; align-items:center; gap:.65rem; padding:.55rem .75rem; border:1px solid var(--kaari-ink); border-radius:100px; white-space:nowrap; }
.kaari__nav-cta:hover { background:var(--kaari-ink); color:#fff !important; }
.kaari__hero { position:relative; }
.kaari__hero, .kaari__intro, .kaari__first { background-image:radial-gradient(rgba(87,73,56,.08) .35px,transparent .55px); background-size:6px 6px; }
.kaari__hero-copy { position:relative; z-index:1; padding:3.6rem 1rem 3rem; }
.kaari__eyebrow, .kaari__label, .kaari__service-number { color:#956b58; font-size:.67rem; font-weight:750; letter-spacing:.13em; text-transform:uppercase; }
.kaari__eyebrow { display:flex; align-items:center; gap:.55rem; margin-bottom:2rem; }
.kaari__eyebrow span { color:#ad6d53; font-size:1.2rem; line-height:0; }
.kaari__hero h1 { font-size:clamp(3.15rem,12.4vw,5.6rem); margin:0 0 1.45rem; }
.kaari__hero h1 em { color:#a65f49; }
.kaari__lead { max-width:34rem; font-size:1.08rem; line-height:1.58; margin-bottom:2rem; }
.kaari__button { display:inline-flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:3.25rem; padding:.8rem 1.1rem; border-radius:100px; background:var(--kaari-ink); color:#fff !important; font-weight:650; text-decoration:none; transition:background .2s,transform .2s; }
.kaari__button:hover { background:#526c57; transform:translateY(-2px); }
.kaari .kaari__hero-caption { max-width:17rem; margin:1.6rem 0 0; color:var(--kaari-muted); font-size:.75rem; line-height:1.5; }
.kaari__hero-figure { position:relative; min-height:510px; margin:0; overflow:hidden; background:#d9cabb; }
.kaari__hero-figure img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:56% 45%; }
.kaari__hero-shape { position:absolute; z-index:1; left:-15%; top:-25%; width:75%; aspect-ratio:1; border-radius:54% 46% 61% 39% / 42% 57% 43% 58%; background:rgba(235,219,194,.42); mix-blend-mode:screen; pointer-events:none; }
.kaari__hero-figure figcaption { position:absolute; z-index:2; left:1rem; bottom:1rem; padding:.55rem .9rem; border-radius:100px; background:rgba(245,240,232,.92); font:600 .75rem/1.2 'Segoe UI',Arial,sans-serif; }
.kaari__roundel { position:absolute; z-index:2; top:1.2rem; right:1rem; display:grid; place-items:center; width:5.3rem; height:5.3rem; border-radius:48% 52% 45% 55% / 54% 43% 57% 46%; background:var(--kaari-clay); color:var(--kaari-ink); text-align:center; font:750 .69rem/1.2 'Segoe UI',Arial,sans-serif; letter-spacing:.07em; transform:rotate(12deg); }
.kaari__passage { display:flex; align-items:center; justify-content:center; gap:.6rem; padding:2rem 1rem; color:#637b68; background:#e6e9dc; font:italic clamp(1.15rem,4vw,1.7rem)/1.2 Georgia,serif; }
.kaari__passage-line { width:clamp(1rem,6vw,4rem); border-top:1px solid #a6b5a6; }
.kaari__intro, .kaari__services, .kaari__first { padding:5rem 1rem; }
.kaari__intro { position:relative; overflow:hidden; }
.kaari__label { display:block; margin:0 0 1.3rem; }
.kaari__intro h2, .kaari__section-heading h2, .kaari__first h2 { max-width:58rem; margin:0 0 1.5rem; font-size:clamp(2.65rem,9.5vw,5.5rem); }
.kaari__intro h2 em, .kaari__section-heading h2 em, .kaari__first h2 em { color:#a46551; }
.kaari__intro>p:last-of-type { position:relative; z-index:1; max-width:32rem; margin:0; font-size:1rem; line-height:1.75; }
.kaari__intro-doodle { display:block; width:12rem; height:12rem; margin:3rem auto -7rem; border:1px solid #8caa91; border-radius:52% 48% 58% 42% / 45% 57% 43% 55%; background:rgba(206,217,197,.32); transform:rotate(-15deg); }
.kaari__services { background:#e7e6d9; }
.kaari__section-heading>p:last-child { max-width:27rem; margin:0 0 2.5rem; color:#4c5d51; line-height:1.65; }
.kaari__service-grid { display:grid; gap:1rem; }
.kaari__service { display:flex; flex-direction:column; min-height:450px; padding:1.4rem; border-radius:1.4rem; }
.kaari__service--sage { background:#cad7c5; }
.kaari__service--clay { background:#dfbaa7; }
.kaari__service--cream { background:#f2e5d3; }
.kaari__service-art { display:grid; place-items:center; align-self:end; width:8.8rem; height:8.8rem; margin:.1rem .6rem 1.1rem 0; border-radius:54% 46% 57% 43% / 45% 57% 43% 55%; background:rgba(255,255,255,.35); transition:border-radius 1.2s ease,transform 1.2s ease; }
.kaari__service--clay .kaari__service-art { border-radius:38% 62% 43% 57% / 55% 42% 58% 45%; }
.kaari__service--cream .kaari__service-art { border-radius:57% 43% 51% 49% / 42% 60% 40% 58%; }
.kaari__service-art span { color:#536d5c; font:5rem/.7 Georgia,serif; }
.kaari__service--clay .kaari__service-art span { color:#915842; }
.kaari__service h3 { margin:.35rem 0 .8rem; font-size:clamp(1.9rem,7vw,2.7rem); }
.kaari__service p { max-width:21rem; margin:0 0 1.5rem; line-height:1.65; }
.kaari__service a { width:fit-content; margin-top:auto; padding-bottom:.3rem; border-bottom:1px solid currentColor; font-size:.84rem; font-weight:650; text-decoration:none; }
.kaari__service a:hover { color:#8d5543; }
.kaari__quote { position:relative; overflow:hidden; display:grid; place-items:center; min-height:370px; padding:5rem 1rem; background:#6e806d; color:#f8f1e7; text-align:center; }
.kaari__quote-blob { position:absolute; width:19rem; height:19rem; border-radius:58% 42% 52% 48% / 50% 61% 39% 50%; background:rgba(223,235,217,.1); border:1px solid rgba(255,255,255,.35); transform:rotate(24deg); }
.kaari__quote p { position:relative; z-index:1; margin:0; font-size:clamp(1.9rem,7vw,3.8rem); line-height:1.2; letter-spacing:-.045em; }
.kaari__quote em { color:#e5c9b5; }
.kaari__quote-mark { position:absolute; right:2rem; bottom:1rem; color:#d5bba7; font-size:3rem; }
.kaari__first { background:var(--kaari-paper); }
.kaari__first-heading>p:last-child { max-width:34rem; line-height:1.7; }
.kaari__steps { display:grid; gap:0; list-style:none; padding:0; margin:2rem 0 3rem; border-top:1px solid #bfcbc0; }
.kaari__steps li { display:grid; grid-template-columns:2.2rem 1fr; gap:1rem; padding:1.4rem 0; border-bottom:1px solid #bfcbc0; }
.kaari__steps li>span { color:#9c6954; font-size:.72rem; font-weight:750; }
.kaari__steps h3 { margin:0 0 .5rem; font-size:1.38rem; letter-spacing:-.035em; }
.kaari__steps p { max-width:31rem; margin:0; color:#57645b; font-size:.93rem; }
.kaari__demo-note { display:grid; grid-template-columns:2rem 1fr; gap:.9rem; padding:1.3rem; border-radius:1.2rem; background:#e4d3c6; }
.kaari__demo-note>span { font-size:1.4rem; line-height:1; }
.kaari__demo-note strong { font-size:.94rem; }
.kaari__demo-note p { margin:.55rem 0 0; font-size:.88rem; line-height:1.6; }
.kaari__demo-note a { grid-column:2; width:fit-content; margin-top:.5rem; font-weight:700; font-size:.83rem; text-underline-offset:.25rem; }
.kaari__footer { display:grid; gap:1.5rem; padding:3rem 1rem; background:#e5e7db; font-size:.74rem; }
.kaari__footer .kaari__brand { width:fit-content; }
.kaari__footer p { margin:0; }
.kaari__footer>a:last-child { width:fit-content; text-underline-offset:.2rem; }
/* Reveals are opt-in; without JS every item remains readable. */
.kaari--enhanced .kaari__reveal { opacity:0; transform:translateY(18px); transition:opacity .65s ease,transform .65s ease; }
.kaari--enhanced .kaari__reveal.is-visible { opacity:1; transform:none; }
.kaari--enhanced .kaari__morph.is-visible { border-radius:42% 58% 39% 61% / 59% 43% 57% 41%; transform:rotate(4deg); }
.kaari--enhanced .kaari__hero-shape.is-visible { border-radius:42% 58% 39% 61% / 59% 43% 57% 41%; transform:rotate(8deg); transition:border-radius 1.4s ease,transform 1.4s ease; }
.kaari--enhanced .kaari__intro-doodle.is-visible, .kaari--enhanced .kaari__quote-blob.is-visible { transition:border-radius 1.4s ease,transform 1.4s ease; }
@media (min-width:720px) {
  .kaari__concept { padding-inline:clamp(2rem,5vw,6rem); }
  .kaari__header { min-height:95px; padding-inline:clamp(2rem,5vw,6rem); }
  .kaari__header nav a:not(.kaari__nav-cta) { display:inline; }
  .kaari__hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.9fr); min-height:680px; }
  .kaari__hero-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(3rem,7vw,8rem) clamp(2rem,5vw,6rem); }
  .kaari__hero h1 { font-size:clamp(3.8rem,6.2vw,7rem); }
  .kaari__hero-figure { min-height:680px; border-radius:48% 0 0 0 / 13% 0 0 0; }
  .kaari__hero-figure img { object-position:60% center; }
  .kaari__hero-figure figcaption { left:2rem; bottom:2rem; }
  .kaari__roundel { top:2rem; right:2rem; width:7rem; height:7rem; }
  .kaari__intro, .kaari__services, .kaari__first { padding:clamp(6rem,10vw,10rem) clamp(2rem,5vw,6rem); }
  .kaari__intro { display:grid; grid-template-columns:.3fr 1.3fr .7fr; gap:2rem; }
  .kaari__intro .kaari__label { grid-row:1; }
  .kaari__intro h2 { grid-column:2/4; grid-row:1; }
  .kaari__intro>p:last-of-type { grid-column:2; grid-row:2; }
  .kaari__intro-doodle { grid-column:3; grid-row:2; margin:-1rem auto -8rem; }
  .kaari__section-heading { display:grid; grid-template-columns:.3fr 1.3fr .7fr; gap:2rem; align-items:end; margin-bottom:3rem; }
  .kaari__section-heading h2 { margin:0; }
  .kaari__section-heading>p:last-child { margin:0; }
  .kaari__service-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.1rem; }
  .kaari__service { min-height:490px; padding:clamp(1.4rem,2.6vw,2.5rem); }
  .kaari__service:nth-child(2) { margin-top:2.5rem; }
  .kaari__service:nth-child(3) { margin-top:1rem; }
  .kaari__quote { min-height:460px; }
  .kaari__quote-blob { width:28rem; height:28rem; }
  .kaari__first { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,8vw,9rem); }
  .kaari__steps { margin:0; }
  .kaari__demo-note { grid-column:1/-1; grid-template-columns:2rem 1fr auto; align-items:center; padding:1.6rem 2rem; }
  .kaari__demo-note a { grid-column:3; margin:0; white-space:nowrap; }
  .kaari__footer { grid-template-columns:1fr 1fr auto; align-items:end; padding:3rem clamp(2rem,5vw,6rem); }
}
@media (max-width:370px) {
  .kaari__concept { font-size:.56rem; }
  .kaari__brand { font-size:1.55rem; }
  .kaari__brand small { font-size:.39rem; }
  .kaari__hero h1 { font-size:11.9vw; }
  .kaari__intro h2, .kaari__section-heading h2, .kaari__first h2 { font-size:9vw; }
}
@media (prefers-reduced-motion:reduce) {
  .kaari *, .kaari *::before, .kaari *::after { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
  .kaari--enhanced .kaari__reveal { opacity:1; transform:none; }
}
