:root{
  --paper:#f6f3ec; --paper-deep:#ece6da; --surface-raised:#fdfcf9;
  --ink:#1b2422; --ink-muted:#545e5a; --line:#d9d2c4; --line-strong:#858c87;
  --pine:#16433e; --on-pine:#f6f3ec; --pine-soft:#d4e2dc;
  --ember:#b04a26; --on-ember:#fdfcf9; --ember-soft:#f1dccd; --sand:#e8d5b5;
  --success:#2d6a4a; --danger:#a3372b; --focus-ring:var(--ember);
  --mark-sand:#e8d5b5; --mark-ember:#b04a26; --mark-soft:#d4e2dc;
  --shadow-float:0 1px 2px rgba(27,36,34,.06),0 12px 32px rgba(27,36,34,.08);
  --serif:"Newsreader",Georgia,"Times New Roman",serif;
  --sans:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --container:1160px; --measure:640px;
  --r-sm:6px; --r-md:12px; --r-lg:20px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  color-scheme:dark;
  --paper:#121917; --paper-deep:#18211f; --surface-raised:#1d2826;
  --ink:#eee9df; --ink-muted:#a9b2ad; --line:#2d3a37; --line-strong:#6f7d78;
  --pine:#8cc2b4; --on-pine:#0f1d1a; --pine-soft:#1f3a35;
  --ember:#e48a63; --on-ember:#1a0f0a; --ember-soft:#3b2519; --sand:#3a3122;
  --success:#7cc49b; --danger:#f08a7c; --mark-ember:#e48a63;
  --shadow-float:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.35);
}}
:root[data-theme="dark"]{
  color-scheme:dark;
  --paper:#121917; --paper-deep:#18211f; --surface-raised:#1d2826;
  --ink:#eee9df; --ink-muted:#a9b2ad; --line:#2d3a37; --line-strong:#6f7d78;
  --pine:#8cc2b4; --on-pine:#0f1d1a; --pine-soft:#1f3a35;
  --ember:#e48a63; --on-ember:#1a0f0a; --ember-soft:#3b2519; --sand:#3a3122;
  --success:#7cc49b; --danger:#f08a7c; --mark-ember:#e48a63;
  --shadow-float:0 1px 2px rgba(0,0,0,.4),0 12px 32px rgba(0,0,0,.35);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 17px/28px var(--sans);-webkit-font-smoothing:antialiased;margin:0}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}
a{color:inherit}
h1,h2,h3,p,ul,ol{margin:0}
.wrap{max-width:var(--container);margin-inline:auto;padding-inline:32px}
.skip{position:absolute;left:-999px;top:8px;background:var(--pine);color:var(--on-pine);padding:8px 16px;border-radius:999px;z-index:50}
.skip:focus{left:16px}

/* type */
.eyebrow{font:600 13px/16px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ember)}
.band .eyebrow,.muted-eyebrow{color:var(--ink-muted)}
.display{font:400 64px/68px var(--serif);letter-spacing:-.02em;font-variation-settings:"opsz" 72;text-wrap:balance}
.h1{font:400 44px/50px var(--serif);letter-spacing:-.015em;font-variation-settings:"opsz" 60;text-wrap:balance}
.h2{font:400 32px/38px var(--serif);letter-spacing:-.01em;font-variation-settings:"opsz" 36;text-wrap:balance}
.h3{font:600 21px/28px var(--sans);letter-spacing:-.005em}
.lede{font-size:20px;line-height:32px;color:var(--ink-muted);max-width:var(--measure)}
.small{font-size:15px;line-height:24px}
.muted{color:var(--ink-muted)}
.quote{font:italic 400 24px/34px var(--serif);font-variation-settings:"opsz" 24}
.prose{max-width:var(--measure);display:grid;gap:20px}
.prose p{color:var(--ink)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:12px 24px;border-radius:999px;border:1px solid transparent;font:600 15px/20px var(--sans);text-decoration:none;cursor:pointer;transition:background-color .18s ease-out,border-color .18s ease-out,color .18s ease-out}
.btn-primary{background:var(--pine);color:var(--on-pine)}
.btn-primary:hover{background:var(--ink)}
.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn-secondary:hover{border-color:var(--ink)}
.btn-on-pine{background:var(--on-pine);color:var(--pine)}
.link{color:var(--pine);font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.link:hover{text-decoration-thickness:2px}
.arrow::after{content:"\2192";margin-left:4px}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* header */
.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--line);transition:box-shadow .18s ease-out,background-color .18s ease-out}
.site-header.scrolled{background:var(--surface-raised);box-shadow:var(--shadow-float);border-bottom-color:transparent}
.header-row{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px}
.brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;color:var(--pine)}
.brand svg{width:30px;height:auto;display:block}
.wordmark{font:500 24px/28px var(--serif);letter-spacing:-.01em;font-variation-settings:"opsz" 36;white-space:nowrap}
.nav{display:flex;align-items:center;gap:28px;list-style:none;padding:0}
.nav a:not(.btn){font:600 15px/20px var(--sans);text-decoration:none;color:var(--ink)}
.nav a:not(.btn):hover,.nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.menu-btn{display:none;background:none;border:1px solid var(--line-strong);color:var(--ink);border-radius:999px;min-height:44px;padding:0 18px;font:600 15px/20px var(--sans);cursor:pointer}
.mobile-sheet{display:none}

/* sections */
.section{padding-block:96px}
.band{background:var(--paper-deep)}
.section-head{display:grid;gap:12px;max-width:var(--measure);margin-bottom:48px}
.section-head .lede{margin-top:4px}

/* hero */
.hero{padding-block:112px 96px}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;align-items:center}
.hero-copy{display:grid;gap:24px}
.hero-note{font-size:15px;line-height:24px;color:var(--ink-muted)}
.panel-card{background:var(--pine);border-radius:var(--r-lg);padding:28px 28px 24px;color:var(--on-pine)}
.panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px;font:600 13px/16px var(--sans);letter-spacing:.08em;text-transform:uppercase}
.panel-grid{display:grid;grid-template-columns:44px repeat(5,minmax(0,1fr));gap:8px;align-items:center}
.panel-grid .day,.panel-grid .time{font:500 13px/16px var(--sans);color:var(--on-pine);opacity:.85;text-align:center}
.panel-grid .time{text-align:left;font-variant-numeric:tabular-nums}
.slot{aspect-ratio:1/1;border-radius:var(--r-sm);background:var(--pine-soft)}
.slot.open{background:transparent;box-shadow:inset 0 0 0 1.5px var(--pine-soft)}
.slot.new{background:var(--mark-ember)}
.panel-cap{margin-top:16px;font:italic 400 18px/26px var(--serif);color:var(--on-pine)}
@media (prefers-reduced-motion:no-preference){
  .slot.fill{animation:fill .5s ease-out both;animation-delay:calc(var(--i) * 40ms + 300ms)}
  @keyframes fill{from{background:transparent;box-shadow:inset 0 0 0 1.5px var(--pine-soft)}to{background:var(--pine-soft);box-shadow:none}}
}

/* problem */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.feel-list{list-style:none;padding:0;display:grid;gap:0}
.feel-list li{padding-block:20px;border-top:1px solid var(--line-strong)}
.feel-list li:last-child{border-bottom:1px solid var(--line-strong)}

/* cards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.card{display:flex;flex-direction:column;gap:12px;padding:32px;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--r-lg)}
.num{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-md);background:var(--pine-soft);color:var(--pine);font:500 20px/1 var(--serif)}
.card .h3{margin-top:8px}
.card p{color:var(--ink-muted)}
.card .foot{margin-top:auto;padding-top:12px}
.tag{display:inline-block;padding:2px 8px;border-radius:var(--r-sm);background:var(--pine-soft);color:var(--ink);font:600 13px/20px var(--sans)}
.card-top{display:flex;justify-content:space-between;align-items:center}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;padding:0;counter-reset:step}
.step{padding-top:24px;border-top:1px solid var(--line-strong);counter-increment:step;display:grid;gap:8px;align-content:start}
.step::before{content:counter(step,decimal-leading-zero);font:400 32px/1 var(--serif);color:var(--ember);margin-bottom:8px}
.step p{color:var(--ink-muted)}

/* ethics */
.ethics{display:flex;gap:16px;align-items:flex-start;padding:16px 24px;background:var(--pine-soft);border-radius:var(--r-md);max-width:var(--measure)}
.ethics-label{flex:none;font:600 13px/24px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}
.ethics p{font-size:15px;line-height:24px;color:var(--ink)}
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 48px;list-style:none;padding:0}
.principles li{display:grid;gap:4px;padding-top:20px;border-top:1px solid var(--line-strong)}
.principles strong{font-weight:600}
.principles span{color:var(--ink-muted)}

/* proof */
.proof{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:64px;align-items:start}
.facts{display:grid;gap:0;list-style:none;padding:0}
.facts li{display:grid;grid-template-columns:120px 1fr;gap:20px;padding-block:20px;border-top:1px solid var(--line-strong);align-items:baseline}
.facts li:last-child{border-bottom:1px solid var(--line-strong)}
.fact-num{font:400 40px/1 var(--serif);color:var(--pine);font-variant-numeric:lining-nums;letter-spacing:-.01em}
.facts p{color:var(--ink)}
.facts .src{display:block;color:var(--ink-muted);font-size:15px;line-height:24px}
.fine{font-size:15px;line-height:24px;color:var(--ink-muted);max-width:var(--measure)}


/* faq */
.faq{max-width:760px;display:grid}
.faq details{border-top:1px solid var(--line-strong)}
.faq details:last-child{border-bottom:1px solid var(--line-strong)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:16px;padding-block:20px;font:600 18px/26px var(--sans)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:400 24px/26px var(--serif);color:var(--pine)}
.faq details[open] summary::after{content:"\2212"}
.faq details p{padding-bottom:20px;color:var(--ink-muted);max-width:var(--measure)}

/* cta */
.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;padding:48px 40px;background:var(--pine);color:var(--on-pine);border-radius:var(--r-lg)}
.cta .h2{max-width:560px;color:var(--on-pine)}
.cta p{margin-top:8px;font-size:15px;line-height:24px}

/* service detail */
.svc{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:48px;padding-block:56px;border-top:1px solid var(--line-strong)}
.svc:first-child{border-top:0;padding-top:0}
.svc{scroll-margin-top:88px}
.svc-head{display:grid;gap:12px;align-content:start;position:sticky;top:104px}
.svc-body{display:grid;gap:24px}
.svc-body h4{font:600 13px/16px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);margin:0 0 8px}
.ticks{list-style:none;padding:0;display:grid;gap:10px}
.ticks li{padding-left:24px;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:10px;width:10px;height:10px;border-radius:3px;background:var(--pine-soft);box-shadow:inset 0 0 0 1.5px var(--pine)}
.jump{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px}
.jump a{font:600 14px/20px var(--sans);text-decoration:none;padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;color:var(--ink)}
.jump a:hover{border-color:var(--ink)}

/* about */
.about-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:64px;align-items:start}
.portrait{background:var(--sand);border-radius:var(--r-lg);aspect-ratio:4/5;max-width:100%;overflow:hidden;position:sticky;top:104px}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.timeline{list-style:none;padding:0;display:grid}
.timeline li{display:grid;grid-template-columns:180px 1fr;gap:20px;padding-block:18px;border-top:1px solid var(--line)}
.timeline .org{font-weight:600}
.timeline .role{display:block;color:var(--ink-muted);font-size:15px;line-height:24px}

/* contact */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
.form{display:grid;gap:20px;padding:32px;background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--r-lg)}
.field{display:grid;gap:8px}
.field label{font:600 15px/20px var(--sans)}
.field input,.field select,.field textarea{min-height:48px;padding:12px 16px;font:400 17px/24px var(--sans);color:var(--ink);background:var(--surface-raised);border:1px solid var(--line-strong);border-radius:var(--r-sm);width:100%}
.field textarea{min-height:120px;resize:vertical}
.help{font-size:15px;line-height:24px;color:var(--ink-muted)}
.field.invalid input{border:2px solid var(--danger)}
.visually-hidden{position:absolute!important;left:-9999px!important}
.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.error{font-size:15px;line-height:24px;color:var(--danger);font-weight:600}
.form-status{font-size:15px;line-height:24px;padding:16px;border-radius:var(--r-md);background:var(--pine-soft);color:var(--ink)}
.email-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:8px}
.email{font:500 18px/26px var(--sans);user-select:all;color:var(--pine)}
.copy{background:none;border:1px solid var(--line-strong);color:var(--ink);border-radius:999px;padding:6px 14px;font:600 14px/20px var(--sans);cursor:pointer}

/* footer */
.site-footer{border-top:1px solid var(--line);padding-block:56px 40px}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr) minmax(0,1fr);gap:40px;align-items:start}
.lockup{display:flex;align-items:center;gap:14px;color:var(--pine)}
.lockup svg{width:52px;height:auto}
.lockup .wordmark{font-size:30px;line-height:32px}
.lockup .tagline{display:block;margin-top:4px;font:600 10.5px/14px var(--sans);letter-spacing:.115em;text-transform:uppercase;color:var(--ink-muted)}
.foot-links{list-style:none;padding:0;display:grid;gap:8px}
.foot-links a{text-decoration:none;font-weight:500}
.foot-links a:hover{text-decoration:underline}
.legal{margin-top:40px;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:14px;line-height:22px;color:var(--ink-muted)}


@media (max-width:1080px){
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .hero-grid,.split,.proof,.about-grid,.contact-grid,.svc{grid-template-columns:1fr;gap:40px}
  .svc-head,.portrait{position:static}
  .portrait{aspect-ratio:1/1;max-width:420px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-grid > :first-child{grid-column:1/-1}
  .nav{display:none}
  .menu-btn{display:inline-flex;align-items:center}
  .mobile-sheet:not([hidden]){display:block;position:absolute;left:0;right:0;top:100%;background:var(--surface-raised);box-shadow:var(--shadow-float);border-top:1px solid var(--line)}
  .mobile-sheet ul{list-style:none;padding:16px 32px 24px;display:grid;gap:4px}
  .mobile-sheet a:not(.btn){display:block;padding:12px 0;font:600 18px/24px var(--sans);text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}
  .mobile-sheet .btn{margin-top:16px;width:100%}
}
@media (max-width:640px){
  .wrap{padding-inline:16px}
  .mobile-sheet ul{padding-inline:16px}
  .section{padding-block:64px}
  .hero{padding-block:56px 64px}
  .display{font-size:40px;line-height:44px}
  .h1{font-size:34px;line-height:40px}
  .h2{font-size:26px;line-height:32px}
  .lede{font-size:18px;line-height:28px}
  .cards,.steps,.principles{grid-template-columns:1fr}
  .card,.form{padding:24px}
  .cta{padding:32px 24px}
  .facts li,.timeline li{grid-template-columns:1fr;gap:6px}
  .foot-grid{grid-template-columns:1fr}
  .header-row{min-height:64px}
  .wordmark{font-size:22px}
  .panel-card{padding:20px}
  .panel-grid{grid-template-columns:36px repeat(5,minmax(0,1fr));gap:6px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
